Files
gemma-spectrum/archon-poc/runtime/__pycache__/tool_registry.cpython-312.pyc

66 lines
7.4 KiB
Plaintext
Raw Normal View History

<EFBFBD>
k<><6B>i<EFBFBD><00><00><><00>dZddlZddlZddlZddlmZmZmZmZm Z ddl
m Z ddl m Z e Gd<06>d<07><00>Z Gd<08>d <09>Zd
<EFBFBD>Zed k(re<0F>yy) z<>
Tool Registry - Layer 2 Component
Defines and manages tools available to the Claw runtime.
Tools are executed locally, not sent to the intelligence layer.
<EFBFBD>N)<05>Dict<63>Any<6E>List<73>Callable<6C>Optional)<01> dataclass)<01>datetimec<00>@<00>eZdZUeed<eed<eeefed<eed<y)<06>Tool<6F>name<6D> description<6F>
parameters<EFBFBD>handlerN)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>str<74>__annotations__rrr<00><00><00>4/tmp/archon-work/archon-poc/runtime/tool_registry.pyr r s!<00><00>
<0A>I<EFBFBD><14><14><14>S<EFBFBD>#<23>X<EFBFBD><0E><1E> <15>rr c<00><><00>eZdZdZd<02>Zd<03>Zdefd<05>Zdede e
ee ffd<08>Z d e
ee fdefd
<EFBFBD>Z deefd <0B>Zdefd <0C>Zdefd <0A>Zddedefd<0E>Zdefd<0F>Zy)<12> ToolRegistryz<79>
Registry of available tools for the Claw runtime.
Tools are pattern-matched from user messages and executed
before routing to the intelligence layer.
c<00>2<00>i|_|j<00>y)N)<02>tools<6C>_register_builtin_tools<6C><01>selfs r<00>__init__zToolRegistry.__init__!s<00><00>&(<28><04>
<EFBFBD> <0C>$<24>$<24>&rc<00>H<00>|jtddi|j<00><03><00>|jtddi|j<00><03><00>|jtdddd i|j<00><03><00>|jtd
d i|j
<00><03><00>y ) zRegister built-in tools.<2E>timezGet current time)r r rr<00>statuszGet system status<75>echozEcho a message back<63>message<67>string<6E> ollama_listzList available Ollama modelsN)<06>registerr <00> _get_time<6D> _get_status<75>_echo<68> _ollama_listrs rrz$ToolRegistry._register_builtin_tools%s<><00><00> <0C> <0A> <0A>d<EFBFBD><17>*<2A><19><18>N<EFBFBD>N<EFBFBD> 
<EFBFBD> <0B> <0A> <0A> <0A>d<EFBFBD><19>+<2B><19><18>$<24>$<24> 
<EFBFBD> <0B> <0A> <0A> <0A>d<EFBFBD><17>-<2D>!<21>8<EFBFBD>,<2C><18>J<EFBFBD>J<EFBFBD> 
<EFBFBD> <0B> <0A> <0A> <0A>d<EFBFBD><1E>6<><19><18>%<25>%<25> 
<EFBFBD> r<00>toolc<00>6<00>||j|j<y)zRegister a new tool.N)rr )rr,s rr'zToolRegistry.registerCs<00><00> $<24><04>
<EFBFBD>
<EFBFBD>4<EFBFBD>9<EFBFBD>9<EFBFBD>rr$<00>returnc<00>><00>tjd|j<00><00>}|sy|jd<03>}|jd<04>xsd}||jvryi}|r9|j <00>D]&}d|vr|j dd<03>\}}|||<<00>"||d<<00>(||d<08>S) z<>
Parse a message for tool invocation.
Patterns:
- /tool_name
- /tool_name param=value
- @tool_name
z^[/@](\w+)(?:\s+(.+))?$N<><00><00><00>=r$)r r)<06>re<72>match<63>strip<69>groupr<00>split) rr$r5<00> tool_name<6D>args_str<74>params<6D>pair<69>key<65>values r<00>parse_tool_callzToolRegistry.parse_tool_callGs<><00><00><13><08><08>3<>W<EFBFBD>]<5D>]<5D>_<EFBFBD>E<><05><14><17><19>K<EFBFBD>K<EFBFBD><01>N<EFBFBD> <09><18>;<3B>;<3B>q<EFBFBD>><3E>'<27>R<EFBFBD><08> <14>D<EFBFBD>J<EFBFBD>J<EFBFBD> &<26><17><14><06> <13> <20><0E><0E>(<28> 1<><04><16>$<24>;<3B>!%<25><1A><1A>C<EFBFBD><11>!3<>J<EFBFBD>C<EFBFBD><15>"'<27>F<EFBFBD>3<EFBFBD>K<EFBFBD>)1<>F<EFBFBD>9<EFBFBD>%<25>  1<><1E> <20>
<EFBFBD>
r<00> tool_callc<00><><00>|d}|jdi<00>}||jvrd|<02>d<04>S|j|} |jd i|<03><01>}d|<02>d|<05><00>S#t$r}d|<02>dt |<06><00><00>cYd}~Sd}~wwxYw)
zExecute a tool call.r rzError: Unknown tool '<27>'z[Tool: z]
z [Tool Error: Nr)<05>getrr<00> Exceptionr)rr@r9r;r,<00>result<6C>es r<00>executezToolRegistry.executels<><00><00><1D>f<EFBFBD>%<25> <09><1A><1D><1D>|<7C>R<EFBFBD>0<><06> <14>D<EFBFBD>J<EFBFBD>J<EFBFBD> &<26>*<2A>9<EFBFBD>+<2B>Q<EFBFBD>7<> 7<><13>z<EFBFBD>z<EFBFBD>)<29>$<24><04> :<3A>!<21>T<EFBFBD>\<5C>\<5C>+<2B>F<EFBFBD>+<2B>F<EFBFBD><1C>Y<EFBFBD>K<EFBFBD>s<EFBFBD>6<EFBFBD>(<28>3<> 3<><33><18> :<3A>"<22>9<EFBFBD>+<2B>S<EFBFBD><13>Q<EFBFBD><16><08>9<> 9<><39> :<3A>s<00>A<00> A:<03>A5<03>/A:<03>5A:c<00><><00>|jj<00>D<00><01>cgc]\}}|<01>d|j<00><00><03><02>c}}Scc}}w)zList all available tools.z: )r<00>itemsr )rr r,s r<00>
list_toolszToolRegistry.list_tools|sG<00><00>#<23>j<EFBFBD>j<EFBFBD>.<2E>.<2E>0<>
<EFBFBD><1A><04>d<EFBFBD><14>f<EFBFBD>B<EFBFBD>t<EFBFBD>'<27>'<27>(<28> )<29>
<EFBFBD>
<EFBFBD><EFBFBD>
s<00>=c<00>H<00>tj<00>jd<01>S)zGet current time.z%Y-%m-%d %H:%M:%S)r <00>now<6F>strftimers rr(zToolRegistry._get_time<6D>s<00><00><17>|<7C>|<7C>~<7E>&<26>&<26>':<3A>;<3B>;rc<00>`<00>tjdddt|j<00>d<04>d<05><06>S)zGet system status.<2E>clawz 1.0.0-poc<6F> operational)<04>runtime<6D>versionr"<00>tools_availabler1)<01>indent)<04>json<6F>dumps<70>lenrrs rr)zToolRegistry._get_status<75>s1<00><00><13>z<EFBFBD>z<EFBFBD><1D>"<22>#<23>"<22>4<EFBFBD>:<3A>:<3A><EFBFBD> 
<EFBFBD>
<14> <15> rc<00><00>|S)zEcho a message.r)rr$s rr*zToolRegistry._echo<68>s<00><00><16>rc<00>0<00> tjgd<01>dd<02><03>}tj|j<00>}|j dg<00>D<00>cgc]}|d<00><02> }}ddj d<08>|D<00><00>zScc}w#t$r}d |<05><00>cYd
}~Sd
}~wwxYw) zList Ollama models.)<03>curlz-szhttp://localhost:11434/api/tagsT)<02>capture_output<75>text<78>modelsr zAvailable models:
<EFBFBD>
c3<00>&K<00>|] }d|<01><00><02><01><00> y<01>w)z - Nr)<02>.0<EFBFBD>ms r<00> <genexpr>z,ToolRegistry._ollama_list.<locals>.<genexpr><3E>s<00><00><><00>5Q<35>Q<EFBFBD><04>Q<EFBFBD>C<EFBFBD>j<EFBFBD>5Q<35>s<00>zError listing models: N)<08>
subprocess<EFBFBD>runrU<00>loads<64>stdoutrC<00>joinrD)rrE<00>datarar]rFs rr+zToolRegistry._ollama_list<73>s<><00><00>
0<><1F>^<5E>^<5E>A<>#<23><19><0E>F<EFBFBD>
<18>:<3A>:<3A>f<EFBFBD>m<EFBFBD>m<EFBFBD>,<2C>D<EFBFBD>)-<2D><18><18>(<28>B<EFBFBD>)?<3F>@<40>A<EFBFBD>a<EFBFBD><06>i<EFBFBD>@<40>F<EFBFBD>@<40>(<28>D<EFBFBD>I<EFBFBD>I<EFBFBD>5Q<35>&<26>5Q<35>,Q<>Q<> Q<><51>A<01><><18> 0<>+<2B>A<EFBFBD>3<EFBFBD>/<2F> /<2F><> 0<>s0<00>A A=<00> A8<04>A=<00>8A=<00>= B<03>B<03>
B<03>BN)r2)rrr<00>__doc__rrr r'rrrrr?rGrrJr(r)r*r+rrrrrs<><00><00><08>'<27> <0B><%<25>T<EFBFBD>%<25>#
<EFBFBD>s<EFBFBD>#
<EFBFBD>x<EFBFBD><04>S<EFBFBD>#<23>X<EFBFBD><0E>/G<>#
<EFBFBD>J:<3A><14>c<EFBFBD>3<EFBFBD>h<EFBFBD><1E>:<3A>C<EFBFBD>:<3A> 
<EFBFBD>D<EFBFBD><13>I<EFBFBD>
<EFBFBD><<3C>3<EFBFBD><<3C><15>S<EFBFBD><15><17>S<EFBFBD><17>#<23><17> 0<>c<EFBFBD> 0rrc<00>N<00>t<00>}td<01>|j<00>D]}td|<01><00><02><00>td<03>gd<04>}|D]Y}|j|<03>}|r+|j |<04>}td|<03><00><02>t|<05><00>Atd|<03><00><02>td<06><00>[y)zCLI for testing tool registry.zAvailable tools:z z
Test parsing:)z/timez/statusz/echo Hello worldz /ollama_listzRegular message without toolz
> z(No tool call detected)N)r<00>printrJr?rG)<06>registry<72> tool_info<66> test_messages<65>msg<73>parsedrEs r<00>mainrq<00>s<><00><00><1B>~<7E>H<EFBFBD> <09>
<1C><1D><1D>(<28>(<28>*<2A> <20> <09> <0A><02>9<EFBFBD>+<2B><1E><1F> <20>
<EFBFBD>
<1B><1C><06>M<EFBFBD><1D>-<2D><03><19>)<29>)<29>#<23>.<2E><06> <11><1D>%<25>%<25>f<EFBFBD>-<2D>F<EFBFBD> <11>D<EFBFBD><13><05>,<2C> <1F> <11>&<26>M<EFBFBD> <11>D<EFBFBD><13><05>,<2C> <1F> <11>+<2B> ,<2C>-r<00>__main__)rir4rUrc<00>typingrrrrr<00> dataclassesrr r rrqrrrr<00><module>rus`<00><01><04>
<EFBFBD> <0B><11>6<>6<>!<21><1D> <0B><16><16> <0B><16>I0<>I0<>X-<2D>8 <0C>z<EFBFBD><19><08>F<EFBFBD>r