+
    ˆWÝjÉe  ã                   óP	  a€ Ræ t.0 t R t^ RIHtHtHtHtHtHt . RNRNRNRNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4Nt	. RçOt
. RèOt. RéOtRêR6 ltRëR7 ltR8R9/R: lt]! RRR$R3R;R<7      t]! 0 Rìm4      t/ R@]! RARR.4      bRB]! RCR.4      bRD]! RERD.4      bRF]! RGR
.4      bRH]! RIRJ.4      bRK]! RLR.4      bRM]! RN. RíO4      bR3]! ROR3.4      bR]! RPRR.4      bRQ]! RR. RîO4      bRS]! RT]	 U u. uF  q P'                  RU4      '       g   K  V NK  	  up 4      bRV]! RWR$.4      bRX]! RY. RïO4      bRZ]! R[R.4      bR\]! R]R.4      bR]! R^R.4      bR_]! R`4      b/ R ]! RaR .4      bRb]! RcR4.4      bR=]! RdRe.4      bRf]! Rg4      bR>]! Rh. RðO4      bRi]! RjRk.]! Rl04      Rm7      bR?]! RnRo.]! Rl04      Rm7      bR!]! RpR!.4      bRq]! RrR".4      bRs]! RtR#.4      bR8]! Ru]	 U u. uF  q P'                  Rv4      '       g   K  V NK  	  up 4      bRw]! RxRw.4      bRy]! RzRy.4      bR{]! R|]4      bR}]! R~R5.4      bR]! R€]R�,          4      bR‚]! RƒRR.R@RX.R„7      bC/ R…]! R†. . RñOR„7      bR‡]! Rˆ]R9R‰7      bRŠ]! R‹] U u. uF  q R!8w  g   K  V NK  	  up 4      bRŒ]! R�]! RR!R3R;R<7      4      bRŽ]! R�4      bR�]! R‘4      bR’]! R“4      bR”]! R•RwRy.4      bR–]! R—4      bR˜]! R™4      bRš]! R›4      bRœ]! R�4      bRž]! RŸ4      bR ]! R¡4      bR¢]! R£4      bR¤]! R¥4      bR¦]! R§]4      bCR¨]! R©4      Rª]! R«4      R¬]! R­4      R®]! R¯4      R°R±R²R³]	],           R´RµR¶. /R·]! R¸4      R¹]! Rº]
4      R»]! R¼. . RòOR„7      /Ct]P+                  4        UUu/ uF  w  rR½V9   g   K  WR½,          bK  	  uppt]! R¾ ]P/                  4        4       4      t]! ]4      tR¿ tRÀ RÁ ltRÂ RÃ ltRÄR9/RÅ RÆ lltRÇ RÈ lt/ t] ^ k RÉ RÊ lt RóRÄR9/RÌ RÍ lllt!RÎ RÏ lt"RÐ RÑ lt#RÒ RÓ lt$RÔ RÕ lt%RÖ R× lt&RØ RÙ lt'RÚ RÛ lt(RÜ RÝ lt)RÞ Rß lt*Rà Rá lt+RôRâ Rã llt,Rä Rå lt-RË# u up i u up i u up i u uppi )õz`Toolset helpers: get/resolve/validate named tool groups (static TOOLSETS + registry-registered).)ÚDictÚListÚAnyÚSetÚOptionalÚTupleÚ
web_searchÚweb_extractÚterminalÚprocess_manageÚ	read_fileÚ
write_fileÚpatchÚsearch_filesÚvision_analyzeÚimage_generateÚskills_listÚ
skill_viewÚskill_manageÚbrowser_navigateÚbrowser_snapshotÚbrowser_clickÚbrowser_typeÚbrowser_scrollÚbrowser_backÚbrowser_pressÚbrowser_get_imagesÚbrowser_visionÚbrowser_consoleÚbrowser_cdpÚbrowser_dialogÚbrowser_vaultÚbrowser_execÚtext_to_speechÚ	todo_listÚmemoryÚsession_searchÚclarifyÚexecute_codeÚdelegate_taskÚcronjob_manageÚkanban_showÚkanban_listÚkanban_completeÚkanban_blockÚkanban_request_reviewÚkanban_request_changesÚkanban_heartbeatÚkanban_commentÚkanban_createÚkanban_linkÚkanban_unblockÚkanban_attachÚkanban_attach_urlÚkanban_attachmentsÚcomputer_useÚmanage_connectionsÚfeishu_doc_readc                ó:   € RV R\        V4      R\        V4      /VC# )zTOne TOOLSETS entry (fresh lists per entry; extra keys such as posture pass through).ÚdescriptionÚtoolsÚincludes)Úlist)r=   r>   r?   Úextras   &&&,Ú<C:\Users\johnn\AppData\Local\hermes\hermes-agent\toolsets.pyÚ_tsrC   2   s#   € à˜;¨´°e³¸jÌ$ÈxË.ÐbÐ\aÐbÐbó    c                óB   € \        V \        \        V4      ,           4      # )zRA `hermes-*` platform bundle: the shared core tools plus optional platform extras.)rC   Ú_HERMES_CORE_TOOLSr@   )r=   Úextrass   &&rB   Ú_bundlerH   7   s   € äˆ{Ô.´°f³Õ=Ó>Ð>rD   ÚkanbanTc                óŠ   € \          Uu. uF.  q"V9  g   K  V '       g   VP                  R4      '       d   K,  VNK0  	  up# u upi )zd_HERMES_CORE_TOOLS minus *excluded* (and, unless kanban=True, every kanban_* tool); order preserved.Úkanban_)rF   Ú
startswith)rI   ÚexcludedÚts   $* rB   Ú_core_withoutrO   <   s6   € å)ÓkÑ)�!°hÑ->ŒAÇFÐRS×R^ÑR^Ð_h×Ri�AˆAÑ)ÑkÐkùÒks   ‰A –A žA ·A F)rI   ÚprojectÚ
desktop_uiÚcatalogÚwebz)Web research and content extraction toolsÚsearchz0Web search only (no content extraction/scraping)Úx_searchuE  Search X (Twitter) posts and threads via xAI's built-in x_search Responses tool. Read-only public X discovery; use the xurl skill for authenticated X API reads and account actions. Available when xAI credentials are configured (SuperGrok OAuth or XAI_API_KEY). Off by default; enable in `hermes tools` â†’ X (Twitter) Search.ÚvisionzImage analysis and vision toolsÚvideozGVideo analysis and understanding tools (opt-in, not in default toolset)Úvideo_analyzeÚ	image_genz"Creative generation tools (images)Ú	video_genu  Video generation tools. Single ``video_generate`` tool covers text-to-video (prompt only) and image-to-video (prompt + image_url), plus reference-to-video. Provider-specific edit/extend workflows may appear as separate tools. Configure via ``hermes tools`` â†’ Video Generation.uÆ   Background desktop control via cua-driver (macOS/Windows/Linux) â€” screenshots, mouse, keyboard, scroll, drag. Does NOT steal the user's cursor or keyboard focus. Works with any tool-capable model.z7Terminal/command execution and process management toolsÚskillsz\Access, create, edit, and manage skill documents with specialized instructions and knowledgeÚbrowserz[Browser automation for web interaction (navigate, click, type, scroll, iframes, hold-click)Úbrowser_ÚcronjobzbCronjob management tool - create, list, update, pause, resume, remove, and trigger scheduled tasksÚfilez_File manipulation tools: read, write, patch (with fuzzy matching), and search (content + files)ÚttszVText-to-speech: convert text to audio with Edge TTS (free), ElevenLabs, OpenAI, or xAIÚtodoz.Task planning and tracking for multi-step workzAPersistent memory across sessions (personal notes + user profile)Úcontext_enginez2Runtime tools exposed by the active context enginez7Search and recall past conversations with summarizationÚconnectionsz@Remote connector discovery, execution, and account authorizationuG   Desktop Projects â€” create/switch named workspaces (GUI sessions only)Údesktop_projectÚbot_roomz/Verified text-only Group Chat turn capabilitiesup   Desktop GUI affordances â€” in-app terminal/browser panes, pane focus, reactions, appearance (GUI sessions only)Ú
onboardingzfFirst-run onboarding cards; folded in only for the onboarding chat (tui_gateway/methods_onboarding.py)Ú
setup_beatÚdesktop)Ú	platformsz[Desktop catalog plugin/skill install requests through the approval card (GUI sessions only)Úmanage_catalogzAAsk the user clarifying questions (multiple-choice or open-ended)Úcode_executionzMRun Python scripts that call tools programmatically (reduces LLM round trips)Ú
delegationz:Spawn subagents with isolated context for complex subtasksuû  Kanban multi-agent coordination â€” only active when the agent is spawned by the kanban dispatcher (HERMES_KANBAN_TASK env set). The dispatcher runs inside the gateway by default; see `kanban.dispatch_in_gateway` in config.yaml. Lets workers mark tasks done with structured handoffs, enter first-class review (request_review â€” not a block), return review changes, block for human input, heartbeat during long ops, comment on threads, attach files, and (for orchestrators) list, unblock, and fan out tasks.rK   ÚdiscordzSDiscord read and participate tools (fetch messages, search members, create threads)Údiscord_adminzKDiscord server management (list channels/roles, pin messages, assign roles)ÚyuanbaozAYuanbao platform tools - group info, member queries, DM, stickersÚ
feishu_docz!Read Feishu/Lark document contentÚfeishu_drivez:Feishu/Lark document comment operations (list, reply, add):é   NNÚ	debuggingz%Debugging and troubleshooting toolkit)r?   Úsafez$Safe toolkit without terminal accessÚcodingzbCoding-focused toolset: files, terminal, search, web docs, skills, todo, delegate, vision, browser)Úposturez
hermes-acpum   Editor integration (VS Code, Zed, JetBrains) â€” coding-focused tools without messaging, audio, or clarify UIzhermes-api-serveru|   OpenAI-compatible API server â€” full agent tools accessible via HTTP (no interactive UI tools like clarify or send_message)z
hermes-clizHFull interactive CLI toolset - all default tools plus cronjob managementzhermes-cronzMDefault cron toolset - same core tools as hermes-cli; gated by `hermes tools`úhermes-telegramzPTelegram bot toolset - full access for personal use (terminal has safety checks)úhermes-discordz]Discord bot toolset - full access (terminal has safety checks via dangerous command approval)úhermes-whatsappzMWhatsApp bot toolset - similar to Telegram (personal messaging, more trusted)úhermes-slackzNSlack bot toolset - full access for workspace use (terminal has safety checks)úhermes-signalz?Signal bot toolset - encrypted messaging platform (full access)úhermes-bluebubbleszNBlueBubbles iMessage bot toolset - Apple iMessage via local BlueBubbles serverúhermes-emailz>Email bot toolset - interact with Hermes via email (IMAP/SMTP)úhermes-mattermostzAMattermost bot toolset - self-hosted team messaging (full access)úhermes-matrixzDMatrix bot toolset - decentralized encrypted messaging (full access)úhermes-dingtalkzBDingTalk bot toolset - enterprise messaging platform (full access)úhermes-feishuzLFeishu/Lark bot toolset - enterprise messaging via Feishu/Lark (full access)úhermes-weixinzFWeixin bot toolset - personal WeChat messaging via iLink (full access)úhermes-qqbotzBQQBot toolset - QQ messaging via Official Bot API v2 (full access)úhermes-wecomz=WeCom bot toolset - enterprise WeChat messaging (full access)úhermes-wecom-callbackzJWeCom callback toolset - enterprise self-built app messaging (full access)úhermes-yuanbaor=   uZ   Yuanbao Bot å…ƒå®�æ¶ˆæ�¯å¹³å�°å·¥å…·é›† - ç¾¤ä¿¡æ�¯ã€�æˆ�å‘˜æŸ¥è¯¢ã€�ç§�è�Šã€�è´´çº¸è¡¨æƒ…r>   Úmoduleztools.yuanbao_toolsr?   ú
hermes-smsz7SMS bot toolset - interact with Hermes via SMS (Twilio)úhermes-webhookz=Webhook toolset - receive and process external webhook eventszhermes-gatewayz7Gateway toolset - union of all messaging platform toolsri   c              #   óB   "  € T F  qR ,           F  q"x € K  	  K  	  R# 5i)r>   N© )Ú.0ÚspecÚtools   &  rB   Ú	<genexpr>r�   û   s   é € Ð\Ñ0A¨ÐSZÏmÈmÀdœtÉm™tÓ0Aùs   ‚c                 ó8   €  ^ RI Hp  V #   \         d     R# i ; i)zBLive tool registry, or None when tools.registry can't be imported.©ÚregistryN)Útools.registryr’   Ú	Exceptionr‘   s    rB   Ú	_registryr•   ÿ   s!   € ðÝ+ØˆøÜô Úðús   ‚
 Š˜c                ó$   € V ^8„  d   QhR\         /# )é   Úmethod)Ústr)Úformats   "rB   Ú__annotate__r›     s   € ÷ ñ œ3ñ rD   c                ó\   €  \        \        4       V 4      ! 4       #   \         d    Tu # i ; i)zTregistry.<method>() or *default* when the registry is unavailable or the call fails.)Úgetattrr•   r”   )r˜   Údefaults   &&rB   Ú_registry_callrŸ     s-   € ðÜ”y“{ FÔ+Ó-Ð-øÜô ØŠðús   ‚ ›+ª+c                óF   € V ^8„  d   QhR\         \        \        3,          /# ©r—   Úreturn)ÚtupleÚint)rš   s   "rB   r›   r›     s   € ÷ Tñ Tœe¤C¬ H�oñ TrD   c                  óR   € \        4       p V e   \        V 4      \        V R^ 4      3# R# )NÚ_generation)é    r§   )r•   Úidr�   )Úregs    rB   Ú_registry_generationrª     s*   € Ü
