@symerian/symi 3.5.20 → 3.5.21

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 (257) hide show
  1. package/dist/{agent-D0Z4r5fr.js → agent-DgVWcnlD.js} +1 -1
  2. package/dist/{agent-DCDT-MPE.js → agent-NT0EKnK_.js} +18 -18
  3. package/dist/{agent-scope-DOrZjOnW.js → agent-scope-Bnsyyeci.js} +18 -18
  4. package/dist/{agents-CdkBeP0d.js → agents-Dlcpc1K3.js} +3 -3
  5. package/dist/{agents.config-B7sNDvhz.js → agents.config-DA0ISLi7.js} +1 -1
  6. package/dist/{audit-B7deV4Lp.js → audit-CPloCzEZ.js} +2 -2
  7. package/dist/{audit-BCStg-Hv.js → audit-CXIXYDRx.js} +20 -20
  8. package/dist/{auth-choice-BIGcxSzP.js → auth-choice--DymOp5O.js} +2 -2
  9. package/dist/{auth-choice-B3DU-aBr.js → auth-choice-BtXIQPTU.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-ChNdzPjD.js → banner-CY_9VW7E.js} +1 -1
  13. package/dist/{browser-cli-C9xaKW8l.js → browser-cli-C5VVk6C9.js} +3 -3
  14. package/dist/{browser-cli-BTg8SVs-.js → browser-cli-DOTM7UBC.js} +9 -9
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +4 -4
  17. package/dist/bundled/session-memory/handler.js +4 -4
  18. package/dist/{call-BccaLPi8.js → call-Bpjj5p7I.js} +9 -9
  19. package/dist/{call-DZg43vv8.js → call-C2urR5Fj.js} +1 -1
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-CUptVX8c.js → channel-options-XRJiHUm5.js} +1 -1
  22. package/dist/{channel-options-LLmAnD_L.js → channel-options-rFgJaKzJ.js} +1 -1
  23. package/dist/{channels-cli-xoromnio.js → channels-cli-CQ4M05oy.js} +57 -57
  24. package/dist/{channels-cli-B0OQvVUL.js → channels-cli-QMHCRAb5.js} +9 -9
  25. package/dist/{chrome-DJChpTwP.js → chrome-38OnGyuN.js} +2 -2
  26. package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
  27. package/dist/{cli-C7v-sID8.js → cli-B-uoiYP2.js} +45 -45
  28. package/dist/{cli-CMNR7ULk.js → cli-BafqEuaj.js} +6 -6
  29. package/dist/{client-k0MT6NBw.js → client-CTrfpKT3.js} +7 -2
  30. package/dist/{client-DCxeV1bw.js → client-yVTJ5jx5.js} +6 -1
  31. package/dist/{command-registry-CXcvXjUR.js → command-registry-CLm8TAH3.js} +11 -11
  32. package/dist/{commands-registry-Ca5hh7nh.js → commands-registry-CwXsDVuO.js} +1 -1
  33. package/dist/{completion-cli-DJ1YCeSg.js → completion-cli-Cn_81QBb.js} +12 -12
  34. package/dist/{completion-cli-B1Fg6Lmg.js → completion-cli-DOBXkVwG.js} +2 -2
  35. package/dist/{config-B4jkreCN.js → config-BngIfn5l.js} +2 -2
  36. package/dist/{config-cli-D5DlWt6T.js → config-cli-B1cPkJ4p.js} +4 -4
  37. package/dist/{config-cli-CQ1FAvY_.js → config-cli-BgHYqFH1.js} +1 -1
  38. package/dist/{config-guard-BRm3RiOi.js → config-guard-DStz4_V2.js} +6 -6
  39. package/dist/{config-validation-Cdyg1BZB.js → config-validation-Dxj9LRzr.js} +1 -1
  40. package/dist/{configure-bhJB2Dti.js → configure-C7zmSgvC.js} +14 -14
  41. package/dist/{configure-DG1lf0Ld.js → configure-DmzM0S7L.js} +6 -6
  42. package/dist/{consolidate-DymnvvYm.js → consolidate-CO32_TEx.js} +6 -6
  43. package/dist/{control-service-D8kKOts5.js → control-service-CUreKVeY.js} +4 -4
  44. package/dist/control-ui/css/style.css +270 -0
  45. package/dist/control-ui/index.html +44 -114
  46. package/dist/control-ui/js/scheduling.js +85 -224
  47. package/dist/control-ui/js/subagents.js +78 -394
  48. package/dist/control-ui/js/symframe-awaiting.js +301 -0
  49. package/dist/control-ui/js/symframe-pin-store.js +104 -0
  50. package/dist/control-ui/js/symframe.js +238 -2
  51. package/dist/{control-ui-assets-CJQ97d4u.js → control-ui-assets-B8B9z_Ll.js} +1 -1
  52. package/dist/{cost-cli-DWiVCOCx.js → cost-cli-D-ssjcRF.js} +3 -3
  53. package/dist/{cron-cli-8RaBr1CM.js → cron-cli-BNBs3zue.js} +3 -3
  54. package/dist/{cron-cli-fW3wtftG.js → cron-cli-otPeKxmi.js} +7 -7
  55. package/dist/{daemon-cli-Y6clFgva.js → daemon-cli-DDqeG2nd.js} +2 -2
  56. package/dist/{daemon-cli-0EiZTQ2A.js → daemon-cli-qDdMg615.js} +11 -11
  57. package/dist/daemon-cli.js +6 -1
  58. package/dist/{daemon-runtime-DlQla_dA.js → daemon-runtime-CKn0wmCk.js} +10 -10
  59. package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
  60. package/dist/{deliver-lTZLIQqf.js → deliver-CWMFmMCv.js} +2 -2
  61. package/dist/{deps-Bf9dt2UO.js → deps-CdibsPMx.js} +1 -1
  62. package/dist/{devices-cli-C2gQTsB0.js → devices-cli-BJ3rVWOw.js} +2 -2
  63. package/dist/{devices-cli-DfiSkZ7k.js → devices-cli-DDPwF2Nx.js} +6 -6
  64. package/dist/{diagnostics-DlZODdRf.js → diagnostics-CYkqD5lP.js} +5 -5
  65. package/dist/{directory-cli-Bm5QYEo-.js → directory-cli-giqTe8Yg.js} +3 -3
  66. package/dist/{dm-policy-shared-CeFt0nch.js → dm-policy-shared-B61_yf6G.js} +1 -1
  67. package/dist/{dns-cli-CubLq4j9.js → dns-cli-Dssz4RqF.js} +3 -3
  68. package/dist/{docs-cli-PS8m1er7.js → docs-cli-Ct1STieY.js} +1 -1
  69. package/dist/{doctor-completion-CfF0J8fs.js → doctor-completion-CL7MyXlo.js} +2 -2
  70. package/dist/{doctor-completion-ScxFfN93.js → doctor-completion-k0HiL05o.js} +1 -1
  71. package/dist/{doctor-config-flow-C52W1uUK.js → doctor-config-flow-ljVnQJjo.js} +9 -9
  72. package/dist/entry.js +1 -1
  73. package/dist/{exec-approvals-cli-Cl-vWA1q.js → exec-approvals-cli-Cau1vPQI.js} +4 -4
  74. package/dist/{exec-approvals-cli-BaKWIf56.js → exec-approvals-cli-DsBoQu5H.js} +13 -13
  75. package/dist/extensionAPI.js +2 -2
  76. package/dist/{file-lock-BVUYnlQv.js → file-lock-2AecMjCa.js} +8 -8
  77. package/dist/{fs-safe-BdejYjW8.js → fs-safe-B0Is-oLk.js} +6 -6
  78. package/dist/{gateway-cli-kq5EWlnF.js → gateway-cli-DG_2YZ8B.js} +98 -98
  79. package/dist/{gateway-cli-CK-5nguV.js → gateway-cli-DgmGygc6.js} +16 -16
  80. package/dist/{gateway-rpc-Bzg_TTKP.js → gateway-rpc-Kv0-8W2E.js} +1 -1
  81. package/dist/{gateway-rpc-D12UaJS5.js → gateway-rpc-gaoD882s.js} +1 -1
  82. package/dist/{glass-ui-ws-B6p0iPsO.js → glass-ui-ws-Bof7krDJ.js} +67 -67
  83. package/dist/{glass-ui-ws-CVr0_1gT.js → glass-ui-ws-Dl45d7eU.js} +13 -13
  84. package/dist/{health-CPU9rQGj.js → health-CMbUI4aN.js} +4 -4
  85. package/dist/{health-CJb2CYtg.js → health-znS85U-F.js} +1 -1
  86. package/dist/{hooks-cli-DbgVZaP4.js → hooks-cli-Cb9BzCOY.js} +7 -7
  87. package/dist/{hooks-cli-13HCu5Xs.js → hooks-cli-Cgjor7F-.js} +59 -59
  88. package/dist/{image-ops-L70xVnpG.js → image-ops-BzCBIakN.js} +10 -10
  89. package/dist/index.js +52 -52
  90. package/dist/{inspect-CGKsaVZ4.js → inspect-DzYUb_Dl.js} +4 -4
  91. package/dist/{install-safe-path-B2JrFspY.js → install-safe-path-BrpA09f2.js} +11 -11
  92. package/dist/{installs-D890uIIW.js → installs-bnDlOSq2.js} +10 -10
  93. package/dist/{internal-DVCddhhN.js → internal-csqU78gW.js} +9 -9
  94. package/dist/{lifecycle-core-wFwnK_mD.js → lifecycle-core-cSR_xiIO.js} +5 -5
  95. package/dist/llm-slug-generator.js +4 -4
  96. package/dist/{local-roots-CgDCgCuM.js → local-roots-2Jb79HZ8.js} +1 -1
  97. package/dist/{logs-cli-R16VTptK.js → logs-cli-Kr145PO_.js} +7 -7
  98. package/dist/{logs-cli-CQeK5fn7.js → logs-cli-LiAjkog2.js} +3 -3
  99. package/dist/{manager-CxFs8Z_F.js → manager-CceVgXHV.js} +1 -1
  100. package/dist/{manager-B2SWSuad.js → manager-Cv4xI8sP.js} +1 -1
  101. package/dist/{manager-CHLdCC6u.js → manager-DG6PODgu.js} +15 -15
  102. package/dist/{manager-LPPGAsqn.js → manager-V4UCf0Av.js} +1 -1
  103. package/dist/{memory-DFpqcIst.js → memory-A2D5e8dL.js} +2 -2
  104. package/dist/{memory-DavRjdTi.js → memory-BFnx3v3_.js} +5 -5
  105. package/dist/{memory-cli-DZnq3S6s.js → memory-cli-1zjVJITN.js} +2 -2
  106. package/dist/{memory-cli-B-Cp1Sb1.js → memory-cli-CHNghdrm.js} +12 -12
  107. package/dist/{model-MUMSB_7d.js → model-Cwbcw-km.js} +1 -1
  108. package/dist/{model-auth-1EAQvYRv.js → model-auth-_C07_3Yr.js} +2 -2
  109. package/dist/{model-catalog-IWi6-nY9.js → model-catalog-BWurV7gl.js} +3 -3
  110. package/dist/{model-picker-Cf6UgQEh.js → model-picker-Dpkr5xBW.js} +5 -5
  111. package/dist/{model-selection-7wdmO-Iw.js → model-selection-CCTzD29o.js} +1 -1
  112. package/dist/{models-Cht7Mzvs.js → models-BYev6YAG.js} +3 -3
  113. package/dist/{models-cli-B_motPDX.js → models-cli-BbK8HMKa.js} +55 -55
  114. package/dist/{models-cli-DXswzgUR.js → models-cli-Fa5r1QYP.js} +9 -9
  115. package/dist/{models-config-B5Xxy-c-.js → models-config-DlXge3Sd.js} +8 -8
  116. package/dist/{node-cli-D-gsjRXY.js → node-cli-BPnBosC4.js} +27 -27
  117. package/dist/{node-cli-VmKhIXuP.js → node-cli-Cv7x1gGu.js} +1 -1
  118. package/dist/{node-service-BH08wY5j.js → node-service-Cc18m-uk.js} +1 -1
  119. package/dist/{nodes-cli-BMvxQGCp.js → nodes-cli-CN_m6PO5.js} +10 -10
  120. package/dist/{nodes-cli-D199d74o.js → nodes-cli-DaHOBbd4.js} +3 -3
  121. package/dist/{nodes-screen-De9ma6e1.js → nodes-screen-Cp5QP3ET.js} +4 -4
  122. package/dist/{npm-registry-spec-DTqn-NXZ.js → npm-registry-spec-C-muP97-.js} +9 -9
  123. package/dist/{onboard-DFJcbABp.js → onboard-B2IcTMv-.js} +15 -15
  124. package/dist/{onboard-CdRA8BRG.js → onboard-D-m6WTZl.js} +3 -3
  125. package/dist/{onboard-channels-fadyQGBK.js → onboard-channels-Z-Jkrk5-.js} +1 -1
  126. package/dist/{onboard-channels-Ca7ZFQ2Y.js → onboard-channels-wfGO5Zlh.js} +4 -4
  127. package/dist/{onboard-custom-BcRYreNG.js → onboard-custom-DnDrvxSg.js} +3 -3
  128. package/dist/{onboard-helpers-CQBpac8h.js → onboard-helpers-BKejzolA.js} +8 -8
  129. package/dist/{onboard-helpers-BcLPSb5N.js → onboard-helpers-Dhr98nj8.js} +1 -1
  130. package/dist/{onboard-hooks-2SCajRKc.js → onboard-hooks-D9jHwImb.js} +1 -1
  131. package/dist/{onboard-remote-Bo3tpC9N.js → onboard-remote-DZdMxd1Q.js} +1 -1
  132. package/dist/{onboard-remote-BWK5Ths4.js → onboard-remote-y3ZmP90U.js} +1 -1
  133. package/dist/{onboard-skills-BLl8HPJO.js → onboard-skills-2SUv-W7i.js} +1 -1
  134. package/dist/{onboard-skills-DvacccqZ.js → onboard-skills-BFhHfrt9.js} +3 -3
  135. package/dist/{onboarding-ojb2rFkA.js → onboarding-BckHLQMV.js} +7 -7
  136. package/dist/{onboarding-BywueA1d.js → onboarding-DqlPV372.js} +12 -12
  137. package/dist/{onboarding.finalize-DdxBQpUU.js → onboarding.finalize-Bwjv3jew.js} +31 -31
  138. package/dist/{onboarding.finalize-DHvlZi9G.js → onboarding.finalize-CbH_ShIW.js} +9 -9
  139. package/dist/{onboarding.gateway-config-DPBNWNV6.js → onboarding.gateway-config-CiRo9EMt.js} +8 -8
  140. package/dist/{onboarding.gateway-config-ZK9517uR.js → onboarding.gateway-config-sNSeEykB.js} +3 -3
  141. package/dist/{openai-model-default-BkuuK-Di.js → openai-model-default-De-UAjwg.js} +2 -2
  142. package/dist/{pairing-cli-Rsae0KnN.js → pairing-cli-CBMMCNnx.js} +5 -5
  143. package/dist/{pairing-store-BNhJOnWn.js → pairing-store-Be-ZQK87.js} +1 -1
  144. package/dist/{pairing-token-Dcy37-4s.js → pairing-token-B703A1U3.js} +7 -7
  145. package/dist/{paths-DObzwe08.js → paths-BWqg8NZT.js} +1 -1
  146. package/dist/{pi-auth-json-Db8XJVGL.js → pi-auth-json-D-vdh-nY.js} +6 -6
  147. package/dist/{pi-embedded-Da0QRlM0.js → pi-embedded-B9rtlNMc.js} +25 -9
  148. package/dist/{pi-embedded-helpers-D-OFjhdI.js → pi-embedded-helpers-j1JrlsI0.js} +6 -6
  149. package/dist/{pi-tools.policy-H2t-Xkfc.js → pi-tools.policy-CvAqjEH9.js} +3 -3
  150. package/dist/{plugin-auto-enable-DJBhDIMq.js → plugin-auto-enable-BXSJTxI7.js} +1 -1
  151. package/dist/{plugin-registry-tG7NXc3Y.js → plugin-registry-B43UosQh.js} +3 -3
  152. package/dist/{plugin-registry-Tlmjr-LX.js → plugin-registry-CS4WgHbu.js} +1 -1
  153. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -1
  154. package/dist/plugin-sdk/index.js +6 -6
  155. package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +18 -6
  156. package/dist/{plugins-cli-CRKD8aho.js → plugins-cli-BV2wbjfI.js} +54 -54
  157. package/dist/{plugins-cli-Cm0G_-Y5.js → plugins-cli-BY42hyHP.js} +7 -7
  158. package/dist/{ports-r7LBic2V.js → ports-Bi3V_3n9.js} +1 -1
  159. package/dist/{ports-gxLM5ahL.js → ports-CB_Iu83U.js} +2 -2
  160. package/dist/{program-DEmAlwmD.js → program-P9F1DxBa.js} +12 -12
  161. package/dist/{program-context-DRCRbDpu.js → program-context-BmXxHUKe.js} +40 -40
  162. package/dist/{prompt-select-styled-pomsR-zf.js → prompt-select-styled-B2ah467m.js} +7 -7
  163. package/dist/{prompt-select-styled-B41Tx9aC.js → prompt-select-styled-BlQZX6pK.js} +38 -38
  164. package/dist/{provider-auth-helpers-rKWs_r7a.js → provider-auth-helpers-Bgb_Bfp9.js} +1 -1
  165. package/dist/{provider-auth-helpers-CdQwOam7.js → provider-auth-helpers-WLwb6tL4.js} +6 -6
  166. package/dist/{push-apns-eCM0qmrY.js → push-apns-CBGvXev_.js} +4 -4
  167. package/dist/{push-apns-CZPUHftn.js → push-apns-DnSCjFu7.js} +1 -1
  168. package/dist/{pw-ai-BiBvIJzd.js → pw-ai-CP5pn3eU.js} +7 -7
  169. package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
  170. package/dist/{qmd-manager-C8-M4Pru.js → qmd-manager-Dxyue7B1.js} +19 -19
  171. package/dist/{qr-cli-1sCVaPcF.js → qr-cli-DHw6muwK.js} +3 -3
  172. package/dist/{register.agent-BQPvYYdn.js → register.agent-BuEcmVg0.js} +12 -12
  173. package/dist/{register.agent-N1hoqMFR.js → register.agent-CXdTiqyP.js} +67 -67
  174. package/dist/{register.configure-BHHZ44xB.js → register.configure-DVcn-gCO.js} +70 -70
  175. package/dist/{register.configure-BAc3P4Z-.js → register.configure-YDKJ-KQg.js} +14 -14
  176. package/dist/{register.maintenance-lX0a3Hzl.js → register.maintenance-BiGvpEj-.js} +13 -13
  177. package/dist/{register.maintenance-DDgy5Iyy.js → register.maintenance-cpspl8D6.js} +67 -67
  178. package/dist/{register.message-Br-IH_0z.js → register.message-BIuLbESM.js} +7 -7
  179. package/dist/{register.message-B4lDhHpE.js → register.message-BjcYy5UG.js} +47 -47
  180. package/dist/{register.onboard-B-GoYJIc.js → register.onboard-C4vIASed.js} +6 -6
  181. package/dist/{register.onboard-Bv0s2_KV.js → register.onboard-D4RN92s2.js} +25 -25
  182. package/dist/{register.setup-DQ6KLkAI.js → register.setup-BvoXF0xl.js} +28 -28
  183. package/dist/{register.setup-4lNdC98i.js → register.setup-D-Jt2e1d.js} +6 -6
  184. package/dist/{register.status-health-sessions-Cg7bK5K2.js → register.status-health-sessions-BY9hMD1s.js} +8 -8
  185. package/dist/{register.status-health-sessions-ByGn71_M.js → register.status-health-sessions-DjDvCXBn.js} +41 -41
  186. package/dist/{register.subclis-FMlcLBX0.js → register.subclis-Cibmeapc.js} +20 -20
  187. package/dist/{replies-CbXXjn9X.js → replies-B_3j7R_Q.js} +1 -1
  188. package/dist/{reply-prefix-BFNeXT65.js → reply-prefix-CtZtkTJK.js} +1 -1
  189. package/dist/{resolve-route-C1IIA6kH.js → resolve-route-Du0VftVs.js} +1 -1
  190. package/dist/{routes-ivqbutvM.js → routes-BwTUoI5h.js} +10 -10
  191. package/dist/{rpc-Dk1Az_d8.js → rpc-BnAKPQDB.js} +1 -1
  192. package/dist/{rpc-JAmDaTYt.js → rpc-CwxSZZOx.js} +1 -1
  193. package/dist/{run-main-DSyeVDsT.js → run-main-BhEQjKtM.js} +20 -20
  194. package/dist/{sandbox-BkznAPKO.js → sandbox-CZGTCone.js} +18 -18
  195. package/dist/{sandbox-cli-Bb9cBtBH.js → sandbox-cli-DEtGT_4y.js} +13 -13
  196. package/dist/{security-cli-DmgGLP83.js → security-cli-CS-ZT1LE.js} +3 -3
  197. package/dist/{security-cli-D47LQbpf.js → security-cli-DJd7Fcdy.js} +29 -29
  198. package/dist/{send-B0jHSNMF.js → send-CxjvucMO.js} +7 -7
  199. package/dist/{server-context-ChcbJgNo.js → server-context-DXdk410X.js} +5 -5
  200. package/dist/{server-methods-DGBBt49x.js → server-methods-CWxr5b-w.js} +19 -13
  201. package/dist/{server-methods-BkHB2MOW.js → server-methods-DfVfzYqq.js} +68 -62
  202. package/dist/{server-node-events-C186LRm0.js → server-node-events-B0yC6hi1.js} +48 -48
  203. package/dist/{server-node-events-D-Akk3uq.js → server-node-events-ClDEcUTJ.js} +8 -8
  204. package/dist/{service-e6MzlLCd.js → service-CRZoXO_n.js} +15 -15
  205. package/dist/{session-dirs-C9E2G0yZ.js → session-dirs-a00Ad2SO.js} +2 -2
  206. package/dist/{session-utils-Cs1jlD-q.js → session-utils-CJhcRx3E.js} +14 -14
  207. package/dist/{sessions-Dxf5Kjig.js → sessions-BCc3THTm.js} +10 -10
  208. package/dist/{shared-1xPo9ygd.js → shared-C39SiDDJ.js} +1 -1
  209. package/dist/{shared-COtpr3Ad.js → shared-Dh-O8nRd.js} +3 -3
  210. package/dist/{skill-commands-DDGGlq68.js → skill-commands-DWvXs3lz.js} +4 -4
  211. package/dist/{skill-scanner-BCgVcIwi.js → skill-scanner-CIlHPszT.js} +5 -5
  212. package/dist/{skills-BwDmcZdt.js → skills-CYcBtLGH.js} +4 -4
  213. package/dist/{skills-cli-B-7TY-vS.js → skills-cli-CD9s3cgm.js} +7 -7
  214. package/dist/{skills-install-Dwzsjoc8.js → skills-install-BTa9IuQ6.js} +3 -3
  215. package/dist/{skills-remote-bz71Bstn.js → skills-remote-BcRQTDsZ.js} +3 -3
  216. package/dist/{skills-status-BKX1PjCc.js → skills-status-DLnCHUZ2.js} +1 -1
  217. package/dist/{sqlite-Cod7C5ba.js → sqlite-BpogPlQW.js} +5 -5
  218. package/dist/{status-CFgCSaDq.js → status-BWxLtb3D.js} +23 -23
  219. package/dist/{status-poPDyC8O.js → status-Doq8T1zj.js} +3 -3
  220. package/dist/{status-Bahhq7OQ.js → status-K1k4g3Ai.js} +1 -1
  221. package/dist/{status-D9LC5P_Y.js → status-ojZB_Lrf.js} +5 -5
  222. package/dist/{status.update-DGJi0OLl.js → status.update-CKfyV6zw.js} +3 -3
  223. package/dist/{subagent-registry-V2o45tIn.js → subagent-registry-BOt7g9hn.js} +21 -10
  224. package/dist/{symframe-cli-bxdpivve.js → symframe-cli-CrUtJw_7.js} +31 -7
  225. package/dist/{symframe-cli-ppdMo15M.js → symframe-cli-D1CtN3pf.js} +37 -13
  226. package/dist/{symi-root-BQ0IpoW2.js → symi-root-DeCVdZB4.js} +2 -2
  227. package/dist/{synthesis-B2EyHFXy.js → synthesis-BIQLrbys.js} +6 -6
  228. package/dist/{synthesis-DGau1ONT.js → synthesis-Bc2QkGvt.js} +2 -2
  229. package/dist/{synthesis-CPSq83PP.js → synthesis-VZNnlUTf.js} +45 -45
  230. package/dist/{synthesis-C2WbvLOI.js → synthesis-yl24Ovw4.js} +4 -4
  231. package/dist/{system-cli-nPyjUPBH.js → system-cli-CvN-Wq9U.js} +3 -3
  232. package/dist/{system-cli-BroqLjZ6.js → system-cli-r7WJj0Xh.js} +7 -7
  233. package/dist/{systemd-CUIM0n5P.js → systemd-CsoVnIbM.js} +5 -5
  234. package/dist/{systemd-hints-CsrzMCTD.js → systemd-hints-QISwLlFU.js} +6 -6
  235. package/dist/{systemd-linger-BzYk7A6M.js → systemd-linger-BnhuRdbt.js} +1 -1
  236. package/dist/{tui-Bp9k5skv.js → tui-BxgdImL_.js} +2 -2
  237. package/dist/{tui-DzROrE20.js → tui-J7Jxp-FF.js} +7 -7
  238. package/dist/{tui-cli-BHBF8O-3.js → tui-cli-DR48dU_C.js} +19 -19
  239. package/dist/{tui-cli-Dv4hBFdc.js → tui-cli-DqvgN5ng.js} +3 -3
  240. package/dist/{unified-runner-CIQIkbvi.js → unified-runner-BV5TdNFv.js} +32 -16
  241. package/dist/{unified-runner-CduaBH_0.js → unified-runner-DXjH-prv.js} +117 -106
  242. package/dist/{update-yYduAjKd.js → update-Cb0Fmxic.js} +3 -3
  243. package/dist/{update-check-BCL_K7kx.js → update-check-u6Jgr1cz.js} +5 -5
  244. package/dist/{update-cli-WcLxjBiY.js → update-cli-CKpjWtlv.js} +77 -77
  245. package/dist/{update-cli-BKnHBe8a.js → update-cli-Dn6QQZLd.js} +14 -14
  246. package/dist/{update-runner-BLV8SI96.js → update-runner-G2YgEATs.js} +15 -15
  247. package/dist/{webhooks-cli-D5k-Y2A8.js → webhooks-cli-DjUITimx.js} +4 -4
  248. package/dist/{with-timeout-DPR4A2dx.js → with-timeout-CLrF-Yr_.js} +1 -1
  249. package/dist/{workspace-dirs-jKFQf7of.js → workspace-dirs-DCICLTHx.js} +1 -1
  250. package/dist/{wsl-CglTdtlb.js → wsl-DTi7eX-V.js} +2 -2
  251. package/extensions/memory-core/package.json +1 -1
  252. package/extensions/msteams/CHANGELOG.md +6 -0
  253. package/extensions/msteams/package.json +1 -1
  254. package/extensions/open-prose/package.json +1 -1
  255. package/extensions/outlook/package.json +1 -1
  256. package/extensions/slack/package.json +1 -1
  257. package/package.json +1 -1
