@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
@@ -4,8 +4,8 @@ import "./model-selection-CMx1evaF.js";
4
4
  import "./manifest-registry-CVLmi8rz.js";
5
5
  import "./config-D7TcU4qN.js";
6
6
  import "./shell-env-CTYaxUs_.js";
7
- import "./client-yVTJ5jx5.js";
8
- import "./call-C2urR5Fj.js";
7
+ import "./client-BOd5o3Kp.js";
8
+ import "./call-DTshgdlW.js";
9
9
  import "./message-channel-DXToSaWK.js";
10
10
  import "./pairing-token-B-OTYROz.js";
11
11
  import "./sessions-Dn6VXn4p.js";
@@ -14,7 +14,7 @@ import { a as findTailscaleBinary } from "./tailscale-FeJ1M0mP.js";
14
14
  import "./dock-DZ6SgvTh.js";
15
15
  import "./paths-DtiEyjsC.js";
16
16
  import "./prompt-style-CZGg35Py.js";
17
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-Dhr98nj8.js";
17
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-t7tI9KSA.js";
18
18
  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";
19
19
 
20
20
  //#region src/wizard/onboarding.gateway-config.ts
@@ -1,7 +1,7 @@
1
1
  import { c as escapeRegExp, p as resolveConfigDir } from "./utils-CTPsqyE_.js";
2
- import { p as resolveAllowlistModelKey, w as DEFAULT_PROVIDER } from "./model-selection-7wdmO-Iw.js";
2
+ import { p as resolveAllowlistModelKey, w as DEFAULT_PROVIDER } from "./model-selection-CCTzD29o.js";
3
3
  import { n as fetchWithTimeout } from "./fetch-timeout-BhdrdVp5.js";
4
- import { St as ZAI_GLOBAL_BASE_URL, bt as ZAI_CODING_CN_BASE_URL, xt as ZAI_CODING_GLOBAL_BASE_URL, yt as ZAI_CN_BASE_URL } from "./auth-token-Cr28IDKY.js";
4
+ import { St as ZAI_GLOBAL_BASE_URL, bt as ZAI_CODING_CN_BASE_URL, xt as ZAI_CODING_GLOBAL_BASE_URL, yt as ZAI_CN_BASE_URL } from "./auth-token-fgnCQEHT.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
7
7
 
@@ -4,16 +4,16 @@ import "./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 "./file-lock-BVUYnlQv.js";
10
- import { i as loadConfig } from "./config-B4jkreCN.js";
7
+ import "./agent-scope-Bnsyyeci.js";
8
+ import "./model-selection-CCTzD29o.js";
9
+ import "./file-lock-2AecMjCa.js";
10
+ import { i as loadConfig } from "./config-BngIfn5l.js";
11
11
  import "./boolean-CbZoNRMn.js";
12
12
  import "./env-BRnPI9sO.js";
13
13
  import "./shell-env-Dc3iU7HK.js";
14
14
  import "./manifest-registry-D1MLZEjS.js";
15
15
  import { r as normalizeChannelId } from "./plugins-CF5skkHh.js";
16
- import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests, s as getPairingAdapter } from "./pairing-store-BNhJOnWn.js";
16
+ import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests, s as getPairingAdapter } from "./pairing-store-Be-ZQK87.js";
17
17
  import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
18
18
  import { t as renderTable } from "./table-0A3xKJVC.js";
19
19
 
@@ -1,6 +1,6 @@
1
1
  import { _ as resolveStateDir, b as resolveRequiredHomeDir, h as resolveOAuthDir } from "./paths-By0XjHBk.js";
2
2
  import { g as safeParseJson } from "./utils-CTPsqyE_.js";
3
- import { t as withFileLock$1 } from "./file-lock-BVUYnlQv.js";
3
+ import { t as withFileLock$1 } from "./file-lock-2AecMjCa.js";
4
4
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
5
5
  import crypto from "node:crypto";
6
6
  import path from "node:path";
@@ -2,12 +2,12 @@ import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
2
2
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
3
3
  import { randomBytes, randomUUID } from "node:crypto";
4
4
  import path from "node:path";
5
- import fs from "node:fs/promises";
5
+ import fsPromises from "node:fs/promises";
6
6
 
7
7
  //#region src/infra/json-files.ts