‹+€CØ8;ºŒBˆs‹G”W˜S -°Ó3Ð4ÐSÈVÐSrD   Úinclude_registryc          	      ót   € V ^8„  d   QhR\         R\        R\        \        \         \        3,          ,          /# )r—   Únamer«   r¢   )r™   Úboolr   Údictr   )rš   s   "rB   r›   r›     s4   € ÷ )xñ )x”cð )x´ð )xÄÌÌcÔSVÈhÍÕ@Xñ )xrD   c          
     ó  € \         P                  V 4      pV'       gG   V'       d=   / VCR\        VP                  R. 4      4      R\        VP                  R. 4      4      /C# R# \        4       pVf   V'       d   V# R# V'       dŒ   \	        VP                  R. 4      4      \	        VP                  V 4      4      ,          pVP                  V 4      pV'       d(   WP8w  d"   V\	        VP                  V4      4      ,          p/ VCR\        V4      /C# V \        4       9   d+   T p\        V \        4       4      pV'       d   RV R2MRV  2pM!VP                  V 4      pV'       g   R# RV  R2pRVRVP                  V4      R. /# )a°  Toolset definition, or None if unknown.

include_registry=True merges plugin/overlay tools registered into this toolset
and resolves registry-only (plugin/MCP) toolsets and aliases; False returns a
copy of the static TOOLSETS entry only, so platform reverse-mapping is
unaffected by registry additions.

