@symerian/symi 2.3.2 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/dist/{accounts-ChTFYj8Q.js → accounts-CWktKM8a.js} +1 -1
  2. package/dist/{accounts-CJR8j_Kq.js → accounts-qtxJ-6em.js} +1 -1
  3. package/dist/{accounts-CI6zQTJj.js → accounts-tNElYrCH.js} +14 -14
  4. package/dist/{active-listener-D6sXIjAg.js → active-listener-C9r8ZB9m.js} +1 -1
  5. package/dist/{agent-scope-Bw1Ed8W9.js → agent-scope-BxoUQqgM.js} +3 -3
  6. package/dist/{agents-b1LWBQC2.js → agents-E_Ere0qU.js} +4 -4
  7. package/dist/{agents.config-BImdIqjf.js → agents.config-Cv_wsBXL.js} +1 -1
  8. package/dist/{agents.config-CH52CAyr.js → agents.config-DJTb7Jka.js} +1 -1
  9. package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
  10. package/dist/{audio-preflight-BsfqyC31.js → audio-preflight-O3ASWbaG.js} +29 -29
  11. package/dist/{auth-choice-DcA3lQQX.js → auth-choice-B3D_jLQw.js} +1 -1
  12. package/dist/{auth-choice-DX1GLTBf.js → auth-choice-D8ynWABO.js} +1 -1
  13. package/dist/{banner-C9OgeI9S.js → banner-ChYzCy5p.js} +1 -1
  14. package/dist/{bindings-BU2hsBd9.js → bindings-B7Ke6LJi.js} +2 -2
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +53 -53
  17. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  18. package/dist/bundled/command-logger/handler.js +1 -1
  19. package/dist/bundled/session-memory/handler.js +53 -53
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-activity-C9-gaquj.js → channel-activity-CsM_hJ_s.js} +1 -1
  22. package/dist/{channel-options-CUlWJdG7.js → channel-options-BYUiEgev.js} +1 -1
  23. package/dist/{channel-options-CKHMtbhF.js → channel-options-CMNzHg4p.js} +1 -1
  24. package/dist/{channel-web-DNGWTM8I.js → channel-web-C-HLPbLL.js} +1 -1
  25. package/dist/{channels-cli-C7Q3h_ZW.js → channels-cli-CcCmH-Tp.js} +4 -4
  26. package/dist/{channels-cli-D3n-xoKD.js → channels-cli-CyhXPEWq.js} +4 -4
  27. package/dist/{chrome-w3SLcQJF.js → chrome-BFekevcE.js} +13 -13
  28. package/dist/{chrome-D2SKJnR7.js → chrome-CDJYxX5a.js} +7 -7
  29. package/dist/{chunk-ClbN9Pqy.js → chunk-BW5f05BR.js} +1 -1
  30. package/dist/{cli-Bf6Le7bx.js → cli-Cp-NQ7yu.js} +1 -1
  31. package/dist/{cli-9nGKXD05.js → cli-Gcuf3NTF.js} +1 -1
  32. package/dist/{command-format-UKHV-j0K.js → command-format-BaxDnULz.js} +1 -1
  33. package/dist/{command-registry-C6H5FwOm.js → command-registry-Cvr_dlLY.js} +9 -9
  34. package/dist/{commands-registry-VSmULp-g.js → commands-registry-D7CTCQPm.js} +4 -4
  35. package/dist/{completion-cli-DJNeDB6-.js → completion-cli-DDlYn0ya.js} +2 -2
  36. package/dist/{completion-cli-Cuqh9oMX.js → completion-cli-DaOHSXM3.js} +1 -1
  37. package/dist/{config-eEaJddXj.js → config-DRbjHIwD.js} +12 -12
  38. package/dist/{config-cli-BZARhhJb.js → config-cli-BcuAsDOu.js} +1 -1
  39. package/dist/{config-cli-BG7fqSG5.js → config-cli-CmUPAVUz.js} +1 -1
  40. package/dist/{configure-CXMeenDU.js → configure-Ctwt1377.js} +3 -3
  41. package/dist/{configure-1q8nqdUB.js → configure-OxYdT2hU.js} +3 -3
  42. package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
  43. package/dist/{deliver-BmPK91JP.js → deliver-CvCK5Mm9.js} +20 -20
  44. package/dist/{diagnostic-C3nsWaw3.js → diagnostic-CI0kRQkt.js} +1 -1
  45. package/dist/{doctor-completion-MHRUVcxM.js → doctor-completion-D7ShsgUp.js} +1 -1
  46. package/dist/{doctor-completion-DE0ljh_m.js → doctor-completion-Dw78bQaQ.js} +1 -1
  47. package/dist/entry.js +1 -1
  48. package/dist/extensionAPI.js +6 -6
  49. package/dist/{frontmatter-DPlG6yha.js → frontmatter-C_bv_0P8.js} +2 -2
  50. package/dist/{gateway-cli-A_kepvEA.js → gateway-cli-Bd7u0krH.js} +39 -50
  51. package/dist/{gateway-cli-BL_vVTU2.js → gateway-cli-D7nxPtEc.js} +39 -50
  52. package/dist/{gemini-auth-CF48hUR9.js → gemini-auth-CdSPHuLl.js} +1 -1
  53. package/dist/{github-copilot-token-DJqsJ2-r.js → github-copilot-token-C_qUP7p5.js} +7 -7
  54. package/dist/{glass-ui-ws-CWG8XziA.js → glass-ui-ws-CzH0ikhI.js} +7 -7
  55. package/dist/{glass-ui-ws-Drv5ICqE.js → glass-ui-ws-DBivjzVA.js} +7 -7
  56. package/dist/{health-BTXjJASN.js → health-BSOMI4B6.js} +1 -1
  57. package/dist/{health-B71iKlbh.js → health-rR61mwm3.js} +1 -1
  58. package/dist/{hooks-cli-D8Sc2Ha-.js → hooks-cli-BbiA-gGi.js} +2 -2
  59. package/dist/{hooks-cli-R6NcEG6h.js → hooks-cli-dS4fMEKE.js} +2 -2
  60. package/dist/{image-rZ4x9VS9.js → image-B0wGflxA.js} +4 -4
  61. package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
  62. package/dist/{image-ops-S8-8dAhx.js → image-ops-CvJzsyvE.js} +1 -1
  63. package/dist/index.js +6 -6
  64. package/dist/{ir-CbFUkv_T.js → ir-DccrnjsE.js} +4 -4
  65. package/dist/llm-slug-generator.js +53 -53
  66. package/dist/{local-roots-C7OCYACU.js → local-roots-DMwIh5cS.js} +5 -5
  67. package/dist/{login-B8uiUAnV.js → login-CwCoxapk.js} +7 -7
  68. package/dist/{login-qr-CIZk8uKX.js → login-qr-Batf3PT5.js} +12 -12
  69. package/dist/{manager-BoLr3xR_.js → manager-D_LwXbc6.js} +13 -13
  70. package/dist/{manifest-registry-CneMHk0N.js → manifest-registry-D0IQ3WuX.js} +19 -19
  71. package/dist/{markdown-tables-DSHvnTLx.js → markdown-tables-iMQQZu4Q.js} +1 -1
  72. package/dist/{message-channel-DbsRltF2.js → message-channel-Dz5lr5b0.js} +1 -1
  73. package/dist/{model-auth-CwOuTuXl.js → model-auth-DK43VicI.js} +9 -9
  74. package/dist/{models-CNdluTFK.js → models-DqE1s0YL.js} +2 -2
  75. package/dist/{models-cli-CN2aEEwr.js → models-cli-6v9jkDxp.js} +3 -3
  76. package/dist/{models-cli-dZewIFFK.js → models-cli-BWC7jYp4.js} +2 -2
  77. package/dist/{onboard-jMdLiAFB.js → onboard-BUEYf2m9.js} +2 -2
  78. package/dist/{onboard-DoPuzIkY.js → onboard-Bxoibs4p.js} +2 -2
  79. package/dist/{onboard-channels-C-e8WBT5.js → onboard-channels-C3UYzZNC.js} +1 -1
  80. package/dist/{onboard-channels-BrmH9pSy.js → onboard-channels-af6Cu6fT.js} +1 -1
  81. package/dist/{onboarding-C4tCCVuf.js → onboarding-CDdMZbov.js} +3 -3
  82. package/dist/{onboarding-Dahfev0C.js → onboarding-DW-7o6Ln.js} +3 -3
  83. package/dist/{onboarding.finalize-B-jArghw.js → onboarding.finalize-29jsMLO2.js} +6 -6
  84. package/dist/{onboarding.finalize-C-UcCZwc.js → onboarding.finalize-BI70KOeI.js} +5 -5
  85. package/dist/{outbound-opDNxv-l.js → outbound-D4fN_ZlE.js} +7 -7
  86. package/dist/{outbound-attachment-Co2diKdP.js → outbound-attachment-DjNDa3zn.js} +2 -2
  87. package/dist/{paths-CySxpNhH.js → paths-Cce4PUkG.js} +5 -5
  88. package/dist/{paths-Cb87-LzP.js → paths-DLyHUt31.js} +1 -1
  89. package/dist/{pi-auth-json-DPWPoruO.js → pi-auth-json-0SYBFZTt.js} +8 -8
  90. package/dist/{pi-embedded-Cox_hxBz.js → pi-embedded-JXvD5-F-.js} +109 -17
  91. package/dist/{pi-embedded-u1nTVeVL.js → pi-embedded-PkSwAmVq.js} +251 -159
  92. package/dist/{pi-embedded-helpers-B2z46qeM.js → pi-embedded-helpers-DLFjnVBb.js} +52 -52
  93. package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
  94. package/dist/{plugin-registry-DB6m_jhG.js → plugin-registry-B7AdPXfF.js} +1 -1
  95. package/dist/{plugin-registry-BUjhiC8S.js → plugin-registry-Reem6P3K.js} +1 -1
  96. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  97. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  98. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  99. package/dist/plugin-sdk/{active-listener-BXYeALs0.js → active-listener-bEk__wbB.js} +1 -1
  100. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  101. package/dist/plugin-sdk/agents/model-token-filter.d.ts +26 -0
  102. package/dist/plugin-sdk/{api-key-rotation-D_sMvI5W.js → api-key-rotation-CVBMpnPc.js} +1 -1
  103. package/dist/plugin-sdk/{audio-preflight-VpItkiy3.js → audio-preflight-DoQQKlxa.js} +24 -24
  104. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  105. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  106. package/dist/plugin-sdk/{channel-web-DBJ2f-u5.js → channel-web-CM7A3Y7G.js} +22 -22
  107. package/dist/plugin-sdk/{chrome-B7RdxmJ0.js → chrome-C7c_0I5M.js} +3 -3
  108. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  109. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  110. package/dist/plugin-sdk/{commands-registry-COIaslGl.js → commands-registry-CQFbmUMs.js} +4 -4
  111. package/dist/plugin-sdk/{config-KlTNfkFF.js → config-DDkdiUOR.js} +9 -9
  112. package/dist/plugin-sdk/{deliver-BiGlXG5k.js → deliver-BUns_L9e.js} +10 -10
  113. package/dist/plugin-sdk/{diagnostic-05pm5Rxi.js → diagnostic-mFf4i4G9.js} +1 -1
  114. package/dist/plugin-sdk/{image-CLOPx7yW.js → image-BOYy0Ump.js} +4 -4
  115. package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
  116. package/dist/plugin-sdk/index.js +53 -53
  117. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  118. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  119. package/dist/plugin-sdk/{login-DQMXuxOk.js → login-Bh3DZPam.js} +7 -7
  120. package/dist/plugin-sdk/{login-qr-BjVZSoCi.js → login-qr-DbR7odSr.js} +9 -9
  121. package/dist/plugin-sdk/{manager-CBSBFuFz.js → manager-DckktAQ3.js} +8 -8
  122. package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-B3ugY9-f.js} +1 -1
  123. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  124. package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
  125. package/dist/plugin-sdk/{model-selection-CsbEfrS0.js → model-selection-OpU8HN50.js} +4 -4
  126. package/dist/plugin-sdk/{outbound-attachment-CnslKL38.js → outbound-attachment-DnVQfTG2.js} +2 -2
  127. package/dist/plugin-sdk/{outbound-B0e8KdaR.js → outbound-rF6G8Xpr.js} +7 -7
  128. package/dist/plugin-sdk/{pi-auth-json-qWi7ZIYV.js → pi-auth-json-CJk8t14T.js} +5 -5
  129. package/dist/plugin-sdk/{pi-embedded-helpers-CW630epe.js → pi-embedded-helpers-BveUP4hk.js} +17 -17
  130. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  131. package/dist/plugin-sdk/{pw-ai-CnbPIPY9.js → pw-ai-DjGUsee-.js} +8 -8
  132. package/dist/plugin-sdk/{qmd-manager-CH0XbIHf.js → qmd-manager-mjKcdwVr.js} +4 -4
  133. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  134. package/dist/{replies-DpPvWiGF.js → plugin-sdk/replies-fI39rPGa.js} +3 -3
  135. package/dist/plugin-sdk/{reply-8bK0BH5o.js → reply-CDloTGFF.js} +171 -79
  136. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  137. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  138. package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
  139. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  140. package/dist/plugin-sdk/{runner-CGBT7tgF.js → runner-BVqnEfNe.js} +9 -9
  141. package/dist/plugin-sdk/{send-C5h_YxNb.js → send-BHbXh8Ly.js} +7 -7
  142. package/dist/plugin-sdk/{send-pYqe432l.js → send-BMfJIhCk.js} +6 -6
  143. package/dist/plugin-sdk/{send-B2CEnVLL.js → send-BtANzsAo.js} +6 -6
  144. package/dist/plugin-sdk/{send-CjOBB3Vo.js → send-Bxdu6ZZy.js} +10 -10
  145. package/dist/plugin-sdk/{send-CRsR8-vO.js → send-D6LMZJ_h.js} +10 -10
  146. package/dist/plugin-sdk/{session-BsOrxiMj.js → session-kI0tzViQ.js} +4 -4
  147. package/dist/plugin-sdk/{skill-commands-ff_01_r3.js → skill-commands-DCNXVERE.js} +5 -5
  148. package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-B1GeRYlu.js} +7 -7
  149. package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
  150. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  151. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  152. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  153. package/dist/{target-errors-DyItGyW9.js → plugin-sdk/target-errors-B7YyMnIi.js} +2 -2
  154. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  155. package/dist/{tokens-c_SLAkVb.js → plugin-sdk/tokens-CWMflosr.js} +1 -1
  156. package/dist/{tool-images-DBCfXdli.js → plugin-sdk/tool-images-D7Lno-TE.js} +2 -2
  157. package/dist/plugin-sdk/{tool-loop-detection-BVA6fax-.js → tool-loop-detection-edmW8ZiF.js} +2 -2
  158. package/dist/plugin-sdk/web-CWNoMlnF.js +65 -0
  159. package/dist/plugin-sdk/{whatsapp-actions-DfseosPO.js → whatsapp-actions-CcBzDuL-.js} +21 -21
  160. package/dist/{plugins-C4C9637U.js → plugins-DQYI3Fr-.js} +9 -9
  161. package/dist/{plugins-cli-DZhaDtma.js → plugins-cli-B-6wVg3A.js} +2 -2
  162. package/dist/{plugins-cli-BuFYsQIf.js → plugins-cli-V8mTTTnD.js} +2 -2
  163. package/dist/{program-DlXflM2j.js → program-DBtlRiFS.js} +7 -7
  164. package/dist/{program-context-CgOHSNfJ.js → program-context-BHPNVgg2.js} +17 -17
  165. package/dist/{prompt-select-styled-VDp7sLVS.js → prompt-select-styled-Bh-zAqW1.js} +4 -4
  166. package/dist/{prompt-select-styled-BM24eNt6.js → prompt-select-styled-Cup1c9RJ.js} +4 -4
  167. package/dist/{provider-auth-helpers-DPc2nJjU.js → provider-auth-helpers-BNmU48Ez.js} +1 -1
  168. package/dist/{provider-auth-helpers-DqyK6Uuv.js → provider-auth-helpers-CiuLdUK3.js} +1 -1
  169. package/dist/{push-apns-BP1VrPYl.js → push-apns-8VJkVSdh.js} +1 -1
  170. package/dist/{push-apns-DmCBSfsH.js → push-apns-9zUNNHgy.js} +1 -1
  171. package/dist/{pw-ai-PiQUncix.js → pw-ai-BnAKvSuw.js} +11 -11
  172. package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
  173. package/dist/{qmd-manager-DdZh9PHs.js → qmd-manager-QHUP-_em.js} +7 -7
  174. package/dist/{register.agent-MXEw1cDP.js → register.agent-BtNmleKV.js} +6 -6
  175. package/dist/{register.agent-CFngezQc.js → register.agent-DnglG42G.js} +5 -5
  176. package/dist/{register.configure-Dye2lrEX.js → register.configure-CLW9tdE4.js} +6 -6
  177. package/dist/{register.configure-yuP_CFyL.js → register.configure-DfQOfV1W.js} +6 -6
  178. package/dist/{register.maintenance-CmsjyCHR.js → register.maintenance-BQfMsgo7.js} +8 -8
  179. package/dist/{register.maintenance-CmGslWRY.js → register.maintenance-jFYcRLEN.js} +7 -7
  180. package/dist/{register.message-BqeA08JG.js → register.message-BhoZYcqM.js} +2 -2
  181. package/dist/{register.message-COWiw927.js → register.message-DUsBvFSF.js} +2 -2
  182. package/dist/{register.onboard-GL4FQKKt.js → register.onboard-BBwhoeoE.js} +4 -4
  183. package/dist/{register.onboard-Bi5HeqKP.js → register.onboard-DQOkpYBY.js} +4 -4
  184. package/dist/{register.setup-DE8B6eLm.js → register.setup-6jlL3L1h.js} +4 -4
  185. package/dist/{register.setup-CwdX8TGJ.js → register.setup-Ca6khTSz.js} +4 -4
  186. package/dist/{register.status-health-sessions-DD5niftr.js → register.status-health-sessions-DQDXZYI3.js} +3 -3
  187. package/dist/{register.status-health-sessions-CDZ7zo1L.js → register.status-health-sessions-DsYNMl06.js} +3 -3
  188. package/dist/{register.subclis-Cn7QTC_-.js → register.subclis-DJf3ihsW.js} +9 -9
  189. package/dist/{registry-DP24za6g.js → registry-CK4e9hn8.js} +17 -17
  190. package/dist/{plugin-sdk/replies-LLcQL3w6.js → replies-BIX_isV7.js} +3 -3
  191. package/dist/{reply-BU9TUp_K.js → reply-DSjeqLEz.js} +96 -4
  192. package/dist/{reply-prefix-CtL0omgM.js → reply-prefix-XlyuyChD.js} +1 -1
  193. package/dist/{resolve-route-BVikmvWO.js → resolve-route-CZ-1eqw0.js} +4 -4
  194. package/dist/{retry-dGG-MbxL.js → retry-Cly39XZB.js} +1 -1
  195. package/dist/{run-main-B6YILTPp.js → run-main-B2coomPj.js} +14 -14
  196. package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
  197. package/dist/{runner-CCSMfQee.js → runner-odEv83vv.js} +9 -9
  198. package/dist/{send-DeEosX8F.js → send-B1u-LrcS.js} +18 -18
  199. package/dist/{send-DwKJK3sM.js → send-CiTGOvEc.js} +10 -10
  200. package/dist/{send-zSarozV2.js → send-DW96zgDL.js} +6 -6
  201. package/dist/{send-CHEOWVc8.js → send-DeFniOjh.js} +6 -6
  202. package/dist/{send-DbcLJb0P.js → send-WyRqb4WD.js} +7 -7
  203. package/dist/{server-methods-DFsGxi3M.js → server-methods-DHo5e8Gj.js} +7 -7
  204. package/dist/{server-methods-BTiR6t8F.js → server-methods-QNBQbsvr.js} +7 -7
  205. package/dist/{server-node-events-BNDR2xkm.js → server-node-events-CJOo8WcL.js} +2 -2
  206. package/dist/{server-node-events-DEifFVMC.js → server-node-events-D_S0NRCQ.js} +2 -2
  207. package/dist/{session-DV1MNlbV.js → session-SM36BTsl.js} +8 -8
  208. package/dist/{skill-commands-D610IKhm.js → skill-commands-BJMb_psG.js} +9 -9
  209. package/dist/{skills-o5WVqM4V.js → skills-BFekKL7i.js} +21 -21
  210. package/dist/{sqlite-6H6Zw1cs.js → sqlite-DRbx2dhW.js} +4 -4
  211. package/dist/{status-ChsVYdUd.js → status-4DaGE8j5.js} +2 -2
  212. package/dist/{status-D6EakoGU.js → status-B8yaGk2o.js} +2 -2
  213. package/dist/{status-BlSxFEeo.js → status-D_J6qcC1.js} +1 -1
  214. package/dist/{status-DwZBYK_G.js → status-kfEtYX22.js} +1 -1
  215. package/dist/{store-vVE6N2mH.js → store-C0wvOkae.js} +2 -2
  216. package/dist/{subagent-registry-XIFSKsi7.js → subagent-registry-CyW0EDWw.js} +96 -4
  217. package/dist/{subsystem-DgpxyDQ_.js → subsystem-Bs9YvKLa.js} +1 -1
  218. package/dist/{tables-BIWsCKXJ.js → tables-DuZspiBu.js} +1 -1
  219. package/dist/{plugin-sdk/target-errors-Paro1BjP.js → target-errors-Be1SwYlW.js} +2 -2
  220. package/dist/{thinking-Ni0HF-w6.js → thinking-CdlENGRW.js} +5 -5
  221. package/dist/{plugin-sdk/tokens-bC3UVmVH.js → tokens-H1H1LiSQ.js} +1 -1
  222. package/dist/{plugin-sdk/tool-images-HJ2sfZDV.js → tool-images-DXB7tqWi.js} +2 -2
  223. package/dist/{tool-loop-detection-Bbc9OPFR.js → tool-loop-detection-Cs8_HCsx.js} +3 -3
  224. package/dist/{update-cli-C4Hrx6N-.js → update-cli-C-ZGqknl.js} +8 -8
  225. package/dist/{update-cli-CXfz9C2E.js → update-cli-DJupxo-f.js} +7 -7
  226. package/dist/{update-runner-BWHG84zP.js → update-runner-AiIhp7fw.js} +1 -1
  227. package/dist/{update-runner-C6_7IzDb.js → update-runner-BF5UULe-.js} +1 -1
  228. package/dist/{web-Bpy6uQ4f.js → web-6026eRzJ.js} +1 -1
  229. package/dist/{web-CB8bYQpw.js → web-6vYYN17n.js} +57 -57
  230. package/dist/{web-DPXq2-or.js → web-CryqKXT4.js} +6 -6
  231. package/dist/{web-C1iHUvKH.js → web-HeObJp6A.js} +2 -2
  232. package/dist/{whatsapp-actions-oRQjcdQe.js → whatsapp-actions-D1RsnX7P.js} +23 -23
  233. package/dist/{workspace-CbvamIU6.js → workspace-wAaHI8-5.js} +6 -6
  234. package/package.json +1 -1
  235. package/dist/plugin-sdk/web-C-5ZChok.js +0 -65
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
13
13
  import "./call-BcE47FtD.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-XIFSKsi7.js";
