@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
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-B6YILTPp.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-B2coomPj.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });
@@ -7,13 +7,13 @@ import { a as resolveAgentIdentity } from "./reply-prefix-K_J_nfgx.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-Cn6drXx2.js";
10
- import { D as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-Cox_hxBz.js";
10
+ import { D as resolveAgentTimeoutMs, t as runEmbeddedPiAgent } from "./pi-embedded-JXvD5-F-.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";
14
14
  import "./send-D-hWrHoH.js";
15
15
  import "./send-C1IYd3g7.js";
16
- import "./deliver-C-37cZUe.js";
16
+ import "./deliver-BH0l3UKW.js";
17
17
  import "./diagnostic-D0xmLpej.js";
18
18
  import "./diagnostic-session-state-C1vRJs5w.js";
19
19
  import "./accounts-8zZqL37v.js";
@@ -21,10 +21,10 @@ import "./send-C4Ucr8ep.js";
21
21
  import "./image-ops-ByaQt43P.js";
22
22
  import "./pi-model-discovery-j5tVLINv.js";
23
23
  import "./message-channel-BQINJQIT.js";
24
- import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-B8kqLWns.js";
24
+ import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-lgx_U5KS.js";
25
25
  import "./config-BmV60pPT.js";
26
26
  import "./manifest-registry-D-mTF1cj.js";
27
- import "./chrome-D2SKJnR7.js";
27
+ import "./chrome-CDJYxX5a.js";
28
28
  import "./skills-BNpGMnp-.js";
29
29
  import "./redact-1NGYV_8p.js";
30
30
  import "./errors-CPfngF0S.js";
@@ -34,7 +34,7 @@ import "./thinking-W85Rb32m.js";
34
34
  import "./accounts-DImOt9jX.js";
35
35
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DkMamAQ-.js";
36
36
  import "./tool-images-ChC2CXaN.js";
37
- import "./image-DcpMiprB.js";
37
+ import "./image-CHzdaNJ4.js";
38
38
  import "./manager-jpn5vRTY.js";
39
39
  import "./gemini-auth-CSlZZ1Pw.js";
40
40
  import "./sqlite-BNh23mUR.js";
@@ -47,7 +47,7 @@ import "./ir-F0moAwIl.js";
47
47
  import "./render-B1VqYyvo.js";
48
48
  import "./commands-registry-C_aYUwpl.js";
49
49
  import "./skill-commands-DklY7Cj7.js";
50
- import "./runner-BcQ0sF9T.js";
50
+ import "./runner-DUBExAb5.js";
51
51
  import "./fetch-DtLn7YU3.js";
52
52
  import "./channel-activity-D9q-fIPB.js";
53
53
  import "./tables-COnZ169v.js";
@@ -1,7 +1,7 @@
1
1
  import { t as parseBooleanValue } from "./boolean-B8-BqKGQ.js";
2
2
  import { n as MANIFEST_KEY, t as LEGACY_MANIFEST_KEYS } from "./legacy-names-BHV4AoFT.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
  import JSON5 from "json5";
6
6
  import YAML from "yaml";
7
7
 
@@ -79,7 +79,7 @@ function hasBinary(bin) {
79
79
  for (const part of parts) for (const ext of extensions) {
80
80
  const candidate = path.join(part, bin + ext);
81
81
  try {
82
- fsSync.accessSync(candidate, fsSync.constants.X_OK);
82
+ fs.accessSync(candidate, fs.constants.X_OK);
83
83
  hasBinaryCache.set(bin, true);
84
84
  return true;
85
85
  } catch {}
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
4
- import { $ as normalizeOptionalSessionKey, An as initSubagentRegistry, Ar as extractImageContentFromSource, At as sleepWithAbort, B as setPreRestartDeferralCheck, Bn as registerAgentRunContext, C as loadSessionEntry, Dr as DEFAULT_INPUT_MAX_REDIRECTS, Dt as readJsonBodyWithLimit, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as handleSlackHttpRequest, F as emitGatewayRestart, Fn as readLatestAssistantReply, G as summarizeRestartSentinel, Gt as getCliSessionId, Ht as createDefaultDeps, I as isGatewaySigusr1RestartExternallyAllowed, In as clearAgentRunContext, J as normalizeHttpWebhookUrl, Kt as setCliSessionId, L as markGatewaySigusr1RestartHandled, Ln as emitAgentEvent, Lt as resolveOutboundTarget, Mr as resolveInputFileLimits, N as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, Ot as requestBodyErrorToText, P as deferGatewayRestartUntilIdle, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Q as normalizeOptionalAgentId, Rn as getAgentRunContext, Rt as resolveSessionDeliveryTarget, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, U as formatRestartSentinelMessage, V as consumeRestartSentinel, Wt as runWithModelFallback, Xt as resolveAgentAvatar, Z as inferLegacyName, _ as resolveAnnounceTargetFromKey, _t as loadSymiPlugins, ar as setCommandLaneConcurrency, at as hasLegacyDeliveryHints, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as getActiveEmbeddedRunCount, en as buildSafeExternalPrompt, et as normalizeOptionalText, fr as stripHeartbeatToken, ft as requestHeartbeatNow, g as createSymiTools, h as buildDefaultToolPolicyPipelineSteps, hn as getTotalPendingReplies, ht as getPluginToolMeta, i as resolveCronStyleNow, ir as resetAllLanes, it as buildDeliveryFromLegacyPayload, j as resetDirectoryCache, jn as listDescendantRunsForRequester, jr as normalizeMimeList, jt as agentCommand, k as resolveOutboundSessionRoute, kn as countActiveRunsForSession, kr as extractFileContentFromSource, kt as computeBackoff, l as runEmbeddedPiAgent, m as applyToolPolicyPipeline, nn as getHookType, nt as normalizeRequiredName, or as waitForActiveTasks, ot as stripLegacyDeliveryFields, p as resolveModelProfile, pr as lookupContextTokens, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, rt as migrateLegacyCronPayload, sr as CommandLane, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as normalizePayloadToSystemText, xr as enqueueSystemEvent, z as setGatewaySigusr1RestartPolicy, zn as onAgentEvent, zt as createOutboundSendDeps } from "./reply-BU9TUp_K.js";
4
+ import { $ as normalizeOptionalSessionKey, An as countActiveRunsForSession, Ar as extractFileContentFromSource, At as computeBackoff, B as setPreRestartDeferralCheck, Bn as onAgentEvent, Bt as createOutboundSendDeps, C as loadSessionEntry, Dr as DEFAULT_INPUT_IMAGE_MIMES, Dt as handleSlackHttpRequest, Er as DEFAULT_INPUT_IMAGE_MAX_BYTES, F as emitGatewayRestart, Fn as runSubagentAnnounceFlow, Fr as resolveAgentTimeoutMs, G as summarizeRestartSentinel, Gt as runWithModelFallback, I as isGatewaySigusr1RestartExternallyAllowed, In as readLatestAssistantReply, J as normalizeHttpWebhookUrl, Jt as runCliAgent, Kt as getCliSessionId, L as markGatewaySigusr1RestartHandled, Ln as clearAgentRunContext, Mn as listDescendantRunsForRequester, Mr as normalizeMimeList, Mt as agentCommand, N as consumeGatewaySigusr1RestartAuthorization, Nr as resolveInputFileLimits, Or as DEFAULT_INPUT_MAX_REDIRECTS, Ot as readJsonBodyWithLimit, P as deferGatewayRestartUntilIdle, Q as normalizeOptionalAgentId, Rn as emitAgentEvent, Rt as resolveOutboundTarget, Sr as enqueueSystemEvent, U as formatRestartSentinelMessage, Ut as createDefaultDeps, V as consumeRestartSentinel, Vn as registerAgentRunContext, Z as inferLegacyName, Zt as resolveAgentAvatar, _ as resolveAnnounceTargetFromKey, ar as resetAllLanes, at as hasLegacyDeliveryHints, cr as CommandLane, d as getActiveEmbeddedRunCount, et as normalizeOptionalText, ft as stripModelTokens, g as createSymiTools, gn as getTotalPendingReplies, gt as getPluginToolMeta, h as buildDefaultToolPolicyPipelineSteps, i as resolveCronStyleNow, in as isExternalHookSession, ir as getTotalQueueSize, it as buildDeliveryFromLegacyPayload, j as resetDirectoryCache, jn as initSubagentRegistry, jr as extractImageContentFromSource, jt as sleepWithAbort, k as resolveOutboundSessionRoute, kn as countActiveDescendantRuns, kr as DEFAULT_INPUT_TIMEOUT_MS, kt as requestBodyErrorToText, l as runEmbeddedPiAgent, ln as buildHistoryContextFromEntries, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, m as applyToolPolicyPipeline, mr as lookupContextTokens, nn as detectSuspiciousPatterns, nr as getActiveTaskCount, nt as normalizeRequiredName, or as setCommandLaneConcurrency, ot as stripLegacyDeliveryFields, p as resolveModelProfile, pr as stripHeartbeatToken, pt as requestHeartbeatNow, qt as setCliSessionId, rn as getHookType, rt as migrateLegacyCronPayload, sr as waitForActiveTasks, tn as buildSafeExternalPrompt, tt as normalizePayloadToSystemText, vt as loadSymiPlugins, z as setGatewaySigusr1RestartPolicy, zn as getAgentRunContext, zt as resolveSessionDeliveryTarget } from "./reply-DSjeqLEz.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, w as registerInternalHook } from "./registry-Cja8eT7G.js";
@@ -135,20 +135,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
135
135
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BJvwnR5z.js";
136
136
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CrITRV6w.js";
137
137
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BHTF5p0X.js";
138
- import { r as pickGatewaySelfPresence } from "./status-D6EakoGU.js";
139
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-B71iKlbh.js";
138
+ import { r as pickGatewaySelfPresence } from "./status-B8yaGk2o.js";
139
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-rR61mwm3.js";
140
140
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
141
141
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
142
- import { t as runOnboardingWizard } from "./onboarding-Dahfev0C.js";
143
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-BTiR6t8F.js";
144
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DmCBSfsH.js";
142
+ import { t as runOnboardingWizard } from "./onboarding-DW-7o6Ln.js";
143
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-QNBQbsvr.js";
144
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-9zUNNHgy.js";
145
145
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Bv0M7ka7.js";
146
- import "./agents.config-BImdIqjf.js";
146
+ import "./agents.config-Cv_wsBXL.js";
147
147
  import "./dm-policy-shared-Bh3TbexU.js";
148
148
  import "./node-service-Cxz4e-Qd.js";
149
149
  import "./status.update-DtwCUTf-.js";
150
150
  import "./skills-install-D67isO1L.js";
151
- import "./update-runner-BWHG84zP.js";
151
+ import "./update-runner-AiIhp7fw.js";
152
152
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
153
153
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
154
154
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -1863,43 +1863,28 @@ function createChannelManager(opts) {
1863
1863
  }
1864
1864
 
1865
1865
  //#endregion
1866
- //#region src/agents/model-token-filter.ts
1866
+ //#region src/gateway/server-chat.ts
1867
1867
  /**
1868
- * Strips model-specific control tokens from streamed text.
1869
- *
1870
- * Used both server-side (in the streaming pipeline) and by the Glass UI
1871
- * (as a defense-in-depth fallback). The patterns here cover tokens known
1872
- * to leak from Gemma 4 / vLLM; Claude output is left untouched.
1868
+ * Strip Gemma's self-verification monologue blocks from the final text.
1869
+ * Gemma produces several variants of this pattern:
1870
+ * "I have addressed the request fully.\n**Verification:**\n..."
1871
+ * "I've reviewed my response against your request:\n1. Requirements:..."
1872
+ * "**Verification:**\n1. **Address requirements:**..."
1873
1873
  */
1874
- const GEMMA_TOKEN_PATTERNS = [
1875
- /<\|channel>\w*/g,
1876
- /<channel\|>/g,
1877
- /<start_of_turn>(?:model|user)?/g,
1878
- /<end_of_turn>/g,
1879
- /<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
1880
- /^\s*<bos>\s*/gm
1874
+ const MONOLOGUE_PATTERNS = [
1875
+ /\n*I have addressed the request fully\.?\s*(?:\n[\s\S]*)?$/,
1876
+ /\n*I['']ve reviewed my response[\s\S]*$/,
1877
+ /\n*\*?\*?Verification:?\*?\*?\s*\n[\s\S]*?(?:Everything is correct|All requirements met)\.?\s*✅?\s*$/,
1878
+ /\n*(?:\*?\*?)?(?:Status Check|Address requirements|Requirements):?(?:\*?\*?)?\s*\n[\s\S]*?(?:Everything is correct|All requirements met|is correct)\.?\s*✅?\s*$/,
1879
+ /\n*\d+\.\s*\*?\*?Requirements:?\*?\*?[\s\S]*?\d+\.\s*\*?\*?Verification:?\*?\*?[\s\S]*$/
1881
1880
  ];
1882
- const GEMMA_MODEL_HINTS = ["gemma", "redsand/"];
1883
- function isGemmaModel(modelId) {
1884
- const lower = modelId.toLowerCase();
1885
- return GEMMA_MODEL_HINTS.some((hint) => lower.includes(hint));
1886
- }
1887
- /**
1888
- * Strip known control tokens from text. Only applies to Gemma-family models;
1889
- * other models pass through unchanged.
1890
- */
1891
- function stripModelTokens(text, modelId) {
1892
- if (!text || !isGemmaModel(modelId)) return text;
1893
- let result = text;
1894
- for (const re of GEMMA_TOKEN_PATTERNS) {
1895
- re.lastIndex = 0;
1896
- result = result.replace(re, "");
1881
+ function suppressMonologueBlock(text) {
1882
+ for (const pattern of MONOLOGUE_PATTERNS) {
1883
+ const result = text.replace(pattern, "");
1884
+ if (result !== text && result.trim()) return result.trim();
1897
1885
  }
1898
- return result;
1886
+ return text;
1899
1887
  }
1900
-
1901
- //#endregion
1902
- //#region src/gateway/server-chat.ts
1903
1888
  function resolveHeartbeatAckMaxChars$1() {
1904
1889
  try {
1905
1890
  const cfg = loadConfig();
@@ -2054,21 +2039,16 @@ function createToolEventRecipientRegistry() {
2054
2039
  function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSession, agentRunSeq, chatRunState, resolveSessionKeyForRun, clearAgentRunContext, toolEventRecipients }) {
2055
2040
  const emitChatDelta = (sessionKey, clientRunId, sourceRunId, seq, text) => {
2056
2041
  if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return;
2057
- let resolvedModelId;
2058
- try {
2059
- resolvedModelId = loadConfig().agents?.defaults?.model?.primary ?? void 0;
2060
- } catch {}
2061
- const cleanedText = resolvedModelId ? stripModelTokens(text, resolvedModelId) : text;
2062
- chatRunState.buffers.set(clientRunId, cleanedText);
2042
+ chatRunState.buffers.set(clientRunId, text);
2063
2043
  if (shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) return;
2064
2044
  const now = Date.now();
2065
2045
  if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) {
2066
- chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + cleanedText);
2046
+ chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + text);
2067
2047
  return;
2068
2048
  }
2069
2049
  const buffered = chatRunState.pendingDeltaText.get(clientRunId) ?? "";
2070
2050
  chatRunState.pendingDeltaText.delete(clientRunId);
2071
- const fullText = buffered + cleanedText;
2051
+ const fullText = buffered + text;
2072
2052
  chatRunState.deltaSentAt.set(clientRunId, now);
2073
2053
  const payload = {
2074
2054
  runId: clientRunId,
@@ -2110,10 +2090,19 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2110
2090
  nodeSendToSession(sessionKey, "chat", flushPayload);
2111
2091
  }
2112
2092
  chatRunState.pendingDeltaText.delete(clientRunId);
2093
+ let bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
2094
+ let resolvedModelId;
2095
+ try {
2096
+ resolvedModelId = loadConfig().agents?.defaults?.model?.primary ?? void 0;
2097
+ } catch {}
2098
+ if (resolvedModelId) {
2099
+ bufferedText = stripModelTokens(bufferedText, resolvedModelId);
2100
+ bufferedText = suppressMonologueBlock(bufferedText);
2101
+ }
2113
2102
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2114
2103
  runId: clientRunId,
2115
2104
  sourceRunId,
2116
- text: chatRunState.buffers.get(clientRunId)?.trim() ?? ""
2105
+ text: bufferedText
2117
2106
  });
2118
2107
  const text = normalizedHeartbeatText.text.trim();
2119
2108
  const shouldSuppressSilent = normalizedHeartbeatText.suppress || isSilentReplyText(text, SILENT_REPLY_TOKEN);
@@ -11740,7 +11729,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11740
11729
  });
11741
11730
  let glassUiBridgeCleanup = null;
11742
11731
  if (!minimalTestGateway) {
11743
- const { createGlassUiBridge } = await import("./glass-ui-ws-CWG8XziA.js");
11732
+ const { createGlassUiBridge } = await import("./glass-ui-ws-CzH0ikhI.js");
11744
11733
  glassUiBridgeCleanup = createGlassUiBridge({
11745
11734
  wss: glassUiWss,
11746
11735
  context: gatewayRequestContext,
@@ -21,7 +21,7 @@ import "./pairing-token-Byh6drgn.js";
21
21
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
22
22
  import { a as isValidIPv4, c as resolveClientIp, d as resolveHostName, f as rawDataToString, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, t as isLoopbackAddress, u as resolveGatewayListenHosts } from "./net-DZ5Ayk-W.js";
23
23
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-Cmumpn76.js";
24
- import { $ as getCliSessionId, $t as setPreRestartDeferralCheck, A as createOutboundSendDeps, An as DEFAULT_INPUT_TIMEOUT_MS, At as normalizeOptionalSessionKey, B as buildHistoryContextFromEntries, Bt as buildSafeExternalPrompt, C as requestBodyErrorToText, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dn as DEFAULT_INPUT_IMAGE_MAX_BYTES, E as agentCommand, Ft as buildDeliveryFromLegacyPayload, Ht as getHookType, In as resolveAgentTimeoutMs, It as hasLegacyDeliveryHints, Jt as emitGatewayRestart, Kt as consumeGatewaySigusr1RestartAuthorization, Lt as stripLegacyDeliveryFields, Mn as extractImageContentFromSource, Mt as normalizePayloadToSystemText, N as resolveAgentAvatar, Nn as normalizeMimeList, Nt as normalizeRequiredName, On as DEFAULT_INPUT_IMAGE_MIMES, Ot as inferLegacyName, Pn as resolveInputFileLimits, Pt as migrateLegacyCronPayload, Q as resolveCronStyleNow, Qt as setGatewaySigusr1RestartPolicy, S as readJsonBodyWithLimit, Sr as getAgentRunContext, St as summarizeRestartSentinel, T as sleepWithAbort, Tt as normalizeHttpWebhookUrl, Ut as isExternalHookSession, Vt as detectSuspiciousPatterns, Xt as markGatewaySigusr1RestartHandled, Yt as isGatewaySigusr1RestartExternallyAllowed, _ as getPluginToolMeta, at as resolveAnnounceTargetFromKey, br as clearAgentRunContext, bt as formatRestartSentinelMessage, cr as getActiveTaskCount, ct as resolveOutboundSessionRoute, d as getActiveEmbeddedRunCount, dn as requestHeartbeatNow, dr as resetAllLanes, dt as resolveOutboundTarget, et as setCliSessionId, fr as setCommandLaneConcurrency, ft as resolveSessionDeliveryTarget, gt as runWithModelFallback, h as buildDefaultToolPolicyPipelineSteps, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as listDescendantRunsForRequester, it as readLatestAssistantReply, j as createDefaultDeps, jn as extractFileContentFromSource, jt as normalizeOptionalText, kn as DEFAULT_INPUT_MAX_REDIRECTS, kt as normalizeOptionalAgentId, l as runEmbeddedPiAgent, m as applyToolPolicyPipeline, mr as CommandLane, mt as resetDirectoryCache, n as countActiveRunsForSession, p as resolveModelProfile, pr as waitForActiveTasks, q as getTotalPendingReplies, qt as deferGatewayRestartUntilIdle, r as initSubagentRegistry, rt as createSymiTools, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as runCliAgent, ur as getTotalQueueSize, vt as consumeRestartSentinel, w as computeBackoff, wr as registerAgentRunContext, x as handleSlackHttpRequest, xr as emitAgentEvent, y as loadSymiPlugins, yr as stripHeartbeatToken } from "./subagent-registry-XIFSKsi7.js";
24
+ import { $ as resolveCronStyleNow, $t as setGatewaySigusr1RestartPolicy, An as DEFAULT_INPUT_MAX_REDIRECTS, At as normalizeOptionalAgentId, C as readJsonBodyWithLimit, Cr as getAgentRunContext, Ct as summarizeRestartSentinel, D as agentCommand, E as sleepWithAbort, Et as normalizeHttpWebhookUrl, Fn as resolveInputFileLimits, Ft as migrateLegacyCronPayload, Ht as detectSuspiciousPatterns, It as buildDeliveryFromLegacyPayload, J as getTotalPendingReplies, Jt as deferGatewayRestartUntilIdle, Ln as resolveAgentTimeoutMs, Lt as hasLegacyDeliveryHints, M as createDefaultDeps, Mn as extractFileContentFromSource, Mt as normalizeOptionalText, Nn as extractImageContentFromSource, Nt as normalizePayloadToSystemText, On as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveAgentAvatar, Pn as normalizeMimeList, Pt as normalizeRequiredName, Rt as stripLegacyDeliveryFields, S as handleSlackHttpRequest, Sr as emitAgentEvent, T as computeBackoff, Tr as registerAgentRunContext, Ut as getHookType, V as buildHistoryContextFromEntries, Vt as buildSafeExternalPrompt, Wt as isExternalHookSession, Xt as isGatewaySigusr1RestartExternallyAllowed, Yt as emitGatewayRestart, Zt as markGatewaySigusr1RestartHandled, _ as stripModelTokens, _t as runWithModelFallback, at as readLatestAssistantReply, b as loadSymiPlugins, br as stripHeartbeatToken, d as getActiveEmbeddedRunCount, dr as getTotalQueueSize, en as setPreRestartDeferralCheck, et as getCliSessionId, fn as requestHeartbeatNow, fr as resetAllLanes, ft as resolveOutboundTarget, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as buildDefaultToolPolicyPipelineSteps, hr as CommandLane, ht as resetDirectoryCache, i as listDescendantRunsForRequester, it as createSymiTools, j as createOutboundSendDeps, jn as DEFAULT_INPUT_TIMEOUT_MS, jt as normalizeOptionalSessionKey, kn as DEFAULT_INPUT_IMAGE_MIMES, kt as inferLegacyName, l as runEmbeddedPiAgent, lr as getActiveTaskCount, lt as resolveOutboundSessionRoute, m as applyToolPolicyPipeline, mr as waitForActiveTasks, n as countActiveRunsForSession, nt as runCliAgent, ot as resolveAnnounceTargetFromKey, p as resolveModelProfile, pr as setCommandLaneConcurrency, pt as resolveSessionDeliveryTarget, qt as consumeGatewaySigusr1RestartAuthorization, r as initSubagentRegistry, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as setCliSessionId, v as getPluginToolMeta, w as requestBodyErrorToText, wn as enqueueSystemEvent, wr as onAgentEvent, xr as clearAgentRunContext, xt as formatRestartSentinelMessage, yt as consumeRestartSentinel } from "./subagent-registry-CyW0EDWw.js";
25
25
  import { D as resolveSessionResetPolicy, F as resolveMainSessionKey, H as cleanStaleLockFiles, I as resolveMainSessionKeyFromConfig, K as mergeDeliveryContext, M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, T as evaluateSessionFreshness, W as deliveryContextFromSession, d as updateSessionStore, n as parseSessionThreadInfo, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
26
26
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Csntmwwn.js";
27
27
  import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -130,20 +130,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
130
130
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BtG9rny3.js";
131
131
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-Byo5jCLN.js";
132
132
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CA_XIzr_.js";
133
- import { i as pickGatewaySelfPresence } from "./status-ChsVYdUd.js";
134
- import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-BTXjJASN.js";
133
+ import { i as pickGatewaySelfPresence } from "./status-4DaGE8j5.js";
134
+ import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-BSOMI4B6.js";
135
135
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
136
136
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
137
- import { t as runOnboardingWizard } from "./onboarding-C4tCCVuf.js";
138
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-DFsGxi3M.js";
139
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-BP1VrPYl.js";
137
+ import { t as runOnboardingWizard } from "./onboarding-CDdMZbov.js";
138
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-DHo5e8Gj.js";
139
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-8VJkVSdh.js";
140
140
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CzWeiE-Y.js";
141
- import "./agents.config-CH52CAyr.js";
141
+ import "./agents.config-DJTb7Jka.js";
142
142
  import "./dm-policy-shared-DJ-61hCT.js";
143
143
  import "./node-service-fcZExd22.js";
144
144
  import "./status.update-DbmZz0Aq.js";
145
145
  import "./skills-install-1ZdwGTnh.js";
146
- import "./update-runner-C6_7IzDb.js";
146
+ import "./update-runner-BF5UULe-.js";
147
147
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
148
148
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
149
149
  import { n as forceFreePortAndWait } from "./ports-Dn122MUd.js";
@@ -1859,43 +1859,28 @@ function createChannelManager(opts) {
1859
1859
  }
1860
1860
 
1861
1861
  //#endregion
1862
- //#region src/agents/model-token-filter.ts
1862
+ //#region src/gateway/server-chat.ts
1863
1863
  /**
1864
- * Strips model-specific control tokens from streamed text.
1865
- *
1866
- * Used both server-side (in the streaming pipeline) and by the Glass UI
1867
- * (as a defense-in-depth fallback). The patterns here cover tokens known
1868
- * to leak from Gemma 4 / vLLM; Claude output is left untouched.
1864
+ * Strip Gemma's self-verification monologue blocks from the final text.
1865
+ * Gemma produces several variants of this pattern:
1866
+ * "I have addressed the request fully.\n**Verification:**\n..."
1867
+ * "I've reviewed my response against your request:\n1. Requirements:..."
1868
+ * "**Verification:**\n1. **Address requirements:**..."
1869
1869
  */
1870
- const GEMMA_TOKEN_PATTERNS = [
1871
- /<\|channel>\w*/g,
1872
- /<channel\|>/g,
1873
- /<start_of_turn>(?:model|user)?/g,
1874
- /<end_of_turn>/g,
1875
- /<\|(?:fim_prefix|fim_suffix|fim_middle)\|>/g,
1876
- /^\s*<bos>\s*/gm
1870
+ const MONOLOGUE_PATTERNS = [
1871
+ /\n*I have addressed the request fully\.?\s*(?:\n[\s\S]*)?$/,
1872
+ /\n*I['']ve reviewed my response[\s\S]*$/,
1873
+ /\n*\*?\*?Verification:?\*?\*?\s*\n[\s\S]*?(?:Everything is correct|All requirements met)\.?\s*✅?\s*$/,
1874
+ /\n*(?:\*?\*?)?(?:Status Check|Address requirements|Requirements):?(?:\*?\*?)?\s*\n[\s\S]*?(?:Everything is correct|All requirements met|is correct)\.?\s*✅?\s*$/,
1875
+ /\n*\d+\.\s*\*?\*?Requirements:?\*?\*?[\s\S]*?\d+\.\s*\*?\*?Verification:?\*?\*?[\s\S]*$/
1877
1876
  ];
1878
- const GEMMA_MODEL_HINTS = ["gemma", "redsand/"];
1879
- function isGemmaModel(modelId) {
1880
- const lower = modelId.toLowerCase();
1881
- return GEMMA_MODEL_HINTS.some((hint) => lower.includes(hint));
1882
- }
1883
- /**
1884
- * Strip known control tokens from text. Only applies to Gemma-family models;
1885
- * other models pass through unchanged.
1886
- */
1887
- function stripModelTokens(text, modelId) {
1888
- if (!text || !isGemmaModel(modelId)) return text;
1889
- let result = text;
1890
- for (const re of GEMMA_TOKEN_PATTERNS) {
1891
- re.lastIndex = 0;
1892
- result = result.replace(re, "");
1877
+ function suppressMonologueBlock(text) {
1878
+ for (const pattern of MONOLOGUE_PATTERNS) {
1879
+ const result = text.replace(pattern, "");
1880
+ if (result !== text && result.trim()) return result.trim();
1893
1881
  }
1894
- return result;
1882
+ return text;
1895
1883
  }
1896
-
1897
- //#endregion
1898
- //#region src/gateway/server-chat.ts
1899
1884
  function resolveHeartbeatAckMaxChars$1() {
1900
1885
  try {
1901
1886
  const cfg = loadConfig();
@@ -2050,21 +2035,16 @@ function createToolEventRecipientRegistry() {
2050
2035
  function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSession, agentRunSeq, chatRunState, resolveSessionKeyForRun, clearAgentRunContext, toolEventRecipients }) {
2051
2036
  const emitChatDelta = (sessionKey, clientRunId, sourceRunId, seq, text) => {
2052
2037
  if (isSilentReplyText(text, SILENT_REPLY_TOKEN)) return;
2053
- let resolvedModelId;
2054
- try {
2055
- resolvedModelId = loadConfig().agents?.defaults?.model?.primary ?? void 0;
2056
- } catch {}
2057
- const cleanedText = resolvedModelId ? stripModelTokens(text, resolvedModelId) : text;
2058
- chatRunState.buffers.set(clientRunId, cleanedText);
2038
+ chatRunState.buffers.set(clientRunId, text);
2059
2039
  if (shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) return;
2060
2040
  const now = Date.now();
2061
2041
  if (now - (chatRunState.deltaSentAt.get(clientRunId) ?? 0) < 150) {
2062
- chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + cleanedText);
2042
+ chatRunState.pendingDeltaText.set(clientRunId, (chatRunState.pendingDeltaText.get(clientRunId) ?? "") + text);
2063
2043
  return;
2064
2044
  }
2065
2045
  const buffered = chatRunState.pendingDeltaText.get(clientRunId) ?? "";
2066
2046
  chatRunState.pendingDeltaText.delete(clientRunId);
2067
- const fullText = buffered + cleanedText;
2047
+ const fullText = buffered + text;
2068
2048
  chatRunState.deltaSentAt.set(clientRunId, now);
2069
2049
  const payload = {
2070
2050
  runId: clientRunId,
@@ -2106,10 +2086,19 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2106
2086
  nodeSendToSession(sessionKey, "chat", flushPayload);
2107
2087
  }
2108
2088
  chatRunState.pendingDeltaText.delete(clientRunId);
2089
+ let bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
2090
+ let resolvedModelId;
2091
+ try {
2092
+ resolvedModelId = loadConfig().agents?.defaults?.model?.primary ?? void 0;
2093
+ } catch {}
2094
+ if (resolvedModelId) {
2095
+ bufferedText = stripModelTokens(bufferedText, resolvedModelId);
2096
+ bufferedText = suppressMonologueBlock(bufferedText);
2097
+ }
2109
2098
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2110
2099
  runId: clientRunId,
2111
2100
  sourceRunId,
2112
- text: chatRunState.buffers.get(clientRunId)?.trim() ?? ""
2101
+ text: bufferedText
2113
2102
  });
2114
2103
  const text = normalizedHeartbeatText.text.trim();
2115
2104
  const shouldSuppressSilent = normalizedHeartbeatText.suppress || isSilentReplyText(text, SILENT_REPLY_TOKEN);
@@ -11736,7 +11725,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11736
11725
  });
11737
11726
  let glassUiBridgeCleanup = null;
11738
11727
  if (!minimalTestGateway) {
11739
- const { createGlassUiBridge } = await import("./glass-ui-ws-Drv5ICqE.js");
11728
+ const { createGlassUiBridge } = await import("./glass-ui-ws-DBivjzVA.js");
11740
11729
  glassUiBridgeCleanup = createGlassUiBridge({
11741
11730
  wss: glassUiWss,
11742
11731
  context: gatewayRequestContext,
@@ -1,4 +1,4 @@
1
- import { A as normalizeProviderId } from "./model-auth-CwOuTuXl.js";
1
+ import { A as normalizeProviderId } from "./model-auth-DK43VicI.js";
2
2
  import { n as formatErrorMessage } from "./errors-BoQgnc8X.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-CySxpNhH.js";
2
+ import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
 
6
6
  //#region src/infra/json-file.ts
7
7
  function loadJsonFile(pathname) {
8
8
  try {
9
- if (!fsSync.existsSync(pathname)) return;
10
- const raw = fsSync.readFileSync(pathname, "utf8");
9
+ if (!fs.existsSync(pathname)) return;
10
+ const raw = fs.readFileSync(pathname, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return;
@@ -15,12 +15,12 @@ function loadJsonFile(pathname) {
15
15
  }
16
16
  function saveJsonFile(pathname, data) {
17
17
  const dir = path.dirname(pathname);
18
- if (!fsSync.existsSync(dir)) fsSync.mkdirSync(dir, {
18
+ if (!fs.existsSync(dir)) fs.mkdirSync(dir, {
19
19
  recursive: true,
20
20
  mode: 448
21
21
  });
22
- fsSync.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
- fsSync.chmodSync(pathname, 384);
22
+ fs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
+ fs.chmodSync(pathname, 384);
24
24
  }
25
25
 
26
26
  //#endregion
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import "./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 "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -113,18 +113,18 @@ import "./service-Cl74hx8J.js";
113
113
  import "./diagnostics-BAMlsVVX.js";
114
114
  import "./table-BTgkRafz.js";
115
115
  import "./audit-CrITRV6w.js";
116
- import "./status-D6EakoGU.js";
117
- import "./health-B71iKlbh.js";
116
+ import "./status-B8yaGk2o.js";
117
+ import "./health-rR61mwm3.js";
118
118
  import "./control-ui-assets-Z947tKLt.js";
119
119
  import "./update-check-CtckACbb.js";
120
- import { n as handleGatewayRequest } from "./server-methods-BTiR6t8F.js";
121
- import "./push-apns-DmCBSfsH.js";
122
- import "./agents.config-BImdIqjf.js";
120
+ import { n as handleGatewayRequest } from "./server-methods-QNBQbsvr.js";
121
+ import "./push-apns-9zUNNHgy.js";
122
+ import "./agents.config-Cv_wsBXL.js";
123
123
  import "./dm-policy-shared-Bh3TbexU.js";
124
124
  import "./node-service-Cxz4e-Qd.js";
125
125
  import "./status.update-DtwCUTf-.js";
126
126
  import "./skills-install-D67isO1L.js";
127
- import "./update-runner-BWHG84zP.js";
127
+ import "./update-runner-AiIhp7fw.js";
128
128
 
129
129
  //#region src/gateway/glass-ui-ws.ts
130
130
  const SESSION_KEY = "agent:main:main";
@@ -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";
@@ -108,18 +108,18 @@ 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 "./status-ChsVYdUd.js";
112
- import "./health-BTXjJASN.js";
111
+ import "./status-4DaGE8j5.js";
112
+ import "./health-BSOMI4B6.js";
113
113
  import "./control-ui-assets-BseSWee1.js";
114
114
  import "./update-check-ZdimP1aU.js";
115
- import { n as handleGatewayRequest } from "./server-methods-DFsGxi3M.js";
116
- import "./push-apns-BP1VrPYl.js";
117
- import "./agents.config-CH52CAyr.js";
115
+ import { n as handleGatewayRequest } from "./server-methods-DHo5e8Gj.js";
116
+ import "./push-apns-8VJkVSdh.js";
117
+ import "./agents.config-DJTb7Jka.js";
118
118
  import "./dm-policy-shared-DJ-61hCT.js";
119
119
  import "./node-service-fcZExd22.js";
120
120
  import "./status.update-DbmZz0Aq.js";
121
121
  import "./skills-install-1ZdwGTnh.js";
122
- import "./update-runner-C6_7IzDb.js";
122
+ import "./update-runner-BF5UULe-.js";
123
123
 
124
124
  //#region src/gateway/glass-ui-ws.ts
125
125
  const SESSION_KEY = "agent:main:main";
@@ -4,7 +4,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
4
4
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-D-jRCY0d.js";
5
5
  import { C as parseDurationMs, i as loadConfig } from "./config-DHBLS1Hl.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
7
- import { Jn as resolveUserTimezone, Tn as peekSystemEventEntries, Y as getReplyFromConfig, Z as appendCronStyleCurrentTimeLine, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-XIFSKsi7.js";
7
+ import { En as peekSystemEventEntries, Q as appendCronStyleCurrentTimeLine, X as getReplyFromConfig, Yn as resolveUserTimezone, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, dt as resolveHeartbeatSenderContext, fn as requestHeartbeatNow, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, mn as resolveHeartbeatReasonKind, pn as setHeartbeatWakeHandler, ur as getQueueSize, ut as resolveHeartbeatDeliveryTarget, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./subagent-registry-CyW0EDWw.js";
8
8
  import { M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
9
9
  import { r as SYMIPULSE_TOKEN } from "./tokens-Csntmwwn.js";
10
10
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-B-0b9bGM.js";
2
- import { Cr as peekSystemEventEntries, Ft as resolveHeartbeatDeliveryTarget, It as resolveHeartbeatSenderContext, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, ft as requestHeartbeatNow, lr as DEFAULT_HEARTBEAT_EVERY, mt as resolveHeartbeatReasonKind, nr as getQueueSize, pt as setHeartbeatWakeHandler, r as appendCronStyleCurrentTimeLine, sr as CommandLane, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-BU9TUp_K.js";
2
+ import { Hn as resolveUserTimezone, It as resolveHeartbeatDeliveryTarget, Lt as resolveHeartbeatSenderContext, cr as CommandLane, dr as isHeartbeatContentEffectivelyEmpty, fr as resolveHeartbeatPrompt$1, ht as resolveHeartbeatReasonKind, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, mt as setHeartbeatWakeHandler, pr as stripHeartbeatToken, pt as requestHeartbeatNow, r as appendCronStyleCurrentTimeLine, rr as getQueueSize, t as getReplyFromConfig, ur as DEFAULT_HEARTBEAT_EVERY, wr as peekSystemEventEntries } from "./reply-DSjeqLEz.js";
3
3
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
@@ -15,7 +15,7 @@ import "./client-DMBZpU6X.js";
15
15
  import "./call-BcE47FtD.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-XIFSKsi7.js";
18
+ import "./subagent-registry-CyW0EDWw.js";
19
19
  import "./sessions-CJXnZVjR.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -104,7 +104,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
104
104
  import { t as renderTable } from "./table-D01d2GuY.js";
105
105
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
106
106
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CEoLdlyb.js";
107
- import { t as buildPluginStatusReport } from "./status-BlSxFEeo.js";
107
+ import { t as buildPluginStatusReport } from "./status-D_J6qcC1.js";
108
108
  import path from "node:path";
109
109
  import fs from "node:fs";
110
110
  import fs$1 from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } 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,7 +108,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
108
108
  import { t as renderTable } from "./table-BTgkRafz.js";
109
109
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
110
110
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BqLZtMLa.js";
111
- import { t as buildPluginStatusReport } from "./status-DwZBYK_G.js";
111
+ import { t as buildPluginStatusReport } from "./status-kfEtYX22.js";
112
112
  import fs from "node:fs";
113
113
  import path from "node:path";
114
114
  import fs$1 from "node:fs/promises";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { R as shortenHomeInString, k as isRecord } from "./registry-DP24za6g.js";
3
- import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-CwOuTuXl.js";
2
+ import { R as shortenHomeInString, k as isRecord } from "./registry-CK4e9hn8.js";
3
+ import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-DK43VicI.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-B2z46qeM.js";
6
- import { n as loadConfig } from "./config-eEaJddXj.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-DLFjnVBb.js";
6
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
7
7
  import { n as redactToolDetail } from "./redact-jSxx6Ep2.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { D as isRecord, I as shortenHomeInString } from "./registry-BhoUuugi.js";
3
3
  import { G as resolveSymiAgentDir, S as getApiKeyForModel, Y as normalizeSecretInput, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-BQCG9ah0.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-B8kqLWns.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-lgx_U5KS.js";
6
6
  import { n as loadConfig } from "./config-BmV60pPT.js";
7
7
  import { n as redactToolDetail } from "./redact-1NGYV_8p.js";
8
8
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { _ as runExec } from "./workspace-CbvamIU6.js";
1
+ import { _ as runExec } from "./workspace-wAaHI8-5.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
  import path from "node:path";