Args: name (str): Name of the toolset include_registry (bool): When True (default), merge in tools that
plugins/overlays registered into this toolset via the registry. Platform reverse-mapping in
``_get_platform_tools`` uses False so that a tool registered into a toolset but absent from a platform's
static composite does not drop the whole toolset from inference. See issue #49622.
r>   r?   NzMCP server 'z' toolszPlugin toolset: r=   )ÚTOOLSETSÚgetr@   r•   ÚsetÚget_tool_names_for_toolsetÚget_toolset_alias_targetÚsortedÚ_get_plugin_toolset_namesÚ_display_aliasÚ_get_registry_toolset_aliases)	r­   r«   Útoolsetr’   Úmerged_toolsÚalias_targetÚregistry_toolsetÚaliasr=   s	   &$       rB   Úget_toolsetr¿     s{  € ô �l‰l˜4Ó €Gßßv}Ðr�'Ðr˜7¤D¨¯©°W¸bÓ)AÓ$BÀJÔPTÐU\×U`ÑU`ÐakÐmoÓUpÓPqÑrð  	Hð  DHð  	Hä‹{€HØÒß!ˆwÐ+ tÐ+çÜ˜7Ÿ;™; w°Ó3Ó4´s¸8×;^Ñ;^Ð_cÓ;dÓ7eÕeˆð  ×8Ñ8¸Ó>ˆß˜LÔ0ØœC × CÑ CÀLÓ QÓRÕRˆLØ9�'Ð9˜7¤F¨<Ó$8Ñ9Ð9àÔ(Ó*Ô*àÐÜ˜tÔ%BÓ%DÓEˆß7<˜ U G¨7Ñ3ÐDTÐUYÐTZÐB[‰à#×<Ñ<¸TÓBÐßÙØ$ T F¨'Ð2ˆØ˜;¨°×1TÑ1TÐUeÓ1fÐhrÐtvÐwÐwrD   c                óF   € V ^8„  d   QhR\         R\        \         ,          /# )r—   Útoolset_namer¢   )r™   r³   )rš   s   "rB   r›   r›   A  s   € ÷ ñ ¬ð ´´Cµñ rD   c                ób  € \        \        4      p\        V 4      pV'       d   RV9   g   \        \        V 4      4      V,
          # \        VR,          4      p\	        \        VP                  R. 4      4       F.  pV'       g   K  RV9   g   K  VP                  VR,          4       K0  	  W1,
          # )a  A bundle's tools minus _HERMES_CORE_TOOLS (one level of includes).

Disabling a `core + extras` bundle must not strip the core tools every other
toolset shares. One `includes` pass suffices (only hermes-gateway nests
bundles). Unknown names: full resolution minus core.
r>   r?   )r³   rF   r¿   Úresolve_toolsetÚmapr²   Úupdate)rÁ   ÚcoreÚts_defÚ	to_removeÚinc_defs   &    rB   Úbundle_non_core_toolsrÊ   A  s�   € ô Ô!Ó"€DÜ˜Ó&€Fß�w &Ô(Ü”? <Ó0Ó1°DÕ8Ð8Ü�F˜7•OÓ$€IÜ”{ F§J¡J¨z¸2Ó$>Ö?ˆß‰7�w 'Ö)Ø×Ñ˜W WÕ-Ö.ñ @ð ÕÐrD   c                óF   € V ^8„  d   QhR\         R\        \         ,          /# ©r—   r­   r¢   ©r™   r@   )rš   s   "rB   r›   r›   Z  s   € ÷ ñ ¤#ð ¬$¬s­)ñ rD   c                ó\  a€ V P                  R4      '       g   . # T \        R4      R o ^ RIHp VP	                  S4      '       g   . #  \        \        4      p TP                  T3R l\        RR4       4       4       \        T4      #   \
         d    . u # i ; i  \
         d     L+i ; i)z›Implicit `hermes-<platform>` bundle for a registered plugin platform: core
