@symerian/symi 3.5.24 → 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 (252) 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 +2 -2
  17. package/dist/bundled/session-memory/handler.js +2 -2
  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/{cli-BafqEuaj.js → cli-DHG9iZJi.js} +6 -6
  27. package/dist/{cli-CadU09SC.js → cli-qf0qK7oi.js} +45 -45
  28. package/dist/{client-yVTJ5jx5.js → client-BOd5o3Kp.js} +9 -1
  29. package/dist/{client-Cs9Bh-G0.js → client-DiPa71im.js} +10 -2
  30. package/dist/{command-registry-CLm8TAH3.js → command-registry-DBbzZvh6.js} +11 -11
  31. package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
  32. package/dist/{completion-cli-Dd56ibFZ.js → completion-cli-Ddfrnilx.js} +12 -12
  33. package/dist/{completion-cli-DOBXkVwG.js → completion-cli-DoQrkCAd.js} +2 -2
  34. package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
  35. package/dist/{config-cli-BgHYqFH1.js → config-cli-9a5qBcdo.js} +1 -1
  36. package/dist/{config-cli-GwUJEapt.js → config-cli-JVGYyfYA.js} +4 -4
  37. package/dist/{config-guard-BRm3RiOi.js → config-guard-DStz4_V2.js} +6 -6
  38. package/dist/{config-validation-Cdyg1BZB.js → config-validation-Dxj9LRzr.js} +1 -1
  39. package/dist/{configure-5md67tCP.js → configure-Bqz2Hvnf.js} +14 -14
  40. package/dist/{configure-DmzM0S7L.js → configure-ryB8EvyP.js} +6 -6
  41. package/dist/{consolidate-DymnvvYm.js → consolidate-CO32_TEx.js} +6 -6
  42. package/dist/{control-service-D8kKOts5.js → control-service-CUreKVeY.js} +4 -4
  43. package/dist/control-ui/css/style.css +177 -9
  44. package/dist/control-ui/index.html +42 -0
  45. package/dist/control-ui/js/symframe-modes.js +65 -0
  46. package/dist/control-ui/js/symframe.js +139 -0
  47. package/dist/{control-ui-assets-CJQ97d4u.js → control-ui-assets-B8B9z_Ll.js} +1 -1
  48. package/dist/{cost-cli-DWiVCOCx.js → cost-cli-D-ssjcRF.js} +3 -3
  49. package/dist/{cron-cli-BNBs3zue.js → cron-cli-DsGkkt1s.js} +3 -3
  50. package/dist/{cron-cli-CE9bV9Et.js → cron-cli-pZ_7Wzhj.js} +7 -7
  51. package/dist/{daemon-cli-BYiG4GOU.js → daemon-cli-BDzcfcu_.js} +11 -11
  52. package/dist/{daemon-cli-DDqeG2nd.js → daemon-cli-dbAPTgGm.js} +2 -2
  53. package/dist/daemon-cli.js +9 -1
  54. package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
  55. package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
  56. package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
  57. package/dist/{devices-cli-Bhr6jGtH.js → devices-cli-BIZbo_Pt.js} +6 -6
  58. package/dist/{devices-cli-BJ3rVWOw.js → devices-cli-CIAuYH4P.js} +2 -2
  59. package/dist/{diagnostics-DlZODdRf.js → diagnostics-CYkqD5lP.js} +5 -5
  60. package/dist/{directory-cli-Bm5QYEo-.js → directory-cli-giqTe8Yg.js} +3 -3
  61. package/dist/{dm-policy-shared-CeFt0nch.js → dm-policy-shared-B61_yf6G.js} +1 -1
  62. package/dist/{dns-cli-CubLq4j9.js → dns-cli-Dssz4RqF.js} +3 -3
  63. package/dist/{docs-cli-PS8m1er7.js → docs-cli-Ct1STieY.js} +1 -1
  64. package/dist/{doctor-completion-k0HiL05o.js → doctor-completion-Bk55g4MP.js} +1 -1
  65. package/dist/{doctor-completion-BpUGRguQ.js → doctor-completion-eh7aImCx.js} +2 -2
  66. package/dist/{doctor-config-flow-C52W1uUK.js → doctor-config-flow-ljVnQJjo.js} +9 -9
  67. package/dist/entry.js +1 -1
  68. package/dist/{exec-approvals-cli-CzvIqBUd.js → exec-approvals-cli-B2UY9dZC.js} +13 -13
  69. package/dist/{exec-approvals-cli-Cau1vPQI.js → exec-approvals-cli-BiXeyPPz.js} +4 -4
  70. package/dist/extensionAPI.js +2 -2
  71. package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
  72. package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
  73. package/dist/{gateway-cli-DgmGygc6.js → gateway-cli-BGMVOW2G.js} +16 -16
  74. package/dist/{gateway-cli-D1d5YAt0.js → gateway-cli-BwPy7u0B.js} +98 -98
  75. package/dist/{gateway-rpc-BTGT1SuZ.js → gateway-rpc-DmFOiGIJ.js} +1 -1
  76. package/dist/{gateway-rpc-Kv0-8W2E.js → gateway-rpc-DpRnrv_i.js} +1 -1
  77. package/dist/{glass-ui-ws-BH9WH_VN.js → glass-ui-ws-CwOiILiY.js} +67 -67
  78. package/dist/{glass-ui-ws-Dl45d7eU.js → glass-ui-ws-Z-W33_mF.js} +13 -13
  79. package/dist/{health-DpE9GWGn.js → health-Bc1wmAO5.js} +4 -4
  80. package/dist/{health-znS85U-F.js → health-Dkwuq8ta.js} +1 -1
  81. package/dist/{hooks-cli-Cb9BzCOY.js → hooks-cli-Bn6x6Jnj.js} +7 -7
  82. package/dist/{hooks-cli-D7xxbEwI.js → hooks-cli-DOjHV2fF.js} +59 -59
  83. package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
  84. package/dist/index.js +52 -52
  85. package/dist/{inspect-CGKsaVZ4.js → inspect-DzYUb_Dl.js} +4 -4
  86. package/dist/{install-safe-path-B2JrFspY.js → install-safe-path-BrpA09f2.js} +11 -11
  87. package/dist/{installs-D890uIIW.js → installs-bnDlOSq2.js} +10 -10
  88. package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
  89. package/dist/{lifecycle-core-wFwnK_mD.js → lifecycle-core-cSR_xiIO.js} +5 -5
  90. package/dist/llm-slug-generator.js +2 -2
  91. package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
  92. package/dist/{logs-cli-LiAjkog2.js → logs-cli-CJLJ745C.js} +3 -3
  93. package/dist/{logs-cli-DvIVuW0d.js → logs-cli-CYFlhj51.js} +7 -7
  94. package/dist/{manager-V4UCf0Av.js → manager-BHddoe4T.js} +1 -1
  95. package/dist/{manager-CceVgXHV.js → manager-DH00nlW8.js} +1 -1
  96. package/dist/{manager-CoCX7L5u.js → manager-DuWp0CTD.js} +15 -15
  97. package/dist/{manager-DDynl084.js → manager-F0-SHT1B.js} +1 -1
  98. package/dist/{memory-A2D5e8dL.js → memory-C02Znuee.js} +2 -2
  99. package/dist/{memory-cli-1zjVJITN.js → memory-cli-083UJtVJ.js} +2 -2
  100. package/dist/{memory-cli-D8Z_5-Nz.js → memory-cli-BnBKckEk.js} +12 -12
  101. package/dist/{memory-B067LTL9.js → memory-fFc7GGPZ.js} +5 -5
  102. package/dist/{model-MUMSB_7d.js → model-Cwbcw-km.js} +1 -1
  103. package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
  104. package/dist/{model-catalog-IWi6-nY9.js → model-catalog-BWurV7gl.js} +3 -3
  105. package/dist/{model-picker-Cf6UgQEh.js → model-picker-Dpkr5xBW.js} +5 -5
  106. package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
  107. package/dist/{models-BYev6YAG.js → models-Bh_frCup.js} +3 -3
  108. package/dist/{models-cli-Fa5r1QYP.js → models-cli-BhBu4Dwm.js} +9 -9
  109. package/dist/{models-cli-C979SN3Z.js → models-cli-DVdb_TUS.js} +55 -55
  110. package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
  111. package/dist/{node-cli-DGybtex_.js → node-cli-B0ePfMUr.js} +27 -27
  112. package/dist/{node-cli-Cv7x1gGu.js → node-cli-CBW_ECu_.js} +1 -1
  113. package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
  114. package/dist/{nodes-cli-DaHOBbd4.js → nodes-cli-CJ0gxF5n.js} +3 -3
  115. package/dist/{nodes-cli-C-mEw2av.js → nodes-cli-L0gy-26E.js} +10 -10
  116. package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
  117. package/dist/{npm-registry-spec-DTqn-NXZ.js → npm-registry-spec-C-muP97-.js} +9 -9
  118. package/dist/{onboard-D-m6WTZl.js → onboard-BSxqEQfo.js} +3 -3
  119. package/dist/{onboard-CotuAZi6.js → onboard-D6GZ2t-L.js} +15 -15
  120. package/dist/{onboard-channels-Z-Jkrk5-.js → onboard-channels-BkR3MKMp.js} +1 -1
  121. package/dist/{onboard-channels-DSyynpou.js → onboard-channels-DVS9vciR.js} +4 -4
  122. package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
  123. package/dist/{onboard-helpers-CLXJ8zp0.js → onboard-helpers-CJlheOSJ.js} +8 -8
  124. package/dist/{onboard-helpers-Dhr98nj8.js → onboard-helpers-t7tI9KSA.js} +1 -1
  125. package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
  126. package/dist/{onboard-remote-BYBai0w3.js → onboard-remote-CVZ8l58S.js} +1 -1
  127. package/dist/{onboard-remote-DZdMxd1Q.js → onboard-remote-DH3bPYbE.js} +1 -1
  128. package/dist/{onboard-skills-2SUv-W7i.js → onboard-skills-Bjf7kWvg.js} +1 -1
  129. package/dist/{onboard-skills-BxJlS1Bk.js → onboard-skills-MgcaLiE6.js} +3 -3
  130. package/dist/{onboarding-BckHLQMV.js → onboarding-CrCGoZ4H.js} +7 -7
  131. package/dist/{onboarding-BnoGiOh3.js → onboarding-D-mzwQ_f.js} +12 -12
  132. package/dist/{onboarding.finalize-CbH_ShIW.js → onboarding.finalize-BYzduVFA.js} +9 -9
  133. package/dist/{onboarding.finalize-g86Q4433.js → onboarding.finalize-DBFL76p0.js} +31 -31
  134. package/dist/{onboarding.gateway-config-CEXjbEM0.js → onboarding.gateway-config-BCDgsFl8.js} +8 -8
  135. package/dist/{onboarding.gateway-config-sNSeEykB.js → onboarding.gateway-config-xWUSbtoY.js} +3 -3
  136. package/dist/{openai-model-default-BkuuK-Di.js → openai-model-default-De-UAjwg.js} +2 -2
  137. package/dist/{pairing-cli-Rsae0KnN.js → pairing-cli-CBMMCNnx.js} +5 -5
  138. package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
  139. package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
  140. package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
  141. package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
  142. package/dist/{pi-embedded-B9rtlNMc.js → pi-embedded-DGnpyHm-.js} +50 -7
  143. package/dist/{pi-embedded-helpers-D-OFjhdI.js → pi-embedded-helpers-j1JrlsI0.js} +6 -6
  144. package/dist/{pi-tools.policy-H2t-Xkfc.js → pi-tools.policy-CvAqjEH9.js} +3 -3
  145. package/dist/{plugin-auto-enable-DJBhDIMq.js → plugin-auto-enable-BXSJTxI7.js} +1 -1
  146. package/dist/{plugin-registry-CS4WgHbu.js → plugin-registry-B74FBx4U.js} +1 -1
  147. package/dist/{plugin-registry-AsC9gydF.js → plugin-registry-KP94aK4z.js} +3 -3
  148. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
  149. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +5 -1
  150. package/dist/plugin-sdk/index.js +6 -6
  151. package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +7 -2
  152. package/dist/{plugins-cli-CbByGz8z.js → plugins-cli-B4ljapU5.js} +54 -54
  153. package/dist/{plugins-cli-BY42hyHP.js → plugins-cli-Cmf3kRf5.js} +7 -7
  154. package/dist/{ports-r7LBic2V.js → ports-Bi3V_3n9.js} +1 -1
  155. package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
  156. package/dist/{program-P9F1DxBa.js → program-CGuYYumL.js} +12 -12
  157. package/dist/{program-context-CiyK6MfV.js → program-context-BzqGUxMS.js} +40 -40
  158. package/dist/{prompt-select-styled-DaNQ_GgB.js → prompt-select-styled-BVkRteee.js} +38 -38
  159. package/dist/{prompt-select-styled-B2ah467m.js → prompt-select-styled-b752FPLG.js} +7 -7
  160. package/dist/{provider-auth-helpers-Bgb_Bfp9.js → provider-auth-helpers-BKveYcEH.js} +1 -1
  161. package/dist/{provider-auth-helpers-D2FDvwT5.js → provider-auth-helpers-C6GjAO-s.js} +6 -6
  162. package/dist/{push-apns-va-DRu4U.js → push-apns-CbbWM63o.js} +4 -4
  163. package/dist/{push-apns-DnSCjFu7.js → push-apns-HNg0rTkI.js} +1 -1
  164. package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
  165. package/dist/{qmd-manager-C8-M4Pru.js → qmd-manager-Dxyue7B1.js} +19 -19
  166. package/dist/{qr-cli-1sCVaPcF.js → qr-cli-DHw6muwK.js} +3 -3
  167. package/dist/{register.agent-BuEcmVg0.js → register.agent-DbPYGG3u.js} +12 -12
  168. package/dist/{register.agent-BqdQ0s30.js → register.agent-DhS2lmWo.js} +67 -67
  169. package/dist/{register.configure-YDKJ-KQg.js → register.configure-B0M15y31.js} +14 -14
  170. package/dist/{register.configure-Dhwi-4FG.js → register.configure-ChjzXxh8.js} +70 -70
  171. package/dist/{register.maintenance-BiGvpEj-.js → register.maintenance-bzLNOqch.js} +13 -13
  172. package/dist/{register.maintenance-iMjNw9uy.js → register.maintenance-frHWf6Xs.js} +67 -67
  173. package/dist/{register.message-BIuLbESM.js → register.message-Bfukmte_.js} +7 -7
  174. package/dist/{register.message-Ao_b9s2g.js → register.message-DWB4eVII.js} +47 -47
  175. package/dist/{register.onboard-ymhSAezZ.js → register.onboard-4P8ud4Sw.js} +25 -25
  176. package/dist/{register.onboard-C4vIASed.js → register.onboard-CDsSVoFI.js} +6 -6
  177. package/dist/{register.setup-D-Jt2e1d.js → register.setup-Bp8rYeRx.js} +6 -6
  178. package/dist/{register.setup-CKs9mqtD.js → register.setup-D0I7sEGc.js} +28 -28
  179. package/dist/{register.status-health-sessions-U-azRmpb.js → register.status-health-sessions-69Gigo_H.js} +41 -41
  180. package/dist/{register.status-health-sessions-BY9hMD1s.js → register.status-health-sessions-DE2db_Uo.js} +8 -8
  181. package/dist/{register.subclis-Cibmeapc.js → register.subclis-QXO75pUm.js} +20 -20
  182. package/dist/{replies-CbXXjn9X.js → replies-B_3j7R_Q.js} +1 -1
  183. package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
  184. package/dist/{resolve-route-C1IIA6kH.js → resolve-route-Du0VftVs.js} +1 -1
  185. package/dist/{routes-ivqbutvM.js → routes-BwTUoI5h.js} +10 -10
  186. package/dist/{rpc-BnAKPQDB.js → rpc-BBtNUyxN.js} +1 -1
  187. package/dist/{rpc-DjqFrbOc.js → rpc-DTqyJZKO.js} +1 -1
  188. package/dist/{run-main-BhEQjKtM.js → run-main-MD8Z8ydF.js} +20 -20
  189. package/dist/{sandbox-BkznAPKO.js → sandbox-CZGTCone.js} +18 -18
  190. package/dist/{sandbox-cli-Bb9cBtBH.js → sandbox-cli-DEtGT_4y.js} +13 -13
  191. package/dist/{security-cli-CS-ZT1LE.js → security-cli-DZ-6QDRB.js} +3 -3
  192. package/dist/{security-cli-JKsf9SIu.js → security-cli-iJpHPABF.js} +29 -29
  193. package/dist/{send-B0jHSNMF.js → send-CxjvucMO.js} +7 -7
  194. package/dist/{server-context-ChcbJgNo.js → server-context-DXdk410X.js} +5 -5
  195. package/dist/{server-methods-B2tykucj.js → server-methods-DHWxmfIu.js} +67 -61
  196. package/dist/{server-methods-CWxr5b-w.js → server-methods-DTkVQH8Q.js} +18 -12
  197. package/dist/{server-node-events-ClDEcUTJ.js → server-node-events-C0smPxrR.js} +8 -8
  198. package/dist/{server-node-events-BKqszk_a.js → server-node-events-DHSiqnRS.js} +48 -48
  199. package/dist/{service-e6MzlLCd.js → service-CRZoXO_n.js} +15 -15
  200. package/dist/{session-dirs-C9E2G0yZ.js → session-dirs-a00Ad2SO.js} +2 -2
  201. package/dist/{session-utils-Cs1jlD-q.js → session-utils-CJhcRx3E.js} +14 -14
  202. package/dist/{sessions-Dxf5Kjig.js → sessions-BCc3THTm.js} +10 -10
  203. package/dist/{shared-1xPo9ygd.js → shared-C39SiDDJ.js} +1 -1
  204. package/dist/{shared-COtpr3Ad.js → shared-Dh-O8nRd.js} +3 -3
  205. package/dist/{skill-commands-DDGGlq68.js → skill-commands-DWvXs3lz.js} +4 -4
  206. package/dist/{skill-scanner-BCgVcIwi.js → skill-scanner-CIlHPszT.js} +5 -5
  207. package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
  208. package/dist/{skills-cli-B-7TY-vS.js → skills-cli-CD9s3cgm.js} +7 -7
  209. package/dist/{skills-install-Dwzsjoc8.js → skills-install-BTa9IuQ6.js} +3 -3
  210. package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
  211. package/dist/{skills-status-BKX1PjCc.js → skills-status-DLnCHUZ2.js} +1 -1
  212. package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
  213. package/dist/{status-ojZB_Lrf.js → status-BEZotN01.js} +5 -5
  214. package/dist/{status-DPGFZPpp.js → status-DUbs9rVu.js} +3 -3
  215. package/dist/{status-DHBVIMyL.js → status-ISN-LC9F.js} +23 -23
  216. package/dist/{status-K1k4g3Ai.js → status-OTYFx93W.js} +1 -1
  217. package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
  218. package/dist/{subagent-registry-BOt7g9hn.js → subagent-registry-CVhLz4p3.js} +43 -8
  219. package/dist/{symframe-cli-CrUtJw_7.js → symframe-cli-BSAQ05fb.js} +22 -6
  220. package/dist/{symframe-cli-CX3dINPw.js → symframe-cli-CPE5nxuJ.js} +28 -12
  221. package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
  222. package/dist/{synthesis-Bc2QkGvt.js → synthesis-C1mZnGqD.js} +2 -2
  223. package/dist/{synthesis-D91XE0n4.js → synthesis-CDPVZw2P.js} +2 -2
  224. package/dist/{synthesis-DmqicCsT.js → synthesis-DkHCk0El.js} +45 -45
  225. package/dist/{synthesis-BIQLrbys.js → synthesis-RhT991Ni.js} +6 -6
  226. package/dist/{system-cli-CvN-Wq9U.js → system-cli-Dy6_0Qp7.js} +3 -3
  227. package/dist/{system-cli-DUHzCGfK.js → system-cli-nWJwLo85.js} +7 -7
  228. package/dist/{systemd-CUIM0n5P.js → systemd-CsoVnIbM.js} +5 -5
  229. package/dist/{systemd-hints-CsrzMCTD.js → systemd-hints-QISwLlFU.js} +6 -6
  230. package/dist/{systemd-linger-BzYk7A6M.js → systemd-linger-BnhuRdbt.js} +1 -1
  231. package/dist/{tui-DCqVZ6sC.js → tui-ZL7IGA7l.js} +7 -7
  232. package/dist/{tui-cli-DqvgN5ng.js → tui-cli-B-DKpOxE.js} +3 -3
  233. package/dist/{tui-cli-CI-P3sei.js → tui-cli-CEpMtmhP.js} +19 -19
  234. package/dist/{tui-BxgdImL_.js → tui-h57L-YTX.js} +2 -2
  235. package/dist/{unified-runner-CdJx7yN8.js → unified-runner-Cppo8O8z.js} +50 -7
  236. package/dist/{unified-runner-CznU7Ad0.js → unified-runner-CsadjpQa.js} +139 -104
  237. package/dist/{update-yYduAjKd.js → update-Cb0Fmxic.js} +3 -3
  238. package/dist/{update-check-BCL_K7kx.js → update-check-u6Jgr1cz.js} +5 -5
  239. package/dist/{update-cli-DBoIBDNe.js → update-cli-48-Nah-Y.js} +77 -77
  240. package/dist/{update-cli-Dn6QQZLd.js → update-cli-D9g9s187.js} +14 -14
  241. package/dist/{update-runner-BLV8SI96.js → update-runner-G2YgEATs.js} +15 -15
  242. package/dist/{webhooks-cli-D5k-Y2A8.js → webhooks-cli-DjUITimx.js} +4 -4
  243. package/dist/{with-timeout-DPR4A2dx.js → with-timeout-CLrF-Yr_.js} +1 -1
  244. package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
  245. package/dist/{wsl-CglTdtlb.js → wsl-DTi7eX-V.js} +2 -2
  246. package/extensions/memory-core/package.json +1 -1
  247. package/extensions/msteams/CHANGELOG.md +12 -0
  248. package/extensions/msteams/package.json +1 -1
  249. package/extensions/open-prose/package.json +1 -1
  250. package/extensions/outlook/package.json +1 -1
  251. package/extensions/slack/package.json +1 -1
  252. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
