+
    lHàj^  ã                  óD  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
HtHtHtHt ^ RIHtHt ]P$                  ! R4      t]! 0 RPm4      t]	RR/R	 R
 ll4       tR R ltRQR R lltRQR R lltR R ltRRR R llt ! R R]]P:                  4      tR]P>                  R]P>                  R]P@                  R]PB                  R]PD                  /t#R]$R&   ]! 0 RSm4      t%RR"RR#R R$R!R%]P>                  R&]PD                  R']PB                  R/t&R(]$R)&   R* R+ lt'R,t(R-t)R.t*R/t+R0t,RTR1RR2R3R4^R5^/R6 R7 lllt-R8 R9 lt./ t/R:]$R;&   ]P`                  ! 4       t1RTR< R= llt2RTR> R? llt3R@ RA lt4RTRB RC llt5RD RE lt6 ! RF RG4      t7RURHRRIRRJRRKRRLRRMR/RN RO lllt8R# )Vz`Child progress relay, console formatting and child system-prompt construction for delegate_task.)ÚannotationsN)Úcontextmanager)ÚAnyÚDictÚListÚOptional)Ú_active_subagentsÚ_active_subagents_lockztools.delegate_toolÚexc_infoFc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úlog_messageúOptional[str]Úlog_argsr   r
   Úbool© )Úformats   "ÚA/home/ubuntu/.hermes/hermes-agent/tools/delegate_tool_progress.pyÚ__annotate__r      s&   € ÷ 
@ñ 
@˜ð 
@°#ð 
@Àñ 
@ó    c             '  óâ   "  €  Rx € R#   \          dX   pT f    Rp?R# T P                  R4      \        T4      8”  d
   Y#3,           p\        P                  ! T .TO5RT/   Rp?R# Rp?ii ; i5i)u°   Best-effort block: any Exception is swallowed (never reaches the run) and, when ``log_message`` is given,
logged at debug â€” the exception fills a trailing unsatisfied ``%s``.NÚ%r
   )Ú	ExceptionÚcountÚlenÚloggerÚdebug)r   r
   r   Úexcs   &$* r   Ú_quietr      sb   é € ð@ÝøÜô @ØÒÝØ×Ñ˜SÓ!¤C¨£MÔ1Ø &Õ(ˆHÜ�Š�[Ð? 8Ò?°h×?Ð?ûð@üs5   ‚A/„
 ˆA/ŠA,•A'™A/ŸAA'Á!A/Á'A,Á,A/c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r   Úcbr   Ú
event_typeÚargsÚkwargsÚreturnÚNoner   )r   s   "r   r   r       s/   € ÷ ,ñ ,�sð ,¨ð ,°Cð ,À3ð ,È4ñ ,r   c                ó”   € V '       d,   \        RV4      ;_uu_ 4        V ! V.VO5/ VB  RRR4       R# R#   + '       g   i     R# ; i)zEInvoke a child progress callback; relay failures never reach the run.zProgress callback %s failed: %sN)r   )r    r!   r"   r#   s   &&*,r   Ú_safe_progressr'       s=   € ç	ÜÐ5°z×BÕBÙˆzÐ+˜DÒ+ FÒ+÷ CÑBñ 
ßB×BÐBús	   �6¶A	c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úerrorr   Ú	max_charsÚintr$   Ústrr   )r   s   "r   r   r   &   s&   € ÷ Lñ L˜Sð L¨Sð L¸3ñ Lr   c                ó°  € ^ RI Hp T! \        T ;'       g    R4      RR7      P                  4       P	                  4        Uu. uF*  q3P                  4       '       g   K  VP                  4       NK,  	  ppV'       g   R# V^ ,          P                  R4      '       d
   VR,          MV^ ,          p\        V4      V8”  d   VRV^,
           R,           # T# u upi )	z§Reduce an error payload (traceback / JSON wall) to one clean line: the exception message (last line of a