tools plus whatever the plugin registered under the platform name. [] otherwise.zhermes-N)Úplatform_registryc              3   ó`   <"  € T F#  qP                   S8X  g   K  VP                  x € K%  	  R # 5i©N)rº   r­   )rŒ   ÚeÚplatform_names   & €rB   r�   Ú*_plugin_platform_bundle.<locals>.<genexpr>h  s#   øé € ÐiÑ%J ÏiÉiÐ[hÑNh”V�Q—V–VÓ%Jùs   ƒ.š.Úget_all_entriesr‹   )rL   ÚlenÚgateway.platform_registryrÏ   Úis_registeredr”   r³   rF   rÅ   rŸ   r@   )r­   rÏ   r>   rÓ   s   &  @rB   Ú_plugin_platform_bundlerÙ   Z  s­   ø€ ð �?‰?˜9×%Ò%Øˆ	Øœ˜Y›˜Ð)€MðÝ?Ø ×.Ñ.¨}×=Ò=ØˆIð >ô Ô"Ó#€EðØ�‰Ôi¤^Ð4EÀrÔ%JÓiÔiô �‹;Ðøô ô ØŠ	ðûô
 ô Ùðús#   ªB
 Á%B Â
BÂBÂB+Â*B+Nc          	      ó‚   € V ^8„  d   QhR\         R\        \         ,          R,          R\        R\        \         ,          /# )r—   r­   ÚvisitedNr«   r¢   )r™   r³   r®   r@   )rš   s   "rB   r›   r›   n  s8   € ÷ ,ñ ,œ#ð ,¬¬C­°4­ð ,ÔUYð ,ÔeiÔjmÕenñ ,rD   c          	     ó4  € VRJ pV'       dI   W.\        4       O\        RR4      N5p\        P                  V4      pVe   \	        V4      # \        4       pV R9   d^   \        4       p\        4        F:  pV\        9  g   K  VP                  \        WqP                  4       VR7      4       K<  	  \        V4      # W9   d   . # VP                  V 4       \        WR7      pV'       g   V'       d   \        V 4      # . # \        VP                  R. 4      4      p	VP                  R. 4       F  p
V	P                  \        W¡VR7      4       K!  	  \        V	4      pV'       d;   \        \        4      R8¼  d   \        P!                  4        \	        V4      \        X&   V# )	a	  Recursively resolve a toolset (and its includes) to a sorted tool-name list.
include_registry=False resolves the static TOOLSETS view only.

Args: name (str): Name of the toolset to resolve visited (Set[str]): Set of already visited toolsets
(for cycle detection) include_registry (bool): When True (default), include tools that plugins/overlays
registered into a toolset. Platform reverse-mapping uses False so a registry-added tool cannot drop the
whole toolset from inference (see #49622 and ``_get_platform_tools``).
NÚcurrent_scope_keyÚ )r«   r>   r?   é   >   Ú*Úall)rª   rŸ   Ú_resolve_toolset_memor²   r@   r³   Úget_toolset_namesÚTOOLSET_SESSION_PLATFORMSrÅ   rÃ   Úcopyr¶   Úaddr¿   rÙ   rÖ   Úclear)r­   rÛ   r«   Úexternal_callÚmemo_keyÚcachedÚ	all_toolsrÁ   rº   r>   Úincluded_nameÚresults   &&$         rB   rÃ   rÃ   n  sX  € ð ˜t�O€MßØÐmÔ-AÓ-CÐmÄ^ÐTgÐikÓElÑmˆÜ&×*Ñ*¨8Ó4ˆØÒÜ˜“<ÐÜ“%ˆð ˆ|ÔÜ!›eˆ	Ü-Ö/ˆLØÔ#<Ö<Ø× Ñ ¤°¿|¹|»~Ð`pÔ!qÖrñ 0ô �iÓ Ð ð „Øˆ	Ø‡K�K�Ôä˜$ÔB€Gßß0@Ô& tÓ,ÐHÀbÐHä�—‘˜G RÓ(Ó)€EØ Ÿ™ Z°Ö4ˆØ�‰”_ ]ÐN^Ô_Ö`ñ 5ô �E‹]€FßÜÔ$Ó%¨Ô,Ü!×'Ñ'Ô)Ü*.¨v«,Ô˜hÑ'Ø€MrD   c                ó:   € V ^8„  d   QhR\         \        ,          /# r¡   )r³   r™   )rš   s   "rB   r›   r›   �  s   € ÷ `ñ `¤3¤s¥8ñ `rD   c                 ó\   € \        RR4       U u0 uF  q \        9  g   K  V kK  	  up # u up i )z<Registry toolset names absent from the static TOOLSETS dict.Úget_registered_toolset_namesr‹   )rŸ   r±   )Úns    rB   r·   r·   �  s,   € ä%Ð&DÀbÔIÓ_ÑI�!ÔV^ÑM^�AˆAÑIÑ_Ð_ùÒ_s   �) )c                óF   € V ^8„  d   QhR\         \        \        3,          /# r¡   )r¯   r™   )rš   s   "rB   r›   r›   ¢  s   € ÷ @ñ @¤t¬C´¨H¥~ñ @rD   c                  ó   € \        R / 4      # )Úget_registered_toolset_aliases)rŸ   r‹   rD   rB   r¹   r¹   ¢  s   € ÜÐ:¸BÓ?Ð?rD   c                ót   € V ^8„  d   QhR\         R\        \         \         3,          R\        \         ,          /# )r—   Úts_nameÚaliasesr¢   )r™   r¯   r   )rš   s   "rB   r›   r›   ¦  s2   € ÷ mñ mœCð m¬$¬s´C¨x­.ð m¼XÄc½]ñ mrD   c                óL   a € \        V 3R lVP                  4        4       R4      # )z6First non-static alias pointing at *ts_name*, or None.c              3   óX   <"  € T F  w  rVS8X  g   K  V\         9  g   K  Vx € K!  	  R # 5irÑ   )r±   )rŒ   ÚaÚ	canonicalrö   s   &  €rB   r�   Ú!_display_alias.<locals>.<genexpr>¨  s'   øé € Ðe¡‘|�q¸)ÀwÑ:N”ÐSTÔ\dÑSd—’£ùs   ƒ*“* 
*N)ÚnextÚitems)rö   r÷   s   f&rB   r¸   r¸   ¦  s   ø€ äÔe w§}¡}¤ÓeÐgkÓlÐlrD   c                ó:   € V ^8„  d   QhR\         \        ,          /# r¡   ©r@   r™   )rš   s   "rB   r›   r›   «  s   € ÷ Rñ Rœt¤C�yñ RrD   c                 óz   € \        4       p \        4        Uu. uF  p\        W4      ;'       g    TNK  	  up# u upi )zOPlugin toolset names, shown under their first non-static alias when one exists.)r¹   r·   r¸   )r÷   rñ   s     rB   Ú_plugin_display_namesr  «  s7   € ä+Ó-€GÜ5NÔ5PÓQÑ5P°ŒN˜1Ó&×+Ð+¨!Ò+Ñ5PÑQÐQùÒQs   —8®8c                óh   € V ^8„  d   QhR\         \        \         \        \        3,          3,          /# r¡   )r¯   r™   r   )rš   s   "rB   r›   r›   ±  s%   € ÷ ñ œ$œs¤D¬¬c¨¥NÐ2Õ3ñ rD   c                 ó6  € \        \        4      p \        4       p\        4        F$  pW 9   d   RM
\	        V4      pV'       g   K   W0V&   K&  	  \        P                  4       VP                  4       ,           F   p\	        V4      ;'       g	    W,          W&   K"  	  V # )z7All toolset definitions: static plus plugin-registered.N)r¯   r±   r¹   r  r¿   Úkeys)rí   r÷   Údisplay_namerº   r­   s        rB   Úget_all_toolsetsr  ±  sy   € ä”(‹^€FÜ+Ó-€GÜ-Ö/ˆØ&Ô0‘$´kÀ,Ó6Oˆß‰7Ø#*�<Ó ñ 0ô
 —‘“ '§,¡,£.×0Ð0ˆÜ" 4Ó(×8Ð8¨F­Lˆ‹ñ 1à€MrD   c                ó:   € V ^8„  d   QhR\         \        ,          /# r¡   r   )rš   s   "rB   r›   r›   ¿  s   € ÷ Gñ Gœ4¤�9ñ GrD   c                 ó~   € \        \        \        P                  4       4      \        \	        4       4      ,          4      # )zBSorted names of all toolsets (static + plugin), excluding aliases.)r¶   r³   r±   r  r  r‹   rD   rB   rã   rã   ¿  s&   € ä”#”h—m‘m“oÓ&¬Ô-BÓ-DÓ)EÕEÓFÐFrD   c                óF   € V ^8„  d   QhR\         \        ,          R\        /# )r—   Úplatformr¢   )r   r™   Ú	frozenset)rš   s   "rB   r›   r›   Ä  s   € ÷ 8ñ 8¬(´3­-ð 8¼Iñ 8rD   c                óR   a € \        V 3R l\        P                  4        4       4      # )zPTools of every platform-gated toolset that a session on *platform* does not get.c              3   ób   <"  € T F$  w  rSV9  g   K  \        V4       F  pVx € K	  	  K&  	  R # 5irÑ   )rÃ   )rŒ   r­   ri   rŽ   r  s   &   €rB   r�   Ú.session_platform_tool_drops.<locals>.<genexpr>Æ  s7   øé € ð 8Ñ1R™o˜dÐV^ÐfoÑVo”TÜ!0°Ö!6˜õ Ù!6ñ Ó1Rùs   ƒ/“/)r  rä   rþ   )r  s   frB   Úsession_platform_tool_dropsr  Ä  s&   ø€ äô 8Ô1J×1PÑ1PÔ1Ró 8ó 8ð 8rD   c                óª   € V ^8„  d   QhR\         \        \        ,          ,          R\         \        ,          R\         \        \        ,          ,          /# )r—   Údisabledr  r¢   )r   r@   r™   )rš   s   "rB   r›   r›   Ê  s<   € ÷ >ñ >¬´´cµÕ(;ð >ÄxÔPSÅ}ð >ÔYaÔbfÔgjÕbkÕYlñ >rD   c                óÄ   € \         P                  4        UUu. uF!  w  r#W9  g   K  Y ;'       g    R9  g   K  VNK#  	  pppV'       d   . T ;'       g    ROVO# T # u uppi )a*  *disabled* plus every platform-gated toolset a session on *platform* does not get. An agent stores
