@symerian/symi 3.5.26 → 3.5.28

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 (229) hide show
  1. package/dist/{agent-CoHzNs_e.js → agent-BsRYHa15.js} +18 -18
  2. package/dist/{agent-CB5yb-7V.js → agent-TRt_SsAW.js} +1 -1
  3. package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
  4. package/dist/{agents-DtRd3yEb.js → agents-7qMp2MWu.js} +2 -2
  5. package/dist/{agents.config-DA0ISLi7.js → agents.config-B7sNDvhz.js} +1 -1
  6. package/dist/{audit-CuwXq_EA.js → audit-C_3fAFeS.js} +20 -20
  7. package/dist/{auth-choice-5SLfZiQ7.js → auth-choice-C8lwYiEQ.js} +1 -1
  8. package/dist/{auth-choice-DKRHawfp.js → auth-choice-DcB72YWZ.js} +11 -11
  9. package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
  10. package/dist/{auth-token-fgnCQEHT.js → auth-token-Cr28IDKY.js} +3 -3
  11. package/dist/{banner-B_P_FrmA.js → banner-B5Hv4rlk.js} +1 -1
  12. package/dist/{browser-cli-BI81RlI8.js → browser-cli-D6xFqw9w.js} +9 -9
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +4 -4
  15. package/dist/bundled/session-memory/handler.js +4 -4
  16. package/dist/{call-xUpyZDH4.js → call-AZ9vNhST.js} +9 -9
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-vjcKi2yl.js → channel-options-DOzFci6h.js} +1 -1
  19. package/dist/{channel-options-8NGYZjfd.js → channel-options-ZkruGuHl.js} +1 -1
  20. package/dist/{channels-cli-Bx90nSmB.js → channels-cli-CEz9LILV.js} +7 -7
  21. package/dist/{channels-cli-CfBFa-VO.js → channels-cli-DMShhX0d.js} +57 -57
  22. package/dist/{chrome-38OnGyuN.js → chrome-DJChpTwP.js} +2 -2
  23. package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
  24. package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
  25. package/dist/{cli-qf0qK7oi.js → cli-Byovb_j5.js} +45 -45
  26. package/dist/{cli-DHG9iZJi.js → cli-MDHkESMC.js} +4 -4
  27. package/dist/{client-DiPa71im.js → client-DH75FlQF.js} +1 -1
  28. package/dist/{command-registry-DBbzZvh6.js → command-registry-Dzj-Uz5N.js} +10 -10
  29. package/dist/{commands-registry-CwXsDVuO.js → commands-registry-Ca5hh7nh.js} +1 -1
  30. package/dist/{completion-cli-Ddfrnilx.js → completion-cli-CsJ2f_fk.js} +12 -12
  31. package/dist/{completion-cli-DoQrkCAd.js → completion-cli-vAwL_uEK.js} +2 -2
  32. package/dist/{config-BngIfn5l.js → config-B4jkreCN.js} +2 -2
  33. package/dist/{config-cli-9a5qBcdo.js → config-cli-CqqCDyf0.js} +1 -1
  34. package/dist/{config-cli-JVGYyfYA.js → config-cli-cmea_Z-A.js} +4 -4
  35. package/dist/{config-guard-DStz4_V2.js → config-guard-BRm3RiOi.js} +6 -6
  36. package/dist/{config-validation-Dxj9LRzr.js → config-validation-Cdyg1BZB.js} +1 -1
  37. package/dist/{configure-ryB8EvyP.js → configure-BEPKQuJj.js} +2 -2
  38. package/dist/{configure-Bqz2Hvnf.js → configure-DymrZd1n.js} +14 -14
  39. package/dist/{consolidate-CO32_TEx.js → consolidate-DymnvvYm.js} +6 -6
  40. package/dist/{control-service-CUreKVeY.js → control-service-D8kKOts5.js} +4 -4
  41. package/dist/control-ui/css/style.css +274 -0
  42. package/dist/control-ui/index.html +14 -0
  43. package/dist/control-ui/js/symframe-bidirectional.js +210 -0
  44. package/dist/{control-ui-assets-B8B9z_Ll.js → control-ui-assets-CJQ97d4u.js} +1 -1
  45. package/dist/{cost-cli-D-ssjcRF.js → cost-cli-DWiVCOCx.js} +3 -3
  46. package/dist/{cron-cli-pZ_7Wzhj.js → cron-cli-VH_t2D1o.js} +7 -7
  47. package/dist/{daemon-cli-BDzcfcu_.js → daemon-cli-3PFXkheJ.js} +11 -11
  48. package/dist/{daemon-runtime-CKn0wmCk.js → daemon-runtime-DlQla_dA.js} +10 -10
  49. package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
  50. package/dist/{deliver-CWMFmMCv.js → deliver-lTZLIQqf.js} +2 -2
  51. package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
  52. package/dist/{deps-CdibsPMx.js → deps-Bf9dt2UO.js} +1 -1
  53. package/dist/{devices-cli-BIZbo_Pt.js → devices-cli-Bhi1rWnT.js} +6 -6
  54. package/dist/{diagnostics-CYkqD5lP.js → diagnostics-DlZODdRf.js} +5 -5
  55. package/dist/{directory-cli-giqTe8Yg.js → directory-cli-Bm5QYEo-.js} +3 -3
  56. package/dist/{dm-policy-shared-B61_yf6G.js → dm-policy-shared-CeFt0nch.js} +1 -1
  57. package/dist/{dns-cli-Dssz4RqF.js → dns-cli-CubLq4j9.js} +3 -3
  58. package/dist/{docs-cli-Ct1STieY.js → docs-cli-PS8m1er7.js} +1 -1
  59. package/dist/{doctor-completion-Bk55g4MP.js → doctor-completion--phnyAqO.js} +1 -1
  60. package/dist/{doctor-completion-eh7aImCx.js → doctor-completion-BY72G6-l.js} +2 -2
  61. package/dist/{doctor-config-flow-ljVnQJjo.js → doctor-config-flow-C52W1uUK.js} +9 -9
  62. package/dist/entry.js +1 -1
  63. package/dist/{exec-approvals-cli-B2UY9dZC.js → exec-approvals-cli-xTOKcyZh.js} +13 -13
  64. package/dist/extensionAPI.js +4 -4
  65. package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
  66. package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
  67. package/dist/{gateway-cli-BwPy7u0B.js → gateway-cli-BVpyqk_H.js} +98 -98
  68. package/dist/{gateway-cli-BGMVOW2G.js → gateway-cli-Bo80TSkq.js} +10 -10
  69. package/dist/{gateway-rpc-DmFOiGIJ.js → gateway-rpc-C6lKFbor.js} +1 -1
  70. package/dist/{glass-ui-ws-Z-W33_mF.js → glass-ui-ws-BK5qk7-_.js} +8 -8
  71. package/dist/{glass-ui-ws-CwOiILiY.js → glass-ui-ws-CrmnRYxe.js} +67 -67
  72. package/dist/{health-Bc1wmAO5.js → health-7UqIGG8U.js} +4 -4
  73. package/dist/{hooks-cli-DOjHV2fF.js → hooks-cli-CjklMDuK.js} +59 -59
  74. package/dist/{hooks-cli-Bn6x6Jnj.js → hooks-cli-CqmTdxT6.js} +5 -5
  75. package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
  76. package/dist/index.js +52 -52
  77. package/dist/{inspect-DzYUb_Dl.js → inspect-CGKsaVZ4.js} +4 -4
  78. package/dist/{install-safe-path-BrpA09f2.js → install-safe-path-B2JrFspY.js} +11 -11
  79. package/dist/{installs-bnDlOSq2.js → installs-D890uIIW.js} +10 -10
  80. package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
  81. package/dist/{lifecycle-core-cSR_xiIO.js → lifecycle-core-wFwnK_mD.js} +5 -5
  82. package/dist/llm-slug-generator.js +4 -4
  83. package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
  84. package/dist/{logs-cli-CYFlhj51.js → logs-cli-BTU7zrkU.js} +7 -7
  85. package/dist/{manager-DuWp0CTD.js → manager-CL767Sv9.js} +15 -15
  86. package/dist/{manager-BHddoe4T.js → manager-NDn8AFhr.js} +1 -1
  87. package/dist/{manager-DH00nlW8.js → manager-XfNxjaX5.js} +1 -1
  88. package/dist/{manager-F0-SHT1B.js → manager-fgUC_sHR.js} +1 -1
  89. package/dist/{memory-C02Znuee.js → memory-CTf9MdBg.js} +2 -2
  90. package/dist/{memory-fFc7GGPZ.js → memory-DOl2l2AS.js} +5 -5
  91. package/dist/{memory-cli-BnBKckEk.js → memory-cli-B9_Vfaow.js} +12 -12
  92. package/dist/{memory-cli-083UJtVJ.js → memory-cli-CA5PbH9y.js} +2 -2
  93. package/dist/{model-Cwbcw-km.js → model-MUMSB_7d.js} +1 -1
  94. package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
  95. package/dist/{model-catalog-BWurV7gl.js → model-catalog-IWi6-nY9.js} +3 -3
  96. package/dist/{model-picker-Dpkr5xBW.js → model-picker-Cf6UgQEh.js} +5 -5
  97. package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
  98. package/dist/{models-Bh_frCup.js → models-DgiBOeVH.js} +2 -2
  99. package/dist/{models-cli-DVdb_TUS.js → models-cli-B7gTrlgn.js} +55 -55
  100. package/dist/{models-cli-BhBu4Dwm.js → models-cli-BHN3bt0f.js} +6 -6
  101. package/dist/{models-config-DlXge3Sd.js → models-config-B5Xxy-c-.js} +8 -8
  102. package/dist/{node-cli-B0ePfMUr.js → node-cli-CWbA6YCw.js} +27 -27
  103. package/dist/{node-service-Cc18m-uk.js → node-service-BH08wY5j.js} +1 -1
  104. package/dist/{nodes-cli-L0gy-26E.js → nodes-cli-BfHcv62i.js} +10 -10
  105. package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
  106. package/dist/{npm-registry-spec-C-muP97-.js → npm-registry-spec-DTqn-NXZ.js} +9 -9
  107. package/dist/{onboard-D6GZ2t-L.js → onboard-BNdKimpG.js} +15 -15
  108. package/dist/{onboard-BSxqEQfo.js → onboard-DGp6mHJD.js} +1 -1
  109. package/dist/{onboard-channels-BkR3MKMp.js → onboard-channels-DSBWRjSp.js} +1 -1
  110. package/dist/{onboard-channels-DVS9vciR.js → onboard-channels-Dhb-28-_.js} +4 -4
  111. package/dist/{onboard-custom-DnDrvxSg.js → onboard-custom-BcRYreNG.js} +3 -3
  112. package/dist/{onboard-helpers-CJlheOSJ.js → onboard-helpers-7IGQ8nAM.js} +8 -8
  113. package/dist/{onboard-hooks-D9jHwImb.js → onboard-hooks-2SCajRKc.js} +1 -1
  114. package/dist/{onboard-remote-CVZ8l58S.js → onboard-remote-Dr75eqOQ.js} +1 -1
  115. package/dist/{onboard-skills-MgcaLiE6.js → onboard-skills-uO7HZwjc.js} +3 -3
  116. package/dist/{onboarding-D-mzwQ_f.js → onboarding-BG23DuS1.js} +12 -12
  117. package/dist/{onboarding-CrCGoZ4H.js → onboarding-MPSU9pXd.js} +3 -3
  118. package/dist/{onboarding.finalize-BYzduVFA.js → onboarding.finalize-B-mxzJ08.js} +4 -4
  119. package/dist/{onboarding.finalize-DBFL76p0.js → onboarding.finalize-Cv20GyNt.js} +31 -31
  120. package/dist/{onboarding.gateway-config-BCDgsFl8.js → onboarding.gateway-config-CkP7K4EN.js} +8 -8
  121. package/dist/{openai-model-default-De-UAjwg.js → openai-model-default-BkuuK-Di.js} +2 -2
  122. package/dist/{pairing-cli-CBMMCNnx.js → pairing-cli-Rsae0KnN.js} +5 -5
  123. package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
  124. package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
  125. package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
  126. package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
  127. package/dist/{pi-embedded-DGnpyHm-.js → pi-embedded-V-5MAZNb.js} +11 -10
  128. package/dist/{pi-embedded-helpers-j1JrlsI0.js → pi-embedded-helpers-D-OFjhdI.js} +6 -6
  129. package/dist/{pi-tools.policy-CvAqjEH9.js → pi-tools.policy-H2t-Xkfc.js} +3 -3
  130. package/dist/{plugin-auto-enable-BXSJTxI7.js → plugin-auto-enable-DJBhDIMq.js} +1 -1
  131. package/dist/{plugin-registry-KP94aK4z.js → plugin-registry-CBV_Y6Dj.js} +3 -3
  132. package/dist/{plugin-registry-B74FBx4U.js → plugin-registry-c3Skr0q9.js} +1 -1
  133. package/dist/{plugins-cli-Cmf3kRf5.js → plugins-cli-8Jo1X8SU.js} +5 -5
  134. package/dist/{plugins-cli-B4ljapU5.js → plugins-cli-Dl7-FSCq.js} +54 -54
  135. package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
  136. package/dist/{ports-Bi3V_3n9.js → ports-r7LBic2V.js} +1 -1
  137. package/dist/{program-CGuYYumL.js → program-D-LYHEvk.js} +10 -10
  138. package/dist/{program-context-BzqGUxMS.js → program-context-BpeLcVUB.js} +40 -40
  139. package/dist/{prompt-select-styled-BVkRteee.js → prompt-select-styled-Ceih9wkY.js} +38 -38
  140. package/dist/{prompt-select-styled-b752FPLG.js → prompt-select-styled-ZWxB2Odf.js} +4 -4
  141. package/dist/{provider-auth-helpers-C6GjAO-s.js → provider-auth-helpers-BCejcf5o.js} +6 -6
  142. package/dist/{provider-auth-helpers-BKveYcEH.js → provider-auth-helpers-BdvW7eau.js} +1 -1
  143. package/dist/{push-apns-HNg0rTkI.js → push-apns-D4iLNyBo.js} +1 -1
  144. package/dist/{push-apns-CbbWM63o.js → push-apns-HQd5hCpM.js} +4 -4
  145. package/dist/{pw-ai-CP5pn3eU.js → pw-ai-BiBvIJzd.js} +7 -7
  146. package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
  147. package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
  148. package/dist/{qmd-manager-Dxyue7B1.js → qmd-manager-C8-M4Pru.js} +19 -19
  149. package/dist/{qr-cli-DHw6muwK.js → qr-cli-1sCVaPcF.js} +3 -3
  150. package/dist/{register.agent-DbPYGG3u.js → register.agent-DoUbqZIu.js} +9 -9
  151. package/dist/{register.agent-DhS2lmWo.js → register.agent-zwVEiCHs.js} +67 -67
  152. package/dist/{register.configure-ChjzXxh8.js → register.configure-CSe8Rlda.js} +70 -70
  153. package/dist/{register.configure-B0M15y31.js → register.configure-jBKvvOnk.js} +8 -8
  154. package/dist/{register.maintenance-bzLNOqch.js → register.maintenance-BdikNAV1.js} +9 -9
  155. package/dist/{register.maintenance-frHWf6Xs.js → register.maintenance-royLmVA2.js} +67 -67
  156. package/dist/{register.message-Bfukmte_.js → register.message-C1H5Vcnb.js} +5 -5
  157. package/dist/{register.message-DWB4eVII.js → register.message-C_0uLdYn.js} +47 -47
  158. package/dist/{register.onboard-4P8ud4Sw.js → register.onboard-DTLtb0SN.js} +25 -25
  159. package/dist/{register.onboard-CDsSVoFI.js → register.onboard-DnMRUtnl.js} +2 -2
  160. package/dist/{register.setup-Bp8rYeRx.js → register.setup-B9sjRH7l.js} +2 -2
  161. package/dist/{register.setup-D0I7sEGc.js → register.setup-KA8Cs3HJ.js} +28 -28
  162. package/dist/{register.status-health-sessions-69Gigo_H.js → register.status-health-sessions-B_jcsH3c.js} +41 -41
  163. package/dist/{register.status-health-sessions-DE2db_Uo.js → register.status-health-sessions-BwiKHLEj.js} +3 -3
  164. package/dist/{register.subclis-QXO75pUm.js → register.subclis-B_V8vNI0.js} +9 -9
  165. package/dist/{replies-B_3j7R_Q.js → replies-CbXXjn9X.js} +1 -1
  166. package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
  167. package/dist/{resolve-route-Du0VftVs.js → resolve-route-C1IIA6kH.js} +1 -1
  168. package/dist/{routes-BwTUoI5h.js → routes-ivqbutvM.js} +10 -10
  169. package/dist/{rpc-DTqyJZKO.js → rpc-B1czfnym.js} +1 -1
  170. package/dist/{run-main-MD8Z8ydF.js → run-main-DhgQtxI0.js} +17 -17
  171. package/dist/{sandbox-CZGTCone.js → sandbox-BkznAPKO.js} +18 -18
  172. package/dist/{sandbox-cli-DEtGT_4y.js → sandbox-cli-Bb9cBtBH.js} +13 -13
  173. package/dist/{security-cli-iJpHPABF.js → security-cli-l59T6lAJ.js} +29 -29
  174. package/dist/{send-CxjvucMO.js → send-B0jHSNMF.js} +7 -7
  175. package/dist/{server-context-DXdk410X.js → server-context-ChcbJgNo.js} +5 -5
  176. package/dist/{server-methods-DHWxmfIu.js → server-methods-6-10RyMD.js} +60 -60
  177. package/dist/{server-methods-DTkVQH8Q.js → server-methods-Bdz-OwQ4.js} +7 -7
  178. package/dist/{server-node-events-C0smPxrR.js → server-node-events-B3Yey3h9.js} +6 -6
  179. package/dist/{server-node-events-DHSiqnRS.js → server-node-events-C4giIb7q.js} +48 -48
  180. package/dist/{service-CRZoXO_n.js → service-e6MzlLCd.js} +15 -15
  181. package/dist/{session-dirs-a00Ad2SO.js → session-dirs-C9E2G0yZ.js} +2 -2
  182. package/dist/{session-utils-CJhcRx3E.js → session-utils-Cs1jlD-q.js} +14 -14
  183. package/dist/{sessions-BCc3THTm.js → sessions-Dxf5Kjig.js} +10 -10
  184. package/dist/{shared-C39SiDDJ.js → shared-1xPo9ygd.js} +1 -1
  185. package/dist/{shared-Dh-O8nRd.js → shared-COtpr3Ad.js} +3 -3
  186. package/dist/{skill-commands-DWvXs3lz.js → skill-commands-DDGGlq68.js} +4 -4
  187. package/dist/{skill-scanner-CIlHPszT.js → skill-scanner-BCgVcIwi.js} +5 -5
  188. package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
  189. package/dist/{skills-cli-CD9s3cgm.js → skills-cli-B-7TY-vS.js} +7 -7
  190. package/dist/{skills-install-BTa9IuQ6.js → skills-install-Dwzsjoc8.js} +3 -3
  191. package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
  192. package/dist/{skills-status-DLnCHUZ2.js → skills-status-BKX1PjCc.js} +1 -1
  193. package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
  194. package/dist/{status-DUbs9rVu.js → status-BRUIJsUm.js} +3 -3
  195. package/dist/{status-OTYFx93W.js → status-B_CQpjQ9.js} +1 -1
  196. package/dist/{status-ISN-LC9F.js → status-CCAO6ZHm.js} +23 -23
  197. package/dist/{status-BEZotN01.js → status-D_0593yR.js} +1 -1
  198. package/dist/{status.update-CKfyV6zw.js → status.update-DGJi0OLl.js} +3 -3
  199. package/dist/{subagent-registry-CVhLz4p3.js → subagent-registry-D8BIWG9Q.js} +4 -3
  200. package/dist/{symframe-cli-CPE5nxuJ.js → symframe-cli-BVmRLRid.js} +9 -9
  201. package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
  202. package/dist/{synthesis-C1mZnGqD.js → synthesis-BfVWACNx.js} +4 -4
  203. package/dist/{synthesis-DkHCk0El.js → synthesis-CV94EuT_.js} +45 -45
  204. package/dist/{synthesis-CDPVZw2P.js → synthesis-D6pnRAxI.js} +4 -4
  205. package/dist/{synthesis-RhT991Ni.js → synthesis-qvteT0Ti.js} +4 -4
  206. package/dist/{system-cli-nWJwLo85.js → system-cli-Du1GEeoO.js} +7 -7
  207. package/dist/{systemd-CsoVnIbM.js → systemd-CUIM0n5P.js} +5 -5
  208. package/dist/{systemd-hints-QISwLlFU.js → systemd-hints-CsrzMCTD.js} +6 -6
  209. package/dist/{systemd-linger-BnhuRdbt.js → systemd-linger-BzYk7A6M.js} +1 -1
  210. package/dist/{tui-ZL7IGA7l.js → tui-B2MY6Mj2.js} +7 -7
  211. package/dist/{tui-cli-CEpMtmhP.js → tui-cli-BMEnosW9.js} +19 -19
  212. package/dist/{unified-runner-CsadjpQa.js → unified-runner-CtSJoaGS.js} +102 -101
  213. package/dist/{unified-runner-Cppo8O8z.js → unified-runner-H3Qh_NZO.js} +11 -10
  214. package/dist/{update-check-u6Jgr1cz.js → update-check-BCL_K7kx.js} +5 -5
  215. package/dist/{update-cli-48-Nah-Y.js → update-cli-BrryYmFA.js} +77 -77
  216. package/dist/{update-cli-D9g9s187.js → update-cli-CUos9qgT.js} +9 -9
  217. package/dist/{update-runner-G2YgEATs.js → update-runner-BLV8SI96.js} +15 -15
  218. package/dist/{update-Cb0Fmxic.js → update-yYduAjKd.js} +3 -3
  219. package/dist/{webhooks-cli-DjUITimx.js → webhooks-cli-D5k-Y2A8.js} +4 -4
  220. package/dist/{with-timeout-CLrF-Yr_.js → with-timeout-DPR4A2dx.js} +1 -1
  221. package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
  222. package/dist/{wsl-DTi7eX-V.js → wsl-CglTdtlb.js} +2 -2
  223. package/extensions/memory-core/package.json +1 -1
  224. package/extensions/msteams/CHANGELOG.md +12 -0
  225. package/extensions/msteams/package.json +1 -1
  226. package/extensions/open-prose/package.json +1 -1
  227. package/extensions/outlook/package.json +1 -1
  228. package/extensions/slack/package.json +1 -1
  229. package/package.json +1 -1
