@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
@@ -7,12 +7,12 @@ import { i as loadWorkspaceSkillEntries } from "./skills-D_oCiaQn.js";
7
7
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DODCG6UU.js";
8
8
  import { H as VERSION, N as applyMergePatch, P as applyLegacyMigrations, S as sensitive, U as resolveRuntimeServiceVersion, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins } from "./config-DXt3pc08.js";
9
9
  import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWizardNextParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateTalkConfigParams, D as validateCronRemoveParams, Dt as validateWebLoginStartParams, E as validateCronListParams, Et as validateWakeParams, F as validateDevicePairRemoveParams, Ft as errorShape, G as validateModelsListParams, H as validateExecApprovalsNodeSetParams, Ht as listDevicePairing, I as validateDeviceTokenRevokeParams, J as validateNodeInvokeParams, Jt as summarizeDeviceTokens, K as validateNodeDescribeParams, Kt as revokeDeviceToken, L as validateDeviceTokenRotateParams, Lt as parseSessionLabel, M as validateDevicePairApproveParams, Mt as validateWizardStatusParams, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWebLoginWaitParams, P as validateDevicePairRejectParams, Pt as ErrorCodes, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsUpdateParams, T as validateCronAddParams, Tt as validateUpdateRunParams, U as validateExecApprovalsSetParams, Ut as rejectDevicePairing, V as validateExecApprovalsNodeGetParams, W as validateLogsTailParams, Wt as removePairedDevice, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsInstallParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardStartParams, k as validateCronRunsParams, kt as validateWizardCancelParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, qt as rotateDeviceToken, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsUsageParams, wt as validateTalkModeParams, x as validateConfigPatchParams, xt as validateSkillsStatusParams, y as validateConfigApplyParams, yt as validateSkillsBinsParams, zt as approveDevicePairing } from "./client-qUlxXXVJ.js";
10
- import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-CJl0moIs.js";
10
+ import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-BrRWr7Lj.js";
11
11
  import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-C9dERklz.js";
12
12
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
13
13
  import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
14
14
  import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
