@symerian/symi 3.5.25 → 3.5.26

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 (254) hide show
  1. package/dist/{agent-DgVWcnlD.js → agent-CB5yb-7V.js} +1 -1
  2. package/dist/{agent-CBfp75J4.js → agent-CoHzNs_e.js} +18 -18
  3. package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
  4. package/dist/{agents-Dlcpc1K3.js → agents-DtRd3yEb.js} +3 -3
  5. package/dist/{agents.config-B7sNDvhz.js → agents.config-DA0ISLi7.js} +1 -1
  6. package/dist/{audit-Ce-u6aaR.js → audit-CuwXq_EA.js} +20 -20
  7. package/dist/{audit-CPloCzEZ.js → audit-DyncRBKq.js} +2 -2
  8. package/dist/{auth-choice--DymOp5O.js → auth-choice-5SLfZiQ7.js} +2 -2
  9. package/dist/{auth-choice-CUvx59kv.js → auth-choice-DKRHawfp.js} +11 -11
  10. package/dist/{auth-profiles-Ce7R_25e.js → auth-profiles-D5nYBj_Z.js} +2 -2
  11. package/dist/{auth-token-Cr28IDKY.js → auth-token-fgnCQEHT.js} +3 -3
  12. package/dist/{banner-CY_9VW7E.js → banner-B_P_FrmA.js} +1 -1
  13. package/dist/{browser-cli-Ibgld3mA.js → browser-cli-BI81RlI8.js} +9 -9
  14. package/dist/{browser-cli-C5VVk6C9.js → browser-cli-CcCYZtag.js} +3 -3
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +4 -4
  17. package/dist/bundled/session-memory/handler.js +4 -4
  18. package/dist/{call-C2urR5Fj.js → call-DTshgdlW.js} +1 -1
  19. package/dist/{call-xdEE97oU.js → call-xUpyZDH4.js} +9 -9
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-rFgJaKzJ.js → channel-options-8NGYZjfd.js} +1 -1
  22. package/dist/{channel-options-DCmWOAc0.js → channel-options-vjcKi2yl.js} +1 -1
  23. package/dist/{channels-cli-QMHCRAb5.js → channels-cli-Bx90nSmB.js} +9 -9
  24. package/dist/{channels-cli-Cs1Z0dn8.js → channels-cli-CfBFa-VO.js} +57 -57
  25. package/dist/{chrome-DJChpTwP.js → chrome-38OnGyuN.js} +2 -2
  26. package/dist/{chrome-OTJg3QKn.js → chrome-CmQwGAuL.js} +7 -7
  27. package/dist/{cli-BafqEuaj.js → cli-DHG9iZJi.js} +6 -6
  28. package/dist/{cli-CadU09SC.js → cli-qf0qK7oi.js} +45 -45
  29. package/dist/{client-yVTJ5jx5.js → client-BOd5o3Kp.js} +9 -1
  30. package/dist/{client-Cs9Bh-G0.js → client-DiPa71im.js} +10 -2
  31. package/dist/{command-registry-CLm8TAH3.js → command-registry-DBbzZvh6.js} +11 -11
  32. package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
  33. package/dist/{completion-cli-Dd56ibFZ.js → completion-cli-Ddfrnilx.js} +12 -12
  34. package/dist/{completion-cli-DOBXkVwG.js → completion-cli-DoQrkCAd.js} +2 -2
  35. package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
  36. package/dist/{config-cli-BgHYqFH1.js → config-cli-9a5qBcdo.js} +1 -1
  37. package/dist/{config-cli-GwUJEapt.js → config-cli-JVGYyfYA.js} +4 -4
  38. package/dist/{config-guard-BRm3RiOi.js → config-guard-DStz4_V2.js} +6 -6
  39. package/dist/{config-validation-Cdyg1BZB.js → config-validation-Dxj9LRzr.js} +1 -1
  40. package/dist/{configure-5md67tCP.js → configure-Bqz2Hvnf.js} +14 -14
  41. package/dist/{configure-DmzM0S7L.js → configure-ryB8EvyP.js} +6 -6
  42. package/dist/{consolidate-DymnvvYm.js → consolidate-CO32_TEx.js} +6 -6
  43. package/dist/{control-service-D8kKOts5.js → control-service-CUreKVeY.js} +4 -4
  44. package/dist/control-ui/css/style.css +152 -0
  45. package/dist/control-ui/index.html +42 -0
  46. package/dist/control-ui/js/symframe-modes.js +65 -0
  47. package/dist/control-ui/js/symframe.js +139 -0
  48. package/dist/{control-ui-assets-CJQ97d4u.js → control-ui-assets-B8B9z_Ll.js} +1 -1
  49. package/dist/{cost-cli-DWiVCOCx.js → cost-cli-D-ssjcRF.js} +3 -3
  50. package/dist/{cron-cli-BNBs3zue.js → cron-cli-DsGkkt1s.js} +3 -3
  51. package/dist/{cron-cli-CE9bV9Et.js → cron-cli-pZ_7Wzhj.js} +7 -7
  52. package/dist/{daemon-cli-BYiG4GOU.js → daemon-cli-BDzcfcu_.js} +11 -11
  53. package/dist/{daemon-cli-DDqeG2nd.js → daemon-cli-dbAPTgGm.js} +2 -2
  54. package/dist/daemon-cli.js +9 -1
  55. package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
  56. package/dist/{deliver-BiWlR84Y.js → deliver-B04yNX82.js} +4 -4
  57. package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
  58. package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
  59. package/dist/{devices-cli-Bhr6jGtH.js → devices-cli-BIZbo_Pt.js} +6 -6
  60. package/dist/{devices-cli-BJ3rVWOw.js → devices-cli-CIAuYH4P.js} +2 -2
  61. package/dist/{diagnostics-DlZODdRf.js → diagnostics-CYkqD5lP.js} +5 -5
  62. package/dist/{directory-cli-Bm5QYEo-.js → directory-cli-giqTe8Yg.js} +3 -3
  63. package/dist/{dm-policy-shared-CeFt0nch.js → dm-policy-shared-B61_yf6G.js} +1 -1
  64. package/dist/{dns-cli-CubLq4j9.js → dns-cli-Dssz4RqF.js} +3 -3
  65. package/dist/{docs-cli-PS8m1er7.js → docs-cli-Ct1STieY.js} +1 -1
  66. package/dist/{doctor-completion-k0HiL05o.js → doctor-completion-Bk55g4MP.js} +1 -1
  67. package/dist/{doctor-completion-BpUGRguQ.js → doctor-completion-eh7aImCx.js} +2 -2
  68. package/dist/{doctor-config-flow-C52W1uUK.js → doctor-config-flow-ljVnQJjo.js} +9 -9
  69. package/dist/entry.js +1 -1
  70. package/dist/{exec-approvals-cli-CzvIqBUd.js → exec-approvals-cli-B2UY9dZC.js} +13 -13
  71. package/dist/{exec-approvals-cli-Cau1vPQI.js → exec-approvals-cli-BiXeyPPz.js} +4 -4
  72. package/dist/extensionAPI.js +2 -2
  73. package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
  74. package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
  75. package/dist/{gateway-cli-DgmGygc6.js → gateway-cli-BGMVOW2G.js} +16 -16
  76. package/dist/{gateway-cli-D1d5YAt0.js → gateway-cli-BwPy7u0B.js} +98 -98
  77. package/dist/{gateway-rpc-BTGT1SuZ.js → gateway-rpc-DmFOiGIJ.js} +1 -1
  78. package/dist/{gateway-rpc-Kv0-8W2E.js → gateway-rpc-DpRnrv_i.js} +1 -1
  79. package/dist/{glass-ui-ws-BH9WH_VN.js → glass-ui-ws-CwOiILiY.js} +67 -67
  80. package/dist/{glass-ui-ws-Dl45d7eU.js → glass-ui-ws-Z-W33_mF.js} +13 -13
  81. package/dist/{health-DpE9GWGn.js → health-Bc1wmAO5.js} +4 -4
  82. package/dist/{health-znS85U-F.js → health-Dkwuq8ta.js} +1 -1
  83. package/dist/{hooks-cli-Cb9BzCOY.js → hooks-cli-Bn6x6Jnj.js} +7 -7
  84. package/dist/{hooks-cli-D7xxbEwI.js → hooks-cli-DOjHV2fF.js} +59 -59
  85. package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
  86. package/dist/index.js +52 -52
  87. package/dist/{inspect-CGKsaVZ4.js → inspect-DzYUb_Dl.js} +4 -4
  88. package/dist/{install-safe-path-B2JrFspY.js → install-safe-path-BrpA09f2.js} +11 -11
  89. package/dist/{installs-D890uIIW.js → installs-bnDlOSq2.js} +10 -10
  90. package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
  91. package/dist/{lifecycle-core-wFwnK_mD.js → lifecycle-core-cSR_xiIO.js} +5 -5
  92. package/dist/llm-slug-generator.js +4 -4
  93. package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
  94. package/dist/{logs-cli-LiAjkog2.js → logs-cli-CJLJ745C.js} +3 -3
  95. package/dist/{logs-cli-DvIVuW0d.js → logs-cli-CYFlhj51.js} +7 -7
  96. package/dist/{manager-V4UCf0Av.js → manager-BHddoe4T.js} +1 -1
  97. package/dist/{manager-CceVgXHV.js → manager-DH00nlW8.js} +1 -1
  98. package/dist/{manager-CoCX7L5u.js → manager-DuWp0CTD.js} +15 -15
  99. package/dist/{manager-Cv4xI8sP.js → manager-F0-SHT1B.js} +1 -1
  100. package/dist/{memory-A2D5e8dL.js → memory-C02Znuee.js} +2 -2
  101. package/dist/{memory-cli-1zjVJITN.js → memory-cli-083UJtVJ.js} +2 -2
  102. package/dist/{memory-cli-D8Z_5-Nz.js → memory-cli-BnBKckEk.js} +12 -12
  103. package/dist/{memory-B067LTL9.js → memory-fFc7GGPZ.js} +5 -5
  104. package/dist/{model-MUMSB_7d.js → model-Cwbcw-km.js} +1 -1
  105. package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
  106. package/dist/{model-catalog-IWi6-nY9.js → model-catalog-BWurV7gl.js} +3 -3
  107. package/dist/{model-picker-Cf6UgQEh.js → model-picker-Dpkr5xBW.js} +5 -5
  108. package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
  109. package/dist/{models-BYev6YAG.js → models-Bh_frCup.js} +3 -3
  110. package/dist/{models-cli-Fa5r1QYP.js → models-cli-BhBu4Dwm.js} +9 -9
  111. package/dist/{models-cli-C979SN3Z.js → models-cli-DVdb_TUS.js} +55 -55
  112. package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
  113. package/dist/{node-cli-DGybtex_.js → node-cli-B0ePfMUr.js} +27 -27
  114. package/dist/{node-cli-Cv7x1gGu.js → node-cli-CBW_ECu_.js} +1 -1
  115. package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
  116. package/dist/{nodes-cli-DaHOBbd4.js → nodes-cli-CJ0gxF5n.js} +3 -3
  117. package/dist/{nodes-cli-C-mEw2av.js → nodes-cli-L0gy-26E.js} +10 -10
  118. package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
  119. package/dist/{npm-registry-spec-DTqn-NXZ.js → npm-registry-spec-C-muP97-.js} +9 -9
  120. package/dist/{onboard-D-m6WTZl.js → onboard-BSxqEQfo.js} +3 -3
  121. package/dist/{onboard-CotuAZi6.js → onboard-D6GZ2t-L.js} +15 -15
  122. package/dist/{onboard-channels-Z-Jkrk5-.js → onboard-channels-BkR3MKMp.js} +1 -1
  123. package/dist/{onboard-channels-DSyynpou.js → onboard-channels-DVS9vciR.js} +4 -4
  124. package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
  125. package/dist/{onboard-helpers-CLXJ8zp0.js → onboard-helpers-CJlheOSJ.js} +8 -8
  126. package/dist/{onboard-helpers-Dhr98nj8.js → onboard-helpers-t7tI9KSA.js} +1 -1
  127. package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
  128. package/dist/{onboard-remote-BYBai0w3.js → onboard-remote-CVZ8l58S.js} +1 -1
  129. package/dist/{onboard-remote-DZdMxd1Q.js → onboard-remote-DH3bPYbE.js} +1 -1
  130. package/dist/{onboard-skills-2SUv-W7i.js → onboard-skills-Bjf7kWvg.js} +1 -1
  131. package/dist/{onboard-skills-BxJlS1Bk.js → onboard-skills-MgcaLiE6.js} +3 -3
  132. package/dist/{onboarding-BckHLQMV.js → onboarding-CrCGoZ4H.js} +7 -7
  133. package/dist/{onboarding-BnoGiOh3.js → onboarding-D-mzwQ_f.js} +12 -12
  134. package/dist/{onboarding.finalize-CbH_ShIW.js → onboarding.finalize-BYzduVFA.js} +9 -9
  135. package/dist/{onboarding.finalize-g86Q4433.js → onboarding.finalize-DBFL76p0.js} +31 -31
  136. package/dist/{onboarding.gateway-config-CEXjbEM0.js → onboarding.gateway-config-BCDgsFl8.js} +8 -8
  137. package/dist/{onboarding.gateway-config-sNSeEykB.js → onboarding.gateway-config-xWUSbtoY.js} +3 -3
  138. package/dist/{openai-model-default-BkuuK-Di.js → openai-model-default-De-UAjwg.js} +2 -2
  139. package/dist/{pairing-cli-Rsae0KnN.js → pairing-cli-CBMMCNnx.js} +5 -5
  140. package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
  141. package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
  142. package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
  143. package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
  144. package/dist/{pi-embedded-B9rtlNMc.js → pi-embedded-DGnpyHm-.js} +50 -7
  145. package/dist/{pi-embedded-helpers-D-OFjhdI.js → pi-embedded-helpers-j1JrlsI0.js} +6 -6
  146. package/dist/{pi-tools.policy-H2t-Xkfc.js → pi-tools.policy-CvAqjEH9.js} +3 -3
  147. package/dist/{plugin-auto-enable-DJBhDIMq.js → plugin-auto-enable-BXSJTxI7.js} +1 -1
  148. package/dist/{plugin-registry-CS4WgHbu.js → plugin-registry-B74FBx4U.js} +1 -1
  149. package/dist/{plugin-registry-AsC9gydF.js → plugin-registry-KP94aK4z.js} +3 -3
  150. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
  151. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +5 -1
  152. package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +7 -2
  153. package/dist/{plugins-cli-CbByGz8z.js → plugins-cli-B4ljapU5.js} +54 -54
  154. package/dist/{plugins-cli-BY42hyHP.js → plugins-cli-Cmf3kRf5.js} +7 -7
  155. package/dist/{ports-r7LBic2V.js → ports-Bi3V_3n9.js} +1 -1
  156. package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
  157. package/dist/{program-P9F1DxBa.js → program-CGuYYumL.js} +12 -12
  158. package/dist/{program-context-CiyK6MfV.js → program-context-BzqGUxMS.js} +40 -40
  159. package/dist/{prompt-select-styled-DaNQ_GgB.js → prompt-select-styled-BVkRteee.js} +38 -38
  160. package/dist/{prompt-select-styled-B2ah467m.js → prompt-select-styled-b752FPLG.js} +7 -7
  161. package/dist/{provider-auth-helpers-Bgb_Bfp9.js → provider-auth-helpers-BKveYcEH.js} +1 -1
  162. package/dist/{provider-auth-helpers-D2FDvwT5.js → provider-auth-helpers-C6GjAO-s.js} +6 -6
  163. package/dist/{push-apns-va-DRu4U.js → push-apns-CbbWM63o.js} +4 -4
  164. package/dist/{push-apns-DnSCjFu7.js → push-apns-HNg0rTkI.js} +1 -1
  165. package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
  166. package/dist/{pw-ai-DY_6l11g.js → pw-ai-DLsdzdgc.js} +1 -1
  167. package/dist/{qmd-manager-C8-M4Pru.js → qmd-manager-Dxyue7B1.js} +19 -19
  168. package/dist/{qr-cli-1sCVaPcF.js → qr-cli-DHw6muwK.js} +3 -3
  169. package/dist/{register.agent-BuEcmVg0.js → register.agent-DbPYGG3u.js} +12 -12
  170. package/dist/{register.agent-BqdQ0s30.js → register.agent-DhS2lmWo.js} +67 -67
  171. package/dist/{register.configure-YDKJ-KQg.js → register.configure-B0M15y31.js} +14 -14
  172. package/dist/{register.configure-Dhwi-4FG.js → register.configure-ChjzXxh8.js} +70 -70
  173. package/dist/{register.maintenance-BiGvpEj-.js → register.maintenance-bzLNOqch.js} +13 -13
  174. package/dist/{register.maintenance-iMjNw9uy.js → register.maintenance-frHWf6Xs.js} +67 -67
  175. package/dist/{register.message-BIuLbESM.js → register.message-Bfukmte_.js} +7 -7
  176. package/dist/{register.message-Ao_b9s2g.js → register.message-DWB4eVII.js} +47 -47
  177. package/dist/{register.onboard-ymhSAezZ.js → register.onboard-4P8ud4Sw.js} +25 -25
  178. package/dist/{register.onboard-C4vIASed.js → register.onboard-CDsSVoFI.js} +6 -6
  179. package/dist/{register.setup-D-Jt2e1d.js → register.setup-Bp8rYeRx.js} +6 -6
  180. package/dist/{register.setup-CKs9mqtD.js → register.setup-D0I7sEGc.js} +28 -28
  181. package/dist/{register.status-health-sessions-U-azRmpb.js → register.status-health-sessions-69Gigo_H.js} +41 -41
  182. package/dist/{register.status-health-sessions-BY9hMD1s.js → register.status-health-sessions-DE2db_Uo.js} +8 -8
  183. package/dist/{register.subclis-Cibmeapc.js → register.subclis-QXO75pUm.js} +20 -20
  184. package/dist/{replies-CbXXjn9X.js → replies-B_3j7R_Q.js} +1 -1
  185. package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
  186. package/dist/{resolve-route-C1IIA6kH.js → resolve-route-Du0VftVs.js} +1 -1
  187. package/dist/{routes-ivqbutvM.js → routes-BwTUoI5h.js} +10 -10
  188. package/dist/{rpc-BnAKPQDB.js → rpc-BBtNUyxN.js} +1 -1
  189. package/dist/{rpc-DjqFrbOc.js → rpc-DTqyJZKO.js} +1 -1
  190. package/dist/{run-main-BhEQjKtM.js → run-main-MD8Z8ydF.js} +20 -20
  191. package/dist/{sandbox-BkznAPKO.js → sandbox-CZGTCone.js} +18 -18
  192. package/dist/{sandbox-cli-Bb9cBtBH.js → sandbox-cli-DEtGT_4y.js} +13 -13
  193. package/dist/{security-cli-CS-ZT1LE.js → security-cli-DZ-6QDRB.js} +3 -3
  194. package/dist/{security-cli-JKsf9SIu.js → security-cli-iJpHPABF.js} +29 -29
  195. package/dist/{send-B0jHSNMF.js → send-CxjvucMO.js} +7 -7
  196. package/dist/{server-context-ChcbJgNo.js → server-context-DXdk410X.js} +5 -5
  197. package/dist/{server-methods-B2tykucj.js → server-methods-DHWxmfIu.js} +67 -61
  198. package/dist/{server-methods-CWxr5b-w.js → server-methods-DTkVQH8Q.js} +18 -12
  199. package/dist/{server-node-events-ClDEcUTJ.js → server-node-events-C0smPxrR.js} +8 -8
  200. package/dist/{server-node-events-BKqszk_a.js → server-node-events-DHSiqnRS.js} +48 -48
  201. package/dist/{service-e6MzlLCd.js → service-CRZoXO_n.js} +15 -15
  202. package/dist/{session-dirs-C9E2G0yZ.js → session-dirs-a00Ad2SO.js} +2 -2
  203. package/dist/{session-utils-Cs1jlD-q.js → session-utils-CJhcRx3E.js} +14 -14
  204. package/dist/{sessions-Dxf5Kjig.js → sessions-BCc3THTm.js} +10 -10
  205. package/dist/{shared-1xPo9ygd.js → shared-C39SiDDJ.js} +1 -1
  206. package/dist/{shared-COtpr3Ad.js → shared-Dh-O8nRd.js} +3 -3
  207. package/dist/{skill-commands-DDGGlq68.js → skill-commands-DWvXs3lz.js} +4 -4
  208. package/dist/{skill-scanner-BCgVcIwi.js → skill-scanner-CIlHPszT.js} +5 -5
  209. package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
  210. package/dist/{skills-cli-B-7TY-vS.js → skills-cli-CD9s3cgm.js} +7 -7
  211. package/dist/{skills-install-Dwzsjoc8.js → skills-install-BTa9IuQ6.js} +3 -3
  212. package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
  213. package/dist/{skills-status-BKX1PjCc.js → skills-status-DLnCHUZ2.js} +1 -1
  214. package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
  215. package/dist/{status-ojZB_Lrf.js → status-BEZotN01.js} +5 -5
  216. package/dist/{status-DPGFZPpp.js → status-DUbs9rVu.js} +3 -3
  217. package/dist/{status-DHBVIMyL.js → status-ISN-LC9F.js} +23 -23
  218. package/dist/{status-K1k4g3Ai.js → status-OTYFx93W.js} +1 -1
  219. package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
  220. package/dist/{subagent-registry-BOt7g9hn.js → subagent-registry-CVhLz4p3.js} +43 -8
  221. package/dist/{symframe-cli-CrUtJw_7.js → symframe-cli-BSAQ05fb.js} +22 -6
  222. package/dist/{symframe-cli-CX3dINPw.js → symframe-cli-CPE5nxuJ.js} +28 -12
  223. package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
  224. package/dist/{synthesis-Bc2QkGvt.js → synthesis-C1mZnGqD.js} +2 -2
  225. package/dist/{synthesis-yl24Ovw4.js → synthesis-CDPVZw2P.js} +4 -4
  226. package/dist/{synthesis-DmqicCsT.js → synthesis-DkHCk0El.js} +45 -45
  227. package/dist/{synthesis-BIQLrbys.js → synthesis-RhT991Ni.js} +6 -6
  228. package/dist/{system-cli-CvN-Wq9U.js → system-cli-Dy6_0Qp7.js} +3 -3
  229. package/dist/{system-cli-DUHzCGfK.js → system-cli-nWJwLo85.js} +7 -7
  230. package/dist/{systemd-CUIM0n5P.js → systemd-CsoVnIbM.js} +5 -5
  231. package/dist/{systemd-hints-CsrzMCTD.js → systemd-hints-QISwLlFU.js} +6 -6
  232. package/dist/{systemd-linger-BzYk7A6M.js → systemd-linger-BnhuRdbt.js} +1 -1
  233. package/dist/{tui-DCqVZ6sC.js → tui-ZL7IGA7l.js} +7 -7
  234. package/dist/{tui-cli-DqvgN5ng.js → tui-cli-B-DKpOxE.js} +3 -3
  235. package/dist/{tui-cli-CI-P3sei.js → tui-cli-CEpMtmhP.js} +19 -19
  236. package/dist/{tui-BxgdImL_.js → tui-h57L-YTX.js} +2 -2
  237. package/dist/{unified-runner-BV5TdNFv.js → unified-runner-Cppo8O8z.js} +57 -14
  238. package/dist/{unified-runner-CznU7Ad0.js → unified-runner-CsadjpQa.js} +139 -104
  239. package/dist/{update-yYduAjKd.js → update-Cb0Fmxic.js} +3 -3
  240. package/dist/{update-check-BCL_K7kx.js → update-check-u6Jgr1cz.js} +5 -5
  241. package/dist/{update-cli-DBoIBDNe.js → update-cli-48-Nah-Y.js} +77 -77
  242. package/dist/{update-cli-Dn6QQZLd.js → update-cli-D9g9s187.js} +14 -14
  243. package/dist/{update-runner-BLV8SI96.js → update-runner-G2YgEATs.js} +15 -15
  244. package/dist/{webhooks-cli-D5k-Y2A8.js → webhooks-cli-DjUITimx.js} +4 -4
  245. package/dist/{with-timeout-DPR4A2dx.js → with-timeout-CLrF-Yr_.js} +1 -1
  246. package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
  247. package/dist/{wsl-CglTdtlb.js → wsl-DTi7eX-V.js} +2 -2
  248. package/extensions/memory-core/package.json +1 -1
  249. package/extensions/msteams/CHANGELOG.md +6 -0
  250. package/extensions/msteams/package.json +1 -1
  251. package/extensions/open-prose/package.json +1 -1
  252. package/extensions/outlook/package.json +1 -1
  253. package/extensions/slack/package.json +1 -1
  254. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ // ── Symframe Mode Chips ─────────────────────────────────────────────