traceback) or the first non-empty line, hard-capped in length.)Úredact_child_textÚ F)ÚforceÚ	TracebackNú...éÿÿÿÿ)Útools.delegation_redactionr.   r,   ÚstripÚ
splitlinesÚ
startswithr   )r)   r*   r.   ÚlnÚlinesÚlines   &&    r   Ú_clean_error_textr;   &   s§   € õ =Ù"3´C¸¿¸ÀÓ4DÈEÔ"R×"XÑ"XÓ"Z×"eÑ"eÔ"gÓvÑ"g˜B×ksÑks×kuŒZˆR�X‰XŽZÑ"g€EÐvßÙØ˜a�×+Ñ+¨K×8Ò8ˆ5�Ž9¸eÀA½h€DÜ,/°«I¸	Ô,Aˆ4��)˜a•-Ð  5Õ(ÐKÀtÐKùò	 ws   ÁCÁCc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úfailure_reasonr   r)   r*   r+   r$   r,   r   )r   s   "r   r   r   1   s)   € ÷ 8ñ 8¨cð 8¸#ð 8È#ð 8ÐX[ñ 8r   c                óN   € ^ RI Hp V! V RRR7      pT;'       g    \        W4      # )zŸPlain-language reason for a failed child: the classified ``failure_reason`` gloss when there is one,
else the child's own error text reduced to one clean line.)Úfailure_cause_glossÚitÚits)ÚsubjectÚ
possessive)Úagent.turn_failure_copyr?   r;   )r=   r)   r*   r?   Úglosss   &&&  r   Údescribe_subagent_failurerF   1   s)   € õ <á ¸ÈÔO€EØ×7Ð7Ô% eÓ7Ð7r   c               ó    € V ^8„  d   QhRRRR/# )r   Úsecondsr   r$   r,   r   )r   s   "r   r   r   ;   s   € ÷ Tñ T˜cð T cñ Tr   c                ó    € \        V \        \        34      '       d   V ^ 8:  d   R# V ^x8¼  d   \        V ^<,          4       R2# \        V 4       R2# )é    r/   z minÚs)Ú
isinstancer+   ÚfloatÚround)rH   s   &r   Ú_format_durationrO   ;   sK   € Ü�g¤¤U˜|×,Ò,°¸1´ÙØ+2°c¬>Œe�G˜b•LÓ!Ð" $Ð'ÐSÄ%ÈÃ.ÐAQÐQRÐ?SÐSr   c               ó0   € V ^8„  d   QhRRRRRRRRRRRR	/# )
r   Úgoalr   Ústatusr)   r   Úduration_secondsr=   r$   r,   r   )r   s   "r   r   r   A   sF   € ÷ Pñ PØ
ðPØ!.ðPØ7:ðPØUXðPàðPð 	ñPr   c                ó¨  € T ;'       g    RP                  4       P                  RR4      p\        V4      ^<8”  d   VR,          R,           pV'       d   RV R2MRp\        V4      pVR8X  d   V'       d   R	V 2MRpR
V V R2# RV 2p	V'       d   V	R	V 2,          p	\	        WB4      p
V
'       d   V	RV
P                  R4       2,          p	V	R,           # )u¸  One clean, human-readable line describing a failed subagent, rendered directly to the user (CLI spinner
echo, gateway platform notice). Says what happened and what to do next; never the raw exception when the
child loop classified the failure, e.g.
``âš ï¸� Subagent failed â€” "research competitor pricing" after 12s: the model it was given was not found at the
AI model service. Details: /agents, or ask me to retry with a smaller task.``r/   Ú
Ú :Né9   Nr2   u    â€” "Ú"Útimeoutz after u   âš ï¸� Subagent timed outz¥ without finishing. I will carry on without it; ask me to retry it, or raise delegation.child_timeout_seconds in config.yaml if these tasks legitimately take longer.u   âš ï¸� Subagent failedz: Ú.z;. Details: /agents, or ask me to retry with a smaller task.)r5   Úreplacer   rO   rF   Úrstrip)rQ   rR   r)   rS   r=   Ú
goal_labelÚ	goal_partÚelapsedÚafterr:   Úreasons   &&&&&      r   Úformat_subagent_failure_linerb   A   sæ   € ð —*�*˜"×#Ñ#Ó%×-Ñ-¨d°CÓ8€JÜ
ˆ:ƒ˜ÔØ •_ uÕ,ˆ
ß*4�&˜˜ AÑ&¸"€IÜÐ/Ó0€GØ�Ô÷ (/�'˜'˜Ñ#°Bˆà'¨	 {°5°'ð :ð ð	
ð
 $ I ;Ð/€DßØ�'˜'˜Ð#Õ#ˆÜ& ~Ó=€FßØ�"�V—]‘] 3Ó'Ð(Ð)Õ)ˆØÐOÕOÐOr   c                  ó6   € ] tR t^atRtRtRtRtRtRt	Rt