@@ -0,0 +1,210 @@
1
+ // ── Symframe Bidirectional ──────────────────────────────────────────
2
+ // Stage E of the Dynamic Glass Panel arc — see ~/Documents/dynamic-glass-panel.md §5 Stage E.
3
+ //
4
+ // Two user-facing features that bridge the chat column and the symframe:
5
+ //
6
+ // 1. Mention-binding (agent → user direction)
7
+ // When the agent writes `[panel:<card-id>]` in a chat message, this
8
+ // module rewrites the literal text into a clickable span showing the
9
+ // card's title (or id if no title) AND auto-pulses (dwell) the
10
+ // referenced card. Clicking the span re-pulses. Fresh messages
11
+ // auto-dwell once on first render; history-loaded messages get
12
+ // clickable spans but no auto-dwell (so a session with 50 referenced
13
+ // messages doesn't dwell 50 times on reload).
14
+ //
15
+ // 2. "What are you considering?" (user → agent introspection)
16
+ // Small button in the symframe header. On click, dwells every
17
+ // weighing card AND adds .considering-weighing to #symframe which
18
+ // dims non-weighing cards for ~5s. Direct visual answer to "what
19
+ // options are the agent holding open right now?"
20
+ //
21
+ // Implementation notes:
22
+ // - Mention-scanning runs on a 500ms interval over all unscanned
23
+ // assistant bubbles; once processed, a bubble gets the
24
+ // .mentions-scanned class and is skipped. Streaming bubbles
25
+ // (.stream-bubble without .done) are skipped until they finalize.
26
+ // - The pageReadyAt + 1500ms grace window suppresses the initial
27
+ // auto-dwell flood from history reload.
28
+ // - The considering button reads window.symframe.list() to find
29
+ // weighing cards. Sticky cards (subagents/scheduling panels —
30
+ // mostly gone post-Stage-C, but defensive) are excluded.
31
+ // ─────────────────────────────────────────────────────────────────────
32
+
33
+ "use strict";
34
+
35
+ (function () {
36
+ const PANEL_REF_PATTERN = /\[panel:([a-zA-Z0-9_-]+)\]/g;
37
+ const SCAN_INTERVAL_MS = 500;
38
+ const PAGE_READY_AT = Date.now() + 1500;
39
+ const CONSIDERING_DURATION_MS = 5000;
40
+
41
+ // ── Mention-binding ─────────────────────────────────────────────
42
+ function buildPanelRefSpan(id) {
43
+ const span = document.createElement("span");
44
+ span.className = "panel-ref";
45
+ span.dataset.cardId = id;
46
+ const cards = window.symframe?.list?.() || [];
47
+ const card = cards.find((c) => c.id === id);
48
+ const hasCard = !!card;
49
+ span.textContent = card?.title || id;
50
+ span.title = hasCard
51
+ ? `Click to pulse "${card.title || id}" in the panel`
52
+ : `Card "${id}" — not currently in the panel`;
53
+ if (!hasCard) {
54
+ span.classList.add("panel-ref-orphan");
55
+ }
56
+ span.addEventListener("click", (e) => {
57
+ e.preventDefault();
58
+ const result = window.symframe?.dwell?.(id);
59
+ if (!result) {
60
+ span.classList.add("panel-ref-miss");
61
+ setTimeout(() => span.classList.remove("panel-ref-miss"), 1000);
62
+ }
63
+ });
64
+ return span;
65
+ }
66
+
67
+ function walkTextNodes(node, callback) {
68
+ if (!node) {
69
+ return;
70
+ }
71
+ if (node.nodeType === Node.TEXT_NODE) {
72
+ callback(node);
73
+ return;
74
+ }
75
+ if (node.nodeType !== Node.ELEMENT_NODE) {
76
+ return;
77
+ }
78
+ const el = node;
79
+ // Skip elements we've already processed, code blocks, and links.
80
+ if (el.classList?.contains("panel-ref")) {
81
+ return;
82
+ }
83
+ if (el.tagName === "CODE" || el.tagName === "PRE" || el.tagName === "A") {
84
+ return;
85
+ }
86
+ for (const child of Array.from(el.childNodes)) {
87
+ walkTextNodes(child, callback);
88
+ }
89
+ }
90
+
91
+ function processMentionsIn(bubble) {
92
+ const matchedIds = [];
93
+ walkTextNodes(bubble, (textNode) => {
94
+ const text = textNode.textContent;
95
+ if (!text) {
96
+ return;
97
+ }
98
+ PANEL_REF_PATTERN.lastIndex = 0;
99
+ if (!PANEL_REF_PATTERN.test(text)) {
100
+ return;
101
+ }
102
+ PANEL_REF_PATTERN.lastIndex = 0;
103
+ const fragment = document.createDocumentFragment();
104
+ let lastIndex = 0;
105
+ let match;
106
+ while ((match = PANEL_REF_PATTERN.exec(text)) !== null) {
107
+ const literal = match[0];
108
+ const id = match[1];
109
+ if (match.index > lastIndex) {
110
+ fragment.appendChild(document.createTextNode(text.slice(lastIndex, match.index)));
111
+ }
112
+ fragment.appendChild(buildPanelRefSpan(id));
113
+ matchedIds.push(id);
114
+ lastIndex = match.index + literal.length;
115
+ }
116
+ if (lastIndex < text.length) {
117
+ fragment.appendChild(document.createTextNode(text.slice(lastIndex)));
118
+ }
119
+ textNode.replaceWith(fragment);
120
+ });
121
+
122
+ // Auto-dwell on fresh mentions only — suppress during the initial
123
+ // history-reload window so we don't flood with pulses.
124
+ if (matchedIds.length > 0 && Date.now() >= PAGE_READY_AT) {
125
+ for (const id of matchedIds) {
126
+ try {
127
+ window.symframe?.dwell?.(id);
128
+ } catch (err) {
129
+ console.warn("[symframe-bidirectional] dwell threw:", err);
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ function scanForMentions() {
136
+ const bubbles = document.querySelectorAll(".message.symi-msg .bubble:not(.mentions-scanned)");
137
+ for (const bubble of bubbles) {
138
+ // Skip still-streaming bubbles (delta still incoming)
139
+ if (bubble.classList.contains("stream-bubble") && !bubble.classList.contains("done")) {
140
+ continue;
141
+ }
142
+ processMentionsIn(bubble);
143
+ bubble.classList.add("mentions-scanned");
144
+ }
145
+ }
146
+
147
+ // ── "What are you considering?" gesture ──────────────────────────
148
+ let considerTimer = null;
149
+
150
+ function showConsidering() {
151
+ const symframeRoot = document.getElementById("symframe");
152
+ if (!symframeRoot) {
153
+ return;
154
+ }
155
+ const list = window.symframe?.list?.() || [];
156
+ const weighing = list.filter((c) => c.intent === "weighing" && !c.sticky);
157
+ if (weighing.length === 0) {
158
+ // Brief flash on the considering button itself to signal "no
159
+ // weighing cards right now"
160
+ const btn = document.getElementById("considering-btn");
161
+ if (btn) {
162
+ btn.classList.add("considering-empty");
163
+ setTimeout(() => btn.classList.remove("considering-empty"), 800);
164
+ }
165
+ return;
166
+ }
167
+ // Add the dimming class to non-weighing cards
168
+ symframeRoot.classList.add("considering-weighing");
169
+ // Dwell each weighing card (cyan halo pulses)
170
+ for (const c of weighing) {
171
+ try {
172
+ window.symframe?.dwell?.(c.id);
173
+ } catch (err) {
174
+ console.warn("[symframe-bidirectional] dwell threw:", err);
175
+ }
176
+ }
177
+ // Clear after the duration
178
+ if (considerTimer) {
179
+ clearTimeout(considerTimer);
180
+ }
181
+ considerTimer = setTimeout(() => {
182
+ symframeRoot.classList.remove("considering-weighing");
183
+ considerTimer = null;
184
+ }, CONSIDERING_DURATION_MS);
185
+ }
186
+
187
+ function wireConsideringButton() {
188
+ const btn = document.getElementById("considering-btn");
189
+ if (!btn) {
190
+ return;
191
+ }
192
+ btn.addEventListener("click", (e) => {
193
+ e.preventDefault();
194
+ showConsidering();
195
+ });
196
+ }
197
+
198
+ // ── Init ────────────────────────────────────────────────────────
199
+ function init() {
200
+ setInterval(scanForMentions, SCAN_INTERVAL_MS);
201
+ scanForMentions();
202
+ wireConsideringButton();
203
+ }
204
+
205
+ if (document.readyState === "loading") {
206
+ document.addEventListener("DOMContentLoaded", init);
207
+ } else {
208
+ init();
209
+ }
210
+ })();
@@ -1,5 +1,5 @@
1
1
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
2
- import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.js";
2
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import path from "node:path";
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import "./subsystem-CHbO_DkH.js";
5
5
  import "./exec-DuYbft0z.js";
6
- import "./agent-scope-Bnsyyeci.js";
7
- import "./model-selection-CCTzD29o.js";
8
- import { i as loadConfig } from "./config-BngIfn5l.js";
6
+ import "./agent-scope-DOrZjOnW.js";
7
+ import "./model-selection-7wdmO-Iw.js";
8
+ import { i as loadConfig } from "./config-B4jkreCN.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
@@ -4,24 +4,24 @@ import "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import { u as sanitizeAgentId } from "./session-key-DUSb7CCb.js";
6
6
  import "./exec-DuYbft0z.js";
7
- import "./agent-scope-Bnsyyeci.js";
8
- import "./model-selection-CCTzD29o.js";
9
- import "./config-BngIfn5l.js";
7
+ import "./agent-scope-DOrZjOnW.js";
8
+ import "./model-selection-7wdmO-Iw.js";
9
+ import "./config-B4jkreCN.js";
10
10
  import "./boolean-CbZoNRMn.js";
11
11
  import "./env-BRnPI9sO.js";
12
12
  import "./shell-env-Dc3iU7HK.js";
13
13
  import "./manifest-registry-D1MLZEjS.js";
14
14
  import "./message-channel-DgjXWzf-.js";
15
15
  import { n as listChannelPlugins } from "./plugins-CF5skkHh.js";
16
- import "./client-DiPa71im.js";
17
- import "./call-xUpyZDH4.js";
18
- import "./pairing-token-B703A1U3.js";
16
+ import "./client-DH75FlQF.js";
17
+ import "./call-AZ9vNhST.js";
18
+ import "./pairing-token-Dcy37-4s.js";
19
19
  import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
20
20
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DQs772BN.js";
21
21
  import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
22
22
  import "./progress-swt2y17x.js";
23
23
  import { n as parsePositiveIntOrUndefined } from "./helpers-B_p8ul9t.js";
24
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DmFOiGIJ.js";
24
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-C6lKFbor.js";
25
25
 
26
26
  //#region src/cli/cron-cli/shared.ts
27
27
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -4,26 +4,26 @@ import { _ as resolveStateDir, d as resolveIsNixMode, o as resolveConfigPath, u
4
4
  import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
5
5
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
6
6
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
7
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-BngIfn5l.js";
7
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-B4jkreCN.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-XKACsamF.js";
9
9
  import { u as resolveGatewayBindHost } from "./ws-C7Ktmt-R.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-Bkx-QuRN.js";
11
- import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-CB_Iu83U.js";
11
+ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-gxLM5ahL.js";
12
12
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
13
- import { n as callGateway } from "./call-xUpyZDH4.js";
13
+ import { n as callGateway } from "./call-AZ9vNhST.js";
14
14
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
15
15
  import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
16
16
  import { n as withProgress } from "./progress-swt2y17x.js";
17
17
  import { n as inheritOptionFromParent } from "./command-options-DDDwkB9t.js";
18
- import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CKn0wmCk.js";
19
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CJlheOSJ.js";
20
- import { n as isWSLEnv } from "./wsl-DTi7eX-V.js";
21
- import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-CRZoXO_n.js";
22
- import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-cSR_xiIO.js";
23
- import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-QISwLlFU.js";
18
+ import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DlQla_dA.js";
19
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-7IGQ8nAM.js";
20
+ import { n as isWSLEnv } from "./wsl-CglTdtlb.js";
21
+ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-e6MzlLCd.js";
22
+ import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-wFwnK_mD.js";
23
+ import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-CsrzMCTD.js";
24
24
  import { t as parsePort } from "./parse-port-CMRD6fhd.js";
25
- import { t as readLastGatewayErrorLine } from "./diagnostics-CYkqD5lP.js";
26
- import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-DzYUb_Dl.js";
25
+ import { t as readLastGatewayErrorLine } from "./diagnostics-DlZODdRf.js";
26
+ import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CGKsaVZ4.js";
27
27
 
28
28
  //#region src/cli/daemon-cli/install.ts
29
29
  async function runDaemonInstall(opts) {
@@ -1,11 +1,11 @@
1
1
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
2
- import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-BngIfn5l.js";
2
+ import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-B4jkreCN.js";
3
3
  import { a as NODE_SERVICE_MARKER, c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, g as resolveNodeWindowsTaskName, h as resolveNodeSystemdServiceName, i as NODE_SERVICE_KIND, m as resolveNodeLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, o as NODE_WINDOWS_TASK_SCRIPT_NAME, r as GATEWAY_SERVICE_MARKER } from "./constants-BLIhifCJ.js";
4
4
  import { n as isSupportedNodeVersion } from "./runtime-guard-CWA00ZXa.js";
5
5
  import path from "node:path";
6
6
  import os from "node:os";
7
7
  import { promisify } from "node:util";
8
- import fsPromises from "node:fs/promises";
8
+ import fs from "node:fs/promises";
9
9
  import { execFile } from "node:child_process";
10
10
 
11
11
  //#region src/daemon/program-args.ts
@@ -23,23 +23,23 @@ async function resolveCliEntrypointPathForService() {
23
23
  const normalized = path.resolve(argv1);
24
24
  const resolvedPath = await resolveRealpathSafe(normalized);
25
25
  if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(resolvedPath)) {
26
- await fsPromises.access(resolvedPath);
26
+ await fs.access(resolvedPath);
27
27
  if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(normalized) && normalized !== resolvedPath) try {
28
- await fsPromises.access(normalized);
28
+ await fs.access(normalized);
29
29
  return normalized;
30
30
  } catch {}
31
31
  return resolvedPath;
32
32
  }
33
33
  const distCandidates = buildDistCandidates(resolvedPath, normalized);
34
34
  for (const candidate of distCandidates) try {
35
- await fsPromises.access(candidate);
35
+ await fs.access(candidate);
36
36
  return candidate;
37
37
  } catch {}
38
38
  throw new Error(`Cannot find built CLI at ${distCandidates.join(" or ")}. Run "pnpm build" first, or use dev mode.`);
39
39
  }
40
40
  async function resolveRealpathSafe(inputPath) {
41
41
  try {
42
- return await fsPromises.realpath(inputPath);
42
+ return await fs.realpath(inputPath);
43
43
  } catch {
44
44
  return inputPath;
45
45
  }
@@ -99,7 +99,7 @@ async function resolveBinaryPath(binary) {
99
99
  try {
100
100
  const resolved = execFileSync(cmd, [binary], { encoding: "utf8" }).trim().split(/\r?\n/)[0]?.trim();
101
101
  if (!resolved) throw new Error("empty");
102
- await fsPromises.access(resolved);
102
+ await fs.access(resolved);
103
103
  return resolved;
104
104
  } catch {
105
105
  if (binary === "bun") throw new Error("Bun not found in PATH. Install bun: https://bun.sh");
@@ -118,7 +118,7 @@ async function resolveCliProgramArguments(params) {
118
118
  if (params.dev) {
119
119
  const repoRoot = resolveRepoRootForDev();
120
120
  const devCliPath = path.join(repoRoot, "src", "index.ts");
121
- await fsPromises.access(devCliPath);
121
+ await fs.access(devCliPath);
122
122
  return {
123
123
  programArguments: [
124
124
  isBunRuntime(execPath) ? execPath : await resolveBunPath(),
@@ -146,7 +146,7 @@ async function resolveCliProgramArguments(params) {
146
146
  }
147
147
  const repoRoot = resolveRepoRootForDev();
148
148
  const devCliPath = path.join(repoRoot, "src", "index.ts");
149
- await fsPromises.access(devCliPath);
149
+ await fs.access(devCliPath);
150
150
  if (isBunRuntime(execPath)) return {
151
151
  programArguments: [
152
152
  execPath,
@@ -259,7 +259,7 @@ function isSystemNodePath(nodePath, env = process.env, platform = process.platfo
259
259
  async function resolveSystemNodePath(env = process.env, platform = process.platform) {
260
260
  const candidates = buildSystemNodeCandidates(env, platform);
261
261
  for (const candidate of candidates) try {
262
- await fsPromises.access(candidate);
262
+ await fs.access(candidate);
263
263
  return candidate;
264
264
  } catch {}
265
265
  return null;
@@ -9,7 +9,7 @@ import { t as formatCliCommand } from "./command-format-BrrHNE8r.js";
9
9
  import { n as isPidAlive, t as resolveProcessScopedMap } from "./process-scoped-map-B-dHc_9I.js";
10
10
  import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-DNhyFMRW.js";
11
11
  import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CmQwGAuL.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-OTJg3QKn.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Dm4gX4Tl.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C89ppfp9.js";
15
15
  import { b as SafeOpenError, d as extensionForMime, i as buildImageResizeSideGrid, l as resizeToJpeg, o as getImageMetadata, r as IMAGE_REDUCE_QUALITY_STEPS, t as getAgentScopedMediaLocalRoots, u as detectMime, x as openFileWithinRoot } from "./local-roots-C7fBKoOI.js";
@@ -939,7 +939,7 @@ function isModuleNotFoundError(err) {
939
939
  }
940
940
  async function loadPwAiModule(mode) {
941
941
  try {
942
- return await import("./pw-ai-DLsdzdgc.js");
942
+ return await import("./pw-ai-DY_6l11g.js");
943
943
  } catch (err) {
944
944
  if (mode === "soft") return null;
945
945
  if (isModuleNotFoundError(err)) return null;
@@ -3536,11 +3536,11 @@ function createProfileContext(opts, profile) {
3536
3536
  const userDataDir = resolveSymiUserDataDir(profile.name);
3537
3537
  const profileState = getProfileState();
3538
3538
  if (await isHttpReachable(300) && !profileState.running) try {
3539
- await (await import("./pw-ai-DLsdzdgc.js")).closePlaywrightBrowserConnection();
3539
+ await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
3540
3540
  } catch {}
3541
3541
  if (profileState.running) await stopRunningBrowser();
3542
3542
  try {
3543
- await (await import("./pw-ai-DLsdzdgc.js")).closePlaywrightBrowserConnection();
3543
+ await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
3544
3544
  } catch {}
3545
3545
  if (!fs.existsSync(userDataDir)) return {
3546
3546
  moved: false,
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { H as createInternalHookEvent, W as triggerInternalHook, d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
4
- import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BCc3THTm.js";
4
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-Dxf5Kjig.js";
5
5
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
6
6
  import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-0yh2UnJq.js";
7
7
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BxfKjCUx.js";
8
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-2Jb79HZ8.js";
8
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-CgDCgCuM.js";
9
9
  import { i as failDelivery, r as enqueueDelivery, t as ackDelivery } from "./delivery-queue-OAc7hsIs.js";
10
10
 
11
11
  //#region src/plugins/hooks.ts
@@ -9,7 +9,7 @@ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CZ_mYw
9
9
  import { _ as listDeliverableMessageChannels, c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, v as normalizeMessageChannel } from "./chunk-CAZujdOi.js";
10
10
  import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-BCSnhba8.js";
11
11
  import { t as parseBooleanValue } from "./boolean-BW6OTjPi.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-3jl2ulOE.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DNssqQJs.js";
13
13
  import { t as formatCliCommand } from "./command-format-DPd9RN2g.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DO7WNsVJ.js";
15
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BEU7IHU6.js";
@@ -1331,7 +1331,7 @@ function isModuleNotFoundError(err) {
1331
1331
  }
1332
1332
  async function loadPwAiModule(mode) {
1333
1333
  try {
1334
- return await import("./pw-ai-DOAsQ5NX.js");
1334
+ return await import("./pw-ai-v__CyAlM.js");
1335
1335
  } catch (err) {
1336
1336
  if (mode === "soft") return null;
1337
1337
  if (isModuleNotFoundError(err)) return null;
@@ -3928,11 +3928,11 @@ function createProfileContext(opts, profile) {
3928
3928
  const userDataDir = resolveSymiUserDataDir(profile.name);
3929
3929
  const profileState = getProfileState();
3930
3930
  if (await isHttpReachable(300) && !profileState.running) try {
3931
- await (await import("./pw-ai-DOAsQ5NX.js")).closePlaywrightBrowserConnection();
3931
+ await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
3932
3932
  } catch {}
3933
3933
  if (profileState.running) await stopRunningBrowser();
3934
3934
  try {
3935
- await (await import("./pw-ai-DOAsQ5NX.js")).closePlaywrightBrowserConnection();
3935
+ await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
3936
3936
  } catch {}
3937
3937
  if (!fs.existsSync(userDataDir)) return {
3938
3938
  moved: false,
@@ -1,7 +1,7 @@
1
1
  //#region src/cli/deps.ts
2
2
  function createDefaultDeps() {
3
3
  return { sendMessageSlack: async (...args) => {
4
- const { sendMessageSlack } = await import("./send-CxjvucMO.js").then((n) => n.n);
4
+ const { sendMessageSlack } = await import("./send-B0jHSNMF.js").then((n) => n.n);
5
5
  return await sendMessageSlack(...args);
6
6
  } };
7
7
  }
@@ -3,18 +3,18 @@ import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import "./exec-DuYbft0z.js";
6
- import "./agent-scope-Bnsyyeci.js";
7
- import "./model-selection-CCTzD29o.js";
8
- import "./config-BngIfn5l.js";
6
+ import "./agent-scope-DOrZjOnW.js";
7
+ import "./model-selection-7wdmO-Iw.js";
8
+ import "./config-B4jkreCN.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
12
12
  import "./manifest-registry-D1MLZEjS.js";
13
13
  import { r as isLoopbackHost } from "./ws-C7Ktmt-R.js";
14
14
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
15
- import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-DiPa71im.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-xUpyZDH4.js";
17
- import "./pairing-token-B703A1U3.js";
15
+ import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-DH75FlQF.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-AZ9vNhST.js";
17
+ import "./pairing-token-Dcy37-4s.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
19
19
  import { n as withProgress } from "./progress-swt2y17x.js";
20
20
  import { t as renderTable } from "./table-0A3xKJVC.js";
@@ -1,5 +1,5 @@
1
- import { s as resolveGatewayLogPaths } from "./service-CRZoXO_n.js";
2
- import fsPromises from "node:fs/promises";
1
+ import { s as resolveGatewayLogPaths } from "./service-e6MzlLCd.js";
2
+ import fs from "node:fs/promises";
3
3
 
4
4
  //#region src/daemon/diagnostics.ts
5
5
  const GATEWAY_LOG_ERROR_PATTERNS = [
@@ -11,7 +11,7 @@ const GATEWAY_LOG_ERROR_PATTERNS = [
11
11
  ];
12
12
  async function readLastLogLine(filePath) {
13
13
  try {
14
- const lines = (await fsPromises.readFile(filePath, "utf8")).split(/\r?\n/).map((line) => line.trim());
14
+ const lines = (await fs.readFile(filePath, "utf8")).split(/\r?\n/).map((line) => line.trim());
15
15
  for (let i = lines.length - 1; i >= 0; i -= 1) if (lines[i]) return lines[i];
16
16
  return null;
17
17
  } catch {
@@ -20,8 +20,8 @@ async function readLastLogLine(filePath) {
20
20
  }
21
21
  async function readLastGatewayErrorLine(env) {
22
22
  const { stdoutPath, stderrPath } = resolveGatewayLogPaths(env);
23
- const stderrRaw = await fsPromises.readFile(stderrPath, "utf8").catch(() => "");
24
- const stdoutRaw = await fsPromises.readFile(stdoutPath, "utf8").catch(() => "");
23
+ const stderrRaw = await fs.readFile(stderrPath, "utf8").catch(() => "");
24
+ const stdoutRaw = await fs.readFile(stdoutPath, "utf8").catch(() => "");
25
25
  const lines = [...stderrRaw.split(/\r?\n/), ...stdoutRaw.split(/\r?\n/)].map((line) => line.trim());
26
26
  for (let i = lines.length - 1; i >= 0; i -= 1) {
27
27
  const line = lines[i];
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import "./exec-DuYbft0z.js";
6
- import "./agent-scope-Bnsyyeci.js";
7
- import "./model-selection-CCTzD29o.js";
8
- import { i as loadConfig } from "./config-BngIfn5l.js";
6
+ import "./agent-scope-DOrZjOnW.js";
7
+ import "./model-selection-7wdmO-Iw.js";
8
+ import { i as loadConfig } from "./config-B4jkreCN.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
@@ -1,5 +1,5 @@
1
1
  import { c as normalizeStringEntries } from "./dock-hF45sewN.js";
2
- import { i as readChannelAllowFromStore } from "./pairing-store-Be-ZQK87.js";
2
+ import { i as readChannelAllowFromStore } from "./pairing-store-BNhJOnWn.js";
3
3
 
4
4
  //#region src/security/dm-policy-shared.ts
5
5
  async function resolveDmAllowState(params) {
@@ -3,9 +3,9 @@ import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import "./exec-DuYbft0z.js";
6
- import "./agent-scope-Bnsyyeci.js";
7
- import "./model-selection-CCTzD29o.js";
8
- import { i as loadConfig } from "./config-BngIfn5l.js";
6
+ import "./agent-scope-DOrZjOnW.js";
7
+ import "./model-selection-7wdmO-Iw.js";
8
+ import { i as loadConfig } from "./config-B4jkreCN.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
@@ -7,7 +7,7 @@ import { t as runCommandWithTimeout } from "./exec-DuYbft0z.js";
7
7
  import "./boolean-CbZoNRMn.js";
8
8
  import "./manifest-registry-D1MLZEjS.js";
9
9
  import { d as hasBinary } from "./frontmatter-B_jqcova.js";
10
- import "./skills-CYcBtLGH.js";
10
+ import "./skills-BwDmcZdt.js";
11
11
  import "./redact-B3O-RBO1.js";
12
12
  import "./errors-bI7Tdx75.js";
13
13
  import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
@@ -1,7 +1,7 @@
1
1
  import { n as resolveCliName } from "./cli-name-DY75UA5M.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-Ctw1Rb_n.js";
3
3
  import { t as note } from "./note-BIAQpZxi.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DoQrkCAd.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-vAwL_uEK.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 { n as resolveCliName } from "./cli-name-CzMV-gJF.js";
2
- import { t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.js";
2
+ import { t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
3
3
  import { t as note } from "./note-D9FXI2qW.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Ddfrnilx.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CsJ2f_fk.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7