@symerian/symi 2.8.5 → 2.8.7

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 (244) hide show
  1. package/dist/{accounts-BRw8yhIW.js → accounts-D1r2dq1t.js} +21 -21
  2. package/dist/{accounts-3dCrO3oZ.js → accounts-dRUMQQrB.js} +1 -1
  3. package/dist/{accounts-BuZxOb3B.js → accounts-wSphH5gv.js} +1 -1
  4. package/dist/{active-listener-Br2FcRv7.js → active-listener-C3pfJhdC.js} +1 -1
  5. package/dist/{agent-scope-CpEJ0B88.js → agent-scope-D68_xfTL.js} +3 -3
  6. package/dist/{agents-DWuqUDaG.js → agents-CKqrLbBd.js} +4 -4
  7. package/dist/{agents.config-DWsjuONZ.js → agents.config-D17kikNs.js} +1 -1
  8. package/dist/{agents.config-B8euVOOW.js → agents.config-DnEa79_a.js} +1 -1
  9. package/dist/{audio-preflight-DIXDvyz5.js → audio-preflight-DFLcuVNn.js} +29 -29
  10. package/dist/{audio-preflight-CKbpf-IL.js → audio-preflight-DJXj9QP9.js} +5 -5
  11. package/dist/{audio-preflight-BQaUmV6k.js → audio-preflight-DfALITTK.js} +5 -5
  12. package/dist/{audit-DCOp_J5K.js → audit-DVUHZrf4.js} +2 -2
  13. package/dist/{audit-BIeVybsA.js → audit-DgAM_dWL.js} +2 -2
  14. package/dist/{auth-choice-kpk3L0TR.js → auth-choice-KEir_3i_.js} +1 -1
  15. package/dist/{auth-choice-hKVjPWaU.js → auth-choice-obR6mZqe.js} +1 -1
  16. package/dist/{auth-profiles-C2vj6htZ.js → auth-profiles-aJfgABnE.js} +17 -17
  17. package/dist/{banner-C1RFNTRm.js → banner-BEYICVDD.js} +1 -1
  18. package/dist/{bindings-BsHoBLIE.js → bindings-Bat2RnAR.js} +2 -2
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +54 -54
  21. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  22. package/dist/bundled/command-logger/handler.js +1 -1
  23. package/dist/bundled/session-memory/handler.js +54 -54
  24. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  25. package/dist/{channel-activity-D-kw83R0.js → channel-activity-Cm1OJRbv.js} +1 -1
  26. package/dist/{channel-options-Vjegw-bn.js → channel-options-D9g8Ji5_.js} +1 -1
  27. package/dist/{channel-options-Pit7RtN-.js → channel-options-H9pR0AWZ.js} +1 -1
  28. package/dist/{channel-web-BVm_UWyj.js → channel-web-B9-EHnds.js} +3 -3
  29. package/dist/{channels-cli-Bh07AMec.js → channels-cli-C_YU5GaO.js} +11 -11
  30. package/dist/{channels-cli-CXws5tG8.js → channels-cli-mCf_KwBC.js} +12 -12
  31. package/dist/{chrome-ROtrXlNs.js → chrome-B0yKTuIS.js} +14 -14
  32. package/dist/{chunk-BHW8Yu5A.js → chunk-B9x_1qSr.js} +1 -1
  33. package/dist/{cli-D5qinxg-.js → cli-D8xchhQH.js} +8 -8
  34. package/dist/{cli-TABOKnEJ.js → cli-WAg9Zydm.js} +9 -9
  35. package/dist/{command-registry-DEe4juCf.js → command-registry-nSYGDoue.js} +9 -9
  36. package/dist/{commands-registry-CfoYlMQB.js → commands-registry-CeBC8Vy2.js} +4 -4
  37. package/dist/{completion-cli-W3fyiL94.js → completion-cli-BzV4_BVf.js} +1 -1
  38. package/dist/{completion-cli-D0j-46vF.js → completion-cli-CR5v_bKh.js} +2 -2
  39. package/dist/{config-BkZ9HOKT.js → config-Dp67YMkg.js} +12 -12
  40. package/dist/{config-cli-DLBtnr_W.js → config-cli-DFXYnUAB.js} +1 -1
  41. package/dist/{config-cli-CajteLy8.js → config-cli-wcQ2PQ2b.js} +1 -1
  42. package/dist/{config-guard-DjlYIjka.js → config-guard-CJ4iAPK5.js} +1 -1
  43. package/dist/{config-guard-BJE6xSY9.js → config-guard-DsOhmFl6.js} +2 -2
  44. package/dist/{configure-B79KjBCS.js → configure-CCux4ZEl.js} +3 -3
  45. package/dist/{configure-2PdZnKO6.js → configure-DSXgdzrp.js} +3 -3
  46. package/dist/control-ui/js/app.js +6 -33
  47. package/dist/control-ui/js/render.js +4 -14
  48. package/dist/{deliver-CiL9mQXH.js → deliver-BLt_liXS.js} +2 -2
  49. package/dist/{deliver-BC3liFsT.js → deliver-DPWY9adX.js} +20 -20
  50. package/dist/{deliver-CXpvGXqJ.js → deliver-lG9ITE8w.js} +2 -2
  51. package/dist/{diagnostic-CQiU0O8b.js → diagnostic-DIKKFHpP.js} +1 -1
  52. package/dist/{doctor-completion-DOnUbTdS.js → doctor-completion-D-deyczv.js} +1 -1
  53. package/dist/{doctor-completion-mlj3aq0W.js → doctor-completion-jev9bFib.js} +1 -1
  54. package/dist/{doctor-config-flow-DFk-NaP5.js → doctor-config-flow-C81j0-sE.js} +1 -1
  55. package/dist/{doctor-config-flow-BRB_O0jG.js → doctor-config-flow-CN8seKLA.js} +1 -1
  56. package/dist/entry.js +1 -1
  57. package/dist/{env-BDXYbTKj.js → env-xmBFQPBP.js} +1 -1
  58. package/dist/extensionAPI.js +1 -1
  59. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CV0YkjoY.js} +2 -2
  60. package/dist/{gateway-cli-D7jQypRh.js → gateway-cli-BJvattWu.js} +19 -19
  61. package/dist/{gateway-cli-nHVe7vxD.js → gateway-cli-_BIiMqiD.js} +18 -18
  62. package/dist/{gemini-auth-BefM10YB.js → gemini-auth-JP7SzVpY.js} +1 -1
  63. package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
  64. package/dist/{glass-ui-ws-BgVPCNjg.js → glass-ui-ws-BHVpfzRg.js} +16 -16
  65. package/dist/{glass-ui-ws-CMMnvVpl.js → glass-ui-ws-DRWpg6Qb.js} +15 -15
  66. package/dist/{health-DvkoG4Dw.js → health-7ZvWXkvm.js} +3 -3
  67. package/dist/{health-DKxSHkOQ.js → health-D1L94KKE.js} +3 -3
  68. package/dist/{hooks-cli-DV1GeJpO.js → hooks-cli-B-JbgOoq.js} +9 -9
  69. package/dist/{hooks-cli-DsWn_3um.js → hooks-cli-BjYy0UUP.js} +10 -10
  70. package/dist/{image-C6v6m8Id.js → image-DCB54N2j.js} +4 -4
  71. package/dist/{image-CJ_QZqzR.js → image-DXco5IYt.js} +1 -1
  72. package/dist/{image-C2IvljWU.js → image-D_qN_IxA.js} +1 -1
  73. package/dist/{image-ops-C7CauEK8.js → image-ops-M5agStZn.js} +16 -16
  74. package/dist/index.js +14 -14
  75. package/dist/{ir-JAy_3A3B.js → ir-Z9axTYHx.js} +4 -4
  76. package/dist/llm-slug-generator.js +54 -54
  77. package/dist/{local-roots-Se92wAN5.js → local-roots-Bh5xx9IO.js} +5 -5
  78. package/dist/{login-CksRbu5D.js → login-Z-O7e3RD.js} +7 -7
  79. package/dist/{login-qr-COIr6FGZ.js → login-qr-Cqe-9-jf.js} +12 -12
  80. package/dist/{manager-DXyJKTj7.js → manager-ayAJucg2.js} +22 -22
  81. package/dist/{manifest-registry-CBCGTsIb.js → manifest-registry-QT5_77XA.js} +19 -19
  82. package/dist/{markdown-tables-Dnj2LQUc.js → markdown-tables-DuRhvVpP.js} +1 -1
  83. package/dist/{message-channel-OlFBYAw8.js → message-channel-DwDSKGn4.js} +1 -1
  84. package/dist/{models-BohMMqeG.js → models-PeKQE2ct.js} +2 -2
  85. package/dist/{models-cli-DabormMV.js → models-cli-ChoXOtnk.js} +9 -9
  86. package/dist/{models-cli-CJywE4w7.js → models-cli-lSGGkLeL.js} +11 -11
  87. package/dist/{onboard-ygIcreY9.js → onboard-9PT0Wv1A.js} +2 -2
  88. package/dist/{onboard-CyuUucGA.js → onboard-B8q4Vpz1.js} +2 -2
  89. package/dist/{onboard-channels-DU6do-N5.js → onboard-channels-CN0qvsHO.js} +1 -1
  90. package/dist/{onboard-channels-DaY1NwXd.js → onboard-channels-Cg4bD8ps.js} +1 -1
  91. package/dist/{onboarding-Bqz1NgoR.js → onboarding-BAn2oNRB.js} +4 -4
  92. package/dist/{onboarding-BfeyfvK_.js → onboarding-hJaI3u5t.js} +4 -4
  93. package/dist/{onboarding.finalize-CG0xwhEw.js → onboarding.finalize-BPZZr8Cm.js} +13 -13
  94. package/dist/{onboarding.finalize-DzTo4LEo.js → onboarding.finalize-BTrhVcW5.js} +15 -15
  95. package/dist/{onboarding.gateway-config-7LGxdDrq.js → onboarding.gateway-config-TM8ERKyn.js} +1 -1
  96. package/dist/{onboarding.gateway-config-DJJRuyZ_.js → onboarding.gateway-config-vGTQDqA6.js} +1 -1
  97. package/dist/{outbound-attachment-BzwVH4Pn.js → outbound-attachment-BOy-OY4-.js} +2 -2
  98. package/dist/{outbound-CX-uuDet.js → outbound-xWV2AYDD.js} +7 -7
  99. package/dist/paths-CYmyCDsE.js +212 -0
  100. package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
  101. package/dist/{pi-auth-json-RXOlh8ar.js → pi-auth-json-Q3FwtPeJ.js} +1 -1
  102. package/dist/{pi-embedded-BIATvD3R.js → pi-embedded-F3kbSP7M.js} +6 -2
  103. package/dist/{pi-embedded-helpers-BUNbSNWw.js → pi-embedded-helpers-CFTCaByg.js} +73 -73
  104. package/dist/{pi-embedded-helpers-jo_kKs-Z.js → pi-embedded-helpers-DSscUmkR.js} +1 -1
  105. package/dist/{pi-embedded-helpers-DiXXYmgo.js → pi-embedded-helpers-DpOccVre.js} +1 -1
  106. package/dist/{pi-tools.policy-p7LLu64F.js → pi-tools.policy-BpN-v9bT.js} +1 -1
  107. package/dist/{pi-tools.policy-CGVKAOoE.js → pi-tools.policy-DOVQ8dDx.js} +1 -1
  108. package/dist/{plugin-registry-DG2IOSY3.js → plugin-registry-BVoIgv-5.js} +1 -1
  109. package/dist/{plugin-registry-DTm-oyEP.js → plugin-registry-DFPTE_HO.js} +1 -1
  110. package/dist/plugin-sdk/{channel-web-D-ct3FR3.js → channel-web-BNGOwMat.js} +1 -1
  111. package/dist/plugin-sdk/index.js +2 -2
  112. package/dist/plugin-sdk/{reply-Gpdxnjey.js → reply-DcNZU8lj.js} +6 -2
  113. package/dist/plugin-sdk/{web-BFa_GJSK.js → web-CeR-wf-N.js} +2 -2
  114. package/dist/{plugins-BzmbgY7s.js → plugins-Bkr5ZdYs.js} +9 -9
  115. package/dist/{plugins-cli-BrHhfpbX.js → plugins-cli-BwM4f91E.js} +10 -10
  116. package/dist/{plugins-cli-BJpemLCS.js → plugins-cli-uoGDkhOc.js} +9 -9
  117. package/dist/{program-CYzFuO3w.js → program-DhBZLOgJ.js} +16 -16
  118. package/dist/{program-context-G2iHoB5D.js → program-context-BJEZcvA2.js} +20 -20
  119. package/dist/{prompt-select-styled-lVyrkSPI.js → prompt-select-styled-CJjLDUCj.js} +7 -7
  120. package/dist/{prompt-select-styled-P0KS75Rt.js → prompt-select-styled-CMBgFELR.js} +7 -7
  121. package/dist/{provider-auth-helpers-CoYjxsb2.js → provider-auth-helpers-DeWQHkRc.js} +1 -1
  122. package/dist/{provider-auth-helpers-Cygsm5_L.js → provider-auth-helpers-S2j3hcBK.js} +1 -1
  123. package/dist/{push-apns-CHM_4e6x.js → push-apns-CJ2CpgRB.js} +1 -1
  124. package/dist/{push-apns-BMfcGm-A.js → push-apns-YD8SuIy0.js} +1 -1
  125. package/dist/{pw-ai-BLrC_W1X.js → pw-ai-DHoYzirP.js} +11 -11
  126. package/dist/{qmd-manager-lBS9mT9w.js → qmd-manager-8-Z3Cdpt.js} +7 -7
  127. package/dist/{register.agent-BTmY2MoW.js → register.agent-B2u3ouKf.js} +14 -14
  128. package/dist/{register.agent-efba5ajU.js → register.agent-gMPMyFRj.js} +12 -12
  129. package/dist/{register.configure-DHSfWAqs.js → register.configure-C6mVcNay.js} +14 -14
  130. package/dist/{register.configure-EQOE0vHS.js → register.configure-DncWEkhU.js} +13 -13
  131. package/dist/{register.maintenance-CzcgKkH3.js → register.maintenance-Cz1IOILv.js} +15 -15
  132. package/dist/{register.maintenance-CsczzIEq.js → register.maintenance-D5oV0fjR.js} +17 -17
  133. package/dist/{register.message-Bc3A_dfj.js → register.message-B6hxm3rn.js} +9 -9
  134. package/dist/{register.message-u6gwfQPX.js → register.message-QejTHJGQ.js} +10 -10
  135. package/dist/{register.onboard-CtKNq5I_.js → register.onboard-CA06T3Jp.js} +12 -12
  136. package/dist/{register.onboard-yDsskHey.js → register.onboard-kJuHrfio.js} +11 -11
  137. package/dist/{register.setup-BPeB8JTw.js → register.setup-BD8QKVsT.js} +11 -11
  138. package/dist/{register.setup-BJqk3N2q.js → register.setup-C11edfdp.js} +12 -12
  139. package/dist/{register.status-health-sessions-CU6Uv3iO.js → register.status-health-sessions-257I77oA.js} +13 -13
  140. package/dist/{register.status-health-sessions-KzzMJ0H1.js → register.status-health-sessions-CrTiF0_d.js} +11 -11
  141. package/dist/{register.subclis-C_464foT.js → register.subclis-CnOalkYH.js} +12 -12
  142. package/dist/{registry-DYq1AYOv.js → registry-UkL38jvt.js} +17 -17
  143. package/dist/{replies-BWgZR_w5.js → replies-CWH084Xr.js} +3 -3
  144. package/dist/{reply-kWKTXRkY.js → reply-o0IEwJ_P.js} +18 -14
  145. package/dist/{reply-prefix-CvEIl6_d.js → reply-prefix-ZnX2V-k9.js} +1 -1
  146. package/dist/{resolve-route-DX7xcMsD.js → resolve-route-gl0ZOOKR.js} +4 -4
  147. package/dist/{retry-B-y5suGA.js → retry-D25Z8MVS.js} +1 -1
  148. package/dist/{run-main-I-kj1_yf.js → run-main-BuVFHsuQ.js} +25 -25
  149. package/dist/{runner-QX0Z6K1w.js → runner-C-ygJOAu.js} +22 -22
  150. package/dist/{runner-BopCEjwB.js → runner-CSdQSvE8.js} +1 -1
  151. package/dist/{runner-eBF6SlQ6.js → runner-C_BlQ2fG.js} +1 -1
  152. package/dist/{sandbox-ooxzsj2D.js → sandbox-BOVopTqv.js} +1 -1
  153. package/dist/{sandbox-Cl2r-bXv.js → sandbox-CDxHBl3I.js} +1 -1
  154. package/dist/{sandbox-cli-CZSrSTkk.js → sandbox-cli-0eu7BCa8.js} +2 -2
  155. package/dist/{sandbox-cli-BH45SMwC.js → sandbox-cli-BpfYaZBG.js} +2 -2
  156. package/dist/{security-cli-CEI0zQJs.js → security-cli-B5s73Le2.js} +4 -4
  157. package/dist/{security-cli-Bz-Sv5-H.js → security-cli-CzWHkrqD.js} +4 -4
  158. package/dist/{send-CCmxHtaA.js → send-BJhQtCyM.js} +6 -6
  159. package/dist/{send-xTfsDEE2.js → send-CF_nzDHe.js} +18 -18
  160. package/dist/{send-vqwluhp3.js → send-Cf47Nas6.js} +7 -7
  161. package/dist/{send-B7aHpAco.js → send-DERqzyba.js} +6 -6
  162. package/dist/{send-Yzy50T1h.js → send-DQoKXmre.js} +10 -10
  163. package/dist/{server-methods-DuXvSLX-.js → server-methods-D0laPfTZ.js} +10 -10
  164. package/dist/{server-methods-DQHU-PVR.js → server-methods-D1eF0-Yu.js} +11 -11
  165. package/dist/{server-node-events-CwAM91fd.js → server-node-events-D3iV_wDf.js} +9 -9
  166. package/dist/{server-node-events-ecaGjg5E.js → server-node-events-b7X9bVIS.js} +10 -10
  167. package/dist/{session-BTLA3Rm7.js → session-C1eFu8k4.js} +8 -8
  168. package/dist/{session-utils-Dwt6eGX6.js → session-utils-BPXkhuNM.js} +1 -1
  169. package/dist/{sessions-Do060W3W.js → sessions-BPD85pWA.js} +2 -3
  170. package/dist/{sessions-vYQs1OzE.js → sessions-BeYHj0gr.js} +2 -3
  171. package/dist/{sessions-DQxygr94.js → sessions-NTd36-CO.js} +2 -2
  172. package/dist/{skill-commands-D1hG6Ikz.js → skill-commands-CKXkvl80.js} +16 -16
  173. package/dist/{skills-CXxrn_e2.js → skills-DxmX9HVT.js} +24 -24
  174. package/dist/{sqlite-BHWvOATS.js → sqlite-JHY-uOmS.js} +16 -16
  175. package/dist/{status-v8DOdpX6.js → status-Cv3PcsRo.js} +4 -4
  176. package/dist/{status-DNVKHGLC.js → status-CwrFTb4t.js} +1 -1
  177. package/dist/{status-CW9LMA2M.js → status-K22ODH_m.js} +1 -1
  178. package/dist/{status-DsFAg-bK.js → status-eVKjxfUO.js} +5 -5
  179. package/dist/{store-01F_JM7O.js → store-Ea3zM6xK.js} +6 -6
  180. package/dist/{subagent-registry-C8UsZ8F0.js → subagent-registry-4XZvxwX0.js} +19 -15
  181. package/dist/{subsystem-BjyjJF-d.js → subsystem-DN75fnEF.js} +1 -1
  182. package/dist/{tables-BuM4FKR3.js → tables-Dkg9O8rv.js} +1 -1
  183. package/dist/{target-errors-BEugWC4F.js → target-errors-Pr77jao5.js} +2 -2
  184. package/dist/{thinking-BprCy23Z.js → thinking-C9-JAUzD.js} +5 -5
  185. package/dist/{tokens-W0JzCJJM.js → tokens-CCZl4YHT.js} +1 -1
  186. package/dist/{tool-images-SqqWIT22.js → tool-images-B1qVCntj.js} +2 -2
  187. package/dist/{tool-loop-detection-D5mBY7AC.js → tool-loop-detection-C33wf43N.js} +3 -3
  188. package/dist/{tui-B61kHmM2.js → tui-DfPeXwah.js} +2 -2
  189. package/dist/{tui-CiGfEtDa.js → tui-LZPdrFmK.js} +2 -2
  190. package/dist/{tui-cli-CwNXfDnk.js → tui-cli-Bm3TJgXf.js} +4 -4
  191. package/dist/{tui-cli-DHKMCeGp.js → tui-cli-DFXZ7r1F.js} +4 -4
  192. package/dist/{unified-runner-CUXcv08a.js → unified-runner-BL7URnpP.js} +231 -227
  193. package/dist/{update-cli-BwX8SW9m.js → update-cli-Bf-HR0_b.js} +17 -17
  194. package/dist/{update-cli-DQOw6sqy.js → update-cli-CjtzOlMZ.js} +15 -15
  195. package/dist/{update-runner-BhXkq5Gw.js → update-runner-CxuU59aU.js} +1 -1
  196. package/dist/{update-runner-C56OyqSE.js → update-runner-i95oVXRi.js} +1 -1
  197. package/dist/{web-DgoKLcMP.js → web-B3QBvAid.js} +58 -58
  198. package/dist/{web-CGicnDRL.js → web-CTog1mw0.js} +9 -9
  199. package/dist/{web-Ifwqx6Dt.js → web-D6aUh_IC.js} +1 -1
  200. package/dist/{web-NSGlkQEO.js → web-D_WLAogr.js} +9 -9
  201. package/dist/{whatsapp-actions-CiXMwRR8.js → whatsapp-actions-pddprZ8J.js} +23 -23
  202. package/dist/{workspace-DscDraUb.js → workspace-DqJ5h-ZB.js} +27 -27
  203. package/extensions/bluebubbles/package.json +1 -1
  204. package/extensions/copilot-proxy/package.json +1 -1
  205. package/extensions/diagnostics-otel/package.json +1 -1
  206. package/extensions/discord/package.json +1 -1
  207. package/extensions/feishu/package.json +1 -1
  208. package/extensions/google-antigravity-auth/package.json +1 -1
  209. package/extensions/google-gemini-cli-auth/package.json +1 -1
  210. package/extensions/googlechat/package.json +1 -1
  211. package/extensions/imessage/package.json +1 -1
  212. package/extensions/irc/package.json +1 -1
  213. package/extensions/learning-loop/package.json +1 -1
  214. package/extensions/line/package.json +1 -1
  215. package/extensions/llm-task/package.json +1 -1
  216. package/extensions/matrix/CHANGELOG.md +12 -0
  217. package/extensions/matrix/package.json +1 -1
  218. package/extensions/mattermost/package.json +1 -1
  219. package/extensions/memory-core/package.json +1 -1
  220. package/extensions/memory-lancedb/package.json +1 -1
  221. package/extensions/minimax-portal-auth/package.json +1 -1
  222. package/extensions/msteams/CHANGELOG.md +12 -0
  223. package/extensions/msteams/package.json +1 -1
  224. package/extensions/nextcloud-talk/package.json +1 -1
  225. package/extensions/nostr/CHANGELOG.md +12 -0
  226. package/extensions/nostr/package.json +1 -1
  227. package/extensions/open-prose/package.json +1 -1
  228. package/extensions/outlook/index.ts +1 -1
  229. package/extensions/outlook/package.json +1 -1
  230. package/extensions/pipeline/package.json +1 -1
  231. package/extensions/signal/package.json +1 -1
  232. package/extensions/slack/package.json +1 -1
  233. package/extensions/telegram/package.json +1 -1
  234. package/extensions/tlon/package.json +1 -1
  235. package/extensions/twitch/CHANGELOG.md +12 -0
  236. package/extensions/twitch/package.json +1 -1
  237. package/extensions/voice-call/CHANGELOG.md +12 -0
  238. package/extensions/voice-call/package.json +1 -1
  239. package/extensions/whatsapp/package.json +1 -1
  240. package/extensions/zalo/CHANGELOG.md +12 -0
  241. package/extensions/zalo/package.json +1 -1
  242. package/extensions/zalouser/CHANGELOG.md +12 -0
  243. package/extensions/zalouser/package.json +1 -1
  244. package/package.json +1 -1