15
- import { $n as resolveTtsAutoMode, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as enqueueSystemEvent, Cr as onAgentEvent, D as createOutboundSendDeps, Dt as normalizeCronJobPatch, Et as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, V as createReplyDispatcher, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, Xn as isTtsEnabled, Y as abortEmbeddedPiRun, Yn as getTtsProvider, Z as waitForEmbeddedPiRunEnd, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, m as loadSymiPlugins, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, x as agentCommand, xn as applyVerboseOverride, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-CfoRc8ng.js";
15
+ import { $n as resolveTtsAutoMode, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as enqueueSystemEvent, Cr as onAgentEvent, D as createOutboundSendDeps, Dt as normalizeCronJobPatch, Et as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, V as createReplyDispatcher, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, Xn as isTtsEnabled, Y as abortEmbeddedPiRun, Yn as getTtsProvider, Z as waitForEmbeddedPiRunEnd, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, m as loadSymiPlugins, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, x as agentCommand, xn as applyVerboseOverride, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-CsYeP8wc.js";
16
16
  import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-BPD85pWA.js";
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
18
18
  import { n as createBrowserRouteDispatcher } from "./with-timeout-BIXdW2Bg.js";
@@ -30,21 +30,21 @@ import { t as getChannelActivity } from "./channel-activity-myOnmDZi.js";
30
30
  import { n as normalizePollInput } from "./polls-DXeUmcgz.js";
31
31
  import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Ce4HMDRY.js";
32
32
  import { i as parseAbsoluteTimeMs } from "./stagger-CQar2eKe.js";
33
- import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-BV3zKTt_.js";
33
+ import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-7H_XiJt-.js";
34
34
  import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-B8TDjqpW.js";
35
35
  import { t as buildChannelUiCatalog } from "./catalog-buoA8ik4.js";
36
36
  import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
37
37
  import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
38
38
  import { t as buildChannelAccountSnapshot } from "./status-BUedPCLb.js";
39
- import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-CaFXenfE.js";
40
- import { r as getStatusSummary } from "./status-DQQ-w3eF.js";
41
- import { c as setHeartbeatsEnabled } from "./health-1ZDwurPU.js";
39
+ import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-DgAM_dWL.js";
40
+ import { r as getStatusSummary } from "./status-Ut-dfDT0.js";
41
+ import { c as setHeartbeatsEnabled } from "./health-C7HtwYDj.js";
42
42
  import { m as normalizeUpdateChannel } from "./update-check-ZdimP1aU.js";
43
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-HnaGVJwW.js";
44
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-ByNtHnqX.js";
43
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CL2MBhWP.js";
44
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DIjsIDbS.js";
45
45
  import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
46
46
  import { t as installSkill } from "./skills-install-Por3jP0P.js";
47
- import { t as runGatewayUpdate } from "./update-runner-w3GO-spo.js";
47
+ import { t as runGatewayUpdate } from "./update-runner-BE6kDMsw.js";
48
48
  import { spawnSync } from "node:child_process";
49
49
  import * as os$1 from "node:os";
50
50
  import os from "node:os";
@@ -6376,6 +6376,63 @@ const deviceHandlers = {
6376
6376
  }
6377
6377
  };
6378
6378
 
6379
+ //#endregion
6380
+ //#region src/gateway/server-methods/docs.ts
6381
+ /**
6382
+ * Whitelist of doc keys the Glass UI docs viewer can fetch. Each value is a
6383
+ * path relative to the Symi package root. Keys are exposed over the RPC;
6384
+ * paths are not — so the client cannot request arbitrary files.
6385
+ *
6386
+ * Docs here are the short viewer-specific copies at docs/connections/*.md.
6387
+ * The longer MDX-flavoured docs at docs/channels/*.md are intended for the
6388
+ * hosted Mintlify site and are not served through this endpoint because
6389
+ * marked.js in the browser cannot render Mintlify components.
6390
+ */
6391
+ const DOCS_WHITELIST = {
6392
+ email: "docs/connections/email.md",
6393
+ slack: "docs/connections/slack.md",
6394
+ msteams: "docs/connections/msteams.md"
6395
+ };
6396
+ const docsHandlers = { "docs.get": async ({ params, respond }) => {
6397
+ const rawKey = params.key;
6398
+ if (typeof rawKey !== "string" || !rawKey.trim()) {
6399
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "docs.get requires a string `key` param"));
6400
+ return;
6401
+ }
6402
+ const key = rawKey.trim();
6403
+ const relPath = DOCS_WHITELIST[key];
6404
+ if (!relPath) {
6405
+ respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `unknown docs key: ${key} (allowed: ${Object.keys(DOCS_WHITELIST).join(", ")})`));
6406
+ return;
6407
+ }
6408
+ const packageRoot = await resolveSymiPackageRoot({
6409
+ cwd: process.cwd(),
6410
+ argv1: process.argv[1],
6411
+ moduleUrl: import.meta.url
6412
+ });
6413
+ if (!packageRoot) {
6414
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "could not resolve Symi package root"));
6415
+ return;
6416
+ }
6417
+ const fullPath = path.join(packageRoot, relPath);
6418
+ let markdown;
6419
+ try {
6420
+ markdown = await fs$1.readFile(fullPath, "utf-8");
6421
+ } catch (err) {
6422
+ if (err?.code === "ENOENT") {
6423
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `docs file not bundled in this Symi install: ${relPath}`));
6424
+ return;
6425
+ }
6426
+ respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `failed to read docs file: ${String(err)}`));
6427
+ return;
6428
+ }
6429
+ respond(true, {
6430
+ key,
6431
+ path: relPath,
6432
+ markdown
6433
+ }, void 0);
6434
+ } };
6435
+
6379
6436
  //#endregion
6380
6437
  //#region src/gateway/server-methods/exec-approvals.ts
