Files
timmy-config/wizards/allegro-primus/capabilities/__pycache__/registry_server.cpython-312.pyc

152 lines
20 KiB
Plaintext
Raw Normal View History

2026-03-31 20:02:01 +00:00
<EFBFBD>
 <0A>i<<00><01><><00>UdZddlmZddlZddlZddlZddlmZmZm Z ddl
m Z m Z m Z mZmZmZddlmZmZddlmZddlZddlZddlmZmZmZmZmZdd lmZmZej@ejB<00>
<EFBFBD>ejDd <0B>Z#Gd <0C>d e<14>Z$eGd<0E>d<0F><00>Z%Gd<10>d<11>Z&da'de(d< d) d*d<14>Z)d<15>Z*e+dk(r<>e&dd<18>Z,ddlmZmZe,jZj]edej^dd<1C><1D><00>e,ja<00>e%de<1F>d<1F> <20>Z1e,jee1<65>e3d!ejhe,jk<00>d"<22>#<23><00>e,jmd$<24>Z7e3d%e7D<00>cgc]}|jp<00><02>c}<00><00><02>e,jsd&d'd$gi<01>Z:e3d(e:<3A><00><02>e,jw<00>yycc}w)+zi
AP Capability Registry Server
Server for advertising capabilities to father and querying other agents.
<EFBFBD>)<01> annotationsN)<03> dataclass<73>field<6C>asdict)<06>Dict<63>List<73>Optional<61>Any<6E>Callable<6C>Set)<02>datetime<6D> timedelta)<01>Enum)<05>CapabilityRegistry<72>
Capability<EFBFBD>CapabilityQuery<72>CapabilityType<70> get_registry)<02> AgentManifest<73>get_default_manifest)<01>levelzap-capability-serverc<01> <00>eZdZdZdZdZdZdZy)<07> AgentStatuszStatus of a registered agent.<2E>online<6E>offline<6E>busy<73>unknownN)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>ONLINE<4E>OFFLINE<4E>BUSY<53>UNKNOWN<57><00><00></root/wizards/allegro-primus/capabilities/registry_server.pyrrs<00><00>'<27> <15>F<EFBFBD><17>G<EFBFBD> <11>D<EFBFBD><17>Gr'rc<01><><00>eZdZUdZded<ded<ded<ej Zded<ed <09><00>
<EFBFBD>Z ded <d Z
d ed<d<0F>Z y )<10> AgentInfoz%Information about a registered agent.<2E>str<74>agent_idr<00>manifest<73>endpointr<00>statusc<01>F<00>tj<00>j<00>S<00>N)r <00>utcnow<6F> isoformatr&r'r(<00><lambda>zAgentInfo.<lambda>,s<00><00>8<EFBFBD>?<3F>?<3F>3D<33>3N<33>3N<33>3P<33>r')<01>default_factory<72> last_seenN<6E> Optional[str]<5D>capabilities_hashc<01>R<00>tj<00>j<00>|_y)zUpdate last seen timestamp.N)r r2r3r6<00><01>selfs r(<00>update_last_seenzAgentInfo.update_last_seen/s<00><00>!<21><1F><1F>*<2A>4<>4<>6<><04>r') rrr r!<00>__annotations__rr"r/rr6r8r<r&r'r(r*r*%sE<00><00>/<2F><11>M<EFBFBD><1B><1B><11>M<EFBFBD>%<25>,<2C>,<2C>F<EFBFBD>K<EFBFBD>,<2C><1A>+P<>Q<>I<EFBFBD>s<EFBFBD>Q<>'+<2B><15>}<7D>+<2B>7r'r*c<01><><00>eZdZdZddd<03>Zd<04>Zd<05>Zd<06>Zd<07>Zd<08>Z d <09>Z
dd
<EFBFBD>Z dd <0B>Z dd <0C>Z ddd <0A>Zdd<0E>Zdd<0F>Zdd<10>Z d d d<11>Zd!d<12>Z d"d<13>Z d#d<14>Zd$d<15>Zd%d&d<16>Zy)'<27>CapabilityServerz<72>
Server for managing capability advertisement and discovery.
This allows AP to:
- Advertise its capabilities to father/other agents
- Query capabilities of other agents
- Match tasks to capable agents
Nc<01><><00>||_||_t|<01>|_t <00>|_i|_tj<00>|_ g|_
d|_ d|_ d|_ d|_d|_y)NF<4E><00>x)r,<00>father_endpointr<00>registryrr-<00>_agents<74> threading<6E>RLock<63> _agents_lock<63>_match_callbacks<6B>_running<6E>_heartbeat_task<73> _cleanup_task<73>heartbeat_interval<61> agent_timeout)r;r,rCs r(<00>__init__zCapabilityServer.__init__>sv<00><00> <20><04> <0A>.<2E><04><1C>$<24>X<EFBFBD>.<2E><04> <0A>,<2C>.<2E><04> <0A>.0<EFBFBD><04> <0C>%<25>O<EFBFBD>O<EFBFBD>-<2D><04><19>WY<01><04><1D><1E><04> <0A>#<23><04><1C>!<21><04><1A>#%<25><04><1F> <20><04>r'c<01><><00>|jryd|_tjd|j<00><00><02>t j
|j d<02><04>|_|jj<00>t j
|jd<02><04>|_
|jj<00>|jr|j<00>yy)zStart the capability server.NTzStarting capability server for )<02>target<65>daemon) rJ<00>logger<65>infor,rF<00>Thread<61>_heartbeat_looprK<00>start<72> _cleanup_looprLrC<00>advertise_to_fatherr:s r(rWzCapabilityServer.startTs<><00><00> <0F>=<3D>=<3D> <12><1C><04> <0A><0E> <0B> <0B>5<>d<EFBFBD>m<EFBFBD>m<EFBFBD>_<EFBFBD>E<>F<> )<29>/<2F>/<2F>t<EFBFBD>7K<37>7K<37>TX<54>Y<><04><1C> <0C><1C><1C>"<22>"<22>$<24>&<26>-<2D>-<2D>T<EFBFBD>5G<35>5G<35>PT<50>U<><04><1A> <0C><1A><1A> <20> <20>"<22> <10> <1F> <1F> <10> $<24> $<24> &<26> r'c<01>V<00>tjd|j<00><00><02>d|_y)zStop the capability server.zStopping capability server for FN)rSrTr,rJr:s r(<00>stopzCapabilityServer.stopgs!<00><00><0E> <0B> <0B>5<>d<EFBFBD>m<EFBFBD>m<EFBFBD>_<EFBFBD>E<>F<><1D><04> r'c<01><00>|jr> |j<00>tj|j<00>|jr<01>=yy#t
$r7}t jd|<01><00><02>tjd<02>Yd}~<01>Jd}~wwxYw)z'Background loop for sending heartbeats.zHeartbeat error: <20>N)rJ<00>_send_heartbeat<61>time<6D>sleeprM<00> ExceptionrS<00>error<6F>r;<00>es r(rVz CapabilityServer._heartbeat_looplsh<00><00><12>m<EFBFBD>m<EFBFBD> <1E><14>$<24>$<24>&<26><14>
<EFBFBD>
<EFBFBD>4<EFBFBD>2<>2<>3<><13>m<EFBFBD>m<EFBFBD><6D><1D> <1E><16> <0C> <0C>0<><11><03>4<>5<><14>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A> <0A><> <1E>s<00>/A <00> B <03>-B<03>B c<01>$<00>|jrA |j<00>tj|jdz<00>|jr<01>@yy#t
$r7}t jd|<01><00><02>tjd<03>Yd}~<01>Jd}~wwxYw)z-Background loop for cleaning up stale agents.<2E>zCleanup error: r]N)rJ<00>_cleanup_stale_agentsr_r`rMrarSrbrcs r(rXzCapabilityServer._cleanup_loopvsl<00><00><12>m<EFBFBD>m<EFBFBD> <1E><14>*<2A>*<2A>,<2C><14>
<EFBFBD>
<EFBFBD>4<EFBFBD>2<>2<>Q<EFBFBD>6<>7<><13>m<EFBFBD>m<EFBFBD><6D><1D> <1E><16> <0C> <0C><EFBFBD>q<EFBFBD>c<EFBFBD>2<>3<><14>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A> <0A><> <1E>s<00>2A<00> B<03>-B
<03>
Bc<01><00>y)z.Send heartbeat to father and update last seen.Nr&r:s r(r^z CapabilityServer._send_heartbeat<61>s<00><00> r'c<01><><00>|j5tj<00>}g}|jj <00>D]V\}}tj
|j <00>}||z
j<00>|jkDs<01>F|j|<03><00>X|D]'}tjd|<03><00><02>|j|=<00>) ddd<02>y#1swYyxYw)z.Remove agents that haven't been seen recently.zRemoving stale agent: N) rHr r2rE<00>items<6D> fromisoformatr6<00> total_secondsrN<00>appendrSrT)r;<00>now<6F>staler,rTr6s r(rgz&CapabilityServer._cleanup_stale_agents<74>s<><00><00> <11> <1E> <1E> +<2B><1A>/<2F>/<2F>#<23>C<EFBFBD><16>E<EFBFBD>"&<26>,<2C>,<2C>"4<>"4<>"6<> +<2B><0E><08>$<24>$<24>2<>2<>4<EFBFBD>><3E>><3E>B<> <09><17>)<29>O<EFBFBD>2<>2<>4<>t<EFBFBD>7I<37>7I<37>I<><19>L<EFBFBD>L<EFBFBD><18>*<2A> +<2B>
"<22> +<2B><08><16> <0B> <0B>4<>X<EFBFBD>J<EFBFBD>?<3F>@<40><18>L<EFBFBD>L<EFBFBD><18>*<2A> +<2B> +<2B> +<2B> +<2B>s<00>A6C <03>?C <03> Cc<01>Z<00>|j5|j|jv}|j<00>||j|j<|r#tj d|j<00><00><02>n"tj d|j<00><00><02>|cddd<03>S#1swYyxYw)z<>
Register another agent.
Args:
agent_info: Information about the agent
Returns:
True if registered, False if updated existing
zRegistered new agent: zUpdated agent: N)rHr,rEr<rSrT<00>debug)r;<00>
agent_info<EFBFBD>is_news r(<00>register_agentzCapabilityServer.register_agent<6E>s<><00><00><12> <1E> <1E>
<1A><1F>(<28>(<28><04> <0C> <0C><<3C>F<EFBFBD> <16> '<27> '<27> )<29>0:<3A>D<EFBFBD>L<EFBFBD>L<EFBFBD><1A>,<2C>,<2C> -<2D><15><16> <0B> <0B>4<>Z<EFBFBD>5H<35>5H<35>4I<34>J<>K<><16> <0C> <0C><EFBFBD>z<EFBFBD>/B<>/B<>.C<>D<>E<><19>
<1A>
<1A>
<1A>s <00>B
B!<03>!B*c<01><><00>|j5||jvr/|j|=tjd|<01><00><02> ddd<02>y ddd<02>y#1swYyxYw)zUnregister an agent.zUnregistered agent: NTF)rHrErSrT<00>r;r,s r(<00>unregister_agentz!CapabilityServer.unregister_agent<6E>s^<00><00> <11> <1E> <1E> <19><17>4<EFBFBD><<3C><<3C>'<27><18>L<EFBFBD>L<EFBFBD><18>*<2A><16> <0B> <0B>2<>8<EFBFBD>*<2A>=<3D>><3E><1B>  <19> <19>
<19>  <19> <19> <19>s<00>5A<03> A<03>Ac<01>|<00>|j5|jj|<01>cddd<01>S#1swYyxYw)z)Get information about a registered agent.N)rHrE<00>getrvs r(<00> get_agentzCapabilityServer.get_agent<6E>s2<00><00> <11> <1E> <1E> .<2E><17><<3C><<3C>#<23>#<23>H<EFBFBD>-<2D> .<2E> .<2E> .<2E>s<00>2<03>;c<01><><00>|j5t|jj<00><00>}|r|D<00>cgc]}|j|k(s<01>|<03><02>}}|cddd<01>Scc}w#1swYyxYw)z<>
List all registered agents.
Args:
status: Optional filter by status
Returns:
List of agent information
N)rH<00>listrE<00>valuesr/)r;r/<00>agents<74>as r(<00> list_agentszCapabilityServer.list_agents<74>sh<00><00><12> <1E> <1E> <1A><19>$<24>,<2C>,<2C>-<2D>-<2D>/<2F>0<>F<EFBFBD><15>%+<2B>B<><01>q<EFBFBD>x<EFBFBD>x<EFBFBD>6<EFBFBD>/A<>!<21>B<><06>B<><19>  <1A> <1A><>C<01> <1A> <1A>s"<00>*A"<03>A<06> A<06>A"<03>A"<03>"A+c<01><><00>|j5||jvr;||j|_|j|j<00> ddd<01>y ddd<01>y#1swYyxYw)zUpdate an agent's status.NTF)rHrEr/r<)r;r,r/s r(<00>update_agent_statusz$CapabilityServer.update_agent_status<75>sd<00><00> <11> <1E> <1E> <19><17>4<EFBFBD><<3C><<3C>'<27>06<30><04> <0C> <0C>X<EFBFBD>&<26>-<2D><14> <0C> <0C>X<EFBFBD>&<26>7<>7<>9<><1B>  <19> <19>
<19>  <19> <19> <19>s<00>AA!<03>A!<03>!A*c<01><><00>|jstjd<01>y |j|jj <00>|j j<00>tj<00>j<00>d<03>}tjd|j<00><00><02>y#t$r"}tjd|<02><00><02>Yd}~yd}~wwxYw)z<>
Advertise capabilities to father agent.
Returns:
True if advertisement successful
zNo father endpoint configuredF)r,r-<00> capabilities<65> timestampzAdvertised to father: TzFailed to advertise to father: N)rCrS<00>warningr,r-<00>to_dictrD<00>exportr r2r3rTrarb)r;<00> advertisementrds r(rYz$CapabilityServer.advertise_to_father<65>s<><00><00><14>#<23>#<23> <12>N<EFBFBD>N<EFBFBD>:<3A> ;<3B><18> <19>!<21>M<EFBFBD>M<EFBFBD> <20>M<EFBFBD>M<EFBFBD>1<>1<>3<> $<24> <0A> <0A> 4<> 4<> 6<>%<25>_<EFBFBD>_<EFBFBD>.<2E>8<>8<>:<3A> <0E>M<EFBFBD> <13>K<EFBFBD>K<EFBFBD>0<><14>1E<31>1E<31>0F<30>G<> H<><17><><18> <19> <12>L<EFBFBD>L<EFBFBD>:<3A>1<EFBFBD>#<23>><3E> ?<3F><18><> <19>s<00>BB(<00>( C<03>1C<03>Cc<01>"<00>|j5|jj|<01>}|s
ddd<01>y|j|jj <00>|j j|jd<02>cddd<01>S#1swYyxYw)z<>
Query capabilities of another agent.
Args:
agent_id: ID of the agent to query
Returns:
Agent capabilities or None if not found
N)r,r-r/r6) rHrEryr,r-r<>r/<00>valuer6)r;r,<00>agents r(<00>query_other_agentz"CapabilityServer.query_other_agent<6E>sx<00><00><12> <1E> <1E>
<0E><18>L<EFBFBD>L<EFBFBD>$<24>$<24>X<EFBFBD>.<2E>E<EFBFBD><18><1B>
<0E>
<0E> "<22>N<EFBFBD>N<EFBFBD>!<21>N<EFBFBD>N<EFBFBD>2<>2<>4<><1F>,<2C>,<2C>,<2C>,<2C>"<22>_<EFBFBD>_<EFBFBD> <0E>
<0E>
<0E>
<0E>s<00>B<03>AB<03>Bc<01>d<00>|j5g}|jj<00>D]n}|j}||jvr|j |<04><00>/||j vr|j |<04><00>O||jvs<01>^|j |<04><00>p|cddd<01>S#1swYyxYw)z<>
Find agents that have a specific capability.
Args:
capability_name: Name of the capability
min_version: Minimum version required
Returns:
List of capable agents
N)rHrEr}r-<00>toolsrm<00>skills<6C>knowledge_areas)r;<00>capability_name<6D> min_version<6F>capabler<65>r-s r(<00>find_agents_by_capabilityz*CapabilityServer.find_agents_by_capability
s<><00><00><12> <1E> <1E> <1B><18>G<EFBFBD><1D><1C><1C>,<2C>,<2C>.<2E> *<2A><05> <20>><3E>><3E><08>#<23>h<EFBFBD>n<EFBFBD>n<EFBFBD>4<><1B>N<EFBFBD>N<EFBFBD>5<EFBFBD>)<29><1C>#<23>h<EFBFBD>o<EFBFBD>o<EFBFBD>5<><1B>N<EFBFBD>N<EFBFBD>5<EFBFBD>)<29><1C>#<23>h<EFBFBD>&><3E>&><3E>><3E><1B>N<EFBFBD>N<EFBFBD>5<EFBFBD>)<29> *<2A>"<1B>) <1B> <1B> <1B>s<00>A:B&<03>B&<03>&B/c<01><><00>|j5|jj<00>D<00>cgc]}||jjvr|<02><02>c}cddd<01>Scc}w#1swYyxYw)zFind agents by tag.N)rHrEr}r-<00>tags)r;<00>tagr<67>s r(<00>find_agents_by_tagz#CapabilityServer.find_agents_by_tag/s_<00><00> <11> <1E> <1E> <0E>#'<27><<3C><<3C>#6<>#6<>#8<><0E><1F><16>%<25>.<2E>.<2E>-<2D>-<2D>-<2D><16><0E> <0E> <0E><><0E> <0E> <0E>s<00>A<03>!A<06> A<03>A<03>A%c<01>&<00>
<EFBFBD>|jD]}|||<02>}|s<01>|cS|j5g}|jj<00>D]<5D>}|jt
j k7r<01>!|jdg<00>}|j<00>
t<00>
fd<02>|D<00><00>}|s<01>V<EFBFBD>
jj} |j|j| f<02><00><>|s
ddd<03>y|jd<04>d<05><06>|ddcddd<03>S#1swYyxYw)a

Match a task to the most suitable agent.
Args:
task_type: Type of task
requirements: Task requirements (capabilities, resources, etc.)
Returns:
Agent ID of best match or None
r<>c3<01>z<00>K<00>|]2}|<01>jvxs|<01>jvxs|<01>jv<00><01><00>4y<00>wr1)r<>r<>r<>)<03>.0<EFBFBD>capr-s <20>r(<00> <genexpr>z7CapabilityServer.match_task_to_agent.<locals>.<genexpr>XsM<00><><00><><00>#<12><1C><18>8<EFBFBD>><3E>><3E>)<29>4<><17>8<EFBFBD>?<3F>?<3F>*<2A>4<><17>8<EFBFBD>3<>3<>3<>4<>#<12>s<00>8;Nc<01> <00>|dS)N<>r&)<01>xs r(r4z6CapabilityServer.match_task_to_agent.<locals>.<lambda>hs
<00><00>!<21>A<EFBFBD>$<24>r'T)<02>key<65>reverser)rIrHrEr}r/rr"ryr-<00>all<6C> performance<63>accuracy_scorermr,<00>sort) r;<00> task_type<70> requirements<74>callback<63>result<6C>
candidatesr<EFBFBD><00> required_caps<70> has_all_caps<70>scorer-s @r(<00>match_task_to_agentz$CapabilityServer.match_task_to_agent7s<00><><00> <1D>-<2D>-<2D> <1E>H<EFBFBD><1D>i<EFBFBD><1C>6<>F<EFBFBD><15><1D> <0A> <1E> <12> <1E> <1E> $<24><1B>J<EFBFBD><1D><1C><1C>,<2C>,<2C>.<2E> ?<3F><05><18><<3C><<3C>;<3B>#5<>#5<>5<><1C>!-<2D> 0<> 0<><1E><12> D<> <0A> <20>><3E>><3E><08>"<22>#<12> -<2D> #<12> <12> <0C> <20>$<24>0<>0<>?<3F>?<3F>E<EFBFBD><1E>%<25>%<25>u<EFBFBD>~<7E>~<7E>u<EFBFBD>&=<3D>><3E>% ?<3F>(<1E><1B>1 $<24> $<24>6 <17>O<EFBFBD>O<EFBFBD><0E><04>O<EFBFBD> =<3D><1D>a<EFBFBD>=<3D><11>#<23>9 $<24> $<24> $<24>s<00>A2D<03>!8D<03>"D<03>Dc<01>:<00>|jj|<01>y)z<>
Register a custom task matching callback.
The callback receives (task_type, requirements) and should
return an agent_id or None.
N)rIrm)r;r<>s r(<00>register_match_callbackz(CapabilityServer.register_match_callbackks<00><00> <0A><1D><1D>$<24>$<24>X<EFBFBD>.r'c <01>><00><01>|j5|j|j|jd<01>t |j
<00>t D<00><01>cic]9<00><01>jt<00>fd<02>|j
j<00>D<00><00><00><02>;c}|j
j<00>D<00>cgc]0}|j|jj|jd<03><03><02>2c}d<04>|jj<00>d<05>cddd<06>Scc}wcc}w#1swYyxYw)zGet overall system status.)r,<00>runningrCc3<01>@<00>K<00>|]}|j<00>k(rd<00><01><00>y<01>w)r<>N)r/)r<>rr/s <20>r(r<>z5CapabilityServer.get_system_status.<locals>.<genexpr><3E>s%<00><><00><><00>*<1A>"#<23> <20>x<EFBFBD>x<EFBFBD>6<EFBFBD>1<><1E>*<1A>s<00>)r,r/r6)<03>total<61> by_statusr|)<03>serverr~<00>local_capabilitiesN)rHr,rJrC<00>lenrErr<><00>sumr}r/r6rD<00> get_stats)r;r/rs ` r(<00>get_system_statusz"CapabilityServer.get_system_statusws<><00><><00> <11> <1E> <1E> <0E>!%<25> <0A> <0A>#<23>}<7D>}<7D>'+<2B>';<3B>';<3B><12> !<21><14><1C><1C>.<2E> '2<> "<16>
#<23> <1F> <0C> <0C>c<EFBFBD>*<1A>'+<2B>|<7C>|<7C>':<3A>':<3A>'<<3C>*<1A>'<1A><1A>"<16>"&<26><1C><1C>!4<>!4<>!6<> <16> <1E> )*<2A>
<EFBFBD>
<EFBFBD>&'<27>h<EFBFBD>h<EFBFBD>n<EFBFBD>n<EFBFBD>)*<2A><1B><1B><1A><16><12>$'+<2B>m<EFBFBD>m<EFBFBD>&=<3D>&=<3D>&?<3F>1<0E> <0E> <0E><>"<16><><16>! <0E> <0E>s*<00>AD<03>>D
<EFBFBD> D<03>+5D <0C> D<03>
D<03>Dc<01><><00>|dk(r0 ddl}|j|jj<00>d<04><05>S|jj <00>S#t$rY<00>%wxYw)zExport all local capabilities.<2E>yamlrNF)<01>default_flow_style)r<><00>dumprDr<><00> ImportError<6F> export_json)r;<00>formatr<74>s r(<00>export_capabilitiesz$CapabilityServer.export_capabilities<65>s[<00><00> <11>V<EFBFBD> <1B> <15><1B><1B>y<EFBFBD>y<EFBFBD><14><1D><1D>!5<>!5<>!7<>E<EFBFBD>y<EFBFBD>R<>R<><14>}<7D>}<7D>(<28>(<28>*<2A>*<2A><><1F> <15><14> <15>s<00>.A<00> A<03>Ar1)r,r+rCr7)rrr*<00>return<72>bool)r,r+r<>r<>)r,r+r<>zOptional[AgentInfo])r/zOptional[AgentStatus]r<><00>List[AgentInfo])r,r+r/rr<>r<>)r<>r<>)r,r+r<>zOptional[Dict[str, Any]])r<>r+r<>r7r<>r<>)r<>r+r<>r<>)r<>r+r<><00>Dict[str, Any]r<>r7)r<>z.Callable[[str, Dict[str, Any]], Optional[str]])r<>r<>)<01>json)r<>r+r<>r+)rrr r!rOrWr[rVrXr^rgrtrwrzr<>r<>rYr<>r<>r<>r<>r<>r<>r<>r&r'r(r?r?4s<><00><00><08>!<21>,'<27>&<1E>
<1E><1E> <0A> +<2B><1A>,<19>.<2E>
<1A> <19> <19>D<0E>2&*<2A>#<1B><1C>#<1B>#<23>#<1B>
<19> #<1B>J<0E>2$<24><16>2$<24>%<25>2$<24>
<17> 2$<24>h
/<2F>@<40>
/<2F><0E><+r'r?zOptional[CapabilityServer]<5D>_server_instancec<01>:<00>t<00>|<00>d}t||<01>atS)z)Get or create the global server instance.zap-agent)r<>r?)r,rCs r(<00>
get_serverr<EFBFBD><00>s(<00><00> <18><1F> <13> <1B>!<21>H<EFBFBD>+<2B>H<EFBFBD>o<EFBFBD>F<><18> <1B>r'c<01><<00>trtj<00>day)z!Reset the global server instance.N)r<>r[r&r'r(<00> reset_serverr<72><00>s<00><00><18><18><1D><1D><1F><1B>r'<00>__main__z
test-agentzhttp://localhost:8080)rr<00> code_analysisz1.0.0z&Analyze code for bugs and improvements)<04>name<6D>type<70>version<6F> descriptionz other-agentzhttp://localhost:9000)r,r-r.zSystem status:rf)<01>indent<6E>code_generationz
Agents with 'code_generation': <20>codingr<67>z
Best agent for coding task: )NN)r,r7rCr7r<>r?)<r!<00>
__future__r<00>asyncior<6F><00>logging<6E> dataclassesrrr<00>typingrrr r
r r r r<00>enumrrFr_<00> discoveryrrrrrr-rr<00> basicConfig<69>INFO<46> getLoggerrSrr*r?r<>r=r<>r<>rr<>rD<00>register<65>SKILLrW<00>
mock_agentrt<00>print<6E>dumpsr<73>r<>r<>r,r<><00>
best_agentr[)rs0r(<00><module>r<>s<><00><01><04> #<23><0E> <0B><0E>0<>0<>;<3B>;<3B>(<28><15><10> <0B>c<>c<>8<><14><07><13><13>'<27>,<2C>,<2C>'<27> <1A><17> <1A> <1A>1<> 2<><06><18>$<24><18> <0B> 7<> 7<> <0B> 7<>i+<2B>i+<2B>Z 04<30><10>,<2C>3<>#<23>%)<29>
<1C><1B>
<1C>"<22>
<1C><16>
<1C><1C> <0C>z<EFBFBD><19> <1D>l<EFBFBD>,C<> D<>F<EFBFBD>5<>
<EFBFBD>O<EFBFBD>O<EFBFBD><1C><1C>Z<EFBFBD> <1C> <1B> !<21> !<21><17><<3C> <06><07> <0B>L<EFBFBD>L<EFBFBD>N<EFBFBD><1B><1E>%<25>'<27>(<28><06>J<EFBFBD>
 <0B><19><19>*<2A>%<25> <09>
<1A>J<EFBFBD>D<EFBFBD>J<EFBFBD>J<EFBFBD>v<EFBFBD>'?<3F>'?<3F>'A<>!<21>L<>M<><15>.<2E>.<2E>/@<40>A<>G<EFBFBD> <09> -<2D>7<EFBFBD>.K<>a<EFBFBD>q<EFBFBD>z<EFBFBD>z<EFBFBD>.K<>-L<>
M<EFBFBD>N<><18>+<2B>+<2B>H<EFBFBD><16>*<2A>+<2B>7<06><07>J<EFBFBD>
<EFBFBD> *<2A>:<3A>,<2C>
7<EFBFBD>8<>
<EFBFBD>K<EFBFBD>K<EFBFBD>M<EFBFBD>I<1A><>8/Ls<00><G