2
+ // Stage D of the Dynamic Glass Panel arc — see ~/Documents/dynamic-glass-panel.md §5 Stage D.
3
+ //
4
+ // Wires the four mode chips in the symframe header to
5
+ // window.symframe.setMode() and updates the AUTO pill visibility +
6
+ // active-chip indicator in response to mode changes (from either the
7
+ // user clicking a chip OR the agent calling setMode via display_artifact).
8
+ //
9
+ // Mode-vs-user resolution:
10
+ // - User click → setMode(mode, { user: true })
11
+ // → modeState.userOverride = true
12
+ // → AUTO pill becomes visible
13
+ // → Agent setMode calls are stored as pendingAgent
14
+ // but NOT applied to the DOM
15
+ // - AUTO click → clearUserOverride()
16
+ // → userOverride = false, pendingAgent is applied
17
+ // → AUTO pill hides
18
+ // ─────────────────────────────────────────────────────────────────────
19
+
20
+ "use strict";
21
+
22
+ (function () {
23
+ const modesContainer = document.getElementById("symframe-modes");
24
+ const autoPill = document.getElementById("mode-auto");
25
+ if (!modesContainer || typeof window.symframe?.setMode !== "function") {
26
+ return;
27
+ }
28
+
29
+ const chips = modesContainer.querySelectorAll(".mode-chip");
30
+
31
+ function syncChips(state) {
32
+ for (const chip of chips) {
33
+ const mode = chip.getAttribute("data-mode");
34
+ const active = mode === state.current;
35
+ chip.classList.toggle("active", active);
36
+ chip.setAttribute("aria-selected", active ? "true" : "false");
37
+ }
38
+ if (autoPill) {
39
+ autoPill.hidden = !state.userOverride;
40
+ }
41
+ }
42
+
43
+ // Initial sync from current mode state
44
+ syncChips(window.symframe.getMode());
45
+
46
+ // Listen for future mode changes (agent OR user)
47
+ window.symframe.onModeChange(syncChips);
48
+
49
+ // Wire chip clicks → user-initiated setMode
50
+ for (const chip of chips) {
51
+ chip.addEventListener("click", () => {
52
+ const mode = chip.getAttribute("data-mode");
53
+ if (mode) {
54
+ window.symframe.setMode(mode, { user: true });
55
+ }
56
+ });
57
+ }
58
+
59
+ // AUTO pill → release the override
60
+ if (autoPill) {
61
+ autoPill.addEventListener("click", () => {
62
+ window.symframe.clearUserOverride();
63
+ });
64
+ }
65
+ })();
@@ -508,6 +508,12 @@
508
508
  cards.set(id, entry);