RtR	tR
# )ÚDelegateEventu†  Formal delegation progress event types. The relay normalises incoming legacy strings (``tool.started``,
``_thinking``, â€¦) to these via ``_LEGACY_EVENT_MAP``; external consumers (gateway SSE, ACP adapter, CLI) still
receive the legacy strings during the deprecation window. TASK_SPAWNED / TASK_COMPLETED / TASK_FAILED are
reserved for future orchestrator lifecycle events, not emitted yet.zdelegate.task_spawnedzdelegate.task_progresszdelegate.task_completedzdelegate.task_failedzdelegate.task_thinkingzdelegate.tool_startedzdelegate.tool_completedr   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚTASK_SPAWNEDÚTASK_PROGRESSÚTASK_COMPLETEDÚTASK_FAILEDÚTASK_THINKINGÚTASK_TOOL_STARTEDÚTASK_TOOL_COMPLETEDÚ__static_attributes__r   r   r   rd   rd   a   s/   † ñKð
 +€LØ,€MØ.€NØ(€KØ,€MØ/ÐØ3Ôr   rd   Ú	_thinkingzreasoning.availableztool.startedztool.completedÚsubagent_progresszdict[str, DelegateEvent]Ú_LEGACY_EVENT_MAPúsubagent.spawn_requestedúsubagent.startúsubagent.completeúsubagent.textÚ_on_spawn_requestedÚ	_on_startÚ_on_completeÚ_on_textÚ_on_thinkingÚ_on_progresszdict[Any, Optional[str]]Ú_EVENT_HANDLERSc               ó    € V ^8„  d   QhRRRR/# )r   r!   r   r$   r   )r   s   "r   r   r   †   s   € ÷ ñ  ð ¨ñ r   c                óö   € \        V \        4      '       g"   \        V \        4      '       d   V \        9   d   V #  \        P                  V 4      ;'       g    \        V 4      #   \        \        3 d     R# i ; i)us   Lifecycle string / DelegateEvent / legacy string / ``delegate.*`` string
â†’ dispatch key; None for unknown events.N)rL   rd   r,   Ú_LIFECYCLE_EVENTSrt   ÚgetÚ
ValueErrorÚ	TypeError)r!   s   &r   Ú_normalize_eventr†   †   sf   € ô �*œm×,Ò,´¸JÌ×1LÒ1LÐQ[Ô_pÔQpØÐðÜ ×$Ñ$ ZÓ0×MÐM´MÀ*Ó4MÐMøÜœ	Ð"ô Úðús   »A# ÁA# Á#A8Á7A8zŒ
The workspace's project context files are reproduced below. Their conventions and invariants are binding for your work in this workspace.

aÖ  
Complete this task using the tools available to you. When finished, provide a clear, concise summary of:
- What you did
- What you found or accomplished
- Any files you created or modified
- Any issues encountered

Important workspace rule: Never assume a repository lives at /workspace/... or any other container-style path unless the task/context explicitly gives that path. If no exact local path is provided, discover it first before issuing git/workdir-specific commands.

Keep your final summary tight: lead with outcomes, prefer bullet points over paragraphs, and don't replay your whole process. Your response is returned to the parent agent as a summary, and overlong summaries crowd out the parent's context window.uø  
## Subagent Spawning (Orchestrator Role)
You have access to the `delegate_task` tool and CAN spawn your own subagents to parallelize independent work.

WHEN to delegate:
- The goal decomposes into 2+ independent subtasks that can run in parallel (e.g. research A and B simultaneously).
- A subtask is reasoning-heavy and would flood your context with intermediate data.

WHEN NOT to delegate:
- Single-step mechanical work â€” do it directly.
- Trivial tasks you can execute in one or two tool calls.
- Re-delegating your entire assigned goal to one worker (that's just pass-through with no value added).

Coordinate your workers' results and synthesize them before reporting back to your parent. You are responsible for the final summary, not your workers.

z¸Your own children MUST be leaves (cannot delegate further) because they will reach the maximum nesting depth. The system manages this automatically; no parameter override is available.zÜYour own children can themselves delegate because depth remains. The system determines this automatically from the nesting depth; children at the maximum depth cannot delegate further. No parameter override is available.Úworkspace_pathÚroleÚleafÚmax_spawn_depthÚchild_depthc               ó4   € V ^8„  d   QhRRRRRRRRRRR	RR
R/# )r   rQ   r,   Úcontextr   r‡   rˆ   rŠ   r+   r‹   r$   r   )r   s   "r   r   r   ´   sF   € ÷ 'ñ 'Ø
ð'Ø%ð'ØANð'Ø]`ð'àð'à+.ð'ð 	ñ'r   c               óÞ  € R.pV'       d+   VP                  4       '       d   VP                  RV 24       V'       d®   \        V4      P                  4       '       d�   TP                  RV R24       Rp\        RRR7      ;_uu_ 4        ^ R	IHp V! \        V4      RR
7      pRRR4       VP                  4       '       d+   VP                  \        VP                  4       ,           4       VP                  \        4       VR8X  dE   V^,           V8¼  d   \        M\        p	VP                  \        RV RV R2,           V	,           4       RP                  V4      #   + '       g   i     LÁ; i)zùFocused system prompt for a child agent. role='orchestrator' appends a delegation-capability block (modeled on
OpenClaw's buildSubagentSystemPrompt); its depth note is literal truth grounded in the passed config so the LLM
can't confabulate nesting.z@You are a focused subagent working on a specific delegated task.z

CONTEXT:
z
WORKSPACE PATH:
zg
Use this exact path for local repository/workdir operations unless the task explicitly says otherwise.r/   z-subagent: workspace context-files load failedT)r
   )Úbuild_context_files_prompt)ÚcwdÚ	skip_soulNÚorchestratorzNOTE: You are at depth z3. The delegation tree is capped at max_spawn_depth=z. rU   )r5   Úappendr,   r   Úagent.prompt_builderr�   Ú_CONTEXT_FILES_INTROÚ_COMPLETION_INSTRUCTIONSÚ_LEAF_CHILDREN_NOTEÚ_NESTED_CHILDREN_NOTEÚ_ORCHESTRATOR_BLOCKÚjoin)
rQ   r�   r‡   rˆ   rŠ   r‹   ÚpartsÚ
_ctx_filesr�   Ú
child_notes
   &&$$$$    r   Ú_build_child_system_promptrž   ´   s7  € ð PÐP€Eß�7—=‘=—?’?Ø�‰�| G 9Ð-Ô.ßœ#˜nÓ-×3Ñ3×5Ò5Ø�‰Ø!ØÐð uðuô	