3
3
  import { c as escapeRegExp } from "./utils-CTPsqyE_.js";
4
- import { C as DEFAULT_MODEL, m as resolveConfiguredModelRef, w as DEFAULT_PROVIDER } from "./model-selection-7wdmO-Iw.js";
4
+ import { C as DEFAULT_MODEL, m as resolveConfiguredModelRef, w as DEFAULT_PROVIDER } from "./model-selection-CCTzD29o.js";
5
5
  import { n as listChannelDocks } from "./dock-hF45sewN.js";
6
6
  import { i as listThinkingLevels } from "./thinking-COroyVA5.js";
7
7
  import { t as isCommandFlagEnabled } from "./commands-DUzLGgEZ.js";
@@ -2,10 +2,10 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
3
3
  import { f as pathExists } from "./utils-CTPsqyE_.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-CHbO_DkH.js";
5
- import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-CiyK6MfV.js";
5
+ import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-BzqGUxMS.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
8
- import fs from "node:fs/promises";
8
+ import fsPromises from "node:fs/promises";
9
9
  import { Option } from "commander";
10
10
 
11
11
  //#region src/cli/completion-cli.ts
@@ -62,11 +62,11 @@ function getCompletionScript(shell, program) {
62
62
  }
63
63
  async function writeCompletionCache(params) {
64
64
  const cacheDir = resolveCompletionCacheDir();
65
- await fs.mkdir(cacheDir, { recursive: true });
65
+ await fsPromises.mkdir(cacheDir, { recursive: true });
66
66
  for (const shell of params.shells) {
67
67
  const script = getCompletionScript(shell, params.program);
68
68
  const targetPath = resolveCompletionCachePath(shell, params.binName);
69
- await fs.writeFile(targetPath, script, "utf-8");
69
+ await fsPromises.writeFile(targetPath, script, "utf-8");
70
70
  }
71
71
  }