509
509
  insertElement(entry, el);
510
510
  updateCount();
511
+ // Stage D: if focus mode is active and this is the focused card,
512
+ // apply the halo class immediately so the card renders focused
513
+ // on first paint (otherwise the user briefly sees a dim card).
514
+ if (modeState.current === "focus" && modeState.focusedId === id) {
515
+ el.classList.add("symframe-card-focused");
516
+ }
511
517
  return entry;
512
518
  }
513
519
 
@@ -548,6 +554,11 @@
548
554
  merged.element = newEl;
549
555
  existing.element.replaceWith(newEl);
550
556
  cards.set(id, merged);
557
+ // Stage D: re-apply the focus class if this is the focused card
558
+ // (replaceWith drops classes on the old element).
559
+ if (modeState.current === "focus" && modeState.focusedId === id) {
560
+ newEl.classList.add("symframe-card-focused");
561
+ }
551
562
  return merged;
552
563
  }
553
564
 
@@ -579,6 +590,104 @@
579
590
  return true;
580
591
  }
581
592
 
593
+ // ── Stage D: modes ─────────────────────────────────────────────────
594
+ // The agent picks a panel posture per task via display_artifact
595
+ // action="setMode". Mode is applied as a data-mode attribute on the
596
+ // #symframe root; per-mode CSS rules in style.css handle the layout
597
+ // shift (substrate/foreground/awaiting proportions, focused-card
598
+ // highlight). No JS layout math — all visual changes are CSS-driven.
599
+ //
600
+ // User override: clicking a mode chip in the header sets userOverride
601
+ // = true. While true, agent setMode calls are stored as
602
+ // pendingAgentMode but NOT applied to the DOM — the user's choice
603
+ // wins. An AUTO chip becomes visible; clicking it clears the
604
+ // override and applies whatever the agent last asked for.
605
+ const MODES = ["ambient", "focus", "awaiting", "quiet"];
606
+ const DEFAULT_MODE = "ambient";
607
+ /** @type {{ current: string, userOverride: boolean, pendingAgent: string | null, focusedId: string | null }} */
608
+ const modeState = {
609
+ current: DEFAULT_MODE,
610
+ userOverride: false,
611
+ pendingAgent: null,
612
+ focusedId: null,
613
+ };
614
+ /** @type {Set<(state: typeof modeState) => void>} */
615
+ const modeListeners = new Set();
616
+ const symframeRoot = document.getElementById("symframe");
617
+
618
+ function applyMode() {
619
+ if (!symframeRoot) {
620
+ return;
621
+ }
622
+ symframeRoot.setAttribute("data-mode", modeState.current);
623
+ if (modeState.focusedId) {
624
+ symframeRoot.setAttribute("data-focus-id", modeState.focusedId);
625
+ } else {
626
+ symframeRoot.removeAttribute("data-focus-id");
627
+ }
628
+ if (modeState.userOverride) {
629
+ symframeRoot.setAttribute("data-user-override", "true");
630
+ } else {
631
+ symframeRoot.removeAttribute("data-user-override");
632
+ }
633
+ for (const fn of modeListeners) {
634
+ try {
635
+ fn({ ...modeState });
636
+ } catch (err) {
637
+ console.warn("[symframe] mode listener threw:", err);
638
+ }
639
+ }
640
+ }
641
+
642
+ function setMode(nextMode, opts = {}) {
643
+ if (!MODES.includes(nextMode)) {
644
+ console.warn(`[symframe] setMode: unknown mode '${nextMode}'`);
645
+ return false;
646
+ }
647
+ const fromUser = opts.user === true;
648
+ if (fromUser) {
649
+ modeState.userOverride = true;
650
+ modeState.current = nextMode;
651
+ if (typeof opts.focusedId === "string") {
652
+ modeState.focusedId = opts.focusedId;
653
+ } else if (opts.focusedId === null) {
654
+ modeState.focusedId = null;
655
+ }
656
+ } else {
657
+ // Agent setMode: respect user override
658
+ modeState.pendingAgent = nextMode;
659
+ if (modeState.userOverride) {
660
+ return true; // ack but don't apply
661
+ }
662
+ modeState.current = nextMode;
663
+ if (typeof opts.focusedId === "string") {
664
+ modeState.focusedId = opts.focusedId;
665
+ } else if (opts.focusedId === null) {
666
+ modeState.focusedId = null;
667
+ }
668
+ }
669
+ applyMode();
670
+ return true;
671
+ }
672
+
673
+ /** Clear the user override; reapply the agent's last mode (or default). */
674
+ function clearUserOverride() {
675
+ modeState.userOverride = false;
676
+ if (modeState.pendingAgent) {
677
+ modeState.current = modeState.pendingAgent;
678
+ }
679
+ applyMode();
680
+ }
681
+
682
+ function getMode() {
683
+ return { ...modeState };
684
+ }
685
+
686
+ function onModeChange(fn) {
687
+ modeListeners.add(fn);
688
+ return () => modeListeners.delete(fn);
689
+ }
690
+
582
691
  // ── Stage C: dwell / release / recall / pin / unpin ────────────────
