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

154 lines
24 KiB
Plaintext
Raw Normal View History

2026-03-31 20:02:01 +00:00
<EFBFBD>
 <0A>iH<00> <01><><00>UdZddlmZddlZddlZddlmZmZmZddl m
Z
m Z m Z m Z mZmZmZddlmZddlmZddlZGd<08>d e<13>ZGd
<EFBFBD>d e<13>ZeGd <0C>d <0A><00>ZeGd<0E>d<0F><00>ZGd<10>d<11>Zdaded<d-d<14>Zedk(<00>r:e<19>Zeddedej>ddd<16>edej@ddddg<01><1E>gejB<00><1F>Z"ed d!ed"ej>d#d$d <20>edej@ddd dg<01><1E>gejB<00><1F>Z#ejIe"<22>ejIe#<23>e%d%ejM<00><00>e%d&ejNejQ<00>d'<27>(<28><00>e%d)ejSd<18><00>e%d*ejSd<1B><00>e%d+ejUd,dg<01><00>yy).z<>
Father Agent - Capability Registry
Central registry for tracking capabilities of all child agents (APs).
Provides capability discovery, matching, and coordination services.
<EFBFBD>)<01> annotationsN)<03> dataclass<73>field<6C>asdict)<07>Dict<63>List<73>Optional<61>Any<6E>Callable<6C>Set<65>Union)<01>datetime)<01>Enumc<01>$<00>eZdZdZdZdZdZdZdZy)<08> AgentStatuszStatus of a registered agent.<2E>online<6E>offline<6E>busy<73>degraded<65>unknownN) <09>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>ONLINE<4E>OFFLINE<4E>BUSY<53>DEGRADED<45>UNKNOWN<57><00><00>5/root/wizards/allegro/capabilities/father_registry.pyrrs<00><00>'<27> <15>F<EFBFBD><17>G<EFBFBD> <11>D<EFBFBD><19>H<EFBFBD><17>Gr!rc<01>(<00>eZdZdZdZdZdZdZdZdZ y) <09>CapabilityTypezTypes of capabilities.<2E>tool<6F>skill<6C> knowledge<67>api<70>protocol<6F>serviceN)
rrrr<00>TOOL<4F>SKILL<4C> KNOWLEDGE<47>API<50>PROTOCOL<4F>SERVICEr r!r"r$r$s#<00><00> <20> <11>D<EFBFBD> <13>E<EFBFBD><1B>I<EFBFBD>
<0F>C<EFBFBD><19>H<EFBFBD><17>Gr!r$c<01><><00>eZdZUdZded<ded<ded<ded<ded<ee<06> <09>Zd
ed <ee<06> <09>Zd
ed <ee <09> <09>Z
d ed<ee<06> <09>Z d
ed<d<10>Z y)<12>CapabilityInfoz&Information about a single capability.<2E>str<74>namer$<00>type<70>version<6F> description<6F>agent_id<69><01>default_factory<72>Dict[str, Any]<5D>
parameters<EFBFBD>returns<6E> List[str]<5D>tags<67>metadatac<01>n<00>t|jt<00>rt|j<00>|_yy<00>N)<04>
isinstancer5r3r$<00><01>selfs r"<00> __post_init__zCapabilityInfo.__post_init__4s%<00><00> <15>d<EFBFBD>i<EFBFBD>i<EFBFBD><13> %<25>&<26>t<EFBFBD>y<EFBFBD>y<EFBFBD>1<>D<EFBFBD>I<EFBFBD> &r!N) rrrr<00>__annotations__r<00>dictr<r=<00>listr?r@rFr r!r"r2r2'sa<00><00>0<>
<0A>I<EFBFBD>
<18><18> <10>L<EFBFBD><14><14><11>M<EFBFBD>!&<26>t<EFBFBD>!<<3C>J<EFBFBD><0E><<3C>#<23>D<EFBFBD>9<>G<EFBFBD>^<5E>9<><1B>D<EFBFBD>1<>D<EFBFBD>)<29>1<>$<24>T<EFBFBD>:<3A>H<EFBFBD>n<EFBFBD>:<3A>2r!r2c<01><><00>eZdZUdZded<ded<ee<06><05>Zded<ee<08><05>Z ded <e
jZ d
ed <ed <0C><00><05>Z ded <ed<0E><00><05>Zded<dZded<d<13>Zdd<14>Zy)<16>AgentCapabilitiesz$Capabilities registered by an agent.r3r8<00>endpointr9r;<00>manifestzList[CapabilityInfo]<5D> capabilitiesr<00>statusc<01>F<00>tj<00>j<00>SrB<00>r<00>utcnow<6F> isoformatr r!r"<00><lambda>zAgentCapabilities.<lambda>As<00><00>x<EFBFBD><EFBFBD><EFBFBD>7H<37>7R<37>7R<37>7T<37>r!<00> registered_atc<01>F<00>tj<00>j<00>SrBrQr r!r"rTzAgentCapabilities.<lambda>Bs<00><00>8<EFBFBD>?<3F>?<3F>3D<33>3N<33>3N<33>3P<33>r!<00> last_seenN<6E> Optional[str]<5D>capability_hashc<01>R<00>tj<00>j<00>|_y)zUpdate last seen timestamp.N)rrRrSrWrDs r"<00>update_last_seenz"AgentCapabilities.update_last_seenEs<00><00>!<21><1F><1F>*<2A>4<>4<>6<><04>r!c <01>*<00>|j|j|jt|jt
<00>r|jj n |j|j|jt|j<00>|jd<01>S)N)r8rLrMrOrUrW<00>capability_countrY) r8rLrMrCrOr<00>valuerUrW<00>lenrNrYrDs r"<00>to_dictzAgentCapabilities.to_dictIsh<00><00><1C> <0A> <0A><1C> <0A> <0A><1C> <0A> <0A>+5<>d<EFBFBD>k<EFBFBD>k<EFBFBD>4<EFBFBD>+H<>d<EFBFBD>k<EFBFBD>k<EFBFBD>'<27>'<27>d<EFBFBD>k<EFBFBD>k<EFBFBD>!<21>/<2F>/<2F><1D><1E><1E> #<23>D<EFBFBD>$5<>$5<> 6<>#<23>3<>3<> 
<EFBFBD>
r!<00><02>returnr;)rrrrrGrrHrMrIrNrrrOrUrWrYr[r`r r!r"rKrK9sr<00><00>.<2E><11>M<EFBFBD><11>M<EFBFBD>$<24>T<EFBFBD>:<3A>H<EFBFBD>n<EFBFBD>:<3A>).<2E>t<EFBFBD>)D<>L<EFBFBD>&<26>D<>%<25>-<2D>-<2D>F<EFBFBD>K<EFBFBD>-<2D><1E>/T<>U<>M<EFBFBD>3<EFBFBD>U<><1A>+P<>Q<>I<EFBFBD>s<EFBFBD>Q<>%)<29>O<EFBFBD>]<5D>)<29>7<>

r!rKc<01><><00>eZdZdZd<02>Zdd<03>Zdd<04>Zdd<05>Zdd<06>Z d dd<08>Z d dd <09>Z
dd
<EFBFBD>Z d d <0B>Z d!d <0C>Z d" d#d <0A>Zd$d<0E>Zd$d<0F>Zd%d<10>Zd&d<11>Zd'd<12>Zd(d<13>Zd!d<14>Zd!d<15>Zd)d*d<16>Zy)+<2B>FatherCapabilityRegistryz<79>
Central capability registry for father agent.
Manages:
- Agent registration and tracking
- Capability aggregation
- Task-capability matching
- Health monitoring
c<01><><00>i|_i|_i|_i|_t j
<00>|_g|_ddddd<02>|_y)Nr)<04> registrations<6E>deregistrations<6E>updates<65>lookups) <09>_agents<74>_capabilities_by_name<6D>_capabilities_by_tag<61>_capabilities_by_type<70> threading<6E>RLock<63>_lock<63>
_listeners<EFBFBD>_statsrDs r"<00>__init__z!FatherCapabilityRegistry.__init__asM<00><00>57<35><04> <0C>;=<3D><04>"<22>:<<3C><04>!<21>FH<46><04>"<22><1E>_<EFBFBD>_<EFBFBD>&<26><04>
<EFBFBD>AC<EFBFBD><04><0F><1F> <20><18><18> 
<EFBFBD><04> r!c<01><><00>|j5|j}||jv}|s|j|<02>||j|<|j |<01>|r9|j
dxxdz cc<|j d||j<00><00>n8|j
dxxdz cc<|j d||j<00><00>|cddd<06>S#1swYyxYw)z<>
Register a new agent or update existing.
Args:
agent_info: Agent capability information
Returns:
True if new registration, False if update
rf<00><00>agent_registeredrh<00> agent_updatedN)rpr8rj<00>_remove_from_indices<65>_add_to_indicesrr<00>_notifyr`)rE<00>
agent_infor8<00>is_news r"<00>register_agentz'FatherCapabilityRegistry.register_agentrs<><00><00><12>Z<EFBFBD>Z<EFBFBD> <1A>!<21>*<2A>*<2A>H<EFBFBD><1D>T<EFBFBD>\<5C>\<5C>1<>F<EFBFBD><1A><14>)<29>)<29>(<28>3<>%/<2F>D<EFBFBD>L<EFBFBD>L<EFBFBD><18> "<22> <10> <20> <20><1A> ,<2C><16><14> <0B> <0B>O<EFBFBD>,<2C><01>1<>,<2C><14> <0C> <0C>/<2F><18>:<3A>;M<>;M<>;O<>P<><14> <0B> <0B>I<EFBFBD>&<26>!<21>+<2B>&<26><14> <0C> <0C>_<EFBFBD>h<EFBFBD>
<EFBFBD>8J<EFBFBD>8J<EFBFBD>8L<EFBFBD>M<><19>' <1A> <1A> <1A>s <00>CC<03>C"c<01>@<00>|j5||jvr
ddd<01>y|j|<01>|jj|<01>}|jdxxdz cc<|j d||j <00><00> ddd<01>y#1swYyxYw)zUnregister an agent.NFrgru<00>agent_unregisteredT)rprjrx<00>poprrrzr`<00>rEr8r{s r"<00>unregister_agentz)FatherCapabilityRegistry.unregister_agent<6E>s<><00><00> <11>Z<EFBFBD>Z<EFBFBD>
<18><17>t<EFBFBD>|<7C>|<7C>+<2B><1C>
<18>
<18> <11> %<25> %<25>h<EFBFBD> /<2F><1D><1C><1C>)<29>)<29>(<28>3<>J<EFBFBD> <10>K<EFBFBD>K<EFBFBD>)<29> *<2A>a<EFBFBD> /<2F> *<2A> <10>L<EFBFBD>L<EFBFBD>-<2D>x<EFBFBD><1A>9K<39>9K<39>9M<39> N<><17>
<18>
<18>
<18>s<00>B<03>A%B<03>Bc
<01><><00>|j5||jvr
ddd<01>y|j|j}||j|_|j|j<00>|j d|t |t <00>r |jn|t |t <00>r |jn|d<04><02> ddd<01>y#1swYyxYw)zUpdate agent status.NF<4E>status_changed)<02>old<6C>newT)rprjrOr[rzrCrr^)rEr8rO<00>
old_statuss r"<00>update_agent_statusz,FatherCapabilityRegistry.update_agent_status<75>s<><00><00> <11>Z<EFBFBD>Z<EFBFBD> <18><17>t<EFBFBD>|<7C>|<7C>+<2B><1C> <18> <18><1E><1C><1C>h<EFBFBD>/<2F>6<>6<>J<EFBFBD>,2<>D<EFBFBD>L<EFBFBD>L<EFBFBD><18> "<22> )<29> <10>L<EFBFBD>L<EFBFBD><18> "<22> 3<> 3<> 5<> <10>L<EFBFBD>L<EFBFBD>)<29>8<EFBFBD>+5<>j<EFBFBD>$<24>+G<>z<EFBFBD>'<27>'<27>Z<EFBFBD>'1<>&<26>$<24>'?<3F>v<EFBFBD>|<7C>|<7C>V<EFBFBD>6<0E> <0F>
<18> <18> <18> <18>s<00>C<03>BC<03>Cc<01>|<00>|j5|jj|<01>cddd<01>S#1swYyxYw)zGet agent capabilities.N)rprj<00>get)rEr8s r"<00> get_agentz"FatherCapabilityRegistry.get_agent<6E>s0<00><00> <11>Z<EFBFBD>Z<EFBFBD> .<2E><17><<3C><<3C>#<23>#<23>H<EFBFBD>-<2D> .<2E> .<2E> .<2E>s<00>2<03>;Nc<01><><00>|j5|jdxxdz cc<|r'||jvrt|j|<00>}nL|r'||jvrt|j|<00>}n#t|j
j <00><00>}g}|D]C}|j
j|<06>}|s<01>!|r|j|k7r<01>3|j|<07><00>E|cddd<03>S#1swYyxYw)a
List agents with optional filters.
Args:
status: Filter by status
capability: Filter by capability name
tag: Filter by tag
Returns:
List of matching agents
riruN)
rprrrk<00>setrlrj<00>keysr<73>rO<00>append)rErO<00>
capability<EFBFBD>tag<61> agent_ids<64>resultsr8<00>agents r"<00> list_agentsz$FatherCapabilityRegistry.list_agents<74>s<><00><00>"<12>Z<EFBFBD>Z<EFBFBD> <1B> <10>K<EFBFBD>K<EFBFBD> <09> "<22>a<EFBFBD> '<27> "<22><1A>j<EFBFBD>D<EFBFBD>,F<>,F<>F<><1F><04> :<3A> :<3A>:<3A> F<>G<> <09><14><13><04> 9<> 9<>9<><1F><04> 9<> 9<>#<23> ><3E>?<3F> <09><1F><04> <0C> <0C> 1<> 1<> 3<>4<> <09><18>G<EFBFBD>%<25> &<26><08><1C> <0C> <0C>(<28>(<28><18>2<><05><1C><1C><19>e<EFBFBD>l<EFBFBD>l<EFBFBD>f<EFBFBD>4<><1C><17><0E><0E>u<EFBFBD>%<25> &<26><1B>- <1B> <1B> <1B>s <00>CC/<03>/C8c<01>H<00>|j5|s,t|jj<00><00>cddd<01>Sg}|D]8}t |j
j |g<00><00>}|j|<05><00>:|s gcddd<01>S|r|dj|dd<00>}n|dj|dd<00>}|D<00>cgc]I}||jvr9|j|jtjk(r|j|<00><02>Kc}cddd<01>Scc}w#1swYyxYw)a
Find agents with specified capabilities.
Args:
required_capabilities: List of required capability names
require_all: If True, agent must have all capabilities
Returns:
List of capable agents
Nrru) rprIrj<00>valuesr<73>rkr<>r<><00> intersection<6F>unionrOrr)rE<00>required_capabilities<65> require_all<6C>candidate_sets<74>cap<61>agents_with_cap<61> candidate_ids<64>aids r"<00>find_capable_agentsz,FatherCapabilityRegistry.find_capable_agents<74>s)<00><00><12>Z<EFBFBD>Z<EFBFBD> <0E>(<28><1B>D<EFBFBD>L<EFBFBD>L<EFBFBD>/<2F>/<2F>1<>2<> <0E> <0E>
 <20>N<EFBFBD>,<2C> 7<><03>"%<25>d<EFBFBD>&@<40>&@<40>&D<>&D<>S<EFBFBD>"<22>&M<>"N<><0F><1E>%<25>%<25>o<EFBFBD>6<> 7<>"<22><19> <0E> <0E><1B> ><3E><0E>q<EFBFBD> 1<> ><3E> ><3E><0E>q<EFBFBD>r<EFBFBD>@R<> S<> <0A> 7<><0E>q<EFBFBD> 1<> 7<> 7<><1E><01><02>9K<39> L<> <0A>.;<3B><0E>&)<29><16>$<24>,<2C>,<2C>&<26>4<EFBFBD><<3C><<3C><03>+<<3C>+C<>+C<>{<7B>GY<47>GY<47>+Y<><15> <0C> <0C>S<EFBFBD>!<21><0E>) <0E> <0E><>(<0E>) <0E> <0E>s*<00>%D<03>AD<03>1D<03>9AD<06>D<03>D<03>D!c<01>~<00>|j5|jj|g<00>cddd<01>S#1swYyxYw)z3Get list of agents that have a specific capability.N)rprkr<>)rE<00>capability_names r"<00>get_capability_ownersz.FatherCapabilityRegistry.get_capability_ownerss8<00><00> <11>Z<EFBFBD>Z<EFBFBD> G<01><17>-<2D>-<2D>1<>1<>/<2F>2<EFBFBD>F<> G<01> G<01> G<01>s<00>3<03><c <01> <00>|j5|jj<00>D<00><01><02>cic]/\}}||jD<00>cgc]}|j |<03><00><02>c}<03><02>1c}}}cddd<01>Scc}wcc}}}w#1swYyxYw)z&Get all capabilities grouped by agent.N)rprj<00>itemsrN<00> _cap_to_dict)rEr8r{r<>s r"<00>get_all_capabilitiesz-FatherCapabilityRegistry.get_all_capabilities sz<00><00> <11>Z<EFBFBD>Z<EFBFBD> <0E>-1<>L<EFBFBD>L<EFBFBD>,><3E>,><3E>,@<40><0E><0E>(<28>H<EFBFBD>j<EFBFBD><19>Z<EFBFBD>=T<>=T<>U<>c<EFBFBD>4<EFBFBD>,<2C>,<2C>S<EFBFBD>1<>U<>U<><0E> <0E> <0E><>U<><55><0E> <0E> <0E>s.<00>A:<03>A3
