@symerian/symi 2.7.8 → 2.7.10

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 (197) hide show
  1. package/dist/{acp-cli-DV6gYjcL.js → acp-cli-DwKj-AqM.js} +1 -1
  2. package/dist/{acp-cli-6peVIuMz.js → acp-cli-lkOF8AeX.js} +1 -1
  3. package/dist/{agents-DhWccW-I.js → agents-Qr0BDw_h.js} +5 -5
  4. package/dist/{agents.config-DwibJO90.js → agents.config-D0ih9tP3.js} +1 -1
  5. package/dist/{agents.config-ByNtHnqX.js → agents.config-DIjsIDbS.js} +1 -1
  6. package/dist/{audio-preflight-DIXDvyz5.js → audio-preflight-D0nJ1LEt.js} +4 -4
  7. package/dist/{audit-BZU2PNKl.js → audit-DVUHZrf4.js} +1 -1
  8. package/dist/{audit-CaFXenfE.js → audit-DgAM_dWL.js} +1 -1
  9. package/dist/{auth-choice-Divyczym.js → auth-choice-DhI8MW-5.js} +2 -2
  10. package/dist/{auth-choice-DOQ4Xf6i.js → auth-choice-PdYn-qiM.js} +2 -2
  11. package/dist/{banner-Cyi2LLe-.js → banner-BQhYK_Ag.js} +1 -1
  12. package/dist/{browser-cli-DUcEYbmP.js → browser-cli-CQKRSqbb.js} +2 -2
  13. package/dist/{browser-cli-DM3GvpUm.js → browser-cli-ClxJjz9C.js} +2 -2
  14. package/dist/build-info.json +3 -3
  15. package/dist/bundled/boot-md/handler.js +6 -6
  16. package/dist/bundled/session-memory/handler.js +6 -6
  17. package/dist/{call-CJl0moIs.js → call-BrRWr7Lj.js} +1 -0
  18. package/dist/{call-BHn18ubR.js → call-CVqBgwrx.js} +1 -0
  19. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  20. package/dist/{channel-options-C1sGPky6.js → channel-options-CFwo8sFR.js} +1 -1
  21. package/dist/{channel-options-Bk4m4-d5.js → channel-options-ZHpChVVk.js} +1 -1
  22. package/dist/{channel-web-BKbzqQ7x.js → channel-web-UmRhDGhI.js} +1 -1
  23. package/dist/{channels-cli-CAz8gCcs.js → channels-cli-CRDgQtex.js} +6 -6
  24. package/dist/{channels-cli-CGOOVbGf.js → channels-cli-rzQvsXSw.js} +6 -6
  25. package/dist/{chrome-ROtrXlNs.js → chrome-C08Z0XAa.js} +7 -7
  26. package/dist/cli/daemon-cli.js +1 -1
  27. package/dist/{cli-7JBNvH2_.js → cli-CC9jaj6w.js} +3 -3
  28. package/dist/{cli-C0zcu-AX.js → cli-DN6fX0Xu.js} +3 -3
  29. package/dist/{command-registry-BGMCr778.js → command-registry-CH1cn-Lz.js} +10 -10
  30. package/dist/{completion-cli-EO1xz8q6.js → completion-cli-BgneZQ7D.js} +1 -1
  31. package/dist/{completion-cli-B1wj8Q43.js → completion-cli-CG24rSh8.js} +2 -2
  32. package/dist/{config-cli-B9RnWD0Y.js → config-cli-CXa7oMTX.js} +1 -1
  33. package/dist/{config-cli-QugXKbsV.js → config-cli-DVEOa8P5.js} +1 -1
  34. package/dist/{configure-DOfxxuzV.js → configure-BDxyPzBl.js} +6 -6
  35. package/dist/{configure-C_BD9gNf.js → configure-U2yrALDt.js} +6 -6
  36. package/dist/control-ui/css/style.css +213 -6
  37. package/dist/control-ui/index.html +24 -2
  38. package/dist/control-ui/js/connections.js +113 -5
  39. package/dist/{cron-cli-CH0XOOxj.js → cron-cli--z6DSGhk.js} +2 -2
  40. package/dist/{cron-cli-DBt3Lxhm.js → cron-cli-DZJZ_EvY.js} +2 -2
  41. package/dist/{daemon-cli-BRMcpQb7.js → daemon-cli-B9yneKpO.js} +2 -2
  42. package/dist/{daemon-cli-DZeTm_F2.js → daemon-cli-bwFAShzf.js} +2 -2
  43. package/dist/daemon-cli.js +1 -0
  44. package/dist/{deliver-BC3liFsT.js → deliver-CLZGlRZt.js} +1 -1
  45. package/dist/{devices-cli-DwCYjYyV.js → devices-cli-fVRpoa9z.js} +1 -1
  46. package/dist/{devices-cli-C7aaQeFG.js → devices-cli-oqibXYae.js} +1 -1
  47. package/dist/{doctor-completion-DL-ojJGb.js → doctor-completion-8zSqfzuU.js} +1 -1
  48. package/dist/{doctor-completion-Dm4QxJdc.js → doctor-completion-ny9DIsuL.js} +1 -1
  49. package/dist/entry.js +1 -1
  50. package/dist/{exec-approvals-cli-BcwVEh83.js → exec-approvals-cli-BpOqYXNL.js} +3 -3
  51. package/dist/{exec-approvals-cli-CWpi7F1X.js → exec-approvals-cli-DjGZKQbZ.js} +3 -3
  52. package/dist/extensionAPI.js +1 -1
  53. package/dist/{gateway-cli-DcrPLnL3.js → gateway-cli-CmfMdGhz.js} +14 -13
  54. package/dist/{gateway-cli-DyFOMcg2.js → gateway-cli-Dg0UoYav.js} +14 -13
  55. package/dist/{gateway-rpc-BzkjTxlD.js → gateway-rpc-Bp0KNJtL.js} +1 -1
  56. package/dist/{gateway-rpc-CJPoGX_W.js → gateway-rpc-XT8cFwtz.js} +1 -1
  57. package/dist/{glass-ui-ws-Czh-1YjO.js → glass-ui-ws-Bgpyl16w.js} +10 -10
  58. package/dist/{glass-ui-ws-nxFknxgE.js → glass-ui-ws-aKGCf5hN.js} +10 -10
  59. package/dist/{health-CFd-Q1SH.js → health-Bj8mUXDd.js} +48 -14
  60. package/dist/{health-1ZDwurPU.js → health-D9pKXesa.js} +48 -14
  61. package/dist/{hooks-cli-C4tUO222.js → hooks-cli-5G9JN39f.js} +4 -4
  62. package/dist/{hooks-cli-nKBiWE2v.js → hooks-cli-DtVT3wM_.js} +4 -4
  63. package/dist/{image-C6v6m8Id.js → image-BnO8X_hj.js} +1 -1
  64. package/dist/index.js +8 -8
  65. package/dist/llm-slug-generator.js +6 -6
  66. package/dist/{logs-cli-DWqkAMwy.js → logs-cli-gU7p7zX0.js} +2 -2
  67. package/dist/{logs-cli-q93Kur4b.js → logs-cli-tJPD_Dps.js} +2 -2
  68. package/dist/{models-Cd9pFy1G.js → models-DQthIpnz.js} +3 -3
  69. package/dist/{models-cli-Cxo55E0S.js → models-cli-D8zc0jSg.js} +5 -5
  70. package/dist/{models-cli-CSqy5xI0.js → models-cli-UaHeUaJq.js} +4 -4
  71. package/dist/{nodes-cli-BHVOxukb.js → nodes-cli-6vHqlpLI.js} +2 -2
  72. package/dist/{nodes-cli-seBKfjdd.js → nodes-cli-DxHMNlWq.js} +2 -2
  73. package/dist/{onboard-SceHniST.js → onboard-B7CIWmHb.js} +3 -3
  74. package/dist/{onboard-CVKCZHVL.js → onboard-CYYcbEPR.js} +3 -3
  75. package/dist/{onboard-channels-BI-59zLH.js → onboard-channels-CUUTFx1F.js} +1 -1
  76. package/dist/{onboard-channels-KGMbYFcP.js → onboard-channels-HyGv2y5c.js} +1 -1
  77. package/dist/{onboard-helpers-BV3zKTt_.js → onboard-helpers-7H_XiJt-.js} +1 -1
  78. package/dist/{onboard-helpers-BFyI1sla.js → onboard-helpers-CPSKXD5k.js} +1 -1
  79. package/dist/{onboard-remote-C-EvSvV9.js → onboard-remote-BlCdyTsP.js} +1 -1
  80. package/dist/{onboard-remote-CvtBwhma.js → onboard-remote-DFavRxQ6.js} +1 -1
  81. package/dist/{onboard-skills-C1jrqA-P.js → onboard-skills-CssuFDjw.js} +1 -1
  82. package/dist/{onboard-skills-CWaMGMQi.js → onboard-skills-DVtfVPsB.js} +1 -1
  83. package/dist/{onboarding-Bs3JhONv.js → onboarding-BHnEBXBG.js} +7 -7
  84. package/dist/{onboarding-BPjquWC3.js → onboarding-CchD1d-n.js} +7 -7
  85. package/dist/{onboarding.finalize-lAwIuZFE.js → onboarding.finalize-BZ6tQzoC.js} +8 -8
  86. package/dist/{onboarding.finalize-Dbx89qG2.js → onboarding.finalize-CnzLAjla.js} +9 -9
  87. package/dist/{onboarding.gateway-config-Btb5PaGv.js → onboarding.gateway-config-TM8ERKyn.js} +2 -2
  88. package/dist/{onboarding.gateway-config-gMhAsXgO.js → onboarding.gateway-config-vGTQDqA6.js} +2 -2
  89. package/dist/{pi-embedded-CG4P3hy3.js → pi-embedded-BIATvD3R.js} +3 -2
  90. package/dist/{pi-embedded-helpers-BUNbSNWw.js → pi-embedded-helpers-DcN8GHTt.js} +4 -4
  91. package/dist/{plugin-registry-DSrgdZKM.js → plugin-registry-7MeuYUTG.js} +1 -1
  92. package/dist/{plugin-registry-C4aoDdOB.js → plugin-registry-Dx8MaVaX.js} +1 -1
  93. package/dist/plugin-sdk/{channel-web-CsZ6epLT.js → channel-web-C6_r-2VI.js} +1 -1
  94. package/dist/plugin-sdk/index.js +2 -2
  95. package/dist/plugin-sdk/{reply-Rv3jE0Rs.js → reply-CIDYJYie.js} +3 -2
  96. package/dist/plugin-sdk/{web-D6R4__wu.js → web-CHKraWl6.js} +2 -2
  97. package/dist/{plugins-cli-DJM_xxIg.js → plugins-cli-bblxpPhT.js} +4 -4
  98. package/dist/{plugins-cli-CSwcV2M6.js → plugins-cli-oatWFlGr.js} +4 -4
  99. package/dist/{program-CtX7o1VN.js → program-cj70FFee.js} +9 -9
  100. package/dist/{program-context-B2HPYMcn.js → program-context-DSkr5IEn.js} +28 -28
  101. package/dist/{prompt-select-styled-5a7_K1sn.js → prompt-select-styled-C9MQv67C.js} +6 -6
  102. package/dist/{prompt-select-styled-Cs79EjHm.js → prompt-select-styled-DxtxwQmE.js} +6 -6
  103. package/dist/{provider-auth-helpers-DOa1Rc3D.js → provider-auth-helpers-CezJXPrZ.js} +1 -1
  104. package/dist/{provider-auth-helpers-fWAoFIwZ.js → provider-auth-helpers-D9BOiQMP.js} +1 -1
  105. package/dist/{push-apns-HnaGVJwW.js → push-apns-CL2MBhWP.js} +1 -1
  106. package/dist/{push-apns-Dnd_jTU-.js → push-apns-DUWtWoB-.js} +1 -1
  107. package/dist/{pw-ai-BLrC_W1X.js → pw-ai-B476LzSK.js} +1 -1
  108. package/dist/{register.agent-CaputGWT.js → register.agent-B-v1ixge.js} +8 -8
  109. package/dist/{register.agent-lqb5eXZs.js → register.agent-Dms0oymW.js} +7 -7
  110. package/dist/{register.configure-C3AQZaAa.js → register.configure-BP_a-E21.js} +10 -10
  111. package/dist/{register.configure-C0KBR4e6.js → register.configure-DcwAboPG.js} +10 -10
  112. package/dist/{register.maintenance-DLY3bZTm.js → register.maintenance-C4tn55a5.js} +9 -9
  113. package/dist/{register.maintenance-c8Ig4nYO.js → register.maintenance-D_1D-fbi.js} +10 -10
  114. package/dist/{register.message-CUclEFp5.js → register.message-Csn-WBH0.js} +4 -4
  115. package/dist/{register.message-Bexo7F0u.js → register.message-FsBEsQeD.js} +4 -4
  116. package/dist/{register.onboard-CVmFRJ__.js → register.onboard-CHpUtNWT.js} +6 -6
  117. package/dist/{register.onboard-DpeqS3GT.js → register.onboard-OXqQs97I.js} +6 -6
  118. package/dist/{register.setup-DogqYYN7.js → register.setup-C8FuEUO_.js} +6 -6
  119. package/dist/{register.setup-NiDBVZE2.js → register.setup-DbPNjezQ.js} +6 -6
  120. package/dist/{register.status-health-sessions-C5noW7M3.js → register.status-health-sessions-BzB_lPbR.js} +6 -6
  121. package/dist/{register.status-health-sessions-CTErhiR9.js → register.status-health-sessions-c8vq6An_.js} +6 -6
  122. package/dist/{register.subclis-E_1XOkdf.js → register.subclis-Dt0Az0gT.js} +19 -19
  123. package/dist/{reply-DAMo5JhO.js → reply-B0azB7WR.js} +4 -4
  124. package/dist/{rpc-IXmOgc1l.js → rpc-CHb_JvbM.js} +1 -1
  125. package/dist/{rpc-k8pnK8TE.js → rpc-Cog-Z1rx.js} +1 -1
  126. package/dist/{run-main-Cv91hLSK.js → run-main-D-OIb2fr.js} +16 -16
  127. package/dist/{runner-QX0Z6K1w.js → runner-D5nFF9E6.js} +1 -1
  128. package/dist/{security-cli-Cxmb5Rpv.js → security-cli-B5s73Le2.js} +2 -2
  129. package/dist/{security-cli-BsStEfWU.js → security-cli-CzWHkrqD.js} +2 -2
  130. package/dist/{server-methods-CXL1Nrbp.js → server-methods-Dph_r18S.js} +68 -10
  131. package/dist/{server-methods-C_rhjm5p.js → server-methods-b55BoGQD.js} +68 -10
  132. package/dist/{server-node-events-B_UZBZn_.js → server-node-events-AVxH5dXs.js} +4 -4
  133. package/dist/{server-node-events-CdUVoXvg.js → server-node-events-Ba9K9DB9.js} +4 -4
  134. package/dist/{status-CzI_lZth.js → status-Bbss-JjB.js} +5 -5
  135. package/dist/{status-DQQ-w3eF.js → status-Cg3Vn5FV.js} +5 -5
  136. package/dist/{status-Ds4oB9tJ.js → status-CpWkGj5h.js} +1 -1
  137. package/dist/{status-Drn5xFtL.js → status-DNxAYvxM.js} +1 -1
  138. package/dist/{subagent-registry-CfoRc8ng.js → subagent-registry-CsYeP8wc.js} +4 -4
  139. package/dist/{system-cli-DnlgTnqh.js → system-cli-D3CVv1ab.js} +2 -2
  140. package/dist/{system-cli-CQNazJoF.js → system-cli-rpyy5jcw.js} +2 -2
  141. package/dist/{tui-CXTwJqpz.js → tui-DfPeXwah.js} +1 -1
  142. package/dist/{tui-DTW81r9y.js → tui-LZPdrFmK.js} +1 -1
  143. package/dist/{tui-cli-KiaTeKr0.js → tui-cli-Bm3TJgXf.js} +2 -2
  144. package/dist/{tui-cli-DGmt1Xs0.js → tui-cli-DFXZ7r1F.js} +2 -2
  145. package/dist/{unified-runner-DweFv8Vx.js → unified-runner-BojeuKIk.js} +17 -16
  146. package/dist/{update-cli-Ba4La00X.js → update-cli-DO0A0UCN.js} +10 -10
  147. package/dist/{update-cli-BkJZPKh8.js → update-cli-Dh_GPhI4.js} +11 -11
  148. package/dist/{update-runner-w3GO-spo.js → update-runner-BE6kDMsw.js} +1 -1
  149. package/dist/{update-runner-CqWSrJXt.js → update-runner-Cv6hDgKV.js} +1 -1
  150. package/dist/{web-0cG6_ynp.js → web-BOv3xM7W.js} +4 -4
  151. package/dist/{web-DHAEIalz.js → web-CYf5I3aU.js} +3 -3
  152. package/dist/{web-9rrJ5lZr.js → web-Dxkxcp7P.js} +6 -6
  153. package/dist/{web-Cx3SfQiX.js → web-Ifwqx6Dt.js} +1 -1
  154. package/docs/connections/email.md +143 -0
  155. package/docs/connections/msteams.md +80 -0
  156. package/docs/connections/slack.md +91 -0
  157. package/extensions/bluebubbles/package.json +1 -1
  158. package/extensions/copilot-proxy/package.json +1 -1
  159. package/extensions/diagnostics-otel/package.json +1 -1
  160. package/extensions/discord/package.json +1 -1
  161. package/extensions/feishu/package.json +1 -1
  162. package/extensions/google-antigravity-auth/package.json +1 -1
  163. package/extensions/google-gemini-cli-auth/package.json +1 -1
  164. package/extensions/googlechat/package.json +1 -1
  165. package/extensions/imessage/package.json +1 -1
  166. package/extensions/irc/package.json +1 -1
  167. package/extensions/learning-loop/package.json +1 -1
  168. package/extensions/line/package.json +1 -1
  169. package/extensions/llm-task/package.json +1 -1
  170. package/extensions/matrix/CHANGELOG.md +12 -0
  171. package/extensions/matrix/package.json +1 -1
  172. package/extensions/mattermost/package.json +1 -1
  173. package/extensions/memory-core/package.json +1 -1
  174. package/extensions/memory-lancedb/package.json +1 -1
  175. package/extensions/minimax-portal-auth/package.json +1 -1
  176. package/extensions/msteams/CHANGELOG.md +12 -0
  177. package/extensions/msteams/package.json +1 -1
  178. package/extensions/nextcloud-talk/package.json +1 -1
  179. package/extensions/nostr/CHANGELOG.md +12 -0
  180. package/extensions/nostr/package.json +1 -1
  181. package/extensions/open-prose/package.json +1 -1
  182. package/extensions/outlook/package.json +1 -1
  183. package/extensions/pipeline/package.json +1 -1
  184. package/extensions/signal/package.json +1 -1
  185. package/extensions/slack/package.json +1 -1
  186. package/extensions/telegram/package.json +1 -1
  187. package/extensions/tlon/package.json +1 -1
  188. package/extensions/twitch/CHANGELOG.md +12 -0
  189. package/extensions/twitch/package.json +1 -1
  190. package/extensions/voice-call/CHANGELOG.md +12 -0
  191. package/extensions/voice-call/package.json +1 -1
  192. package/extensions/whatsapp/package.json +1 -1
  193. package/extensions/zalo/CHANGELOG.md +12 -0
  194. package/extensions/zalo/package.json +1 -1
  195. package/extensions/zalouser/CHANGELOG.md +12 -0
  196. package/extensions/zalouser/package.json +1 -1
  197. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