583
692
  // The CRUD vocabulary (add/update/remove) treats the panel as a
584
693
  // notification list. These verbs treat it as a mind-window: cards
@@ -777,6 +886,12 @@
777
886
  pin,
778
887
  unpin,
779
888
  listRecentlyReleased,
889
+ // Stage D — modes
890
+ setMode,
891
+ getMode,
892
+ clearUserOverride,
893
+ onModeChange,
894
+ MODES,
780
895
  };
781
896
 
782
897
  // Phase 3: server-pushed cards. The gateway's `symframe` broadcast is
@@ -809,9 +924,33 @@
809
924
  pin(payload.id);
810
925
  } else if (payload.action === "unpin" && payload.id) {
811
926
  unpin(payload.id);
927
+ } else if (payload.action === "setMode" && typeof payload.mode === "string") {
928
+ setMode(payload.mode, {
929
+ focusedId: typeof payload.focusedId === "string" ? payload.focusedId : null,
930
+ });
812
931
  }
813
932
  });
814
933
 
934
+ // Stage D: apply the default mode on boot so the data-mode attribute
935
+ // always exists for CSS to target. No-op if userOverride is set
936
+ // (won't happen at boot, but defensive).
937
+ applyMode();
938
+
939
+ // Stage D: when mode changes, toggle the .symframe-card-focused class
940
+ // on the card whose id matches modeState.focusedId. CSS can't select
941
+ // "the card whose data-card-id matches the symframe's data-focus-id"
942
+ // directly, so JS maintains the class. Re-applies after card add too.
943
+ function syncFocusClass() {
944
+ for (const [id, entry] of cards.entries()) {
945
+ if (!entry.element) {
946
+ continue;
947
+ }
948
+ const shouldFocus = modeState.current === "focus" && modeState.focusedId === id;
949
+ entry.element.classList.toggle("symframe-card-focused", shouldFocus);
950
+ }
951
+ }
952
+ onModeChange(syncFocusClass);
953
+
815
954
  // Stage C: restore pinned cards from localStorage on boot. Pinned
