@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
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-c_SLAkVb.js";
3
- import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-CHEOWVc8.js";
4
- import { i as chunkMarkdownTextWithMode } from "./chunk-ClbN9Pqy.js";
2
+ import { i as chunkMarkdownTextWithMode } from "./chunk-jvk9axTQ.js";
3
+ import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-BtANzsAo.js";
4
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CWMflosr.js";
5
5
 
6
6
  //#region src/auto-reply/reply/reply-reference.ts
7
7
  function createReplyReferencePlanner(options) {
@@ -1,72 +1,72 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normalizeMainKey, d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, g as isAcpSessionKey, h as getSubagentDepth, l as resolveAgentIdFromSessionKey, o as classifySessionKeyShape, p as normalizeAccountId$2, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-C_0eELjb.js";
3
- import { c as logoutWeb, f as readWebSelfId, g as webAuthExists, o as getWebAuthAgeMs, r as resolveWhatsAppAccount, s as logWebSelfId } from "./accounts-Ddm33hQm.js";
3
+ import { c as logoutWeb, f as readWebSelfId, g as webAuthExists, o as getWebAuthAgeMs, r as resolveWhatsAppAccount, s as logWebSelfId } from "./accounts-D9zGZU5t.js";
4
4
  import { c as expandHomePrefix, i as resolveGatewayPort, n as resolveConfigPath, s as resolveStateDir, t as STATE_DIR, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
5
5
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-D9X2phUj.js";
6
- import { A as resolveSlackBotToken, C as resolveTelegramToken, D as resolveSlackAccount, F as resolveDiscordAccount, I as normalizeDiscordToken, N as listEnabledDiscordAccounts, S as resolveTelegramAccount, _ as normalizeWhatsAppTarget, b as listTelegramAccountIds, g as isWhatsAppGroupJid, h as resolveSlackChannelId, j as createDiscordActionGate, k as resolveSlackAppToken, m as parseSlackTarget, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as createTelegramActionGate, y as listEnabledTelegramAccounts } from "./plugins-BNByVCIH.js";
6
+ import { A as resolveSlackBotToken, C as resolveTelegramToken, D as resolveSlackAccount, F as resolveDiscordAccount, I as normalizeDiscordToken, N as listEnabledDiscordAccounts, S as resolveTelegramAccount, _ as normalizeWhatsAppTarget, b as listTelegramAccountIds, g as isWhatsAppGroupJid, h as resolveSlackChannelId, j as createDiscordActionGate, k as resolveSlackAppToken, m as parseSlackTarget, n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as createTelegramActionGate, y as listEnabledTelegramAccounts } from "./plugins-BbAvhC25.js";
7
7
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-ChYuW7LE.js";
8
8
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CUNoPTKm.js";
9
- import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry-D0xTnUWt.js";
10
- import { n as retryAsync } from "./retry-CwQ_iIj8.js";
11
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-CjOBB3Vo.js";
12
- import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-KlTNfkFF.js";
13
- import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
14
- import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-GKSevep4.js";
15
- import { A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, G as normalizeSecretInput, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_MODEL, K as resolveAuthProfileDisplayLabel, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, Q as resolveShellEnvFallbackTimeoutMs, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as getShellPathFromLoginShell, Y as DEFAULT_PROVIDER, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-CsbEfrS0.js";
16
- import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-CYYpcO9W.js";
17
- import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-CPnHl_K3.js";
9
+ import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, ct as normalizeLogLevel, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId$1, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, tt as getChildLogger, u as setActivePluginRegistry, ut as resolvePreferredSymiTmpDir, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry--_pGht6S.js";
10
+ import { n as retryAsync } from "./retry-ilSJqnz9.js";
11
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, At as fetchDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, E as listThreadsDiscord, Et as normalizeChannelSlug, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as buildChannelKeyCandidates, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as applyChannelMatchMeta, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Bxdu6ZZy.js";
12
+ import { B as getConfigOverrides, C as resolveIMessageRemoteAttachmentRoots, G as parseConfigPath, H as setConfigOverride, J as isSafeExecutableValue, K as setConfigValueAtPath, R as parseDurationMs, S as resolveIMessageAttachmentRoots, U as unsetConfigOverride, V as resetConfigOverrides, W as getConfigValueAtPath, X as resolveAgentMaxConcurrent, Y as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Z as VERSION, _ as normalizeTelegramCommandName, a as writeConfigFile, b as isInboundPathAllowed, g as TELEGRAM_COMMAND_NAME_PATTERN, i as resolveConfigSnapshotHash, n as loadConfig, o as validateConfigObjectWithPlugins, q as unsetConfigValueAtPath, r as readConfigFileSnapshot, v as resolveTelegramCustomCommands, w as normalizeScpRemoteHost, z as validateJsonSchemaValue } from "./config-DDkdiUOR.js";
13
+ import { a as clearActiveProgressLine, i as defaultRuntime, o as registerActiveProgressLine, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
14
+ import { i as parseBooleanValue$1, n as resolveCliName, r as isTruthyEnvValue, t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
15
+ import { A as getSoonestCooldownExpiry, B as resolveSymiAgentDir, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as dedupeProfileIds, G as normalizeSecretInput, H as withFileLock, I as listProfilesForProvider, J as DEFAULT_MODEL, K as resolveAuthProfileDisplayLabel, L as markAuthProfileGood, M as markAuthProfileFailure, N as markAuthProfileUsed, P as resolveApiKeyForProfile, Q as resolveShellEnvFallbackTimeoutMs, R as ensureAuthProfileStore, S as getApiKeyForModel, T as resolveApiKeyForProvider, X as getShellPathFromLoginShell, Y as DEFAULT_PROVIDER, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, j as isProfileInCooldown, k as resolveAuthProfileOrder, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, q as DEFAULT_CONTEXT_TOKENS, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveAuthStorePathForDisplay } from "./model-selection-OpU8HN50.js";
16
+ import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-C3gMMKCU.js";
17
+ import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-B3ugY9-f.js";
18
18
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-Bv8oZiTO.js";
19
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-DoC1xtDu.js";
19
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-Ji7f0gqq.js";
20
20
  import { n as normalizePollInput } from "./polls-3WJMd-G-.js";
21
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-BlQR__MN.js";
21
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-Bnp6LXEx.js";
22
22
  import { a as isBlockedHostnameOrIp, c as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DKZ8eBrk.js";
23
- import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-BHLNSI8U.js";
24
- import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-BJ6BHE5b.js";
25
- import { a as chunkText, c as resolveChunkMode, d as findFenceSpanAt, f as isSafeFenceBreak, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, p as parseFenceSpans, r as chunkMarkdownText, t as chunkByNewline } from "./chunk-Dw2XBYXv.js";
26
- import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-COTAJzHd.js";
23
+ import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
24
+ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-Fb3qpcis.js";
25
+ import { a as chunkText, c as resolveChunkMode, d as findFenceSpanAt, f as isSafeFenceBreak, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, p as parseFenceSpans, r as chunkMarkdownText, t as chunkByNewline } from "./chunk-jvk9axTQ.js";
26
+ import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BdI5Ra9S.js";
27
27
  import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
28
- import { n as resolveMarkdownTableMode } from "./markdown-tables-BoYFajMu.js";
29
- import { t as convertMarkdownTables } from "./tables-DNwXwNFa.js";
30
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-C5h_YxNb.js";
31
- import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-HJ2sfZDV.js";
32
- import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Paro1BjP.js";
33
- import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-B2CEnVLL.js";
34
- import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-CRsR8-vO.js";
35
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-CGBT7tgF.js";
36
- import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-uxfMZW4p.js";
37
- import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-bC3UVmVH.js";
38
- import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-ff_01_r3.js";
39
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-_yTP47Cd.js";
40
- import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-B7RdxmJ0.js";
41
- import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-CXqf7WTe.js";
42
- import { r as resolveIMessageAccount } from "./accounts-s-AdhXVR.js";
43
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BtaOa4z_.js";
44
- import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-BiGlXG5k.js";
45
- import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-CW630epe.js";
28
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
29
+ import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
30
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-BHbXh8Ly.js";
31
+ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-D7Lno-TE.js";
32
+ import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-B7YyMnIi.js";
33
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, i as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack } from "./send-BtANzsAo.js";
34
+ import { $ as parseTelegramTarget, A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as readChannelAllowFromStore, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as upsertChannelPairingRequest, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, Q as isVoiceCompatibleAudio, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as addChannelAllowFromStoreEntry, X as listPairingChannels, Y as getPairingAdapter, Z as withTelegramApiErrorLogging, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, et as resolveTelegramTargetChatType, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as toLocationContext, o as sendMessageTelegram, p as markdownToTelegramChunks, q as removeChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as formatLocationText, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-D6LMZJ_h.js";
35
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as registerUnhandledRejectionHandler, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as buildRandomTempFilePath } from "./runner-BVqnEfNe.js";
36
+ import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-BHuV5t70.js";
37
+ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-CWMflosr.js";
38
+ import { c as getSkillsSnapshotVersion, d as resolvePairingPaths, f as createAsyncLock, i as resolveSkillCommandInvocation, l as generatePairingToken, m as writeJsonAtomic, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as readJsonFile, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as pruneExpiredPending } from "./skill-commands-DCNXVERE.js";
39
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-B1GeRYlu.js";
40
+ import { M as isSecureWebSocketUrl, N as rawDataToString, T as DEFAULT_AI_SNAPSHOT_MAX_CHARS, x as ensureChromeExtensionRelayServer } from "./chrome-C7c_0I5M.js";
41
+ import { A as normalizeHyphenSlug, F as resolveChannelGroupRequireMention, I as resolveChannelGroupToolsPolicy, M as normalizeStringEntriesLower, P as resolveChannelGroupPolicy, a as normalizeReasoningLevel, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, i as normalizeElevatedLevel, j as normalizeStringEntries, k as normalizeAtHashSlug, l as resolveResponseUsageMode, m as normalizeSignalMessagingTarget, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCNUIAHY.js";
42
+ import { r as resolveIMessageAccount } from "./accounts-Dtszw3Zn.js";
43
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BToL3HlP.js";
44
+ import { C as getGlobalHookRunner, S as throwIfAborted, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as splitMediaFromOutput, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as parseReplyDirectives, w as initializeGlobalHookRunner, x as parseInlineDirectives$1, y as MEDIA_TOKEN_RE } from "./deliver-BUns_L9e.js";
45
+ import { $ as normalizeToolName, A as isTransientHttpError, At as countToolResults, B as resolveProfile, Bt as resolveChannelResetConfig, C as isContextOverflowError, Ct as deliveryContextKey, D as isRateLimitAssistantError, Dt as normalizeAccountId$3, E as isLikelyContextOverflowError, Et as normalizeSessionDeliveryFields, F as resolveSandboxContext, Ft as normalizeInputProvenance, G as resolveBrowserControlAuth, Gt as resolveFreshSessionTotalTokens, H as resolveExistingPathsWithinRoot, Ht as resolveSessionResetType, I as resolveSandboxRuntimeStatus, It as acquireSessionWriteLock, J as buildPluginToolGroups, Jt as resolveMainSessionKey, K as resolveSandboxConfigForAgent, Kt as canonicalizeMainSessionAlias, L as createBrowserRouteContext, Lt as resolveSessionLockMaxHoldFromTimeout, M as parseImageSizeError, Mt as INPUT_PROVENANCE_KIND_VALUES, N as sanitizeUserFacingText, Nt as applyInputProvenanceToUserMessage, O as isRawApiErrorPayload, Ot as archiveSessionTranscripts, P as ensureSandboxWorkspaceForSession, Pt as hasInterSessionUserProvenance, Q as mergeAlsoAllowPolicy, R as registerBrowserRoutes, Rt as resolveSessionKey, S as isCompactionFailureError, St as deliveryContextFromSession, T as isFailoverErrorMessage, Tt as normalizeDeliveryContext, U as getBridgeAuthForPort, Ut as resolveThreadFlag, V as DEFAULT_UPLOAD_DIR, Vt as resolveSessionResetPolicy, W as ensureBrowserControlAuth, Wt as DEFAULT_RESET_TRIGGERS, X as expandPolicyWithPluginGroups, Xt as resolveGroupSessionKey, Y as collectExplicitAllowlist, Yt as deriveSessionMetaPatch, Z as expandToolGroups, _ as formatRawAssistantErrorForUi, _t as updateLastRoute, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isBillingAssistantError, bt as isCacheEnabled, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as isAntigravityClaude, dt as appendAssistantMessageToSessionTranscript, et as resolveToolProfilePolicy, f as isGoogleModelApi, g as formatBillingErrorMessage, gt as recordSessionMetaFromInbound, h as formatAssistantErrorText, ht as readSessionUpdatedAt, it as buildBootstrapContextFiles, j as parseImageDimensionError, jt as extractToolCallNames, k as isTimeoutErrorMessage, kt as capArrayByJsonBytes, l as extractToolResultId, lt as extractDeliveryInfo, m as classifyFailoverReason, mt as loadSessionStore, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as BILLING_ERROR_USER_MESSAGE, pt as resolveAndPersistSessionFile, q as applyOwnerOnlyToolPolicy, qt as resolveExplicitAgentSessionKey, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as downgradeOpenAIReasoningBlocks, ut as parseSessionThreadInfo, v as getApiErrorPayloadFingerprint, vt as updateSessionStore, w as isFailoverAssistantError, wt as mergeDeliveryContext, x as isCloudCodeAssistFormatError, xt as resolveCacheTtlMs$1, y as isAuthAssistantError, yt as updateSessionStoreEntry, z as resolveBrowserConfig, zt as evaluateSessionFreshness } from "./pi-embedded-helpers-BveUP4hk.js";
46
46
  import { n as resolveConversationLabel } from "./conversation-label-yNSj43Jt.js";
47
47
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-A0xdf3yk.js";
48
48
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
49
- import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-05pm5Rxi.js";
50
- import { i as saveMediaBuffer, r as getMediaDir } from "./store-BdrNabcU.js";
49
+ import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-mFf4i4G9.js";
50
+ import { i as saveMediaBuffer, r as getMediaDir } from "./store-Do3t33-c.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
52
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-CLOPx7yW.js";
52
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as extractTextFromChatContent, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as resolveToolDisplay, x as ensureSymiModelsJson, y as stripReasoningTagsFromText } from "./image-BOYy0Ump.js";
53
53
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
54
- import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, v as runTasksWithConcurrency } from "./sqlite-CxAR5ttJ.js";
54
+ import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, v as runTasksWithConcurrency } from "./sqlite-Cq_7Cg4E.js";
55
55
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
56
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CBSBFuFz.js";
57
- import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-COIaslGl.js";
58
- import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-pYqe432l.js";
56
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-DckktAQ3.js";
57
+ import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-CQFbmUMs.js";
58
+ import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BMfJIhCk.js";
59
59
  import { t as makeProxyFetch } from "./proxy-MquBDehr.js";
60
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-B3CCBumQ.js";
61
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-LLcQL3w6.js";
62
- import { t as getActiveWebListener } from "./active-listener-BXYeALs0.js";
60
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
61
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-fI39rPGa.js";
62
+ import { t as getActiveWebListener } from "./active-listener-bEk__wbB.js";
63
63
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CBq0jVRw.js";
64
64
  import { createRequire } from "node:module";
65
65
  import fs, { existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
66
66
  import * as path$1 from "node:path";
67
67
  import path from "node:path";
68
68
  import os, { homedir } from "node:os";
69
- import JSON5 from "json5";
69
+ import json5 from "json5";
70
70
  import { ApplicationCommandOptionType, ButtonStyle, ChannelType, PermissionFlagsBits, Routes, StickerFormatType } from "discord-api-types/v10";
71
71
  import { Button, ChannelSelectMenu, ChannelType as ChannelType$1, Client, Command, CommandWithSubcommands, Container, MentionableSelectMenu, MessageCreateListener, MessageReactionAddListener, MessageReactionRemoveListener, MessageType, Modal, PresenceUpdateListener, ReadyListener, RoleSelectMenu, Row, Separator, StringSelectMenu, TextDisplay, UserSelectMenu, serializePayload } from "@buape/carbon";
72
72
  import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
@@ -7792,7 +7792,7 @@ async function createModelSelectionState(params) {
7792
7792
  }
7793
7793
  }
7794
7794
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
7795
- const { ensureAuthProfileStore } = await import("./model-selection-CsbEfrS0.js").then((n) => n.O);
7795
+ const { ensureAuthProfileStore } = await import("./model-selection-OpU8HN50.js").then((n) => n.O);
7796
7796
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
7797
7797
  const providerKey = normalizeProviderId(provider);
7798
7798
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -11544,7 +11544,7 @@ async function getMemorySearchManager(params) {
11544
11544
  if (cached) return { manager: cached };
11545
11545
  }
11546
11546
  try {
11547
- const { QmdMemoryManager } = await import("./qmd-manager-CH0XbIHf.js");
11547
+ const { QmdMemoryManager } = await import("./qmd-manager-mjKcdwVr.js");
11548
11548
  const primary = await QmdMemoryManager.create({
11549
11549
  cfg: params.cfg,
11550
11550
  agentId: params.agentId,
@@ -11556,7 +11556,7 @@ async function getMemorySearchManager(params) {
11556
11556
  const wrapper = new FallbackMemoryManager({
11557
11557
  primary,
11558
11558
  fallbackFactory: async () => {
11559
- const { MemoryIndexManager } = await import("./manager-CBSBFuFz.js").then((n) => n.t);
11559
+ const { MemoryIndexManager } = await import("./manager-DckktAQ3.js").then((n) => n.t);
11560
11560
  return await MemoryIndexManager.get(params);
11561
11561
  }
11562
11562
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -11569,7 +11569,7 @@ async function getMemorySearchManager(params) {
11569
11569
  }
11570
11570
  }
11571
11571
  try {
11572
- const { MemoryIndexManager } = await import("./manager-CBSBFuFz.js").then((n) => n.t);
11572
+ const { MemoryIndexManager } = await import("./manager-DckktAQ3.js").then((n) => n.t);
11573
11573
  return { manager: await MemoryIndexManager.get(params) };
11574
11574
  } catch (err) {
11575
11575
  return {
@@ -12628,7 +12628,7 @@ function normalizeSessionKey(value) {
12628
12628
  function readSessionStore(storePath) {
12629
12629
  try {
12630
12630
  const raw = fs.readFileSync(storePath, "utf-8");
12631
- const parsed = JSON5.parse(raw);
12631
+ const parsed = json5.parse(raw);
12632
12632
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
12633
12633
  } catch {}
12634
12634
  return {};
@@ -15485,7 +15485,7 @@ async function routeReply(params) {
15485
15485
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
15486
15486
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
15487
15487
  try {
15488
- const { deliverOutboundPayloads } = await import("./deliver-BiGlXG5k.js").then((n) => n.n);
15488
+ const { deliverOutboundPayloads } = await import("./deliver-BUns_L9e.js").then((n) => n.n);
15489
15489
  return {
15490
15490
  ok: true,
15491
15491
  messageId: (await deliverOutboundPayloads({
@@ -17959,7 +17959,7 @@ async function describeStickerImage(params) {
17959
17959
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
17960
17960
  try {
17961
17961
  const buffer = await fs$1.readFile(imagePath);
17962
- const { describeImageWithModel } = await import("./image-CLOPx7yW.js").then((n) => n.n);
17962
+ const { describeImageWithModel } = await import("./image-BOYy0Ump.js").then((n) => n.n);
17963
17963
  return (await describeImageWithModel({
17964
17964
  buffer,
17965
17965
  fileName: "sticker.webp",
@@ -18370,7 +18370,7 @@ function createWhatsAppLoginTool() {
18370
18370
  force: Type.Optional(Type.Boolean())
18371
18371
  }),
18372
18372
  execute: async (_toolCallId, args) => {
18373
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BjVZSoCi.js");
18373
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DbR7odSr.js");
18374
18374
  if ((args?.action ?? "start") === "wait") {
18375
18375
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
18376
18376
  return {
@@ -20438,7 +20438,7 @@ async function preflightDiscordMessage(params) {
20438
20438
  let preflightTranscript;
20439
20439
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
20440
20440
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
20441
- const { transcribeFirstAudio } = await import("./audio-preflight-VpItkiy3.js");
20441
+ const { transcribeFirstAudio } = await import("./audio-preflight-DoQQKlxa.js");
20442
20442
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
20443
20443
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
20444
20444
  ctx: {
@@ -27119,27 +27119,27 @@ async function runWithImageModelFallback(params) {
27119
27119
  function createDefaultDeps() {
27120
27120
  return {
27121
27121
  sendMessageWhatsApp: async (...args) => {
27122
- const { sendMessageWhatsApp } = await import("./web-C-5ZChok.js");
27122
+ const { sendMessageWhatsApp } = await import("./web-CWNoMlnF.js");
27123
27123
  return await sendMessageWhatsApp(...args);
27124
27124
  },
27125
27125
  sendMessageTelegram: async (...args) => {
27126
- const { sendMessageTelegram } = await import("./send-CRsR8-vO.js").then((n) => n.l);
27126
+ const { sendMessageTelegram } = await import("./send-D6LMZJ_h.js").then((n) => n.l);
27127
27127
  return await sendMessageTelegram(...args);
27128
27128
  },
27129
27129
  sendMessageDiscord: async (...args) => {
27130
- const { sendMessageDiscord } = await import("./send-CjOBB3Vo.js").then((n) => n.t);
27130
+ const { sendMessageDiscord } = await import("./send-Bxdu6ZZy.js").then((n) => n.t);
27131
27131
  return await sendMessageDiscord(...args);
27132
27132
  },
27133
27133
  sendMessageSlack: async (...args) => {
27134
- const { sendMessageSlack } = await import("./send-B2CEnVLL.js").then((n) => n.n);
27134
+ const { sendMessageSlack } = await import("./send-BtANzsAo.js").then((n) => n.n);
27135
27135
  return await sendMessageSlack(...args);
27136
27136
  },
27137
27137
  sendMessageSignal: async (...args) => {
27138
- const { sendMessageSignal } = await import("./send-pYqe432l.js").then((n) => n.i);
27138
+ const { sendMessageSignal } = await import("./send-BMfJIhCk.js").then((n) => n.i);
27139
27139
  return await sendMessageSignal(...args);
27140
27140
  },
27141
27141
  sendMessageIMessage: async (...args) => {
27142
- const { sendMessageIMessage } = await import("./send-C5h_YxNb.js").then((n) => n.n);
27142
+ const { sendMessageIMessage } = await import("./send-BHbXh8Ly.js").then((n) => n.n);
27143
27143
  return await sendMessageIMessage(...args);
27144
27144
  }
27145
27145
  };
@@ -37349,7 +37349,7 @@ function readSlackExternalArgMenuToken(raw) {
37349
37349
  }
37350
37350
  let commandsRegistry;
37351
37351
  async function getCommandsRegistry() {
37352
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-COIaslGl.js").then((n) => n.n);
37352
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CQFbmUMs.js").then((n) => n.n);
37353
37353
  return commandsRegistry;
37354
37354
  }
37355
37355
  function encodeSlackCommandArgValue(parts) {
@@ -37691,11 +37691,11 @@ async function registerSlackMonitorSlashCommands(params) {
37691
37691
  const channelName = channelInfo?.name;
37692
37692
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
37693
37693
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
37694
- import("./resolve-route-B3CCBumQ.js").then((n) => n.r),
37694
+ import("./resolve-route-D3JH_D2N.js").then((n) => n.r),
37695
37695
  import("./inbound-context-D5EzMeL_.js").then((n) => n.n),
37696
37696
  Promise.resolve().then(() => provider_dispatcher_exports)
37697
37697
  ]);
37698
- const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-yNSj43Jt.js").then((n) => n.t), import("./reply-prefix-uxfMZW4p.js").then((n) => n.r)]);
37698
+ const [{ resolveConversationLabel }, { createReplyPrefixOptions }] = await Promise.all([import("./conversation-label-yNSj43Jt.js").then((n) => n.t), import("./reply-prefix-BHuV5t70.js").then((n) => n.r)]);
37699
37699
  const route = resolveAgentRoute({
37700
37700
  cfg,
37701
37701
  channel: "slack",
@@ -37752,9 +37752,9 @@ async function registerSlackMonitorSlashCommands(params) {
37752
37752
  });
37753
37753
  const deliverSlashPayloads = async (replies) => {
37754
37754
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
37755
- import("./replies-LLcQL3w6.js").then((n) => n.r),
37756
- import("./chunk-Dw2XBYXv.js").then((n) => n.s),
37757
- import("./markdown-tables-BoYFajMu.js").then((n) => n.t)
37755
+ import("./replies-fI39rPGa.js").then((n) => n.r),
37756
+ import("./chunk-jvk9axTQ.js").then((n) => n.s),
37757
+ import("./markdown-tables-Dfaqilz6.js").then((n) => n.t)
37758
37758
  ]);
37759
37759
  await deliverSlackSlashReplies({
37760
37760
  replies,
@@ -37807,7 +37807,7 @@ async function registerSlackMonitorSlashCommands(params) {
37807
37807
  let nativeCommands = [];
37808
37808
  if (nativeEnabled) {
37809
37809
  reg = await getCommandsRegistry();
37810
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-ff_01_r3.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
37810
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DCNXVERE.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
37811
37811
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
37812
37812
  skillCommands,
37813
37813
  provider: "slack"
@@ -42588,7 +42588,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
42588
42588
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
42589
42589
  let preflightTranscript;
42590
42590
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
42591
- const { transcribeFirstAudio } = await import("./audio-preflight-VpItkiy3.js");
42591
+ const { transcribeFirstAudio } = await import("./audio-preflight-DoQQKlxa.js");
42592
42592
  preflightTranscript = await transcribeFirstAudio({
42593
42593
  ctx: {
42594
42594
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -44733,23 +44733,23 @@ let webLoginQrPromise = null;
44733
44733
  let webChannelPromise = null;
44734
44734
  let whatsappActionsPromise = null;
44735
44735
  function loadWebOutbound() {
44736
- webOutboundPromise ??= import("./outbound-B0e8KdaR.js").then((n) => n.t);
44736
+ webOutboundPromise ??= import("./outbound-rF6G8Xpr.js").then((n) => n.t);
44737
44737
  return webOutboundPromise;
44738
44738
  }
44739
44739
  function loadWebLogin() {
44740
- webLoginPromise ??= import("./login-DQMXuxOk.js").then((n) => n.n);
44740
+ webLoginPromise ??= import("./login-Bh3DZPam.js").then((n) => n.n);
44741
44741
  return webLoginPromise;
44742
44742
  }
44743
44743
  function loadWebLoginQr() {
44744
- webLoginQrPromise ??= import("./login-qr-BjVZSoCi.js");
44744
+ webLoginQrPromise ??= import("./login-qr-DbR7odSr.js");
44745
44745
  return webLoginQrPromise;
44746
44746
  }
44747
44747
  function loadWebChannel() {
44748
- webChannelPromise ??= import("./web-C-5ZChok.js");
44748
+ webChannelPromise ??= import("./web-CWNoMlnF.js");
44749
44749
  return webChannelPromise;
44750
44750
  }
44751
44751
  function loadWhatsAppActions() {
44752
- whatsappActionsPromise ??= import("./whatsapp-actions-DfseosPO.js");
44752
+ whatsappActionsPromise ??= import("./whatsapp-actions-CcBzDuL-.js");
44753
44753
  return whatsappActionsPromise;
44754
44754
  }
44755
44755
  function createPluginRuntime() {
@@ -49976,6 +49976,69 @@ function createProcessTool(defaults) {
49976
49976
  }
49977
49977
  const processTool = createProcessTool();
49978
49978
 
49979
+ //#endregion
49980
+ //#region src/agents/model-token-filter.ts
49981
+ /**
49982
+ * Strips model-specific control tokens from streamed text.
49983
+ *
49984
+ * Used both server-side (in the streaming pipeline) and by the Glass UI
49985
+ * (as a defense-in-depth fallback). The patterns here cover tokens known
49986
+ * to leak from Gemma 4 / vLLM; Claude output is left untouched.
49987
+ */
49988
+ const GEMMA_TOKEN_PATTERNS = [
49989
+ /<\|channel>\w*/g,
49990
+ /<channel\|>/g,
49991
+ /<start_of_turn>(?:model|user)?/g,
49992
+ /<end_of_turn>/g,
49993
+ /<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
49994
+ /^\s*<bos>\s*/gm,
49995
+ /<\|[^|>]{0,30}\|>/g,
49996
+ /<\|[^>]{0,30}>/g
49997
+ ];
49998
+ /**
49999
+ * Aggressively strip all fragments of model control token corruption from
50000
+ * tool arguments. This catches cases where the model produces raw garbage
50001
+ * like `<|<|"|<|<|\'` that doesn't match any known token template.
50002
+ */
50003
+ const AGGRESSIVE_TOKEN_FRAGMENTS = [/<\|/g, /\|>/g];
50004
+ const GEMMA_MODEL_HINTS$1 = ["gemma", "redsand/"];
50005
+ function isGemmaModel$1(modelId) {
50006
+ const lower = modelId.toLowerCase();
50007
+ return GEMMA_MODEL_HINTS$1.some((hint) => lower.includes(hint));
50008
+ }
50009
+ /**
50010
+ * Strip known control tokens from text. Only applies to Gemma-family models;
50011
+ * other models pass through unchanged.
50012
+ */
50013
+ /**
50014
+ * Strip known control tokens from text. Only applies to Gemma-family models;
50015
+ * other models pass through unchanged. Used for streamed text output.
50016
+ */
50017
+ function stripModelTokens(text, modelId) {
50018
+ if (!text || !isGemmaModel$1(modelId)) return text;
50019
+ let result = text;
50020
+ for (const re of GEMMA_TOKEN_PATTERNS) {
50021
+ re.lastIndex = 0;
50022
+ result = result.replace(re, "");
50023
+ }
50024
+ return result;
50025
+ }
50026
+ /**
50027
+ * Aggressively strip ALL token-like fragments from a string. Used for tool
50028
+ * call arguments where any `<|` corruption causes downstream failures.
50029
+ * More aggressive than `stripModelTokens` — removes bare `<|` and `|>` fragments
50030
+ * that don't match any known token template.
50031
+ */
50032
+ function stripModelTokensAggressive(text, modelId) {
50033
+ if (!text || !isGemmaModel$1(modelId)) return text;
50034
+ let result = stripModelTokens(text, modelId);
50035
+ for (const re of AGGRESSIVE_TOKEN_FRAGMENTS) {
50036
+ re.lastIndex = 0;
50037
+ result = result.replace(re, "");
50038
+ }
50039
+ return result;
50040
+ }
50041
+
49979
50042
  //#endregion
49980
50043
  //#region src/agents/pi-tools.abort.ts
49981
50044
  function throwAbortError() {
@@ -50041,7 +50104,7 @@ async function recordLoopOutcome(args) {
50041
50104
  if (!args.ctx?.sessionKey) return;
50042
50105
  try {
50043
50106
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Wd5tNeQG.js").then((n) => n.n);
50044
- const { recordToolCallOutcome } = await import("./tool-loop-detection-BVA6fax-.js");
50107
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-edmW8ZiF.js");
50045
50108
  recordToolCallOutcome(getDiagnosticSessionState({
50046
50109
  sessionKey: args.ctx.sessionKey,
50047
50110
  sessionId: args.ctx?.agentId
@@ -50062,8 +50125,8 @@ async function runBeforeToolCallHook(args) {
50062
50125
  const params = args.params;
50063
50126
  if (args.ctx?.sessionKey) {
50064
50127
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Wd5tNeQG.js").then((n) => n.n);
50065
- const { logToolLoopAction } = await import("./diagnostic-05pm5Rxi.js").then((n) => n.n);
50066
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BVA6fax-.js");
50128
+ const { logToolLoopAction } = await import("./diagnostic-mFf4i4G9.js").then((n) => n.n);
50129
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-edmW8ZiF.js");
50067
50130
  const sessionState = getDiagnosticSessionState({
50068
50131
  sessionKey: args.ctx.sessionKey,
50069
50132
  sessionId: args.ctx?.agentId
@@ -61115,6 +61178,31 @@ function resolveToolLoopDetectionConfig(params) {
61115
61178
  }
61116
61179
  };
61117
61180
  }
61181
+ /**
61182
+ * Wrap a tool to strip model-specific control tokens from string arguments
61183
+ * before execution. Gemma 4 via vLLM sometimes injects tokens like `<|`
61184
+ * into tool call arguments (e.g. `exec("<|node -v")`). This wrapper
61185
+ * sanitizes all string values in the argument object.
61186
+ */
61187
+ function wrapToolWithArgSanitization(tool, modelId) {
61188
+ const execute = tool.execute;
61189
+ if (!execute) return tool;
61190
+ return {
61191
+ ...tool,
61192
+ execute: async (toolCallId, params, signal, onUpdate) => {
61193
+ return execute(toolCallId, sanitizeToolArgs(params, modelId), signal, onUpdate);
61194
+ }
61195
+ };
61196
+ }
61197
+ function sanitizeToolArgs(params, modelId) {
61198
+ if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
61199
+ if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
61200
+ const result = {};
61201
+ for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
61202
+ else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
61203
+ else result[key] = value;
61204
+ return result;
61205
+ }
61118
61206
  function createSymiCodingTools(options) {
61119
61207
  const execToolName = "exec";
61120
61208
  const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
@@ -61338,7 +61426,11 @@ function createSymiCodingTools(options) {
61338
61426
  agentId
61339
61427
  })
61340
61428
  }));
61341
- return options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
61429
+ const withAbort = options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
61430
+ const modelId = options?.modelId ?? "";
61431
+ const modelProvider = options?.modelProvider ?? "";
61432
+ const fullModelId = modelProvider ? `${modelProvider}/${modelId}` : modelId;
61433
+ return fullModelId ? withAbort.map((tool) => wrapToolWithArgSanitization(tool, fullModelId)) : withAbort;
61342
61434
  }
61343
61435
 
61344
61436
  //#endregion
@@ -77254,7 +77346,7 @@ async function deliverSessionMaintenanceWarning(params) {
77254
77346
  return;
77255
77347
  }
77256
77348
  try {
77257
- const { deliverOutboundPayloads } = await import("./deliver-BiGlXG5k.js").then((n) => n.n);
77349
+ const { deliverOutboundPayloads } = await import("./deliver-BUns_L9e.js").then((n) => n.n);
77258
77350
  await deliverOutboundPayloads({
77259
77351
  cfg: params.cfg,
77260
77352
  channel,
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveAgentConfig } from "./agent-scope-CYYpcO9W.js";
2
+ import { n as resolveAgentConfig } from "./agent-scope-C3gMMKCU.js";
3
3
 
4
4
  //#region src/agents/identity.ts
5
5
  const DEFAULT_ACK_REACTION = "👀";
@@ -1,5 +1,5 @@
1
- import { _ as normalizeWhatsAppTarget, g as isWhatsAppGroupJid } from "./plugins-BNByVCIH.js";
2
- import { n as missingTargetError } from "./target-errors-Paro1BjP.js";
1
+ import { _ as normalizeWhatsAppTarget, g as isWhatsAppGroupJid } from "./plugins-BbAvhC25.js";
2
+ import { n as missingTargetError } from "./target-errors-B7YyMnIi.js";
3
3
 
4
4
  //#region src/whatsapp/resolve-outbound-target.ts
5
5
  function resolveWhatsAppOutboundTarget(params) {
@@ -1,9 +1,9 @@
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-C_0eELjb.js";
3
- import { Y as shouldLogVerbose } from "./registry-D0xTnUWt.js";
4
- import { O as logDebug, c as resolveDefaultAgentId } from "./agent-scope-CYYpcO9W.js";
3
+ import { Y as shouldLogVerbose } from "./registry--_pGht6S.js";
4
+ import { O as logDebug, c as resolveDefaultAgentId } from "./agent-scope-C3gMMKCU.js";
5
5
  import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
6
- import { t as listBindings } from "./bindings-C7hRtgYW.js";
6
+ import { t as listBindings } from "./bindings-BbwoUGPx.js";
7
7
 
8
8
  //#region src/routing/resolve-route.ts
9
9
  var resolve_route_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { R as sleep } from "./registry-D0xTnUWt.js";
1
+ import { R as sleep } from "./registry--_pGht6S.js";
2
2
 
3
3
  //#region src/infra/retry.ts
4
4
  const DEFAULT_RETRY_CONFIG = {
@@ -1,13 +1,13 @@
1
1
  import { n as fetchWithTimeout } from "./fetch-timeout-ChYuW7LE.js";
2
- import { K as logVerbose, Y as shouldLogVerbose } from "./registry-D0xTnUWt.js";
3
- import { S as resolveIMessageAttachmentRoots, b as isInboundPathAllowed, n as loadConfig, x as mergeInboundPathRoots, y as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS } from "./config-KlTNfkFF.js";
4
- import { B as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalizeProviderId, h as normalizeGoogleModelId, w as requireApiKey } from "./model-selection-CsbEfrS0.js";
5
- import { E as runExec } from "./agent-scope-CYYpcO9W.js";
6
- import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-BlQR__MN.js";
7
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-BHLNSI8U.js";
2
+ import { K as logVerbose, Y as shouldLogVerbose } from "./registry--_pGht6S.js";
3
+ import { S as resolveIMessageAttachmentRoots, b as isInboundPathAllowed, n as loadConfig, x as mergeInboundPathRoots, y as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS } from "./config-DDkdiUOR.js";
4
+ import { B as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalizeProviderId, h as normalizeGoogleModelId, w as requireApiKey } from "./model-selection-OpU8HN50.js";
5
+ import { E as runExec } from "./agent-scope-C3gMMKCU.js";
6
+ import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-Bnp6LXEx.js";
7
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-Ckk1QfzI.js";
8
8
  import { t as normalizeChatType } from "./chat-type-CEMQNtWX.js";
9
- import { t as describeImageWithModel, x as ensureSymiModelsJson } from "./image-CLOPx7yW.js";
10
- import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-D_sMvI5W.js";
9
+ import { t as describeImageWithModel, x as ensureSymiModelsJson } from "./image-BOYy0Ump.js";
10
+ import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-CVBMpnPc.js";
11
11
  import { constants } from "node:fs";
12
12
  import path from "node:path";
13
13
  import os from "node:os";
@@ -899,7 +899,7 @@ async function loadModelCatalog(params) {
899
899
  });
900
900
  try {
901
901
  await ensureSymiModelsJson(params?.config ?? loadConfig());
902
- await (await import("./pi-auth-json-qWi7ZIYV.js")).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir());
902
+ await (await import("./pi-auth-json-CJk8t14T.js")).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir());
903
903
  const piSdk = await importPiSdk();
904
904
  const agentDir = resolveSymiAgentDir();
905
905
  const { join } = await import("node:path");