this as its ``disabled_toolsets``, so the tool list, the tool_search listing and bridge, MCP refreshes
and delegate children (which inherit it) all subtract the gated tools in ``_select_tool_names``.r‹   )rä   rþ   )r  r  r­   ri   Úgateds   &&   rB   Úsession_disabled_toolsetsr  Ê  sl   € ô *C×)HÑ)HÔ)Jô LÑ)J‘o�dØÑ)ô Ø.2¿>¸>ÀrÑ.J÷ ˆTÑ)J€Eñ Lç*/Ð&ˆh�nˆn˜"Ð& Ð&Ð=°XÐ=ùóLs   ˜
A§A°A¹Ac                ó0   € V ^8„  d   QhR\         R\        /# )r—   Úagentr¢   )r   r  )rš   s   "rB   r›   r›   Ó  s   € ÷ hñ hœCð h¤Iñ hrD   c                óT   € ^ RI Hp V! V 4      \        \        V RR4      4      ,          # )z¾Tool names *agent* never carries, whatever its toolsets resolved to: the side-agent drops and
the toolsets its session platform does not get. Applied at load, MCP refresh and prefix restore.)Úside_agent_tool_dropsr  N)Útools.connectors.turnr  r  r�   )r  r  s   & rB   Úagent_tool_dropsr  Ó  s(   € õ <Ù  Ó'Ô*EÄgÈeÐU_ÐaeÓFfÓ*gÕgÐgrD   c                ó0   € V ^8„  d   QhR\         R\        /# rÌ   )r™   r®   )rš   s   "rB   r›   r›   Ú  s   € ÷ _ñ _œ3ð _¤4ñ _rD   c                 ó‚   € V R9   ;'       g4    V \         9   ;'       g#    V \        4       9   ;'       g    V \        4       9   # )rá   >   rà   rá   )r±   r·   r¹   )r­   s   &rB   Úvalidate_toolsetr  Ú  sS   € Ø�LÑ ÷ ^ð ^ D¬HÑ$4÷ ^ð ^ØÔ0Ó2Ñ2÷^ð ^Ø6:Ô>[Ó>]Ñ6]ð_rD   c          
      ó”   € V ^8„  d   QhR\         R\         R\        \         ,          R,          R\        \         ,          R,          RR/# )r—   r­   r=   r>   Nr?   r¢   rÍ   )rš   s   "rB   r›   r›   ß  sQ   € ÷ Cñ C¤ð C´#ð C¼dÄ3½iÈ$Õ>Nð CÔaeÔfiÕajÐmqÕaqð Cð  ~Bñ CrD   c                óT   € \        Y;'       g    . T;'       g    . 4      \        V &   R# )z'Register a runtime toolset in TOOLSETS.N)rC   r±   )r­   r=   r>   r?   s   &&&&rB   Úcreate_custom_toolsetr!  ß  s   € ä˜§k k¨r°8·>°>¸rÓB„HˆTƒNrD   c                óR   € V ^8„  d   QhR\         R\        \         \        3,          /# rÌ   )r™   r¯   r   )rš   s   "rB   r›   r›   ä  s"   € ÷ ñ œ3ð ¤4¬¬S¨¥>ñ rD   c                ó¾   € \        V 4      pV'       g   R# \        V 4      pRV RVR,          RVR,          RVR,          RVR\        V4      R	\        VR,          4      /# )
z?Toolset definition plus its resolved tools, or None if unknown.Nr­   r=   Údirect_toolsr>   r?   Úresolved_toolsÚ
tool_countÚis_composite)r¿   rÃ   rÖ   r®   )r­   rº   r%  s   &  rB   Úget_toolset_infor(  ä  sd   € ä˜$Ó€GßÙÜ$ TÓ*€Nà��m W¨]Õ%;Ø˜ Õ(¨*°g¸jÕ6IØ˜.¨,¼¸NÓ8KØœ˜W ZÕ0Ó1ð	ð rD   c                ó¸   € V ^8„  d   Qh/ ^ \         9   dF   \        \        \        \        \
        \
        \        3,          \        \        ,          3,          ;R&   # )r—   râ   )Ú__conditional_annotations__r¯   r£   r™   r®   r¤   r@   )rš   s   "rB   r›   r›      s<   € × fÑ f÷l
 MÒ L”tœE¤#¤t¬S´#´sÐ":Õ;¼TÄ#½YÐFÕGÑ Lòm
 grD   )r   r	   r   r'   )r;   Úfeishu_drive_list_commentsÚ!feishu_drive_list_comment_repliesÚfeishu_drive_reply_commentÚfeishu_drive_add_comment)Úyb_query_group_infoÚyb_query_group_membersÚ