16
+ import "./subagent-registry-CyW0EDWw.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -104,8 +104,8 @@ import "./daemon-runtime-CfRwa6qh.js";
104
104
  import "./runtime-guard-D7waq_Ho.js";
105
105
  import "./systemd-DlMdyFDY.js";
106
106
  import "./service-Cm9j9WzQ.js";
107
- import "./health-BTXjJASN.js";
108
- import "./onboarding-C4tCCVuf.js";
107
+ import "./health-BSOMI4B6.js";
108
+ import "./onboarding-CDdMZbov.js";
109
109
  import "./shared-D8K9MkWg.js";
110
110
  import "./auth-token-Cmrk2TPo.js";
111
111
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BGewRZy0.js";
@@ -113,7 +113,7 @@ import "./openai-model-default-DAwnTUcK.js";
113
113
  import "./model-picker-D5nCutGW.js";
114
114
  import "./systemd-linger-DA_LW52P.js";
115
115
  import "./onboard-custom-DdWPfzJO.js";
116
- import { t as onboardCommand } from "./onboard-DoPuzIkY.js";
116
+ import { t as onboardCommand } from "./onboard-Bxoibs4p.js";
117
117
  import JSON5 from "json5";
118
118
  import fs from "node:fs/promises";
119
119
 
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-BU9TUp_K.js";
4
+ import "./reply-DSjeqLEz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -108,8 +108,8 @@ import "./clack-prompter-B7pN13HV.js";
108
108
  import "./daemon-runtime-2mwX-jqj.js";
