@symerian/symi 2.7.8 → 2.7.9

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 (204) 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/{audio-preflight-lr-WPpc9.js → audio-preflight-D_g9Duqw.js} +4 -4
  8. package/dist/{audit-BZU2PNKl.js → audit-DVUHZrf4.js} +1 -1
  9. package/dist/{audit-CaFXenfE.js → audit-DgAM_dWL.js} +1 -1
  10. package/dist/{auth-choice-Divyczym.js → auth-choice-DhI8MW-5.js} +2 -2
  11. package/dist/{auth-choice-DOQ4Xf6i.js → auth-choice-PdYn-qiM.js} +2 -2
  12. package/dist/{banner-Cyi2LLe-.js → banner-BQhYK_Ag.js} +1 -1
  13. package/dist/{browser-cli-DUcEYbmP.js → browser-cli-CQKRSqbb.js} +2 -2
  14. package/dist/{browser-cli-DM3GvpUm.js → browser-cli-ClxJjz9C.js} +2 -2
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +6 -6
  17. package/dist/bundled/session-memory/handler.js +6 -6
  18. package/dist/{call-CJl0moIs.js → call-BrRWr7Lj.js} +1 -0
  19. package/dist/{call-BHn18ubR.js → call-CVqBgwrx.js} +1 -0
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-options-C1sGPky6.js → channel-options-CFwo8sFR.js} +1 -1
  22. package/dist/{channel-options-Bk4m4-d5.js → channel-options-ZHpChVVk.js} +1 -1
  23. package/dist/{channel-web-BKbzqQ7x.js → channel-web-UmRhDGhI.js} +1 -1
  24. package/dist/{channels-cli-CAz8gCcs.js → channels-cli-CRDgQtex.js} +6 -6
  25. package/dist/{channels-cli-CGOOVbGf.js → channels-cli-rzQvsXSw.js} +6 -6
  26. package/dist/{chrome-B14NNyfm.js → chrome-BUT--ob3.js} +7 -7
  27. package/dist/{chrome-ROtrXlNs.js → chrome-C08Z0XAa.js} +7 -7
  28. package/dist/cli/daemon-cli.js +1 -1
  29. package/dist/{cli-7JBNvH2_.js → cli-CC9jaj6w.js} +3 -3
  30. package/dist/{cli-C0zcu-AX.js → cli-DN6fX0Xu.js} +3 -3
  31. package/dist/{command-registry-BGMCr778.js → command-registry-qqb2gJ4P.js} +10 -10
  32. package/dist/{completion-cli-EO1xz8q6.js → completion-cli-BX_yaiom.js} +1 -1
  33. package/dist/{completion-cli-B1wj8Q43.js → completion-cli-g-Vdnude.js} +2 -2
  34. package/dist/{config-cli-B9RnWD0Y.js → config-cli-CnFTSv-1.js} +1 -1
  35. package/dist/{config-cli-QugXKbsV.js → config-cli-CsCvDCZV.js} +1 -1
  36. package/dist/{configure-C_BD9gNf.js → configure-BYd07Mo5.js} +6 -6
  37. package/dist/{configure-DOfxxuzV.js → configure-CAuW3YmR.js} +6 -6
  38. package/dist/control-ui/css/style.css +213 -6
  39. package/dist/control-ui/index.html +24 -2
  40. package/dist/control-ui/js/connections.js +113 -5
  41. package/dist/{cron-cli-CH0XOOxj.js → cron-cli--z6DSGhk.js} +2 -2
  42. package/dist/{cron-cli-DBt3Lxhm.js → cron-cli-DZJZ_EvY.js} +2 -2
  43. package/dist/{daemon-cli-BRMcpQb7.js → daemon-cli-B9yneKpO.js} +2 -2
  44. package/dist/{daemon-cli-DZeTm_F2.js → daemon-cli-bwFAShzf.js} +2 -2
  45. package/dist/daemon-cli.js +1 -0
  46. package/dist/{deliver-DrC7tG6s.js → deliver-B36OzmeP.js} +1 -1
  47. package/dist/{deliver-BC3liFsT.js → deliver-CLZGlRZt.js} +1 -1
  48. package/dist/{devices-cli-DwCYjYyV.js → devices-cli-fVRpoa9z.js} +1 -1
  49. package/dist/{devices-cli-C7aaQeFG.js → devices-cli-oqibXYae.js} +1 -1
  50. package/dist/{doctor-completion-Dm4QxJdc.js → doctor-completion-Cqce5h2X.js} +1 -1
  51. package/dist/{doctor-completion-DL-ojJGb.js → doctor-completion-Dqfl4aR1.js} +1 -1
  52. package/dist/entry.js +1 -1
  53. package/dist/{exec-approvals-cli-BcwVEh83.js → exec-approvals-cli-BpOqYXNL.js} +3 -3
  54. package/dist/{exec-approvals-cli-CWpi7F1X.js → exec-approvals-cli-DjGZKQbZ.js} +3 -3
  55. package/dist/extensionAPI.js +6 -6
  56. package/dist/{gateway-cli-DyFOMcg2.js → gateway-cli-BUqL_Yh6.js} +14 -13
  57. package/dist/{gateway-cli-DcrPLnL3.js → gateway-cli-DA1fRZ5w.js} +14 -13
  58. package/dist/{gateway-rpc-BzkjTxlD.js → gateway-rpc-Bp0KNJtL.js} +1 -1
  59. package/dist/{gateway-rpc-CJPoGX_W.js → gateway-rpc-XT8cFwtz.js} +1 -1
  60. package/dist/{glass-ui-ws-nxFknxgE.js → glass-ui-ws-BzBtCYP7.js} +10 -10
  61. package/dist/{glass-ui-ws-Czh-1YjO.js → glass-ui-ws-Cm-WtdFI.js} +10 -10
  62. package/dist/{health-CFd-Q1SH.js → health-Bx8UUqFA.js} +2 -2
  63. package/dist/{health-1ZDwurPU.js → health-C7HtwYDj.js} +2 -2
  64. package/dist/{hooks-cli-C4tUO222.js → hooks-cli-5G9JN39f.js} +4 -4
  65. package/dist/{hooks-cli-nKBiWE2v.js → hooks-cli-DtVT3wM_.js} +4 -4
  66. package/dist/{image-CKeN0xJL.js → image-BHhzdmbq.js} +1 -1
  67. package/dist/{image-C6v6m8Id.js → image-BnO8X_hj.js} +1 -1
  68. package/dist/index.js +8 -8
  69. package/dist/llm-slug-generator.js +6 -6
  70. package/dist/{logs-cli-DWqkAMwy.js → logs-cli-gU7p7zX0.js} +2 -2
  71. package/dist/{logs-cli-q93Kur4b.js → logs-cli-tJPD_Dps.js} +2 -2
  72. package/dist/{models-Cd9pFy1G.js → models-DQthIpnz.js} +3 -3
  73. package/dist/{models-cli-Cxo55E0S.js → models-cli-D8zc0jSg.js} +5 -5
  74. package/dist/{models-cli-CSqy5xI0.js → models-cli-UaHeUaJq.js} +4 -4
  75. package/dist/{nodes-cli-BHVOxukb.js → nodes-cli-6vHqlpLI.js} +2 -2
  76. package/dist/{nodes-cli-seBKfjdd.js → nodes-cli-DxHMNlWq.js} +2 -2
  77. package/dist/{onboard-SceHniST.js → onboard-C1GtzpAc.js} +3 -3
  78. package/dist/{onboard-channels-BI-59zLH.js → onboard-channels-CUUTFx1F.js} +1 -1
  79. package/dist/{onboard-channels-KGMbYFcP.js → onboard-channels-HyGv2y5c.js} +1 -1
  80. package/dist/{onboard-helpers-BV3zKTt_.js → onboard-helpers-7H_XiJt-.js} +1 -1
  81. package/dist/{onboard-helpers-BFyI1sla.js → onboard-helpers-CPSKXD5k.js} +1 -1
  82. package/dist/{onboard-remote-C-EvSvV9.js → onboard-remote-BlCdyTsP.js} +1 -1
  83. package/dist/{onboard-remote-CvtBwhma.js → onboard-remote-DFavRxQ6.js} +1 -1
  84. package/dist/{onboard-skills-C1jrqA-P.js → onboard-skills-CssuFDjw.js} +1 -1
  85. package/dist/{onboard-skills-CWaMGMQi.js → onboard-skills-DVtfVPsB.js} +1 -1
  86. package/dist/{onboard-CVKCZHVL.js → onboard-sl1Xputw.js} +3 -3
  87. package/dist/{onboarding-Bs3JhONv.js → onboarding-B4qg0ZYp.js} +7 -7
  88. package/dist/{onboarding-BPjquWC3.js → onboarding-C89rTOOy.js} +7 -7
  89. package/dist/{onboarding.finalize-Dbx89qG2.js → onboarding.finalize-CGk4vov2.js} +9 -9
  90. package/dist/{onboarding.finalize-lAwIuZFE.js → onboarding.finalize-ClJ1HBVt.js} +8 -8
  91. package/dist/{onboarding.gateway-config-Btb5PaGv.js → onboarding.gateway-config-TM8ERKyn.js} +2 -2
  92. package/dist/{onboarding.gateway-config-gMhAsXgO.js → onboarding.gateway-config-vGTQDqA6.js} +2 -2
  93. package/dist/{pi-embedded-CG4P3hy3.js → pi-embedded-BaNpG0Aq.js} +17 -16
  94. package/dist/{pi-embedded-helpers-D8YgtMdl.js → pi-embedded-helpers-BET359cH.js} +4 -4
  95. package/dist/{pi-embedded-helpers-BUNbSNWw.js → pi-embedded-helpers-DcN8GHTt.js} +4 -4
  96. package/dist/{plugin-registry-DSrgdZKM.js → plugin-registry-7MeuYUTG.js} +1 -1
  97. package/dist/{plugin-registry-C4aoDdOB.js → plugin-registry-Dx8MaVaX.js} +1 -1
  98. package/dist/plugin-sdk/{channel-web-CsZ6epLT.js → channel-web-C6_r-2VI.js} +1 -1
  99. package/dist/plugin-sdk/index.js +2 -2
  100. package/dist/plugin-sdk/{reply-Rv3jE0Rs.js → reply-CIDYJYie.js} +3 -2
  101. package/dist/plugin-sdk/{web-D6R4__wu.js → web-CHKraWl6.js} +2 -2
  102. package/dist/{plugins-cli-DJM_xxIg.js → plugins-cli-bblxpPhT.js} +4 -4
  103. package/dist/{plugins-cli-CSwcV2M6.js → plugins-cli-oatWFlGr.js} +4 -4
  104. package/dist/{program-CtX7o1VN.js → program-B4MbPh6k.js} +9 -9
  105. package/dist/{program-context-B2HPYMcn.js → program-context-BfdA1JM9.js} +28 -28
  106. package/dist/{prompt-select-styled-Cs79EjHm.js → prompt-select-styled-DNhjvdZL.js} +6 -6
  107. package/dist/{prompt-select-styled-5a7_K1sn.js → prompt-select-styled-bMJTZkj7.js} +6 -6
  108. package/dist/{provider-auth-helpers-DOa1Rc3D.js → provider-auth-helpers-CezJXPrZ.js} +1 -1
  109. package/dist/{provider-auth-helpers-fWAoFIwZ.js → provider-auth-helpers-D9BOiQMP.js} +1 -1
  110. package/dist/{push-apns-HnaGVJwW.js → push-apns-CL2MBhWP.js} +1 -1
  111. package/dist/{push-apns-Dnd_jTU-.js → push-apns-DUWtWoB-.js} +1 -1
  112. package/dist/{pw-ai-BLrC_W1X.js → pw-ai-B476LzSK.js} +1 -1
  113. package/dist/{pw-ai-DTmHAKPA.js → pw-ai-DE8wmtet.js} +1 -1
  114. package/dist/{register.agent-CaputGWT.js → register.agent-B-v1ixge.js} +8 -8
  115. package/dist/{register.agent-lqb5eXZs.js → register.agent-Dms0oymW.js} +7 -7
  116. package/dist/{register.configure-C0KBR4e6.js → register.configure-CVct6y53.js} +10 -10
  117. package/dist/{register.configure-C3AQZaAa.js → register.configure-MY0P8ucP.js} +10 -10
  118. package/dist/{register.maintenance-DLY3bZTm.js → register.maintenance-Ciblsa6H.js} +9 -9
  119. package/dist/{register.maintenance-c8Ig4nYO.js → register.maintenance-DpSSW9tp.js} +10 -10
  120. package/dist/{register.message-CUclEFp5.js → register.message-Csn-WBH0.js} +4 -4
  121. package/dist/{register.message-Bexo7F0u.js → register.message-FsBEsQeD.js} +4 -4
  122. package/dist/{register.onboard-CVmFRJ__.js → register.onboard-BQ-ciW9l.js} +6 -6
  123. package/dist/{register.onboard-DpeqS3GT.js → register.onboard-MIhaldvp.js} +6 -6
  124. package/dist/{register.setup-NiDBVZE2.js → register.setup-DCTamI7u.js} +6 -6
  125. package/dist/{register.setup-DogqYYN7.js → register.setup-M0O0Tp-n.js} +6 -6
  126. package/dist/{register.status-health-sessions-CTErhiR9.js → register.status-health-sessions-Drc5WQGq.js} +6 -6
  127. package/dist/{register.status-health-sessions-C5noW7M3.js → register.status-health-sessions-DzKtjfA-.js} +6 -6
  128. package/dist/{register.subclis-E_1XOkdf.js → register.subclis-Btg8-Nnf.js} +19 -19
  129. package/dist/{reply-DAMo5JhO.js → reply-B0azB7WR.js} +4 -4
  130. package/dist/{rpc-IXmOgc1l.js → rpc-CHb_JvbM.js} +1 -1
  131. package/dist/{rpc-k8pnK8TE.js → rpc-Cog-Z1rx.js} +1 -1
  132. package/dist/{run-main-Cv91hLSK.js → run-main-DfxDXt2d.js} +16 -16
  133. package/dist/{runner-COpebDew.js → runner-BVgCl6yZ.js} +1 -1
  134. package/dist/{runner-QX0Z6K1w.js → runner-D5nFF9E6.js} +1 -1
  135. package/dist/{security-cli-Cxmb5Rpv.js → security-cli-B5s73Le2.js} +2 -2
  136. package/dist/{security-cli-BsStEfWU.js → security-cli-CzWHkrqD.js} +2 -2
  137. package/dist/{server-methods-C_rhjm5p.js → server-methods-BcBroG6v.js} +68 -10
  138. package/dist/{server-methods-CXL1Nrbp.js → server-methods-OJbQNjOJ.js} +68 -10
  139. package/dist/{server-node-events-B_UZBZn_.js → server-node-events-AVxH5dXs.js} +4 -4
  140. package/dist/{server-node-events-CdUVoXvg.js → server-node-events-Ba9K9DB9.js} +4 -4
  141. package/dist/{status-Ds4oB9tJ.js → status-CpWkGj5h.js} +1 -1
  142. package/dist/{status-Drn5xFtL.js → status-DNxAYvxM.js} +1 -1
  143. package/dist/{status-CzI_lZth.js → status-RlJA2XzQ.js} +5 -5
  144. package/dist/{status-DQQ-w3eF.js → status-Ut-dfDT0.js} +5 -5
  145. package/dist/{subagent-registry-CfoRc8ng.js → subagent-registry-CsYeP8wc.js} +4 -4
  146. package/dist/{system-cli-DnlgTnqh.js → system-cli-D3CVv1ab.js} +2 -2
  147. package/dist/{system-cli-CQNazJoF.js → system-cli-rpyy5jcw.js} +2 -2
  148. package/dist/{tui-CXTwJqpz.js → tui-DfPeXwah.js} +1 -1
  149. package/dist/{tui-DTW81r9y.js → tui-LZPdrFmK.js} +1 -1
  150. package/dist/{tui-cli-KiaTeKr0.js → tui-cli-Bm3TJgXf.js} +2 -2
  151. package/dist/{tui-cli-DGmt1Xs0.js → tui-cli-DFXZ7r1F.js} +2 -2
  152. package/dist/{unified-runner-DweFv8Vx.js → unified-runner-BojeuKIk.js} +17 -16
  153. package/dist/{update-cli-Ba4La00X.js → update-cli-Cb12PjyN.js} +10 -10
  154. package/dist/{update-cli-BkJZPKh8.js → update-cli-Cm4ftHhu.js} +11 -11
  155. package/dist/{update-runner-w3GO-spo.js → update-runner-BE6kDMsw.js} +1 -1
  156. package/dist/{update-runner-CqWSrJXt.js → update-runner-Cv6hDgKV.js} +1 -1
  157. package/dist/{web-0cG6_ynp.js → web-BOv3xM7W.js} +4 -4
  158. package/dist/{web-DHAEIalz.js → web-CYf5I3aU.js} +3 -3
  159. package/dist/{web-9rrJ5lZr.js → web-Dxkxcp7P.js} +6 -6
  160. package/dist/{web-Cx3SfQiX.js → web-f1xT-H2y.js} +6 -6
  161. package/docs/connections/email.md +143 -0
  162. package/docs/connections/msteams.md +80 -0
  163. package/docs/connections/slack.md +91 -0
  164. package/extensions/bluebubbles/package.json +1 -1
  165. package/extensions/copilot-proxy/package.json +1 -1
  166. package/extensions/diagnostics-otel/package.json +1 -1
  167. package/extensions/discord/package.json +1 -1
  168. package/extensions/feishu/package.json +1 -1
  169. package/extensions/google-antigravity-auth/package.json +1 -1
  170. package/extensions/google-gemini-cli-auth/package.json +1 -1
  171. package/extensions/googlechat/package.json +1 -1
  172. package/extensions/imessage/package.json +1 -1
  173. package/extensions/irc/package.json +1 -1
  174. package/extensions/learning-loop/package.json +1 -1
  175. package/extensions/line/package.json +1 -1
  176. package/extensions/llm-task/package.json +1 -1
  177. package/extensions/matrix/CHANGELOG.md +6 -0
  178. package/extensions/matrix/package.json +1 -1
  179. package/extensions/mattermost/package.json +1 -1
  180. package/extensions/memory-core/package.json +1 -1
  181. package/extensions/memory-lancedb/package.json +1 -1
  182. package/extensions/minimax-portal-auth/package.json +1 -1
  183. package/extensions/msteams/CHANGELOG.md +6 -0
  184. package/extensions/msteams/package.json +1 -1
  185. package/extensions/nextcloud-talk/package.json +1 -1
  186. package/extensions/nostr/CHANGELOG.md +6 -0
  187. package/extensions/nostr/package.json +1 -1
  188. package/extensions/open-prose/package.json +1 -1
  189. package/extensions/outlook/package.json +1 -1
  190. package/extensions/pipeline/package.json +1 -1
  191. package/extensions/signal/package.json +1 -1
  192. package/extensions/slack/package.json +1 -1
  193. package/extensions/telegram/package.json +1 -1
  194. package/extensions/tlon/package.json +1 -1
  195. package/extensions/twitch/CHANGELOG.md +6 -0
  196. package/extensions/twitch/package.json +1 -1
  197. package/extensions/voice-call/CHANGELOG.md +6 -0
  198. package/extensions/voice-call/package.json +1 -1
  199. package/extensions/whatsapp/package.json +1 -1
  200. package/extensions/zalo/CHANGELOG.md +6 -0
  201. package/extensions/zalo/package.json +1 -1
  202. package/extensions/zalouser/CHANGELOG.md +6 -0
  203. package/extensions/zalouser/package.json +1 -1
  204. package/package.json +1 -1