yb_send_dmÚyb_search_stickerÚyb_send_sticker)r‹   r‹   )r‹   >   rR   rP   rQ   )Úvideo_generateÚxai_video_editÚxai_video_extend)r   r   r   )r   r   r   r   )Úread_terminalÚclose_terminalÚdesktop_previewÚdrive_previewÚannotate_previewÚread_window_belowÚ
focus_paneÚreact_to_messageÚgui_tourÚshow_tipÚ	set_theme)rS   rV   rY   )rw   rx   ry   rz   r{   r|   r}   rˆ   r~   r   r€   r�   r„   r…   r‚   rƒ   r‰   r†   rÑ   )NN)/r*  Ú__doc__Útypingr   r   r   r   r   r   rF   Ú_HERMES_WEBHOOK_SAFE_TOOLSÚ_FEISHU_TOOLSÚ_YUANBAO_TOOLSrC   rH   rO   Ú_CODING_TOOLSr  ÚCLIENT_SURFACE_TOOLSETSrL   r±   rþ   rä   ÚvaluesÚBUILTIN_TOOL_NAMESÚBUILTIN_TOOLSET_NAMESr•   rŸ   rª   r¿   rÊ   râ   rÙ   rÃ   r·   r¹   r¸   r  r  rã   r  r  r  r  r!  r(  r›   )rN   r­   r�   r*  s   000@rB   Ú<module>rL     sœ	  øðÞ fç 8× 8ðØðØðàðà ðð ðð ðð  'ðð )7ðð ð	ð 'ð	ð
 ðð
  ðð
 "0ðð ðð +ðð -<ðð ðð %ðð '5ðð ðð *ðð ðð (ðð *7ðð 9Iðð ðð ðð ðð ðð ðð ðð ðð  ð!ð  $ð!ð" ð#ð$ ð%ð$ !ð%ð& ð'ð& &ð'ð& (?ð'ð( ð)ð* ð+ð, ð-ð, &ð-ð, (5ð-ð. ð/ð0 ð1ð0 )ð1ð0 +?ð1ð2 ð3ð6 ð7Ð ò> XÐ ò€ò y€ôcô