816
955
  // cards are user-curated state and survive reload, /new, and gateway
817
956
  // reconnect. Each pin is a snapshot; the registry re-adds it as a
@@ -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-BQ0IpoW2.js";
2
+ import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.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-DOrZjOnW.js";
7
- import "./model-selection-7wdmO-Iw.js";
8
- import { i as loadConfig } from "./config-B4jkreCN.js";
6
+ import "./agent-scope-Bnsyyeci.js";
7
+ import "./model-selection-CCTzD29o.js";
8
+ import { i as loadConfig } from "./config-BngIfn5l.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
@@ -6,8 +6,8 @@ import "./model-selection-CMx1evaF.js";
6
6
  import "./manifest-registry-CVLmi8rz.js";
7
7
  import "./config-D7TcU4qN.js";
8
8
  import "./shell-env-CTYaxUs_.js";
9
- import "./client-yVTJ5jx5.js";
10
- import "./call-C2urR5Fj.js";
9
+ import "./client-BOd5o3Kp.js";
10
+ import "./call-DTshgdlW.js";
11
11
  import "./message-channel-DXToSaWK.js";
12
12
  import "./pairing-token-B-OTYROz.js";
13
13
  import { n as listChannelPlugins } from "./plugins-BsEhWvLn.js";
@@ -15,7 +15,7 @@ import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
15
15
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DUVGiPYV.js";
16
16
  import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