6381
6438
  function requireApprovalsBaseHash(params, snapshot, respond) {
@@ -7365,7 +7422,7 @@ const nodeHandlers = {
7365
7422
  const p = params;
7366
7423
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7367
7424
  await respondUnavailableOnThrow(respond, async () => {
7368
- const { handleNodeEvent } = await import("./server-node-events-CdUVoXvg.js");
7425
+ const { handleNodeEvent } = await import("./server-node-events-Ba9K9DB9.js");
7369
7426
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7370
7427
  await handleNodeEvent({
7371
7428
  deps: context.deps,
@@ -9371,6 +9428,7 @@ const coreGatewayHandlers = {
9371
9428
  ...chatHandlers,
9372
9429
  ...cronHandlers,
9373
9430
  ...deviceHandlers,
9431
+ ...docsHandlers,
9374
9432
  ...execApprovalsHandlers,
9375
9433
  ...webHandlers,
9376
9434
  ...modelsHandlers,
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { Et as agentCommand, Mt as resolveOutboundTarget, Pt as createOutboundSendDeps, b as resolveGatewaySessionStoreTarget, st as requestHeartbeatNow, v as loadSessionEntry, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys } from "./reply-DAMo5JhO.js";
4
+ import { Et as agentCommand, Mt as resolveOutboundTarget, Pt as createOutboundSendDeps, b as resolveGatewaySessionStoreTarget, st as requestHeartbeatNow, v as loadSessionEntry, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys } from "./reply-B0azB7WR.js";
5
5
  import { c as normalizeMainKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -73,7 +73,7 @@ import "./render-CXDO_kgw.js";
73
73
  import "./commands-BNLCWX6e.js";
74
74
  import "./commands-registry-B6cf3Cmq.js";
75
75
  import "./client-B8xmq-Pw.js";
76
- import "./call-BHn18ubR.js";
76
+ import "./call-CVqBgwrx.js";
77
77
  import "./pairing-token-CX3NN_qj.js";
78
78
  import "./channel-activity-BOiuJS3t.js";
79
79
  import "./fetch-DTNGXEzX.js";
@@ -94,7 +94,7 @@ import "./session-cost-usage-BXAI7CNH.js";
94
94
  import "./outbound-attachment-Bw-c5Cdp.js";
95
95
  import "./delivery-queue-CAxX6nGq.js";
96
96
  import "./send-CBcCKe5w.js";
97
- import "./onboard-helpers-BFyI1sla.js";
97
+ import "./onboard-helpers-CPSKXD5k.js";
98
98
  import "./prompt-style-CnkMpSXt.js";
99
99
  import "./pairing-labels-BScqzHEx.js";
100
100
  import "./exec-approvals-DXM2pQYL.js";
@@ -103,7 +103,7 @@ import "./pi-tools.policy-BpN-v9bT.js";
103
103
  import "./control-service-D0IdaeI8.js";
104
104
  import "./stagger-CvFURHzt.js";
105
105
  import "./channel-selection-V2xDgw16.js";
106
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-Dnd_jTU-.js";
106
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-DUWtWoB-.js";
107
107
  import { randomUUID } from "node:crypto";
108
108
 
109
109
  //#region src/gateway/server-node-events.ts
@@ -12,10 +12,10 @@ import "./skills-D_oCiaQn.js";
12
12
  import "./manifest-registry-D5bnO5uA.js";
13
13
  import { i as loadConfig } from "./config-DXt3pc08.js";
14
14
  import "./client-qUlxXXVJ.js";
15
- import "./call-CJl0moIs.js";
15
+ import "./call-BrRWr7Lj.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-CfoRc8ng.js";
18
+ import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-CsYeP8wc.js";
19
19
  import { d as updateSessionStore } from "./sessions-BPD85pWA.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import { r as normalizeChannelId } from "./plugins-CwSlLxM8.js";
@@ -95,11 +95,11 @@ import "./cli-utils-CCaEbxAz.js";
95
95
  import "./help-format-B0pWGnZs.js";
96
96
  import "./progress-BAHiAaDW.js";
97
97
  import "./replies-CsUBFXf6.js";
98
- import "./onboard-helpers-BV3zKTt_.js";
98
+ import "./onboard-helpers-7H_XiJt-.js";
99
99
  import "./prompt-style-DwCXob2h.js";
100
100
  import "./pairing-labels-DwceB1dG.js";
101
101
  import "./pi-tools.policy-DOVQ8dDx.js";
102
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-HnaGVJwW.js";
102
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CL2MBhWP.js";
103
103
  import { randomUUID } from "node:crypto";
104
104
 
105
105
  //#region src/gateway/server-node-events.ts
@@ -1,4 +1,4 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DAMo5JhO.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-B0azB7WR.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
3
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
4
4
  import { i as loadConfig } from "./config-PXAJCHa5.js";
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
3
3
  import { i as loadConfig } from "./config-DXt3pc08.js";
4
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CfoRc8ng.js";
4
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CsYeP8wc.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
- import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-DAMo5JhO.js";
3
+ import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-B0azB7WR.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
6
  import { n as runExec } from "./exec-CWkblSrI.js";
@@ -14,12 +14,12 @@ import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as l
14
14
  import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
15
15
  import { c as resolveStorePath } from "./paths-CyhzMxFA.js";
16
16
  import { r as getMemorySearchManager } from "./memory-cli-AoMrHA5O.js";
17
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BHn18ubR.js";
17
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CVqBgwrx.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
20
20
  import { r as formatDurationPrecise } from "./format-duration-D0B0Uo-I.js";
21
21
  import { o as getRemoteSkillEligibility } from "./skill-commands-BMu-U3SX.js";
22
- import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-BFyI1sla.js";
22
+ import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-CPSKXD5k.js";
23
23
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CKmK1hOo.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-DnjQ73f_.js";
25
25
  import { t as collectChannelStatusIssues } from "./channels-status-issues-CJ0Vb_9z.js";
@@ -27,8 +27,8 @@ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
27
27
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D6c3G7my.js";
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-BRwihzJG.js";
29
29
  import { t as renderTable } from "./table-BKlH0YlA.js";
30
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-BZU2PNKl.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CFd-Q1SH.js";
30
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-DVUHZrf4.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-Bx8UUqFA.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-7EzEjSzb.js";
33
33
  import { t as resolveNodeService } from "./node-service-CD47Qpf1.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-B0yJsjEo.js";
@@ -8,8 +8,8 @@ import { n as runExec } from "./exec-CBKBIMpA.js";
8
8
  import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DODCG6UU.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
11
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CJl0moIs.js";
12
- import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-CfoRc8ng.js";
11
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
12
+ import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-CsYeP8wc.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-BPD85pWA.js";
14
14
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
@@ -21,15 +21,15 @@ import { l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsFo
21
21
  import { o as getRemoteSkillEligibility } from "./skill-commands-BSJONVkt.js";
22
22
  import { r as formatDurationPrecise } from "./format-duration-BOC0O2XQ.js";
23
23
  import { n as withProgress } from "./progress-BAHiAaDW.js";
24
- import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-BV3zKTt_.js";
24
+ import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-7H_XiJt-.js";
25
25
  import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
26
26
  import { t as collectChannelStatusIssues } from "./channels-status-issues-c7qZbYG5.js";
27
27
  import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
28
28
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-hFVEC3wO.js";
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
30
30
  import { t as renderTable } from "./table-D01d2GuY.js";
31
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-CaFXenfE.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-1ZDwurPU.js";
31
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-DgAM_dWL.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-C7HtwYDj.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
34
34
  import { t as resolveNodeService } from "./node-service-fcZExd22.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DVLB9DNB.js";
@@ -16,7 +16,7 @@ import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as appl
16
16
  import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D5bnO5uA.js";
17
17
  import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-DXt3pc08.js";
18
18
  import { It as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-qUlxXXVJ.js";
19
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CJl0moIs.js";
19
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
20
20
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
21
21
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
22
22
  import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-BPD85pWA.js";
@@ -92,7 +92,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
92
92
  import { t as parseTimeoutMs } from "./parse-timeout-zNJBr1fY.js";
93
93
  import { t as makeProxyFetch } from "./proxy-DL3MD6-P.js";
94
94
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CsUBFXf6.js";
95
- import { r as detectBinary } from "./onboard-helpers-BV3zKTt_.js";
95
+ import { r as detectBinary } from "./onboard-helpers-7H_XiJt-.js";
96
96
  import { t as resolvePairingIdLabel } from "./pairing-labels-DwceB1dG.js";
97
97
  import { t as getActiveWebListener } from "./active-listener-De1JhR4W.js";
98
98
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-DOVQ8dDx.js";
@@ -53434,7 +53434,7 @@ function isVoiceChannelType(type) {
53434
53434
  function createDefaultDeps() {
53435
53435
  return {
53436
53436
  sendMessageWhatsApp: async (...args) => {
53437
- const { sendMessageWhatsApp } = await import("./web-DHAEIalz.js");
53437
+ const { sendMessageWhatsApp } = await import("./web-CYf5I3aU.js");
53438
53438
  return await sendMessageWhatsApp(...args);
53439
53439
  },
53440
53440
  sendMessageTelegram: async (...args) => {
@@ -68748,7 +68748,7 @@ function loadWebLoginQr() {
68748
68748
  return webLoginQrPromise;
68749
68749
  }
68750
68750
  function loadWebChannel() {
68751
- webChannelPromise ??= import("./web-DHAEIalz.js");
68751
+ webChannelPromise ??= import("./web-CYf5I3aU.js");
68752
68752
  return webChannelPromise;
68753
68753
  }
68754
68754
  function loadWhatsAppActions() {
@@ -12,11 +12,11 @@ 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 { t as formatDocsLink } from "./links-3i1eUga4.js";
18
18
  import "./progress-jIePzvGA.js";
19
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BzkjTxlD.js";
19
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Bp0KNJtL.js";
20
20
 
21
21
  //#region src/cli/system-cli.ts
22
22
  const normalizeWakeMode = (raw) => {
@@ -6,12 +6,12 @@ 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 { t as formatDocsLink } from "./links-DlWpl9Yv.js";
13
13
  import "./progress-BAHiAaDW.js";
14
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CJPoGX_W.js";
14
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-XT8cFwtz.js";
15
15
 
16
16
  //#region src/cli/system-cli.ts
17
17
  const normalizeWakeMode = (raw) => {
@@ -9,7 +9,7 @@ import { k as stripLeadingInboundMetadata } from "./sessions-BeYHj0gr.js";
9
9
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-D8N3rsYt.js";
10
10
  import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-B6cf3Cmq.js";
11
11
  import { Nt as PROTOCOL_VERSION, t as GatewayClient } from "./client-B8xmq-Pw.js";
12
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-BHn18ubR.js";
12
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-CVqBgwrx.js";
13
13
  import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-BXoxEQVN.js";
14
14
  import { n as formatTokenCount } from "./usage-format-BgUx3Bm4.js";
15
15
  import chalk from "chalk";
@@ -3,7 +3,7 @@ import { S as parseAgentSessionKey, c as normalizeMainKey, r as buildAgentMainSe
3
3
  import { l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { H as VERSION, i as loadConfig } from "./config-DXt3pc08.js";
5
5
  import { Nt as PROTOCOL_VERSION, t as GatewayClient } from "./client-qUlxXXVJ.js";
6
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-CJl0moIs.js";
6
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
7
7
  import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
8
8
  import { C as stripLeadingInboundMetadata } from "./sessions-BPD85pWA.js";
9
9
  import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-DSscUmkR.js";
@@ -44,11 +44,11 @@ import "./tool-display-D8N3rsYt.js";
44
44
  import "./commands-BNLCWX6e.js";
45
45
  import "./commands-registry-B6cf3Cmq.js";
46
46
  import "./client-B8xmq-Pw.js";
47
- import "./call-BHn18ubR.js";
47
+ import "./call-CVqBgwrx.js";
48
48
  import "./pairing-token-CX3NN_qj.js";
49
49
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
50
50
  import { t as parseTimeoutMs } from "./parse-timeout-2S5vp0-9.js";
51
- import { t as runTui } from "./tui-CXTwJqpz.js";
51
+ import { t as runTui } from "./tui-DfPeXwah.js";
52
52
 
53
53
  //#region src/cli/tui-cli.ts
54
54
  function registerTuiCli(program) {
@@ -8,7 +8,7 @@ import "./skills-D_oCiaQn.js";
8
8
  import "./manifest-registry-D5bnO5uA.js";
9
9
  import "./config-DXt3pc08.js";
10
10
  import "./client-qUlxXXVJ.js";
11
- import "./call-CJl0moIs.js";
11
+ import "./call-BrRWr7Lj.js";
12
12
  import "./message-channel-C9dERklz.js";
13
13
  import "./pairing-token-Byh6drgn.js";
14
14
  import "./sessions-BPD85pWA.js";
@@ -43,7 +43,7 @@ import "./commands-registry-CccyRhnX.js";
43
43
  import "./tool-display-CXwOC-qw.js";
44
44
  import { t as parseTimeoutMs } from "./parse-timeout-zNJBr1fY.js";
45
45
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
46
- import { t as runTui } from "./tui-DTW81r9y.js";
46
+ import { t as runTui } from "./tui-LZPdrFmK.js";
47
47
 
48
48
  //#region src/cli/tui-cli.ts
49
49
  function registerTuiCli(program) {
@@ -10,10 +10,10 @@ import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C a
10
10
  import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
11
11
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
13
- import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BUNbSNWw.js";
13
+ import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-DcN8GHTt.js";
14
14
  import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BkZ9HOKT.js";
15
15
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-CBCGTsIb.js";
16
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-ROtrXlNs.js";
16
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-C08Z0XAa.js";
17
17
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-CXxrn_e2.js";
18
18
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
19
19
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
@@ -31,10 +31,10 @@ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i
31
31
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Yzy50T1h.js";
32
32
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
33
33
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
34
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BC3liFsT.js";
34
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-CLZGlRZt.js";
35
35
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-CQiU0O8b.js";
36
36
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
37
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-C6v6m8Id.js";
37
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BnO8X_hj.js";
38
38
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-RXOlh8ar.js";
39
39
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
40
40
  import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-xTfsDEE2.js";
@@ -50,7 +50,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Cj6k
50
50
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Se92wAN5.js";
51
51
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-JAy_3A3B.js";
52
52
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-CfoYlMQB.js";
53
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-QX0Z6K1w.js";
53
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-D5nFF9E6.js";
54
54
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-D1hG6Ikz.js";
55
55
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-Dvqh1Tgb.js";
56
56
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Dnti0cFs.js";
@@ -81,7 +81,7 @@ import AjvPkg from "ajv";
81
81
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
82
82
  import { createServer } from "node:http";
83
83
  import { ProxyAgent, fetch as fetch$1 } from "undici";
84
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
84
+ import WebSocket$1, { WebSocket } from "ws";
85
85
  import { Buffer as Buffer$1 } from "node:buffer";
86
86
  import { EdgeTTS } from "node-edge-tts";
87
87
  import { createJiti } from "jiti";
@@ -8798,7 +8798,7 @@ var GatewayClient = class {
8798
8798
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8799
8799
  });
8800
8800
  }
8801
- this.ws = new WebSocket$1(url, wsOptions);
8801
+ this.ws = new WebSocket(url, wsOptions);
8802
8802
  this.ws.on("open", () => {
8803
8803
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8804
8804
  const tlsError = this.validateTlsFingerprint();
@@ -9017,7 +9017,7 @@ var GatewayClient = class {
9017
9017
  return null;
9018
9018
  }
9019
9019
  async request(method, params, opts) {
9020
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
9020
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
9021
9021
  const id = randomUUID();
9022
9022
  const frame = {
9023
9023
  type: "req",
@@ -9075,6 +9075,7 @@ const METHOD_SCOPE_GROUPS = {
9075
9075
  "health",
9076
9076
  "logs.tail",
9077
9077
  "channels.status",
9078
+ "docs.get",
9078
9079
  "status",
9079
9080
  "usage.status",
9080
9081
  "usage.cost",
@@ -10283,7 +10284,7 @@ async function routeReply(params) {
10283
10284
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10284
10285
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10285
10286
  try {
10286
- const { deliverOutboundPayloads } = await import("./deliver-BC3liFsT.js").then((n) => n.n);
10287
+ const { deliverOutboundPayloads } = await import("./deliver-CLZGlRZt.js").then((n) => n.n);
10287
10288
  return {
10288
10289
  ok: true,
10289
10290
  messageId: (await deliverOutboundPayloads({
@@ -43724,7 +43725,7 @@ async function deliverSessionMaintenanceWarning(params) {
43724
43725
  return;
43725
43726
  }
43726
43727
  try {
43727
- const { deliverOutboundPayloads } = await import("./deliver-BC3liFsT.js").then((n) => n.n);
43728
+ const { deliverOutboundPayloads } = await import("./deliver-CLZGlRZt.js").then((n) => n.n);
43728
43729
  await deliverOutboundPayloads({
43729
43730
  cfg: params.cfg,
43730
43731
  channel,
@@ -47170,7 +47171,7 @@ async function describeStickerImage(params) {
47170
47171
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
47171
47172
  try {
47172
47173
  const buffer = await fs$1.readFile(imagePath);
47173
- const { describeImageWithModel } = await import("./image-C6v6m8Id.js").then((n) => n.n);
47174
+ const { describeImageWithModel } = await import("./image-BnO8X_hj.js").then((n) => n.n);
47174
47175
  return (await describeImageWithModel({
47175
47176
  buffer,
47176
47177
  fileName: "sticker.webp",
@@ -49832,7 +49833,7 @@ async function preflightDiscordMessage(params) {
49832
49833
  let preflightTranscript;
49833
49834
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
49834
49835
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
49835
- const { transcribeFirstAudio } = await import("./audio-preflight-DIXDvyz5.js");
49836
+ const { transcribeFirstAudio } = await import("./audio-preflight-D0nJ1LEt.js");
49836
49837
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
49837
49838
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
49838
49839
  ctx: {
@@ -53838,7 +53839,7 @@ function isVoiceChannelType(type) {
53838
53839
  function createDefaultDeps() {
53839
53840
  return {
53840
53841
  sendMessageWhatsApp: async (...args) => {
53841
- const { sendMessageWhatsApp } = await import("./web-9rrJ5lZr.js");
53842
+ const { sendMessageWhatsApp } = await import("./web-Dxkxcp7P.js");
53842
53843
  return await sendMessageWhatsApp(...args);
53843
53844
  },
53844
53845
  sendMessageTelegram: async (...args) => {
@@ -56743,7 +56744,7 @@ function createDiscordGatewayPlugin(params) {
56743
56744
  super(options);
56744
56745
  }
56745
56746
  createWebSocket(url) {
56746
- return new WebSocket(url, { agent });
56747
+ return new WebSocket$1(url, { agent });
56747
56748
  }
56748
56749
  }
56749
56750
  return new ProxyGatewayPlugin();
@@ -66961,7 +66962,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
66961
66962
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
66962
66963
  let preflightTranscript;
66963
66964
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
66964
- const { transcribeFirstAudio } = await import("./audio-preflight-DIXDvyz5.js");
66965
+ const { transcribeFirstAudio } = await import("./audio-preflight-D0nJ1LEt.js");
66965
66966
  preflightTranscript = await transcribeFirstAudio({
66966
66967
  ctx: {
66967
66968
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -69118,7 +69119,7 @@ function loadWebLoginQr() {
69118
69119
  return webLoginQrPromise;
69119
69120
  }
69120
69121
  function loadWebChannel() {
69121
- webChannelPromise ??= import("./web-9rrJ5lZr.js");
69122
+ webChannelPromise ??= import("./web-Dxkxcp7P.js");
69122
69123
  return webChannelPromise;
69123
69124
  }
69124
69125
  function loadWhatsAppActions() {