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

65 lines
6.6 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<07><>i<EFBFBD><00><00><><00>dZddlZddlZddlmZmZmZmZddlm Z ejjde e e <0A>jj<00><00>ddlmZGd<06>d<07>Zd<08>Zed k(re<12>yy)
z<EFBFBD>
Claw Code Runtime - Layer 2 of Archon Architecture
This harness contains all business logic, orchestrating between
the thin Hermes profile (Layer 1) and Gemma intelligence (Layer 3).
<EFBFBD>N)<04>Dict<63>Any<6E>Optional<61>List)<01>Path)<01> ToolRegistryc <00><><00>eZdZdZddefd<03>Zddedeedeeeffd<08>Z dededeeeffd <09>Z
d
edefd <0B>Z dededefd <0C>Z defd <0A>Z ddedeedeedeeeffd<11>Zdefd<12>Zy)<16> ClawHarnessz<73>
The Claw Runtime - where all logic lives.
Responsibilities:
- Message routing and orchestration
- Tool execution management
- Context window management
- Conversation state tracking
<20> ollama_hostc<00>L<00>||_t<00>|_g|_d|_y<00>N)r r<00>tools<6C>conversation_history<72>
session_id)<02>selfr s <20>./tmp/archon-work/archon-poc/runtime/harness.py<70>__init__zClawHarness.__init__s"<00><00>&<26><04><18>!<21>^<5E><04>
<EFBFBD>:<<3C><04>!<21>)-<2D><04><0F>N<>message<67>context<78>returnc<00><00>|xsi}|jjd||j<00>d<02><03>|jj |<01>}|r*|j |<03>}|j ||dddi<01><06>S|j||<02>S)z<>
Main entry point for processing messages.
Flow:
1. Parse intent
2. Determine if tools needed
3. Route to Gemma or execute tools
4. Return formatted response
<20>user<65><03>role<6C>content<6E> timestamp<6D>name<6D> tool_resultT)r<00> tool_used<65>metadata)r<00>append<6E>_get_timestampr<00>parse_tool_call<6C> _execute_tool<6F>_format_response<73>_route_to_intelligence)rrr<00> tool_call<6C>results r<00>process_messagezClawHarness.process_message%s<><00><00><1A>-<2D>R<EFBFBD><07> <0A>!<21>!<21>(<28>(<28><1A><1E><1D>,<2C>,<2C>.<2E>*
<EFBFBD> <0B><19>J<EFBFBD>J<EFBFBD>.<2E>.<2E>w<EFBFBD>7<> <09> <14><19>'<27>'<27> <09>2<>F<EFBFBD><17>(<28>(<28><1E>#<23>F<EFBFBD>+<2B>'<27><14>.<2E>)<29><0E> <0E><14>*<2A>*<2A>7<EFBFBD>G<EFBFBD><<3C><rc<00><><00>ddlm}||j<00><03>}|j||<02>}|j d||j <00><00><05>}|j jd|jdd<08>|j<00>d <09><03>|j|jdd<08>d|jd
d<01>d <0B><02> <0C>S) z"Route message to Gemma via Ollama.r)<01> OllamaClient)<01>base_urlz gemma3:4b)<03>model<65>prompt<70>system<65> assistant<6E>response<73>r<00>
eval_count)r.<00> tokens_used)rr!) <0B> ollama_clientr,r <00> _build_prompt<70>generate<74>_get_system_promptrr"<00>getr#r&)rrrr,<00>clientr/r2s rr'z"ClawHarness._route_to_intelligenceEs<><00><00>.<2E><1D>t<EFBFBD>'7<>'7<>8<><06><16>#<23>#<23>G<EFBFBD>W<EFBFBD>5<><06><1A>?<3F>?<3F><1D><19><17>*<2A>*<2A>,<2C>#<23>
<EFBFBD><08> <0A>!<21>!<21>(<28>(<28><1F><1F>|<7C>|<7C>J<EFBFBD><02>3<><1D>,<2C>,<2C>.<2E>*
<EFBFBD> <0B> <14>$<24>$<24><1C>L<EFBFBD>L<EFBFBD><1A>R<EFBFBD>0<>$<24>'<27>|<7C>|<7C>L<EFBFBD>!<21><<3C><0E>%<25>
<EFBFBD>
rr(c<00>8<00>|jj|<01>S)z!Execute a tool and return result.)r<00>execute)rr(s rr%zClawHarness._execute_toolds<00><00><13>z<EFBFBD>z<EFBFBD>!<21>!<21>)<29>,<2C>,rc <00><><00>dj|jddD<00>cgc]}|d<00>d|d<00><00><03><02>c}<03>}d|<04>d|<01>d <09>Scc}w)
z%Build context-aware prompt for Gemma.<2E>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Nrz: rzPrevious conversation:
z
User: z
Assistant:)<02>joinr)rrr<00>msg<73>historys rr7zClawHarness._build_prompthso<00><00><16>)<29>)<29><1B>0<>0<><12><13>5<>
<EFBFBD><13><13>6<EFBFBD>{<7B>m<EFBFBD>2<EFBFBD>c<EFBFBD>)<29>n<EFBFBD>-<2D> .<2E>
<EFBFBD> <0B><07>
<01><08> <09>
<07><0E>i<EFBFBD> <0B><0E> <0E><> 
s<00>Ac<00><00>y)zGet system prompt for Gemma.zlYou are the Archon POC, a helpful AI assistant.
Be concise but thorough. Tag your response with #archon-poc.<2E>)rs rr9zClawHarness._get_system_promptvs<00><00>@rrr r!c<00>0<00>|dddd<04>}|r||d<|r||d<|S)z&Format response for return to Layer 1.<2E>success<73> claw_runtimez #archon-poc)r<00>status<75>layer<65>tagr r!rE)rrr r!r2s rr&zClawHarness._format_response{s8<00><00><1F><1F>#<23> <20> 
<EFBFBD><08> <15>$-<2D>H<EFBFBD>[<5B> !<21> <13>#+<2B>H<EFBFBD>Z<EFBFBD> <20><17>rc<00>J<00>ddlm}|j<00>j<00>S)zGet current timestamp.r)<01>datetime)rM<00>now<6F> isoformat)rrMs rr#zClawHarness._get_timestamp<6D>s<00><00>%<25><17>|<7C>|<7C>~<7E>'<27>'<27>)<29>)r)zhttp://localhost:11434r )NN)<10>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>strrrrrr*r'r%r7r9r&r#rErrr
r
s<><00><00><08>.<2E>C<EFBFBD>.<2E> =<3D>s<EFBFBD>=<3D>X<EFBFBD>d<EFBFBD>^<5E>=<3D>t<EFBFBD>TW<54>Y\<5C>T\<5C>~<7E>=<3D>@
<EFBFBD>c<EFBFBD>
<EFBFBD>D<EFBFBD>
<EFBFBD>T<EFBFBD>#<23>s<EFBFBD>(<28>^<5E>
<EFBFBD>>-<2D>t<EFBFBD>-<2D><03>-<2D> <0E>S<EFBFBD> <0E>4<EFBFBD> <0E>C<EFBFBD> <0E>@<01>C<EFBFBD>@<01>
IM<01>37<33><18><03><18><08><13> <0A><18>"*<2A>4<EFBFBD>.<2E><18><@<40><13>c<EFBFBD><18>N<EFBFBD><18>"*<2A><03>*rr
c<00><><00>t<00>}ttj<00>dkDrTdj tjdd<00>}|j |<01>}t tj|d<04><05><00>yt d<06>t d<07> td<08>}|j<00>d vrn$|j |<01>}t d
|d <00>d
<EFBFBD><03><00>Ct d <0C>y#t$rY<00>t$rY<00>!wxYw) zCLI entry point.<2E><00> N<>)<01>indentz!Archon Harness - Interactive ModezType 'exit' to quit
z> )<02>exit<69>quitr?rz
Goodbye!) r
<00>len<65>sys<79>argvrAr*<00>print<6E>json<6F>dumps<70>input<75>lower<65>KeyboardInterrupt<70>EOFError)<03>harnessrr)s r<00>mainrg<00>s<><00><00><19>m<EFBFBD>G<EFBFBD>
<EFBFBD>3<EFBFBD>8<EFBFBD>8<EFBFBD>}<7D>q<EFBFBD><18><15>(<28>(<28>3<EFBFBD>8<EFBFBD>8<EFBFBD>A<EFBFBD>B<EFBFBD><<3C>(<28><07><18>(<28>(<28><17>1<><06> <0A>d<EFBFBD>j<EFBFBD>j<EFBFBD><16><01>*<2A>+<2B> <0E>1<>2<> <0A>%<25>&<26><12> <16><1F><04>+<2B><07><1A>=<3D>=<3D>?<3F>&6<>6<><19> <20>0<>0<><17>9<><06><15><02>6<EFBFBD>)<29>,<2C>-<2D>R<EFBFBD>0<>1<><13> <0E>l<EFBFBD><1B><> %<25> <16><15><1B> <16><15> <16>s<00>C!<00>1#C!<00>! C7<03>,C7<03>6C7<03>__main__)rSr]r`<00>typingrrrr<00>pathlibr<00>path<74>insertrT<00>__file__<5F>parent<6E>runtime.tool_registryrr
rgrPrErr<00><module>rpsm<00><01><04> <0B> <0B>,<2C>,<2C><18><04><08><08><0F><0F><01>3<EFBFBD>t<EFBFBD>H<EFBFBD>~<7E>,<2C>,<2C>3<>3<>4<>5<>.<2E>{*<2A>{*<2A>|<1C>< <0C>z<EFBFBD><19><08>F<EFBFBD>r