17
17
  import "./progress-CI19Xh3z.js";
18
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Kv0-8W2E.js";
18
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DpRnrv_i.js";
19
19
  import { n as parsePositiveIntOrUndefined } from "./helpers-CKQ7JYPP.js";
20
20
 
21
21
  //#region src/cli/cron-cli/shared.ts
@@ -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-DOrZjOnW.js";
8
- import "./model-selection-7wdmO-Iw.js";
9
- import "./config-B4jkreCN.js";
7
+ import "./agent-scope-Bnsyyeci.js";
8
+ import "./model-selection-CCTzD29o.js";
9
+ import "./config-BngIfn5l.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-Cs9Bh-G0.js";
17
- import "./call-xdEE97oU.js";
18
- import "./pairing-token-Dcy37-4s.js";
16
+ import "./client-DiPa71im.js";
17
+ import "./call-xUpyZDH4.js";
18
+ import "./pairing-token-B703A1U3.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-BTGT1SuZ.js";
24
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DmFOiGIJ.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-B4jkreCN.js";
7
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-BngIfn5l.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-gxLM5ahL.js";
11
+ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-CB_Iu83U.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-xdEE97oU.js";
13
+ import { n as callGateway } from "./call-xUpyZDH4.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-DlQla_dA.js";
19
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CLXJ8zp0.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";
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";
24
24
  import { t as parsePort } from "./parse-port-CMRD6fhd.js";