2
- import { a as randomIdempotencyKey, n as callGateway } from "./call-BHn18ubR.js";
2
+ import { a as randomIdempotencyKey, n as callGateway } from "./call-CVqBgwrx.js";
3
3
  import { n as withProgress } from "./progress-jIePzvGA.js";
4
4
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-CdUiymRU.js";
5
5
 
@@ -11,10 +11,10 @@ import "./skills-D_oCiaQn.js";
11
11
  import "./manifest-registry-D5bnO5uA.js";
12
12
  import { H as VERSION, W as loadDotEnv } from "./config-DXt3pc08.js";
13
13
  import "./client-qUlxXXVJ.js";
14
- import "./call-CJl0moIs.js";
14
+ import "./call-BrRWr7Lj.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-CfoRc8ng.js";
17
+ import "./subagent-registry-CsYeP8wc.js";
18
18
  import "./sessions-BPD85pWA.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -94,7 +94,7 @@ import "./cli-utils-CCaEbxAz.js";
94
94
  import "./help-format-B0pWGnZs.js";
95
95
  import "./progress-BAHiAaDW.js";
96
96
  import "./replies-CsUBFXf6.js";
97
- import "./onboard-helpers-BV3zKTt_.js";
97
+ import "./onboard-helpers-7H_XiJt-.js";
98
98
  import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-DwceB1dG.js";
