@symerian/symi 2.8.6 → 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 (251) 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-D0nJ1LEt.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/{audio-preflight-D_g9Duqw.js → audio-preflight-lr-WPpc9.js} +4 -4
  13. package/dist/{audit-DCOp_J5K.js → audit-DVUHZrf4.js} +2 -2
  14. package/dist/{audit-BIeVybsA.js → audit-DgAM_dWL.js} +2 -2
  15. package/dist/{auth-choice-kpk3L0TR.js → auth-choice-KEir_3i_.js} +1 -1
  16. package/dist/{auth-choice-hKVjPWaU.js → auth-choice-obR6mZqe.js} +1 -1
  17. package/dist/{auth-profiles-C2vj6htZ.js → auth-profiles-aJfgABnE.js} +17 -17
  18. package/dist/{banner-C1RFNTRm.js → banner-BEYICVDD.js} +1 -1
  19. package/dist/{bindings-BsHoBLIE.js → bindings-Bat2RnAR.js} +2 -2
  20. package/dist/build-info.json +3 -3
  21. package/dist/bundled/boot-md/handler.js +54 -54
  22. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  23. package/dist/bundled/command-logger/handler.js +1 -1
  24. package/dist/bundled/session-memory/handler.js +54 -54
  25. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  26. package/dist/{channel-activity-D-kw83R0.js → channel-activity-Cm1OJRbv.js} +1 -1
  27. package/dist/{channel-options-Vjegw-bn.js → channel-options-D9g8Ji5_.js} +1 -1
  28. package/dist/{channel-options-Pit7RtN-.js → channel-options-H9pR0AWZ.js} +1 -1
  29. package/dist/{channel-web-BVm_UWyj.js → channel-web-B9-EHnds.js} +3 -3
  30. package/dist/{channels-cli-Bh07AMec.js → channels-cli-C_YU5GaO.js} +11 -11
  31. package/dist/{channels-cli-CXws5tG8.js → channels-cli-mCf_KwBC.js} +12 -12
  32. package/dist/{chrome-C08Z0XAa.js → chrome-B0yKTuIS.js} +21 -21
  33. package/dist/{chrome-BUT--ob3.js → chrome-B14NNyfm.js} +7 -7
  34. package/dist/{chunk-BHW8Yu5A.js → chunk-B9x_1qSr.js} +1 -1
  35. package/dist/{cli-D5qinxg-.js → cli-D8xchhQH.js} +8 -8
  36. package/dist/{cli-TABOKnEJ.js → cli-WAg9Zydm.js} +9 -9
  37. package/dist/{command-registry-DEe4juCf.js → command-registry-nSYGDoue.js} +9 -9
  38. package/dist/{commands-registry-CfoYlMQB.js → commands-registry-CeBC8Vy2.js} +4 -4
  39. package/dist/{completion-cli-W3fyiL94.js → completion-cli-BzV4_BVf.js} +1 -1
  40. package/dist/{completion-cli-D0j-46vF.js → completion-cli-CR5v_bKh.js} +2 -2
  41. package/dist/{config-BkZ9HOKT.js → config-Dp67YMkg.js} +12 -12
  42. package/dist/{config-cli-DLBtnr_W.js → config-cli-DFXYnUAB.js} +1 -1
  43. package/dist/{config-cli-CajteLy8.js → config-cli-wcQ2PQ2b.js} +1 -1
  44. package/dist/{config-guard-DjlYIjka.js → config-guard-CJ4iAPK5.js} +1 -1
  45. package/dist/{config-guard-BJE6xSY9.js → config-guard-DsOhmFl6.js} +2 -2
  46. package/dist/{configure-B79KjBCS.js → configure-CCux4ZEl.js} +3 -3
  47. package/dist/{configure-2PdZnKO6.js → configure-DSXgdzrp.js} +3 -3
  48. package/dist/control-ui/js/app.js +13 -60
  49. package/dist/control-ui/js/render.js +4 -72
  50. package/dist/{deliver-CiL9mQXH.js → deliver-BLt_liXS.js} +2 -2
  51. package/dist/{deliver-CLZGlRZt.js → deliver-DPWY9adX.js} +20 -20
  52. package/dist/{deliver-B36OzmeP.js → deliver-DrC7tG6s.js} +1 -1
  53. package/dist/{deliver-CXpvGXqJ.js → deliver-lG9ITE8w.js} +2 -2
  54. package/dist/{diagnostic-CQiU0O8b.js → diagnostic-DIKKFHpP.js} +1 -1
  55. package/dist/{doctor-completion-DOnUbTdS.js → doctor-completion-D-deyczv.js} +1 -1
  56. package/dist/{doctor-completion-mlj3aq0W.js → doctor-completion-jev9bFib.js} +1 -1
  57. package/dist/{doctor-config-flow-DFk-NaP5.js → doctor-config-flow-C81j0-sE.js} +1 -1
  58. package/dist/{doctor-config-flow-BRB_O0jG.js → doctor-config-flow-CN8seKLA.js} +1 -1
  59. package/dist/entry.js +1 -1
  60. package/dist/{env-BDXYbTKj.js → env-xmBFQPBP.js} +1 -1
  61. package/dist/extensionAPI.js +6 -6
  62. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CV0YkjoY.js} +2 -2
  63. package/dist/{gateway-cli-D7jQypRh.js → gateway-cli-BJvattWu.js} +19 -19
  64. package/dist/{gateway-cli-nHVe7vxD.js → gateway-cli-_BIiMqiD.js} +18 -18
  65. package/dist/{gemini-auth-BefM10YB.js → gemini-auth-JP7SzVpY.js} +1 -1
  66. package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
  67. package/dist/{glass-ui-ws-BgVPCNjg.js → glass-ui-ws-BHVpfzRg.js} +16 -16
  68. package/dist/{glass-ui-ws-CMMnvVpl.js → glass-ui-ws-DRWpg6Qb.js} +15 -15
  69. package/dist/{health-DvkoG4Dw.js → health-7ZvWXkvm.js} +3 -3
  70. package/dist/{health-DKxSHkOQ.js → health-D1L94KKE.js} +3 -3
  71. package/dist/{hooks-cli-DV1GeJpO.js → hooks-cli-B-JbgOoq.js} +9 -9
  72. package/dist/{hooks-cli-DsWn_3um.js → hooks-cli-BjYy0UUP.js} +10 -10
  73. package/dist/{image-BHhzdmbq.js → image-CKeN0xJL.js} +1 -1
  74. package/dist/{image-BnO8X_hj.js → image-DCB54N2j.js} +4 -4
  75. package/dist/{image-CJ_QZqzR.js → image-DXco5IYt.js} +1 -1
  76. package/dist/{image-C2IvljWU.js → image-D_qN_IxA.js} +1 -1
  77. package/dist/{image-ops-C7CauEK8.js → image-ops-M5agStZn.js} +16 -16
  78. package/dist/index.js +14 -14
  79. package/dist/{ir-JAy_3A3B.js → ir-Z9axTYHx.js} +4 -4
  80. package/dist/llm-slug-generator.js +54 -54
  81. package/dist/{local-roots-Se92wAN5.js → local-roots-Bh5xx9IO.js} +5 -5
  82. package/dist/{login-CksRbu5D.js → login-Z-O7e3RD.js} +7 -7
  83. package/dist/{login-qr-COIr6FGZ.js → login-qr-Cqe-9-jf.js} +12 -12
  84. package/dist/{manager-DXyJKTj7.js → manager-ayAJucg2.js} +22 -22
  85. package/dist/{manifest-registry-CBCGTsIb.js → manifest-registry-QT5_77XA.js} +19 -19
  86. package/dist/{markdown-tables-Dnj2LQUc.js → markdown-tables-DuRhvVpP.js} +1 -1
  87. package/dist/{message-channel-OlFBYAw8.js → message-channel-DwDSKGn4.js} +1 -1
  88. package/dist/{models-BohMMqeG.js → models-PeKQE2ct.js} +2 -2
  89. package/dist/{models-cli-DabormMV.js → models-cli-ChoXOtnk.js} +9 -9
  90. package/dist/{models-cli-CJywE4w7.js → models-cli-lSGGkLeL.js} +11 -11
  91. package/dist/{onboard-ygIcreY9.js → onboard-9PT0Wv1A.js} +2 -2
  92. package/dist/{onboard-CyuUucGA.js → onboard-B8q4Vpz1.js} +2 -2
  93. package/dist/{onboard-channels-DU6do-N5.js → onboard-channels-CN0qvsHO.js} +1 -1
  94. package/dist/{onboard-channels-DaY1NwXd.js → onboard-channels-Cg4bD8ps.js} +1 -1
  95. package/dist/{onboarding-Bqz1NgoR.js → onboarding-BAn2oNRB.js} +4 -4
  96. package/dist/{onboarding-BfeyfvK_.js → onboarding-hJaI3u5t.js} +4 -4
  97. package/dist/{onboarding.finalize-CG0xwhEw.js → onboarding.finalize-BPZZr8Cm.js} +13 -13
  98. package/dist/{onboarding.finalize-DzTo4LEo.js → onboarding.finalize-BTrhVcW5.js} +15 -15
  99. package/dist/{onboarding.gateway-config-7LGxdDrq.js → onboarding.gateway-config-TM8ERKyn.js} +1 -1
  100. package/dist/{onboarding.gateway-config-DJJRuyZ_.js → onboarding.gateway-config-vGTQDqA6.js} +1 -1
  101. package/dist/{outbound-attachment-BzwVH4Pn.js → outbound-attachment-BOy-OY4-.js} +2 -2
  102. package/dist/{outbound-CX-uuDet.js → outbound-xWV2AYDD.js} +7 -7
  103. package/dist/paths-CYmyCDsE.js +212 -0
  104. package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
  105. package/dist/{pi-auth-json-RXOlh8ar.js → pi-auth-json-Q3FwtPeJ.js} +1 -1
  106. package/dist/{pi-embedded-BaNpG0Aq.js → pi-embedded-F3kbSP7M.js} +20 -16
  107. package/dist/{pi-embedded-helpers-DcN8GHTt.js → pi-embedded-helpers-CFTCaByg.js} +73 -73
  108. package/dist/{pi-embedded-helpers-BET359cH.js → pi-embedded-helpers-D8YgtMdl.js} +4 -4
  109. package/dist/{pi-embedded-helpers-jo_kKs-Z.js → pi-embedded-helpers-DSscUmkR.js} +1 -1
  110. package/dist/{pi-embedded-helpers-DiXXYmgo.js → pi-embedded-helpers-DpOccVre.js} +1 -1
  111. package/dist/{pi-tools.policy-p7LLu64F.js → pi-tools.policy-BpN-v9bT.js} +1 -1
  112. package/dist/{pi-tools.policy-CGVKAOoE.js → pi-tools.policy-DOVQ8dDx.js} +1 -1
  113. package/dist/{plugin-registry-DG2IOSY3.js → plugin-registry-BVoIgv-5.js} +1 -1
  114. package/dist/{plugin-registry-DTm-oyEP.js → plugin-registry-DFPTE_HO.js} +1 -1
  115. package/dist/plugin-sdk/{channel-web-D-ct3FR3.js → channel-web-BNGOwMat.js} +1 -1
  116. package/dist/plugin-sdk/index.js +2 -2
  117. package/dist/plugin-sdk/{reply-Gpdxnjey.js → reply-DcNZU8lj.js} +6 -2
  118. package/dist/plugin-sdk/{web-BFa_GJSK.js → web-CeR-wf-N.js} +2 -2
  119. package/dist/{plugins-BzmbgY7s.js → plugins-Bkr5ZdYs.js} +9 -9
  120. package/dist/{plugins-cli-BrHhfpbX.js → plugins-cli-BwM4f91E.js} +10 -10
  121. package/dist/{plugins-cli-BJpemLCS.js → plugins-cli-uoGDkhOc.js} +9 -9
  122. package/dist/{program-CYzFuO3w.js → program-DhBZLOgJ.js} +16 -16
  123. package/dist/{program-context-G2iHoB5D.js → program-context-BJEZcvA2.js} +20 -20
  124. package/dist/{prompt-select-styled-lVyrkSPI.js → prompt-select-styled-CJjLDUCj.js} +7 -7
  125. package/dist/{prompt-select-styled-P0KS75Rt.js → prompt-select-styled-CMBgFELR.js} +7 -7
  126. package/dist/{provider-auth-helpers-CoYjxsb2.js → provider-auth-helpers-DeWQHkRc.js} +1 -1
  127. package/dist/{provider-auth-helpers-Cygsm5_L.js → provider-auth-helpers-S2j3hcBK.js} +1 -1
  128. package/dist/{push-apns-CHM_4e6x.js → push-apns-CJ2CpgRB.js} +1 -1
  129. package/dist/{push-apns-BMfcGm-A.js → push-apns-YD8SuIy0.js} +1 -1
  130. package/dist/{pw-ai-B476LzSK.js → pw-ai-DHoYzirP.js} +11 -11
  131. package/dist/{pw-ai-DE8wmtet.js → pw-ai-DTmHAKPA.js} +1 -1
  132. package/dist/{qmd-manager-lBS9mT9w.js → qmd-manager-8-Z3Cdpt.js} +7 -7
  133. package/dist/{register.agent-BTmY2MoW.js → register.agent-B2u3ouKf.js} +14 -14
  134. package/dist/{register.agent-efba5ajU.js → register.agent-gMPMyFRj.js} +12 -12
  135. package/dist/{register.configure-DHSfWAqs.js → register.configure-C6mVcNay.js} +14 -14
  136. package/dist/{register.configure-EQOE0vHS.js → register.configure-DncWEkhU.js} +13 -13
  137. package/dist/{register.maintenance-CzcgKkH3.js → register.maintenance-Cz1IOILv.js} +15 -15
  138. package/dist/{register.maintenance-CsczzIEq.js → register.maintenance-D5oV0fjR.js} +17 -17
  139. package/dist/{register.message-Bc3A_dfj.js → register.message-B6hxm3rn.js} +9 -9
  140. package/dist/{register.message-u6gwfQPX.js → register.message-QejTHJGQ.js} +10 -10
  141. package/dist/{register.onboard-CtKNq5I_.js → register.onboard-CA06T3Jp.js} +12 -12
  142. package/dist/{register.onboard-yDsskHey.js → register.onboard-kJuHrfio.js} +11 -11
  143. package/dist/{register.setup-BPeB8JTw.js → register.setup-BD8QKVsT.js} +11 -11
  144. package/dist/{register.setup-BJqk3N2q.js → register.setup-C11edfdp.js} +12 -12
  145. package/dist/{register.status-health-sessions-CU6Uv3iO.js → register.status-health-sessions-257I77oA.js} +13 -13
  146. package/dist/{register.status-health-sessions-KzzMJ0H1.js → register.status-health-sessions-CrTiF0_d.js} +11 -11
  147. package/dist/{register.subclis-C_464foT.js → register.subclis-CnOalkYH.js} +12 -12
  148. package/dist/{registry-DYq1AYOv.js → registry-UkL38jvt.js} +17 -17
  149. package/dist/{replies-BWgZR_w5.js → replies-CWH084Xr.js} +3 -3
  150. package/dist/{reply-kWKTXRkY.js → reply-o0IEwJ_P.js} +18 -14
  151. package/dist/{reply-prefix-CvEIl6_d.js → reply-prefix-ZnX2V-k9.js} +1 -1
  152. package/dist/{resolve-route-DX7xcMsD.js → resolve-route-gl0ZOOKR.js} +4 -4
  153. package/dist/{retry-B-y5suGA.js → retry-D25Z8MVS.js} +1 -1
  154. package/dist/{run-main-I-kj1_yf.js → run-main-BuVFHsuQ.js} +25 -25
  155. package/dist/{runner-D5nFF9E6.js → runner-C-ygJOAu.js} +22 -22
  156. package/dist/{runner-BVgCl6yZ.js → runner-COpebDew.js} +1 -1
  157. package/dist/{runner-BopCEjwB.js → runner-CSdQSvE8.js} +1 -1
  158. package/dist/{runner-eBF6SlQ6.js → runner-C_BlQ2fG.js} +1 -1
  159. package/dist/{sandbox-ooxzsj2D.js → sandbox-BOVopTqv.js} +1 -1
  160. package/dist/{sandbox-Cl2r-bXv.js → sandbox-CDxHBl3I.js} +1 -1
  161. package/dist/{sandbox-cli-CZSrSTkk.js → sandbox-cli-0eu7BCa8.js} +2 -2
  162. package/dist/{sandbox-cli-BH45SMwC.js → sandbox-cli-BpfYaZBG.js} +2 -2
  163. package/dist/{security-cli-CEI0zQJs.js → security-cli-B5s73Le2.js} +4 -4
  164. package/dist/{security-cli-Bz-Sv5-H.js → security-cli-CzWHkrqD.js} +4 -4
  165. package/dist/{send-CCmxHtaA.js → send-BJhQtCyM.js} +6 -6
  166. package/dist/{send-xTfsDEE2.js → send-CF_nzDHe.js} +18 -18
  167. package/dist/{send-vqwluhp3.js → send-Cf47Nas6.js} +7 -7
  168. package/dist/{send-B7aHpAco.js → send-DERqzyba.js} +6 -6
  169. package/dist/{send-Yzy50T1h.js → send-DQoKXmre.js} +10 -10
  170. package/dist/{server-methods-DuXvSLX-.js → server-methods-D0laPfTZ.js} +10 -10
  171. package/dist/{server-methods-DQHU-PVR.js → server-methods-D1eF0-Yu.js} +11 -11
  172. package/dist/{server-node-events-CwAM91fd.js → server-node-events-D3iV_wDf.js} +9 -9
  173. package/dist/{server-node-events-ecaGjg5E.js → server-node-events-b7X9bVIS.js} +10 -10
  174. package/dist/{session-BTLA3Rm7.js → session-C1eFu8k4.js} +8 -8
  175. package/dist/{session-utils-Dwt6eGX6.js → session-utils-BPXkhuNM.js} +1 -1
  176. package/dist/{sessions-Do060W3W.js → sessions-BPD85pWA.js} +2 -3
  177. package/dist/{sessions-vYQs1OzE.js → sessions-BeYHj0gr.js} +2 -3
  178. package/dist/{sessions-DQxygr94.js → sessions-NTd36-CO.js} +2 -2
  179. package/dist/{skill-commands-D1hG6Ikz.js → skill-commands-CKXkvl80.js} +16 -16
  180. package/dist/{skills-CXxrn_e2.js → skills-DxmX9HVT.js} +24 -24
  181. package/dist/{sqlite-BHWvOATS.js → sqlite-JHY-uOmS.js} +16 -16
  182. package/dist/{status-v8DOdpX6.js → status-Cv3PcsRo.js} +4 -4
  183. package/dist/{status-DNVKHGLC.js → status-CwrFTb4t.js} +1 -1
  184. package/dist/{status-CW9LMA2M.js → status-K22ODH_m.js} +1 -1
  185. package/dist/{status-DsFAg-bK.js → status-eVKjxfUO.js} +5 -5
  186. package/dist/{store-01F_JM7O.js → store-Ea3zM6xK.js} +6 -6
  187. package/dist/{subagent-registry-C8UsZ8F0.js → subagent-registry-4XZvxwX0.js} +19 -15
  188. package/dist/{subsystem-BjyjJF-d.js → subsystem-DN75fnEF.js} +1 -1
  189. package/dist/{tables-BuM4FKR3.js → tables-Dkg9O8rv.js} +1 -1
  190. package/dist/{target-errors-BEugWC4F.js → target-errors-Pr77jao5.js} +2 -2
  191. package/dist/{thinking-BprCy23Z.js → thinking-C9-JAUzD.js} +5 -5
  192. package/dist/{tokens-W0JzCJJM.js → tokens-CCZl4YHT.js} +1 -1
  193. package/dist/{tool-images-SqqWIT22.js → tool-images-B1qVCntj.js} +2 -2
  194. package/dist/{tool-loop-detection-D5mBY7AC.js → tool-loop-detection-C33wf43N.js} +3 -3
  195. package/dist/{tui-B61kHmM2.js → tui-DfPeXwah.js} +2 -2
  196. package/dist/{tui-CiGfEtDa.js → tui-LZPdrFmK.js} +2 -2
  197. package/dist/{tui-cli-CwNXfDnk.js → tui-cli-Bm3TJgXf.js} +4 -4
  198. package/dist/{tui-cli-DHKMCeGp.js → tui-cli-DFXZ7r1F.js} +4 -4
  199. package/dist/{unified-runner-BojeuKIk.js → unified-runner-BL7URnpP.js} +235 -231
  200. package/dist/{update-cli-BwX8SW9m.js → update-cli-Bf-HR0_b.js} +17 -17
  201. package/dist/{update-cli-DQOw6sqy.js → update-cli-CjtzOlMZ.js} +15 -15
  202. package/dist/{update-runner-BhXkq5Gw.js → update-runner-CxuU59aU.js} +1 -1
  203. package/dist/{update-runner-C56OyqSE.js → update-runner-i95oVXRi.js} +1 -1
  204. package/dist/{web-Dxkxcp7P.js → web-B3QBvAid.js} +58 -58
  205. package/dist/{web-CGicnDRL.js → web-CTog1mw0.js} +9 -9
  206. package/dist/{web-f1xT-H2y.js → web-D6aUh_IC.js} +6 -6
  207. package/dist/{web-NSGlkQEO.js → web-D_WLAogr.js} +9 -9
  208. package/dist/{whatsapp-actions-CiXMwRR8.js → whatsapp-actions-pddprZ8J.js} +23 -23
  209. package/dist/{workspace-DscDraUb.js → workspace-DqJ5h-ZB.js} +27 -27
  210. package/extensions/bluebubbles/package.json +1 -1
  211. package/extensions/copilot-proxy/package.json +1 -1
  212. package/extensions/diagnostics-otel/package.json +1 -1
  213. package/extensions/discord/package.json +1 -1
  214. package/extensions/feishu/package.json +1 -1
  215. package/extensions/google-antigravity-auth/package.json +1 -1
  216. package/extensions/google-gemini-cli-auth/package.json +1 -1
  217. package/extensions/googlechat/package.json +1 -1
  218. package/extensions/imessage/package.json +1 -1
  219. package/extensions/irc/package.json +1 -1
  220. package/extensions/learning-loop/package.json +1 -1
  221. package/extensions/line/package.json +1 -1
  222. package/extensions/llm-task/package.json +1 -1
  223. package/extensions/matrix/CHANGELOG.md +6 -0
  224. package/extensions/matrix/package.json +1 -1
  225. package/extensions/mattermost/package.json +1 -1
  226. package/extensions/memory-core/package.json +1 -1
  227. package/extensions/memory-lancedb/package.json +1 -1
  228. package/extensions/minimax-portal-auth/package.json +1 -1
  229. package/extensions/msteams/CHANGELOG.md +6 -0
  230. package/extensions/msteams/package.json +1 -1
  231. package/extensions/nextcloud-talk/package.json +1 -1
  232. package/extensions/nostr/CHANGELOG.md +6 -0
  233. package/extensions/nostr/package.json +1 -1
  234. package/extensions/open-prose/package.json +1 -1
  235. package/extensions/outlook/index.ts +1 -1
  236. package/extensions/outlook/package.json +1 -1
  237. package/extensions/pipeline/package.json +1 -1
  238. package/extensions/signal/package.json +1 -1
  239. package/extensions/slack/package.json +1 -1
  240. package/extensions/telegram/package.json +1 -1
  241. package/extensions/tlon/package.json +1 -1
  242. package/extensions/twitch/CHANGELOG.md +6 -0
  243. package/extensions/twitch/package.json +1 -1
  244. package/extensions/voice-call/CHANGELOG.md +6 -0
  245. package/extensions/voice-call/package.json +1 -1
  246. package/extensions/whatsapp/package.json +1 -1
  247. package/extensions/zalo/CHANGELOG.md +6 -0
  248. package/extensions/zalo/package.json +1 -1
  249. package/extensions/zalouser/CHANGELOG.md +6 -0
  250. package/extensions/zalouser/package.json +1 -1
  251. package/package.json +1 -1