25
- import { t as readLastGatewayErrorLine } from "./diagnostics-DlZODdRf.js";
26
- import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CGKsaVZ4.js";
25
+ import { t as readLastGatewayErrorLine } from "./diagnostics-CYkqD5lP.js";
26
+ import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-DzYUb_Dl.js";
27
27
 
28
28
  //#region src/cli/daemon-cli/install.ts
29
29
  async function runDaemonInstall(opts) {
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Q as theme, Rt as shortenHomePath, X as colorize, Z as isRich, _ as defaultRuntime, ct as resolveConfigPath, ft as resolveGatewayPort, pt as resolveIsNixMode, tt as getResolvedLoggerSettings, yt as resolveStateDir } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-B3nkKRhC.js";
4
4
  import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-D7TcU4qN.js";
5
- import { n as callGateway } from "./call-C2urR5Fj.js";
5
+ import { n as callGateway } from "./call-DTshgdlW.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
7
7
  import { l as resolveGatewayBindHost } from "./net-TZUXtwGR.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
@@ -13,7 +13,7 @@ import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
13
13
  import { n as withProgress } from "./progress-CI19Xh3z.js";
14
14
  import { n as inheritOptionFromParent } from "./command-options-BFvvecvU.js";
15
15
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-AkgOtHR6.js";
16
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-Dhr98nj8.js";
16
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-t7tI9KSA.js";
17
17
  import { n as isWSLEnv } from "./wsl-DMA0sTvh.js";