ð ˆ
ÜÐCÈd×SÖSåGÙ3¼¸NÓ8KÐW[Ô\ˆJ÷ Tð ×Ñ×ÒØ�L‰LÔ-°
×0@Ñ0@Ó0BÕBÔCØ	‡L�LÔ)Ô*Øˆ~ÔØ,7¸!­O¸Ô,NÕ(ÔTiˆ
Ø�‰ÜØ'¨ }Ð4gÐhwÐgxÐxzÐ{õ|àõô	
ð
 �9‰9�UÓÐ÷ T×Sús   Â	EÅE,	c               ó   € V ^8„  d   QhRR/# )r   r$   r   r   )r   s   "r   r   r   Ý   s   € ÷ ñ ¨]ñ r   c           
     ó@  € ^ RI Hp V! 4       \        \        V RR4      RR4      \        V RR4      \        V RR4      .p\        RV4       F¼  p\	        R4      ;_uu_ 4        \
        P                  P                  \
        P                  P                  \        V4      4      4      p\
        P                  P                  V4      '       d4   \
        P                  P                  V4      '       d   VuuRRR4       u # RRR4       K¾  	  R#   + '       g   i     KÓ  ; i)z†Best-effort local workspace hint for child prompts: only a concrete
absolute directory is ever injected (never a fake container path).)Úscope_terminal_cwdÚ_subdirectory_hintsNÚworking_dirÚterminal_cwdr�   )Úagent.runtime_cwdr¡   ÚgetattrÚfilterr   ÚosÚpathÚabspathÚ
expanduserr,   ÚisabsÚisdir)Úparent_agentr¡   Ú
candidatesÚ	candidateÚtexts   &    r   Ú_resolve_workspace_hintr²   Ý   sÅ   € õ 5áÓœg¤g¨lÐ<QÐSWÓ&XÐZgÐimÓnÜ�˜n¨dÓ3´W¸\È5ÐRVÓ5Wð€Jô ˜D *Ö-ˆ	Ü�D�\�\Ü—7‘7—?‘?¤2§7¡7×#5Ñ#5´c¸)³nÓ#EÓFˆDÜ�w‰w�}‰}˜T×"Ò"¤r§w¡w§}¡}°T×':Ò':Ø÷ �\Ž\ñ .ñ
 ÷	 �\ˆ\ús   Á BDÃ0DÄDzdict[str, dict[str, int]]Ú_BATCH_ORDINALSc               ó$   € V ^8„  d   QhRRRRRR/# )r   Údelegation_idr   r®   r   r$   r,   r   )r   s   "r   r   r   ï   s"   € ÷ ñ  Mð Àð ÐPSñ r   c                óP  € \        V \        4      '       d	   V '       g   R# \        \        VRR4      ;'       g    R4      p\        ;_uu_ 4        \        P                  V/ 4      pVP                  V \        V4      ^,           4      pRRR4       RX 2#   + '       g   i     L; i)u’  Short human tag for a delegation batch: the parent's first fan-out is ``set 1``, its next distinct