@@ -10,7 +10,7 @@ import fs$1 from "node:fs/promises";
10
10
  import { execFileSync, spawn } from "node:child_process";
11
11
  import net from "node:net";
12
12
  import { createServer } from "node:http";
13
- import WebSocket$1, { WebSocketServer } from "ws";
13
+ import WebSocket, { WebSocketServer } from "ws";
14
14
  import { Buffer as Buffer$1 } from "node:buffer";
15
15
 
16
16
  //#region src/browser/constants.ts
@@ -178,7 +178,7 @@ async function ensureChromeExtensionRelayServer(opts) {
178
178
  let nextExtensionId = 1;
179
179
  const sendToExtension = async (payload) => {
180
180
  const ws = extensionWs;
181
- if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
181
+ if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
182
182
  ws.send(JSON.stringify(payload));
183
183
  return await new Promise((resolve, reject) => {
184
184
  const timer = setTimeout(() => {
@@ -195,12 +195,12 @@ async function ensureChromeExtensionRelayServer(opts) {
195
195
  const broadcastToCdpClients = (evt) => {
196
196
  const msg = JSON.stringify(evt);
197
197
  for (const ws of cdpClients) {
198
- if (ws.readyState !== WebSocket$1.OPEN) continue;
198
+ if (ws.readyState !== WebSocket.OPEN) continue;
199
199
  ws.send(msg);
200
200
  }
201
201
  };
202
202
  const sendResponseToCdp = (ws, res) => {
203
- if (ws.readyState !== WebSocket$1.OPEN) return;
203
+ if (ws.readyState !== WebSocket.OPEN) return;
204
204
  ws.send(JSON.stringify(res));
205
205
  };
206
206
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -425,7 +425,7 @@ async function ensureChromeExtensionRelayServer(opts) {
425
425
  wssExtension.on("connection", (ws) => {
426
426
  extensionWs = ws;
427
427
  const ping = setInterval(() => {
428
- if (ws.readyState !== WebSocket$1.OPEN) return;
428
+ if (ws.readyState !== WebSocket.OPEN) return;
429
429
  ws.send(JSON.stringify({ method: "ping" }));
430
430
  }, 5e3);
431
431
  ws.on("message", (data) => {
@@ -743,7 +743,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
743
743
  }
744
744
  async function withCdpSocket(wsUrl, fn, opts) {
745
745
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
746
- const ws = new WebSocket$1(wsUrl, {
746
+ const ws = new WebSocket(wsUrl, {
747
747
  handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
748
748
  ...Object.keys(headers).length ? { headers } : {}
749
749
  });
@@ -1637,7 +1637,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1637
1637
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1638
1638
  return await new Promise((resolve) => {
1639
1639
  const headers = getHeadersWithAuth(wsUrl);
1640
- const ws = new WebSocket$1(wsUrl, {
1640
+ const ws = new WebSocket(wsUrl, {
1641
1641
  handshakeTimeout: timeoutMs,
1642
1642
  ...Object.keys(headers).length ? { headers } : {}
1643
1643
  });
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
3
- import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-OlFBYAw8.js";
3
+ import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-DwDSKGn4.js";
4
4
 
5
5
  //#region src/markdown/fences.ts
6
6
  function parseFenceSpans(buffer) {
@@ -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 { ft as loadSymiPlugins } from "./reply-kWKTXRkY.js";
4
+ import { ft as loadSymiPlugins } from "./reply-o0IEwJ_P.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -14,12 +14,12 @@ import "./message-channel-aT-I_DTX.js";
14
14
  import "./send-BKhluIbb.js";
15
15
  import { i as loadConfig } from "./config-PXAJCHa5.js";
16
16
  import "./manifest-registry-BDSRH8nU.js";
17
- import "./runner-eBF6SlQ6.js";
18
- import "./image-C2IvljWU.js";
17
+ import "./runner-C_BlQ2fG.js";
18
+ import "./image-D_qN_IxA.js";
19
19
  import "./models-config-B91ShhoT.js";
20
20
  import "./pi-model-discovery-4uUnLc3n.js";
21
- import "./pi-embedded-helpers-DiXXYmgo.js";
22
- import "./sandbox-ooxzsj2D.js";
21
+ import "./pi-embedded-helpers-DpOccVre.js";
22
+ import "./sandbox-BOVopTqv.js";
23
23
  import "./chrome-BJvuH-NZ.js";
24
24
  import "./tailscale-D5dKabOc.js";
25
25
  import "./auth-B741uFtk.js";
@@ -36,7 +36,7 @@ import "./image-ops-1OJMSAUX.js";
36
36
  import "./store-r1DJSDq-.js";
37
37
  import "./ports-BOmtxoTv.js";
38
38
  import "./trash-DcMh1i4B.js";
39
- import "./sessions-vYQs1OzE.js";
39
+ import "./sessions-BeYHj0gr.js";
40
40
  import "./dock-BhS32F6E.js";
41
41
  import "./plugins-DKDeQZF0.js";
42
42
  import "./accounts-DDuIpcln.js";
@@ -55,7 +55,7 @@ import "./sqlite-Dx3J_aSE.js";
55
55
  import "./model-catalog-Dex2EDUJ.js";
56
56
  import "./tokens-BuceUQDl.js";
57
57
  import "./with-timeout-emS7y-kf.js";
58
- import "./deliver-CXpvGXqJ.js";
58
+ import "./deliver-lG9ITE8w.js";
59
59
  import "./diagnostic-CH0skkp6.js";
60
60
  import "./diagnostic-session-state-CUslJyKP.js";
61
61
  import "./send-DFftzTHo.js";
@@ -98,7 +98,7 @@ import "./prompt-style-CnkMpSXt.js";
98
98
  import "./pairing-labels-BScqzHEx.js";
99
99
  import "./exec-approvals-DXM2pQYL.js";
100
100
  import "./nodes-screen-8Bq7DiSa.js";
101
- import "./pi-tools.policy-p7LLu64F.js";
101
+ import "./pi-tools.policy-BpN-v9bT.js";
102
102
  import "./control-service-D0IdaeI8.js";
103
103
  import "./stagger-CvFURHzt.js";
104
104
  import "./channel-selection-V2xDgw16.js";
@@ -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";
@@ -376,17 +376,10 @@ function renderHistory(messages) {
376
376
  }
377
377
  responseArea.innerHTML = "";
378
378
  responseArea.prepend(loadMoreSentinel);
379
- for (const rawM of messages) {
380
- if (!rawM || !rawM.role) {
379
+ for (const m of messages) {
380
+ if (!m || !m.role) {
381
381
  continue;
382
382
  }
383
- // 2.8.6: strip plugin banners + timestamp envelopes from user messages
384
- // before any filtering or content checks. Clean text reveals whether the
385
- // message was pure plugin state (divert) or real user content (render).
386
- const m =
387
- typeof window.cleanUserMessageForDisplay === "function"
388
- ? window.cleanUserMessageForDisplay(rawM)
389
- : rawM;
390
383
 
391
384
  // Route toolResult messages to the Reasoning Panel — they're tool output, not user-facing
392
385
  if (m.role === "toolResult" || m.role === "tool") {
@@ -410,17 +403,8 @@ function renderHistory(messages) {
410
403
  continue;
411
404
  }
412
405
 
413
- // 2.8.4: user-role messages ALWAYS render in the main feed. Prior behaviour
414
- // routed them to the Symipulse panel if the classifier matched (e.g. text
415
- // contained "Read SYMIPULSE.md" as a user typing about the feature), which
416
- // caused sandbox2 to silently drop user prompts on history reload. The
417
- // symipulse panel classifier is designed for assistant-role noise, not for
418
- // user input — trust the user-role signal over any pattern match.
419
- if (
420
- typeof window.isSymipulseMessage === "function" &&
421
- m.role !== "user" &&
422
- window.isSymipulseMessage(m)
423
- ) {
406
+ // Route symipulse messages to dedicated Symipulse Panel
407
+ if (typeof window.isSymipulseMessage === "function" && window.isSymipulseMessage(m)) {
424
408
  const txt = Array.isArray(m.content)
425
409
  ? m.content
426
410
  .filter((b) => b.type === "text")
@@ -434,14 +418,7 @@ function renderHistory(messages) {
434
418
  continue;
435
419
  }
436
420
 
437
- // Route plugin context user messages to Reasoning Panel.
438
- // 2.8.5: the banner pattern must match the ENTIRE trimmed body, not just
439
- // the prefix. Plugins (e.g. Outlook) use before_prompt_build + prependContext
440
- // to prepend a banner like "[Outlook 365] Connected as X..." to every user
441
- // turn's persisted text. The previous prefix-only regex dropped 100% of
442
- // user messages on those sessions. Only divert when the banner IS the
443
- // whole message (pure state-ping with no user content); if there's any
444
- // real text after, fall through and render normally.
421
+ // Route plugin context user messages to Reasoning Panel
445
422
  if (m.role === "user") {
446
423
  const txt = Array.isArray(m.content)
447
424
  ? m.content
@@ -450,7 +427,7 @@ function renderHistory(messages) {
450
427
  .join("")
451
428
  .trim()
452
429
  : extractText(m.content).trim();
453
- if (/^\[.+?\]\s+(Not connected|Connected as)\b[^\n]*$/i.test(txt)) {
430
+ if (/^\[.+\]\s+(Not connected|Connected as)\b/i.test(txt)) {
454
431
  if (typeof window.appendToReasoningPanel === "function") {
455
432
  window.appendToReasoningPanel({ type: "text", text: "[Plugin context]" });
456
433
  }
@@ -467,22 +444,11 @@ function renderHistory(messages) {
467
444
  const hasContent = Array.isArray(m.content)
468
445
  ? m.content.some((b) => b.type === "text" && (b.text ?? "").trim())
469
446
  : extractText(m.content).trim();
470
- // 2.8.4: never silently drop a user-role message. If it has no visible
471
- // content (server-side stripper removed everything, or pi-agent wrote an
472
- // empty wrapper), render a lightweight placeholder so the feed reflects
473
- // the message sequence faithfully. Assistant messages still skip on empty.
474
- let renderTarget = m;
475
447
  if (!hasContent) {
476
- if (m.role !== "user") {
477
- continue;
478
- }
479
- renderTarget = {
480
- ...m,
481
- content: [{ type: "text", text: "[message content omitted]" }],
482
- };
448
+ continue;
483
449
  }
484
450
 
485
- const el = window.renderMessage(renderTarget);
451
+ const el = window.renderMessage(m);
486
452
  if (!el) {
487
453
  continue;
488
454
  }
@@ -551,16 +517,10 @@ async function loadMoreHistory() {
551
517
 
552
518
  // Build fragment of older messages (reuse same filtering as renderHistory)
553
519
  const frag = document.createDocumentFragment();
554
- for (const rawM of msgs) {
555
- if (!rawM || !rawM.role) {
520
+ for (const m of msgs) {
521
+ if (!m || !m.role) {
556
522
  continue;
557
523
  }
558
- // 2.8.6: same cleanup as renderHistory — strip plugin banners + envelopes
559
- // before filtering so pure-state pings divert, real content renders.
560
- const m =
561
- typeof window.cleanUserMessageForDisplay === "function"
562
- ? window.cleanUserMessageForDisplay(rawM)
563
- : rawM;
564
524
  if (m.role === "toolResult" || m.role === "tool") {
565
525
  const content = Array.isArray(m.content) ? m.content : [];
566
526
  const text = content
@@ -579,15 +539,8 @@ async function loadMoreHistory() {
579
539
  if (m.role === "system") {
580
540
  continue;
581
541
  }
582
- // Route symipulse messages to dedicated Symipulse Panel.
583
- // 2.8.4 (backported to lazy-load in 2.8.6): user-role messages always
584
- // render in the main feed — the symipulse classifier targets assistant
585
- // noise, not user input.
586
- if (
587
- typeof window.isSymipulseMessage === "function" &&
588
- m.role !== "user" &&
589
- window.isSymipulseMessage(m)
590
- ) {
542
+ // Route symipulse messages to dedicated Symipulse Panel
543
+ if (typeof window.isSymipulseMessage === "function" && window.isSymipulseMessage(m)) {
591
544
  const txt = Array.isArray(m.content)
592
545
  ? m.content
593
546
  .filter((b) => b.type === "text")
@@ -601,7 +554,7 @@ async function loadMoreHistory() {
601
554
  continue;
602
555
  }
603
556
 
604
- // Route verification user messages to Reasoning Panel
557
+ // Route plugin context & verification user messages to Reasoning Panel
605
558
  if (m.role === "user") {
606
559
  const txt = Array.isArray(m.content)
607
560
  ? m.content