@@ -34,7 +34,7 @@ async function requireRiskAcknowledgement(params) {
34
34
  })) throw new WizardCancelledError("risk not accepted");
35
35
  }
36
36
  async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
37
- const onboardHelpers = await import("./onboard-helpers-BcLPSb5N.js").then((n) => n.d);
37
+ const onboardHelpers = await import("./onboard-helpers-Dhr98nj8.js").then((n) => n.d);
38
38
  onboardHelpers.printWizardHeader(runtime);
39
39
  await prompter.intro("Symi onboarding");
40
40
  await requireRiskAcknowledgement({
@@ -202,7 +202,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
202
202
  }]
203
203
  }));
204
204
  if (mode === "remote") {
205
- const { promptRemoteGatewayConfig } = await import("./onboard-remote-Bo3tpC9N.js").then((n) => n.t);
205
+ const { promptRemoteGatewayConfig } = await import("./onboard-remote-DZdMxd1Q.js").then((n) => n.t);
206
206
  const { logConfigUpdated } = await import("./logging-Ev3fNJEG.js").then((n) => n.r);
207
207
  let nextConfig = await promptRemoteGatewayConfig(baseConfig, prompter);
208
208
  nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-D11Xw15i.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-D6A5uuj3.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-CfKvdcJ5.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BIGcxSzP.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice--DymOp5O.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-DvP8ViSf.js").then((n) => n.i);
228
228
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
229
229
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -261,7 +261,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
261
261
  if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
262
262
  }