delegation id ``set 2``. Several batches (a parent's fan-out plus a child's nested fan-out, or two
concurrent tools) print interleaved ``[n/N]`` lines to one console; without a tag ``âœ“ [3/3]`` and ``âœ“ [3/9]``
are indistinguishable, and a raw hex slice is unreadable. Ordinals are scoped per parent conversation
(``parent_agent.session_id``): one process hosts many conversations and every child's own fan-out, so a
process-wide counter showed a user's second wave as ``set 20``. Empty string when no id is known so callers
can concatenate unconditionally.r/   Ú
session_idNzset )rL   r,   r¦   Ú_BATCH_ORDINALS_LOCKr³   Ú
setdefaultr   )rµ   r®   ÚscopeÚordinalsÚns   &&   r   Úformat_batch_tagr½   ï   s€   € ô �m¤S×)Ò)·ÙÜ”˜ l°DÓ9×?Ð?¸RÓ@€Eß	Ö	Ü"×-Ñ-¨e°RÓ8ˆØ×Ñ ¬s°8«}¸qÕ/@ÓAˆ÷ 
ð �!�ˆ:Ð÷ 
×	ús   Á9BÂB%	c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   rµ   r   Ú
task_indexr+   Ú
task_countr®   r   r$   r,   r   )r   s   "r   r   r   ÿ   s1   € ÷ &ñ & ð &¸Cð &ÈSð &Ð`cð &Ðorñ &r   c                ó    € \        W4      pV^8”  d.   V'       d   V RV^,            RV 2MV^,            RV 2pRV R2# V'       d   RV R2# R# )ux   ``[set 2 Â· 3/9] `` for batch children, ``[set 2] `` for a lone child,
``[3/9] `` / ``""`` when the batch id is unknown.u    Â· Ú/Ú[z] r/   )r½   )rµ   r¿   rÀ   r®   ÚtagÚinners   &&&&  r   Ú_batch_prefixrÆ   ÿ   sk   € ô ˜=Ó
7€CØ�A„~ß=@�3�%�t˜J¨�NÐ+¨1¨Z¨LÑ9ÈÐVWÍÐHXÐXYÐZdÐYeÐFfˆØ�5�'˜ˆ}ÐßˆQˆsˆe�2ˆ;Ð% 2Ð%r   c               ó    € V ^8„  d   QhRRRR/# )r   r:   r,   r$   r%   r   )r   s   "r   r   r     s   € ÷ ñ ¨Sð °Tñ r   c                óÌ   € \        V RR4      p\        V4      '       d(   \        R4      ;_uu_ 4        V! V4        RRR4       R# \        V4       R#   + '       g   i     L; i)zÔEmit a progress line through ``parent_agent._safe_print`` when available so headless stdio hosts (ACP, gateway
API) can redirect it to stderr; a bare ``print()`` would land on stdout and corrupt JSON-RPC framing.Ú_safe_printN)r¦   Úcallabler   Úprint)r®   r:   Úprinters   && r   Ú_emit_parent_consolerÍ     sH   € ô �l M°4Ó8€GÜ�×ÒÜ�D�\�\Ù�DŒMØ÷ ‰\ô 
ˆ$†K÷ �\ús   ²
AÁA#	c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   r®   r   Úspinner_refr:   r,   Úconsole_liner   r$   r%   r   )r   s   "r   r   r     s8   € ÷ ^ñ ^¨ð ^¸3ð ^Àcð ^ÐYfð ^Ðrvñ ^r   c                óÐ   € V'       d1   \        R4      ;_uu_ 4        VP                  V4        RRR4       R# \        Yf   RV 24       R# T4       R#   + '       g   i     L,; i)z˜Above-spinner line when a spinner exists (console fallback if it raises), else console
(``console_line`` when given, else the line indented two spaces).Nz  )r   Úprint_aboverÍ   )r®   rÏ   r:   rÐ   s   &&&&r   Ú_print_completion_linerÓ     sK   € ÷ Ü�D�\�\Ø×#Ñ# DÔ)Ø÷ ‰\ô ˜Ò6J¨¨D¨6 {Ö]ÐP\Ö]÷ �\ús   œAÁA%	c               ó$   € V ^8„  d   QhRRRRRR/# )r   r±   r,   r¼   r+   r$   r   )r   s   "r   r   r     s!   € ÷ 9ñ 9�ð 9˜ð 9 ñ 9r   c                ó>   € \        V 4      V8”  d   V R V R,           # T # )Nr2   )r   )r±   r¼   s   &&r   Ú_shortrÖ     s"   € Ü!$ T£¨Q¤ˆD��!ˆH�uÕÐ8°DÐ8r   c                  ó¤   € ] tR tRtRt^tR R ltR R ltR R ltRR
 R llt	R R lt
R R ltR tR tR tR tR tR tR tRR R lltRtR	# )Ú_ChildProgressRelayi  aœ  Callable relaying one child's events to the parent display. CLI: prints tree-view lines above the parent's
delegation spinner. Gateway: batches tool names (``_BATCH_SIZE``) and relays to the parent's progress callback,
threading the identity kwargs (subagent_id, parent_id, depth, model, toolsets) into every event so the TUI can
rebuild the live spawn tree and route per-branch controls back by ``subagent_id``.c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r   r¿   r+   rQ   r,   Úspinnerr   Ú	parent_cbrÀ   r$   r%   r   )r   s   "r   r   Ú _ChildProgressRelay.__annotate__'  s>   € ÷ ñ ØðØ%(ðØ36ðØCFðØTWðð 
ñr   c                	ó  € YT;'       g    R P                  4       uV n        V n        V n        Y4Ve   TM/ uV n        V n        V n        WgW‰V
3w  V n        V n        V n	        V n
        V n        . V n        RV n        ^ V n        R# )r/   N)r5   r¿   rÀ   r]   rÚ   rÛ   Úsession_refÚsubagent_idÚ	parent_idÚdepthÚmodelÚtoolsetsÚbatchÚparent_scopeÚ