109
109
  import "./systemd-riq8uNJQ.js";
110
110
  import "./service-Cl74hx8J.js";
111
- import "./health-B71iKlbh.js";
112
- import "./onboarding-Dahfev0C.js";
111
+ import "./health-rR61mwm3.js";
112
+ import "./onboarding-DW-7o6Ln.js";
113
113
  import "./shared-Knv1hy6h.js";
114
114
  import "./auth-token-BnOynwk4.js";
115
115
  import { n as logConfigUpdated, t as formatConfigPath } from "./logging-BzzwiKjv.js";
@@ -117,7 +117,7 @@ import "./openai-model-default-DMjQRsb1.js";
117
117
  import "./model-picker-Ddo3jHe-.js";
118
118
  import "./systemd-linger-aQ75ZlXY.js";
119
119
  import "./onboard-custom-C7O-zfQ1.js";
120
- import { t as onboardCommand } from "./onboard-jMdLiAFB.js";
120
+ import { t as onboardCommand } from "./onboard-BUEYf2m9.js";
121
121
  import JSON5 from "json5";
122
122
  import fs from "node:fs/promises";
123
123
 
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-XIFSKsi7.js";
17
+ import "./subagent-registry-CyW0EDWw.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -108,8 +108,8 @@ import "./service-Cm9j9WzQ.js";
108
108
  import "./diagnostics-CS1ov_hH.js";