100
100
  import "./pi-tools.policy-DOVQ8dDx.js";
@@ -102,9 +102,9 @@ import { t as ensureSymiCliOnPath } from "./path-env-Bic_wXs9.js";
102
102
  import "./catalog-buoA8ik4.js";
103
103
  import "./note-DDecZomM.js";
104
104
  import "./plugin-auto-enable-BvmQklg-.js";
105
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-DSrgdZKM.js";
105
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-7MeuYUTG.js";
106
106
  import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
107
- import { t as emitCliBanner } from "./banner-Cyi2LLe-.js";
107
+ import { t as emitCliBanner } from "./banner-BQhYK_Ag.js";
108
108
  import "./doctor-config-flow-C81j0-sE.js";
109
109
  import { n as ensureConfigReady } from "./config-guard-CJ4iAPK5.js";
110
110
  import process$1 from "node:process";
@@ -119,7 +119,7 @@ const routeHealth = {
119
119
  const verbose = getVerboseFlag(argv, { includeDebug: true });
120
120
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
121
121
  if (timeoutMs === null) return false;
122
- const { healthCommand } = await import("./health-1ZDwurPU.js").then((n) => n.i);
122
+ const { healthCommand } = await import("./health-D9pKXesa.js").then((n) => n.i);
123
123
  await healthCommand({
124
124
  json,
125
125
  timeoutMs,
@@ -139,7 +139,7 @@ const routeStatus = {
139
139
  const verbose = getVerboseFlag(argv, { includeDebug: true });
140
140
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
141
141
  if (timeoutMs === null) return false;
142
- const { statusCommand } = await import("./status-DQQ-w3eF.js").then((n) => n.t);
142
+ const { statusCommand } = await import("./status-Cg3Vn5FV.js").then((n) => n.t);
143
143
  await statusCommand({
144
144
  json,
145
145
  deep,
@@ -173,7 +173,7 @@ const routeAgentsList = {
173
173
  run: async (argv) => {
174
174
  const json = hasFlag(argv, "--json");
175
175
  const bindings = hasFlag(argv, "--bindings");
176
- const { agentsListCommand } = await import("./agents-DhWccW-I.js").then((n) => n.t);
176
+ const { agentsListCommand } = await import("./agents-Qr0BDw_h.js").then((n) => n.t);
177
177
  await agentsListCommand({
178
178
  json,
179
179
  bindings
@@ -244,7 +244,7 @@ const routes = [
244
244
  const pathArg = getCommandPositionals(argv)[2];
245
245
  if (!pathArg) return false;
246
246
  const json = hasFlag(argv, "--json");
247
- const { runConfigGet } = await import("./config-cli-QugXKbsV.js");
247
+ const { runConfigGet } = await import("./config-cli-DVEOa8P5.js");
248
248
  await runConfigGet({
249
249
  path: pathArg,
250
250
  json
@@ -257,7 +257,7 @@ const routes = [
257
257
  run: async (argv) => {
258
258
  const pathArg = getCommandPositionals(argv)[2];
259
259
  if (!pathArg) return false;
260
- const { runConfigUnset } = await import("./config-cli-QugXKbsV.js");
260
+ const { runConfigUnset } = await import("./config-cli-DVEOa8P5.js");
261
261
  await runConfigUnset({ path: pathArg });
262
262
  return true;
263
263
  }
@@ -271,7 +271,7 @@ const routes = [
271
271
  const local = hasFlag(argv, "--local");
272
272
  const json = hasFlag(argv, "--json");
273
273
  const plain = hasFlag(argv, "--plain");
274
- const { modelsListCommand } = await import("./models-Cd9pFy1G.js").then((n) => n.t);
274
+ const { modelsListCommand } = await import("./models-DQthIpnz.js").then((n) => n.t);
275
275
  await modelsListCommand({
276
276
  all,
277
277
  local,
@@ -302,7 +302,7 @@ const routes = [
302
302
  const plain = hasFlag(argv, "--plain");
303
303
  const check = hasFlag(argv, "--check");
304
304
  const probe = hasFlag(argv, "--probe");
305
- const { modelsStatusCommand } = await import("./models-Cd9pFy1G.js").then((n) => n.t);
305
+ const { modelsStatusCommand } = await import("./models-DQthIpnz.js").then((n) => n.t);
306
306
  await modelsStatusCommand({
307
307
  json,
308
308
  plain,
@@ -380,7 +380,7 @@ async function runCli(argv = process$1.argv) {
380
380
  assertSupportedRuntime();
381
381
  if (await tryRouteCli(normalizedArgv)) return;
382
382
  enableConsoleCapture();
383
- const { buildProgram } = await import("./program-CtX7o1VN.js");
383
+ const { buildProgram } = await import("./program-cj70FFee.js");
384
384
  const program = buildProgram();
385
385
  installUnhandledRejectionHandler();
386
386
  process$1.on("uncaughtException", (error) => {
@@ -412,10 +412,10 @@ async function runCli(argv = process$1.argv) {
412
412
  const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
413
413
  const ctx = getProgramContext(program);
414
414
  if (ctx) {
415
- const { registerCoreCliByName } = await import("./command-registry-BGMCr778.js").then((n) => n.t);
415
+ const { registerCoreCliByName } = await import("./command-registry-CH1cn-Lz.js").then((n) => n.t);
416
416
  await registerCoreCliByName(program, ctx, primary, parseArgv);
417
417
  }
418
- const { registerSubCliByName } = await import("./register.subclis-E_1XOkdf.js").then((n) => n.a);
418
+ const { registerSubCliByName } = await import("./register.subclis-Dt0Az0gT.js").then((n) => n.a);
419
419
  await registerSubCliByName(program, primary);
420
420
  }
421
421
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -424,7 +424,7 @@ async function runCli(argv = process$1.argv) {
424
424
  primary,
425
425
  hasBuiltinPrimary
426
426
  })) {
427
- const { registerPluginCliCommands } = await import("./cli-C0zcu-AX.js");
427
+ const { registerPluginCliCommands } = await import("./cli-DN6fX0Xu.js");
428
428
  const { loadConfig } = await import("./config-DXt3pc08.js").then((n) => n.t);
429
429
  registerPluginCliCommands(program, loadConfig());
430
430
  }
@@ -4,7 +4,7 @@ import { A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normal
4
4
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BkZ9HOKT.js";
5
5
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-C7CauEK8.js";
6
6
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-C6v6m8Id.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-BnO8X_hj.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-BefM10YB.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-Cj6kcyGt.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-Se92wAN5.js";
@@ -41,7 +41,7 @@ import "./logging-w5jq5901.js";
41
41
  import "./paths-CyhzMxFA.js";
42
42
  import "./commands-BNLCWX6e.js";
43
43
  import "./client-B8xmq-Pw.js";
44
- import "./call-BHn18ubR.js";
44
+ import "./call-CVqBgwrx.js";
45
45
  import "./pairing-token-CX3NN_qj.js";
46
46
  import { i as readChannelAllowFromStore } from "./pairing-store-BRM-hV6H.js";
47
47
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
@@ -50,7 +50,7 @@ import "./workspace-dirs-GpkFi6Kw.js";
50
50
  import "./pi-tools.policy-BpN-v9bT.js";
51
51
  import "./dangerous-tools-BvU3-DRl.js";
52
52
  import "./skill-scanner-hMtQbWPV.js";
53
- import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-BZU2PNKl.js";
53
+ import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-DVUHZrf4.js";
54
54
  import "./dm-policy-shared-DwFEXR-I.js";
55
55
  import path from "node:path";
56
56
  import fs from "node:fs/promises";
@@ -10,7 +10,7 @@ import "./skills-D_oCiaQn.js";
10
10
  import "./manifest-registry-D5bnO5uA.js";
11
11
  import { i as loadConfig, r as createConfigIO } from "./config-DXt3pc08.js";
12
12
  import "./client-qUlxXXVJ.js";
13
- import "./call-CJl0moIs.js";
13
+ import "./call-BrRWr7Lj.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
16
  import "./sessions-BPD85pWA.js";
@@ -45,7 +45,7 @@ import { t as formatHelpExamples } from "./help-format-B0pWGnZs.js";
45
45
  import "./pi-tools.policy-DOVQ8dDx.js";
46
46
  import "./dangerous-tools-B8QrxStA.js";
47
47
  import "./skill-scanner-BGWOBqLY.js";
48
- import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-CaFXenfE.js";
48
+ import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-DgAM_dWL.js";
49
49
  import "./dm-policy-shared-DF2uLfXk.js";
50
50
  import path from "node:path";
51
51
  import fs from "node:fs/promises";
@@ -7,12 +7,12 @@ import { i as loadWorkspaceSkillEntries } from "./skills-D_oCiaQn.js";
7
7
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DODCG6UU.js";
8
8
  import { H as VERSION, N as applyMergePatch, P as applyLegacyMigrations, S as sensitive, U as resolveRuntimeServiceVersion, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins } from "./config-DXt3pc08.js";
9
9
  import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWizardNextParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateTalkConfigParams, D as validateCronRemoveParams, Dt as validateWebLoginStartParams, E as validateCronListParams, Et as validateWakeParams, F as validateDevicePairRemoveParams, Ft as errorShape, G as validateModelsListParams, H as validateExecApprovalsNodeSetParams, Ht as listDevicePairing, I as validateDeviceTokenRevokeParams, J as validateNodeInvokeParams, Jt as summarizeDeviceTokens, K as validateNodeDescribeParams, Kt as revokeDeviceToken, L as validateDeviceTokenRotateParams, Lt as parseSessionLabel, M as validateDevicePairApproveParams, Mt as validateWizardStatusParams, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWebLoginWaitParams, P as validateDevicePairRejectParams, Pt as ErrorCodes, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsUpdateParams, T as validateCronAddParams, Tt as validateUpdateRunParams, U as validateExecApprovalsSetParams, Ut as rejectDevicePairing, V as validateExecApprovalsNodeGetParams, W as validateLogsTailParams, Wt as removePairedDevice, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsInstallParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardStartParams, k as validateCronRunsParams, kt as validateWizardCancelParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, qt as rotateDeviceToken, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsUsageParams, wt as validateTalkModeParams, x as validateConfigPatchParams, xt as validateSkillsStatusParams, y as validateConfigApplyParams, yt as validateSkillsBinsParams, zt as approveDevicePairing } from "./client-qUlxXXVJ.js";
10
- import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-CJl0moIs.js";
10
+ import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-BrRWr7Lj.js";
11
11
  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-C9dERklz.js";
12
12
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
13
13
  import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
14
14
  import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
15
- import { $n as resolveTtsAutoMode, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as enqueueSystemEvent, Cr as onAgentEvent, D as createOutboundSendDeps, Dt as normalizeCronJobPatch, Et as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, V as createReplyDispatcher, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, Xn as isTtsEnabled, Y as abortEmbeddedPiRun, Yn as getTtsProvider, Z as waitForEmbeddedPiRunEnd, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, m as loadSymiPlugins, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, x as agentCommand, xn as applyVerboseOverride, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-CfoRc8ng.js";
15
+ import { $n as resolveTtsAutoMode, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as enqueueSystemEvent, Cr as onAgentEvent, D as createOutboundSendDeps, Dt as normalizeCronJobPatch, Et as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, V as createReplyDispatcher, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, Xn as isTtsEnabled, Y as abortEmbeddedPiRun, Yn as getTtsProvider, Z as waitForEmbeddedPiRunEnd, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, m as loadSymiPlugins, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, x as agentCommand, xn as applyVerboseOverride, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-CsYeP8wc.js";
16
16
  import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-BPD85pWA.js";
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
18
18
  import { n as createBrowserRouteDispatcher } from "./with-timeout-BIXdW2Bg.js";
@@ -30,21 +30,21 @@ import { t as getChannelActivity } from "./channel-activity-myOnmDZi.js";
30
30
  import { n as normalizePollInput } from "./polls-DXeUmcgz.js";
31
31
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Ce4HMDRY.js";
32
32
  import { i as parseAbsoluteTimeMs } from "./stagger-CQar2eKe.js";
33
- import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-BV3zKTt_.js";
33
+ import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-7H_XiJt-.js";
34
34
  import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-B8TDjqpW.js";
35
35
  import { t as buildChannelUiCatalog } from "./catalog-buoA8ik4.js";
36
36
  import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
37
37
  import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
38
38
  import { t as buildChannelAccountSnapshot } from "./status-BUedPCLb.js";
39
- import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-CaFXenfE.js";
40
- import { r as getStatusSummary } from "./status-DQQ-w3eF.js";
41
- import { c as setHeartbeatsEnabled } from "./health-1ZDwurPU.js";
39
+ import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-DgAM_dWL.js";
40
+ import { r as getStatusSummary } from "./status-Cg3Vn5FV.js";
41
+ import { c as setHeartbeatsEnabled } from "./health-D9pKXesa.js";
42
42
  import { m as normalizeUpdateChannel } from "./update-check-ZdimP1aU.js";
43
- 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-HnaGVJwW.js";
44
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-ByNtHnqX.js";
43
+ 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-CL2MBhWP.js";
44
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DIjsIDbS.js";
45
45
  import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
46
46
  import { t as installSkill } from "./skills-install-Por3jP0P.js";
47
- import { t as runGatewayUpdate } from "./update-runner-w3GO-spo.js";
47
+ import { t as runGatewayUpdate } from "./update-runner-BE6kDMsw.js";
48
48
  import { spawnSync } from "node:child_process";
49
49
  import * as os$1 from "node:os";
50
50
  import os from "node:os";
@@ -6376,6 +6376,63 @@ const deviceHandlers = {
6376
6376
  }
6377
6377
  };
6378
6378
 
6379
+ //#endregion
6380
+ //#region src/gateway/server-methods/docs.ts
6381
+ /**
6382
+ * Whitelist of doc keys the Glass UI docs viewer can fetch. Each value is a
6383
+ * path relative to the Symi package root. Keys are exposed over the RPC;
6384
+ * paths are not — so the client cannot request arbitrary files.
6385
+ *
6386
+ * Docs here are the short viewer-specific copies at docs/connections/*.md.
6387
+ * The longer MDX-flavoured docs at docs/channels/*.md are intended for the
6388
+ * hosted Mintlify site and are not served through this endpoint because
6389
+ * marked.js in the browser cannot render Mintlify components.
6390
+ */
6391
+ const DOCS_WHITELIST = {
6392
+ email: "docs/connections/email.md",
6393
+ slack: "docs/connections/slack.md",
6394
+ msteams: "docs/connections/msteams.md"
6395
+ };
6396
+ const docsHandlers = { "docs.get": async ({ params, respond }) => {
6397
+ const rawKey = params.key;
6398
+ if (typeof rawKey !== "string" || !rawKey.trim()) {
6399
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "docs.get requires a string `key` param"));
6400
+ return;
6401
+ }
6402
+ const key = rawKey.trim();
6403
+ const relPath = DOCS_WHITELIST[key];
6404
+ if (!relPath) {
6405
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `unknown docs key: ${key} (allowed: ${Object.keys(DOCS_WHITELIST).join(", ")})`));
6406
+ return;
6407
+ }
6408
+ const packageRoot = await resolveSymiPackageRoot({
6409
+ cwd: process.cwd(),
6410
+ argv1: process.argv[1],
6411
+ moduleUrl: import.meta.url
6412
+ });
6413
+ if (!packageRoot) {
6414
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "could not resolve Symi package root"));
6415
+ return;
6416
+ }
6417
+ const fullPath = path.join(packageRoot, relPath);
6418
+ let markdown;
6419
+ try {
6420
+ markdown = await fs$1.readFile(fullPath, "utf-8");
6421
+ } catch (err) {
6422
+ if (err?.code === "ENOENT") {
6423
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `docs file not bundled in this Symi install: ${relPath}`));
6424
+ return;
6425
+ }
6426
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `failed to read docs file: ${String(err)}`));
6427
+ return;
6428
+ }
6429
+ respond(true, {
6430
+ key,
6431
+ path: relPath,
6432
+ markdown
6433
+ }, void 0);
6434
+ } };
6435
+
6379
6436
  //#endregion
6380
6437
  //#region src/gateway/server-methods/exec-approvals.ts
6381
6438
  function requireApprovalsBaseHash(params, snapshot, respond) {
@@ -7365,7 +7422,7 @@ const nodeHandlers = {
7365
7422
  const p = params;
7366
7423
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7367
7424
  await respondUnavailableOnThrow(respond, async () => {
7368
- const { handleNodeEvent } = await import("./server-node-events-CdUVoXvg.js");
7425
+ const { handleNodeEvent } = await import("./server-node-events-Ba9K9DB9.js");
7369
7426
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7370
7427
  await handleNodeEvent({
7371
7428
  deps: context.deps,
@@ -9371,6 +9428,7 @@ const coreGatewayHandlers = {
9371
9428
  ...chatHandlers,
9372
9429
  ...cronHandlers,
9373
9430
  ...deviceHandlers,
9431
+ ...docsHandlers,
9374
9432
  ...execApprovalsHandlers,
9375
9433
  ...webHandlers,
9376
9434
  ...modelsHandlers,
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-DAMo5JhO.js";
4
+ import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-B0azB7WR.js";
5
5
  import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
@@ -21,14 +21,14 @@ import { n as createBrowserRouteDispatcher } from "./with-timeout-emS7y-kf.js";
21
21
  import { C as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-lG9ITE8w.js";
22
22
  import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
23
23
  import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWizardNextParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateTalkConfigParams, D as validateCronRemoveParams, Dt as validateWebLoginStartParams, E as validateCronListParams, Et as validateWakeParams, F as validateDevicePairRemoveParams, Ft as errorShape, G as validateModelsListParams, H as validateExecApprovalsNodeSetParams, Ht as listDevicePairing, I as validateDeviceTokenRevokeParams, J as validateNodeInvokeParams, Jt as summarizeDeviceTokens, K as validateNodeDescribeParams, Kt as revokeDeviceToken, L as validateDeviceTokenRotateParams, Lt as parseSessionLabel, M as validateDevicePairApproveParams, Mt as validateWizardStatusParams, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWebLoginWaitParams, P as validateDevicePairRejectParams, Pt as ErrorCodes, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsUpdateParams, T as validateCronAddParams, Tt as validateUpdateRunParams, U as validateExecApprovalsSetParams, Ut as rejectDevicePairing, V as validateExecApprovalsNodeGetParams, W as validateLogsTailParams, Wt as removePairedDevice, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsInstallParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardStartParams, k as validateCronRunsParams, kt as validateWizardCancelParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, qt as rotateDeviceToken, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsUsageParams, wt as validateTalkModeParams, x as validateConfigPatchParams, xt as validateSkillsStatusParams, y as validateConfigApplyParams, yt as validateSkillsBinsParams, zt as approveDevicePairing } from "./client-B8xmq-Pw.js";
24
- import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-BHn18ubR.js";
24
+ import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-CVqBgwrx.js";
25
25
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-CX3NN_qj.js";
26
26
  import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
27
27
  import { t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
28
28
  import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-BMu-U3SX.js";
29
29
  import { t as listAgentWorkspaceDirs } from "./workspace-dirs-GpkFi6Kw.js";
30
30
  import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-BXAI7CNH.js";
31
- import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-BFyI1sla.js";
31
+ import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-CPSKXD5k.js";
32
32
  import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals } from "./exec-approvals-DXM2pQYL.js";
33
33
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-D0IdaeI8.js";
34
34
  import { i as parseAbsoluteTimeMs } from "./stagger-CvFURHzt.js";
@@ -38,15 +38,15 @@ import { t as buildWorkspaceSkillStatus } from "./skills-status-CKmK1hOo.js";
38
38
  import { t as WizardCancelledError } from "./prompts-CfOu9uZi.js";
39
39
  import { t as resolveChannelDefaultAccountId } from "./helpers-DnjQ73f_.js";
40
40
  import { t as buildChannelAccountSnapshot } from "./status-klsFDD3M.js";
41
- import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-BZU2PNKl.js";
42
- import { n as getStatusSummary } from "./status-CzI_lZth.js";
43
- import { s as setHeartbeatsEnabled } from "./health-CFd-Q1SH.js";
41
+ import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-DVUHZrf4.js";
42
+ import { n as getStatusSummary } from "./status-Bbss-JjB.js";
43
+ import { s as setHeartbeatsEnabled } from "./health-Bj8mUXDd.js";
44
44
  import { m as normalizeUpdateChannel } from "./update-check-7EzEjSzb.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-Dnd_jTU-.js";
46
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DwibJO90.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-DUWtWoB-.js";
46
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-D0ih9tP3.js";
47
47
  import { t as resolveSystemRunCommand } from "./system-run-command-B_qw8CXP.js";
48
48
  import { t as installSkill } from "./skills-install-D8JjjETa.js";
49
- import { t as runGatewayUpdate } from "./update-runner-CqWSrJXt.js";
49
+ import { t as runGatewayUpdate } from "./update-runner-Cv6hDgKV.js";
50
50
  import * as fs$2 from "node:fs";
51
51
  import fs from "node:fs";
52
52
  import * as os$1 from "node:os";
@@ -6378,6 +6378,63 @@ const deviceHandlers = {
6378
6378
  }
6379
6379
  };
6380
6380
 
6381
+ //#endregion
6382
+ //#region src/gateway/server-methods/docs.ts
6383
+ /**
6384
+ * Whitelist of doc keys the Glass UI docs viewer can fetch. Each value is a
6385
+ * path relative to the Symi package root. Keys are exposed over the RPC;
6386
+ * paths are not — so the client cannot request arbitrary files.
6387
+ *
6388
+ * Docs here are the short viewer-specific copies at docs/connections/*.md.
6389
+ * The longer MDX-flavoured docs at docs/channels/*.md are intended for the
6390
+ * hosted Mintlify site and are not served through this endpoint because
6391
+ * marked.js in the browser cannot render Mintlify components.
6392
+ */
6393
+ const DOCS_WHITELIST = {
6394
+ email: "docs/connections/email.md",
6395
+ slack: "docs/connections/slack.md",
6396
+ msteams: "docs/connections/msteams.md"
6397
+ };
6398
+ const docsHandlers = { "docs.get": async ({ params, respond }) => {
6399
+ const rawKey = params.key;
6400
+ if (typeof rawKey !== "string" || !rawKey.trim()) {
6401
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "docs.get requires a string `key` param"));
6402
+ return;
6403
+ }
6404
+ const key = rawKey.trim();
6405
+ const relPath = DOCS_WHITELIST[key];
6406
+ if (!relPath) {
6407
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `unknown docs key: ${key} (allowed: ${Object.keys(DOCS_WHITELIST).join(", ")})`));
6408
+ return;
6409
+ }
6410
+ const packageRoot = await resolveSymiPackageRoot({
6411
+ cwd: process.cwd(),
6412
+ argv1: process.argv[1],
6413
+ moduleUrl: import.meta.url
6414
+ });
6415
+ if (!packageRoot) {
6416
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "could not resolve Symi package root"));
6417
+ return;
6418
+ }
6419
+ const fullPath = path.join(packageRoot, relPath);
6420
+ let markdown;
6421
+ try {
6422
+ markdown = await fs$1.readFile(fullPath, "utf-8");
6423
+ } catch (err) {
6424
+ if (err?.code === "ENOENT") {
6425
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `docs file not bundled in this Symi install: ${relPath}`));
6426
+ return;
6427
+ }
6428
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `failed to read docs file: ${String(err)}`));
6429
+ return;
6430
+ }
6431
+ respond(true, {
6432
+ key,
6433
+ path: relPath,
6434
+ markdown
6435
+ }, void 0);
6436
+ } };
6437
+
6381
6438
  //#endregion
6382
6439
  //#region src/gateway/server-methods/exec-approvals.ts
6383
6440
  function requireApprovalsBaseHash(params, snapshot, respond) {
@@ -7367,7 +7424,7 @@ const nodeHandlers = {
7367
7424
  const p = params;
7368
7425
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7369
7426
  await respondUnavailableOnThrow(respond, async () => {
7370
- const { handleNodeEvent } = await import("./server-node-events-B_UZBZn_.js");
7427
+ const { handleNodeEvent } = await import("./server-node-events-AVxH5dXs.js");
7371
7428
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7372
7429
  await handleNodeEvent({
7373
7430
  deps: context.deps,
@@ -9373,6 +9430,7 @@ const coreGatewayHandlers = {
9373
9430
  ...chatHandlers,
9374
9431
  ...cronHandlers,
9375
9432
  ...deviceHandlers,
9433
+ ...docsHandlers,
9376
9434
  ...execApprovalsHandlers,
9377
9435
  ...webHandlers,
9378
9436
  ...modelsHandlers,
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { Et as agentCommand, Mt as resolveOutboundTarget, Pt as createOutboundSendDeps, b as resolveGatewaySessionStoreTarget, st as requestHeartbeatNow, v as loadSessionEntry, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys } from "./reply-DAMo5JhO.js";
4
+ import { Et as agentCommand, Mt as resolveOutboundTarget, Pt as createOutboundSendDeps, b as resolveGatewaySessionStoreTarget, st as requestHeartbeatNow, v as loadSessionEntry, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys } from "./reply-B0azB7WR.js";
5
5
  import { c as normalizeMainKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -73,7 +73,7 @@ import "./render-CXDO_kgw.js";
73
73
  import "./commands-BNLCWX6e.js";
74
74
  import "./commands-registry-B6cf3Cmq.js";
75
75
  import "./client-B8xmq-Pw.js";
76
- import "./call-BHn18ubR.js";
76
+ import "./call-CVqBgwrx.js";
77
77
  import "./pairing-token-CX3NN_qj.js";
78
78
  import "./channel-activity-BOiuJS3t.js";
79
79
  import "./fetch-DTNGXEzX.js";
@@ -94,7 +94,7 @@ import "./session-cost-usage-BXAI7CNH.js";
94
94
  import "./outbound-attachment-Bw-c5Cdp.js";
95
95
  import "./delivery-queue-CAxX6nGq.js";
96
96
  import "./send-CBcCKe5w.js";
97
- import "./onboard-helpers-BFyI1sla.js";
97
+ import "./onboard-helpers-CPSKXD5k.js";
98
98
  import "./prompt-style-CnkMpSXt.js";
99
99
  import "./pairing-labels-BScqzHEx.js";
100
100
  import "./exec-approvals-DXM2pQYL.js";
@@ -103,7 +103,7 @@ import "./pi-tools.policy-BpN-v9bT.js";
103
103
  import "./control-service-D0IdaeI8.js";
104
104
  import "./stagger-CvFURHzt.js";
105
105
  import "./channel-selection-V2xDgw16.js";
106
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-Dnd_jTU-.js";
106
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-DUWtWoB-.js";
107
107
  import { randomUUID } from "node:crypto";
108
108
 
109
109
  //#region src/gateway/server-node-events.ts
@@ -12,10 +12,10 @@ import "./skills-D_oCiaQn.js";
12
12
  import "./manifest-registry-D5bnO5uA.js";
13
13
  import { i as loadConfig } from "./config-DXt3pc08.js";
14
14
  import "./client-qUlxXXVJ.js";
15
- import "./call-CJl0moIs.js";
15
+ import "./call-BrRWr7Lj.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-CfoRc8ng.js";
18
+ import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-CsYeP8wc.js";
19
19
  import { d as updateSessionStore } from "./sessions-BPD85pWA.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import { r as normalizeChannelId } from "./plugins-CwSlLxM8.js";
@@ -95,11 +95,11 @@ import "./cli-utils-CCaEbxAz.js";
95
95
  import "./help-format-B0pWGnZs.js";
96
96
  import "./progress-BAHiAaDW.js";
97
97
  import "./replies-CsUBFXf6.js";
98
- import "./onboard-helpers-BV3zKTt_.js";
98
+ import "./onboard-helpers-7H_XiJt-.js";
99
99
  import "./prompt-style-DwCXob2h.js";
100
100
  import "./pairing-labels-DwceB1dG.js";
101
101
  import "./pi-tools.policy-DOVQ8dDx.js";
102
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-HnaGVJwW.js";
102
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CL2MBhWP.js";
103
103
  import { randomUUID } from "node:crypto";
104
104
 
105
105
  //#region src/gateway/server-node-events.ts
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
- import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-DAMo5JhO.js";
3
+ import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-B0azB7WR.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
6
  import { n as runExec } from "./exec-CWkblSrI.js";
@@ -14,12 +14,12 @@ import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as l
14
14
  import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
15
15
  import { c as resolveStorePath } from "./paths-CyhzMxFA.js";
16
16
  import { r as getMemorySearchManager } from "./memory-cli-AoMrHA5O.js";
17
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BHn18ubR.js";
17
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CVqBgwrx.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
20
20
  import { r as formatDurationPrecise } from "./format-duration-D0B0Uo-I.js";
21
21
  import { o as getRemoteSkillEligibility } from "./skill-commands-BMu-U3SX.js";
22
- import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-BFyI1sla.js";
22
+ import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-CPSKXD5k.js";
23
23
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CKmK1hOo.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-DnjQ73f_.js";
25
25
  import { t as collectChannelStatusIssues } from "./channels-status-issues-CJ0Vb_9z.js";
@@ -27,8 +27,8 @@ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
27
27
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D6c3G7my.js";
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-BRwihzJG.js";
29
29
  import { t as renderTable } from "./table-BKlH0YlA.js";
30
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-BZU2PNKl.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CFd-Q1SH.js";
30
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-DVUHZrf4.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-Bj8mUXDd.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-7EzEjSzb.js";
33
33
  import { t as resolveNodeService } from "./node-service-CD47Qpf1.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-B0yJsjEo.js";
@@ -8,8 +8,8 @@ import { n as runExec } from "./exec-CBKBIMpA.js";
8
8
  import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DODCG6UU.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
11
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CJl0moIs.js";
12
- import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-CfoRc8ng.js";
11
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
12
+ import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-CsYeP8wc.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-BPD85pWA.js";
14
14
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
@@ -21,15 +21,15 @@ import { l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsFo
21
21
  import { o as getRemoteSkillEligibility } from "./skill-commands-BSJONVkt.js";
22
22
  import { r as formatDurationPrecise } from "./format-duration-BOC0O2XQ.js";
23
23
  import { n as withProgress } from "./progress-BAHiAaDW.js";
24
- import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-BV3zKTt_.js";
24
+ import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-7H_XiJt-.js";
25
25
  import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
26
26
  import { t as collectChannelStatusIssues } from "./channels-status-issues-c7qZbYG5.js";
27
27
  import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
28
28
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-hFVEC3wO.js";
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
30
30
  import { t as renderTable } from "./table-D01d2GuY.js";
31
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-CaFXenfE.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-1ZDwurPU.js";
31
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-DgAM_dWL.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-D9pKXesa.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
34
34
  import { t as resolveNodeService } from "./node-service-fcZExd22.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DVLB9DNB.js";
@@ -1,4 +1,4 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DAMo5JhO.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-B0azB7WR.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
3
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
4
4
  import { i as loadConfig } from "./config-PXAJCHa5.js";
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
3
3
  import { i as loadConfig } from "./config-DXt3pc08.js";
4
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CfoRc8ng.js";
4
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CsYeP8wc.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");