8
8
  async function readJsonFile(filePath) {
9
9
  try {
10
- const raw = await fs.readFile(filePath, "utf8");
10
+ const raw = await fsPromises.readFile(filePath, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return null;
@@ -16,15 +16,15 @@ async function readJsonFile(filePath) {
16
16
  async function writeJsonAtomic(filePath, value, options) {
17
17
  const mode = options?.mode ?? 384;
18
18
  const dir = path.dirname(filePath);
19
- await fs.mkdir(dir, { recursive: true });
19
+ await fsPromises.mkdir(dir, { recursive: true });
20
20
  const tmp = `${filePath}.${randomUUID()}.tmp`;
21
- await fs.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
21
+ await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
22
22
  try {
23
- await fs.chmod(tmp, mode);
23
+ await fsPromises.chmod(tmp, mode);
24
24
  } catch {}
25
- await fs.rename(tmp, filePath);
25
+ await fsPromises.rename(tmp, filePath);
26
26
  try {
27
- await fs.chmod(filePath, mode);
27
+ await fsPromises.chmod(filePath, mode);
28
28
  } catch {}
29
29
  }
30
30
  function createAsyncLock() {
@@ -1,5 +1,5 @@
1
1
  import { B as resolvePreferredSymiTmpDir } from "./registry-Sbac4a4z.js";
2
- import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-BdejYjW8.js";
2
+ import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-B0Is-oLk.js";
3
3
  import path from "node:path";
4
4
 
5
5
  //#region src/browser/paths.ts
@@ -1,15 +1,15 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { b as ensureAuthProfileStore } from "./auth-profiles-Ce7R_25e.js";
3
- import { u as normalizeProviderId } from "./model-selection-7wdmO-Iw.js";
2
+ import { b as ensureAuthProfileStore } from "./auth-profiles-D5nYBj_Z.js";
3
+ import { u as normalizeProviderId } from "./model-selection-CCTzD29o.js";
4
4
  import { t as normalizeOptionalSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
5
5
  import path from "node:path";
6
- import fs from "node:fs/promises";
6
+ import fsPromises from "node:fs/promises";
7
7
 
8
8
  //#region src/agents/pi-auth-json.ts
9
9
  var pi_auth_json_exports = /* @__PURE__ */ __exportAll({ ensurePiAuthJsonFromAuthProfiles: () => ensurePiAuthJsonFromAuthProfiles });
10
10
  async function readAuthJson(filePath) {
11
11
  try {
12
- const raw = await fs.readFile(filePath, "utf8");
12
+ const raw = await fsPromises.readFile(filePath, "utf8");
13
13
  const parsed = JSON.parse(raw);
14
14
  if (!parsed || typeof parsed !== "object") return {};
15
15
  return parsed;
@@ -120,11 +120,11 @@ async function ensurePiAuthJsonFromAuthProfiles(agentDir, options) {
120
120
  wrote: false,
121
121
  authPath
122
122
  };
123
- await fs.mkdir(agentDir, {
123
+ await fsPromises.mkdir(agentDir, {
124
124
  recursive: true,
125
125
  mode: 448
126
126
  });
127
- await fs.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
127
+ await fsPromises.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
128
128
  return {
129
129
  wrote: true,
130
130
  authPath
@@ -29,7 +29,7 @@ import { n as resolveConversationLabel } from "./conversation-label-DTTqF8gH.js"
29
29
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BsT3BvfH.js";
30
30
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.js";
31
31
  import { n as saveJsonFile, t as loadJsonFile } from "./json-file-B7D44OOV.js";
32
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-V4UCf0Av.js";
32
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-BHddoe4T.js";
33
33
  import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-dYUr1mDQ.js";
34
34
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Ce-sg7EN.js";
35
35
  import { n as resolveMarkdownTableMode } from "./markdown-tables-jQzXAsf3.js";
@@ -3390,7 +3390,7 @@ async function getMemorySearchManager(params) {
3390
3390
  const wrapper = new FallbackMemoryManager({
3391
3391
  primary,
3392
3392
  fallbackFactory: async () => {
3393
- const { MemoryIndexManager } = await import("./manager-V4UCf0Av.js").then((n) => n.t);
3393
+ const { MemoryIndexManager } = await import("./manager-BHddoe4T.js").then((n) => n.t);
3394
3394
  return await MemoryIndexManager.get(params);
3395
3395
  }
3396
3396
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3403,7 +3403,7 @@ async function getMemorySearchManager(params) {
3403
3403
  }
3404
3404
  }
3405
3405
  try {
3406
- const { MemoryIndexManager } = await import("./manager-V4UCf0Av.js").then((n) => n.t);
3406
+ const { MemoryIndexManager } = await import("./manager-BHddoe4T.js").then((n) => n.t);
3407
3407
  return { manager: await MemoryIndexManager.get(params) };
3408
3408
  } catch (err) {
3409
3409
  return {
@@ -5455,9 +5455,17 @@ const ChatSymframePushParamsSchema = Type.Object({
5455
5455
  Type.Literal("release"),
5456
5456
  Type.Literal("recall"),
5457
5457
  Type.Literal("pin"),
5458
- Type.Literal("unpin")
5458
+ Type.Literal("unpin"),
5459
+ Type.Literal("setMode")
5459
5460
  ]),
5460
5461
  id: Type.Optional(NonEmptyString),
5462
+ mode: Type.Optional(Type.Union([
5463
+ Type.Literal("ambient"),
5464
+ Type.Literal("focus"),
5465
+ Type.Literal("awaiting"),
5466
+ Type.Literal("quiet")
5467
+ ])),
5468
+ focusedId: Type.Optional(NonEmptyString),
5461
5469
  force: Type.Optional(Type.Boolean()),
5462
5470
  card: Type.Optional(Type.Object({
5463
5471
  id: Type.Optional(NonEmptyString),
@@ -26514,6 +26522,12 @@ function buildAgentSystemPrompt(params) {
26514
26522
  " - `recall` — re-summon a recently-released card (id optional → most-recent).",
26515
26523
  " - `pin` — persist a card across reload + /new (user-curated; the user can also pin from the UI).",
26516
26524
  " - `unpin` — remove the pin; does NOT drop the card.",
26525
+ "Panel modes (Stage D — `action: \"setMode\"` with `mode` and optional `focusedId`):",
26526
+ " - `ambient` (default) — substrate + cards + AWAITING all visible. Normal multi-task posture.",
26527
+ " - `focus` — one card centered, substrate dim, AWAITING hidden. Use when actively iterating on a single artifact (e.g. drafting an email). Pass `focusedId` to halo a specific card.",
26528
+ " - `awaiting` — footer prominent, cards collapsed to titles. Use when you've kicked off long-running work (subagents, scheduled tasks) and the user is waiting for results.",
26529
+ " - `quiet` — substrate only, cards + AWAITING hidden. Use when you're thinking and have nothing actionable to surface yet.",
26530
+ "Modes are sticky until you `setMode` again or the user overrides via the header chips. Default to `ambient`; pick `focus` only when you genuinely want a single card to dominate; pick `awaiting` only when waiting is the user's primary experience.",
26517
26531
  "After pushing, briefly tell the user what's in the panel (e.g. \"Drafted the email — shown in your panel.\"). Don't repeat the full content in chat.",
26518
26532
  "",
26519
26533
  ...compactMode ? [] : [
@@ -33955,7 +33969,14 @@ const ARTIFACT_ACTIONS = [
33955
33969
  "release",
33956
33970
  "recall",
33957
33971
  "pin",
33958
- "unpin"
33972
+ "unpin",
33973
+ "setMode"
33974
+ ];
33975
+ const PANEL_MODES = [
33976
+ "ambient",
33977
+ "focus",
33978
+ "awaiting",
33979
+ "quiet"
33959
33980
  ];
33960
33981
  /**
33961
33982
  * Stage A: intent vocabulary added as orthogonal metadata to renderer type.
@@ -34003,7 +34024,9 @@ const DisplayArtifactSchema = Type.Object({
34003
34024
  email: Type.Optional(EmailFieldsSchema),
34004
34025
  actions: Type.Optional(Type.Array(ActionSchema)),
34005
34026
  sticky: Type.Optional(Type.Boolean()),
34006
- force: Type.Optional(Type.Boolean())
34027
+ force: Type.Optional(Type.Boolean()),
34028
+ mode: Type.Optional(stringEnum(PANEL_MODES)),
34029
+ focusedId: Type.Optional(Type.String())
34007
34030
  });
34008
34031
  function genCardId() {
34009
34032
  return `sf-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
@@ -34012,12 +34035,32 @@ function createDisplayArtifactTool() {
34012
34035
  return {
34013
34036
  label: "Display Artifact",
34014
34037
  name: "display_artifact",
34015
- description: "Push a card into the Glass UI symframe — the right-column window into your mind. Use for content that represents what you're thinking about, holding, considering, or producing — drafts, references you're keeping in view, options being weighed, generated artifacts. Always set `intent` (holding | weighing | producing | drafted | reference | awaiting). Renderer `type`: text | markdown | code | email-draft | pdf | audio | video. Returns the card id; pass action=update with the same id to revise (set force:true to update a sticky card), action=remove to dismiss. Stage-C attention verbs (id-only, no card body): action=dwell pulls a card to the top with a brief highlight, action=release softly fades a card out (recoverable via recall), action=recall re-summons a recently-released card (id optional → most recent), action=pin persists across reload, action=unpin removes the pin.",
34038
+ description: "Push a card into the Glass UI symframe — the right-column window into your mind. Use for content that represents what you're thinking about, holding, considering, or producing — drafts, references you're keeping in view, options being weighed, generated artifacts. Always set `intent` (holding | weighing | producing | drafted | reference | awaiting). Renderer `type`: text | markdown | code | email-draft | pdf | audio | video. Returns the card id; pass action=update with the same id to revise (set force:true to update a sticky card), action=remove to dismiss. Stage-C attention verbs (id-only, no card body): action=dwell pulls a card to the top with a brief highlight, action=release softly fades a card out (recoverable via recall), action=recall re-summons a recently-released card (id optional → most recent), action=pin persists across reload, action=unpin removes the pin. Stage-D mode verb: action=setMode with mode=ambient|focus|awaiting|quiet (optional focusedId for focus) switches the panel's posture for the current task.",
34016
34039
  parameters: DisplayArtifactSchema,
34017
34040
  execute: async (_toolCallId, args) => {
34018
34041
  const params = args;
34019
34042
  const actionRaw = readStringParam(params, "action");
34020
34043
  const action = ARTIFACT_ACTIONS.includes(actionRaw ?? "") ? actionRaw : "add";
34044
+ if (action === "setMode") {
34045
+ const modeRaw = readStringParam(params, "mode");
34046
+ if (!modeRaw || !PANEL_MODES.includes(modeRaw)) return jsonResult({
34047
+ ok: false,
34048
+ error: `setMode requires \`mode\` ∈ {${PANEL_MODES.join(" | ")}}`
34049
+ });
34050
+ const mode = modeRaw;
34051
+ const focusedId = readStringParam(params, "focusedId");
34052
+ emitSymframePush({
34053
+ action: "setMode",
34054
+ mode,
34055
+ focusedId: focusedId || void 0
34056
+ });
34057
+ return jsonResult({
34058
+ ok: true,
34059
+ action,
34060
+ mode,
34061
+ focusedId
34062
+ });
34063
+ }
34021
34064
  const id = readStringParam(params, "id") || (action === "add" ? genCardId() : void 0);
34022
34065
  if (action !== "add" && action !== "recall" && !id) return jsonResult({
34023
34066
  ok: false,
@@ -1,11 +1,11 @@
1
1
  import { x as truncateUtf16Safe } from "./utils-CTPsqyE_.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-BkznAPKO.js";
4
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-L70xVnpG.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-CZGTCone.js";
4
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BzCBIakN.js";
5
5
  import { s as normalizeThinkLevel } from "./thinking-COroyVA5.js";
6
6
  import { createHash } 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/agents/pi-embedded-helpers/bootstrap.ts
11
11
  function isBase64Signature(value) {
@@ -102,10 +102,10 @@ function clampToBudget(content, budget) {
102
102
  async function ensureSessionHeader(params) {
103
103
  const file = params.sessionFile;
104
104
  try {
105
- await fs.stat(file);
105
+ await fsPromises.stat(file);
106
106
  return;
107
107
  } catch {}
108
- await fs.mkdir(path.dirname(file), { recursive: true });
108
+ await fsPromises.mkdir(path.dirname(file), { recursive: true });
109
109
  const entry = {
110
110
  type: "session",
111
111
  version: 2,
@@ -113,7 +113,7 @@ async function ensureSessionHeader(params) {
113
113
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
114
114
  cwd: params.cwd
115
115
  };
116
- await fs.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
116
+ await fsPromises.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
117
117
  }
118
118
  function buildBootstrapContextFiles(files, opts) {
119
119
  const maxChars = opts?.maxChars ?? DEFAULT_BOOTSTRAP_MAX_CHARS;
@@ -1,7 +1,7 @@
1
1
  import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-DUSb7CCb.js";
2
- import { r as resolveAgentConfig } from "./agent-scope-DOrZjOnW.js";
3
- import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-B4jkreCN.js";
4
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-BkznAPKO.js";
2
+ import { r as resolveAgentConfig } from "./agent-scope-Bnsyyeci.js";
3
+ import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-BngIfn5l.js";
4
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-CZGTCone.js";
5
5
  import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-hF45sewN.js";
6
6
  import { l as normalizeMessageChannel } from "./message-channel-DgjXWzf-.js";
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-Sbac4a4z.js";
2
2
  import { u as isRecord } from "./utils-CTPsqyE_.js";
3
- import { u as normalizeProviderId } from "./model-selection-7wdmO-Iw.js";
3
+ import { u as normalizeProviderId } from "./model-selection-CCTzD29o.js";
4
4
  import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-BptA-dUv.js";
5
5
  import { t as ensurePluginAllowlisted } from "./plugins-allowlist-CAXiY1du.js";
6
6
 
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-C-Jte08L.js";
4
4
  import { i as loadConfig } from "./config-D7TcU4qN.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-BOt7g9hn.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-CVhLz4p3.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as loadSymiPlugins } from "./unified-runner-CznU7Ad0.js";
2
+ import { s as loadSymiPlugins } from "./unified-runner-CsadjpQa.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
5
- import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
6
- import { i as loadConfig } from "./config-B4jkreCN.js";
5
+ import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-Bnsyyeci.js";
6
+ import { i as loadConfig } from "./config-BngIfn5l.js";
7
7
 
8
8
  //#region src/cli/plugin-registry.ts
9
9
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  export declare const BrowserToolSchema: import("@sinclair/typebox").TObject<{
2
- action: import("@sinclair/typebox").TUnsafe<"open" | "console" | "close" | "start" | "status" | "stop" | "navigate" | "profiles" | "snapshot" | "dialog" | "pdf" | "screenshot" | "tabs" | "focus" | "upload" | "act">;
2
+ action: import("@sinclair/typebox").TUnsafe<"open" | "console" | "close" | "start" | "status" | "stop" | "navigate" | "profiles" | "snapshot" | "focus" | "dialog" | "pdf" | "screenshot" | "tabs" | "upload" | "act">;
3
3
  target: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"sandbox" | "node" | "host">>;
4
4
  node: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
5
  profile: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -32,8 +32,12 @@ export declare const ChatSkillsListParamsSchema: import("@sinclair/typebox").TOb
32
32
  * a schema bump.
33
33
  */
34
34
  export declare const ChatSymframePushParamsSchema: import("@sinclair/typebox").TObject<{
35
- action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"add">, import("@sinclair/typebox").TLiteral<"update">, import("@sinclair/typebox").TLiteral<"remove">, import("@sinclair/typebox").TLiteral<"dwell">, import("@sinclair/typebox").TLiteral<"release">, import("@sinclair/typebox").TLiteral<"recall">, import("@sinclair/typebox").TLiteral<"pin">, import("@sinclair/typebox").TLiteral<"unpin">]>;
35
+ action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"add">, import("@sinclair/typebox").TLiteral<"update">, import("@sinclair/typebox").TLiteral<"remove">, import("@sinclair/typebox").TLiteral<"dwell">, import("@sinclair/typebox").TLiteral<"release">, import("@sinclair/typebox").TLiteral<"recall">, import("@sinclair/typebox").TLiteral<"pin">, import("@sinclair/typebox").TLiteral<"unpin">, import("@sinclair/typebox").TLiteral<"setMode">]>;
36
36
  id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
+ /** Stage D (setMode only): which panel posture to switch to. */
38
+ mode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"ambient">, import("@sinclair/typebox").TLiteral<"focus">, import("@sinclair/typebox").TLiteral<"awaiting">, import("@sinclair/typebox").TLiteral<"quiet">]>>;
39
+ /** Stage D (setMode + focus only): which card to halo. */
40
+ focusedId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
41
  /**
38
42
  * Stage A: required to update or remove a sticky card. Sticky cards
39
43
  * are the registry-managed wrappers around native panels and any card
@@ -4,7 +4,7 @@ import path from "node:path";
4
4
  import fs, { constants, readFileSync } from "node:fs";
5
5
  import os from "node:os";
6
6
  import { Logger } from "tslog";
7
- import JSON5 from "json5";
7
+ import json5 from "json5";
8
8
  import chalk, { Chalk } from "chalk";
9
9
  import fs$1, { mkdtemp, rm } from "node:fs/promises";
10
10
  import { z } from "zod";
@@ -294,7 +294,7 @@ function readLoggingConfig() {
294
294
  try {
295
295
  if (!fs.existsSync(configPath)) return;
296
296
  const raw = fs.readFileSync(configPath, "utf-8");
297
- const logging = JSON5.parse(raw)?.logging;
297
+ const logging = json5.parse(raw)?.logging;
298
298
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
299
299
  return logging;
300
300
  } catch {
@@ -7392,7 +7392,7 @@ function safeRealpath(target) {
7392
7392
  }
7393
7393
  const defaultResolver = {
7394
7394
  readFile: (p) => fs.readFileSync(p, "utf-8"),
7395
- parseJson: (raw) => JSON5.parse(raw)
7395
+ parseJson: (raw) => json5.parse(raw)
7396
7396
  };
7397
7397
  /**
7398
7398
  * Resolves all $include directives in a parsed config object.
@@ -10623,7 +10623,7 @@ function resolveConfigPathForDeps(deps) {
10623
10623
  function normalizeDeps(overrides = {}) {
10624
10624
  return {
10625
10625
  fs: overrides.fs ?? fs,
10626
- json5: overrides.json5 ?? JSON5,
10626
+ json5: overrides.json5 ?? json5,
10627
10627
  env: overrides.env ?? process.env,
10628
10628
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
10629
10629
  configPath: overrides.configPath ?? "",
@@ -10634,11 +10634,11 @@ function maybeLoadDotEnvForConfig(env) {
10634
10634
  if (env !== process.env) return;
10635
10635
  loadDotEnv({ quiet: true });
10636
10636
  }
10637
- function parseConfigJson5(raw, json5 = JSON5) {
10637
+ function parseConfigJson5(raw, json5$1 = json5) {
10638
10638
  try {
10639
10639
  return {
10640
10640
  ok: true,
10641
- parsed: json5.parse(raw)
10641
+ parsed: json5$1.parse(raw)
10642
10642
  };
10643
10643
  } catch (err) {
10644
10644
  return {
@@ -9,9 +9,10 @@
9
9
  * - recall re-summon a released card (id optional → most recent)
10
10
  * - pin persist across reload/reset via localStorage
11
11
  * - unpin remove the pin (does NOT drop the card)
12
- * Stage D (planned): setMode for the layout posture.
12
+ * Stage D (3.5.26): setMode switch panel posture.
13
+ * - setMode ambient | focus | awaiting | quiet (plus optional focusedId)
13
14
  */
14
- export type SymframePushAction = "add" | "update" | "remove" | "dwell" | "release" | "recall" | "pin" | "unpin";
15
+ export type SymframePushAction = "add" | "update" | "remove" | "dwell" | "release" | "recall" | "pin" | "unpin" | "setMode";
15
16
  export type SymframePushPayload = {
16
17
  action: SymframePushAction;
17
18
  id?: string;
@@ -22,6 +23,10 @@ export type SymframePushPayload = {
22
23
  * sticky:true; without force the registry refuses the operation.
23
24
  */
24
25
  force?: boolean;
26
+ /** Stage D (setMode only): which mode to switch to. */
27
+ mode?: "ambient" | "focus" | "awaiting" | "quiet";
28
+ /** Stage D (setMode + mode=focus): which card to halo. */
29
+ focusedId?: string;
25
30
  };
26
31
  export declare function emitSymframePush(payload: SymframePushPayload): void;
27
32
  export declare function onSymframePush(listener: (payload: SymframePushPayload) => void): () => void;
@@ -1,103 +1,103 @@
1
- import "./unified-runner-CznU7Ad0.js";
1
+ import "./unified-runner-CsadjpQa.js";
2
2
  import { j as theme } from "./registry-Sbac4a4z.js";
3
3
  import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
4
4
  import { _ as shortenHomeInString, h as resolveUserPath, p as resolveConfigDir, v as shortenHomePath } from "./utils-CTPsqyE_.js";
5
5
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
6
- import "./auth-profiles-Ce7R_25e.js";
6
+ import "./auth-profiles-D5nYBj_Z.js";
7
7
  import "./exec-DuYbft0z.js";
8
- import "./agent-scope-DOrZjOnW.js";
9
- import "./model-selection-7wdmO-Iw.js";
10
- import "./file-lock-BVUYnlQv.js";
8
+ import "./agent-scope-Bnsyyeci.js";
9
+ import "./model-selection-CCTzD29o.js";
10
+ import "./file-lock-2AecMjCa.js";
11
11
  import "./agent-paths-BbZSGrUA.js";
12
- import "./pi-embedded-helpers-D-OFjhdI.js";
13
- import { i as loadConfig, l as writeConfigFile } from "./config-B4jkreCN.js";
12
+ import "./pi-embedded-helpers-j1JrlsI0.js";
13
+ import { i as loadConfig, l as writeConfigFile } from "./config-BngIfn5l.js";
14
14
  import "./boolean-CbZoNRMn.js";
15
15
  import "./env-BRnPI9sO.js";
16
16
  import "./shell-env-Dc3iU7HK.js";
17
17
  import { m as defaultSlotIdForKey, p as applyExclusiveSlotSelection, s as resolveBundledPluginsDir, t as clearPluginManifestRegistryCache } from "./manifest-registry-D1MLZEjS.js";
18
- import "./sandbox-BkznAPKO.js";
19
- import "./chrome-DJChpTwP.js";
18
+ import "./sandbox-CZGTCone.js";
19
+ import "./chrome-38OnGyuN.js";
20
20
  import { u as promptYesNo } from "./tailscale-DpKBMIvx.js";
21
21
  import "./auth-Bkx-QuRN.js";
22
- import "./server-context-ChcbJgNo.js";
22
+ import "./server-context-DXdk410X.js";
23
23
  import "./frontmatter-B_jqcova.js";
24
- import "./skills-BwDmcZdt.js";
25
- import "./routes-ivqbutvM.js";
24
+ import "./skills-CYcBtLGH.js";
25
+ import "./routes-BwTUoI5h.js";
26
26
  import "./redact-B3O-RBO1.js";
27
27
  import "./errors-bI7Tdx75.js";
28
- import "./fs-safe-BdejYjW8.js";
29
- import "./paths-DObzwe08.js";
28
+ import "./fs-safe-B0Is-oLk.js";
29
+ import "./paths-BWqg8NZT.js";
30
30
  import "./ssrf-DOZRI5XH.js";
31
- import "./image-ops-L70xVnpG.js";
32
- import "./ports-gxLM5ahL.js";
31
+ import "./image-ops-BzCBIakN.js";
32
+ import "./ports-CB_Iu83U.js";
33
33
  import "./trash-_YhavPQI.js";
34
- import "./sessions-Dxf5Kjig.js";
34
+ import "./sessions-BCc3THTm.js";
35
35
  import "./dock-hF45sewN.js";
36
36
  import "./message-channel-DgjXWzf-.js";
37
37
  import "./plugins-CF5skkHh.js";
38
- import "./send-B0jHSNMF.js";
38
+ import "./send-CxjvucMO.js";
39
39
  import "./paths-BtvQ7JvU.js";
40
40
  import "./thinking-COroyVA5.js";
41
41
  import "./tokens-0yh2UnJq.js";
42
- import "./deliver-lTZLIQqf.js";
42
+ import "./deliver-CWMFmMCv.js";
43
43
  import "./diagnostic-DbT9t0Sh.js";
44
44
  import "./diagnostic-session-state-DnkpMfCl.js";
45
- import "./model-auth-1EAQvYRv.js";
45
+ import "./model-auth-_C07_3Yr.js";
46
46
  import "./github-copilot-token-D-FdDfee.js";
47
- import "./models-config-B5Xxy-c-.js";
48
- import "./pi-auth-json-Db8XJVGL.js";
47
+ import "./models-config-DlXge3Sd.js";
48
+ import "./pi-auth-json-D-vdh-nY.js";
49
49
  import "./session-cost-usage-D3mgssM_.js";
50
- import "./session-utils-Cs1jlD-q.js";
51
- import "./with-timeout-DPR4A2dx.js";
52
- import "./reply-prefix-BFNeXT65.js";
53
- import "./memory-B067LTL9.js";
54
- import "./manager-CoCX7L5u.js";
55
- import "./sqlite-Cod7C5ba.js";
50
+ import "./session-utils-CJhcRx3E.js";
51
+ import "./with-timeout-CLrF-Yr_.js";
52
+ import "./reply-prefix-CtZtkTJK.js";
53
+ import "./memory-fFc7GGPZ.js";
54
+ import "./manager-DuWp0CTD.js";
55
+ import "./sqlite-BpogPlQW.js";
56
56
  import "./chunk-BxfKjCUx.js";
57
57
  import "./markdown-tables-CS1Tvb3z.js";
58
58
  import "./fetch-guard-JHxT9355.js";
59
- import "./local-roots-CgDCgCuM.js";
59
+ import "./local-roots-2Jb79HZ8.js";
60
60
  import "./commands-DUzLGgEZ.js";
61
- import "./commands-registry-Ca5hh7nh.js";
62
- import "./client-Cs9Bh-G0.js";
63
- import "./call-xdEE97oU.js";
64
- import "./pairing-token-Dcy37-4s.js";
61
+ import "./commands-registry-CwXsDVuO.js";
62
+ import "./client-DiPa71im.js";
63
+ import "./call-xUpyZDH4.js";
64
+ import "./pairing-token-B703A1U3.js";
65
65
  import "./tool-display-DFOL6UQ9.js";
66
- import "./skills-remote-bz71Bstn.js";
67
- import "./workspace-dirs-jKFQf7of.js";
66
+ import "./skills-remote-BcRQTDsZ.js";
67
+ import "./workspace-dirs-DCICLTHx.js";
68
68
  import "./pi-model-discovery-ClQLvlCW.js";
69
- import "./model-catalog-IWi6-nY9.js";
70
- import "./skill-commands-DDGGlq68.js";
71
- import "./pairing-store-BNhJOnWn.js";
69
+ import "./model-catalog-BWurV7gl.js";
70
+ import "./skill-commands-DWvXs3lz.js";
71
+ import "./pairing-store-Be-ZQK87.js";
72
72
  import "./exec-approvals-DioSaIeH.js";
73
- import "./nodes-screen-De9ma6e1.js";
73
+ import "./nodes-screen-Cp5QP3ET.js";
74
74
  import "./breakdown-B_Dhhm3K.js";
75
- import "./control-service-D8kKOts5.js";
75
+ import "./control-service-CUreKVeY.js";
76
76
  import "./stagger-DQs772BN.js";
77
77
  import "./channel-selection-H1qOf0q-.js";
78
78
  import "./delivery-queue-OAc7hsIs.js";
79
79
  import "./bindings-DIhsYGa_.js";
80
- import "./resolve-route-C1IIA6kH.js";
80
+ import "./resolve-route-Du0VftVs.js";
81
81
  import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
82
82
  import "./cli-utils-CuyGL3rq.js";
83
83
  import "./help-format-7hFcsqss.js";
84
84
  import "./progress-swt2y17x.js";
85
- import "./memory-cli-D8Z_5-Nz.js";
85
+ import "./memory-cli-BnBKckEk.js";
86
86
  import "./logging-BWknayJl.js";
87
- import "./replies-CbXXjn9X.js";
88
- import "./pi-tools.policy-H2t-Xkfc.js";
89
- import "./model-MUMSB_7d.js";
90
- import { c as resolveArchiveKind } from "./install-safe-path-B2JrFspY.js";
91
- import "./npm-registry-spec-DTqn-NXZ.js";
92
- import "./skill-scanner-BCgVcIwi.js";
93
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-D890uIIW.js";
87
+ import "./replies-B_3j7R_Q.js";
88
+ import "./pi-tools.policy-CvAqjEH9.js";
89
+ import "./model-Cwbcw-km.js";
90
+ import { c as resolveArchiveKind } from "./install-safe-path-BrpA09f2.js";
91
+ import "./npm-registry-spec-C-muP97-.js";
92
+ import "./skill-scanner-CIlHPszT.js";
93
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-bnDlOSq2.js";
94
94
  import { t as renderTable } from "./table-0A3xKJVC.js";
95
- import { t as buildPluginStatusReport } from "./status-DPGFZPpp.js";
96
- import { n as updateNpmInstalledPlugins } from "./update-yYduAjKd.js";
95
+ import { t as buildPluginStatusReport } from "./status-DUbs9rVu.js";
96
+ import { n as updateNpmInstalledPlugins } from "./update-Cb0Fmxic.js";
97
97
  import path from "node:path";
98
98
  import fs from "node:fs";
99
99
  import os from "node:os";
100
- import fs$1 from "node:fs/promises";
100
+ import fsPromises from "node:fs/promises";
101
101
 
102
102
  //#region src/plugins/source-display.ts
103
103
  function tryRelative(root, filePath) {
@@ -259,9 +259,9 @@ async function uninstallPlugin(params) {
259
259
  extensionsDir
260
260
  }) : null;
261
261
  if (deleteTarget) {
262
- const existed = await fs$1.access(deleteTarget).then(() => true).catch(() => false) ?? false;
262
+ const existed = await fsPromises.access(deleteTarget).then(() => true).catch(() => false) ?? false;
263
263
  try {
264
- await fs$1.rm(deleteTarget, {
264
+ await fsPromises.rm(deleteTarget, {
265
265
  recursive: true,
266
266
  force: true
267
267
  });