263
263
  await warnIfModelConfigLooksOff(nextConfig, prompter);
264
- const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-ZK9517uR.js");
264
+ const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-sNSeEykB.js");
265
265
  const gateway = await configureGatewayForOnboarding({
266
266
  flow,
267
267
  baseConfig,
@@ -276,7 +276,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
276
276
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
277
277
  else {
278
278
  const { listChannelPlugins } = await import("./plugins-BsEhWvLn.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-fadyQGBK.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-Z-Jkrk5-.js").then((n) => n.n);
280
280
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
281
281
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
282
282
  allowSignalInstall: true,
@@ -292,7 +292,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
292
292
  await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
293
293
  if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
294
294
  else {
295
- const { setupSkills } = await import("./onboard-skills-BLl8HPJO.js").then((n) => n.t);
295
+ const { setupSkills } = await import("./onboard-skills-2SUv-W7i.js").then((n) => n.t);
296
296
  nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
297
297
  }
298
298
  const { setupInternalHooks } = await import("./onboard-hooks-BpyxMXOj.js");
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
302
302
  mode
303
303
  });
304
304
  await writeConfigFile(nextConfig);
305
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DHvlZi9G.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CbH_ShIW.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -2,7 +2,7 @@ import { n as DEFAULT_GATEWAY_PORT, u as resolveGatewayPort } from "./paths-By0X
2
2
  import { h as resolveUserPath } from "./utils-CTPsqyE_.js";
3
3
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
4
4
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
5
- import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-B4jkreCN.js";
5
+ import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-BngIfn5l.js";
6
6
  import { t as WizardCancelledError } from "./prompts-CNzp9M83.js";
7
7
 
8
8
  //#region src/wizard/onboarding.ts
@@ -36,7 +36,7 @@ async function requireRiskAcknowledgement(params) {
36
36
  })) throw new WizardCancelledError("risk not accepted");
