@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
@@ -11,7 +11,6 @@
11
11
  id: "slack",
12
12
  name: "Slack",
13
13
  configPath: "channels.slack",
14
- docsUrl: "https://docs.symi.ai/channels/slack",
15
14
  icon: `<svg viewBox="0 0 24 24" fill="currentColor">
16
15
  <path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.124 2.521a2.528 2.528 0 0 1 2.52-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.52V8.834zm-1.271 0a2.528 2.528 0 0 1-2.521 2.521 2.528 2.528 0 0 1-2.521-2.521V2.522A2.528 2.528 0 0 1 15.166 0a2.528 2.528 0 0 1 2.521 2.522v6.312zm-2.521 10.124a2.528 2.528 0 0 1 2.521 2.52A2.528 2.528 0 0 1 15.166 24a2.528 2.528 0 0 1-2.521-2.522v-2.52h2.521zm0-1.271a2.528 2.528 0 0 1-2.521-2.521 2.528 2.528 0 0 1 2.521-2.521h6.312A2.528 2.528 0 0 1 24 15.166a2.528 2.528 0 0 1-2.522 2.521h-6.312z"/>
17
16
  </svg>`,
@@ -25,7 +24,6 @@
25
24
  id: "email",
26
25
  name: "Email",
27
26
  configPath: "hooks.gmail + outlook plugin",
28
- docsUrl: "https://docs.symi.ai/automation/gmail-pubsub",
29
27
  icon: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
30
28
  <rect x="2" y="4" width="20" height="16" rx="2"/>
31
29
  <path d="M22 6l-10 7L2 6"/>
@@ -39,7 +37,6 @@
39
37
  id: "msteams",
40
38
  name: "Microsoft Teams",
41
39
  configPath: "channels.msteams",