tool_count)Úselfr¿   rQ   rÚ   rÛ   rÀ   rß   rà   rá   râ   rã   rÞ   s   &&&&&&&&&&&&r   Ú__init__Ú_ChildProgressRelay.__init__'  s‡   € ð =GÐUY×U_ÐU_Ð]_×TfÑTfÓThÐ9ˆŒ˜œ¨$¬/à9@Ð\gÒ\sÉ[Ðy{Ð6ˆŒ�d”n dÔ&6à E°(ðS
ÑOˆÔ˜$œ.¨$¬*°d´jÀ$Ä-ð !#ˆŒ
Ø!%ˆÔØˆŽr   c               ó   € V ^8„  d   QhRR/# )r   r$   r,   r   )r   s   "r   r   rÜ   5  s   € ÷ 
ñ 
˜ñ 
r   c                	ó¬   € \        V P                  P                  R 4      V P                  V P                  V P                  P                  R4      R7      # )rµ   Ú_parent_scope)r®   )rÆ   rÞ   rƒ   r¿   rÀ   ©rç   s   &r   Ú_prefixÚ_ChildProgressRelay._prefix5  sE   € ô Ø×Ñ× Ñ  Ó1°4·?±?ÀDÇOÁOØ×)Ñ)×-Ñ-¨oÓ>ô
ð 	
r   c               ó   € V ^8„  d   QhRR/# )r   r$   zdict[str, Any]r   )r   s   "r   r   rÜ   >  s   € ÷ ñ  .ñ r   c           
     	óÒ  € R V P                   RV P                  RV P                  /pTP                  R Uu/ uF  p\	        W4      f   K  V\	        W4      bK   	  up4       V P
                  e   \        V P
                  4      VR&   R FF  w  r4V P                  P                  V4      '       g   K(  \        V P                  V,          4      W&   KH  	  V P                  VR&   V# u upi )r¿   rÀ   rQ   rã   ræ   )rß   rà   rá   râ   ))r·   Úchild_session_id)rµ   rµ   )r¿   rÀ   r]   Úupdater¦   rã   ÚlistrÞ   rƒ   r,   ræ   )rç   ÚkwÚkÚsrcÚdsts   &    r   Ú_identity_kwargsÚ$_ChildProgressRelay._identity_kwargs>  sÐ   € Ø*¨D¯O©O¸\È4Ï?É?Ð\bÐdh×dsÑdsÐtˆØ