37
37
  }
38
38
  async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
39
- const onboardHelpers = await import("./onboard-helpers-CQBpac8h.js").then((n) => n.d);
39
+ const onboardHelpers = await import("./onboard-helpers-BKejzolA.js").then((n) => n.d);
40
40
  onboardHelpers.printWizardHeader(runtime);
41
41
  await prompter.intro("Symi onboarding");
42
42
  await requireRiskAcknowledgement({
@@ -204,7 +204,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
204
204
  }]
205
205
  }));
206
206
  if (mode === "remote") {
207
- const { promptRemoteGatewayConfig } = await import("./onboard-remote-BWK5Ths4.js").then((n) => n.t);
207
+ const { promptRemoteGatewayConfig } = await import("./onboard-remote-y3ZmP90U.js").then((n) => n.t);
208
208
  const { logConfigUpdated } = await import("./logging-DDnP1BTp.js").then((n) => n.r);
209
209
  let nextConfig = await promptRemoteGatewayConfig(baseConfig, prompter);
210
210
  nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
@@ -222,11 +222,11 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
222
222
  }))).trim() || onboardHelpers.DEFAULT_WORKSPACE);
223
223
  const { applyOnboardingLocalWorkspaceConfig } = await import("./onboard-config-DrMJycgG.js").then((n) => n.n);