42
- docsUrl: "https://docs.symi.ai/channels/msteams",
43
40
  icon: `<svg viewBox="0 0 24 24" fill="currentColor">
44
41
  <path d="M19.19 8.77c-.73 0-1.39.29-1.88.76V8.5a2.5 2.5 0 0 0-2.5-2.5h-1.62c.18-.46.28-.96.28-1.48a4.04 4.04 0 0 0-4.04-4.04c-2.23 0-4.04 1.81-4.04 4.04 0 .52.1 1.02.28 1.48H4.5A2.5 2.5 0 0 0 2 8.5v9a2.5 2.5 0 0 0 2.5 2.5h9a2.5 2.5 0 0 0 2.5-2.5v-.97c.49.47 1.15.76 1.88.76a2.69 2.69 0 0 0 2.69-2.69v-3.14a2.69 2.69 0 0 0-2.69-2.69h.31zM9.43 2.98a2.04 2.04 0 1 1 0 4.08 2.04 2.04 0 0 1 0-4.08zm4.57 14.52a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 .5.5v9zm5.88-4.17a.69.69 0 0 1-.69.69.69.69 0 0 1-.69-.69v-3.14c0-.38.31-.69.69-.69.38 0 .69.31.69.69v3.14z"/>
45
42
  <circle cx="17.5" cy="5.5" r="2.5"/>
@@ -175,6 +172,93 @@
175
172
  const modalDocs = document.getElementById("conn-modal-docs");
176
173
  const modalClose = document.getElementById("conn-modal-close");
177
174
 
175
+ // Docs viewer (in-app scrollable markdown renderer, stacks above conn modal)
176
+ const docsViewerOverlay = document.getElementById("docs-viewer-overlay");
177
+ const docsViewerBody = document.getElementById("docs-viewer-body");
178
+ const docsViewerTitle = document.getElementById("docs-viewer-title");
179
+ const docsViewerClose = document.getElementById("docs-viewer-close");
180
+
181
+ // Tracks which channel's connection modal is currently open, so the
182
+ // "View Documentation" button knows which docs key to fetch.
183
+ let currentModalChannelId = null;
184
+
185
+ const DOCS_VIEWER_TITLES = {
186
+ email: "Email — Outlook & Gmail",
187
+ slack: "Slack Setup",
188
+ msteams: "Microsoft Teams Setup",
189
+ };
190
+
191
+ function stripFrontmatter(markdown) {
192
+ if (!markdown.startsWith("---\n") && !markdown.startsWith("---\r\n")) {
193
+ return markdown;
194
+ }
195
+ const end = markdown.indexOf("\n---", 4);
196
+ if (end === -1) {
197
+ return markdown;
198
+ }
199
+ return markdown.slice(end + 4).replace(/^\s+/, "");
200
+ }
201
+
202
+ async function openDocsViewer(key) {
203
+ if (!docsViewerOverlay || !docsViewerBody) {
204
+ return;
205
+ }
206
+ docsViewerTitle.textContent = DOCS_VIEWER_TITLES[key] || "Documentation";
207
+ docsViewerBody.innerHTML = '<p class="docs-viewer-loading">Loading documentation…</p>';
208
+ docsViewerOverlay.classList.add("open");
209
+ docsViewerOverlay.setAttribute("aria-hidden", "false");
210
+ // Capture phase so we beat the conn-modal's Esc handler
211
+ document.addEventListener("keydown", onDocsViewerKey, true);
212
+
213
+ if (!window.gateway?.rpc) {
214
+ docsViewerBody.innerHTML =
215
+ '<p class="docs-viewer-error">Gateway is not connected — cannot load documentation.</p>';
216
+ return;
217
+ }
218
+ try {
219
+ const result = await window.gateway.rpc("docs.get", { key });
220
+ const markdown = result && typeof result.markdown === "string" ? result.markdown : "";
221
+ if (!markdown) {
222
+ docsViewerBody.innerHTML =
223
+ '<p class="docs-viewer-error">Documentation is empty or missing on this install.</p>';
224
+ return;
225
+ }
226
+ const body = stripFrontmatter(markdown);
227
+ const html =
228
+ window.marked && typeof window.marked.parse === "function"
229
+ ? window.marked.parse(body)
230
+ : "<pre>" + escHtml(body) + "</pre>";
231
+ docsViewerBody.innerHTML = html;
232
+ // Make external links open in a new tab with safe rel
233
+ docsViewerBody.querySelectorAll('a[href^="http"]').forEach((a) => {
234
+ a.setAttribute("target", "_blank");
235
+ a.setAttribute("rel", "noopener noreferrer");
236
+ });
237
+ docsViewerBody.scrollTop = 0;
238
+ } catch (err) {
239
+ const msg = err && err.message ? err.message : String(err);
240
+ docsViewerBody.innerHTML =
241
+ '<p class="docs-viewer-error">Failed to load documentation: ' + escHtml(msg) + "</p>";
242
+ }
243
+ }
244
+
245
+ function closeDocsViewer() {
246
+ if (!docsViewerOverlay) {
247
+ return;
248
+ }
249
+ docsViewerOverlay.classList.remove("open");
250
+ docsViewerOverlay.setAttribute("aria-hidden", "true");
251
+ document.removeEventListener("keydown", onDocsViewerKey, true);
252
+ }
253
+
254
+ function onDocsViewerKey(e) {
255
+ if (e.key === "Escape") {
256
+ // Stop the conn-modal's keydown listener from also firing
257
+ e.stopImmediatePropagation();
258
+ closeDocsViewer();
259
+ }
260
+ }
261
+
178
262
  function renderProviderSection(title, connected, detailLine, actionLine) {
179
263
  const klass = connected ? "connected" : "disconnected";
180
264
  const badge = connected ? "CONNECTED" : "NOT CONFIGURED";
@@ -229,8 +313,9 @@
229
313
  // Set title
230
314
  modalTitle.textContent = channel.name;
231
315
 
232
- // Set docs link
233
- modalDocs.href = channel.docsUrl;
316
+ // Remember which channel this modal is showing so the
317
+ // "View Documentation" button knows which docs key to fetch.
318
+ currentModalChannelId = channelId;
234
319
 
235
320
  if (channelId === "email") {
236
321
  modalBody.innerHTML = renderEmailModalBody(channelState);
@@ -285,6 +370,29 @@
285
370
  });
286
371
  }
287
372
 
373
+ // "View Documentation" button → open in-app docs viewer.
374
+ // The docs-viewer overlay stacks on top of the conn-modal.
375
+ if (modalDocs) {
376
+ modalDocs.addEventListener("click", (e) => {
377
+ e.preventDefault();
378
+ if (currentModalChannelId) {
379
+ void openDocsViewer(currentModalChannelId);
380
+ }
381
+ });
382
+ }
383
+
384
+ // Docs viewer event listeners
385
+ if (docsViewerClose) {
386
+ docsViewerClose.addEventListener("click", closeDocsViewer);
387
+ }
388
+ if (docsViewerOverlay) {
389
+ docsViewerOverlay.addEventListener("click", (e) => {
390
+ if (e.target === docsViewerOverlay) {
391
+ closeDocsViewer();
392
+ }
393
+ });
394
+ }
395
+
288
396
  // ── Handle Click ─────────────────────────────────────────────────────────
289
397
  function handleChannelClick(channelId) {
290
398
  openModal(channelId);
@@ -17,14 +17,14 @@ import "./accounts-DDuIpcln.js";
17
17
  import "./bindings-DFaVVCsf.js";
18
18
  import "./logging-w5jq5901.js";
19
19
  import "./client-B8xmq-Pw.js";
20
- import "./call-BHn18ubR.js";
20
+ import "./call-CVqBgwrx.js";
21
21
  import "./pairing-token-CX3NN_qj.js";
22
22
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
23
23
  import "./progress-jIePzvGA.js";
24
24
  import { n as formatDurationHuman } from "./format-duration-D0B0Uo-I.js";
25
25
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CvFURHzt.js";
26
26
  import { n as parsePositiveIntOrUndefined } from "./helpers-BtH6pa6c.js";
27
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BzkjTxlD.js";
27
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Bp0KNJtL.js";
28
28
 
29
29
  //#region src/cli/cron-cli/shared.ts
30
30
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -7,7 +7,7 @@ import "./github-copilot-token-DuFIqfeC.js";
7
7
  import "./manifest-registry-D5bnO5uA.js";
8
8
  import "./config-DXt3pc08.js";
9
9
  import "./client-qUlxXXVJ.js";
10
- import "./call-CJl0moIs.js";
10
+ import "./call-BrRWr7Lj.js";
11
11
  import "./message-channel-C9dERklz.js";
12
12
  import "./pairing-token-Byh6drgn.js";
13
13
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
@@ -18,7 +18,7 @@ import { n as formatDurationHuman } from "./format-duration-BOC0O2XQ.js";
18
18
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CQar2eKe.js";
19
19
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
20
20
  import "./progress-BAHiAaDW.js";
21
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CJPoGX_W.js";
21
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-XT8cFwtz.js";
22
22
  import { n as parsePositiveIntOrUndefined } from "./helpers-ITexi1_a.js";
23
23
 
24
24
  //#region src/cli/cron-cli/shared.ts
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { At as getResolvedLoggerSettings, Dt as theme, Et as isRich, Tt as colorize, Ut as resolveGatewayPort, Wt as resolveIsNixMode, Yt as resolveStateDir, _ as defaultRuntime, lt as shortenHomePath, zt as resolveConfigPath } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-DXt3pc08.js";
5
- import { n as callGateway } from "./call-CJl0moIs.js";
5
+ import { n as callGateway } from "./call-BrRWr7Lj.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
7
7
  import { l as resolveGatewayBindHost } from "./net-DZ5Ayk-W.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-Cmumpn76.js";
@@ -11,7 +11,7 @@ import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXb
11
11
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CPeVoSXJ.js";
12
12
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
13
13
  import { n as withProgress } from "./progress-BAHiAaDW.js";
14
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-BV3zKTt_.js";
14
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-7H_XiJt-.js";
15
15
  import { n as isWSLEnv } from "./wsl-jdLWdiKy.js";
16
16
  import { n as inheritOptionFromParent } from "./command-options-6wdtBBWB.js";
17
17
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BV78EN62.js";
@@ -9,10 +9,10 @@ import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
9
9
  import { u as resolveGatewayBindHost } from "./ws-C7EXRv8z.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-B741uFtk.js";
11
11
  import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
12
- import { n as callGateway } from "./call-BHn18ubR.js";
12
+ import { n as callGateway } from "./call-CVqBgwrx.js";
13
13
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
14
14
  import { n as withProgress } from "./progress-jIePzvGA.js";
15
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-BFyI1sla.js";
15
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CPSKXD5k.js";
16
16
  import { n as isWSLEnv } from "./wsl-q8spwrME.js";
17
17
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CafH8-8D.js";
18
18
  import { n as inheritOptionFromParent } from "./command-options-BkTXKWlb.js";
@@ -11151,6 +11151,7 @@ const METHOD_SCOPE_GROUPS = {
11151
11151
  "health",
11152
11152
  "logs.tail",
11153
11153
  "channels.status",
11154
+ "docs.get",
11154
11155
  "status",
11155
11156
  "usage.status",
11156
11157
  "usage.cost",
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
6
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Cn6drXx2.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-71oIavrF.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-D8YgtMdl.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BET359cH.js";
9
9
  import { d as getChannelDock } from "./thinking-W85Rb32m.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-DTMTDXwE.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
@@ -3,7 +3,7 @@ import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
3
3
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
4
4
  import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-DYq1AYOv.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
6
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BUNbSNWw.js";
6
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-DcN8GHTt.js";
7
7
  import { d as getChannelDock } from "./thinking-BprCy23Z.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BzmbgY7s.js";
9
9
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-W0JzCJJM.js";
@@ -13,7 +13,7 @@ import "./config-PXAJCHa5.js";
13
13
  import "./manifest-registry-BDSRH8nU.js";
14
14
  import { r as isLoopbackHost } from "./ws-C7EXRv8z.js";
15
15
  import { Ht as listDevicePairing, Jt as summarizeDeviceTokens, zt as approveDevicePairing } from "./client-B8xmq-Pw.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BHn18ubR.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CVqBgwrx.js";
17
17
  import "./pairing-token-CX3NN_qj.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
@@ -6,7 +6,7 @@ import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-D5bnO5uA.js";
7
7
  import "./config-DXt3pc08.js";
8
8
  import { Ht as listDevicePairing, Jt as summarizeDeviceTokens, zt as approveDevicePairing } from "./client-qUlxXXVJ.js";
9
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CJl0moIs.js";
9
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
10
10
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B1wj8Q43.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-g-Vdnude.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DQ9BvHF2.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-EO1xz8q6.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BX_yaiom.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-Cv91hLSK.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-DfxDXt2d.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });
@@ -12,18 +12,18 @@ import "./message-channel-aT-I_DTX.js";
12
12
  import "./config-PXAJCHa5.js";
13
13
  import "./manifest-registry-BDSRH8nU.js";
14
14
  import "./client-B8xmq-Pw.js";
15
- import "./call-BHn18ubR.js";
15
+ import "./call-CVqBgwrx.js";
16
16
  import "./pairing-token-CX3NN_qj.js";
17
17
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
18
18
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
19
19
  import "./progress-jIePzvGA.js";
20
20
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-DXM2pQYL.js";
21
- import { n as callGatewayFromCli } from "./gateway-rpc-BzkjTxlD.js";
21
+ import { n as callGatewayFromCli } from "./gateway-rpc-Bp0KNJtL.js";
22
22
  import "./systemd-DT6SbCim.js";
23
23
  import "./service-osK70kTZ.js";
24
24
  import { t as renderTable } from "./table-BKlH0YlA.js";
25
25
  import { t as describeUnknownError } from "./shared-DnmJ0ABB.js";
26
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-k8pnK8TE.js";
26
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-Cog-Z1rx.js";
27
27
  import JSON5 from "json5";
28
28
  import fs from "node:fs/promises";
29
29
 
@@ -6,19 +6,19 @@ import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-D5bnO5uA.js";
7
7
  import "./config-DXt3pc08.js";
8
8
  import "./client-qUlxXXVJ.js";
9
- import "./call-CJl0moIs.js";
9
+ import "./call-BrRWr7Lj.js";
10
10
  import "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as formatTimeAgo } from "./format-relative-DX-rh76l.js";
13
13
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-BhFq_Iv9.js";
14
14
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
15
15
  import "./progress-BAHiAaDW.js";
16
- import { n as callGatewayFromCli } from "./gateway-rpc-CJPoGX_W.js";
16
+ import { n as callGatewayFromCli } from "./gateway-rpc-XT8cFwtz.js";
17
17
  import "./systemd-DlMdyFDY.js";
18
18
  import "./service-Cm9j9WzQ.js";
19
19
  import { t as renderTable } from "./table-D01d2GuY.js";
20
20
  import { t as describeUnknownError } from "./shared-BtG9rny3.js";
21
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-IXmOgc1l.js";
21
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-CHb_JvbM.js";
22
22
  import JSON5 from "json5";
23
23
  import fs from "node:fs/promises";
24
24
 
@@ -7,13 +7,13 @@ import { a as resolveAgentIdentity } from "./reply-prefix-K_J_nfgx.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-Cn6drXx2.js";
10
- import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-CG4P3hy3.js";
10
+ import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-BaNpG0Aq.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";
14
14
  import "./send-BuJyyJe7.js";
15
15
  import "./send-D8AIYNR_.js";
16
- import "./deliver-DrC7tG6s.js";
16
+ import "./deliver-B36OzmeP.js";
17
17
  import "./diagnostic-D0xmLpej.js";
18
18
  import "./diagnostic-session-state-C1vRJs5w.js";
19
19
  import "./accounts-8zZqL37v.js";
@@ -21,10 +21,10 @@ import "./send-C0K_2AUP.js";
21
21
  import "./image-ops-ByaQt43P.js";
22
22
  import "./pi-model-discovery-j5tVLINv.js";
23
23
  import "./message-channel-BQINJQIT.js";
24
- import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-D8YgtMdl.js";
24
+ import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-BET359cH.js";
25
25
  import "./config-BAVNLbja.js";
26
26
  import "./manifest-registry-DWdYdchb.js";
27
- import "./chrome-B14NNyfm.js";
27
+ import "./chrome-BUT--ob3.js";
28
28
  import "./skills-XEbTRNYL.js";
29
29
  import "./redact-1NGYV_8p.js";
30
30
  import "./errors-CPfngF0S.js";
@@ -34,7 +34,7 @@ import "./thinking-W85Rb32m.js";
34
34
  import "./accounts-DImOt9jX.js";
35
35
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DkMamAQ-.js";
36
36
  import "./tool-images-ChC2CXaN.js";
37
- import "./image-CKeN0xJL.js";
37
+ import "./image-BHhzdmbq.js";
38
38
  import "./manager-B0BFUVEs.js";
39
39
  import "./gemini-auth-DVcG-42i.js";
40
40
  import "./sqlite-BNh23mUR.js";
@@ -47,7 +47,7 @@ import "./ir-F0moAwIl.js";
47
47
  import "./render-B1VqYyvo.js";
48
48
  import "./commands-registry-D9ZzWaEz.js";
49
49
  import "./skill-commands-CkqZdod4.js";
50
- import "./runner-COpebDew.js";
50
+ import "./runner-BVgCl6yZ.js";
51
51
  import "./fetch-DtLn7YU3.js";
52
52
  import "./channel-activity-D9q-fIPB.js";
53
53
  import "./tables-COnZ169v.js";
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
4
- import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as initSubagentRegistry, Ar as extractImageContentFromSource, B as summarizeRestartSentinel, Bn as registerAgentRunContext, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as readLatestAssistantReply, Gt as getCliSessionId, I as consumeRestartSentinel, In as clearAgentRunContext, J as normalizeOptionalSessionKey, K as inferLegacyName, Kt as setCliSessionId, Ln as emitAgentEvent, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mr as resolveInputFileLimits, Mt as resolveOutboundTarget, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, P as setGatewaySigusr1RestartPolicy, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as getAgentRunContext, St as readJsonBodyWithLimit, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as resolveModelProfile, Vt as getActiveEmbeddedRunCount, Wt as runWithModelFallback, X as normalizePayloadToSystemText, Xt as resolveAgentAvatar, Y as normalizeOptionalText, Z as normalizeRequiredName, _ as loadCombinedSessionStoreForGateway, ar as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createSymiTools, en as buildSafeExternalPrompt, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, ft as loadSymiPlugins, g as listSessionsFromStore, hn as getTotalPendingReplies, i as resolveCronStyleNow, ir as resetAllLanes, j as isGatewaySigusr1RestartExternallyAllowed, jn as listDescendantRunsForRequester, jr as normalizeMimeList, k as deferGatewayRestartUntilIdle, kn as countActiveRunsForSession, kr as extractFileContentFromSource, l as applyToolPolicyPipeline, nn as getHookType, or as waitForActiveTasks, pr as lookupContextTokens, q as normalizeOptionalAgentId, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, sr as CommandLane, st as requestHeartbeatNow, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xr as enqueueSystemEvent, xt as handleSlackHttpRequest, zn as onAgentEvent, zt as runAgentTurn } from "./reply-DAMo5JhO.js";
4
+ import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as initSubagentRegistry, Ar as extractImageContentFromSource, B as summarizeRestartSentinel, Bn as registerAgentRunContext, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as readLatestAssistantReply, Gt as getCliSessionId, I as consumeRestartSentinel, In as clearAgentRunContext, J as normalizeOptionalSessionKey, K as inferLegacyName, Kt as setCliSessionId, Ln as emitAgentEvent, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mr as resolveInputFileLimits, Mt as resolveOutboundTarget, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, P as setGatewaySigusr1RestartPolicy, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as getAgentRunContext, St as readJsonBodyWithLimit, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as resolveModelProfile, Vt as getActiveEmbeddedRunCount, Wt as runWithModelFallback, X as normalizePayloadToSystemText, Xt as resolveAgentAvatar, Y as normalizeOptionalText, Z as normalizeRequiredName, _ as loadCombinedSessionStoreForGateway, ar as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createSymiTools, en as buildSafeExternalPrompt, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, ft as loadSymiPlugins, g as listSessionsFromStore, hn as getTotalPendingReplies, i as resolveCronStyleNow, ir as resetAllLanes, j as isGatewaySigusr1RestartExternallyAllowed, jn as listDescendantRunsForRequester, jr as normalizeMimeList, k as deferGatewayRestartUntilIdle, kn as countActiveRunsForSession, kr as extractFileContentFromSource, l as applyToolPolicyPipeline, nn as getHookType, or as waitForActiveTasks, pr as lookupContextTokens, q as normalizeOptionalAgentId, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, sr as CommandLane, st as requestHeartbeatNow, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xr as enqueueSystemEvent, xt as handleSlackHttpRequest, zn as onAgentEvent, zt as runAgentTurn } from "./reply-B0azB7WR.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, w as registerInternalHook } from "./registry-Cja8eT7G.js";
@@ -79,7 +79,7 @@ import "./render-CXDO_kgw.js";
79
79
  import { r as isRestartEnabled } from "./commands-BNLCWX6e.js";
80
80
  import "./commands-registry-B6cf3Cmq.js";
81
81
  import { $t as deriveDeviceIdFromPublicKey, Bt as ensureDeviceToken, Ft as errorShape, Gt as requestDevicePairing, Nt as PROTOCOL_VERSION, Pt as ErrorCodes, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayload, Vt as getPairedDevice, Xt as verifyDeviceToken, Yt as updatePairedDeviceMetadata, Zt as roleScopesAllow, at as validateRequestFrame, n as formatValidationErrors, nn as verifyDeviceSignature, tn as normalizeDevicePublicKeyBase64Url, w as validateConnectParams, z as validateExecApprovalResolveParams, zt as approveDevicePairing } from "./client-B8xmq-Pw.js";
82
- import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-BHn18ubR.js";
82
+ import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-CVqBgwrx.js";
83
83
  import "./pairing-token-CX3NN_qj.js";
84
84
  import "./channel-activity-BOiuJS3t.js";
85
85
  import "./fetch-DTNGXEzX.js";
@@ -100,7 +100,7 @@ import { c as hasNonzeroUsage, s as deriveSessionTotalTokens } from "./session-c
100
100
  import "./outbound-attachment-Bw-c5Cdp.js";
101
101
  import "./delivery-queue-CAxX6nGq.js";
102
102
  import "./send-CBcCKe5w.js";
103
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-BFyI1sla.js";
103
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-CPSKXD5k.js";
104
104
  import "./prompt-style-CnkMpSXt.js";
105
105
  import "./pairing-labels-BScqzHEx.js";
106
106
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-BgUx3Bm4.js";
@@ -129,27 +129,27 @@ import "./service-osK70kTZ.js";
129
129
  import "./lifecycle-core-JD8GNX_f.js";
130
130
  import "./systemd-hints-G9M4s_fF.js";
131
131
  import { t as parsePort$1 } from "./parse-port-DnJYkByg.js";
132
- import { n as addGatewayServiceCommands } from "./daemon-cli-DZeTm_F2.js";
132
+ import { n as addGatewayServiceCommands } from "./daemon-cli-bwFAShzf.js";
133
133
  import "./diagnostics-BRwihzJG.js";
134
134
  import "./table-BKlH0YlA.js";
135
135
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-CyVOLgNE.js";
136
136
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DnmJ0ABB.js";
137
- import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-BZU2PNKl.js";
137
+ import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-DVUHZrf4.js";
138
138
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-DUQ6tE92.js";
139
- import { r as pickGatewaySelfPresence } from "./status-CzI_lZth.js";
140
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-CFd-Q1SH.js";
139
+ import { r as pickGatewaySelfPresence } from "./status-RlJA2XzQ.js";
140
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-Bx8UUqFA.js";
141
141
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B7moDVHX.js";
142
142
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-7EzEjSzb.js";
143
- import { t as runOnboardingWizard } from "./onboarding-BPjquWC3.js";
144
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-C_rhjm5p.js";
145
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-Dnd_jTU-.js";
143
+ import { t as runOnboardingWizard } from "./onboarding-C89rTOOy.js";
144
+ import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-BcBroG6v.js";
145
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DUWtWoB-.js";
146
146
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Dq6vwkWW.js";
147
- import "./agents.config-DwibJO90.js";
147
+ import "./agents.config-D0ih9tP3.js";
148
148
  import "./dm-policy-shared-DwFEXR-I.js";
149
149
  import "./node-service-CD47Qpf1.js";
150
150
  import "./status.update-C1I_7XIo.js";
151
151
  import "./skills-install-D8JjjETa.js";
152
- import "./update-runner-CqWSrJXt.js";
152
+ import "./update-runner-Cv6hDgKV.js";
153
153
  import { t as resolveAgentSessionDirs } from "./session-dirs-Dgz7kkUM.js";
154
154
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B4H-2N8y.js";
155
155
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -5551,6 +5551,7 @@ const BASE_METHODS = [
5551
5551
  "logs.tail",
5552
5552
  "channels.status",
5553
5553
  "channels.logout",
5554
+ "docs.get",
5554
5555
  "status",
5555
5556
  "usage.status",
5556
5557
  "usage.cost",
@@ -11957,7 +11958,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11957
11958
  });
11958
11959
  let glassUiBridgeCleanup = null;
11959
11960
  if (!minimalTestGateway) {
11960
- const { createGlassUiBridge } = await import("./glass-ui-ws-nxFknxgE.js");
11961
+ const { createGlassUiBridge } = await import("./glass-ui-ws-BzBtCYP7.js");
11961
11962
  glassUiBridgeCleanup = createGlassUiBridge({
11962
11963
  wss: glassUiWss,
11963
11964
  context: gatewayRequestContext,
@@ -16,13 +16,13 @@ import { l as isTestDefaultMemorySlotDisabled } from "./manifest-registry-D5bnO5
16
16
  import "./skills-status-DODCG6UU.js";
17
17
  import { B as resolveAgentMaxConcurrent, C as parseDurationMs, H as VERSION, U as resolveRuntimeServiceVersion, V as resolveSubagentMaxConcurrent, i as loadConfig, l as writeConfigFile, n as migrateLegacyConfig, o as readConfigFileSnapshot, r as createConfigIO } from "./config-DXt3pc08.js";
18
18
  import { $t as deriveDeviceIdFromPublicKey, Bt as ensureDeviceToken, Ft as errorShape, Gt as requestDevicePairing, Nt as PROTOCOL_VERSION, Pt as ErrorCodes, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayload, Vt as getPairedDevice, Xt as verifyDeviceToken, Yt as updatePairedDeviceMetadata, Zt as roleScopesAllow, at as validateRequestFrame, n as formatValidationErrors, nn as verifyDeviceSignature, tn as normalizeDevicePublicKeyBase64Url, w as validateConnectParams, z as validateExecApprovalResolveParams, zt as approveDevicePairing } from "./client-qUlxXXVJ.js";
19
- import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-CJl0moIs.js";
19
+ import { f as loadGatewayTlsRuntime$1, n as callGateway } from "./call-BrRWr7Lj.js";
20
20
  import { _ as normalizeGatewayClientMode, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient } from "./message-channel-C9dERklz.js";
21
21
  import "./pairing-token-Byh6drgn.js";
22
22
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
23
23
  import { a as isValidIPv4, c as resolveClientIp, d as resolveHostName, f as rawDataToString, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, t as isLoopbackAddress, u as resolveGatewayListenHosts } from "./net-DZ5Ayk-W.js";
24
24
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-Cmumpn76.js";
25
- import { $ as getCliSessionId, $t as setPreRestartDeferralCheck, An as DEFAULT_INPUT_TIMEOUT_MS, At as normalizeOptionalSessionKey, Bt as buildSafeExternalPrompt, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dn as DEFAULT_INPUT_IMAGE_MAX_BYTES, E as createDefaultDeps, F as buildHistoryContextFromEntries, Ft as buildDeliveryFromLegacyPayload, H as getTotalPendingReplies, Ht as getHookType, In as resolveAgentTimeoutMs, It as hasLegacyDeliveryHints, J as runAgentTurn, Jt as emitGatewayRestart, Kt as consumeGatewaySigusr1RestartAuthorization, Lt as stripLegacyDeliveryFields, Mn as extractImageContentFromSource, Mt as normalizePayloadToSystemText, Nn as normalizeMimeList, Nt as normalizeRequiredName, O as resolveAgentAvatar, On as DEFAULT_INPUT_IMAGE_MIMES, Ot as inferLegacyName, Pn as resolveInputFileLimits, Pt as migrateLegacyCronPayload, Q as resolveModelProfile, Qt as setGatewaySigusr1RestartPolicy, Sr as getAgentRunContext, St as summarizeRestartSentinel, T as createOutboundSendDeps, Tt as normalizeHttpWebhookUrl, Ut as isExternalHookSession, Vt as detectSuspiciousPatterns, X as getActiveEmbeddedRunCount, Xt as markGatewaySigusr1RestartHandled, Yt as isGatewaySigusr1RestartExternallyAllowed, _ as readJsonBodyWithLimit, at as resolveAnnounceTargetFromKey, b as sleepWithAbort, br as clearAgentRunContext, bt as formatRestartSentinelMessage, cr as getActiveTaskCount, ct as resolveOutboundSessionRoute, dn as requestHeartbeatNow, dr as resetAllLanes, dt as resolveOutboundTarget, et as setCliSessionId, f as getPluginToolMeta, fr as setCommandLaneConcurrency, ft as resolveSessionDeliveryTarget, g as handleSlackHttpRequest, gt as runWithModelFallback, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as listDescendantRunsForRequester, it as readLatestAssistantReply, jn as extractFileContentFromSource, jt as normalizeOptionalText, kn as DEFAULT_INPUT_MAX_REDIRECTS, kt as normalizeOptionalAgentId, l as applyToolPolicyPipeline, m as loadSymiPlugins, mr as CommandLane, mt as resetDirectoryCache, n as countActiveRunsForSession, pr as waitForActiveTasks, q as resolveCronStyleNow, qt as deferGatewayRestartUntilIdle, r as initSubagentRegistry, rt as createSymiTools, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as runCliAgent, u as buildDefaultToolPolicyPipelineSteps, ur as getTotalQueueSize, v as requestBodyErrorToText, vt as consumeRestartSentinel, wr as registerAgentRunContext, x as agentCommand, xr as emitAgentEvent, y as computeBackoff, yr as stripHeartbeatToken } from "./subagent-registry-CfoRc8ng.js";
25
+ import { $ as getCliSessionId, $t as setPreRestartDeferralCheck, An as DEFAULT_INPUT_TIMEOUT_MS, At as normalizeOptionalSessionKey, Bt as buildSafeExternalPrompt, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dn as DEFAULT_INPUT_IMAGE_MAX_BYTES, E as createDefaultDeps, F as buildHistoryContextFromEntries, Ft as buildDeliveryFromLegacyPayload, H as getTotalPendingReplies, Ht as getHookType, In as resolveAgentTimeoutMs, It as hasLegacyDeliveryHints, J as runAgentTurn, Jt as emitGatewayRestart, Kt as consumeGatewaySigusr1RestartAuthorization, Lt as stripLegacyDeliveryFields, Mn as extractImageContentFromSource, Mt as normalizePayloadToSystemText, Nn as normalizeMimeList, Nt as normalizeRequiredName, O as resolveAgentAvatar, On as DEFAULT_INPUT_IMAGE_MIMES, Ot as inferLegacyName, Pn as resolveInputFileLimits, Pt as migrateLegacyCronPayload, Q as resolveModelProfile, Qt as setGatewaySigusr1RestartPolicy, Sr as getAgentRunContext, St as summarizeRestartSentinel, T as createOutboundSendDeps, Tt as normalizeHttpWebhookUrl, Ut as isExternalHookSession, Vt as detectSuspiciousPatterns, X as getActiveEmbeddedRunCount, Xt as markGatewaySigusr1RestartHandled, Yt as isGatewaySigusr1RestartExternallyAllowed, _ as readJsonBodyWithLimit, at as resolveAnnounceTargetFromKey, b as sleepWithAbort, br as clearAgentRunContext, bt as formatRestartSentinelMessage, cr as getActiveTaskCount, ct as resolveOutboundSessionRoute, dn as requestHeartbeatNow, dr as resetAllLanes, dt as resolveOutboundTarget, et as setCliSessionId, f as getPluginToolMeta, fr as setCommandLaneConcurrency, ft as resolveSessionDeliveryTarget, g as handleSlackHttpRequest, gt as runWithModelFallback, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as listDescendantRunsForRequester, it as readLatestAssistantReply, jn as extractFileContentFromSource, jt as normalizeOptionalText, kn as DEFAULT_INPUT_MAX_REDIRECTS, kt as normalizeOptionalAgentId, l as applyToolPolicyPipeline, m as loadSymiPlugins, mr as CommandLane, mt as resetDirectoryCache, n as countActiveRunsForSession, pr as waitForActiveTasks, q as resolveCronStyleNow, qt as deferGatewayRestartUntilIdle, r as initSubagentRegistry, rt as createSymiTools, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as runCliAgent, u as buildDefaultToolPolicyPipelineSteps, ur as getTotalQueueSize, v as requestBodyErrorToText, vt as consumeRestartSentinel, wr as registerAgentRunContext, x as agentCommand, xr as emitAgentEvent, y as computeBackoff, yr as stripHeartbeatToken } from "./subagent-registry-CsYeP8wc.js";
26
26
  import { D as resolveSessionResetPolicy, F as resolveMainSessionKey, H as cleanStaleLockFiles, I as resolveMainSessionKeyFromConfig, K as mergeDeliveryContext, M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, T as evaluateSessionFreshness, W as deliveryContextFromSession, d as updateSessionStore, n as parseSessionThreadInfo, o as loadSessionStore } from "./sessions-BPD85pWA.js";
27
27
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Csntmwwn.js";
28
28
  import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -103,7 +103,7 @@ import { n as runCommandWithRuntime } from "./cli-utils-CCaEbxAz.js";
103
103
  import { t as formatHelpExamples } from "./help-format-B0pWGnZs.js";
104
104
  import { n as withProgress } from "./progress-BAHiAaDW.js";
105
105
  import "./replies-CsUBFXf6.js";
106
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-BV3zKTt_.js";
106
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-7H_XiJt-.js";
107
107
  import "./prompt-style-DwCXob2h.js";
108
108
  import "./pairing-labels-DwceB1dG.js";
109
109
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-DOVQ8dDx.js";
@@ -124,27 +124,27 @@ import "./service-Cm9j9WzQ.js";
124
124
  import "./lifecycle-core-B9EgW7Tg.js";
125
125
  import "./systemd-hints-BWjICrbb.js";
126
126
  import { t as parsePort$1 } from "./parse-port-BQ0_YQqL.js";
127
- import { n as addGatewayServiceCommands } from "./daemon-cli-BRMcpQb7.js";
127
+ import { n as addGatewayServiceCommands } from "./daemon-cli-B9yneKpO.js";
128
128
  import "./diagnostics-CS1ov_hH.js";
129
129
  import "./table-D01d2GuY.js";
130
130
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-CsKTEo__.js";
131
131
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BtG9rny3.js";
132
- import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CaFXenfE.js";
132
+ import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-DgAM_dWL.js";
133
133
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CA_XIzr_.js";
134
- import { i as pickGatewaySelfPresence } from "./status-DQQ-w3eF.js";
135
- import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-1ZDwurPU.js";
134
+ import { i as pickGatewaySelfPresence } from "./status-Ut-dfDT0.js";
135
+ import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-C7HtwYDj.js";
136
136
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
137
137
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
138
- import { t as runOnboardingWizard } from "./onboarding-Bs3JhONv.js";
139
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-CXL1Nrbp.js";
140
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-HnaGVJwW.js";
138
+ import { t as runOnboardingWizard } from "./onboarding-B4qg0ZYp.js";
139
+ import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-OJbQNjOJ.js";
140
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CL2MBhWP.js";
141
141
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CzWeiE-Y.js";
142
- import "./agents.config-ByNtHnqX.js";
142
+ import "./agents.config-DIjsIDbS.js";
143
143
  import "./dm-policy-shared-DF2uLfXk.js";
144
144
  import "./node-service-fcZExd22.js";
145
145
  import "./status.update-BGSQrlxW.js";
146
146
  import "./skills-install-Por3jP0P.js";
147
- import "./update-runner-w3GO-spo.js";
147
+ import "./update-runner-BE6kDMsw.js";
148
148
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
149
149
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
150
150
  import { n as forceFreePortAndWait } from "./ports-Dn122MUd.js";
@@ -5547,6 +5547,7 @@ const BASE_METHODS = [
5547
5547
  "logs.tail",
5548
5548
  "channels.status",
5549
5549
  "channels.logout",
5550
+ "docs.get",
5550
5551
  "status",
5551
5552
  "usage.status",
5552
5553
  "usage.cost",
@@ -11953,7 +11954,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11953
11954
  });
11954
11955
  let glassUiBridgeCleanup = null;
11955
11956
  if (!minimalTestGateway) {
11956
- const { createGlassUiBridge } = await import("./glass-ui-ws-Czh-1YjO.js");
11957
+ const { createGlassUiBridge } = await import("./glass-ui-ws-Cm-WtdFI.js");
11957
11958
  glassUiBridgeCleanup = createGlassUiBridge({
11958
11959
  wss: glassUiWss,
11959
11960
  context: gatewayRequestContext,
@@ -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 { n as callGateway } from "./call-BHn18ubR.js";
2
+ import { n as callGateway } from "./call-CVqBgwrx.js";
3
3
  import { n as withProgress } from "./progress-jIePzvGA.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts
@@ -1,4 +1,4 @@
1
- import { n as callGateway } from "./call-CJl0moIs.js";
1
+ import { 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 withProgress } from "./progress-BAHiAaDW.js";
4
4