�	‰	Ñ0^ÓÑ0^¨1ÔbiÐjnÓbrÔ&�1”g˜dÓ&Ò&Ñ0^Ñô  	AØ�=‰=Ò$Ü! $§-¡-Ó0ˆBˆz‰Nó a‰HˆCØ×Ñ×#Ñ# C×(Ô(Ü˜d×.Ñ.¨sÕ3Ó4�“ñ að  Ÿ?™?ˆˆ<ÑØˆ	ùò @s   ¶C$Á
C$Nc               ó$   € V ^8„  d   QhRRRRRR/# )r   r!   r,   Ú	tool_nameú
str | NoneÚpreviewr   )r   s   "r   r   rÜ   K  s&   € ÷ nñ n ð n°ð nÈZñ nr   c           	     	óÚ   € V P                   '       dE   \        R 4      ;_uu_ 4        V P                   ! WW43/ / V P                  4       CVCB  RRR4       R# R#   + '       g   i     R# ; i)zParent callback failed: %sN)rÛ   r   rù   )rç   r!   rü   rþ   r"   r#   s   &&&&&,r   Ú_relayÚ_ChildProgressRelay._relayK  sV   € Ø�>�>ˆ>äÐ4×5Õ5Ø—’˜z°gÑmÐGlÈ$×J_ÑJ_ÓJaÐGlÐekÐGlÒm÷ 6Ñ5ñ ç5×5Ð5ús   ¦'AÁA*	c               ó    € V ^8„  d   QhRRRR/# )r   r±   r,   r$   r%   r   )r   s   "r   r   rÜ   Q  s   € ÷ Lñ L˜sð L tñ Lr   c                óì   € V P                   '       dN   \        R4      ;_uu_ 4        V P                   P                  RV P                  4        RV 24       RRR4       R# R#   + '       g   i     R# ; i)zIPrint one tree-view line above the CLI spinner (no-op without a spinner).zSpinner print_above failed: %srV   u   â”œâ”€ N)rÚ   r   rÒ   rî   )rç   r±   s   &&r   Ú
_tree_lineÚ_ChildProgressRelay._tree_lineQ  sT   € à�<�<ˆ<ÜÐ8×9Õ9Ø—‘×(Ñ(¨1¨T¯\©\«^Ð,<¸GÀDÀ6Ð)JÔK÷ :Ñ9ñ ß9×9Ð9ús   ¦0A"Á"A3	c               ó   € V ^8„  d   QhRR/# )r   r$   r%   r   )r   s   "r   r   rÜ   W  s   € ÷ ñ ˜ñ r   c                ó  € V P                   '       dp   V P                  '       d\   V P                  RRV P                  4        RP	                  V P                  4       2R7       V P                  P                  4        R# R# R# )z2Flush remaining batched tool names to the gateway.zsubagent.progressõ   ðŸ”€ z, ©rþ   N)rÛ   rä   r   rî   rš   Úclearrí   s   &r   Ú_flushÚ_ChildProgressRelay._flushW  s^   € à�>�>ˆ>˜dŸjŸj˜jØ�K‰KÐ+°u¸T¿\¹\»^Ð<LÈTÏYÉYÐW[×WaÑWaÓMbÐLcÐ5dˆKÔeØ�J‰J×ÑÖñ )‰>r   c                	ój   € V P                   ! RRT;'       g    V P                  ;'       g    R/VB  R# )ru   rþ   r/   N)ru   )r   r]   ©rç   rü   rþ   r"   r#   s   &&&&&r   ry   Ú'_ChildProgressRelay._on_spawn_requested^  s,   € Ø�ŠÑc¸×8XÐ8XÀ4Ç?Á?×8XÐ8XÐVXÐcÐ\bÔcr   c                	óÞ   € V P                   '       d)   V P                  R \        V P                   ^74       24       V P                  ! RRT;'       g    V P                   ;'       g    R/VB  R# )r  rþ   r/   N)rv   )r]   r  rÖ   r   r  s   &&&&&r   rz   Ú_ChildProgressRelay._on_starta  sS   € Ø�?�?ˆ?Ø�O‰O˜e¤F¨4¯?©?¸BÓ$?Ð#@ÐAÔBØ�ŠÑY¨g×.NÐ.N¸¿¹×.NÐ.NÈBÐYÐRXÔYr   c                	óð   a aa€ SP                  R 4      \        9   dE   ^ RIHp S P                  pV! VVV 3R l\        VR\        VRR4      4      \        VRR4      R7       S P                  ! R
R	S/SB  R# )rR   )Úrender_notificationc                 óâ   <€ SP                  \        SP                  S P                  R 4      S P                  R4      ;'       g    SS P                  R4      S P                  R4      R7      4      # )rR   ÚsummaryrS   r=   )r)   rS   r=   )r  rb   r]   rƒ   )r#   rþ   rç   s   €€€r   Ú<lambda>Ú2_ChildProgressRelay._on_complete.<locals>.<lambda>p  sX   ø€ ˜Ÿ™Ô(DØ—O‘O V§Z¡Z°Ó%9ÀÇÁÈIÓAV×AaÐAaÐZaØ%+§Z¡ZÐ0BÓ%CÐTZ×T^ÑT^Ð_oÓTpô)ô r   Ú_notification_platformÚplatformÚcliÚ_notification_configN)r  Úuser_configrþ   )rw   )rƒ   ÚSUBAGENT_FAILURE_STATUSESÚgateway.warning_notificationsr  rå   r¦   r   )rç   rü   rþ   r"   r#   r  Úparents   f&f&f  r   r{   Ú _ChildProgressRelay._on_completef  so   ú€ ð �:‰:�hÓÔ#<Ô<ÝIØ×&Ñ&ˆFÙöô ! Ð)AÄ7È6ÐS]Ð_dÓCeÓfÜ# FÐ,BÀDÓIõð 	�ŠÑC°ÐC¸FÔCr   c                	ó,   € V P                  R VR7       R# )rx   r	  N)r   r  s   &&&&&r   r|   Ú_ChildProgressRelay._on_texty  s   € ð 	�‰�O¨WˆÖ5r   c                	ó–   € T;'       g    T;'       g    R pV P                  R\        V^74       R24       V P                  RVR7       R# )r/   u   ðŸ’­ "rX   zsubagent.thinkingr	  N)r  rÖ   r   )rç   rü   rþ   r"   r#   r±   s   &&&&& r   r}   Ú _ChildProgressRelay._on_thinking  sE   € Ø×)Ð)˜)×)Ð) rˆØ�‰˜&¤¨¨bÓ!1Ð 2°!Ð4Ô5Ø�‰Ð'°ˆÖ6r   c                	ó:  € T;'       g    T;'       g    R pV'       d   V P                  RV 24       V P                  '       dC   \        R4      ;_uu_ 4        V P                  RV P                  4        V 24       RRR4       R# R#   + '       g   i     R# ; i)r/   r  z Parent callback relay failed: %srs   N)r  rÛ   r   rî   )rç   rü   rþ   r"   r#   Úsummary_texts   &&&&& r   r~   Ú _ChildProgressRelay._on_progress„  sz   € ð !×1Ð1 G×1Ð1¨rˆßØ�O‰O˜e L >Ð2Ô3Ø�>�>ˆ>ÜÐ:×;Õ;Ø—‘Ð2°t·|±|³~Ð6FÀ|ÀnÐ4UÔV÷ <Ñ;ñ ß;×;Ð;ús   Á%B	Â	B	c                	óü  € V ;P                   ^,          un         V P                  eZ   \        ;_uu_ 4        \        P                  ! V P                  4      pVe   V P                   VR&   T;'       g    RVR&   RRR4       V P
                  '       dU   ^ RIHp T! T;'       g    R4       RV 2pV'       d   \        V^#4      MRpT P                  V'       d	   V RV R2MT4       V P                  '       dq   V P                  R	WV4       V P                  P                  T;'       g    R4       \        V P                  4      V P                  8¼  d   V P!                  4        R# R# R#   + '       g   i     Lú; i)
é   Nræ   r/   Ú	last_tool)Úget_tool_emojirV   z  "rX   zsubagent.tool)ræ   rß   r	   r   rƒ   rÚ   Úagent.displayr+  rÖ   r  rÛ   r   rä   r“   r   Ú_BATCH_SIZEr  )	rç   rü   rþ   r"   r#   Úrecr+  r:   Úshorts	   &&&&&    r   Ú_on_tool_startedÚ$_ChildProgressRelay._on_tool_startedŽ  s  € Ø�Š˜1Õ�Ø×ÑÒ'ß'Ö'Ü'×+Ò+¨D×,<Ñ,<Ó=�Ø’?Ø(,¯©�C˜Ñ%Ø'0§ °B�C˜Ñ$÷	 (ð
 �<�<ˆ<Ý4Ù$ Y§_ _°"Ó5Ð6°a¸	°{ÐCˆDß+2”F˜7 BÔ'¸ˆEØ�O‰O·E˜t˜f C¨ w¨aÑ0¸tÔDØ�>�>ˆ>Ø�K‰K˜¨¸TÔBØ�J‰J×Ñ˜iŸo˜o¨2Ô.Ü�4—:‘:‹ $×"2Ñ"2Ô2Ø—‘–ñ 3ñ ÷ (×'ús   ¶<E+Á3E+Å+E;	c               ó    € V ^8„  d   QhRRRR/# )r   rü   rý   rþ   r   )r   s   "r   r   rÜ   ¡  s   € ÷ Dñ D¨jð DÈ*ñ Dr   c                	ó„   € \        V4      pVf   R M\        P                  VR4      pVe   \        W4      ! W#WE4       R # R # )Nr0  )r†   r   rƒ   r¦   )rç   r!   rü   rþ   r"   r#   ÚkeyÚmethods   &&&&&,  r   Ú__call__Ú_ChildProgressRelay.__call__¡  s?   € Ü˜zÓ*ˆØš‘¬/×*=Ñ*=¸cÐCUÓ*VˆØÒÜ�DÔ! )°dÖCñ r   )rä   rá   r]   râ   rÛ   rà   rå   rÞ   rÚ   rß   rÀ   r¿   ræ   rã   ©NNN)re   rf   rg   rh   ri   r-  rè   rî   rù   r   r  r  ry   rz   r{   r|   r}   r~   r0  r6  rq   r   r   r   rØ   rØ     sb   † ñZð
 €Kõõ