224
224
  let nextConfig = applyOnboardingLocalWorkspaceConfig(baseConfig, workspaceDir);
225
- const { ensureAuthProfileStore } = await import("./auth-profiles-Ce7R_25e.js").then((n) => n.t);
225
+ const { ensureAuthProfileStore } = await import("./auth-profiles-D5nYBj_Z.js").then((n) => n.t);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BAFfYZeR.js").then((n) => n.t);
227
- const { promptCustomApiConfig } = await import("./onboard-custom-BcRYreNG.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-B3DU-aBr.js").then((n) => n.t);
229
- const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-Cf6UgQEh.js").then((n) => n.i);
227
+ const { promptCustomApiConfig } = await import("./onboard-custom-DnDrvxSg.js").then((n) => n.r);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BtXIQPTU.js").then((n) => n.t);
229
+ const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-Dpkr5xBW.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
232
232
  const authChoice = opts.authChoice ?? await promptAuthChoiceGrouped({
@@ -263,7 +263,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
263
263
  if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
264
264
  }
265
265
  await warnIfModelConfigLooksOff(nextConfig, prompter);
266
- const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-DPBNWNV6.js");
266
+ const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-CiRo9EMt.js");
267
267
  const gateway = await configureGatewayForOnboarding({
268
268
  flow,
269
269
  baseConfig,
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
278
278
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
279
279
  else {
280
280
  const { listChannelPlugins } = await import("./plugins-CF5skkHh.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-Ca7ZFQ2Y.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-wfGO5Zlh.js").then((n) => n.n);
282
282
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
283
283
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
284
284
  allowSignalInstall: true,
@@ -294,17 +294,17 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
294
294
  await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
295
295
  if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
296
296
  else {
297
- const { setupSkills } = await import("./onboard-skills-DvacccqZ.js").then((n) => n.t);
297
+ const { setupSkills } = await import("./onboard-skills-BFhHfrt9.js").then((n) => n.t);
298
298
  nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
299
299
  }
300
- const { setupInternalHooks } = await import("./onboard-hooks-2SCajRKc.js");
300
+ const { setupInternalHooks } = await import("./onboard-hooks-D9jHwImb.js");
301
301
  nextConfig = await setupInternalHooks(nextConfig, runtime, prompter);
302
302
  nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
303
303
  command: "onboard",
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DdxBQpUU.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Bwjv3jew.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -5,61 +5,61 @@ import { p as restoreTerminalState } from "./subsystem-CHbO_DkH.js";
5
5
  import { n as resolveCliName } from "./cli-name-CzMV-gJF.js";
6
6
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
7
7
  import "./exec-DuYbft0z.js";
8
- import { h as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-DOrZjOnW.js";
9
- import "./model-selection-7wdmO-Iw.js";
10
- import "./pi-embedded-helpers-D-OFjhdI.js";
11
- import "./config-B4jkreCN.js";
8
+ import { h as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-Bnsyyeci.js";
9
+ import "./model-selection-CCTzD29o.js";
10
+ import "./pi-embedded-helpers-j1JrlsI0.js";
11
+ import "./config-BngIfn5l.js";
12
12
  import "./boolean-CbZoNRMn.js";
13
13
  import "./env-BRnPI9sO.js";
14
14
  import "./shell-env-Dc3iU7HK.js";
15
15
  import "./manifest-registry-D1MLZEjS.js";
16
- import "./sandbox-BkznAPKO.js";
17
- import "./chrome-DJChpTwP.js";
16
+ import "./sandbox-CZGTCone.js";
17
+ import "./chrome-38OnGyuN.js";
18
18
  import "./tailscale-DpKBMIvx.js";
19
19
  import "./auth-Bkx-QuRN.js";
20
- import "./server-context-ChcbJgNo.js";
20
+ import "./server-context-DXdk410X.js";
21
21
  import "./frontmatter-B_jqcova.js";
22
- import "./skills-BwDmcZdt.js";
23
- import "./routes-ivqbutvM.js";
22
+ import "./skills-CYcBtLGH.js";
23
+ import "./routes-BwTUoI5h.js";
24
24
  import "./redact-B3O-RBO1.js";
25
25
  import "./errors-bI7Tdx75.js";
26
- import "./fs-safe-BdejYjW8.js";
27
- import "./paths-DObzwe08.js";
26
+ import "./fs-safe-B0Is-oLk.js";
27
+ import "./paths-BWqg8NZT.js";
28
28
  import "./ssrf-DOZRI5XH.js";
29
- import "./image-ops-L70xVnpG.js";
30
- import "./ports-gxLM5ahL.js";
29
+ import "./image-ops-BzCBIakN.js";
30
+ import "./ports-CB_Iu83U.js";
31
31
  import "./trash-_YhavPQI.js";
32
- import "./sessions-Dxf5Kjig.js";
32
+ import "./sessions-BCc3THTm.js";
33
33
  import "./dock-hF45sewN.js";
34
34
  import "./message-channel-DgjXWzf-.js";
35
35
  import "./plugins-CF5skkHh.js";
36
36
  import "./paths-BtvQ7JvU.js";
37
37
  import "./thinking-COroyVA5.js";
38
38
  import "./commands-DUzLGgEZ.js";
39
- import "./commands-registry-Ca5hh7nh.js";
40
- import "./client-k0MT6NBw.js";
41
- import "./call-BccaLPi8.js";
42
- import "./pairing-token-Dcy37-4s.js";
39
+ import "./commands-registry-CwXsDVuO.js";
40
+ import "./client-CTrfpKT3.js";
41
+ import "./call-Bpjj5p7I.js";
42
+ import "./pairing-token-B703A1U3.js";
43
43
  import "./tool-display-DFOL6UQ9.js";
44
44
  import "./bindings-DIhsYGa_.js";
45
45
  import "./progress-swt2y17x.js";
46
46
  import "./runtime-guard-CWA00ZXa.js";
47
- import "./program-context-DRCRbDpu.js";
47
+ import "./program-context-BmXxHUKe.js";
48
48
  import "./prompt-style-olk5zI5k.js";
49
49
  import "./note-D9FXI2qW.js";
50
- import { r as installCompletion } from "./completion-cli-DJ1YCeSg.js";
51
- 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";
52
- import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CQBpac8h.js";
53
- import { r as isSystemdUserServiceAvailable } from "./systemd-CUIM0n5P.js";
54
- import { t as resolveGatewayService } from "./service-e6MzlLCd.js";
55
- import { r as healthCommand } from "./health-CPU9rQGj.js";
56
- import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CJQ97d4u.js";
50
+ import { r as installCompletion } from "./completion-cli-Cn_81QBb.js";
51
+ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CKn0wmCk.js";
52
+ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-BKejzolA.js";
53
+ import { r as isSystemdUserServiceAvailable } from "./systemd-CsoVnIbM.js";
54
+ import { t as resolveGatewayService } from "./service-CRZoXO_n.js";
55
+ import { r as healthCommand } from "./health-CMbUI4aN.js";
56
+ import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B8B9z_Ll.js";
57
57
  import { t as formatHealthCheckFailure } from "./health-format-Bxg84_f4.js";
58
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CfF0J8fs.js";
59
- import { t as runTui } from "./tui-DzROrE20.js";
58
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CL7MyXlo.js";
59
+ import { t as runTui } from "./tui-J7Jxp-FF.js";
60
60
  import path from "node:path";
61
61
  import os from "node:os";
62
- import fs from "node:fs/promises";
62
+ import fsPromises from "node:fs/promises";
63
63
 
64
64
  //#region src/wizard/onboarding.completion.ts
65
65
  async function resolveProfileHint(shell) {
@@ -121,7 +121,7 @@ async function finalizeOnboardingWizard(options) {
121
121
  const systemdAvailable = process.platform === "linux" ? await isSystemdUserServiceAvailable() : true;
122
122
  if (process.platform === "linux" && !systemdAvailable) await prompter.note("Systemd user services are unavailable. Skipping lingering checks and service install.", "Systemd");
123
123
  if (process.platform === "linux" && systemdAvailable) {
124
- const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-BzYk7A6M.js").then((n) => n.r);
124
+ const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-BnhuRdbt.js").then((n) => n.r);
125
125
  await ensureSystemdUserLingerInteractive({
126
126
  runtime,
127
127
  prompter: {
@@ -270,7 +270,7 @@ async function finalizeOnboardingWizard(options) {
270
270
  });
271
271
  const gatewayStatusLine = gatewayProbe.ok ? "Gateway: reachable" : `Gateway: not detected${gatewayProbe.detail ? ` (${gatewayProbe.detail})` : ""}`;
272
272
  const bootstrapPath = path.join(resolveUserPath(options.workspaceDir), DEFAULT_BOOTSTRAP_FILENAME);
273
- const hasBootstrap = await fs.access(bootstrapPath).then(() => true).catch(() => false);
273
+ const hasBootstrap = await fsPromises.access(bootstrapPath).then(() => true).catch(() => false);
274
274
  await prompter.note([
275
275
  `Web UI: ${links.httpUrl}`,
276
276
  settings.authMode === "token" && settings.gatewayToken ? `Web UI (with token): ${authedUrl}` : void 0,
@@ -9,8 +9,8 @@ import "./skills-cLBEdkqu.js";
9
9
  import "./manifest-registry-CVLmi8rz.js";
10
10
  import "./config-D7TcU4qN.js";
11
11
  import "./shell-env-CTYaxUs_.js";
12
- import "./client-DCxeV1bw.js";
13
- import "./call-DZg43vv8.js";
12
+ import "./client-yVTJ5jx5.js";
13
+ import "./call-C2urR5Fj.js";
14
14
  import "./message-channel-DXToSaWK.js";
15
15
  import "./pairing-token-B-OTYROz.js";
16
16
  import "./sessions-Dn6VXn4p.js";
@@ -40,20 +40,20 @@ import "./bindings-BRZBH7eX.js";
40
40
  import "./progress-CI19Xh3z.js";
41
41
  import "./prompt-style-CZGg35Py.js";
42
42
  import "./note-BIAQpZxi.js";
43
- import "./register.subclis-FMlcLBX0.js";
44
- import "./command-registry-CXcvXjUR.js";
43
+ import "./register.subclis-Cibmeapc.js";
44
+ import "./command-registry-CLm8TAH3.js";
45
45
  import "./program-context-B_0V80zV.js";
46
- import { r as installCompletion } from "./completion-cli-B1Fg6Lmg.js";
46
+ import { r as installCompletion } from "./completion-cli-DOBXkVwG.js";
47
47
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-AkgOtHR6.js";
48
48
  import "./runtime-guard-LRRZ73eX.js";
49
- import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-BcLPSb5N.js";
49
+ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-Dhr98nj8.js";
50
50
  import { r as isSystemdUserServiceAvailable } from "./systemd-CNnW7Chw.js";
51
51
  import { t as resolveGatewayService } from "./service-DYpU1ajf.js";
52
- import { r as healthCommand } from "./health-CJb2CYtg.js";
52
+ import { r as healthCommand } from "./health-znS85U-F.js";
53
53
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dnz69KRU.js";
54
54
  import { t as formatHealthCheckFailure } from "./health-format-6tfMqkNX.js";
55
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-ScxFfN93.js";
56
- import { t as runTui } from "./tui-Bp9k5skv.js";
55
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-k0HiL05o.js";
56
+ import { t as runTui } from "./tui-BxgdImL_.js";
57
57
  import os from "node:os";
58
58
  import path from "node:path";
59
59
  import fs from "node:fs/promises";
@@ -3,24 +3,24 @@ import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import "./subsystem-CHbO_DkH.js";
5
5
  import "./exec-DuYbft0z.js";
6
- import "./agent-scope-DOrZjOnW.js";
7
- import "./model-selection-7wdmO-Iw.js";
8
- import "./config-B4jkreCN.js";
6
+ import "./agent-scope-Bnsyyeci.js";
7
+ import "./model-selection-CCTzD29o.js";
8
+ import "./config-BngIfn5l.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
12
12
  import "./manifest-registry-D1MLZEjS.js";
13
13
  import { a as findTailscaleBinary } from "./tailscale-DpKBMIvx.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";
18
18
  import "./paths-BtvQ7JvU.js";
19
- import "./client-k0MT6NBw.js";
20
- import "./call-BccaLPi8.js";
21
- import "./pairing-token-Dcy37-4s.js";
19
+ import "./client-CTrfpKT3.js";
20
+ import "./call-Bpjj5p7I.js";
21
+ import "./pairing-token-B703A1U3.js";
22
22
  import "./prompt-style-olk5zI5k.js";
23
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-CQBpac8h.js";
23
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-BKejzolA.js";
24
24
  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";
25
25
 
26
26
  //#region src/wizard/onboarding.gateway-config.ts
@@ -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-DCxeV1bw.js";
8
- import "./call-DZg43vv8.js";
7
+ import "./client-yVTJ5jx5.js";
8
+ import "./call-C2urR5Fj.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-BcLPSb5N.js";
17
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-Dhr98nj8.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-LPPGAsqn.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";
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-LPPGAsqn.js").then((n) => n.t);
3393
+ const { MemoryIndexManager } = await import("./manager-V4UCf0Av.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-LPPGAsqn.js").then((n) => n.t);
3406
+ const { MemoryIndexManager } = await import("./manager-V4UCf0Av.js").then((n) => n.t);
3407
3407
  return { manager: await MemoryIndexManager.get(params) };
3408
3408
  } catch (err) {
3409
3409
  return {
@@ -5450,7 +5450,12 @@ const ChatSymframePushParamsSchema = Type.Object({
5450
5450
  action: Type.Union([
5451
5451
  Type.Literal("add"),
5452
5452
  Type.Literal("update"),
5453
- Type.Literal("remove")
5453
+ Type.Literal("remove"),
5454
+ Type.Literal("dwell"),
5455
+ Type.Literal("release"),
5456
+ Type.Literal("recall"),
5457
+ Type.Literal("pin"),
5458
+ Type.Literal("unpin")
5454
5459
  ]),
5455
5460
  id: Type.Optional(NonEmptyString),
5456
5461
  force: Type.Optional(Type.Boolean()),
@@ -26503,6 +26508,12 @@ function buildAgentSystemPrompt(params) {
26503
26508
  " - `awaiting` — deferred/scheduled/in-flight work (sub-agent output, scheduled task)",
26504
26509
  "Renderer `type`: `text` · `markdown` · `code` (with `language` hljs hint) · `email-draft` (with `email: { from?, to, cc?, bcc?, subject, body }`) · `pdf` · `audio` · `video` (`url` + optional `mimeType`).",
26505
26510
  "Use `action: \"update\"` with the same `id` to revise a card you pushed earlier (e.g. iterate a draft across turns). `action: \"remove\"` to dismiss. Set `force: true` only when overriding a sticky card — sticky cards represent the user's pinned context and shouldn't be clobbered by routine pushes.",
26511
+ "Attention verbs (Stage C — id-only, no card body):",
26512
+ " - `dwell` — pull a card to the top with a brief highlight pulse. Use when the user's next message references something you pushed earlier and you want to draw their eye to it.",
26513
+ " - `release` — soft-dismiss a card with a fade-out. Recoverable via `recall` for ~10 most-recent. Prefer this over `remove` when letting a thought go gracefully (e.g. a weighing option just decided against).",
26514
+ " - `recall` — re-summon a recently-released card (id optional → most-recent).",
26515
+ " - `pin` — persist a card across reload + /new (user-curated; the user can also pin from the UI).",
26516
+ " - `unpin` — remove the pin; does NOT drop the card.",
26506
26517
  "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.",
26507
26518
  "",
26508
26519
  ...compactMode ? [] : [
@@ -33939,7 +33950,12 @@ const ARTIFACT_TYPES = [
33939
33950
  const ARTIFACT_ACTIONS = [
33940
33951
  "add",
33941
33952
  "update",
33942
- "remove"
33953
+ "remove",
33954
+ "dwell",
33955
+ "release",
33956
+ "recall",
33957
+ "pin",
33958
+ "unpin"
33943
33959
  ];
33944
33960
  /**
33945
33961
  * Stage A: intent vocabulary added as orthogonal metadata to renderer type.
@@ -33996,19 +34012,19 @@ function createDisplayArtifactTool() {
33996
34012
  return {
33997
34013
  label: "Display Artifact",
33998
34014
  name: "display_artifact",
33999
- 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), or action=remove to dismiss.",
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.",
34000
34016
  parameters: DisplayArtifactSchema,
34001
34017
  execute: async (_toolCallId, args) => {
34002
34018
  const params = args;
34003
34019
  const actionRaw = readStringParam(params, "action");
34004
- const action = actionRaw === "update" || actionRaw === "remove" ? actionRaw : "add";
34020
+ const action = ARTIFACT_ACTIONS.includes(actionRaw ?? "") ? actionRaw : "add";
34005
34021
  const id = readStringParam(params, "id") || (action === "add" ? genCardId() : void 0);
34006
- if (action !== "add" && !id) return jsonResult({
34022
+ if (action !== "add" && action !== "recall" && !id) return jsonResult({
34007
34023
  ok: false,
34008
34024
  error: `${action} requires an id`
34009
34025
  });
34010
34026
  const force = params.force === true;
34011
- if (action === "remove") {
34027
+ if (action === "remove" || action === "dwell" || action === "release" || action === "recall" || action === "pin" || action === "unpin") {
34012
34028
  emitSymframePush({
34013
34029
  action,
34014
34030
  id,
@@ -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