?ð
l Dô lñ Ð.Ð0@ÐBRÐTbÐkpÔq€ñ $Ò$HÓIÐ ðjà	‰3Ð:¸\È=Ð<YÓZðjð ‰cÐDÀ|ÀnÓUðjð ‘ð	ð
 
ˆóð	jð ‰cÐ3Ð6FÐ5GÓHðjð ‰SÐZÐ]lÐ\mÓnðjð ‘Ð9Ð<LÐ;MÓNðjð ‘ð	Oò 	Aóðjð, ‘Cð	@ð 
Ðó	ð-jð8 ‘ÐMÐPZÐ\lÐOmÓnð9jð: ‰cð	%â5óð;jðL ‰sð	á&ÓCÑ&ˆq¯,©,°z×*B�ˆÑ&ÑCóðMjðV ‰sð	"à	ÐóðWjð` ‰Cð	#â<óðajðj 
‰3ÐgÐjzÐi{Ó|ðkjðl ‰CÐ@À;À-ÓPðmjðn ‰cÐUÐX`ÐWaÓbðojðp ‘cÐNÓOñqjðr ‘cÐSÐVfÐUgÓhðsjðt ‘3ÐYÐ\pÐ[qÓrðujðv ‰sÐ\Ð_pÐ^qÓrðwjðx ‘ÐEÓFðyjðB ‘#ð	4ò	.óðCjðP ‘#Ð~Ø#�n±	¸9¸+Ó0FôHðQjðV ‰sØeØ	ÐÙ˜Y˜KÓ(ôðWjð` ‰sÐVÐYbÐXcÓdðajðb ‘cÐiÐlzÐk{Ó|ðcjðd ‘#ÐRÐUdÐTeÓfðejðf ‰cð	Kñ 'ÓBÑ&ˆq¯,©,°y×*A�ˆÑ&ÑBó	ðgjðz ‰sÐhÐktÐjuÓvð{jð| ‘SÐfÐixÐhyÓzð}jð~ ‰sÐVÐXfÓgðjð@ ‘#Ð9Ð<MÐ;NÓOðAjðB ‘CÐTÐVcÐdfÕVgÓhðCjðH ‘Ð<¸zÐK[Ð>\ÐhmÐouÐgvÔwòIjðJ ‰CÐ6¸ÒEcÔdðKjðV ‰cð	$àØô	ðWjðj ‘#ð	*á!Ó4‘Mˆq¨)¡^�ˆ‘MÑ4óðkjðt ™ð	=áÐ&¨	°>È%ÔPóðujð~ ‘'ÐdÓeðjðF ‘7ÐjÓkðGjðH ‘wÐqÓrðIjðJ ‘gð	à	�OÐ$óðKjðT ‘wÐnÓoðUjðV ‘GÐlÓmðWjðX ‘WÐ^Ó_ðYjðZ ™'Ð"rÓsð[jð\ ‘GÐ\Ó]ð]jð^ ™Ð!dÓeð_jð` ‘WÐcÓdðajðb ‘wÐcÓdðcjðd ‘WÐkÐmzÓ{ñejðf ‘WÐeÓfØ‘GÐ`ÓaØ‘GÐ[Ó\Ø™WÐ%qÓrØØÐsØÐ# nÕ4ØÐ'Ø�Bð	ð ‘'ÐSÓTØ‘cÐYÐ[uÓvØ‘cØAØ
ò
ô
ñj€ðZ HPÇ~Á~ÔGWÔoÑGW¹¸Ð[fÐjnÑ[nÔ4˜T¨Õ#4Ò4ÑGWÒoÐ ñ Ñ\°·±Ô0AÓ\Ó\Ð Ù! (Ó+Ð òõõTð
)x°t÷ )xõXð, KMÐ Ó Lõñ(,Ð\`÷ ,ð ,õ^`õ
@õmõ
RõõGõ
8õ>õhõ_÷
C÷
ùòc 	Dùòd 	Cùò: 	5ùój ps0   Ä0RÅRÈ#RÉ RÊ=RË
RÏ
R"ÏR"