109
109
  import "./table-D01d2GuY.js";
110
110
  import "./audit-Byo5jCLN.js";
111
- import { n as statusCommand } from "./status-ChsVYdUd.js";
112
- import { r as healthCommand } from "./health-BTXjJASN.js";
111
+ import { n as statusCommand } from "./status-4DaGE8j5.js";
112
+ import { r as healthCommand } from "./health-BSOMI4B6.js";
113
113
  import "./update-check-ZdimP1aU.js";
114
114
  import "./dm-policy-shared-DJ-61hCT.js";
115
115
  import "./node-service-fcZExd22.js";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, P as setVerbose, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { E as resolveSessionModelRef, pr as lookupContextTokens, y as classifySessionKey } from "./reply-BU9TUp_K.js";
4
+ import { E as resolveSessionModelRef, mr as lookupContextTokens, y as classifySessionKey } from "./reply-DSjeqLEz.js";
5
5
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -114,8 +114,8 @@ import "./service-Cl74hx8J.js";
114
114
  import "./diagnostics-BAMlsVVX.js";
115
115
  import "./table-BTgkRafz.js";
116
116
  import "./audit-CrITRV6w.js";
117
- import { t as statusCommand } from "./status-D6EakoGU.js";
118
- import { r as healthCommand } from "./health-B71iKlbh.js";
117
+ import { t as statusCommand } from "./status-B8yaGk2o.js";
118
+ import { r as healthCommand } from "./health-rR61mwm3.js";
119
119
  import "./update-check-CtckACbb.js";
120
120
  import "./dm-policy-shared-Bh3TbexU.js";
121
121
  import "./node-service-Cxz4e-Qd.js";
@@ -49,7 +49,7 @@ const entries = [
49
49
  description: "Run, inspect, and query the WebSocket Gateway",
50
50
  hasSubcommands: true,
51
51
  register: async (program) => {
52
- (await import("./gateway-cli-BL_vVTU2.js")).registerGatewayCli(program);
52
+ (await import("./gateway-cli-D7nxPtEc.js")).registerGatewayCli(program);
53
53
  }
54
54
  },