72
72
  function formatCompletionSourceLine(shell, binName, cachePath) {
@@ -124,7 +124,7 @@ async function isCompletionInstalled(shell, binName = "symi") {
124
124
  if (!await pathExists(profilePath)) return false;
125
125
  const cachePathCandidate = resolveCompletionCachePath(shell, binName);
126
126
  const cachedPath = await pathExists(cachePathCandidate) ? cachePathCandidate : null;
127
- return (await fs.readFile(profilePath, "utf-8")).split("\n").some((line) => isCompletionProfileHeader(line) || isCompletionProfileLine(line, binName, cachedPath));
127
+ return (await fsPromises.readFile(profilePath, "utf-8")).split("\n").some((line) => isCompletionProfileHeader(line) || isCompletionProfileLine(line, binName, cachedPath));
128
128
  }
129
129
  /**
130
130
  * Check if the profile uses the slow dynamic completion pattern.
@@ -134,7 +134,7 @@ async function usesSlowDynamicCompletion(shell, binName = "symi") {
134
134
  const profilePath = getShellProfilePath(shell);
135
135
  if (!await pathExists(profilePath)) return false;
136
136
  const cachePath = resolveCompletionCachePath(shell, binName);
137
- const lines = (await fs.readFile(profilePath, "utf-8")).split("\n");
137
+ const lines = (await fsPromises.readFile(profilePath, "utf-8")).split("\n");
138
138
  for (const line of lines) if (isSlowDynamicCompletionLine(line, binName) && !line.includes(cachePath)) return true;
139
139
  return false;
140
140
  }
@@ -183,7 +183,7 @@ async function installCompletion(shell, yes, binName = "symi") {
183
183
  } else if (shell === "bash") {
184
184
  profilePath = path.join(home, ".bashrc");
185
185
  try {
186
- await fs.access(profilePath);
186
+ await fsPromises.access(profilePath);
187
187
  } catch {
188
188
  profilePath = path.join(home, ".bash_profile");
189
189
  }
@@ -197,13 +197,13 @@ async function installCompletion(shell, yes, binName = "symi") {
197
197
  }
198
198
  try {
199
199
  try {
200
- await fs.access(profilePath);
200
+ await fsPromises.access(profilePath);
201
201
  } catch {
202
202
  if (!yes) console.warn(`Profile not found at ${profilePath}. Created a new one.`);
203
- await fs.mkdir(path.dirname(profilePath), { recursive: true });
204
- await fs.writeFile(profilePath, "", "utf-8");
203
+ await fsPromises.mkdir(path.dirname(profilePath), { recursive: true });
204
+ await fsPromises.writeFile(profilePath, "", "utf-8");
205
205
  }
206
- const update = updateCompletionProfile(await fs.readFile(profilePath, "utf-8"), binName, cachePath, sourceLine);
206
+ const update = updateCompletionProfile(await fsPromises.readFile(profilePath, "utf-8"), binName, cachePath, sourceLine);
207
207
  if (!update.changed) {
208
208
  if (!yes) console.log(`Completion already installed in ${profilePath}`);
209
209
  return;
@@ -212,7 +212,7 @@ async function installCompletion(shell, yes, binName = "symi") {
212
212
  const action = update.hadExisting ? "Updating" : "Installing";
213
213
  console.log(`${action} completion in ${profilePath}...`);
214
214
  }
215
- await fs.writeFile(profilePath, update.next, "utf-8");
215
+ await fsPromises.writeFile(profilePath, update.next, "utf-8");
216
216
  if (!yes) console.log(`Completion installed. Restart your shell or run: source ${profilePath}`);
217
217
  } catch (err) {
218
218
  console.error(`Failed to install completion: ${err}`);
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Mt as pathExists, l as routeLogsToStderr, yt as resolveStateDir } from "./entry.js";
3
- import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-Cibmeapc.js";
4
- import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-CLm8TAH3.js";
3
+ import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-QXO75pUm.js";
4
+ import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-DBbzZvh6.js";
5
5
  import { t as getProgramContext } from "./program-context-B_0V80zV.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
@@ -3,8 +3,8 @@ import { t as CHANNEL_IDS } from "./registry-Sbac4a4z.js";
3
3
  import { _ as resolveStateDir, a as resolveCanonicalConfigPath, b as resolveRequiredHomeDir, c as resolveDefaultConfigCandidates, d as resolveIsNixMode, f as resolveLegacyStateDir, g as resolveOAuthPath, h as resolveOAuthDir, i as isNixMode, l as resolveGatewayLockDir, m as resolveNewStateDir, n as DEFAULT_GATEWAY_PORT, o as resolveConfigPath, p as resolveLegacyStateDirs, r as STATE_DIR, s as resolveConfigPathCandidate, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-By0XjHBk.js";
4
4
  import { S as isPlainObject$1, h as resolveUserPath, p as resolveConfigDir, u as isRecord } from "./utils-CTPsqyE_.js";
5
5
  import { o as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-DUSb7CCb.js";
6
- import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
7
- import { S as DEFAULT_CONTEXT_TOKENS, d as parseModelRef } from "./model-selection-7wdmO-Iw.js";
6
+ import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-Bnsyyeci.js";
7
+ import { S as DEFAULT_CONTEXT_TOKENS, d as parseModelRef } from "./model-selection-CCTzD29o.js";
8
8
  import { a as shouldDeferShellEnvFallback, i as resolveShellEnvFallbackTimeoutMs, o as shouldEnableShellEnvFallback, r as loadShellEnvFallback } from "./shell-env-Dc3iU7HK.js";
9
9
  import { d as resolveEnableState, f as resolveMemorySlotDecision, g as normalizeEnvVarKey, h as isDangerousHostEnvVarName, n as loadPluginManifestRegistry, u as normalizePluginsConfig } from "./manifest-registry-D1MLZEjS.js";
10
10
  import { i as isPathInside } from "./legacy-names-BQ9vKISY.js";
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
201
201
  }
202
202
  function registerConfigCli(program) {
203
203
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
204
- const { configureCommandFromSectionsArg } = await import("./configure-DmzM0S7L.js").then((n) => n.t);
204
+ const { configureCommandFromSectionsArg } = await import("./configure-ryB8EvyP.js").then((n) => n.t);
205
205
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
206
206
  });
207
207
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -4,9 +4,9 @@ import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
6
6
  import "./exec-DuYbft0z.js";
7
- import "./agent-scope-DOrZjOnW.js";
8
- import "./model-selection-7wdmO-Iw.js";
9
- import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
7
+ import "./agent-scope-Bnsyyeci.js";
8
+ import "./model-selection-CCTzD29o.js";
9
+ import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-BngIfn5l.js";
10
10
  import "./boolean-CbZoNRMn.js";
11
11
  import "./env-BRnPI9sO.js";
12
12
  import "./shell-env-Dc3iU7HK.js";
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
206
206
  }
207
207
  function registerConfigCli(program) {
208
208
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
209
- const { configureCommandFromSectionsArg } = await import("./configure-5md67tCP.js").then((n) => n.t);
209
+ const { configureCommandFromSectionsArg } = await import("./configure-Bqz2Hvnf.js").then((n) => n.t);
210
210
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
211
211
  });
212
212
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -4,14 +4,14 @@ import { v as shortenHomePath } from "./utils-CTPsqyE_.js";
4
4
  import "./subsystem-CHbO_DkH.js";
5
5
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
6
6
  import "./exec-DuYbft0z.js";
7
- import "./agent-scope-DOrZjOnW.js";
8
- import "./model-selection-7wdmO-Iw.js";
9
- import { o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
7
+ import "./agent-scope-Bnsyyeci.js";
8
+ import "./model-selection-CCTzD29o.js";
9
+ import { o as readConfigFileSnapshot } from "./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
- import "./sessions-Dxf5Kjig.js";
14
+ import "./sessions-BCc3THTm.js";
15
15
  import "./dock-hF45sewN.js";
16
16
  import "./message-channel-DgjXWzf-.js";
17
17
  import "./plugins-CF5skkHh.js";
@@ -20,8 +20,8 @@ import { c as shouldMigrateStateFromPath } from "./argv-D6PT4jl6.js";
20
20
  import "./catalog-BptA-dUv.js";
21
21
  import "./prompt-style-olk5zI5k.js";
22
22
  import "./note-D9FXI2qW.js";
23
- import "./plugin-auto-enable-DJBhDIMq.js";
24
- import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-C52W1uUK.js";
23
+ import "./plugin-auto-enable-BXSJTxI7.js";
24
+ import { t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-ljVnQJjo.js";
25
25
 
26
26
  //#region src/cli/program/config-guard.ts
27
27
  const ALLOWED_INVALID_COMMANDS = new Set([
@@ -1,5 +1,5 @@
1
1
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
2
- import { o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
2
+ import { o as readConfigFileSnapshot } from "./config-BngIfn5l.js";
3
3
 
4
4
  //#region src/commands/config-validation.ts
5
5
  async function requireValidConfigSnapshot(runtime) {
@@ -2,9 +2,9 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-By0XjHBk.js";
3
3
  import { h as resolveUserPath, v as shortenHomePath } from "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
- import { b as ensureAuthProfileStore } from "./auth-profiles-Ce7R_25e.js";
5
+ import { b as ensureAuthProfileStore } from "./auth-profiles-D5nYBj_Z.js";
6
6
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
7
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
7
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./config-BngIfn5l.js";
8
8
  import { a as findTailscaleBinary } from "./tailscale-DpKBMIvx.js";
9
9
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
10
10
  import { n as withProgress } from "./progress-swt2y17x.js";
@@ -12,22 +12,22 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
12
12
  import { t as note$1 } from "./note-D9FXI2qW.js";
13
13
  import { t as WizardCancelledError } from "./prompts-CNzp9M83.js";
14
14
  import { t as createClackPrompter } from "./clack-prompter-BpcKjPIh.js";
15
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-DSyynpou.js";
16
- import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DlQla_dA.js";
17
- import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-CLXJ8zp0.js";
18
- import { t as resolveGatewayService } from "./service-e6MzlLCd.js";
19
- import { r as healthCommand } from "./health-DpE9GWGn.js";
20
- import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CJQ97d4u.js";
15
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-DVS9vciR.js";
16
+ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CKn0wmCk.js";
17
+ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-CJlheOSJ.js";
18
+ import { t as resolveGatewayService } from "./service-CRZoXO_n.js";
19
+ import { r as healthCommand } from "./health-Bc1wmAO5.js";
20
+ import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B8B9z_Ll.js";
21
21
  import { n as logConfigUpdated } from "./logging-DDnP1BTp.js";
22
22
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BAFfYZeR.js";
23
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-CUvx59kv.js";
24
- import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-Cf6UgQEh.js";
25
- import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BzYk7A6M.js";
26
- import { a as promptCustomApiConfig } from "./onboard-custom-BcRYreNG.js";
23
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-DKRHawfp.js";
24
+ import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-Dpkr5xBW.js";
25
+ import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BnhuRdbt.js";
26
+ import { a as promptCustomApiConfig } from "./onboard-custom-DnDrvxSg.js";
27
27
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-C_NtZ3JP.js";
28
28
  import { t as formatHealthCheckFailure } from "./health-format-Bxg84_f4.js";
29
- import { n as promptRemoteGatewayConfig } from "./onboard-remote-BYBai0w3.js";
30
- import { n as setupSkills } from "./onboard-skills-BxJlS1Bk.js";
29
+ import { n as promptRemoteGatewayConfig } from "./onboard-remote-CVZ8l58S.js";
30
+ import { n as setupSkills } from "./onboard-skills-MgcaLiE6.js";
31
31
  import { confirm, intro, outro, select, text } from "@clack/prompts";
32
32
 
33
33
  //#region src/commands/configure.shared.ts
@@ -10,22 +10,22 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
10
10
  import { t as note$1 } from "./note-BIAQpZxi.js";
11
11
  import { t as WizardCancelledError } from "./prompts-D4yOwSll.js";
12
12
  import { t as createClackPrompter } from "./clack-prompter-BMQT37oC.js";
13
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Z-Jkrk5-.js";
13
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-BkR3MKMp.js";
14
14
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-AkgOtHR6.js";
15
- import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-Dhr98nj8.js";
15
+ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-t7tI9KSA.js";
16
16
  import { t as resolveGatewayService } from "./service-DYpU1ajf.js";
17
- import { r as healthCommand } from "./health-znS85U-F.js";
17
+ import { r as healthCommand } from "./health-Dkwuq8ta.js";
18
18
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dnz69KRU.js";
19
19
  import { n as logConfigUpdated } from "./logging-Ev3fNJEG.js";
20
20
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-D6A5uuj3.js";
21
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice--DymOp5O.js";
21
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-5SLfZiQ7.js";
22
22
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-DvP8ViSf.js";
23
23
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-CctFkWNE.js";
24
24
  import { a as promptCustomApiConfig } from "./onboard-custom-CfKvdcJ5.js";
25
25
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-qGjACkoi.js";
26
26
  import { t as formatHealthCheckFailure } from "./health-format-6tfMqkNX.js";
27
- import { n as promptRemoteGatewayConfig } from "./onboard-remote-DZdMxd1Q.js";
28
- import { n as setupSkills } from "./onboard-skills-2SUv-W7i.js";
27
+ import { n as promptRemoteGatewayConfig } from "./onboard-remote-DH3bPYbE.js";
28
+ import { n as setupSkills } from "./onboard-skills-Bjf7kWvg.js";
29
29
  import { confirm, intro, outro, select, text } from "@clack/prompts";
30
30
 
31
31
  //#region src/commands/configure.shared.ts
@@ -2,10 +2,10 @@ import "./registry-Sbac4a4z.js";
2
2
  import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
5
- import { l as parseEmbedding, r as cosineSimilarity } from "./internal-DVCddhhN.js";
5
+ import { l as parseEmbedding, r as cosineSimilarity } from "./internal-csqU78gW.js";
6
6
  import crypto from "node:crypto";
7
7
  import path from "node:path";
8
- import fs from "node:fs/promises";
8
+ import fsPromises from "node:fs/promises";
9
9
 
10
10
  //#region src/memory/consolidate.ts
11
11
  const log = createSubsystemLogger("memory/consolidate");
@@ -346,7 +346,7 @@ async function stagePromote(params) {
346
346
  };
347
347
  const now = params.now ?? Date.now();
348
348
  const memoryDir = path.join(params.workspaceDir, "memory");
349
- await fs.mkdir(memoryDir, { recursive: true }).catch(() => {});
349
+ await fsPromises.mkdir(memoryDir, { recursive: true }).catch(() => {});
350
350
  const corePath = path.join(memoryDir, "symi-core.md");
351
351
  const beliefsPath = path.join(memoryDir, "symi-beliefs.md");
352
352
  params.db.prepare(`UPDATE chunks SET promoted_to = NULL WHERE promoted_to = ?`).run(SYMI_CORE_PATH);
@@ -386,7 +386,7 @@ async function stagePromote(params) {
386
386
  sections: sectionLines,
387
387
  now
388
388
  });
389
- await fs.writeFile(corePath, symiCoreContent, "utf-8");
389
+ await fsPromises.writeFile(corePath, symiCoreContent, "utf-8");
390
390
  const merged = mergeBeliefs({
391
391
  existing: await readExistingBeliefs(beliefsPath),
392
392
  fresh: params.synthesizedBeliefs ?? [],
@@ -396,7 +396,7 @@ async function stagePromote(params) {
396
396
  beliefs: merged,
397
397
  now
398
398
  });
399
- await fs.writeFile(beliefsPath, symiBeliefsContent, "utf-8");
399
+ await fsPromises.writeFile(beliefsPath, symiBeliefsContent, "utf-8");
400
400
  log.debug("consolidate.promote", {
401
401
  promoted,
402
402
  sections: CORE_SECTIONS.length,
@@ -596,7 +596,7 @@ function mergeBeliefs(params) {
596
596
  return [...byHash.values()].toSorted((a, b) => b.confidence - a.confidence).slice(0, params.cap);
597
597
  }
598
598
  async function readExistingBeliefs(filePath) {
599
- const content = await fs.readFile(filePath, "utf-8").catch(() => "");
599
+ const content = await fsPromises.readFile(filePath, "utf-8").catch(() => "");
600
600
  if (!content) return [];
601
601
  const out = [];
602
602
  for (const rawLine of content.split("\n")) {
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
3
- import { i as loadConfig } from "./config-B4jkreCN.js";
4
- import { x as ensureChromeExtensionRelayServer } from "./chrome-DJChpTwP.js";
5
- import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-ChcbJgNo.js";
3
+ import { i as loadConfig } from "./config-BngIfn5l.js";
4
+ import { x as ensureChromeExtensionRelayServer } from "./chrome-38OnGyuN.js";
5
+ import { a as resolveProfile, i as resolveBrowserConfig, n as listKnownProfileNames, p as ensureBrowserControlAuth, t as createBrowserRouteContext } from "./server-context-DXdk410X.js";
6
6
 
7
7
  //#region src/browser/server-lifecycle.ts
8
8
  async function ensureExtensionRelayForProfiles(params) {
@@ -80,7 +80,7 @@ async function stopBrowserControlService() {
80
80
  });
81
81
  state = null;
82
82
  try {
83
- await (await import("./pw-ai-BiBvIJzd.js")).closePlaywrightBrowserConnection();
83
+ await (await import("./pw-ai-CP5pn3eU.js")).closePlaywrightBrowserConnection();
84
84
  } catch {}
85
85
  }
86
86
 
@@ -853,22 +853,30 @@ body {
853
853
  the now-removed reasoning panel up into the header row, where it
854
854
  still pulses on agent activity (app.js:840-845 untouched, single id
855
855
  continues to bind that semantic). */
856
+ /* Stage C.4 (3.5.25): switched the symframe from flex to grid. The
857
+ flex-based layout (flex: 1 1 0 + min-height: 0 + child grid
858
+ overflow: hidden) intermittently failed to bound the substrate's
859
+ intrinsic content size — observed on real hardware where the
860
+ substrate's reasoning entries still pushed the AWAITING footer
861
+ past the viewport.
862
+
863
+ Grid handles the "auto-row + 1fr-row + auto-row" pattern natively:
864
+ the 1fr row is constrained to whatever space remains after the
865
+ two auto rows resolve. There's no flex-basis-vs-content-size
866
+ negotiation to get wrong. The grid track shrinks to fit and the
867
+ substrate's overflow-y reliably engages. */
856
868
  .symframe {
857
- display: flex;
858
- flex-direction: column;
869
+ display: grid;
870
+ grid-template-rows: auto 1fr auto;
859
871
  gap: 8px;
860
872
  height: 100%;
861
- /* Stage C.2: contain the column so the substrate's internal scroll
862
- engages instead of bursting the parent. Without overflow:hidden
863
- here, the metrics-col scroll absorbs everything and substrate
864
- overflow-y becomes a no-op. */
865
873
  overflow: hidden;
866
874
  }
867
875
  .symframe-header {
868
876
  padding: 8px 10px 10px;
869
877
  border-bottom: 1px solid rgba(0, 212, 255, 0.12);
870
878
  margin-bottom: 4px;
871
- flex-shrink: 0;
879
+ min-height: 0;
872
880
  }
873
881
  .symframe-header-row {
874
882
  display: flex;
@@ -901,6 +909,158 @@ body {
901
909
  line-height: 1.4;
902
910
  }
903
911
 
912
+ /* ── Stage D (3.5.26) mode chips + per-mode layout ───────────────── */
913
+ .symframe-modes {
914
+ display: flex;
915
+ align-items: center;
916
+ gap: 6px;
917
+ margin-top: 6px;
918
+ }
919
+ .mode-chip {
920
+ width: 10px;
921
+ height: 10px;
922
+ border-radius: 50%;
923
+ border: 1px solid rgba(0, 212, 255, 0.32);
924
+ background: transparent;
925
+ padding: 0;
926
+ cursor: pointer;
927
+ transition:
928
+ background 0.2s ease,
929
+ border-color 0.2s ease,
930
+ transform 0.15s ease;
931
+ flex-shrink: 0;
932
+ }
933
+ .mode-chip:hover {
934
+ border-color: var(--accent-cyan);
935
+ background: rgba(0, 212, 255, 0.15);
936
+ transform: scale(1.15);
937
+ }
938
+ .mode-chip.active {
939
+ background: var(--accent-cyan);
940
+ border-color: var(--accent-cyan);
941
+ box-shadow: 0 0 6px rgba(0, 212, 255, 0.5);
942
+ }
943
+ .mode-auto {
944
+ margin-left: auto;
945
+ padding: 2px 8px;
946
+ font-family: var(--font-mono);
947
+ font-size: 8px;
948
+ font-weight: 700;
949
+ letter-spacing: 0.12em;
950
+ color: var(--accent-cyan);
951
+ background: rgba(0, 212, 255, 0.08);
952
+ border: 1px solid rgba(0, 212, 255, 0.32);
953
+ border-radius: 8px;
954
+ cursor: pointer;
955
+ transition:
956
+ background 0.15s ease,
957
+ color 0.15s ease;
958
+ }
959
+ .mode-auto:hover {
960
+ background: rgba(0, 212, 255, 0.2);
961
+ color: var(--text);
962
+ }
963
+
964
+ /* ── Per-mode layout overrides ───────────────────────────────── */
965
+ /* Default (ambient): inherits the base .symframe grid above —
966
+ auto / 1fr / auto rows. No override needed. */
967
+
968
+ /* Focus mode: hide AWAITING; dim substrate to a soft texture; the
969
+ foreground card takes the visual stage. If a focusedId is set, the
970
+ matching card gets a cyan halo + others fade out. */
971
+ .symframe[data-mode="focus"] {
972
+ grid-template-rows: auto 1fr 0;
973
+ }
974
+ .symframe[data-mode="focus"] .symframe-awaiting {
975
+ display: none;
976
+ }
977
+ .symframe[data-mode="focus"] .symframe-substrate {
978
+ opacity: 0.2;
979
+ pointer-events: none;
980
+ filter: blur(2px);
981
+ transition:
982
+ opacity 0.4s ease,
983
+ filter 0.4s ease;
984
+ }
985
+ /* When focusedId is set, dim non-matching cards. */
986
+ .symframe[data-mode="focus"][data-focus-id] .symframe-card-dynamic {
987
+ opacity: 0.25;
988
+ transition: opacity 0.4s ease;
989
+ }
990
+ .symframe[data-mode="focus"][data-focus-id] .symframe-card-dynamic:hover {
991
+ opacity: 0.6;
992
+ }
993
+ /* The focused card gets a halo and stays sharp. Selector is built
994
+ dynamically by symframe.js via the [data-focus-id] attribute and
995
+ the card's own [data-card-id]; CSS can't directly match across
996
+ them, so we use a generic "the card whose id matches" pattern via
997
+ :has() (when supported) plus a fallback class added by JS. */
998
+ .symframe[data-mode="focus"] .symframe-card-focused {
999
+ opacity: 1 !important;
1000
+ box-shadow:
1001
+ 0 0 24px rgba(0, 212, 255, 0.35),
1002
+ inset 0 1px 0 rgba(255, 255, 255, 0.06),
1003
+ 0 4px 12px rgba(0, 0, 0, 0.25);
1004
+ border-color: var(--accent-cyan) !important;
1005
+ transform: scale(1.02);
1006
+ transform-origin: center;
1007
+ transition:
1008
+ box-shadow 0.4s ease,
1009
+ border-color 0.4s ease,
1010
+ transform 0.4s ease;
1011
+ }
1012
+
1013
+ /* Awaiting mode: footer dominant; cards collapse to title strips;
1014
+ substrate dims to a status band. */
1015
+ .symframe[data-mode="awaiting"] {
1016
+ grid-template-rows: auto minmax(60px, 1fr) 4fr;
1017
+ }
1018
+ .symframe[data-mode="awaiting"] .symframe-substrate {
1019
+ opacity: 0.35;
1020
+ }
1021
+ .symframe[data-mode="awaiting"] .symframe-card-dynamic {
1022
+ max-height: 38px;
1023
+ overflow: hidden;
1024
+ transition:
1025
+ max-height 0.4s ease,
1026
+ opacity 0.4s ease;
1027
+ }
1028
+ .symframe[data-mode="awaiting"] .symframe-card-dynamic .symframe-card-body,
1029
+ .symframe[data-mode="awaiting"] .symframe-card-dynamic .symframe-card-actions {
1030
+ display: none;
1031
+ }
1032
+ .symframe[data-mode="awaiting"] .symframe-awaiting {
1033
+ max-height: none;
1034
+ background: rgba(0, 212, 255, 0.04);
1035
+ border-radius: 10px;
1036
+ margin-top: 8px;
1037
+ }
1038
+ .symframe[data-mode="awaiting"] .awaiting-list {
1039
+ max-height: none;
1040
+ }
1041
+
1042
+ /* Quiet mode: only the substrate breathes. Cards + AWAITING hidden.
1043
+ This is the "deep think" or "nothing to surface" posture. */
1044
+ .symframe[data-mode="quiet"] {
1045
+ grid-template-rows: auto 1fr;
1046
+ }
1047
+ .symframe[data-mode="quiet"] .symframe-cards,
1048
+ .symframe[data-mode="quiet"] .symframe-awaiting {
1049
+ display: none;
1050
+ }
1051
+
1052
+ /* Reduced-motion: drop the per-mode transitions. The data-mode
1053
+ attribute still flips; just no animated handoff between modes. */
1054
+ @media (prefers-reduced-motion: reduce) {
1055
+ .symframe[data-mode="focus"] .symframe-substrate,
1056
+ .symframe[data-mode="focus"][data-focus-id] .symframe-card-dynamic,
1057
+ .symframe[data-mode="focus"] .symframe-card-focused,
1058
+ .symframe[data-mode="awaiting"] .symframe-substrate,
1059
+ .symframe[data-mode="awaiting"] .symframe-card-dynamic {
1060
+ transition: none;
1061
+ }
1062
+ }
1063
+
904
1064
  /* The stack — substrate + cards share a single grid cell so they
905
1065
  overlap on the z-axis. Cards on top (z:1) with backdrop-filter let
906
1066
  the substrate (z:0) show through.
@@ -921,7 +1081,6 @@ body {
921
1081
  */
922
1082
  .symframe-stack {
923
1083
  position: relative;
924
- flex: 1 1 0;
925
1084
  min-height: 0;
926
1085
  display: grid;
927
1086
  grid-template-areas: "overlay";
@@ -1255,7 +1414,6 @@ body {
1255
1414
  Click a schedule row → existing schedule edit modal.
1256
1415
  Click [+ Add] → menu with "Spawn subagent" / "Add scheduled task". */
1257
1416
  .symframe-awaiting {
1258
- flex-shrink: 0;
1259
1417
  position: relative;
1260
1418
  border-top: 1px solid rgba(0, 212, 255, 0.12);
1261
1419
  margin-top: 8px;
@@ -1263,6 +1421,16 @@ body {
1263
1421
  display: flex;
1264
1422
  flex-direction: column;
1265
1423
  gap: 4px;
1424
+ /* Stage C.4: cap the AWAITING footer so it can't claim more than ~40%
1425
+ of the column height even if the user has many cron jobs. The
1426
+ list inside still scrolls (max-height: 200px on .awaiting-list)
1427
+ so visible item count stays sensible. This is a defensive cap —
1428
+ the grid auto-row already takes only what the footer needs, but
1429
+ a cap stops a pathological case from squeezing the substrate to
1430
+ nothing. */
1431
+ max-height: 40%;
1432
+ min-height: 0;
1433
+ overflow: hidden;
1266
1434
  }
1267
1435
  .awaiting-header {
1268
1436
  display: flex;
@@ -202,6 +202,47 @@
202
202
  <span class="reasoning-live-dot" id="reasoning-live-dot"></span>
203
203
  <span class="symframe-count" id="symframe-count"></span>
204
204
  </div>
205
+ <!-- Stage D (3.5.26): mode selector chips. Agent picks via -->
206
+ <!-- display_artifact setMode; user can override by clicking a chip. -->
207
+ <!-- The AUTO pill appears only while userOverride is active; click -->
208
+ <!-- it to release control back to the agent. -->
209
+ <div class="symframe-modes" id="symframe-modes" role="tablist" aria-label="Panel mode">
210
+ <button
211
+ type="button"
212
+ class="mode-chip"
213
+ data-mode="ambient"
214
+ role="tab"
215
+ title="Ambient — substrate + cards + awaiting visible"
216
+ aria-label="Ambient mode"
217
+ ></button>
218
+ <button
219
+ type="button"
220
+ class="mode-chip"
221
+ data-mode="focus"
222
+ role="tab"
223
+ title="Focus — one card centered, substrate dim, footer hidden"
224
+ aria-label="Focus mode"
225
+ ></button>
226
+ <button
227
+ type="button"
228
+ class="mode-chip"
229
+ data-mode="awaiting"
230
+ role="tab"
231
+ title="Awaiting — footer prominent, cards collapsed"
232
+ aria-label="Awaiting mode"
233
+ ></button>
234
+ <button
235
+ type="button"
236
+ class="mode-chip"
237
+ data-mode="quiet"
238
+ role="tab"
239
+ title="Quiet — substrate only, cards + footer hidden"
240
+ aria-label="Quiet mode"
241
+ ></button>
242
+ <button type="button" class="mode-auto" id="mode-auto" hidden title="Release to agent">
243
+ AUTO
244
+ </button>
245
+ </div>
205
246
  <div class="symframe-sub">window into the agent's mind</div>
206
247
  </div>
207
248
  <div class="symframe-stack">
@@ -987,5 +1028,6 @@
987
1028
  <script src="js/symframe.js"></script>
988
1029
  <script src="js/symframe-substrate.js"></script>
989
1030
  <script src="js/symframe-awaiting.js"></script>
1031
+ <script src="js/symframe-modes.js"></script>
990
1032
  </body>
991
1033
  </html>