õ÷nõLõòdòZò
Dò&6ò7ò
Wò÷&Dó Dr   rØ   rß   rà   rá   râ   rã   rÞ   c               ó@   € V ^8„  d   QhRRRRRRRRRRR	R
RRRRRRRR/
# )r   r¿   r+   rQ   r,   rÀ   rß   r   rà   rá   zOptional[int]râ   rã   zOptional[list[str]]rÞ   zOptional[dict[str, Any]]r$   zOptional[callable]r   )r   s   "r   r   r   §  sc   € ÷ ñ ØðØðØ:=ðØS`ðàðà,9ðàIVðð "ðð 8Pðð ñ	r   c               óš   € \        VRR4      p
\        VRR4      pV
'       g   V'       g   R# V	e   W)R&   \        WW«W4WVWxV	4      pW,n        V# )uÒ   Relay for one child's events (see ``_ChildProgressRelay``), or None when the parent has neither a spinner nor a
progress callback â€” the child then runs with no progress callback at all (zero behavior change).Ú_delegate_spinnerNÚtool_progress_callbackrì   )r¦   rØ   rå   )r¿   rQ   r®   rÀ   rß   rà   rá   râ   rã   rÞ   rÚ   rÛ   Úrelays   &&&&$$$$$$   r   Ú_build_child_progress_callbackr>  §  s^   € ô �lÐ$7¸Ó>€GÜ˜Ð&>ÀÓE€IßŸ9ÙØÒà'3�OÑ$ÜØ˜'¨jÀyÐY^Ðjuó€Eð &ÔØ€Lr   >   r)   ÚfailedrY   )éÈ   r8  >   rx   rv   rw   ru   )N)r)  )9Ú__conditional_annotations__ri   Ú
__future__r   ÚloggingÚenumr¨   Ú	threadingÚ
contextlibr   Útypingr   r   r   r   Útools.delegate_tool_registryr   r	   Ú	getLoggerr   Ú	frozensetr  r   r'   r;   rF   rO   rb   r,   ÚEnumrd   rn   ro   rp   rk   rt   Ú__annotations__r‚   r   r†   r•   r–   r™   r—   r˜   rž   r²   r³   ÚLockr¸   r½   rÆ   rÍ   rÓ   rÖ   rØ   r>  )rA  s   @r   Ú<module>rN     s  øðÜ få "ã Û Û 	Û Ý %ß ,Ó ,ß Rà	×	Ò	Ð0Ó	1€ñ &Ò&DÓEÐ àð
@Èö 
@ó ð
@õ,÷L÷8õT÷Pô@4�C˜Ÿ™ô 4ð  �×,Ñ,Ø˜=×6Ñ6Ø�M×3Ñ3Ø�m×7Ñ7Ø˜×4Ñ4ð/Ð Ð+ó ñ ÒrÓsÐ àÐ 5Ø�kØ˜Ø�ZØ×Ñ Ø×Ñ Ø×%Ñ% tð-€Ð)ó õð'ð ð
ð ð
3ð ðQð ð
yð ñ
'ØQUð'Øcið'àð'à12÷'ð 'õRð .0€Ð*Ó /Ø —~’~Ó'Ð ÷÷ &õ÷^õ9÷FDñ FDñPØcgðà#ðà<@ðàY]ðð %)ðð SW÷ò r   