@@ -14,8 +14,8 @@ import "./client-qUlxXXVJ.js";
14
14
  import "./call-BrRWr7Lj.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import { m as loadSymiPlugins } from "./subagent-registry-C8UsZ8F0.js";
18
- import "./sessions-Do060W3W.js";
17
+ import { m as loadSymiPlugins } from "./subagent-registry-4XZvxwX0.js";
18
+ import "./sessions-BPD85pWA.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
21
21
  import "./accounts-D9ITgITj.js";
@@ -24,14 +24,14 @@ import "./logging-CFvkxgcX.js";
24
24
  import "./send-BcvVKfh2.js";
25
25
  import "./send-DnsTDCll.js";
26
26
  import "./with-timeout-BIXdW2Bg.js";
27
- import "./deliver-CiL9mQXH.js";
27
+ import "./deliver-BLt_liXS.js";
28
28
  import "./diagnostic-Ci8Xsc_Y.js";
29
29
  import "./diagnostic-session-state-CIjIGxEE.js";
30
30
  import "./accounts-D1eLj5t8.js";
31
31
  import "./send-CaUqpyyp.js";
32
32
  import "./image-ops-CUkaZz2F.js";
33
- import "./pi-embedded-helpers-jo_kKs-Z.js";
34
- import "./sandbox-Cl2r-bXv.js";
33
+ import "./pi-embedded-helpers-DSscUmkR.js";
34
+ import "./sandbox-CDxHBl3I.js";
35
35
  import "./chrome-D2ohnA09.js";