@@ -41,7 +41,7 @@ const entries = [
41
41
  description: "Agent Control Protocol tools",
42
42
  hasSubcommands: true,
43
43
  register: async (program) => {
44
- (await import("./acp-cli-6peVIuMz.js")).registerAcpCli(program);
44
+ (await import("./acp-cli-lkOF8AeX.js")).registerAcpCli(program);
45
45
  }
46
46
  },
47
47
  {
@@ -49,7 +49,7 @@ const entries = [
49
49
  description: "Run, inspect, and query the WebSocket Gateway",
50
50
  hasSubcommands: true,
51
51
  register: async (program) => {
52
- (await import("./gateway-cli-DcrPLnL3.js")).registerGatewayCli(program);
52
+ (await import("./gateway-cli-DA1fRZ5w.js")).registerGatewayCli(program);
53
53
  }
54
54
  },
55
55
  {
@@ -57,7 +57,7 @@ const entries = [
57
57
  description: "Gateway service (legacy alias)",
58
58
  hasSubcommands: true,
59
59
  register: async (program) => {
60
- (await import("./daemon-cli-BRMcpQb7.js").then((n) => n.t)).registerDaemonCli(program);
60
+ (await import("./daemon-cli-B9yneKpO.js").then((n) => n.t)).registerDaemonCli(program);
61
61
  }
62
62
  },
63
63
  {
@@ -65,7 +65,7 @@ const entries = [
65
65
  description: "Tail gateway file logs via RPC",
66
66
  hasSubcommands: false,
67
67
  register: async (program) => {
68
- (await import("./logs-cli-DWqkAMwy.js")).registerLogsCli(program);
68
+ (await import("./logs-cli-gU7p7zX0.js")).registerLogsCli(program);
69
69
  }
70
70
  },
71
71
  {
@@ -73,7 +73,7 @@ const entries = [
73
73
  description: "System events, heartbeat, and presence",
74
74
  hasSubcommands: true,
75
75
  register: async (program) => {
76
- (await import("./system-cli-CQNazJoF.js")).registerSystemCli(program);
76
+ (await import("./system-cli-rpyy5jcw.js")).registerSystemCli(program);
77
77
  }
78
78
  },
79
79
  {
@@ -81,7 +81,7 @@ const entries = [
81
81
  description: "Discover, scan, and configure models",
82
82
  hasSubcommands: true,
83
83
  register: async (program) => {
84
- (await import("./models-cli-Cxo55E0S.js")).registerModelsCli(program);
84
+ (await import("./models-cli-D8zc0jSg.js")).registerModelsCli(program);
85
85
  }
86
86
  },
87
87
  {
@@ -89,7 +89,7 @@ const entries = [
89
89
  description: "Manage exec approvals (gateway or node host)",
90
90
  hasSubcommands: true,
91
91
  register: async (program) => {
92
- (await import("./exec-approvals-cli-CWpi7F1X.js")).registerExecApprovalsCli(program);
92
+ (await import("./exec-approvals-cli-DjGZKQbZ.js")).registerExecApprovalsCli(program);
93
93
  }
94
94
  },
95
95
  {
@@ -97,7 +97,7 @@ const entries = [
97
97
  description: "Manage gateway-owned node pairing and node commands",
98
98
  hasSubcommands: true,
99
99
  register: async (program) => {
100
- (await import("./nodes-cli-seBKfjdd.js")).registerNodesCli(program);
100
+ (await import("./nodes-cli-DxHMNlWq.js")).registerNodesCli(program);
101
101
  }
102
102
  },
103
103
  {
@@ -105,7 +105,7 @@ const entries = [
105
105
  description: "Device pairing + token management",
106
106
  hasSubcommands: true,
107
107
  register: async (program) => {
108
- (await import("./devices-cli-C7aaQeFG.js")).registerDevicesCli(program);
108
+ (await import("./devices-cli-oqibXYae.js")).registerDevicesCli(program);
109
109
  }
110
110
  },
111
111
  {
@@ -129,7 +129,7 @@ const entries = [
129
129
  description: "Open a terminal UI connected to the Gateway",
130
130
  hasSubcommands: false,
131
131
  register: async (program) => {
132
- (await import("./tui-cli-DGmt1Xs0.js")).registerTuiCli(program);
132
+ (await import("./tui-cli-DFXZ7r1F.js")).registerTuiCli(program);
133
133
  }
134
134
  },
135
135
  {
@@ -137,7 +137,7 @@ const entries = [
137
137
  description: "Manage cron jobs via the Gateway scheduler",
138
138
  hasSubcommands: true,
139
139
  register: async (program) => {
140
- (await import("./cron-cli-DBt3Lxhm.js")).registerCronCli(program);
140
+ (await import("./cron-cli-DZJZ_EvY.js")).registerCronCli(program);
141
141
  }
142
142
  },
143
143
  {
@@ -161,7 +161,7 @@ const entries = [
161
161
  description: "Manage internal agent hooks",
162
162
  hasSubcommands: true,
163
163
  register: async (program) => {
164
- (await import("./hooks-cli-nKBiWE2v.js")).registerHooksCli(program);
164
+ (await import("./hooks-cli-DtVT3wM_.js")).registerHooksCli(program);
165
165
  }
166
166
  },
167
167
  {
@@ -185,7 +185,7 @@ const entries = [
185
185
  description: "Secure DM pairing (approve inbound requests)",
186
186
  hasSubcommands: true,
187
187
  register: async (program) => {
188
- const { registerPluginCliCommands } = await import("./cli-C0zcu-AX.js");
188
+ const { registerPluginCliCommands } = await import("./cli-DN6fX0Xu.js");
189
189
  registerPluginCliCommands(program, await loadConfig());
190
190
  (await import("./pairing-cli-C8KSZlA7.js")).registerPairingCli(program);
191
191
  }
@@ -195,8 +195,8 @@ const entries = [
195
195
  description: "Manage Symi plugins and extensions",
196
196
  hasSubcommands: true,
197
197
  register: async (program) => {
198
- (await import("./plugins-cli-DJM_xxIg.js")).registerPluginsCli(program);
199
- const { registerPluginCliCommands } = await import("./cli-C0zcu-AX.js");
198
+ (await import("./plugins-cli-bblxpPhT.js")).registerPluginsCli(program);
199
+ const { registerPluginCliCommands } = await import("./cli-DN6fX0Xu.js");
200
200
  registerPluginCliCommands(program, await loadConfig());
201
201
  }
202
202
  },
@@ -205,7 +205,7 @@ const entries = [
205
205
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
206
206
  hasSubcommands: true,
207
207
  register: async (program) => {
208
- (await import("./channels-cli-CGOOVbGf.js")).registerChannelsCli(program);
208
+ (await import("./channels-cli-rzQvsXSw.js")).registerChannelsCli(program);
209
209
  }
210
210
  },
211
211
  {
@@ -221,7 +221,7 @@ const entries = [
221
221
  description: "Security tools and local config audits",
222
222
  hasSubcommands: true,
223
223
  register: async (program) => {
224
- (await import("./security-cli-BsStEfWU.js")).registerSecurityCli(program);
224
+ (await import("./security-cli-CzWHkrqD.js")).registerSecurityCli(program);
225
225
  }
226
226
  },
227
227
  {
@@ -237,7 +237,7 @@ const entries = [
237
237
  description: "Update Symi and inspect update channel status",
238
238
  hasSubcommands: true,
239
239
  register: async (program) => {
240
- (await import("./update-cli-BkJZPKh8.js")).registerUpdateCli(program);
240
+ (await import("./update-cli-Cm4ftHhu.js")).registerUpdateCli(program);
241
241
  }
242
242
  },
243
243
  {
@@ -245,7 +245,7 @@ const entries = [
245
245
  description: "Generate shell completion script",
246
246
  hasSubcommands: false,
247
247
  register: async (program) => {
248
- (await import("./completion-cli-B1wj8Q43.js").then((n) => n.n)).registerCompletionCli(program);
248
+ (await import("./completion-cli-g-Vdnude.js").then((n) => n.n)).registerCompletionCli(program);
249
249
  }
250
250
  }
251
251
  ];
@@ -70,7 +70,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-DZam9q5M.js";
70
70
  import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-BNLCWX6e.js";
71
71
  import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, i as listChatCommands, l as parseCommandArgs, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices } from "./commands-registry-B6cf3Cmq.js";
72
72
  import { It as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-B8xmq-Pw.js";
73
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BHn18ubR.js";
73
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CVqBgwrx.js";
74
74
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
75
75
  import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
76
76
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
@@ -86,7 +86,7 @@ import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as list
86
86
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-wOW5rGEs.js";
87
87
  import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens } from "./session-cost-usage-BXAI7CNH.js";
88
88
  import { a as normalizeIMessageHandle, c as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, i as isAllowedIMessageSender, o as parseIMessageTarget, r as formatIMessageChatTarget, s as createIMessageRpcClient, t as sendMessageIMessage } from "./send-CBcCKe5w.js";
89
- import { r as detectBinary } from "./onboard-helpers-BFyI1sla.js";
89
+ import { r as detectBinary } from "./onboard-helpers-CPSKXD5k.js";
90
90
  import { t as resolvePairingIdLabel } from "./pairing-labels-BScqzHEx.js";
91
91
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BgUx3Bm4.js";
92
92
  import { t as getActiveWebListener } from "./active-listener-SKkHHqlN.js";
@@ -31807,7 +31807,7 @@ async function runAgentTurn(params) {
31807
31807
  function createDefaultDeps() {
31808
31808
  return {
31809
31809
  sendMessageWhatsApp: async (...args) => {
31810
- const { sendMessageWhatsApp } = await import("./web-0cG6_ynp.js");
31810
+ const { sendMessageWhatsApp } = await import("./web-BOv3xM7W.js");
31811
31811
  return await sendMessageWhatsApp(...args);
31812
31812
  },
31813
31813
  sendMessageTelegram: async (...args) => {
@@ -50238,7 +50238,7 @@ function loadWebLoginQr() {
50238
50238
  return webLoginQrPromise;
50239
50239
  }
50240
50240
  function loadWebChannel() {
50241
- webChannelPromise ??= import("./web-0cG6_ynp.js");
50241
+ webChannelPromise ??= import("./web-BOv3xM7W.js");
50242
50242
  return webChannelPromise;
50243
50243
  }
50244
50244
  function loadWhatsAppActions() {
@@ -1,4 +1,4 @@
1
- import { a as randomIdempotencyKey, n as callGateway } from "./call-CJl0moIs.js";
1
+ import { a as randomIdempotencyKey, n as callGateway } from "./call-BrRWr7Lj.js";
2
2
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
3
3
  import { n as parseNodeList, r as parsePairingList, t as resolveNodeIdFromCandidates } from "./node-match-DKGjoxbG.js";
4
4
  import { n as withProgress } from "./progress-BAHiAaDW.js";
@@ -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-C7HtwYDj.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-Ut-dfDT0.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-CsCvDCZV.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-CsCvDCZV.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-B4MbPh6k.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-qqb2gJ4P.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-Btg8-Nnf.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 { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
4
4
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
5
5
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BAVNLbja.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-CKeN0xJL.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-BHhzdmbq.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-DVcG-42i.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-CC8jiKDk.js";
@@ -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";
@@ -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-RlJA2XzQ.js";
43
+ import { s as setHeartbeatsEnabled } from "./health-Bx8UUqFA.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,