55
55
  {
@@ -81,7 +81,7 @@ const entries = [
81
81
  description: "Discover, scan, and configure models",
82
82
  hasSubcommands: true,
83
83
  register: async (program) => {
84
- (await import("./models-cli-CN2aEEwr.js")).registerModelsCli(program);
84
+ (await import("./models-cli-6v9jkDxp.js")).registerModelsCli(program);
85
85
  }
86
86
  },
87
87
  {
@@ -161,7 +161,7 @@ const entries = [
161
161
  description: "Manage internal agent hooks",
162
162
  hasSubcommands: true,
163
163
  register: async (program) => {
164
- (await import("./hooks-cli-D8Sc2Ha-.js")).registerHooksCli(program);
164
+ (await import("./hooks-cli-BbiA-gGi.js")).registerHooksCli(program);
165
165
  }
166
166
  },
167
167
  {
@@ -185,7 +185,7 @@ const entries = [
185
185
  description: "Secure DM pairing (approve inbound requests)",
186
186
  hasSubcommands: true,
187
187
  register: async (program) => {
188
- const { registerPluginCliCommands } = await import("./cli-9nGKXD05.js");
188
+ const { registerPluginCliCommands } = await import("./cli-Gcuf3NTF.js");
189
189
  registerPluginCliCommands(program, await loadConfig());
190
190
  (await import("./pairing-cli-CQRAnpvm.js")).registerPairingCli(program);
191
191
  }
@@ -195,8 +195,8 @@ const entries = [
195
195
  description: "Manage Symi plugins and extensions",
196
196
  hasSubcommands: true,
197
197
  register: async (program) => {
198
- (await import("./plugins-cli-DZhaDtma.js")).registerPluginsCli(program);
199
- const { registerPluginCliCommands } = await import("./cli-9nGKXD05.js");
198
+ (await import("./plugins-cli-B-6wVg3A.js")).registerPluginsCli(program);
199
+ const { registerPluginCliCommands } = await import("./cli-Gcuf3NTF.js");
200
200
  registerPluginCliCommands(program, await loadConfig());
201
201
  }
202
202
  },
@@ -205,7 +205,7 @@ const entries = [
205
205
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
206
206
  hasSubcommands: true,
207
207
  register: async (program) => {
208
- (await import("./channels-cli-D3n-xoKD.js")).registerChannelsCli(program);
208
+ (await import("./channels-cli-CyhXPEWq.js")).registerChannelsCli(program);
209
209
  }
210
210
  },
211
211
  {
@@ -237,7 +237,7 @@ const entries = [
237
237
  description: "Update Symi and inspect update channel status",
238
238
  hasSubcommands: true,
239
239
  register: async (program) => {
240
- (await import("./update-cli-C4Hrx6N-.js")).registerUpdateCli(program);
240
+ (await import("./update-cli-C-ZGqknl.js")).registerUpdateCli(program);
241
241
  }
242
242
  },
243
243
  {
@@ -245,7 +245,7 @@ const entries = [
245
245
  description: "Generate shell completion script",
246
246
  hasSubcommands: false,
247
247
  register: async (program) => {
248
- (await import("./completion-cli-DJNeDB6-.js").then((n) => n.n)).registerCompletionCli(program);
248
+ (await import("./completion-cli-DDlYn0ya.js").then((n) => n.n)).registerCompletionCli(program);
249
249
  }
250
250
  }
251
251
  ];
@@ -1,7 +1,7 @@
1
- import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CySxpNhH.js";
1
+ import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-Cce4PUkG.js";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
  import { Logger } from "tslog";
6
6
  import JSON5 from "json5";
7
7
  import chalk, { Chalk } from "chalk";
@@ -12,9 +12,9 @@ function isNodeErrorWithCode(err, code) {
12
12
  return typeof err === "object" && err !== null && "code" in err && err.code === code;
13
13
  }
14
14
  function resolvePreferredSymiTmpDir(options = {}) {
15
- const accessSync = options.accessSync ?? fsSync.accessSync;
16
- const lstatSync = options.lstatSync ?? fsSync.lstatSync;
17
- const mkdirSync = options.mkdirSync ?? fsSync.mkdirSync;
15
+ const accessSync = options.accessSync ?? fs.accessSync;
16
+ const lstatSync = options.lstatSync ?? fs.lstatSync;
17
+ const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
18
18
  const getuid = options.getuid ?? (() => {
19
19
  try {
20
20
  return typeof process.getuid === "function" ? process.getuid() : void 0;
@@ -38,14 +38,14 @@ function resolvePreferredSymiTmpDir(options = {}) {
38
38
  try {
39
39
  const preferred = lstatSync(POSIX_SYMI_TMP_DIR);
40
40
  if (!preferred.isDirectory() || preferred.isSymbolicLink()) return fallback();
41
- accessSync(POSIX_SYMI_TMP_DIR, fsSync.constants.W_OK | fsSync.constants.X_OK);
41
+ accessSync(POSIX_SYMI_TMP_DIR, fs.constants.W_OK | fs.constants.X_OK);
42
42
  if (!isSecureDirForUser(preferred)) return fallback();
43
43
  return POSIX_SYMI_TMP_DIR;
44
44
  } catch (err) {
45
45
  if (!isNodeErrorWithCode(err, "ENOENT")) return fallback();
46
46
  }
47
47
  try {
48
- accessSync("/tmp", fsSync.constants.W_OK | fsSync.constants.X_OK);
48
+ accessSync("/tmp", fs.constants.W_OK | fs.constants.X_OK);
49
49
  mkdirSync(POSIX_SYMI_TMP_DIR, {
50
50
  recursive: true,
51
51
  mode: 448
@@ -68,8 +68,8 @@ function resolvePreferredSymiTmpDir(options = {}) {
68
68
  function readLoggingConfig() {
69
69
  const configPath = resolveConfigPath();
70
70
  try {
71
- if (!fsSync.existsSync(configPath)) return;
72
- const raw = fsSync.readFileSync(configPath, "utf-8");
71
+ if (!fs.existsSync(configPath)) return;
72
+ const raw = fs.readFileSync(configPath, "utf-8");
73
73
  const logging = JSON5.parse(raw)?.logging;
74
74
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
75
75
  return logging;
@@ -172,7 +172,7 @@ function isFileLogLevelEnabled(level) {
172
172
  return levelToMinLevel(level) <= levelToMinLevel(settings.level);
173
173
  }
174
174
  function buildLogger(settings) {
175
- fsSync.mkdirSync(path.dirname(settings.file), { recursive: true });
175
+ fs.mkdirSync(path.dirname(settings.file), { recursive: true });
176
176
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
177
177
  const logger = new Logger({
178
178
  name: "symi",
@@ -186,7 +186,7 @@ function buildLogger(settings) {
186
186
  ...logObj,
187
187
  time
188
188
  });
189
- fsSync.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
189
+ fs.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
190
190
  } catch {}
191
191
  });
192
192
  for (const transport of externalTransports) attachExternalTransport(logger, transport);
@@ -238,14 +238,14 @@ function isRollingPath(file) {
238
238
  }
239
239
  function pruneOldRollingLogs(dir) {
240
240
  try {
241
- const entries = fsSync.readdirSync(dir, { withFileTypes: true });
241
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
242
242
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
243
243
  for (const entry of entries) {
244
244
  if (!entry.isFile()) continue;
245
245
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
246
246
  const fullPath = path.join(dir, entry.name);
247
247
  try {
248
- if (fsSync.statSync(fullPath).mtimeMs < cutoff) fsSync.rmSync(fullPath, { force: true });
248
+ if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
249
249
  } catch {}
250
250
  }
251
251
  } catch {}
@@ -326,14 +326,14 @@ function isPlainObject(value) {
326
326
  //#endregion
327
327
  //#region src/utils.ts
328
328
  async function ensureDir(dir) {
329
- await fsSync.promises.mkdir(dir, { recursive: true });
329
+ await fs.promises.mkdir(dir, { recursive: true });
330
330
  }
331
331
  /**
332
332
  * Check if a file or directory exists at the given path.
333
333
  */
334
334
  async function pathExists(targetPath) {
335
335
  try {
336
- await fsSync.promises.access(targetPath);
336
+ await fs.promises.access(targetPath);
337
337
  return true;
338
338
  } catch {
339
339
  return false;
@@ -416,7 +416,7 @@ function readLidReverseMapping(lid, opts) {
416
416
  for (const dir of mappingDirs) {
417
417
  const mappingPath = path.join(dir, mappingFilename);
418
418
  try {
419
- const data = fsSync.readFileSync(mappingPath, "utf8");
419
+ const data = fs.readFileSync(mappingPath, "utf8");
420
420
  const phone = JSON.parse(data);
421
421
  if (phone === null || phone === void 0) continue;
422
422
  return normalizeE164(String(phone));
@@ -500,7 +500,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
500
500
  if (override) return resolveUserPath(override);
501
501
  const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".symi");
502
502
  try {
503
- if (fsSync.existsSync(newDir)) return newDir;
503
+ if (fs.existsSync(newDir)) return newDir;
504
504
  } catch {}
505
505
  return newDir;
506
506
  }
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { i as chunkMarkdownTextWithMode } from "./chunk-Dw2XBYXv.js";
3
- import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-B2CEnVLL.js";
4
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-bC3UVmVH.js";
2
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-H1H1LiSQ.js";
3
+ import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-DeFniOjh.js";
4
+ import { i as chunkMarkdownTextWithMode } from "./chunk-BW5f05BR.js";
5
5
 
6
6
  //#region src/auto-reply/reply/reply-reference.ts
7
7
  function createReplyReferencePlanner(options) {
@@ -22374,7 +22374,7 @@ async function runWithImageModelFallback(params) {
22374
22374
  function createDefaultDeps() {
22375
22375
  return {
22376
22376
  sendMessageWhatsApp: async (...args) => {
22377
- const { sendMessageWhatsApp } = await import("./web-C1iHUvKH.js");
22377
+ const { sendMessageWhatsApp } = await import("./web-HeObJp6A.js");
22378
22378
  return await sendMessageWhatsApp(...args);
22379
22379
  },
22380
22380
  sendMessageTelegram: async (...args) => {
@@ -40937,7 +40937,7 @@ function loadWebLoginQr() {
40937
40937
  return webLoginQrPromise;
40938
40938
  }
40939
40939
  function loadWebChannel() {
40940
- webChannelPromise ??= import("./web-C1iHUvKH.js");
40940
+ webChannelPromise ??= import("./web-HeObJp6A.js");
40941
40941
  return webChannelPromise;
40942
40942
  }
40943
40943
  function loadWhatsAppActions() {
@@ -44587,6 +44587,69 @@ function createProcessTool(defaults) {
44587
44587
  }
44588
44588
  const processTool = createProcessTool();
44589
44589
 
44590
+ //#endregion
44591
+ //#region src/agents/model-token-filter.ts
44592
+ /**
44593
+ * Strips model-specific control tokens from streamed text.
44594
+ *
44595
+ * Used both server-side (in the streaming pipeline) and by the Glass UI
44596
+ * (as a defense-in-depth fallback). The patterns here cover tokens known
44597
+ * to leak from Gemma 4 / vLLM; Claude output is left untouched.
44598
+ */
44599
+ const GEMMA_TOKEN_PATTERNS = [
44600
+ /<\|channel>\w*/g,
44601
+ /<channel\|>/g,
44602
+ /<start_of_turn>(?:model|user)?/g,
44603
+ /<end_of_turn>/g,
44604
+ /<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
44605
+ /^\s*<bos>\s*/gm,
44606
+ /<\|[^|>]{0,30}\|>/g,
44607
+ /<\|[^>]{0,30}>/g
44608
+ ];
44609
+ /**
44610
+ * Aggressively strip all fragments of model control token corruption from
44611
+ * tool arguments. This catches cases where the model produces raw garbage
44612
+ * like `<|<|"|<|<|\'` that doesn't match any known token template.
44613
+ */
44614
+ const AGGRESSIVE_TOKEN_FRAGMENTS = [/<\|/g, /\|>/g];
44615
+ const GEMMA_MODEL_HINTS$1 = ["gemma", "redsand/"];
44616
+ function isGemmaModel$1(modelId) {
44617
+ const lower = modelId.toLowerCase();
44618
+ return GEMMA_MODEL_HINTS$1.some((hint) => lower.includes(hint));
44619
+ }
44620
+ /**
44621
+ * Strip known control tokens from text. Only applies to Gemma-family models;
44622
+ * other models pass through unchanged.
44623
+ */
44624
+ /**
44625
+ * Strip known control tokens from text. Only applies to Gemma-family models;
44626
+ * other models pass through unchanged. Used for streamed text output.
44627
+ */
44628
+ function stripModelTokens(text, modelId) {
44629
+ if (!text || !isGemmaModel$1(modelId)) return text;
44630
+ let result = text;
44631
+ for (const re of GEMMA_TOKEN_PATTERNS) {
44632
+ re.lastIndex = 0;
44633
+ result = result.replace(re, "");
44634
+ }
44635
+ return result;
44636
+ }
44637
+ /**
44638
+ * Aggressively strip ALL token-like fragments from a string. Used for tool
44639
+ * call arguments where any `<|` corruption causes downstream failures.
44640
+ * More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
44641
+ * that don't match any known token template.
44642
+ */
44643
+ function stripModelTokensAggressive(text, modelId) {
44644
+ if (!text || !isGemmaModel$1(modelId)) return text;
44645
+ let result = stripModelTokens(text, modelId);
44646
+ for (const re of AGGRESSIVE_TOKEN_FRAGMENTS) {
44647
+ re.lastIndex = 0;
44648
+ result = result.replace(re, "");
44649
+ }
44650
+ return result;
44651
+ }
44652
+
44590
44653
  //#endregion
44591
44654
  //#region src/agents/pi-tools.abort.ts
44592
44655
  function throwAbortError() {
@@ -55969,6 +56032,31 @@ function resolveToolLoopDetectionConfig(params) {
55969
56032
  }
55970
56033
  };
55971
56034
  }
56035
+ /**
56036
+ * Wrap a tool to strip model-specific control tokens from string arguments
56037
+ * before execution. Gemma 4 via vLLM sometimes injects tokens like `<|`
56038
+ * into tool call arguments (e.g. `exec("<|node -v")`). This wrapper
56039
+ * sanitizes all string values in the argument object.
56040
+ */
56041
+ function wrapToolWithArgSanitization(tool, modelId) {
56042
+ const execute = tool.execute;
56043
+ if (!execute) return tool;
56044
+ return {
56045
+ ...tool,
56046
+ execute: async (toolCallId, params, signal, onUpdate) => {
56047
+ return execute(toolCallId, sanitizeToolArgs(params, modelId), signal, onUpdate);
56048
+ }
56049
+ };
56050
+ }
56051
+ function sanitizeToolArgs(params, modelId) {
56052
+ if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
56053
+ if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
56054
+ const result = {};
56055
+ for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
56056
+ else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
56057
+ else result[key] = value;
56058
+ return result;
56059
+ }
55972
56060
  function createSymiCodingTools(options) {
55973
56061
  const execToolName = "exec";
55974
56062
  const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
@@ -56192,7 +56280,11 @@ function createSymiCodingTools(options) {
56192
56280
  agentId
56193
56281
  })
56194
56282
  }));
56195
- return options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
56283
+ const withAbort = options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
56284
+ const modelId = options?.modelId ?? "";
56285
+ const modelProvider = options?.modelProvider ?? "";
56286
+ const fullModelId = modelProvider ? `${modelProvider}/${modelId}` : modelId;
56287
+ return fullModelId ? withAbort.map((tool) => wrapToolWithArgSanitization(tool, fullModelId)) : withAbort;
56196
56288
  }
56197
56289
 
56198
56290
  //#endregion
@@ -72560,4 +72652,4 @@ async function getReplyFromConfig(ctx, opts, configOverride) {
72560
72652
  }
72561
72653
 
72562
72654
  //#endregion
72563
- export { normalizeOptionalSessionKey as $, OPENAI_TTS_MODELS as $n, parseIdentityMarkdown as $t, formatTargetDisplay as A, initSubagentRegistry as An, extractImageContentFromSource as Ar, sleepWithAbort as At, setPreRestartDeferralCheck as B, registerAgentRunContext as Bn, normalizeSendPolicy as Bt, loadSessionEntry as C, shouldComputeCommandAuthorized as Cn, peekSystemEventEntries as Cr, formatUsageWindowSummary as Ct, runMessageAction as D, normalizeMentionText as Dn, DEFAULT_INPUT_MAX_REDIRECTS as Dr, readJsonBodyWithLimit as Dt, resolveSessionModelRef as E, buildMentionRegexes as En, DEFAULT_INPUT_IMAGE_MIMES as Er, handleSlackHttpRequest as Et, emitGatewayRestart as F, readLatestAssistantReply as Fn, resolveHeartbeatDeliveryTarget as Ft, summarizeRestartSentinel as G, resolveTtsApiKey as Gn, getCliSessionId as Gt, formatDoctorNonInteractiveHint as H, getTtsProvider as Hn, createDefaultDeps as Ht, isGatewaySigusr1RestartExternallyAllowed as I, clearAgentRunContext as In, resolveHeartbeatSenderContext as It, normalizeHttpWebhookUrl as J, resolveTtsPrefsPath as Jn, sha256HexPrefix as Jt, trimLogTail as K, resolveTtsAutoMode as Kn, setCliSessionId as Kt, markGatewaySigusr1RestartHandled as L, emitAgentEvent as Ln, resolveOutboundTarget as Lt, CHANNEL_MESSAGE_ACTION_NAMES as M, listSubagentRunsForRequester as Mn, resolveInputFileLimits as Mr, resolveSessionKeyForRequest as Mt, consumeGatewaySigusr1RestartAuthorization as N, subagent_registry_exports as Nn, estimateBase64DecodedBytes as Nr, resolveAgentDeliveryPlan as Nt, ensureOutboundSessionEntry as O, countActiveDescendantRuns as On, DEFAULT_INPUT_TIMEOUT_MS as Or, requestBodyErrorToText as Ot, deferGatewayRestartUntilIdle as P, runSubagentAnnounceFlow as Pn, resolveAgentTimeoutMs as Pr, resolveAgentOutboundTarget as Pt, normalizeOptionalAgentId as Q, textToSpeech as Qn, loadAgentIdentityFromWorkspace as Qt, scheduleGatewaySigusr1Restart as R, getAgentRunContext as Rn, resolveSessionDeliveryTarget as Rt, loadCombinedSessionStoreForGateway as S, hasControlCommand as Sn, isSystemEventContextChanged as Sr, formatUsageReportLines as St, resolveGatewaySessionStoreTarget as T, stopSubagentsForRequester as Tn, DEFAULT_INPUT_IMAGE_MAX_BYTES as Tr, resolveCommitHash as Tt, formatRestartSentinelMessage as U, isTtsEnabled as Un, createOutboundSendDeps$1 as Ut, consumeRestartSentinel as V, resolveUserTimezone as Vn, resolveSendPolicy as Vt, readRestartSentinel as W, isTtsProviderConfigured as Wn, runWithModelFallback as Wt, normalizeCronJobPatch as X, setTtsEnabled as Xn, resolveAgentAvatar as Xt, normalizeCronJobCreate as Y, resolveTtsProviderOrder as Yn, describeFailoverError as Yt, inferLegacyName as Z, setTtsProvider as Zn, identityHasValues as Zt, resolveAnnounceTargetFromKey as _, createInboundDebouncer as _n, formatRemainingShort as _r, loadSymiPlugins as _t, buildChannelSummary as a, buildPairingReply as an, setCommandLaneConcurrency as ar, hasLegacyDeliveryHints as at, listAgentsForGateway as b, resolveEnvelopeFormatOptions as bn, parseVerboseOverride as br, parseActivationCommand as bt, clearSessionQueues as c, buildHistoryContextFromEntries as cn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as cr, CHANNEL_TARGET_DESCRIPTION as ct, getActiveEmbeddedRunCount as d, dispatchReplyWithBufferedBlockDispatcher as dn, resolveHeartbeatPrompt as dr, sniffMimeFromBase64 as dt, buildSafeExternalPrompt as en, OPENAI_TTS_VOICES as er, normalizeOptionalText as et, waitForEmbeddedPiRunEnd as f, provider_dispatcher_exports as fn, stripHeartbeatToken as fr, requestHeartbeatNow as ft, createSymiTools as g, createDedupeCache as gn, buildAuthHealthSummary as gr, createPluginLoaderLogger as gt, buildDefaultToolPolicyPipelineSteps as h, getTotalPendingReplies as hn, DEFAULT_OAUTH_WARN_MS as hr, getPluginToolMeta as ht, resolveCronStyleNow as i, unbindThreadBindingsBySessionKey as in, resetAllLanes as ir, buildDeliveryFromLegacyPayload as it, resetDirectoryCache as j, listDescendantRunsForRequester as jn, normalizeMimeList as jr, agentCommand as jt, resolveOutboundSessionRoute as k, countActiveRunsForSession as kn, extractFileContentFromSource as kr, computeBackoff as kt, runEmbeddedPiAgent as l, recordPendingHistoryEntryIfEnabled as ln, DEFAULT_HEARTBEAT_EVERY as lr, applyBrowserProxyPaths as lt, applyToolPolicyPipeline as m, createReplyDispatcher as mn, maskApiKey as mr, resolveHeartbeatReasonKind as mt, BARE_SESSION_RESET_PROMPT as n, getHookType as nn, getQueueSize as nr, normalizeRequiredName as nt, buildChannelAccountSnapshot as o, resolveMentionGating as on, waitForActiveTasks as or, stripLegacyDeliveryFields as ot, resolveModelProfile as p, dispatchInboundMessage as pn, lookupContextTokens as pr, setHeartbeatWakeHandler as pt, writeRestartSentinel as q, resolveTtsConfig as qn, runCliAgent as qt, appendCronStyleCurrentTimeLine as r, isExternalHookSession as rn, getTotalQueueSize as rr, migrateLegacyCronPayload as rt, formatChannelAllowFrom as s, DEFAULT_GROUP_HISTORY_LIMIT as sn, CommandLane as sr, CHANNEL_TARGETS_DESCRIPTION as st, getReplyFromConfig as t, detectSuspiciousPatterns as tn, getActiveTaskCount as tr, normalizePayloadToSystemText as tt, abortEmbeddedPiRun as u, shouldAckReactionForWhatsApp as un, isHeartbeatContentEffectivelyEmpty as ur, persistBrowserProxyFiles as ut, canonicalizeSpawnedByForAgent as v, resolveInboundDebounceMs as vn, applyModelOverrideToSessionEntry as vr, deleteTelegramUpdateOffset as vt, pruneLegacyStoreKeys as w, isAbortTrigger as wn, peekSystemEvents as wr, resolveUsageProviderId as wt, listSessionsFromStore as x, formatZonedTimestamp as xn, enqueueSystemEvent as xr, loadProviderUsageSummary as xt, classifySessionKey as y, formatInboundEnvelope as yn, applyVerboseOverride as yr, normalizeGroupActivation as yt, setGatewaySigusr1RestartPolicy as z, onAgentEvent as zn, createOutboundSendDeps as zt };
72655
+ export { normalizeOptionalSessionKey as $, textToSpeech as $n, loadAgentIdentityFromWorkspace as $t, formatTargetDisplay as A, countActiveRunsForSession as An, extractFileContentFromSource as Ar, computeBackoff as At, setPreRestartDeferralCheck as B, onAgentEvent as Bn, createOutboundSendDeps as Bt, loadSessionEntry as C, hasControlCommand as Cn, isSystemEventContextChanged as Cr, formatUsageReportLines as Ct, runMessageAction as D, buildMentionRegexes as Dn, DEFAULT_INPUT_IMAGE_MIMES as Dr, handleSlackHttpRequest as Dt, resolveSessionModelRef as E, stopSubagentsForRequester as En, DEFAULT_INPUT_IMAGE_MAX_BYTES as Er, resolveCommitHash as Et, emitGatewayRestart as F, runSubagentAnnounceFlow as Fn, resolveAgentTimeoutMs as Fr, resolveAgentOutboundTarget as Ft, summarizeRestartSentinel as G, isTtsProviderConfigured as Gn, runWithModelFallback as Gt, formatDoctorNonInteractiveHint as H, resolveUserTimezone as Hn, resolveSendPolicy as Ht, isGatewaySigusr1RestartExternallyAllowed as I, readLatestAssistantReply as In, resolveHeartbeatDeliveryTarget as It, normalizeHttpWebhookUrl as J, resolveTtsConfig as Jn, runCliAgent as Jt, trimLogTail as K, resolveTtsApiKey as Kn, getCliSessionId as Kt, markGatewaySigusr1RestartHandled as L, clearAgentRunContext as Ln, resolveHeartbeatSenderContext as Lt, CHANNEL_MESSAGE_ACTION_NAMES as M, listDescendantRunsForRequester as Mn, normalizeMimeList as Mr, agentCommand as Mt, consumeGatewaySigusr1RestartAuthorization as N, listSubagentRunsForRequester as Nn, resolveInputFileLimits as Nr, resolveSessionKeyForRequest as Nt, ensureOutboundSessionEntry as O, normalizeMentionText as On, DEFAULT_INPUT_MAX_REDIRECTS as Or, readJsonBodyWithLimit as Ot, deferGatewayRestartUntilIdle as P, subagent_registry_exports as Pn, estimateBase64DecodedBytes as Pr, resolveAgentDeliveryPlan as Pt, normalizeOptionalAgentId as Q, setTtsProvider as Qn, identityHasValues as Qt, scheduleGatewaySigusr1Restart as R, emitAgentEvent as Rn, resolveOutboundTarget as Rt, loadCombinedSessionStoreForGateway as S, formatZonedTimestamp as Sn, enqueueSystemEvent as Sr, loadProviderUsageSummary as St, resolveGatewaySessionStoreTarget as T, isAbortTrigger as Tn, peekSystemEvents as Tr, resolveUsageProviderId as Tt, formatRestartSentinelMessage as U, getTtsProvider as Un, createDefaultDeps as Ut, consumeRestartSentinel as V, registerAgentRunContext as Vn, normalizeSendPolicy as Vt, readRestartSentinel as W, isTtsEnabled as Wn, createOutboundSendDeps$1 as Wt, normalizeCronJobPatch as X, resolveTtsProviderOrder as Xn, describeFailoverError as Xt, normalizeCronJobCreate as Y, resolveTtsPrefsPath as Yn, sha256HexPrefix as Yt, inferLegacyName as Z, setTtsEnabled as Zn, resolveAgentAvatar as Zt, resolveAnnounceTargetFromKey as _, createDedupeCache as _n, buildAuthHealthSummary as _r, createPluginLoaderLogger as _t, buildChannelSummary as a, unbindThreadBindingsBySessionKey as an, resetAllLanes as ar, hasLegacyDeliveryHints as at, listAgentsForGateway as b, formatInboundEnvelope as bn, applyVerboseOverride as br, normalizeGroupActivation as bt, clearSessionQueues as c, DEFAULT_GROUP_HISTORY_LIMIT as cn, CommandLane as cr, CHANNEL_TARGET_DESCRIPTION as ct, getActiveEmbeddedRunCount as d, shouldAckReactionForWhatsApp as dn, isHeartbeatContentEffectivelyEmpty as dr, sniffMimeFromBase64 as dt, parseIdentityMarkdown as en, OPENAI_TTS_MODELS as er, normalizeOptionalText as et, waitForEmbeddedPiRunEnd as f, dispatchReplyWithBufferedBlockDispatcher as fn, resolveHeartbeatPrompt as fr, stripModelTokens as ft, createSymiTools as g, getTotalPendingReplies as gn, DEFAULT_OAUTH_WARN_MS as gr, getPluginToolMeta as gt, buildDefaultToolPolicyPipelineSteps as h, createReplyDispatcher as hn, maskApiKey as hr, resolveHeartbeatReasonKind as ht, resolveCronStyleNow as i, isExternalHookSession as in, getTotalQueueSize as ir, buildDeliveryFromLegacyPayload as it, resetDirectoryCache as j, initSubagentRegistry as jn, extractImageContentFromSource as jr, sleepWithAbort as jt, resolveOutboundSessionRoute as k, countActiveDescendantRuns as kn, DEFAULT_INPUT_TIMEOUT_MS as kr, requestBodyErrorToText as kt, runEmbeddedPiAgent as l, buildHistoryContextFromEntries as ln, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as lr, applyBrowserProxyPaths as lt, applyToolPolicyPipeline as m, dispatchInboundMessage as mn, lookupContextTokens as mr, setHeartbeatWakeHandler as mt, BARE_SESSION_RESET_PROMPT as n, detectSuspiciousPatterns as nn, getActiveTaskCount as nr, normalizeRequiredName as nt, buildChannelAccountSnapshot as o, buildPairingReply as on, setCommandLaneConcurrency as or, stripLegacyDeliveryFields as ot, resolveModelProfile as p, provider_dispatcher_exports as pn, stripHeartbeatToken as pr, requestHeartbeatNow as pt, writeRestartSentinel as q, resolveTtsAutoMode as qn, setCliSessionId as qt, appendCronStyleCurrentTimeLine as r, getHookType as rn, getQueueSize as rr, migrateLegacyCronPayload as rt, formatChannelAllowFrom as s, resolveMentionGating as sn, waitForActiveTasks as sr, CHANNEL_TARGETS_DESCRIPTION as st, getReplyFromConfig as t, buildSafeExternalPrompt as tn, OPENAI_TTS_VOICES as tr, normalizePayloadToSystemText as tt, abortEmbeddedPiRun as u, recordPendingHistoryEntryIfEnabled as un, DEFAULT_HEARTBEAT_EVERY as ur, persistBrowserProxyFiles as ut, canonicalizeSpawnedByForAgent as v, createInboundDebouncer as vn, formatRemainingShort as vr, loadSymiPlugins as vt, pruneLegacyStoreKeys as w, shouldComputeCommandAuthorized as wn, peekSystemEventEntries as wr, formatUsageWindowSummary as wt, listSessionsFromStore as x, resolveEnvelopeFormatOptions as xn, parseVerboseOverride as xr, parseActivationCommand as xt, classifySessionKey as y, resolveInboundDebounceMs as yn, applyModelOverrideToSessionEntry as yr, deleteTelegramUpdateOffset as yt, setGatewaySigusr1RestartPolicy as z, getAgentRunContext as zn, resolveSessionDeliveryTarget as zt };
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveAgentConfig } from "./agent-scope-Bw1Ed8W9.js";
2
+ import { n as resolveAgentConfig } from "./agent-scope-BxoUQqgM.js";
3
3
 
4
4
  //#region src/agents/identity.ts
5
5
  const DEFAULT_ACK_REACTION = "👀";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { Z as shouldLogVerbose } from "./registry-DP24za6g.js";
4
- import { c as resolveDefaultAgentId } from "./agent-scope-Bw1Ed8W9.js";
5
- import { y as logDebug } from "./workspace-CbvamIU6.js";
3
+ import { Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
4
+ import { c as resolveDefaultAgentId } from "./agent-scope-BxoUQqgM.js";
5
+ import { y as logDebug } from "./workspace-wAaHI8-5.js";
6
6
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
7
- import { t as listBindings } from "./bindings-BU2hsBd9.js";
7
+ import { t as listBindings } from "./bindings-B7Ke6LJi.js";
8
8
 
9
9
  //#region src/routing/resolve-route.ts
10
10
  var resolve_route_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { B as sleep } from "./registry-DP24za6g.js";
1
+ import { B as sleep } from "./registry-CK4e9hn8.js";
2
2
 
3
3
  //#region src/infra/retry.ts
4
4
  const DEFAULT_RETRY_CONFIG = {
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
13
13
  import "./call-BcE47FtD.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-XIFSKsi7.js";
16
+ import "./subagent-registry-CyW0EDWw.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -101,9 +101,9 @@ import { t as ensureSymiCliOnPath } from "./path-env-Bic_wXs9.js";
101
101
  import "./catalog-DLQFKucJ.js";
102
102
  import "./note-DDecZomM.js";
103
103
  import "./plugin-auto-enable-D6ENR3Xg.js";
104
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DB6m_jhG.js";
104
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-B7AdPXfF.js";
105
105
  import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
106
- import { t as emitCliBanner } from "./banner-C9OgeI9S.js";
106
+ import { t as emitCliBanner } from "./banner-ChYzCy5p.js";
107
107
  import "./doctor-config-flow-CA3eiKhd.js";
108
108
  import { n as ensureConfigReady } from "./config-guard-CPHvOzsC.js";
109
109
  import process$1 from "node:process";
@@ -118,7 +118,7 @@ const routeHealth = {
118
118
  const verbose = getVerboseFlag(argv, { includeDebug: true });
119
119
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
120
120
  if (timeoutMs === null) return false;
121
- const { healthCommand } = await import("./health-BTXjJASN.js").then((n) => n.i);
121
+ const { healthCommand } = await import("./health-BSOMI4B6.js").then((n) => n.i);
122
122
  await healthCommand({
123
123
  json,
124
124
  timeoutMs,
@@ -138,7 +138,7 @@ const routeStatus = {
138
138
  const verbose = getVerboseFlag(argv, { includeDebug: true });
139
139
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
140
140
  if (timeoutMs === null) return false;
141
- const { statusCommand } = await import("./status-ChsVYdUd.js").then((n) => n.t);
141
+ const { statusCommand } = await import("./status-4DaGE8j5.js").then((n) => n.t);
142
142
  await statusCommand({
143
143
  json,
144
144
  deep,
@@ -172,7 +172,7 @@ const routeAgentsList = {
172
172
  run: async (argv) => {
173
173
  const json = hasFlag(argv, "--json");
174
174
  const bindings = hasFlag(argv, "--bindings");
175
- const { agentsListCommand } = await import("./agents-b1LWBQC2.js").then((n) => n.t);
175
+ const { agentsListCommand } = await import("./agents-E_Ere0qU.js").then((n) => n.t);
176
176
  await agentsListCommand({
177
177
  json,
178
178
  bindings
@@ -243,7 +243,7 @@ const routes = [
243
243
  const pathArg = getCommandPositionals(argv)[2];
244
244
  if (!pathArg) return false;
245
245
  const json = hasFlag(argv, "--json");
246
- const { runConfigGet } = await import("./config-cli-BZARhhJb.js");
246
+ const { runConfigGet } = await import("./config-cli-BcuAsDOu.js");
247
247
  await runConfigGet({
248
248
  path: pathArg,
249
249
  json
@@ -256,7 +256,7 @@ const routes = [
256
256
  run: async (argv) => {
257
257
  const pathArg = getCommandPositionals(argv)[2];
258
258
  if (!pathArg) return false;
259
- const { runConfigUnset } = await import("./config-cli-BZARhhJb.js");
259
+ const { runConfigUnset } = await import("./config-cli-BcuAsDOu.js");
260
260
  await runConfigUnset({ path: pathArg });
261
261
  return true;
262
262
  }
@@ -270,7 +270,7 @@ const routes = [
270
270
  const local = hasFlag(argv, "--local");
271
271
  const json = hasFlag(argv, "--json");
272
272
  const plain = hasFlag(argv, "--plain");
273
- const { modelsListCommand } = await import("./models-CNdluTFK.js").then((n) => n.t);
273
+ const { modelsListCommand } = await import("./models-DqE1s0YL.js").then((n) => n.t);
274
274
  await modelsListCommand({
275
275
  all,
276
276
  local,
@@ -301,7 +301,7 @@ const routes = [
301
301
  const plain = hasFlag(argv, "--plain");
302
302
  const check = hasFlag(argv, "--check");
303
303
  const probe = hasFlag(argv, "--probe");
304
- const { modelsStatusCommand } = await import("./models-CNdluTFK.js").then((n) => n.t);
304
+ const { modelsStatusCommand } = await import("./models-DqE1s0YL.js").then((n) => n.t);
305
305
  await modelsStatusCommand({
306
306
  json,
307
307
  plain,
@@ -379,7 +379,7 @@ async function runCli(argv = process$1.argv) {
379
379
  assertSupportedRuntime();
380
380
  if (await tryRouteCli(normalizedArgv)) return;
381
381
  enableConsoleCapture();
382
- const { buildProgram } = await import("./program-DlXflM2j.js");
382
+ const { buildProgram } = await import("./program-DBtlRiFS.js");
383
383
  const program = buildProgram();
384
384
  installUnhandledRejectionHandler();
385
385
  process$1.on("uncaughtException", (error) => {
@@ -411,10 +411,10 @@ async function runCli(argv = process$1.argv) {
411
411
  const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
412
412
  const ctx = getProgramContext(program);
413
413
  if (ctx) {
414
- const { registerCoreCliByName } = await import("./command-registry-C6H5FwOm.js").then((n) => n.t);
414
+ const { registerCoreCliByName } = await import("./command-registry-Cvr_dlLY.js").then((n) => n.t);
415
415
  await registerCoreCliByName(program, ctx, primary, parseArgv);
416
416
  }
417
- const { registerSubCliByName } = await import("./register.subclis-Cn7QTC_-.js").then((n) => n.a);
417
+ const { registerSubCliByName } = await import("./register.subclis-DJf3ihsW.js").then((n) => n.a);
418
418
  await registerSubCliByName(program, primary);
419
419
  }
420
420
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -423,7 +423,7 @@ async function runCli(argv = process$1.argv) {
423
423
  primary,
424
424
  hasBuiltinPrimary
425
425
  })) {
426
- const { registerPluginCliCommands } = await import("./cli-9nGKXD05.js");
426
+ const { registerPluginCliCommands } = await import("./cli-Gcuf3NTF.js");
427
427
  const { loadConfig } = await import("./config-DHBLS1Hl.js").then((n) => n.t);
428
428
  registerPluginCliCommands(program, loadConfig());
429
429
  }
@@ -4,7 +4,7 @@ import { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
4
4
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
5
5
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BmV60pPT.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-DcpMiprB.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CHzdaNJ4.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CSlZZ1Pw.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CC8jiKDk.js";