36
36
  import "./tailscale-CbbvYNVw.js";
37
37
  import "./auth-BfDMhFAj.js";
@@ -66,11 +66,11 @@ import "./ir-D-flMHhr.js";
66
66
  import "./render-e7fENCYH.js";
67
67
  import "./commands-CkrIpKCc.js";
68
68
  import "./commands-registry-CccyRhnX.js";
69
- import "./image-CJ_QZqzR.js";
69
+ import "./image-DXco5IYt.js";
70
70
  import "./tool-display-CXwOC-qw.js";
71
- import "./runner-BopCEjwB.js";
71
+ import "./runner-CSdQSvE8.js";
72
72
  import "./model-catalog-DKGSg6jF.js";
73
- import "./session-utils-Dwt6eGX6.js";
73
+ import "./session-utils-BPXkhuNM.js";
74
74
  import "./skill-commands-BSJONVkt.js";
75
75
  import "./workspace-dirs-CPNL2Acu.js";
76
76
  import "./pairing-store-NgA78L2g.js";
@@ -97,7 +97,7 @@ import "./replies-CsUBFXf6.js";
97
97
  import "./onboard-helpers-7H_XiJt-.js";
98
98
  import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-DwceB1dG.js";
100
- import "./pi-tools.policy-CGVKAOoE.js";
100
+ import "./pi-tools.policy-DOVQ8dDx.js";
101
101
 