<EFBFBD>A.<12>A3
<EFBFBD> A:<03>.A3
<EFBFBD>3A:<03>:Bc<01><><00>|j5iiid<01>}|jj<00>D<00>]z\}}|jD<00>]d}|j|dvr(gt <00>|j d<03>|d|j<|d|jdj|<02>|d|jdj|j<00>t|jt<00>r|jjn |j}||dvrg|d|<|j|d|vr!|d|j|j<00>|jD]G}||dvrg|d|<|j|d|vs<01>'|d|j|j<00><00>I<00><01>g<00><01>}|dj<00>D]}t!|d<00>|d<<00>|cddd<08>S#1swYyxYw) z*Get catalog of all available capabilities.)<03>by_name<6D>by_type<70>by_tagr<67>)<03>agents<74>versionsr7r<>r<>r<>r<>N)rprjr<>rNr4r<>r7r<><00>addr6rCr5rr^r?r<>rI)rE<00>catalogr8r{r<><00>cap_typer<65><00> name_infos r"<00>get_capability_catalogz/FatherCapabilityRegistry.get_capability_catalogs<><00><00> <11>Z<EFBFBD>Z<EFBFBD>% <1B><1D><1D><1C><0E>G<EFBFBD> )-<2D> <0C> <0C>(:<3A>(:<3A>(<<3C> D<01>$<24><08>*<2A>%<25>2<>2<>D<01>C<EFBFBD><1A>x<EFBFBD>x<EFBFBD>w<EFBFBD>y<EFBFBD>'9<>9<>&(<28>(+<2B><05>+.<2E>?<3F>?<3F>8<1A><07> <09>*<2A>3<EFBFBD>8<EFBFBD>8<EFBFBD>4<>
<1C>I<EFBFBD>&<26>s<EFBFBD>x<EFBFBD>x<EFBFBD>0<><18>:<3A>A<>A<>(<28>K<><1B>I<EFBFBD>&<26>s<EFBFBD>x<EFBFBD>x<EFBFBD>0<><1A><<3C>@<40>@<40><13><1B><1B>M<>2<<3C>C<EFBFBD>H<EFBFBD>H<EFBFBD>d<EFBFBD>1K<31>s<EFBFBD>x<EFBFBD>x<EFBFBD>~<7E>~<7E>QT<51>QY<51>QY<51>H<EFBFBD><1F>w<EFBFBD>y<EFBFBD>'9<>9<>79<37><07> <09>*<2A>8<EFBFBD>4<><1A>x<EFBFBD>x<EFBFBD>w<EFBFBD>y<EFBFBD>'9<>(<28>'C<>C<><1F> <09>*<2A>8<EFBFBD>4<>;<3B>;<3B>C<EFBFBD>H<EFBFBD>H<EFBFBD>E<> #<23>x<EFBFBD>x<EFBFBD>D<01><03><1E>g<EFBFBD>h<EFBFBD>&7<>7<>57<35>G<EFBFBD>H<EFBFBD>-<2D>c<EFBFBD>2<><1E>8<EFBFBD>8<EFBFBD>7<EFBFBD>8<EFBFBD>+<<3C>S<EFBFBD>+A<>A<>#<23>H<EFBFBD>-<2D>c<EFBFBD>2<>9<>9<>#<23>(<28>(<28>C<> D<01>'D<01> D<01>6%<25>Y<EFBFBD>/<2F>6<>6<>8<> D<01> <09>(,<2C>Y<EFBFBD>z<EFBFBD>-B<>(C<> <09>*<2A>%<25> D<01><1B>K% <1B>% <1B>% <1B>s<00>E5G <03>AG <03> G)c<01><><00>|j5|j|<02>}|s
ddd<01>yg}|D]i}d}|j}d|vr8|d} || jdd<05>dzz }|| jdd<08>dz d zz }|j |j
|f<02><00>k|j d
<EFBFBD>d <0B> <0C>|r|ddndcddd<01>S#1swYyxYw) aX
Match a task to the most suitable agent.
Args:
task_description: Description of the task
required_capabilities: Required capabilities
preferences: Optional preferences (e.g., {'min_performance': 0.9})
Returns:
Agent ID of best match or None
Ng<00>?<3F> performance<63>accuracy_scorerg<00>?<3F>uptime_percent<6E>dg333333<33>?c<01> <00>|dS)Nrur )<01>xs r"rTz>FatherCapabilityRegistry.match_task_to_agent.<locals>.<lambda>as
<00><00>a<EFBFBD><01>d<EFBFBD>r!T)<02>key<65>reverse)rpr<>rMr<>r<>r8<00>sort)
rE<00>task_descriptionr<6E><00> preferences<65>
candidates<EFBFBD>scoredr<64><00>scorerM<00>perfs
r"<00>match_task_to_agentz,FatherCapabilityRegistry.match_task_to_agent<s<><00><00>"<12>Z<EFBFBD>Z<EFBFBD> 4<><1D>1<>1<>2G<32>H<>J<EFBFBD><1D><1B>  4<> 4<><18>F<EFBFBD>#<23> 7<><05><1B><05> <20>><3E>><3E><08> <20>H<EFBFBD>,<2C>#<23>M<EFBFBD>2<>D<EFBFBD><19>T<EFBFBD>X<EFBFBD>X<EFBFBD>&6<><01>:<3A>S<EFBFBD>@<40>@<40>E<EFBFBD><19>d<EFBFBD>h<EFBFBD>h<EFBFBD>'7<><13>=<3D><03>C<>s<EFBFBD>J<>J<>E<EFBFBD><16> <0A> <0A>u<EFBFBD>~<7E>~<7E>u<EFBFBD>5<>6<> 7<> <13>K<EFBFBD>K<EFBFBD>N<EFBFBD>D<EFBFBD>K<EFBFBD> 9<>#)<29>6<EFBFBD>!<21>9<EFBFBD>Q<EFBFBD><<3C>t<EFBFBD>- 4<> 4<> 4<>s<00>C<03>BC<03>C c<01>:<00>|jj|<01>y)zAdd an event listener.N)rqr<><00>rE<00>callbacks r"<00>add_event_listenerz+FatherCapabilityRegistry.add_event_listeneres<00><00> <0C><0F><0F><1E><1E>x<EFBFBD>(r!c<01>X<00>||jvr|jj|<01>yy)zRemove an event listener.N)rq<00>remover<65>s r"<00>remove_event_listenerz.FatherCapabilityRegistry.remove_event_listeneris%<00><00> <13>t<EFBFBD><EFBFBD><EFBFBD> &<26> <10>O<EFBFBD>O<EFBFBD> "<22> "<22>8<EFBFBD> ,<2C> 'r!c<01><><00>|jD] } ||||<03><00>y#t$r}td|<05><00><02>Yd}~<05>-d}~wwxYw)zNotify event listeners.zEvent listener error: N)rq<00> Exception<6F>print)rE<00>eventr8<00>data<74>listener<65>es r"rzz FatherCapabilityRegistry._notifynsK<00><00><1C><0F><0F> 4<>H<EFBFBD> 4<><18><15><08>$<24>/<2F> 4<><34><1D> 4<><15>.<2E>q<EFBFBD>c<EFBFBD>2<>3<>3<><33> 4<>s<00>
<02> ?<05>:<05>?c<01><><00>|j}|jD<00>]\}|j|jvrg|j|j<||j|jvr(|j|jj |<02>t |j t<00>r |j nt|j <00>}||jvrg|j|<||j|vr|j|j |<02>|jD]O}||jvrg|j|<||j|vs<01>2|j|j |<02><00>Q<00><01>_y)z Add agent to capability indices.N) r8rNr4rkr<>rCr5r$rmr?rl)rEr{r8r<>r<>r<>s r"ryz(FatherCapabilityRegistry._add_to_indicesvsO<00><00><1D>&<26>&<26><08><1D>*<2A>*<2A> D<01>C<EFBFBD><12>x<EFBFBD>x<EFBFBD>t<EFBFBD>9<>9<>9<>79<37><04>*<2A>*<2A>3<EFBFBD>8<EFBFBD>8<EFBFBD>4<><17>t<EFBFBD>9<>9<>#<23>(<28>(<28>C<>C<><14>*<2A>*<2A>3<EFBFBD>8<EFBFBD>8<EFBFBD>4<>;<3B>;<3B>H<EFBFBD>E<>$.<2E>c<EFBFBD>h<EFBFBD>h<EFBFBD><0E>#G<>s<EFBFBD>x<EFBFBD>x<EFBFBD>^<5E>\_<>\d<>\d<>Me<4D>H<EFBFBD><17>t<EFBFBD>9<>9<>9<>79<37><04>*<2A>*<2A>8<EFBFBD>4<><17>t<EFBFBD>9<>9<>(<28>C<>C<><14>*<2A>*<2A>8<EFBFBD>4<>;<3B>;<3B>H<EFBFBD>E<><1B>x<EFBFBD>x<EFBFBD> D<01><03><16>d<EFBFBD>7<>7<>7<>57<35>D<EFBFBD>-<2D>-<2D>c<EFBFBD>2<><1B>4<EFBFBD>#<<3C>#<<3C>S<EFBFBD>#A<>A<><18>-<2D>-<2D>c<EFBFBD>2<>9<>9<>(<28>C<>  D<01> Dr!c<01>B<00>|jj<00>D]}||vs<01>|j|<01><00>|jj<00>D]}||vs<01>|j|<01><00>|jj<00>D]}||vs<01>|j|<01><00>y)z%Remove agent from capability indices.N)rkr<>r<>rmrl)rEr8<00> name_list<73> type_list<73>tag_lists r"rxz-FatherCapabilityRegistry._remove_from_indices<65>s<><00><00><1E>3<>3<>:<3A>:<3A><<3C> +<2B>I<EFBFBD><17>9<EFBFBD>$<24><19> <20> <20><18>*<2A> +<2B>
<1E>3<>3<>:<3A>:<3A><<3C> +<2B>I<EFBFBD><17>9<EFBFBD>$<24><19> <20> <20><18>*<2A> +<2B>
<1D>1<>1<>8<>8<>:<3A> *<2A>H<EFBFBD><17>8<EFBFBD>#<23><18><0F><0F><08>)<29> *r!c<01><00>|jt|jt<00>r|jjn |j|j
|j |j|j|jd<01>S)z!Convert capability to dictionary.)r4r5r6r7r<r=r?)
r4rCr5rr^r6r7r<r=r?)rEr<>s r"r<>z%FatherCapabilityRegistry._cap_to_dict<63>sV<00><00><18>H<EFBFBD>H<EFBFBD>&0<><13><18><18>4<EFBFBD>&@<40>C<EFBFBD>H<EFBFBD>H<EFBFBD>N<EFBFBD>N<EFBFBD>c<EFBFBD>h<EFBFBD>h<EFBFBD><1A>{<7B>{<7B><1E>?<3F>?<3F><1D>.<2E>.<2E><1A>{<7B>{<7B><17>H<EFBFBD>H<EFBFBD>
<EFBFBD>
r!c<01><><00><01>|j5i|j<00>t|j<00>t|j<00>t|j
<00>t|j <00>tD<00><01>cic]9<00><01>jt<00>fd<01>|jj<00>D<00><00><00><02>;c}d<02><05>cddd<03>Scc}w#1swYyxYw)zGet registry statistics.c3<01>B<00>K<00>|]}|j<00>k(s<01>d<00><01><00>y<01>w)ruN)rO)<03>.0<EFBFBD>arOs <20>r"<00> <genexpr>z5FatherCapabilityRegistry.get_stats.<locals>.<genexpr><3E>s!<00><><00><><00>&<16><1F>A<EFBFBD>H<EFBFBD>H<EFBFBD><06><N<><01>&<16>s<00><01>)<05>registered_agents<74>unique_capabilities<65>capability_types<65> unique_tags<67>agents_by_statusN) rprrr_rjrkrmrlrr^<00>sumr<6D>)rErOs `r"<00> get_statsz"FatherCapabilityRegistry.get_stats<74>s<><00><><00> <11>Z<EFBFBD>Z<EFBFBD> <0E> <0E><16>+<2B>+<2B> <0E>%(<28><14><1C><1C>%6<>'*<2A>4<EFBFBD>+E<>+E<>'F<>$'<27><04>(B<>(B<>$C<>"<22>4<EFBFBD>#<<3C>#<<3C>=<3D>
#.<2E> %<12><1F><1B>L<EFBFBD>L<EFBFBD>#<23>&<16>#'<27><<3C><<3C>#6<>#6<>#8<>&<16>#<16><16>%<12> <0E> <0E> <0E><>%<12> <0E> <0E>s<00>A'C<03>5>C<10>3C<03>C<03>Cc
<01>D<00>|j5tj<00>j<00>|j|j
j <00>D<00><01>cic]\}}||j<00><00><02>c}}|j<00>d<01>cddd<02>Scc}}w#1swYyxYw)zExport registry state.)<04> exported_at<61>statsr<73><00>capability_catalogN) rprrRrSrrrjr<>r`r<>r<>s r"<00>exportzFatherCapabilityRegistry.export<72>s<><00><00> <11>Z<EFBFBD>Z<EFBFBD> <0E>'<27><EFBFBD><EFBFBD>0<>:<3A>:<3A><<3C><1D><1B><1B>15<31> <0C> <0C>0B<30>0B<30>0D<30><12>,<2C><08>*<2A><1D>j<EFBFBD>0<>0<>2<>2<><12>'+<2B>&A<>&A<>&C<><0E> <0E> <0E><><12> <0E> <0E>s<00>A
B<03>B <0C>2B<03>B<03>Bc<01>L<00>tj|j<00>|<01><01>S)zExport as JSON.<2E><01>indent)<03>json<6F>dumpsr<73>)rEr<>s r"<00> export_jsonz$FatherCapabilityRegistry.export_json<6F>s<00><00><13>z<EFBFBD>z<EFBFBD>$<24>+<2B>+<2B>-<2D><06>7<>7r!)r{rKrb<00>bool)r8r3rbr<>)r8r3rOrrbr<>)r8r3rbzOptional[AgentCapabilities])NNN)rOzOptional[AgentStatus]r<>rXr<>rXrb<00>List[AgentCapabilities])T)r<>r>r<>r<>rbr<>)r<>r3rbr>)rbzDict[str, List[Dict[str, Any]]]rarB)r<>r3r<>r>r<>zOptional[Dict[str, Any]]rbrX)r<>zCallable[[str, str, Any], None])r<>r3r8r3r<>r
)r{rK)r8r3)r<>r2rbr;)<01>)r<><00>intrbr3)rrrrrsr}r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rzryrxr<>r<>r<>r<>r r!r"rdrdVs<><00><00><08>
<EFBFBD>"<1A>> <18><18>".<2E>)-<2D>$(<28>!<21> '<1B>%<25>'<1B>"<22>'<1B><1B> '<1B>
!<21> '<1B>X!<21>&<0E>(<28>&<0E><1A>&<0E>
!<21> &<0E>PG<01>
<0E>'<1B>Z15<31> '4<><1D>'4<> )<29>'4<>.<2E> '4<>
<17> '4<>R)<29>-<2D>
4<>D<01>2*<2A>"

<EFBFBD><0E>" <0E>8r!rdz"Optional[FatherCapabilityRegistry]<5D>_registry_instancec<01>.<00>t<00>
t<00>atS)z)Get or create the global father registry.)r<>rdr r!r"<00>get_father_registryr<79><00>s<00><00><1A>!<21>5<>7<><1A> <1D>r!<00>__main__z
ap-agent-1zhttp://localhost:9001<30>code_generationz1.0z Generate code<64> file_readerz
Read files<65>
filesystem)r?)r8rLrNrOz
ap-agent-2zhttp://localhost:9002<30> code_analysisz2.0z Analyze codezRegistry stats:z
Capability catalog:r<>r<>z
Agents with code_generation:zAgents with file_reader:z
Match task to agent:zGenerate Python code)rbrd)+r<00>
__future__rr<><00>hashlib<69> dataclassesrrr<00>typingrrr r
r r r r<00>enumrrnrr$r2rKrdr<>rGr<>r<00>registryr,r+r<00>agent1<74>agent2r}r<>r<>r<>r<>r<>r<>r r!r"<00><module>rs<><00><01><04>#<23> <0B><0E>0<>0<>B<>B<>B<><1D><15><10><18>$<24><18><18>T<EFBFBD><18> <0B>2<>2<> <0B>2<>" <0B>
<EFBFBD>
<EFBFBD> <0B>
<EFBFBD>8v8<>v8<>t :><3E><12>6<>=<3D><1E> <0C>z<EFBFBD><19>'<27>)<29>H<EFBFBD><1F><1D>(<28> <1A>,<2C>n<EFBFBD>.B<>.B<>E<EFBFBD>?<3F>\h<> i<> <1A>=<3D>.<2E>*=<3D>*=<3D>u<EFBFBD>l<EFBFBD>T`<60>ht<68>gu<67> v<>
<EFBFBD><1B>!<21>!<21><06>F<EFBFBD><1F><1D>(<28> <1A>?<3F>N<EFBFBD>,@<40>,@<40>%<25><1E>Ye<59> f<> <1A>=<3D>.<2E>*=<3D>*=<3D>u<EFBFBD>l<EFBFBD>T`<60>ht<68>gu<67> v<>
<EFBFBD><1B>!<21>!<21><06>F<EFBFBD> <0A><1B><1B>F<EFBFBD>#<23> <0C><1B><1B>F<EFBFBD>#<23> <09>
<1B>X<EFBFBD>/<2F>/<2F>1<>2<> <09>
!<21>:<3A>4<EFBFBD>:<3A>:<3A>h<EFBFBD>.M<>.M<>.O<>XY<58>#Z<>[<5B> <09>
*<2A>H<EFBFBD>,J<>,J<>K\<5C>,]<5D>^<5E> <09>
$<24>h<EFBFBD>&D<>&D<>]<5D>&S<>T<> <09>
"<22>H<EFBFBD>$@<40>$@<40><1E> <1A><1B>%<06><07>Er!