18
18
  import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-DYpU1ajf.js";
19
19
  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-YmWzkN43.js";
@@ -9628,9 +9628,17 @@ const ChatSymframePushParamsSchema = Type.Object({
9628
9628
  Type.Literal("release"),
9629
9629
  Type.Literal("recall"),
9630
9630
  Type.Literal("pin"),
9631
- Type.Literal("unpin")
9631
+ Type.Literal("unpin"),
9632
+ Type.Literal("setMode")
9632
9633
  ]),
9633
9634
  id: Type.Optional(NonEmptyString),
9635
+ mode: Type.Optional(Type.Union([
9636
+ Type.Literal("ambient"),
9637
+ Type.Literal("focus"),
9638
+ Type.Literal("awaiting"),
9639
+ Type.Literal("quiet")
9640
+ ])),
9641
+ focusedId: Type.Optional(NonEmptyString),
9634
9642
  force: Type.Optional(Type.Boolean()),
9635
9643
  card: Type.Optional(Type.Object({
9636
9644
  id: Type.Optional(NonEmptyString),
@@ -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-B4jkreCN.js";
2
+ import { N as VERSION, k as collectConfigServiceEnvVars } from "./config-BngIfn5l.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 fs from "node:fs/promises";
8
+ import fsPromises 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 fs.access(resolvedPath);
26
+ await fsPromises.access(resolvedPath);
27
27
  if (/[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(normalized) && normalized !== resolvedPath) try {
28
- await fs.access(normalized);
28
+ await fsPromises.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 fs.access(candidate);
35
+ await fsPromises.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 fs.realpath(inputPath);
42
+ return await fsPromises.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 fs.access(resolved);
102
+ await fsPromises.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 fs.access(devCliPath);
121
+ await fsPromises.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 fs.access(devCliPath);
149
+ await fsPromises.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 fs.access(candidate);
262
+ await fsPromises.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-OTJg3QKn.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";
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-DY_6l11g.js");
942
+ return await import("./pw-ai-DLsdzdgc.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-DY_6l11g.js")).closePlaywrightBrowserConnection();
3539
+ await (await import("./pw-ai-DLsdzdgc.js")).closePlaywrightBrowserConnection();
3540
3540
  } catch {}
3541
3541
  if (profileState.running) await stopRunningBrowser();
3542
3542
  try {
3543
- await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
3543
+ await (await import("./pw-ai-DLsdzdgc.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-Dxf5Kjig.js";
4
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BCc3THTm.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-CgDCgCuM.js";
8
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-2Jb79HZ8.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
@@ -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-B0jHSNMF.js").then((n) => n.n);
4
+ const { sendMessageSlack } = await import("./send-CxjvucMO.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-DOrZjOnW.js";
7
- import "./model-selection-7wdmO-Iw.js";
8
- import "./config-B4jkreCN.js";
6
+ import "./agent-scope-Bnsyyeci.js";
7
+ import "./model-selection-CCTzD29o.js";
8
+ import "./config-BngIfn5l.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-Cs9Bh-G0.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-xdEE97oU.js";
17
- import "./pairing-token-Dcy37-4s.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";
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";
@@ -5,8 +5,8 @@ import "./model-selection-CMx1evaF.js";
5
5
  import "./manifest-registry-CVLmi8rz.js";
6
6
  import "./config-D7TcU4qN.js";
7
7
  import "./shell-env-CTYaxUs_.js";
8
- import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-yVTJ5jx5.js";
9
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C2urR5Fj.js";
8
+ import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-BOd5o3Kp.js";
9
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DTshgdlW.js";
10
10
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
11
11
  import "./pairing-token-B-OTYROz.js";
12
12
  import { n as isLoopbackHost } from "./net-TZUXtwGR.js";
@@ -1,5 +1,5 @@
1
- import { s as resolveGatewayLogPaths } from "./service-e6MzlLCd.js";
2
- import fs from "node:fs/promises";
1
+ import { s as resolveGatewayLogPaths } from "./service-CRZoXO_n.js";
2
+ import fsPromises 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 fs.readFile(filePath, "utf8")).split(/\r?\n/).map((line) => line.trim());
14
+ const lines = (await fsPromises.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 fs.readFile(stderrPath, "utf8").catch(() => "");
24
- const stdoutRaw = await fs.readFile(stdoutPath, "utf8").catch(() => "");
23
+ const stderrRaw = await fsPromises.readFile(stderrPath, "utf8").catch(() => "");
24
+ const stdoutRaw = await fsPromises.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-DOrZjOnW.js";
7
- import "./model-selection-7wdmO-Iw.js";
8
- import { i as loadConfig } from "./config-B4jkreCN.js";
6
+ import "./agent-scope-Bnsyyeci.js";
7
+ import "./model-selection-CCTzD29o.js";
8
+ import { i as loadConfig } from "./config-BngIfn5l.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-BNhJOnWn.js";
2
+ import { i as readChannelAllowFromStore } from "./pairing-store-Be-ZQK87.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-DOrZjOnW.js";
7
- import "./model-selection-7wdmO-Iw.js";
8
- import { i as loadConfig } from "./config-B4jkreCN.js";
6
+ import "./agent-scope-Bnsyyeci.js";
7
+ import "./model-selection-CCTzD29o.js";
8
+ import { i as loadConfig } from "./config-BngIfn5l.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";