102
102
  //#region src/plugins/cli.ts
103
103
  const log = createSubsystemLogger("plugins");
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { an as getPrimaryCommand, cn as hasHelpOrVersion } from "./entry.js";
3
- import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-C_464foT.js";
3
+ import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-CnOalkYH.js";
4
4
 
5
5
  //#region src/cli/program/command-registry.ts
6
6
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -22,7 +22,7 @@ const coreEntries = [
22
22
  hasSubcommands: false
23
23
  }],
24
24
  register: async ({ program }) => {
25
- (await import("./register.setup-BJqk3N2q.js")).registerSetupCommand(program);
25
+ (await import("./register.setup-C11edfdp.js")).registerSetupCommand(program);
26
26
  }
27
27
  },
28
28
  {
@@ -32,7 +32,7 @@ const coreEntries = [
32
32
  hasSubcommands: false
33
33
  }],
34
34
  register: async ({ program }) => {
35
- (await import("./register.onboard-CtKNq5I_.js")).registerOnboardCommand(program);
35
+ (await import("./register.onboard-CA06T3Jp.js")).registerOnboardCommand(program);
36
36
  }
37
37
  },
38
38
  {
@@ -42,7 +42,7 @@ const coreEntries = [
42
42
  hasSubcommands: false
43
43
  }],
