@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
@@ -5,54 +5,54 @@ import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
6
6
  import { o as normalizeAgentId } from "./session-key-DUSb7CCb.js";
7
7
  import { n as runExec } from "./exec-DuYbft0z.js";
8
- import { l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
9
- import "./model-selection-7wdmO-Iw.js";
10
- import "./file-lock-BVUYnlQv.js";
11
- import { i as loadConfig, r as createConfigIO } from "./config-B4jkreCN.js";
8
+ import { l as resolveDefaultAgentId } from "./agent-scope-Bnsyyeci.js";
9
+ import "./model-selection-CCTzD29o.js";
10
+ import "./file-lock-2AecMjCa.js";
11
+ import { i as loadConfig, r as createConfigIO } from "./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 "./commands-DUzLGgEZ.js";
38
- import "./client-Cs9Bh-G0.js";
39
- import "./call-xdEE97oU.js";
40
- import "./pairing-token-Dcy37-4s.js";
41
- import "./workspace-dirs-jKFQf7of.js";
42
- import { i as readChannelAllowFromStore } from "./pairing-store-BNhJOnWn.js";
38
+ import "./client-DiPa71im.js";
39
+ import "./call-xUpyZDH4.js";
40
+ import "./pairing-token-B703A1U3.js";
41
+ import "./workspace-dirs-DCICLTHx.js";
42
+ import { i as readChannelAllowFromStore } from "./pairing-store-Be-ZQK87.js";
43
43
  import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
44
44
  import { t as formatHelpExamples } from "./help-format-7hFcsqss.js";
45
- import "./pi-tools.policy-H2t-Xkfc.js";
46
- import "./skill-scanner-BCgVcIwi.js";
47
- import { a as collectIncludePathsRecursive, i as formatIcaclsResetCommand, r as createIcaclsResetCommand, t as runSecurityAudit } from "./audit-Ce-u6aaR.js";
48
- import "./dm-policy-shared-CeFt0nch.js";
45
+ import "./pi-tools.policy-CvAqjEH9.js";
46
+ import "./skill-scanner-CIlHPszT.js";
47
+ import { a as collectIncludePathsRecursive, i as formatIcaclsResetCommand, r as createIcaclsResetCommand, t as runSecurityAudit } from "./audit-CuwXq_EA.js";
48
+ import "./dm-policy-shared-B61_yf6G.js";
49
49
  import path from "node:path";
50
- import fs from "node:fs/promises";
50
+ import fsPromises from "node:fs/promises";
51
51
 
52
52
  //#region src/security/fix.ts
53
53
  async function safeChmod(params) {
54
54
  try {
55
- const st = await fs.lstat(params.path);
55
+ const st = await fsPromises.lstat(params.path);
56
56
  if (st.isSymbolicLink()) return {
57
57
  kind: "chmod",
58
58
  path: params.path,
@@ -81,7 +81,7 @@ async function safeChmod(params) {
81
81
  ok: false,
82
82
  skipped: "already"
83
83
  };
84
- await fs.chmod(params.path, params.mode);
84
+ await fsPromises.chmod(params.path, params.mode);
85
85
  return {
86
86
  kind: "chmod",
87
87
  path: params.path,
@@ -111,7 +111,7 @@ async function safeAclReset(params) {
111
111
  env: params.env
112
112
  });
113
113
  try {
114
- const st = await fs.lstat(params.path);
114
+ const st = await fsPromises.lstat(params.path);
115
115
  if (st.isSymbolicLink()) return {
116
116
  kind: "icacls",
117
117
  path: params.path,
@@ -249,7 +249,7 @@ async function chmodCredentialsAndAgentState(params) {
249
249
  mode: 448,
250
250
  require: "dir"
251
251
  }));
252
- const credsEntries = await fs.readdir(credsDir, { withFileTypes: true }).catch(() => []);
252
+ const credsEntries = await fsPromises.readdir(credsDir, { withFileTypes: true }).catch(() => []);
253
253
  for (const entry of credsEntries) {
254
254
  if (!entry.isFile()) continue;
255
255
  if (!entry.name.endsWith(".json")) continue;
@@ -300,7 +300,7 @@ async function chmodCredentialsAndAgentState(params) {
300
300
  mode: 384,
301
301
  require: "file"
302
302
  }));
303
- const sessionEntries = await fs.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
303
+ const sessionEntries = await fsPromises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
304
304
  for (const entry of sessionEntries) {
305
305
  if (!entry.isFile()) continue;
306
306
  if (!entry.name.endsWith(".jsonl")) continue;
@@ -1,17 +1,17 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { D as shouldLogVerbose, w as logVerbose } from "./registry-Sbac4a4z.js";
3
3
  import { h as resolveUserPath } from "./utils-CTPsqyE_.js";
4
- import { i as loadConfig } from "./config-B4jkreCN.js";
5
- import { r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-BdejYjW8.js";
6
- import { _ as mediaKindFromMime, a as hasAlphaChannel, c as detectMime, g as maxBytesForKind, l as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg } from "./image-ops-L70xVnpG.js";
4
+ import { i as loadConfig } from "./config-BngIfn5l.js";
5
+ import { r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-B0Is-oLk.js";
6
+ import { _ as mediaKindFromMime, a as hasAlphaChannel, c as detectMime, g as maxBytesForKind, l as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg } from "./image-ops-BzCBIakN.js";
7
7
  import { a as resolveSlackAccount, c as resolveSlackBotToken } from "./plugins-CF5skkHh.js";
8
8
  import { a as chunkText, c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-BxfKjCUx.js";
9
9
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CS1Tvb3z.js";
10
10
  import { t as fetchWithSsrFGuard } from "./fetch-guard-JHxT9355.js";
11
- import { n as getDefaultMediaLocalRoots } from "./local-roots-CgDCgCuM.js";
11
+ import { n as getDefaultMediaLocalRoots } from "./local-roots-2Jb79HZ8.js";
12
12
  import { fileURLToPath } from "node:url";
13
13
  import path from "node:path";
14
- import fs from "node:fs/promises";
14
+ import fsPromises from "node:fs/promises";
15
15
  import { WebClient } from "@slack/web-api";
16
16
  import MarkdownIt from "markdown-it";
17
17
 
@@ -380,7 +380,7 @@ async function assertLocalMediaAllowed(mediaPath, localRoots) {
380
380
  const roots = localRoots ?? getDefaultLocalRoots();
381
381
  let resolved;
382
382
  try {
383
- resolved = await fs.realpath(mediaPath);
383
+ resolved = await fsPromises.realpath(mediaPath);
384
384
  } catch {
385
385
  resolved = path.resolve(mediaPath);
386
386
  }
@@ -397,7 +397,7 @@ async function assertLocalMediaAllowed(mediaPath, localRoots) {
397
397
  for (const root of roots) {
398
398
  let resolvedRoot;
399
399
  try {
400
- resolvedRoot = await fs.realpath(root);
400
+ resolvedRoot = await fsPromises.realpath(root);
401
401
  } catch {
402
402
  resolvedRoot = path.resolve(root);
403
403
  }
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-By0XjHBk.js";
2
- import { i as loadConfig, l as writeConfigFile, r as createConfigIO } from "./config-B4jkreCN.js";
3
- import { A as DEFAULT_SYMI_BROWSER_PROFILE_NAME, D as DEFAULT_BROWSER_EVALUATE_ENABLED, E as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, O as DEFAULT_SYMI_BROWSER_COLOR, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, k as DEFAULT_SYMI_BROWSER_ENABLED, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, v as fetchOk, x as ensureChromeExtensionRelayServer } from "./chrome-DJChpTwP.js";
2
+ import { i as loadConfig, l as writeConfigFile, r as createConfigIO } from "./config-BngIfn5l.js";
3
+ import { A as DEFAULT_SYMI_BROWSER_PROFILE_NAME, D as DEFAULT_BROWSER_EVALUATE_ENABLED, E as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, O as DEFAULT_SYMI_BROWSER_COLOR, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, k as DEFAULT_SYMI_BROWSER_ENABLED, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, v as fetchOk, x as ensureChromeExtensionRelayServer } from "./chrome-38OnGyuN.js";
4
4
  import { r as isLoopbackHost } from "./ws-C7Ktmt-R.js";
5
5
  import { a as resolveGatewayAuth } from "./auth-Bkx-QuRN.js";
6
6
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-bI7Tdx75.js";
@@ -152,7 +152,7 @@ function isModuleNotFoundError(err) {
152
152
  }
153
153
  async function loadPwAiModule(mode) {
154
154
  try {
155
- return await import("./pw-ai-BiBvIJzd.js");
155
+ return await import("./pw-ai-CP5pn3eU.js");
156
156
  } catch (err) {
157
157
  if (mode === "soft") return null;
158
158
  if (isModuleNotFoundError(err)) return null;
@@ -775,11 +775,11 @@ function createProfileContext(opts, profile) {
775
775
  const userDataDir = resolveSymiUserDataDir(profile.name);
776
776
  const profileState = getProfileState();
777
777
  if (await isHttpReachable(300) && !profileState.running) try {
778
- await (await import("./pw-ai-BiBvIJzd.js")).closePlaywrightBrowserConnection();
778
+ await (await import("./pw-ai-CP5pn3eU.js")).closePlaywrightBrowserConnection();
779
779
  } catch {}
780
780
  if (profileState.running) await stopRunningBrowser();
781
781
  try {
782
- await (await import("./pw-ai-BiBvIJzd.js")).closePlaywrightBrowserConnection();
782
+ await (await import("./pw-ai-CP5pn3eU.js")).closePlaywrightBrowserConnection();
783
783
  } catch {}
784
784
  if (!fs.existsSync(userDataDir)) return {
785
785
  moved: false,
@@ -1,60 +1,60 @@
1
- import { D as ensureOutboundSessionEntry, Ft as normalizeGroupActivation, I as normalizeCronJobCreate, Kt as resolveAgentTimeoutMs, L as normalizeCronJobPatch, Lt as formatZonedTimestamp, Nt as prepareAgentRun, O as resolveOutboundSessionRoute, Pt as BARE_SESSION_RESET_PROMPT, Rt as isAbortTrigger, St as parseVerboseOverride, Ut as listDescendantRunsForRequester, Wt as listSubagentRunsForRequester, Zt as clearSessionQueues, b as prepareReplyTurn, bt as applyModelOverrideToSessionEntry, et as applyBrowserProxyPaths, f as getChannelActivity, g as buildGlassUiProfile, ht as resolveSendPolicy, in as abortEmbeddedPiRun, j as normalizePollInput, k as resolveOutboundTarget, m as createReplyDispatcher, mt as normalizeSendPolicy, nn as registerAgentRunContext, on as waitForEmbeddedPiRunEnd, pn as resolveUserTimezone, s as loadSymiPlugins, st as scheduleGatewaySigusr1Restart, tn as onAgentEvent, tt as persistBrowserProxyFiles, v as runUnifiedTurn, w as listTasksInWorkdir, xt as applyVerboseOverride, y as buildAgentTurnParams, zt as stopSubagentsForRequester } from "./unified-runner-CznU7Ad0.js";
1
+ import { D as ensureOutboundSessionEntry, Ft as normalizeGroupActivation, I as normalizeCronJobCreate, Kt as resolveAgentTimeoutMs, L as normalizeCronJobPatch, Lt as formatZonedTimestamp, Nt as prepareAgentRun, O as resolveOutboundSessionRoute, Pt as BARE_SESSION_RESET_PROMPT, Rt as isAbortTrigger, St as parseVerboseOverride, Ut as listDescendantRunsForRequester, Wt as listSubagentRunsForRequester, Zt as clearSessionQueues, b as prepareReplyTurn, bt as applyModelOverrideToSessionEntry, et as applyBrowserProxyPaths, f as getChannelActivity, g as buildGlassUiProfile, ht as resolveSendPolicy, in as abortEmbeddedPiRun, j as normalizePollInput, k as resolveOutboundTarget, m as createReplyDispatcher, mt as normalizeSendPolicy, nn as registerAgentRunContext, on as waitForEmbeddedPiRunEnd, pn as resolveUserTimezone, s as loadSymiPlugins, st as scheduleGatewaySigusr1Restart, tn as onAgentEvent, tt as persistBrowserProxyFiles, v as runUnifiedTurn, w as listTasksInWorkdir, xt as applyVerboseOverride, y as buildAgentTurnParams, zt as stopSubagentsForRequester } from "./unified-runner-CsadjpQa.js";
2
2
  import { H as createInternalHookEvent, P as getResolvedLoggerSettings, W as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL } from "./registry-Sbac4a4z.js";
3
3
  import { _ as resolveStateDir, t as CONFIG_PATH } from "./paths-By0XjHBk.js";
4
4
  import { S as isPlainObject, h as resolveUserPath, n as clamp } from "./utils-CTPsqyE_.js";
5
5
  import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
6
6
  import { a as classifySessionKeyShape, b as isSubagentSessionKey, c as resolveAgentIdFromSessionKey, o as normalizeAgentId, p as DEFAULT_ACCOUNT_ID, t as DEFAULT_AGENT_ID, x as parseAgentSessionKey } from "./session-key-DUSb7CCb.js";
7
- import { t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
8
- import { C as ensureAgentWorkspace, S as DEFAULT_USER_FILENAME, T as isWorkspaceOnboardingCompleted, _ as DEFAULT_MEMORY_ALT_FILENAME, b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as DEFAULT_AGENTS_FILENAME, t as listAgentEntries, v as DEFAULT_MEMORY_FILENAME, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_SYMICORE_FILENAME } from "./agent-scope-DOrZjOnW.js";
9
- import { b as resolveThinkingDefault, f as resolveAllowedModelRef, h as resolveDefaultModelForAgent, v as resolveSubagentConfiguredModelSelection } from "./model-selection-7wdmO-Iw.js";
7
+ import { t as resolveSymiPackageRoot } from "./symi-root-DeCVdZB4.js";
8
+ import { C as ensureAgentWorkspace, S as DEFAULT_USER_FILENAME, T as isWorkspaceOnboardingCompleted, _ as DEFAULT_MEMORY_ALT_FILENAME, b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as DEFAULT_AGENTS_FILENAME, t as listAgentEntries, v as DEFAULT_MEMORY_FILENAME, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_SYMICORE_FILENAME } from "./agent-scope-Bnsyyeci.js";
9
+ import { b as resolveThinkingDefault, f as resolveAllowedModelRef, h as resolveDefaultModelForAgent, v as resolveSubagentConfiguredModelSelection } from "./model-selection-CCTzD29o.js";
10
10
  import { n as normalizeSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
11
- import { N as VERSION, P as resolveRuntimeServiceVersion, T as applyLegacyMigrations, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, m as sensitive, o as readConfigFileSnapshot, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins, w as applyMergePatch } from "./config-B4jkreCN.js";
11
+ import { N as VERSION, P as resolveRuntimeServiceVersion, T as applyLegacyMigrations, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, m as sensitive, o as readConfigFileSnapshot, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins, w as applyMergePatch } from "./config-BngIfn5l.js";
12
12
  import { c as pickPrimaryLanIPv4 } from "./ws-C7Ktmt-R.js";
13
- import { i as loadWorkspaceSkillEntries } from "./skills-BwDmcZdt.js";
13
+ import { i as loadWorkspaceSkillEntries } from "./skills-CYcBtLGH.js";
14
14
  import { t as movePathToTrash } from "./trash-_YhavPQI.js";
15
- import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, G as snapshotSessionOrigin, H as resolveMainSessionKey, O as stripEnvelopeFromMessages, S as archiveSessionTranscripts, T as readSessionPreviewItemsFromTranscript, U as resolveMainSessionKeyFromConfig, V as resolveExplicitAgentSessionKey, d as updateSessionStore, o as loadSessionStore, t as extractDeliveryInfo, w as readSessionMessages, x as archiveFileOnDisk, y as normalizeSessionDeliveryFields } from "./sessions-Dxf5Kjig.js";
15
+ import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, G as snapshotSessionOrigin, H as resolveMainSessionKey, O as stripEnvelopeFromMessages, S as archiveSessionTranscripts, T as readSessionPreviewItemsFromTranscript, U as resolveMainSessionKeyFromConfig, V as resolveExplicitAgentSessionKey, d as updateSessionStore, o as loadSessionStore, t as extractDeliveryInfo, w as readSessionMessages, x as archiveFileOnDisk, y as normalizeSessionDeliveryFields } from "./sessions-BCc3THTm.js";
16
16
  import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-DgjXWzf-.js";
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
18
18
  import { c as resolveStorePath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-BtvQ7JvU.js";
19
19
  import { i as normalizeInputProvenance } from "./input-provenance-Dfn-vEsu.js";
20
20
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-COroyVA5.js";
21
- import { h as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-lTZLIQqf.js";
21
+ import { h as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-CWMFmMCv.js";
22
22
  import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-D3mgssM_.js";
23
- import { C as enqueueSystemEvent, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, w as isSystemEventContextChanged } from "./session-utils-Cs1jlD-q.js";
24
- import { n as createBrowserRouteDispatcher } from "./with-timeout-DPR4A2dx.js";
25
- import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BFNeXT65.js";
26
- import { t as getMemorySearchManager } from "./memory-B067LTL9.js";
27
- import { $ as validateNodeInvokeResultParams, $t as rotateDeviceToken, A as validateCronListParams, At as validateTasksListParams, B as validateDeviceTokenRevokeParams, Bt as ErrorCodes, C as validateConfigApplyParams, Ct as validateSessionsUsageParams, D as validateConfigSetParams, Dt as validateSkillsUpdateParams, E as validateConfigSchemaParams, Et as validateSkillsStatusParams, F as validateCronUpdateParams, Ft as validateWizardCancelParams, G as validateExecApprovalsNodeGetParams, Gt as approveDevicePairing, I as validateDevicePairApproveParams, It as validateWizardNextParams, J as validateLogsTailParams, Jt as listDevicePairing, K as validateExecApprovalsNodeSetParams, L as validateDevicePairListParams, Lt as validateWizardStartParams, M as validateCronRunParams, Mt as validateWakeParams, N as validateCronRunsParams, Nt as validateWebLoginStartParams, Ot as validateTalkConfigParams, P as validateCronStatusParams, Pt as validateWebLoginWaitParams, Q as validateNodeInvokeParams, Qt as revokeDeviceToken, R as validateDevicePairRejectParams, Rt as validateWizardStatusParams, S as validateChatToolsListParams, St as validateSessionsSearchParams, T as validateConfigPatchParams, Tt as validateSkillsInstallParams, Ut as parseSessionLabel, V as validateDeviceTokenRotateParams, Vt as errorShape, W as validateExecApprovalsGetParams, X as validateNodeDescribeParams, Xt as removePairedDevice, Y as validateModelsListParams, Yt as rejectDevicePairing, Z as validateNodeEventParams, _ as validateChatHistoryParams, _t as validateSessionsPatchParams, a as validateAgentWaitParams, at as validateNodePairVerifyParams, b as validateChatSkillsListParams, bt as validateSessionsResolveParams, c as validateAgentsFilesGetParams, ct as validatePushTestParams, d as validateAgentsListParams, dt as validateSessionsAdoptFileParams, en as summarizeDeviceTokens, et as validateNodeListParams, f as validateAgentsUpdateParams, ft as validateSessionsCompactParams, g as validateChatCommandsListParams, gt as validateSessionsListParams, h as validateChatAbortParams, ht as validateSessionsFavoriteFileParams, i as validateAgentParams, it as validateNodePairRequestParams, j as validateCronRemoveParams, jt as validateUpdateRunParams, k as validateCronAddParams, kt as validateTalkModeParams, l as validateAgentsFilesListParams, m as validateChannelsStatusParams, mt as validateSessionsDeleteParams, n as formatValidationErrors, nt as validateNodePairListParams, o as validateAgentsCreateParams, ot as validateNodeRenameParams, p as validateChannelsLogoutParams, pt as validateSessionsDeleteFileParams, q as validateExecApprovalsSetParams, r as validateAgentIdentityParams, rt as validateNodePairRejectParams, s as validateAgentsDeleteParams, st as validatePollParams, tt as validateNodePairApproveParams, u as validateAgentsFilesSetParams, ut as validateSendParams, v as validateChatInjectParams, vt as validateSessionsPreviewParams, w as validateConfigGetParams, wt as validateSkillsBinsParams, x as validateChatSymframePushParams, xt as validateSessionsRestoreParams, y as validateChatSendParams, yt as validateSessionsResetParams, z as validateDevicePairRemoveParams } from "./client-Cs9Bh-G0.js";
28
- import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-xdEE97oU.js";
29
- import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Dcy37-4s.js";
30
- import { c as approveNodePairing, d as renamePairedNode, f as requestNodePairing, l as listNodePairing, m as verifyNodeToken, t as getRemoteSkillEligibility, u as rejectNodePairing } from "./skills-remote-bz71Bstn.js";
31
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-jKFQf7of.js";
23
+ import { C as enqueueSystemEvent, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, w as isSystemEventContextChanged } from "./session-utils-CJhcRx3E.js";
24
+ import { n as createBrowserRouteDispatcher } from "./with-timeout-CLrF-Yr_.js";
25
+ import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-CtZtkTJK.js";
26
+ import { t as getMemorySearchManager } from "./memory-fFc7GGPZ.js";
27
+ import { $ as validateNodeInvokeResultParams, $t as rotateDeviceToken, A as validateCronListParams, At as validateTasksListParams, B as validateDeviceTokenRevokeParams, Bt as ErrorCodes, C as validateConfigApplyParams, Ct as validateSessionsUsageParams, D as validateConfigSetParams, Dt as validateSkillsUpdateParams, E as validateConfigSchemaParams, Et as validateSkillsStatusParams, F as validateCronUpdateParams, Ft as validateWizardCancelParams, G as validateExecApprovalsNodeGetParams, Gt as approveDevicePairing, I as validateDevicePairApproveParams, It as validateWizardNextParams, J as validateLogsTailParams, Jt as listDevicePairing, K as validateExecApprovalsNodeSetParams, L as validateDevicePairListParams, Lt as validateWizardStartParams, M as validateCronRunParams, Mt as validateWakeParams, N as validateCronRunsParams, Nt as validateWebLoginStartParams, Ot as validateTalkConfigParams, P as validateCronStatusParams, Pt as validateWebLoginWaitParams, Q as validateNodeInvokeParams, Qt as revokeDeviceToken, R as validateDevicePairRejectParams, Rt as validateWizardStatusParams, S as validateChatToolsListParams, St as validateSessionsSearchParams, T as validateConfigPatchParams, Tt as validateSkillsInstallParams, Ut as parseSessionLabel, V as validateDeviceTokenRotateParams, Vt as errorShape, W as validateExecApprovalsGetParams, X as validateNodeDescribeParams, Xt as removePairedDevice, Y as validateModelsListParams, Yt as rejectDevicePairing, Z as validateNodeEventParams, _ as validateChatHistoryParams, _t as validateSessionsPatchParams, a as validateAgentWaitParams, at as validateNodePairVerifyParams, b as validateChatSkillsListParams, bt as validateSessionsResolveParams, c as validateAgentsFilesGetParams, ct as validatePushTestParams, d as validateAgentsListParams, dt as validateSessionsAdoptFileParams, en as summarizeDeviceTokens, et as validateNodeListParams, f as validateAgentsUpdateParams, ft as validateSessionsCompactParams, g as validateChatCommandsListParams, gt as validateSessionsListParams, h as validateChatAbortParams, ht as validateSessionsFavoriteFileParams, i as validateAgentParams, it as validateNodePairRequestParams, j as validateCronRemoveParams, jt as validateUpdateRunParams, k as validateCronAddParams, kt as validateTalkModeParams, l as validateAgentsFilesListParams, m as validateChannelsStatusParams, mt as validateSessionsDeleteParams, n as formatValidationErrors, nt as validateNodePairListParams, o as validateAgentsCreateParams, ot as validateNodeRenameParams, p as validateChannelsLogoutParams, pt as validateSessionsDeleteFileParams, q as validateExecApprovalsSetParams, r as validateAgentIdentityParams, rt as validateNodePairRejectParams, s as validateAgentsDeleteParams, st as validatePollParams, tt as validateNodePairApproveParams, u as validateAgentsFilesSetParams, ut as validateSendParams, v as validateChatInjectParams, vt as validateSessionsPreviewParams, w as validateConfigGetParams, wt as validateSkillsBinsParams, x as validateChatSymframePushParams, xt as validateSessionsRestoreParams, y as validateChatSendParams, yt as validateSessionsResetParams, z as validateDevicePairRemoveParams } from "./client-DiPa71im.js";
28
+ import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-xUpyZDH4.js";
29
+ import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-B703A1U3.js";
30
+ import { c as approveNodePairing, d as renamePairedNode, f as requestNodePairing, l as listNodePairing, m as verifyNodeToken, t as getRemoteSkillEligibility, u as rejectNodePairing } from "./skills-remote-BcRQTDsZ.js";
31
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DCICLTHx.js";
32
32
  import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals } from "./exec-approvals-DioSaIeH.js";
33
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-D8kKOts5.js";
33
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CUreKVeY.js";
34
34
  import { i as parseAbsoluteTimeMs } from "./stagger-DQs772BN.js";
35
- import { n as createOutboundSendDeps } from "./deps-Bf9dt2UO.js";
35
+ import { n as createOutboundSendDeps } from "./deps-CdibsPMx.js";
36
36
  import { t as buildChannelUiCatalog } from "./catalog-BptA-dUv.js";
37
- import { t as buildWorkspaceSkillStatus } from "./skills-status-BKX1PjCc.js";
37
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-DLnCHUZ2.js";
38
38
  import { t as WizardCancelledError } from "./prompts-CNzp9M83.js";
39
39
  import { t as resolveChannelDefaultAccountId } from "./helpers-G6zuddmF.js";
40
40
  import { t as buildChannelAccountSnapshot } from "./status-Bah7VY4i.js";
41
- import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-CLXJ8zp0.js";
42
- import { c as resolveNodeCommandAllowlist, s as isNodeCommandAllowed } from "./audit-Ce-u6aaR.js";
43
- import { n as getStatusSummary } from "./status-DHBVIMyL.js";
44
- import { m as normalizeUpdateChannel } from "./update-check-BCL_K7kx.js";
45
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-va-DRu4U.js";
46
- import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-CBfp75J4.js";
47
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-B7sNDvhz.js";
41
+ import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-CJlheOSJ.js";
42
+ import { c as resolveNodeCommandAllowlist, s as isNodeCommandAllowed } from "./audit-CuwXq_EA.js";
43
+ import { n as getStatusSummary } from "./status-ISN-LC9F.js";
44
+ import { m as normalizeUpdateChannel } from "./update-check-u6Jgr1cz.js";
45
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CbbWM63o.js";
46
+ import { i as resolveAgentOutboundTarget, r as resolveAgentDeliveryPlan, t as agentCommand } from "./agent-CoHzNs_e.js";
47
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DA0ISLi7.js";
48
48
  import { t as resolveSystemRunCommand } from "./system-run-command-olPQqEUJ.js";
49
- import { t as installSkill } from "./skills-install-Dwzsjoc8.js";
50
- import { t as runGatewayUpdate } from "./update-runner-BLV8SI96.js";
49
+ import { t as installSkill } from "./skills-install-BTa9IuQ6.js";
50
+ import { t as runGatewayUpdate } from "./update-runner-G2YgEATs.js";
51
51
  import crypto, { randomUUID } from "node:crypto";
52
52
  import path from "node:path";
53
- import * as fs$2 from "node:fs";
53
+ import * as fs$1 from "node:fs";
54
54
  import fs from "node:fs";
55
55
  import * as os$1 from "node:os";
56
56
  import os from "node:os";
57
- import fs$1 from "node:fs/promises";
57
+ import fsPromises from "node:fs/promises";
58
58
  import { spawnSync } from "node:child_process";
59
59
  import { z } from "zod";
60
60
  import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
@@ -401,20 +401,20 @@ function resolveCronRunLogPath(params) {
401
401
  }
402
402
  const writesByPath = /* @__PURE__ */ new Map();
403
403
  async function pruneIfNeeded(filePath, opts) {
404
- const stat = await fs$1.stat(filePath).catch(() => null);
404
+ const stat = await fsPromises.stat(filePath).catch(() => null);
405
405
  if (!stat || stat.size <= opts.maxBytes) return;
406
- const lines = (await fs$1.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
406
+ const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
407
407
  const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
408
408
  const { randomBytes } = await import("node:crypto");
409
409
  const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
410
- await fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
411
- await fs$1.rename(tmp, filePath);
410
+ await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
411
+ await fsPromises.rename(tmp, filePath);
412
412
  }
413
413
  async function appendCronRunLog(filePath, entry, opts) {
414
414
  const resolved = path.resolve(filePath);
415
415
  const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
416
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
417
- await fs$1.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
416
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
417
+ await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
418
418
  await pruneIfNeeded(resolved, {
419
419
  maxBytes: opts?.maxBytes ?? 2e6,
420
420
  keepLines: opts?.keepLines ?? 2e3
@@ -426,7 +426,7 @@ async function appendCronRunLog(filePath, entry, opts) {
426
426
  async function readCronRunLogEntries(filePath, opts) {
427
427
  const limit = Math.max(1, Math.min(5e3, Math.floor(opts?.limit ?? 200)));
428
428
  const jobId = opts?.jobId?.trim() || void 0;
429
- const raw = await fs$1.readFile(path.resolve(filePath), "utf-8").catch(() => "");
429
+ const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
430
430
  if (!raw.trim()) return [];
431
431
  const parsed = [];
432
432
  const lines = raw.split("\n");
@@ -2938,7 +2938,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
2938
2938
  }
2939
2939
  async function statFile(filePath) {
2940
2940
  try {
2941
- const stat = await fs$1.stat(filePath);
2941
+ const stat = await fsPromises.stat(filePath);
2942
2942
  if (!stat.isFile()) return null;
2943
2943
  return {
2944
2944
  size: stat.size,
@@ -3008,7 +3008,7 @@ function resolveOptionalStringParam(value) {
3008
3008
  async function moveToTrashBestEffort(pathname) {
3009
3009
  if (!pathname) return;
3010
3010
  try {
3011
- await fs$1.access(pathname);
3011
+ await fsPromises.access(pathname);
3012
3012
  } catch {
3013
3013
  return;
3014
3014
  }
@@ -3055,7 +3055,7 @@ const agentsHandlers = {
3055
3055
  dir: workspaceDir,
3056
3056
  ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
3057
3057
  });
3058
- await fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
3058
+ await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
3059
3059
  await writeConfigFile(nextConfig);
3060
3060
  const safeName = sanitizeIdentityLine(rawName);
3061
3061
  const emoji = resolveOptionalStringParam(params.emoji);
@@ -3068,7 +3068,7 @@ const agentsHandlers = {
3068
3068
  ...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
3069
3069
  ""
3070
3070
  ];
3071
- await fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
3071
+ await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
3072
3072
  respond(true, {
3073
3073
  ok: true,
3074
3074
  agentId,
@@ -3103,9 +3103,9 @@ const agentsHandlers = {
3103
3103
  });
3104
3104
  if (avatar) {
3105
3105
  const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
3106
- await fs$1.mkdir(workspace, { recursive: true });
3106
+ await fsPromises.mkdir(workspace, { recursive: true });
3107
3107
  const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
3108
- await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
3108
+ await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
3109
3109
  }
3110
3110
  respond(true, {
3111
3111
  ok: true,
@@ -3188,7 +3188,7 @@ const agentsHandlers = {
3188
3188
  }, void 0);
3189
3189
  return;
3190
3190
  }
3191
- const content = await fs$1.readFile(filePath, "utf-8");
3191
+ const content = await fsPromises.readFile(filePath, "utf-8");
3192
3192
  respond(true, {
3193
3193
  agentId,
3194
3194
  workspace: workspaceDir,
@@ -3210,10 +3210,10 @@ const agentsHandlers = {
3210
3210
  const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
3211
3211
  if (!resolved) return;
3212
3212
  const { agentId, workspaceDir, name } = resolved;
3213
- await fs$1.mkdir(workspaceDir, { recursive: true });
3213
+ await fsPromises.mkdir(workspaceDir, { recursive: true });
3214
3214
  const filePath = path.join(workspaceDir, name);
3215
3215
  const content = String(params.content ?? "");
3216
- await fs$1.writeFile(filePath, content, "utf-8");
3216
+ await fsPromises.writeFile(filePath, content, "utf-8");
3217
3217
  const meta = await statFile(filePath);
3218
3218
  respond(true, {
3219
3219
  ok: true,
@@ -4201,7 +4201,7 @@ const chatHandlers = {
4201
4201
  }
4202
4202
  (async () => {
4203
4203
  try {
4204
- const [mod, { loadConfig }] = await Promise.all([import("./commands-registry-Ca5hh7nh.js").then((n) => n.t), import("./config-B4jkreCN.js").then((n) => n.t)]);
4204
+ const [mod, { loadConfig }] = await Promise.all([import("./commands-registry-CwXsDVuO.js").then((n) => n.t), import("./config-BngIfn5l.js").then((n) => n.t)]);
4205
4205
  const cfg = loadConfig();
4206
4206
  respond(true, { commands: mod.listChatCommandsForConfig(cfg).map((cmd) => ({
4207
4207
  key: cmd.key,
@@ -4225,7 +4225,7 @@ const chatHandlers = {
4225
4225
  }
4226
4226
  (async () => {
4227
4227
  try {
4228
- const [{ createSymiTools }, { loadConfig }] = await Promise.all([import("./unified-runner-CznU7Ad0.js").then((n) => n.C), import("./config-B4jkreCN.js").then((n) => n.t)]);
4228
+ const [{ createSymiTools }, { loadConfig }] = await Promise.all([import("./unified-runner-CsadjpQa.js").then((n) => n.C), import("./config-BngIfn5l.js").then((n) => n.t)]);
4229
4229
  respond(true, { tools: createSymiTools({ config: loadConfig() }).map((tool) => {
4230
4230
  const name = tool.name;
4231
4231
  const description = tool.description;
@@ -4254,7 +4254,7 @@ const chatHandlers = {
4254
4254
  }
4255
4255
  (async () => {
4256
4256
  try {
4257
- const [{ listSkillCommandsForAgents }, { loadConfig }] = await Promise.all([import("./skill-commands-DDGGlq68.js").then((n) => n.a), import("./config-B4jkreCN.js").then((n) => n.t)]);
4257
+ const [{ listSkillCommandsForAgents }, { loadConfig }] = await Promise.all([import("./skill-commands-DWvXs3lz.js").then((n) => n.a), import("./config-BngIfn5l.js").then((n) => n.t)]);
4258
4258
  respond(true, { items: listSkillCommandsForAgents({ cfg: loadConfig() }).map((skill) => ({
4259
4259
  value: skill.name,
4260
4260
  label: skill.description ? `${skill.name} — ${skill.description}` : skill.name
@@ -4288,13 +4288,19 @@ const chatHandlers = {
4288
4288
  respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `chat.symframe.push: ${typed.action} requires \`id\``));
4289
4289
  return;
4290
4290
  }
4291
+ if (typed.action === "setMode" && !typed.mode) {
4292
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "chat.symframe.push: setMode requires `mode` ∈ {ambient | focus | awaiting | quiet}"));
4293
+ return;
4294
+ }
4291
4295
  (async () => {
4292
4296
  const { emitSymframePush } = await import("./symframe-broadcast-CXo2qoxy.js").then((n) => n.r);
4293
4297
  emitSymframePush({
4294
4298
  action: typed.action,
4295
4299
  id: typed.id,
4296
4300
  card: typed.card,
4297
- force: typed.force === true
4301
+ force: typed.force === true,
4302
+ mode: typed.mode,
4303
+ focusedId: typed.focusedId
4298
4304
  });
4299
4305
  })();
4300
4306
  respond(true, { ok: true }, void 0);
@@ -6542,7 +6548,7 @@ const docsHandlers = { "docs.get": async ({ params, respond }) => {
6542
6548
  const fullPath = path.join(packageRoot, relPath);
6543
6549
  let markdown;
6544
6550
  try {
6545
- markdown = await fs$1.readFile(fullPath, "utf-8");
6551
+ markdown = await fsPromises.readFile(fullPath, "utf-8");
6546
6552
  } catch (err) {
6547
6553
  if (err?.code === "ENOENT") {
6548
6554
  respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `docs file not bundled in this Symi install: ${relPath}`));
@@ -6693,14 +6699,14 @@ function isRollingLogFile(file) {
6693
6699
  return ROLLING_LOG_RE.test(path.basename(file));
6694
6700
  }
6695
6701
  async function resolveLogFile(file) {
6696
- if (await fs$1.stat(file).catch(() => null)) return file;
6702
+ if (await fsPromises.stat(file).catch(() => null)) return file;
6697
6703
  if (!isRollingLogFile(file)) return file;
6698
6704
  const dir = path.dirname(file);
6699
- const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => null);
6705
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
6700
6706
  if (!entries) return file;
6701
6707
  return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
6702
6708
  const fullPath = path.join(dir, entry.name);
6703
- const fileStat = await fs$1.stat(fullPath).catch(() => null);
6709
+ const fileStat = await fsPromises.stat(fullPath).catch(() => null);
6704
6710
  return fileStat ? {
6705
6711
  path: fullPath,
6706
6712
  mtimeMs: fileStat.mtimeMs
@@ -6708,7 +6714,7 @@ async function resolveLogFile(file) {
6708
6714
  }))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
6709
6715
  }
6710
6716
  async function readLogSlice(params) {
6711
- const stat = await fs$1.stat(params.file).catch(() => null);
6717
+ const stat = await fsPromises.stat(params.file).catch(() => null);
6712
6718
  if (!stat) return {
6713
6719
  cursor: 0,
6714
6720
  size: 0,
@@ -6746,7 +6752,7 @@ async function readLogSlice(params) {
6746
6752
  truncated,
6747
6753
  reset
6748
6754
  };
6749
- const handle = await fs$1.open(params.file, "r");
6755
+ const handle = await fsPromises.open(params.file, "r");
6750
6756
  try {
6751
6757
  let prefix = "";
6752
6758
  if (start > 0) {
@@ -7547,7 +7553,7 @@ const nodeHandlers = {
7547
7553
  const p = params;
7548
7554
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7549
7555
  await respondUnavailableOnThrow(respond, async () => {
7550
- const { handleNodeEvent } = await import("./server-node-events-BKqszk_a.js");
7556
+ const { handleNodeEvent } = await import("./server-node-events-DHSiqnRS.js");
7551
7557
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7552
7558
  await handleNodeEvent({
7553
7559
  deps: context.deps,
@@ -8066,7 +8072,7 @@ function broadcastPresenceSnapshot(params) {
8066
8072
  let _prevCpu = null;
8067
8073
  function getCpuPercent() {
8068
8074
  try {
8069
- const parts = fs$2.readFileSync("/proc/stat", "utf8").split("\n")[0].trim().split(/\s+/).slice(1).map(Number);
8075
+ const parts = fs$1.readFileSync("/proc/stat", "utf8").split("\n")[0].trim().split(/\s+/).slice(1).map(Number);
8070
8076
  const [, , , idle, iowait] = parts;
8071
8077
  const total = parts.reduce((a, b) => a + b, 0);
8072
8078
  const active = total - idle - (iowait || 0);
@@ -8090,7 +8096,7 @@ function getCpuPercent() {
8090
8096
  }
8091
8097
  function getMemInfo() {
8092
8098
  try {
8093
- const text = fs$2.readFileSync("/proc/meminfo", "utf8");
8099
+ const text = fs$1.readFileSync("/proc/meminfo", "utf8");
8094
8100
  const get = (key) => parseInt(text.match(new RegExp(`${key}:\\s+(\\d+)`))?.[1] ?? "0", 10) * 1024;
8095
8101
  const total = get("MemTotal");
8096
8102
  const used = total - get("MemAvailable");
@@ -8109,7 +8115,7 @@ function getMemInfo() {
8109
8115
  }
8110
8116
  function getDiskInfo() {
8111
8117
  try {
8112
- const stats = fs$2.statfsSync("/");
8118
+ const stats = fs$1.statfsSync("/");
8113
8119
  const total = stats.blocks * stats.bsize;
8114
8120
  const used = total - stats.bfree * stats.bsize;
8115
8121
  return {