44
44
  register: async ({ program }) => {
45
- (await import("./register.configure-DHSfWAqs.js")).registerConfigureCommand(program);
45
+ (await import("./register.configure-C6mVcNay.js")).registerConfigureCommand(program);
46
46
  }
47
47
  },
48
48
  {
@@ -52,7 +52,7 @@ const coreEntries = [
52
52
  hasSubcommands: true
53
53
  }],
54
54
  register: async ({ program }) => {
55
- (await import("./config-cli-CajteLy8.js")).registerConfigCli(program);
55
+ (await import("./config-cli-wcQ2PQ2b.js")).registerConfigCli(program);
56
56
  }
57
57
  },
58
58
  {
@@ -79,7 +79,7 @@ const coreEntries = [
79
79
  }
80
80
  ],
81
81
  register: async ({ program }) => {
82
- (await import("./register.maintenance-CsczzIEq.js")).registerMaintenanceCommands(program);
82
+ (await import("./register.maintenance-D5oV0fjR.js")).registerMaintenanceCommands(program);
83
83
  }
84
84
  },
85
85
  {
@@ -89,7 +89,7 @@ const coreEntries = [
89
89
  hasSubcommands: true
90
90
  }],
91
91
  register: async ({ program, ctx }) => {
92
- (await import("./register.message-u6gwfQPX.js")).registerMessageCommands(program, ctx);
92
+ (await import("./register.message-QejTHJGQ.js")).registerMessageCommands(program, ctx);
93
93
  }
94
94
  },
95
95
  {
@@ -113,7 +113,7 @@ const coreEntries = [
113
113
  hasSubcommands: true
114
114
  }],
115
115
  register: async ({ program, ctx }) => {
116
- (await import("./register.agent-BTmY2MoW.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
116
+ (await import("./register.agent-B2u3ouKf.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
117
117
  }
118
118
  },
119
119
  {
@@ -135,7 +135,7 @@ const coreEntries = [
135
135
  }
136
136
  ],
137
137
  register: async ({ program }) => {
138
- (await import("./register.status-health-sessions-CU6Uv3iO.js")).registerStatusHealthSessionsCommands(program);
138
+ (await import("./register.status-health-sessions-257I77oA.js")).registerStatusHealthSessionsCommands(program);
139
139
  }
140
140
  },
141
141
  {
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { D as escapeRegExp, W as isPlainObject, c as getActivePluginRegistry } from "./registry-DYq1AYOv.js";
3
- import { Q as DEFAULT_PROVIDER, T as resolveConfiguredModelRef, Z as DEFAULT_MODEL } from "./auth-profiles-C2vj6htZ.js";
4
- import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-BprCy23Z.js";
5
- import { r as normalizeChannelId } from "./plugins-BzmbgY7s.js";
2
+ import { D as escapeRegExp, W as isPlainObject, c as getActivePluginRegistry } from "./registry-UkL38jvt.js";
3
+ import { Q as DEFAULT_PROVIDER, T as resolveConfiguredModelRef, Z as DEFAULT_MODEL } from "./auth-profiles-aJfgABnE.js";
4
+ import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-C9-JAUzD.js";
5
+ import { r as normalizeChannelId } from "./plugins-Bkr5ZdYs.js";
6
6
 
7
7
  //#region src/config/commands.ts
8
8
  function resolveAutoDefault(providerId) {
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
3
3
  import { h as pathExists } from "./utils-B-0b9bGM.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-D9vIQve0.js";
5
- import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-G2iHoB5D.js";
5
+ import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-BJEZcvA2.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Yt as resolveStateDir, l as routeLogsToStderr, nt as pathExists } from "./entry.js";
3
- import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-C_464foT.js";
4
- import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-DEe4juCf.js";
3
+ import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-CnOalkYH.js";
4
+ import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-nSYGDoue.js";
5
5
  import { t as getProgramContext } from "./program-context-CqzR_m-7.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
@@ -1,12 +1,12 @@
1
- import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
1
+ import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CYmyCDsE.js";
2
2
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { I as resolveUserPath, P as resolveConfigDir, W as isPlainObject$1, k as isRecord, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-DYq1AYOv.js";
4
- import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CpEJ0B88.js";
5
- import { J as shouldDeferShellEnvFallback, K as loadShellEnvFallback, X as DEFAULT_CONTEXT_TOKENS, Y as shouldEnableShellEnvFallback, q as resolveShellEnvFallbackTimeoutMs, w as parseModelRef } from "./auth-profiles-C2vj6htZ.js";
6
- import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, f as normalizeEnvVarKey, l as isPathInside, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-CBCGTsIb.js";
3
+ import { I as resolveUserPath, P as resolveConfigDir, W as isPlainObject$1, k as isRecord, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-UkL38jvt.js";
4
+ import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-D68_xfTL.js";
5
+ import { J as shouldDeferShellEnvFallback, K as loadShellEnvFallback, X as DEFAULT_CONTEXT_TOKENS, Y as shouldEnableShellEnvFallback, q as resolveShellEnvFallbackTimeoutMs, w as parseModelRef } from "./auth-profiles-aJfgABnE.js";
6
+ import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, f as normalizeEnvVarKey, l as isPathInside, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-QT5_77XA.js";
7
7
  import { createRequire } from "node:module";
8
8
  import path from "node:path";
9
- import fs from "node:fs";
9
+ import fsSync from "node:fs";
10
10
  import os from "node:os";
11
11
  import JSON5 from "json5";
12
12
  import { isDeepStrictEqual } from "node:util";
@@ -20,7 +20,7 @@ function loadDotEnv(opts) {
20
20
  const quiet = opts?.quiet ?? true;
21
21
  dotenv.config({ quiet });
22
22
  const globalEnvPath = path.join(resolveConfigDir(process.env), ".env");
23
- if (!fs.existsSync(globalEnvPath)) return;
23
+ if (!fsSync.existsSync(globalEnvPath)) return;
24
24
  dotenv.config({
25
25
  quiet,
26
26
  path: globalEnvPath,
@@ -156,7 +156,7 @@ function resolveAgentMaxConcurrent(cfg) {
156
156
  //#endregion
157
157
  //#region src/config/talk.ts
158
158
  function readTalkApiKeyFromProfile(deps = {}) {
159
- const fsImpl = deps.fs ?? fs;
159
+ const fsImpl = deps.fs ?? fsSync;
160
160
  const osImpl = deps.os ?? os;
161
161
  const pathImpl = deps.path ?? path;
162
162
  const home = osImpl.homedir();
@@ -849,7 +849,7 @@ var IncludeProcessor = class IncludeProcessor {
849
849
  const normalized = path.normalize(resolved);
850
850
  if (!isPathInside(this.rootDir, normalized)) throw new ConfigIncludeError(`Include path escapes config directory: ${includePath} (root: ${this.rootDir})`, includePath);
851
851
  try {
852
- const real = fs.realpathSync(normalized);
852
+ const real = fsSync.realpathSync(normalized);
853
853
  if (!isPathInside(this.rootRealDir, real)) throw new ConfigIncludeError(`Include path resolves outside config directory (symlink): ${includePath} (root: ${this.rootDir})`, includePath);
854
854
  } catch (err) {
855
855
  if (err instanceof ConfigIncludeError) throw err;
@@ -885,13 +885,13 @@ var IncludeProcessor = class IncludeProcessor {
885
885
  };
886
886
  function safeRealpath(target) {
887
887
  try {
888
- return fs.realpathSync(target);
888
+ return fsSync.realpathSync(target);
889
889
  } catch {
890
890
  return target;
891
891
  }
892
892
  }
893
893
  const defaultResolver = {
894
- readFile: (p) => fs.readFileSync(p, "utf-8"),
894
+ readFile: (p) => fsSync.readFileSync(p, "utf-8"),
895
895
  parseJson: (raw) => JSON5.parse(raw)
896
896
  };
897
897
  /**
@@ -5591,7 +5591,7 @@ function resolveConfigPathForDeps(deps) {
5591
5591
  }
5592
5592
  function normalizeDeps(overrides = {}) {
5593
5593
  return {
5594
- fs: overrides.fs ?? fs,
5594
+ fs: overrides.fs ?? fsSync,
5595
5595
  json5: overrides.json5 ?? JSON5,
5596
5596
  env: overrides.env ?? process.env,
5597
5597
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
206
206
  }
207
207
  function registerConfigCli(program) {
208
208
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
209
- const { configureCommandFromSectionsArg } = await import("./configure-2PdZnKO6.js").then((n) => n.t);
209
+ const { configureCommandFromSectionsArg } = await import("./configure-DSXgdzrp.js").then((n) => n.t);
210
210
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
211
211
  });
212
212
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
201
201
  }
202
202
  function registerConfigCli(program) {
203
203
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
204
- const { configureCommandFromSectionsArg } = await import("./configure-B79KjBCS.js").then((n) => n.t);
204
+ const { configureCommandFromSectionsArg } = await import("./configure-CCux4ZEl.js").then((n) => n.t);
205
205
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
206
206
  });
207
207
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Dt as theme, Et as isRich, Tt as colorize, lt as shortenHomePath, un as shouldMigrateStateFromPath } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import { o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
5
- import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-DFk-NaP5.js";
5
+ import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-C81j0-sE.js";
6
6
 
7
7
  //#region src/cli/program/config-guard.ts
8
8
  var config_guard_exports = /* @__PURE__ */ __exportAll({ ensureConfigReady: () => ensureConfigReady });
@@ -12,7 +12,7 @@ import "./env-DPCHYPeH.js";
12
12
  import "./message-channel-aT-I_DTX.js";
13
13
  import { o as readConfigFileSnapshot } from "./config-PXAJCHa5.js";
14
14
  import "./manifest-registry-BDSRH8nU.js";
15
- import "./sessions-vYQs1OzE.js";
15
+ import "./sessions-BeYHj0gr.js";
16
16
  import "./dock-BhS32F6E.js";
17
17
  import "./plugins-DKDeQZF0.js";
18
18
  import "./accounts-DDuIpcln.js";
@@ -26,7 +26,7 @@ import { c as shouldMigrateStateFromPath } from "./argv-B20UI_hB.js";
26
26
  import "./catalog-DX1l43Ru.js";
27
27
  import "./note-DQ9BvHF2.js";
28
28
  import "./plugin-auto-enable-BsGorrCZ.js";
29
- import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-BRB_O0jG.js";
29
+ import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-CN8seKLA.js";
30
30
 
31
31
  //#region src/cli/program/config-guard.ts
32
32
  const ALLOWED_INVALID_COMMANDS = new Set([
@@ -11,14 +11,14 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
11
11
  import { t as note$1 } from "./note-DDecZomM.js";
12
12
  import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
13
13
  import { t as createClackPrompter } from "./clack-prompter-B1aVoXd5.js";
14
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-DaY1NwXd.js";
14
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Cg4bD8ps.js";
15
15
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BV78EN62.js";
16
16
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
17
- import { r as healthCommand } from "./health-DvkoG4Dw.js";
17
+ import { r as healthCommand } from "./health-7ZvWXkvm.js";
18
18
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
19
19
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
20
20
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-DVcYPG2v.js";
21
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-hKVjPWaU.js";
21
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-obR6mZqe.js";
22
22
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-RQfDGgfM.js";
23
23
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DA_LW52P.js";
24
24
  import { a as promptCustomApiConfig } from "./onboard-custom-B1paBymW.js";
@@ -13,14 +13,14 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
13
13
  import { t as note$1 } from "./note-DQ9BvHF2.js";
14
14
  import { t as WizardCancelledError } from "./prompts-CfOu9uZi.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-DMuVyYP2.js";
16
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-DU6do-N5.js";
16
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-CN0qvsHO.js";
17
17
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BT1zC2PU.js";
18
18
  import { t as resolveGatewayService } from "./service-osK70kTZ.js";
19
- import { r as healthCommand } from "./health-DKxSHkOQ.js";
19
+ import { r as healthCommand } from "./health-D1L94KKE.js";
20
20
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B7moDVHX.js";
21
21
  import { n as logConfigUpdated } from "./logging-KpicI3yD.js";
22
22
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-Cn6U3t8O.js";
23
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-kpk3L0TR.js";
23
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-KEir_3i_.js";
24
24
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-D-n-rWyt.js";
25
25
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DCskIKcx.js";
26
26
  import { a as promptCustomApiConfig } from "./onboard-custom-B3CBlZe5.js";
@@ -403,17 +403,8 @@ function renderHistory(messages) {
403
403
  continue;
404
404
  }
405
405
 
406
- // 2.8.4: user-role messages ALWAYS render in the main feed. Prior behaviour
407
- // routed them to the Symipulse panel if the classifier matched (e.g. text
408
- // contained "Read SYMIPULSE.md" as a user typing about the feature), which
409
- // caused sandbox2 to silently drop user prompts on history reload. The
410
- // symipulse panel classifier is designed for assistant-role noise, not for
411
- // user input — trust the user-role signal over any pattern match.
412
- if (
413
- typeof window.isSymipulseMessage === "function" &&
414
- m.role !== "user" &&
415
- window.isSymipulseMessage(m)
416
- ) {
406
+ // Route symipulse messages to dedicated Symipulse Panel
407
+ if (typeof window.isSymipulseMessage === "function" && window.isSymipulseMessage(m)) {
417
408
  const txt = Array.isArray(m.content)
418
409
  ? m.content
419
410
  .filter((b) => b.type === "text")
@@ -427,14 +418,7 @@ function renderHistory(messages) {
427
418
  continue;
428
419
  }
429
420
 
430
- // Route plugin context user messages to Reasoning Panel.
431
- // 2.8.5: the banner pattern must match the ENTIRE trimmed body, not just
432
- // the prefix. Plugins (e.g. Outlook) use before_prompt_build + prependContext
433
- // to prepend a banner like "[Outlook 365] Connected as X..." to every user
434
- // turn's persisted text. The previous prefix-only regex dropped 100% of
435
- // user messages on those sessions. Only divert when the banner IS the
436
- // whole message (pure state-ping with no user content); if there's any
437
- // real text after, fall through and render normally.
421
+ // Route plugin context user messages to Reasoning Panel
438
422
  if (m.role === "user") {
439
423
  const txt = Array.isArray(m.content)
440
424
  ? m.content
@@ -443,7 +427,7 @@ function renderHistory(messages) {
443
427
  .join("")
444
428
  .trim()
445
429
  : extractText(m.content).trim();
446
- if (/^\[.+?\]\s+(Not connected|Connected as)\b[^\n]*$/i.test(txt)) {
430
+ if (/^\[.+\]\s+(Not connected|Connected as)\b/i.test(txt)) {
447
431
  if (typeof window.appendToReasoningPanel === "function") {
448
432
  window.appendToReasoningPanel({ type: "text", text: "[Plugin context]" });
449
433
  }
@@ -460,22 +444,11 @@ function renderHistory(messages) {
460
444
  const hasContent = Array.isArray(m.content)
461
445
  ? m.content.some((b) => b.type === "text" && (b.text ?? "").trim())
462
446
  : extractText(m.content).trim();
463
- // 2.8.4: never silently drop a user-role message. If it has no visible
464
- // content (server-side stripper removed everything, or pi-agent wrote an
465
- // empty wrapper), render a lightweight placeholder so the feed reflects
466
- // the message sequence faithfully. Assistant messages still skip on empty.
467
- let renderTarget = m;
468
447
  if (!hasContent) {
469
- if (m.role !== "user") {
470
- continue;
471
- }
472
- renderTarget = {
473
- ...m,
474
- content: [{ type: "text", text: "[message content omitted]" }],
475
- };
448
+ continue;
476
449
  }
477
450
 
478
- const el = window.renderMessage(renderTarget);
451
+ const el = window.renderMessage(m);
479
452
  if (!el) {
480
453
  continue;
481
454
  }
@@ -777,25 +777,15 @@ window.renderMessage = function (message) {
777
777
  .trim()
778
778
  : extractText(content).trim();
779
779
 
780
- // Symipulse messages → routed to Symipulse Panel by caller; guard here as safety net.
781
- // 2.8.4: user-role messages ALWAYS render in the main feed. The classifier is
782
- // intended for assistant-role noise (symipulse acks, heartbeat replies) — user
783
- // prompts that incidentally match a pattern should still be visible.
784
- if (
785
- typeof window.isSymipulseMessage === "function" &&
786
- role !== "user" &&
787
- window.isSymipulseMessage(message)
788
- ) {
780
+ // Symipulse messages → routed to Symipulse Panel by caller; guard here as safety net
781
+ if (typeof window.isSymipulseMessage === "function" && window.isSymipulseMessage(message)) {
789
782
  return null;
790
783
  }
791
784
 
792
785
  // NOTE: Monologue suppression moved server-side to OutputNormalizer.
793
786
 
794
- // Plugin context messages (e.g. "[Outlook 365] Not connected...").
795
- // 2.8.5: match ENTIRE body, not just prefix — plugins like Outlook prepend
796
- // their banner to real user text via before_prompt_build/prependContext.
797
- // Only divert when the banner is the whole message; otherwise render normally.
798
- if (role === "user" && /^\[.+?\]\s+(Not connected|Connected as)\b[^\n]*$/i.test(_msgText)) {
787
+ // Plugin context messages (e.g. "[Outlook 365] Not connected...")
788
+ if (role === "user" && /^\[.+\]\s+(Not connected|Connected as)\b/i.test(_msgText)) {
799
789
  if (typeof window.appendToReasoningPanel === "function") {
800
790
  window.appendToReasoningPanel({ type: "text", text: "[Plugin context]" });
801
791
  }
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { $t as triggerInternalHook, M as getActivePluginRegistry, Zt as createInternalHookEvent, o as createSubsystemLogger } from "./entry.js";
3
3
  import { g as normalizeOptionalAccountId, h as normalizeAccountId } from "./session-key-DjZ7Z1hW.js";
4
- import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-Do060W3W.js";
4
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BPD85pWA.js";
5
5
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Csntmwwn.js";
6
6
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
7
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-jo_kKs-Z.js";
7
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DSscUmkR.js";
8
8
  import { t as getChannelDock } from "./dock-DKxQXuAg.js";
9
9
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-CQyUJNtc.js";
10
10
  import { n as resolveMarkdownTableMode } from "./markdown-tables-D82z_Ahc.js";
@@ -1,18 +1,18 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
2
+ import { s as resolveStateDir } from "./paths-CYmyCDsE.js";
3
3
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
4
- import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-DYq1AYOv.js";
5
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
6
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BUNbSNWw.js";
7
- import { d as getChannelDock } from "./thinking-BprCy23Z.js";
8
- import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BzmbgY7s.js";
9
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-W0JzCJJM.js";
10
- import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BHW8Yu5A.js";
11
- import { n as resolveMarkdownTableMode } from "./markdown-tables-Dnj2LQUc.js";
12
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Se92wAN5.js";
13
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CCmxHtaA.js";
4
+ import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-UkL38jvt.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-DN75fnEF.js";
6
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-CFTCaByg.js";
7
+ import { d as getChannelDock } from "./thinking-C9-JAUzD.js";
8
+ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-Bkr5ZdYs.js";
9
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CCZl4YHT.js";
10
+ import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-B9x_1qSr.js";
11
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DuRhvVpP.js";
12
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Bh5xx9IO.js";
13
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BJhQtCyM.js";
14
14
  import path from "node:path";
15
- import fs from "node:fs";
15
+ import fsSync from "node:fs";
16
16
  import crypto from "node:crypto";
17
17
 
18
18
  //#region src/plugins/hooks.ts
@@ -721,11 +721,11 @@ function resolveFailedDir(stateDir) {
721
721
  /** Ensure the queue directory (and failed/ subdirectory) exist. */
722
722
  async function ensureQueueDir(stateDir) {
723
723
  const queueDir = resolveQueueDir(stateDir);
724
- await fs.promises.mkdir(queueDir, {
724
+ await fsSync.promises.mkdir(queueDir, {
725
725
  recursive: true,
726
726
  mode: 448
727
727
  });
728
- await fs.promises.mkdir(resolveFailedDir(stateDir), {
728
+ await fsSync.promises.mkdir(resolveFailedDir(stateDir), {
729
729
  recursive: true,
730
730
  mode: 448
731
731
  });
@@ -752,18 +752,18 @@ async function enqueueDelivery(params, stateDir) {
752
752
  const filePath = path.join(queueDir, `${id}.json`);
753
753
  const tmp = `${filePath}.${process.pid}.tmp`;
754
754
  const json = JSON.stringify(entry, null, 2);
755
- await fs.promises.writeFile(tmp, json, {
755
+ await fsSync.promises.writeFile(tmp, json, {
756
756
  encoding: "utf-8",
757
757
  mode: 384
758
758
  });
759
- await fs.promises.rename(tmp, filePath);
759
+ await fsSync.promises.rename(tmp, filePath);
760
760
  return id;
761
761
  }
762
762
  /** Remove a successfully delivered entry from the queue. */
763
763
  async function ackDelivery(id, stateDir) {
764
764
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
765
765
  try {
766
- await fs.promises.unlink(filePath);
766
+ await fsSync.promises.unlink(filePath);
767
767
  } catch (err) {
768
768
  if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) !== "ENOENT") throw err;
769
769
  }
@@ -771,16 +771,16 @@ async function ackDelivery(id, stateDir) {
771
771
  /** Update a queue entry after a failed delivery attempt. */
772
772
  async function failDelivery(id, error, stateDir) {
773
773
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
774
- const raw = await fs.promises.readFile(filePath, "utf-8");
774
+ const raw = await fsSync.promises.readFile(filePath, "utf-8");
775
775
  const entry = JSON.parse(raw);
776
776
  entry.retryCount += 1;
777
777
  entry.lastError = error;
778
778
  const tmp = `${filePath}.${process.pid}.tmp`;
779
- await fs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
779
+ await fsSync.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
780
780
  encoding: "utf-8",
781
781
  mode: 384
782
782
  });
783
- await fs.promises.rename(tmp, filePath);
783
+ await fsSync.promises.rename(tmp, filePath);
784
784
  }
785
785
 
786
786
  //#endregion
@@ -2,8 +2,8 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as normalizeOptionalAccountId, h as normalizeAccountId } from "./session-key-DCt45XZa.js";
3
3
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DiXXYmgo.js";
6
- import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-vYQs1OzE.js";
5
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DpOccVre.js";
6
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BeYHj0gr.js";
7
7
  import { t as getChannelDock } from "./dock-BhS32F6E.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
9
9
  import { t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-DN75fnEF.js";
3
3
  import { i as pruneDiagnosticSessionStates, r as getDiagnosticSessionState, t as diagnosticSessionStates } from "./diagnostic-session-state-Zw87xFym.js";
4
4
 
5
5
  //#region src/infra/diagnostic-events.ts
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-D0j-46vF.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CR5v_bKh.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DQ9BvHF2.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-W3fyiL94.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BzV4_BVf.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -3,7 +3,7 @@ import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
3
3
  import { m as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-DjZ7Z1hW.js";
4
4
  import { l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
5
5
  import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
6
- import { M as canonicalizeMainSessionAlias, l as saveSessionStore } from "./sessions-Do060W3W.js";
6
+ import { M as canonicalizeMainSessionAlias, l as saveSessionStore } from "./sessions-BPD85pWA.js";
7
7
  import { l as listTelegramAccountIds, u as resolveTelegramAccount } from "./plugins-CwSlLxM8.js";
8
8
  import { t as note } from "./note-DDecZomM.js";
9
9
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BvmQklg-.js";
@@ -4,7 +4,7 @@ import { m as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSess
4
4
  import { l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
5
5
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
6
6
  import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-PXAJCHa5.js";
7
- import { l as saveSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-vYQs1OzE.js";
7
+ import { l as saveSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-BeYHj0gr.js";
8
8
  import { l as listTelegramAccountIds, u as resolveTelegramAccount } from "./plugins-DKDeQZF0.js";
9
9
  import { t as note } from "./note-DQ9BvHF2.js";
10
10
  import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BsGorrCZ.js";
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-I-kj1_yf.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-BuVFHsuQ.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
  });
@@ -1,4 +1,4 @@
1
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-DN75fnEF.js";
2
2
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
3
3
  import path from "node:path";
4
4
 
@@ -7,7 +7,7 @@ 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, p as runEmbeddedPiAgent } from "./pi-embedded-BIATvD3R.js";
10
+ import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-F3kbSP7M.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";