@symerian/symi 2.8.10 → 2.8.12

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 (177) hide show
  1. package/dist/{agents-BbVxJTp2.js → agents-OAonMxYV.js} +4 -4
  2. package/dist/{agents.config-LE2JxgiS.js → agents.config-BIhaDwT2.js} +1 -1
  3. package/dist/{agents.config-DckCExUX.js → agents.config-DGu_K5xz.js} +1 -1
  4. package/dist/{audio-preflight-NdNUAZ0y.js → audio-preflight-C6vpFnOG.js} +4 -4
  5. package/dist/{audio-preflight-rjCWpcfE.js → audio-preflight-Cb-T0r6e.js} +4 -4
  6. package/dist/{audit-CNU0I_UT.js → audit-Bi9Je9FZ.js} +1 -1
  7. package/dist/{audit-F5zQ_Wk9.js → audit-Oa5dsn5p.js} +1 -1
  8. package/dist/{auth-choice-j1FEYnxv.js → auth-choice-BvPX7B4c.js} +1 -1
  9. package/dist/{auth-choice-DnKOB8Gs.js → auth-choice-DDzWns1k.js} +1 -1
  10. package/dist/{banner-BFr8n0of.js → banner-BFdiq-O5.js} +1 -1
  11. package/dist/build-info.json +3 -3
  12. package/dist/bundled/boot-md/handler.js +7 -7
  13. package/dist/bundled/session-memory/handler.js +7 -7
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-options-DrBxsMlw.js → channel-options-DTqUB0OP.js} +1 -1
  16. package/dist/{channel-options-BtmFCQOB.js → channel-options-tfnOGSNF.js} +1 -1
  17. package/dist/{channel-web-YgdajAXX.js → channel-web-CcUXobcu.js} +1 -1
  18. package/dist/{channels-cli-fYbw-4gz.js → channels-cli-BcE5tHIr.js} +7 -7
  19. package/dist/{channels-cli-ChS_nQcP.js → channels-cli-CmShA-wJ.js} +7 -7
  20. package/dist/{chrome-BUT--ob3.js → chrome-B14NNyfm.js} +7 -7
  21. package/dist/{chrome-C08Z0XAa.js → chrome-ROtrXlNs.js} +7 -7
  22. package/dist/{cli-CA4qcSFY.js → cli-BxoD2wzk.js} +4 -4
  23. package/dist/{cli-NfoZJEPh.js → cli-CKG2iAr3.js} +4 -4
  24. package/dist/{command-registry-B6spVZMd.js → command-registry-D1Le-Fmh.js} +10 -10
  25. package/dist/{completion-cli-VQrV_JN9.js → completion-cli-D9pC-ttw.js} +2 -2
  26. package/dist/{completion-cli-DKoZNVbW.js → completion-cli-DgiFjSGS.js} +1 -1
  27. package/dist/{config-cli-CgC3xSoL.js → config-cli-5mFA0UDP.js} +1 -1
  28. package/dist/{config-cli-Dm2QMcwn.js → config-cli-C_uZQsTl.js} +1 -1
  29. package/dist/{configure-COCCg2tV.js → configure-BJcy7wXm.js} +3 -3
  30. package/dist/{configure-DiDXmX3E.js → configure-DuRTFCuW.js} +3 -3
  31. package/dist/{deliver-qUx-eLKt.js → deliver-B0OUq6RP.js} +1 -1
  32. package/dist/{deliver-B_Q_nWJV.js → deliver-D0bWiRCg.js} +1 -1
  33. package/dist/{doctor-completion-CPFKFTc-.js → doctor-completion-DCRTHpiY.js} +1 -1
  34. package/dist/{doctor-completion-BR5k35Qj.js → doctor-completion-sQVhKKei.js} +1 -1
  35. package/dist/entry.js +1 -1
  36. package/dist/extensionAPI.js +7 -7
  37. package/dist/{gateway-cli-BJH2K8fn.js → gateway-cli-C3ujhxO0.js} +13 -13
  38. package/dist/{gateway-cli-BF1-DFEf.js → gateway-cli-C_MT4JFm.js} +13 -13
  39. package/dist/{glass-ui-ws-B7j7iTDg.js → glass-ui-ws-B7zRY2BL.js} +11 -11
  40. package/dist/{glass-ui-ws-DyoHQW3O.js → glass-ui-ws-ColAiWUr.js} +11 -11
  41. package/dist/{health-D-0xOxV8.js → health-C12hy3Ao.js} +1 -1
  42. package/dist/{health-BAjSATWA.js → health-vKJZ7iJR.js} +1 -1
  43. package/dist/{hooks-cli-ZZaM2xfC.js → hooks-cli-CdUQvj8s.js} +5 -5
  44. package/dist/{hooks-cli-BaoCFIbQ.js → hooks-cli-fCPl5hur.js} +5 -5
  45. package/dist/{image-C6rCON9L.js → image-BuVL0jHI.js} +1 -1
  46. package/dist/{image-tzIqIuKx.js → image-MNvheU8U.js} +1 -1
  47. package/dist/index.js +9 -9
  48. package/dist/llm-slug-generator.js +7 -7
  49. package/dist/{manager-BpvcDr-7.js → manager-BJvYQ7xP.js} +1 -1
  50. package/dist/{manager-BxJ9BhQe.js → manager-CLrJn9l-.js} +1 -1
  51. package/dist/{manager-B5JWZL0E.js → manager-DHRBy5oR.js} +1 -1
  52. package/dist/{manager-DUuPE1N1.js → manager-Df_ZdrNG.js} +1 -1
  53. package/dist/{memory-cli-r-ulsUBa.js → memory-cli-BgJciaHC.js} +3 -3
  54. package/dist/{memory-cli-BQZ0rTKC.js → memory-cli-T-a5-lqZ.js} +3 -3
  55. package/dist/{models-B1__62Qo.js → models-BXXV_sZU.js} +2 -2
  56. package/dist/{models-cli-BGpB4PAp.js → models-cli-BI-DyItH.js} +5 -5
  57. package/dist/{models-cli-Ch-4PBud.js → models-cli-Bs6JAGq-.js} +6 -6
  58. package/dist/{onboard-D2NC88Mp.js → onboard-Czi_FRdi.js} +2 -2
  59. package/dist/{onboard-D_2-lyyt.js → onboard-DKDCWveE.js} +2 -2
  60. package/dist/{onboard-channels-CYlZtWF6.js → onboard-channels-BUCYZF02.js} +1 -1
  61. package/dist/{onboard-channels-BgA4i9TU.js → onboard-channels-sTuhQBVu.js} +1 -1
  62. package/dist/{onboarding-D7N2AfyJ.js → onboarding-Bgx0qZhA.js} +3 -3
  63. package/dist/{onboarding-uVLsv2Sd.js → onboarding-CokRRVEi.js} +3 -3
  64. package/dist/{onboarding.finalize-CTDv0xwp.js → onboarding.finalize-BCv5jB0d.js} +9 -9
  65. package/dist/{onboarding.finalize-DEjTjgRt.js → onboarding.finalize-BzEKyraI.js} +8 -8
  66. package/dist/{pi-embedded-HSRJqesT.js → pi-embedded-DXY7TLac.js} +27 -20
  67. package/dist/{pi-embedded-helpers-P13adotN.js → pi-embedded-helpers-D1_Sab0M.js} +4 -4
  68. package/dist/{pi-embedded-helpers-DjSdA5BG.js → pi-embedded-helpers-TcYQOZAY.js} +4 -4
  69. package/dist/{pi-tools.policy-BPVIDK7o.js → pi-tools.policy-BZrM6a-w.js} +8 -1
  70. package/dist/{pi-tools.policy-dbCkhLDL.js → pi-tools.policy-QIVWAVVI.js} +8 -1
  71. package/dist/{plugin-registry-Chvg6kT0.js → plugin-registry-B2cpTmJz.js} +1 -1
  72. package/dist/{plugin-registry-DEKq3ti3.js → plugin-registry-CyrsJDyE.js} +1 -1
  73. package/dist/plugin-sdk/{channel-web-CfaamthT.js → channel-web-t6enTxNE.js} +1 -1
  74. package/dist/plugin-sdk/index.js +3 -3
  75. package/dist/plugin-sdk/{manager-B3jEviU1.js → manager-LRE7zEk2.js} +1 -1
  76. package/dist/plugin-sdk/{reply-DWwxgBtH.js → reply-JypoGhql.js} +13 -6
  77. package/dist/plugin-sdk/{synthesis-C_u94H_P.js → synthesis-_WpVyZKx.js} +2 -2
  78. package/dist/plugin-sdk/{web-DFvYfej5.js → web-BTVj4kiQ.js} +3 -3
  79. package/dist/{plugins-cli-QZlpLtva.js → plugins-cli-B-zoQyqU.js} +5 -5
  80. package/dist/{plugins-cli-Cd99p333.js → plugins-cli-DJwRd3EZ.js} +5 -5
  81. package/dist/{program-viRCc6Je.js → program-H7h6Iqrq.js} +10 -10
  82. package/dist/{program-context-Dun-c3nf.js → program-context-BgecQAHU.js} +19 -19
  83. package/dist/{prompt-select-styled-DVLibGeR.js → prompt-select-styled-BDN2o35i.js} +6 -6
  84. package/dist/{prompt-select-styled-W2G26g34.js → prompt-select-styled-BglmD29e.js} +6 -6
  85. package/dist/{provider-auth-helpers-KFQclkJT.js → provider-auth-helpers-BGIgr7xM.js} +1 -1
  86. package/dist/{provider-auth-helpers-DCEiDG3X.js → provider-auth-helpers-MfKmTeLY.js} +1 -1
  87. package/dist/{push-apns-tfhjtI57.js → push-apns-IcfSTzfr.js} +1 -1
  88. package/dist/{push-apns-CB_8WzQ9.js → push-apns-b6bH1EBC.js} +1 -1
  89. package/dist/{pw-ai-CQtaPvM8.js → pw-ai-40Jf9QIb.js} +1 -1
  90. package/dist/{pw-ai-CeWN4iD9.js → pw-ai-DWkC5eGA.js} +1 -1
  91. package/dist/{register.agent--QTUjLu9.js → register.agent-BgyETrrj.js} +8 -8
  92. package/dist/{register.agent-i2wi1-vo.js → register.agent-ChwMSIC4.js} +9 -9
  93. package/dist/{register.configure-B9JysEK8.js → register.configure-Bm4CvoLF.js} +9 -9
  94. package/dist/{register.configure-ByJcC9t4.js → register.configure-DH3L2tqW.js} +9 -9
  95. package/dist/{register.maintenance-DqJL_QWT.js → register.maintenance-BbOBw1eI.js} +10 -10
  96. package/dist/{register.maintenance-BGiYxRYm.js → register.maintenance-CAyHUEzP.js} +11 -11
  97. package/dist/{register.message-G6-UeGON.js → register.message-DQ3MOWFE.js} +5 -5
  98. package/dist/{register.message-DT_TqsFl.js → register.message-DheqsiR0.js} +5 -5
  99. package/dist/{register.onboard-CfySx27T.js → register.onboard-CxqR4S1C.js} +7 -7
  100. package/dist/{register.onboard-848EXgTB.js → register.onboard-DOJkUhoY.js} +7 -7
  101. package/dist/{register.setup-B40A19lI.js → register.setup-48YBHzMZ.js} +7 -7
  102. package/dist/{register.setup-C-NYSAGY.js → register.setup-zdrIJA2P.js} +7 -7
  103. package/dist/{register.status-health-sessions-B03EDfwZ.js → register.status-health-sessions-CeT5pVXb.js} +7 -7
  104. package/dist/{register.status-health-sessions-BACExyrd.js → register.status-health-sessions-CimrhScH.js} +7 -7
  105. package/dist/{register.subclis-kF8KnNuq.js → register.subclis-B-zh940S.js} +10 -10
  106. package/dist/{reply-C5VU6T-F.js → reply-CUR4xpYM.js} +5 -5
  107. package/dist/{run-main-BqpvNq8c.js → run-main-CW_kj5Lj.js} +18 -18
  108. package/dist/{runner-Dpjulwnm.js → runner-DFuAePEr.js} +1 -1
  109. package/dist/{runner-D633VT13.js → runner-ecX1WzDt.js} +1 -1
  110. package/dist/{security-cli-ChPAyhec.js → security-cli-BpnzAB5_.js} +2 -2
  111. package/dist/{security-cli-Cq56CAVI.js → security-cli-D9WEiEjD.js} +2 -2
  112. package/dist/{server-methods-DjB0hxeW.js → server-methods-C1h0A5n0.js} +39 -15
  113. package/dist/{server-methods-CkLzZq0Y.js → server-methods-C4id-H_X.js} +39 -15
  114. package/dist/{server-node-events-BM-APRHy.js → server-node-events-BPZEGV_N.js} +5 -5
  115. package/dist/{server-node-events-ZgCh4sCg.js → server-node-events-CD2yDaEj.js} +5 -5
  116. package/dist/{status-WMQ2CpbK.js → status-Cb932Vl4.js} +4 -4
  117. package/dist/{status-C_gwgMp4.js → status-DCeW2a07.js} +4 -4
  118. package/dist/{status-BhQk3JSz.js → status-DvHD1cnq.js} +1 -1
  119. package/dist/{status-Nf53o222.js → status-_xBnHTlx.js} +1 -1
  120. package/dist/{subagent-registry-BCWbFTGF.js → subagent-registry-BKuL9PdW.js} +5 -5
  121. package/dist/{synthesis-VfWtSYrv.js → synthesis-BUqDGjlc.js} +7 -7
  122. package/dist/{synthesis-CJIAYDoU.js → synthesis-C9RputIi.js} +4 -4
  123. package/dist/{synthesis-CWsrtigA.js → synthesis-DOiTUsXQ.js} +7 -7
  124. package/dist/{synthesis-DIKBPZgB.js → synthesis-Ia9egx87.js} +4 -4
  125. package/dist/{unified-runner-yPBTU4xt.js → unified-runner-CVItnwwP.js} +27 -20
  126. package/dist/{update-cli-BCFHfhUW.js → update-cli-ChEABesZ.js} +11 -11
  127. package/dist/{update-cli-B_Mxicbw.js → update-cli-D6ax3jSX.js} +10 -10
  128. package/dist/{update-runner-DG5x7t--.js → update-runner-B2EY9BWM.js} +1 -1
  129. package/dist/{update-runner-BQJSshFU.js → update-runner-CWG6GxKs.js} +1 -1
  130. package/dist/{web-TVVa5EDS.js → web-CpSE67Jp.js} +5 -5
  131. package/dist/{web-Dpfsnk-b.js → web-D6PPeyG7.js} +4 -4
  132. package/dist/{web-eJWNRwV5.js → web-DMdb2p-h.js} +7 -7
  133. package/dist/{web-D9_FatXM.js → web-z-yQ8riS.js} +7 -7
  134. package/docs/reference/templates/AGENTS.md +14 -0
  135. package/extensions/bluebubbles/package.json +1 -1
  136. package/extensions/copilot-proxy/package.json +1 -1
  137. package/extensions/diagnostics-otel/package.json +1 -1
  138. package/extensions/discord/package.json +1 -1
  139. package/extensions/feishu/package.json +1 -1
  140. package/extensions/google-antigravity-auth/package.json +1 -1
  141. package/extensions/google-gemini-cli-auth/package.json +1 -1
  142. package/extensions/googlechat/package.json +1 -1
  143. package/extensions/imessage/package.json +1 -1
  144. package/extensions/irc/package.json +1 -1
  145. package/extensions/learning-loop/package.json +1 -1
  146. package/extensions/line/package.json +1 -1
  147. package/extensions/llm-task/package.json +1 -1
  148. package/extensions/matrix/CHANGELOG.md +12 -0
  149. package/extensions/matrix/package.json +1 -1
  150. package/extensions/mattermost/package.json +1 -1
  151. package/extensions/memory-core/package.json +1 -1
  152. package/extensions/memory-lancedb/package.json +1 -1
  153. package/extensions/minimax-portal-auth/package.json +1 -1
  154. package/extensions/msteams/CHANGELOG.md +12 -0
  155. package/extensions/msteams/package.json +1 -1
  156. package/extensions/nextcloud-talk/package.json +1 -1
  157. package/extensions/nostr/CHANGELOG.md +12 -0
  158. package/extensions/nostr/package.json +1 -1
  159. package/extensions/open-prose/package.json +1 -1
  160. package/extensions/outlook/index.ts +81 -7
  161. package/extensions/outlook/package.json +1 -1
  162. package/extensions/outlook/src/store.ts +118 -11
  163. package/extensions/pipeline/package.json +1 -1
  164. package/extensions/signal/package.json +1 -1
  165. package/extensions/slack/package.json +1 -1
  166. package/extensions/telegram/package.json +1 -1
  167. package/extensions/tlon/package.json +1 -1
  168. package/extensions/twitch/CHANGELOG.md +12 -0
  169. package/extensions/twitch/package.json +1 -1
  170. package/extensions/voice-call/CHANGELOG.md +12 -0
  171. package/extensions/voice-call/package.json +1 -1
  172. package/extensions/whatsapp/package.json +1 -1
  173. package/extensions/zalo/CHANGELOG.md +12 -0
  174. package/extensions/zalo/package.json +1 -1
  175. package/extensions/zalouser/CHANGELOG.md +12 -0
  176. package/extensions/zalouser/package.json +1 -1
  177. package/package.json +1 -1
@@ -14,7 +14,7 @@ import "./client-qUlxXXVJ.js";
14
14
  import "./call-BrRWr7Lj.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-BCWbFTGF.js";
17
+ import "./subagent-registry-BKuL9PdW.js";
18
18
  import "./sessions-BPD85pWA.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
52
52
  import "./thinking-8sKPnzpp.js";
53
53
  import "./models-config-J1x_DaPn.js";
54
54
  import "./reply-prefix-BUN71nd5.js";
55
- import "./memory-cli-r-ulsUBa.js";
56
- import "./manager-BxJ9BhQe.js";
55
+ import "./memory-cli-BgJciaHC.js";
56
+ import "./manager-CLrJn9l-.js";
57
57
  import "./gemini-auth-DEakvf-D.js";
58
58
  import "./retry-C4Q_VPOo.js";
59
59
  import "./sqlite-BP8tiuca.js";
@@ -97,14 +97,14 @@ import "./replies-Sxbew659.js";
97
97
  import "./onboard-helpers-CF0Cp3OB.js";
98
98
  import "./prompt-style-BxVdnrLq.js";
99
99
  import "./pairing-labels-BHx_CdbP.js";
100
- import "./pi-tools.policy-dbCkhLDL.js";
100
+ import "./pi-tools.policy-QIVWAVVI.js";
101
101
  import { t as ensureSymiCliOnPath } from "./path-env-CaiY2aOj.js";
102
102
  import "./catalog-KcLvtTfa.js";
103
103
  import "./note-DewoEWtc.js";
104
104
  import "./plugin-auto-enable-pQEg2Mly.js";
105
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Chvg6kT0.js";
105
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-B2cpTmJz.js";
106
106
  import { t as assertSupportedRuntime } from "./runtime-guard-BofkqBu7.js";
107
- import { t as emitCliBanner } from "./banner-BFr8n0of.js";
107
+ import { t as emitCliBanner } from "./banner-BFdiq-O5.js";
108
108
  import "./doctor-config-flow-B2dVxbL7.js";
109
109
  import { n as ensureConfigReady } from "./config-guard-BvqCjFPk.js";
110
110
  import process$1 from "node:process";
@@ -119,7 +119,7 @@ const routeHealth = {
119
119
  const verbose = getVerboseFlag(argv, { includeDebug: true });
120
120
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
121
121
  if (timeoutMs === null) return false;
122
- const { healthCommand } = await import("./health-D-0xOxV8.js").then((n) => n.i);
122
+ const { healthCommand } = await import("./health-C12hy3Ao.js").then((n) => n.i);
123
123
  await healthCommand({
124
124
  json,
125
125
  timeoutMs,
@@ -139,7 +139,7 @@ const routeStatus = {
139
139
  const verbose = getVerboseFlag(argv, { includeDebug: true });
140
140
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
141
141
  if (timeoutMs === null) return false;
142
- const { statusCommand } = await import("./status-WMQ2CpbK.js").then((n) => n.t);
142
+ const { statusCommand } = await import("./status-Cb932Vl4.js").then((n) => n.t);
143
143
  await statusCommand({
144
144
  json,
145
145
  deep,
@@ -173,7 +173,7 @@ const routeAgentsList = {
173
173
  run: async (argv) => {
174
174
  const json = hasFlag(argv, "--json");
175
175
  const bindings = hasFlag(argv, "--bindings");
176
- const { agentsListCommand } = await import("./agents-BbVxJTp2.js").then((n) => n.t);
176
+ const { agentsListCommand } = await import("./agents-OAonMxYV.js").then((n) => n.t);
177
177
  await agentsListCommand({
178
178
  json,
179
179
  bindings
@@ -190,7 +190,7 @@ const routeMemoryStatus = {
190
190
  const deep = hasFlag(argv, "--deep");
191
191
  const index = hasFlag(argv, "--index");
192
192
  const verbose = hasFlag(argv, "--verbose");
193
- const { runMemoryStatus } = await import("./memory-cli-r-ulsUBa.js").then((n) => n.t);
193
+ const { runMemoryStatus } = await import("./memory-cli-BgJciaHC.js").then((n) => n.t);
194
194
  await runMemoryStatus({
195
195
  agent,
196
196
  json,
@@ -244,7 +244,7 @@ const routes = [
244
244
  const pathArg = getCommandPositionals(argv)[2];
245
245
  if (!pathArg) return false;
246
246
  const json = hasFlag(argv, "--json");
247
- const { runConfigGet } = await import("./config-cli-Dm2QMcwn.js");
247
+ const { runConfigGet } = await import("./config-cli-C_uZQsTl.js");
248
248
  await runConfigGet({
249
249
  path: pathArg,
250
250
  json
@@ -257,7 +257,7 @@ const routes = [
257
257
  run: async (argv) => {
258
258
  const pathArg = getCommandPositionals(argv)[2];
259
259
  if (!pathArg) return false;
260
- const { runConfigUnset } = await import("./config-cli-Dm2QMcwn.js");
260
+ const { runConfigUnset } = await import("./config-cli-C_uZQsTl.js");
261
261
  await runConfigUnset({ path: pathArg });
262
262
  return true;
263
263
  }
@@ -271,7 +271,7 @@ const routes = [
271
271
  const local = hasFlag(argv, "--local");
272
272
  const json = hasFlag(argv, "--json");
273
273
  const plain = hasFlag(argv, "--plain");
274
- const { modelsListCommand } = await import("./models-B1__62Qo.js").then((n) => n.t);
274
+ const { modelsListCommand } = await import("./models-BXXV_sZU.js").then((n) => n.t);
275
275
  await modelsListCommand({
276
276
  all,
277
277
  local,
@@ -302,7 +302,7 @@ const routes = [
302
302
  const plain = hasFlag(argv, "--plain");
303
303
  const check = hasFlag(argv, "--check");
304
304
  const probe = hasFlag(argv, "--probe");
305
- const { modelsStatusCommand } = await import("./models-B1__62Qo.js").then((n) => n.t);
305
+ const { modelsStatusCommand } = await import("./models-BXXV_sZU.js").then((n) => n.t);
306
306
  await modelsStatusCommand({
307
307
  json,
308
308
  plain,
@@ -380,7 +380,7 @@ async function runCli(argv = process$1.argv) {
380
380
  assertSupportedRuntime();
381
381
  if (await tryRouteCli(normalizedArgv)) return;
382
382
  enableConsoleCapture();
383
- const { buildProgram } = await import("./program-viRCc6Je.js");
383
+ const { buildProgram } = await import("./program-H7h6Iqrq.js");
384
384
  const program = buildProgram();
385
385
  installUnhandledRejectionHandler();
386
386
  process$1.on("uncaughtException", (error) => {
@@ -412,10 +412,10 @@ async function runCli(argv = process$1.argv) {
412
412
  const { getProgramContext } = await import("./program-context-DeZ44oQ9.js").then((n) => n.n);
413
413
  const ctx = getProgramContext(program);
414
414
  if (ctx) {
415
- const { registerCoreCliByName } = await import("./command-registry-B6spVZMd.js").then((n) => n.t);
415
+ const { registerCoreCliByName } = await import("./command-registry-D1Le-Fmh.js").then((n) => n.t);
416
416
  await registerCoreCliByName(program, ctx, primary, parseArgv);
417
417
  }
418
- const { registerSubCliByName } = await import("./register.subclis-kF8KnNuq.js").then((n) => n.a);
418
+ const { registerSubCliByName } = await import("./register.subclis-B-zh940S.js").then((n) => n.a);
419
419
  await registerSubCliByName(program, primary);
420
420
  }
421
421
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -424,7 +424,7 @@ async function runCli(argv = process$1.argv) {
424
424
  primary,
425
425
  hasBuiltinPrimary
426
426
  })) {
427
- const { registerPluginCliCommands } = await import("./cli-NfoZJEPh.js");
427
+ const { registerPluginCliCommands } = await import("./cli-CKG2iAr3.js");
428
428
  const { loadConfig } = await import("./config-DXt3pc08.js").then((n) => n.t);
429
429
  registerPluginCliCommands(program, loadConfig());
430
430
  }
@@ -4,7 +4,7 @@ import { G as resolveSymiAgentDir, T as resolveApiKeyForProvider, c as normalize
4
4
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
5
5
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-ByaQt43P.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BAVNLbja.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-tzIqIuKx.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-MNvheU8U.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-DVcG-42i.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-DwuL9y6C.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-BuSWcEvl.js";
@@ -4,7 +4,7 @@ import { A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normal
4
4
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-BkZ9HOKT.js";
5
5
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-C7CauEK8.js";
6
6
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-C6rCON9L.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-BuVL0jHI.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-BefM10YB.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-CVCBkyv1.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-ClipCZ9s.js";
@@ -42,10 +42,10 @@ import "./workspace-dirs-DVn-uDvF.js";
42
42
  import { i as readChannelAllowFromStore } from "./pairing-store-B2viSnRj.js";
43
43
  import { t as formatDocsLink } from "./links-CxyMXTsn.js";
44
44
  import { t as formatHelpExamples } from "./help-format-nY42tGMB.js";
45
- import "./pi-tools.policy-dbCkhLDL.js";
45
+ import "./pi-tools.policy-QIVWAVVI.js";
46
46
  import "./dangerous-tools-Cw6NBIXW.js";
47
47
  import "./skill-scanner-BV3QHmsf.js";
48
- import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-F5zQ_Wk9.js";
48
+ import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-Oa5dsn5p.js";
49
49
  import "./dm-policy-shared-JiSNSaKz.js";
50
50
  import path from "node:path";
51
51
  import fs from "node:fs/promises";
@@ -47,10 +47,10 @@ import { i as readChannelAllowFromStore } from "./pairing-store-iAT1if6k.js";
47
47
  import { t as formatDocsLink } from "./links-DGINhC21.js";
48
48
  import { t as formatHelpExamples } from "./help-format-aBw2-Z6l.js";
49
49
  import "./workspace-dirs-DHPWGRDp.js";
50
- import "./pi-tools.policy-BPVIDK7o.js";
50
+ import "./pi-tools.policy-BZrM6a-w.js";
51
51
  import "./dangerous-tools-m4gs9MB5.js";
52
52
  import "./skill-scanner-BTgjeQBf.js";
53
- import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-CNU0I_UT.js";
53
+ import { i as collectIncludePathsRecursive, n as createIcaclsResetCommand, r as formatIcaclsResetCommand, t as runSecurityAudit } from "./audit-Bi9Je9FZ.js";
54
54
  import "./dm-policy-shared-KlzpDeT_.js";
55
55
  import path from "node:path";
56
56
  import fs from "node:fs/promises";
@@ -12,7 +12,7 @@ import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessa
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-BCWbFTGF.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-BKuL9PdW.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-BuIx7QnX.js";
@@ -36,15 +36,15 @@ import { t as buildChannelUiCatalog } from "./catalog-KcLvtTfa.js";
36
36
  import { t as WizardCancelledError } from "./prompts-DbHSz44H.js";
37
37
  import { t as resolveChannelDefaultAccountId } from "./helpers-gWnZ9zWR.js";
38
38
  import { t as buildChannelAccountSnapshot } from "./status-B8TZsG0t.js";
39
- import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-F5zQ_Wk9.js";
40
- import { r as getStatusSummary } from "./status-WMQ2CpbK.js";
41
- import { c as setHeartbeatsEnabled } from "./health-D-0xOxV8.js";
39
+ import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-Oa5dsn5p.js";
40
+ import { r as getStatusSummary } from "./status-Cb932Vl4.js";
41
+ import { c as setHeartbeatsEnabled } from "./health-C12hy3Ao.js";
42
42
  import { m as normalizeUpdateChannel } from "./update-check-BNjupSIM.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-tfhjtI57.js";
44
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-LE2JxgiS.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-IcfSTzfr.js";
44
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BIhaDwT2.js";
45
45
  import { t as resolveSystemRunCommand } from "./system-run-command-B_qw8CXP.js";
46
46
  import { t as installSkill } from "./skills-install-BnEN_qla.js";
47
- import { t as runGatewayUpdate } from "./update-runner-BQJSshFU.js";
47
+ import { t as runGatewayUpdate } from "./update-runner-CWG6GxKs.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";
@@ -3365,11 +3365,24 @@ const browserHandlers = { "browser.request": async ({ params, respond, context }
3365
3365
 
3366
3366
  //#endregion
3367
3367
  //#region src/gateway/server-methods/channels.ts
3368
+ /**
3369
+ * Same 24h window as extensions/outlook/src/store.ts:REFRESH_TRUST_WINDOW_MS.
3370
+ * Kept in sync by convention rather than shared import — importing from an
3371
+ * extension into gateway code would invert the dependency direction. If
3372
+ * either value changes, update the other.
3373
+ */
3374
+ const OUTLOOK_REFRESH_TRUST_WINDOW_MS = 1440 * 60 * 1e3;
3375
+ function resolveOutlookHome() {
3376
+ const home = os.homedir();
3377
+ if (home && home.length > 0) return home;
3378
+ return process.env.HOME || process.env.USERPROFILE || null;
3379
+ }
3368
3380
  function readOutlookConnectionState() {
3369
- const home = process.env.HOME || process.env.USERPROFILE;
3381
+ const home = resolveOutlookHome();
3370
3382
  if (!home) return {
3371
3383
  configured: false,
3372
- connected: false
3384
+ connected: false,
3385
+ connectionState: "not-connected"
3373
3386
  };
3374
3387
  const credsPath = path.join(home, ".symi", "credentials", "outlook.json");
3375
3388
  let raw;
@@ -3378,7 +3391,9 @@ function readOutlookConnectionState() {
3378
3391
  } catch {
3379
3392
  return {
3380
3393
  configured: false,
3381
- connected: false
3394
+ connected: false,
3395
+ connectionState: "not-connected",
3396
+ credentialsPath: credsPath
3382
3397
  };
3383
3398
  }
3384
3399
  let creds;
@@ -3387,21 +3402,30 @@ function readOutlookConnectionState() {
3387
3402
  } catch {
3388
3403
  return {
3389
3404
  configured: true,
3390
- connected: false
3405
+ connected: false,
3406
+ connectionState: "not-connected",
3407
+ credentialsPath: credsPath
3391
3408
  };
3392
3409
  }
3393
3410
  const expires = typeof creds.expires === "number" ? creds.expires : 0;
3394
3411
  const hasRefresh = typeof creds.refresh === "string" && creds.refresh.length > 0;
3395
- const notExpired = Date.now() < expires;
3396
- const connected = notExpired || hasRefresh;
3412
+ const lastVerifiedAtMs = typeof creds.lastVerifiedAt === "number" ? creds.lastVerifiedAt : void 0;
3413
+ const now = Date.now();
3414
+ const notExpired = now < expires;
3415
+ const recentlyVerified = typeof lastVerifiedAtMs === "number" && now - lastVerifiedAtMs < OUTLOOK_REFRESH_TRUST_WINDOW_MS;
3416
+ const connectionState = notExpired ? "valid" : recentlyVerified ? "trusted" : hasRefresh ? "stale" : "not-connected";
3417
+ const connected = connectionState !== "not-connected";
3397
3418
  const tokenState = notExpired ? "valid" : hasRefresh ? "expired-will-refresh" : "expired-no-refresh";
3398
3419
  return {
3399
3420
  configured: true,
3400
3421
  connected,
3422
+ connectionState,
3401
3423
  email: typeof creds.email === "string" ? creds.email : void 0,
3402
3424
  displayName: typeof creds.displayName === "string" ? creds.displayName : void 0,
3403
3425
  tokenState,
3404
- updatedAt: typeof creds.updatedAt === "string" ? creds.updatedAt : void 0
3426
+ updatedAt: typeof creds.updatedAt === "string" ? creds.updatedAt : void 0,
3427
+ lastVerifiedAt: typeof lastVerifiedAtMs === "number" ? new Date(lastVerifiedAtMs).toISOString() : void 0,
3428
+ credentialsPath: credsPath
3405
3429
  };
3406
3430
  }
3407
3431
  async function logoutChannelAccount(params) {
@@ -7422,7 +7446,7 @@ const nodeHandlers = {
7422
7446
  const p = params;
7423
7447
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7424
7448
  await respondUnavailableOnThrow(respond, async () => {
7425
- const { handleNodeEvent } = await import("./server-node-events-ZgCh4sCg.js");
7449
+ const { handleNodeEvent } = await import("./server-node-events-CD2yDaEj.js");
7426
7450
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7427
7451
  await handleNodeEvent({
7428
7452
  deps: context.deps,
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-C5VU6T-F.js";
4
+ import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-CUR4xpYM.js";
5
5
  import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
@@ -38,15 +38,15 @@ import { t as buildWorkspaceSkillStatus } from "./skills-status-D1IW8MhS.js";
38
38
  import { t as WizardCancelledError } from "./prompts-NOUgk6FH.js";
39
39
  import { t as resolveChannelDefaultAccountId } from "./helpers-D-MrrYmt.js";
40
40
  import { t as buildChannelAccountSnapshot } from "./status-TtGsgDjP.js";
41
- import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-CNU0I_UT.js";
42
- import { n as getStatusSummary } from "./status-C_gwgMp4.js";
43
- import { s as setHeartbeatsEnabled } from "./health-BAjSATWA.js";
41
+ import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-Bi9Je9FZ.js";
42
+ import { n as getStatusSummary } from "./status-DCeW2a07.js";
43
+ import { s as setHeartbeatsEnabled } from "./health-vKJZ7iJR.js";
44
44
  import { m as normalizeUpdateChannel } from "./update-check-Bbvpax6u.js";
45
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CB_8WzQ9.js";
46
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DckCExUX.js";
45
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-b6bH1EBC.js";
46
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-DGu_K5xz.js";
47
47
  import { t as resolveSystemRunCommand } from "./system-run-command-DKiCEPJc.js";
48
48
  import { t as installSkill } from "./skills-install-B8r7cGKR.js";
49
- import { t as runGatewayUpdate } from "./update-runner-DG5x7t--.js";
49
+ import { t as runGatewayUpdate } from "./update-runner-B2EY9BWM.js";
50
50
  import * as fs$2 from "node:fs";
51
51
  import fs from "node:fs";
52
52
  import * as os$1 from "node:os";
@@ -3367,11 +3367,24 @@ const browserHandlers = { "browser.request": async ({ params, respond, context }
3367
3367
 
3368
3368
  //#endregion
3369
3369
  //#region src/gateway/server-methods/channels.ts
3370
+ /**
3371
+ * Same 24h window as extensions/outlook/src/store.ts:REFRESH_TRUST_WINDOW_MS.
3372
+ * Kept in sync by convention rather than shared import — importing from an
3373
+ * extension into gateway code would invert the dependency direction. If
3374
+ * either value changes, update the other.
3375
+ */
3376
+ const OUTLOOK_REFRESH_TRUST_WINDOW_MS = 1440 * 60 * 1e3;
3377
+ function resolveOutlookHome() {
3378
+ const home = os.homedir();
3379
+ if (home && home.length > 0) return home;
3380
+ return process.env.HOME || process.env.USERPROFILE || null;
3381
+ }
3370
3382
  function readOutlookConnectionState() {
3371
- const home = process.env.HOME || process.env.USERPROFILE;
3383
+ const home = resolveOutlookHome();
3372
3384
  if (!home) return {
3373
3385
  configured: false,
3374
- connected: false
3386
+ connected: false,
3387
+ connectionState: "not-connected"
3375
3388
  };
3376
3389
  const credsPath = path.join(home, ".symi", "credentials", "outlook.json");
3377
3390
  let raw;
@@ -3380,7 +3393,9 @@ function readOutlookConnectionState() {
3380
3393
  } catch {
3381
3394
  return {
3382
3395
  configured: false,
3383
- connected: false
3396
+ connected: false,
3397
+ connectionState: "not-connected",
3398
+ credentialsPath: credsPath
3384
3399
  };
3385
3400
  }
3386
3401
  let creds;
@@ -3389,21 +3404,30 @@ function readOutlookConnectionState() {
3389
3404
  } catch {
3390
3405
  return {
3391
3406
  configured: true,
3392
- connected: false
3407
+ connected: false,
3408
+ connectionState: "not-connected",
3409
+ credentialsPath: credsPath
3393
3410
  };
3394
3411
  }
3395
3412
  const expires = typeof creds.expires === "number" ? creds.expires : 0;
3396
3413
  const hasRefresh = typeof creds.refresh === "string" && creds.refresh.length > 0;
3397
- const notExpired = Date.now() < expires;
3398
- const connected = notExpired || hasRefresh;
3414
+ const lastVerifiedAtMs = typeof creds.lastVerifiedAt === "number" ? creds.lastVerifiedAt : void 0;
3415
+ const now = Date.now();
3416
+ const notExpired = now < expires;
3417
+ const recentlyVerified = typeof lastVerifiedAtMs === "number" && now - lastVerifiedAtMs < OUTLOOK_REFRESH_TRUST_WINDOW_MS;
3418
+ const connectionState = notExpired ? "valid" : recentlyVerified ? "trusted" : hasRefresh ? "stale" : "not-connected";
3419
+ const connected = connectionState !== "not-connected";
3399
3420
  const tokenState = notExpired ? "valid" : hasRefresh ? "expired-will-refresh" : "expired-no-refresh";
3400
3421
  return {
3401
3422
  configured: true,
3402
3423
  connected,
3424
+ connectionState,
3403
3425
  email: typeof creds.email === "string" ? creds.email : void 0,
3404
3426
  displayName: typeof creds.displayName === "string" ? creds.displayName : void 0,
3405
3427
  tokenState,
3406
- updatedAt: typeof creds.updatedAt === "string" ? creds.updatedAt : void 0
3428
+ updatedAt: typeof creds.updatedAt === "string" ? creds.updatedAt : void 0,
3429
+ lastVerifiedAt: typeof lastVerifiedAtMs === "number" ? new Date(lastVerifiedAtMs).toISOString() : void 0,
3430
+ credentialsPath: credsPath
3407
3431
  };
3408
3432
  }
3409
3433
  async function logoutChannelAccount(params) {
@@ -7424,7 +7448,7 @@ const nodeHandlers = {
7424
7448
  const p = params;
7425
7449
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7426
7450
  await respondUnavailableOnThrow(respond, async () => {
7427
- const { handleNodeEvent } = await import("./server-node-events-BM-APRHy.js");
7451
+ const { handleNodeEvent } = await import("./server-node-events-BPZEGV_N.js");
7428
7452
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7429
7453
  await handleNodeEvent({
7430
7454
  deps: context.deps,
@@ -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-C5VU6T-F.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-CUR4xpYM.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";
@@ -61,8 +61,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
61
61
  import "./send-DpMnSIi5.js";
62
62
  import "./model-ECsJuJew.js";
63
63
  import "./reply-prefix-CE2YmmsD.js";
64
- import "./memory-cli-BQZ0rTKC.js";
65
- import "./manager-BpvcDr-7.js";
64
+ import "./memory-cli-T-a5-lqZ.js";
65
+ import "./manager-BJvYQ7xP.js";
66
66
  import "./retry-BoS4e4X_.js";
67
67
  import "./sqlite-D55gRQbH.js";
68
68
  import "./target-errors-C9e6dMU_.js";
@@ -99,11 +99,11 @@ import "./prompt-style-Y2J72w6p.js";
99
99
  import "./pairing-labels-CTL1gXZb.js";
100
100
  import "./exec-approvals-DEigTi7M.js";
101
101
  import "./nodes-screen-BZS89z6C.js";
102
- import "./pi-tools.policy-BPVIDK7o.js";
102
+ import "./pi-tools.policy-BZrM6a-w.js";
103
103
  import "./control-service-C0pRqIFv.js";
104
104
  import "./stagger-CZ1Rrj7O.js";
105
105
  import "./channel-selection-9fIQGtZy.js";
106
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-CB_8WzQ9.js";
106
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-b6bH1EBC.js";
107
107
  import { randomUUID } from "node:crypto";
108
108
 
109
109
  //#region src/gateway/server-node-events.ts
@@ -15,7 +15,7 @@ import "./client-qUlxXXVJ.js";
15
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-BCWbFTGF.js";
18
+ import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-BKuL9PdW.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";
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
53
53
  import "./thinking-8sKPnzpp.js";
54
54
  import "./models-config-J1x_DaPn.js";
55
55
  import "./reply-prefix-BUN71nd5.js";
56
- import "./memory-cli-r-ulsUBa.js";
57
- import "./manager-BxJ9BhQe.js";
56
+ import "./memory-cli-BgJciaHC.js";
57
+ import "./manager-CLrJn9l-.js";
58
58
  import "./gemini-auth-DEakvf-D.js";
59
59
  import "./retry-C4Q_VPOo.js";
60
60
  import "./sqlite-BP8tiuca.js";
@@ -98,8 +98,8 @@ import "./replies-Sxbew659.js";
98
98
  import "./onboard-helpers-CF0Cp3OB.js";
99
99
  import "./prompt-style-BxVdnrLq.js";
100
100
  import "./pairing-labels-BHx_CdbP.js";
101
- import "./pi-tools.policy-dbCkhLDL.js";
102
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-tfhjtI57.js";
101
+ import "./pi-tools.policy-QIVWAVVI.js";
102
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-IcfSTzfr.js";
103
103
  import { randomUUID } from "node:crypto";
104
104
 
105
105
  //#region src/gateway/server-node-events.ts
@@ -9,13 +9,13 @@ 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
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-BCWbFTGF.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-BKuL9PdW.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";
16
16
  import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXbwLq.js";
17
17
  import { c as resolveStorePath } from "./paths-DNdWAq7b.js";
18
- import { r as getMemorySearchManager } from "./memory-cli-r-ulsUBa.js";
18
+ import { r as getMemorySearchManager } from "./memory-cli-BgJciaHC.js";
19
19
  import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
20
20
  import { l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsForGateway, u as lookupContextTokens } from "./session-utils-DaBIs243.js";
21
21
  import { o as getRemoteSkillEligibility } from "./skill-commands-DrX4xCNq.js";
@@ -28,8 +28,8 @@ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
28
28
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-DJYthOLz.js";
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-C6xPE2ln.js";
30
30
  import { t as renderTable } from "./table-Bka4fasy.js";
31
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-F5zQ_Wk9.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-D-0xOxV8.js";
31
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Oa5dsn5p.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-C12hy3Ao.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-BNjupSIM.js";
34
34
  import { t as resolveNodeService } from "./node-service-B-qdOCNb.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-yQZNwAF2.js";
@@ -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-C5VU6T-F.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-CUR4xpYM.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";
@@ -13,7 +13,7 @@ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtx
13
13
  import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-BeYHj0gr.js";
14
14
  import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
15
15
  import { c as resolveStorePath } from "./paths-CyhzMxFA.js";
16
- import { r as getMemorySearchManager } from "./memory-cli-BQZ0rTKC.js";
16
+ import { r as getMemorySearchManager } from "./memory-cli-T-a5-lqZ.js";
17
17
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-Cmb04dff.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-CviDPm2s.js";
19
19
  import { n as withProgress } from "./progress-WhkkDU0H.js";
@@ -27,8 +27,8 @@ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
27
27
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D0P5lDGf.js";
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-1uBuB9IE.js";
29
29
  import { t as renderTable } from "./table-BWuvjnmY.js";
30
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-CNU0I_UT.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BAjSATWA.js";
30
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Bi9Je9FZ.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-vKJZ7iJR.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-Bbvpax6u.js";
33
33
  import { t as resolveNodeService } from "./node-service-DxPZ_ZFk.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DNqZrSx7.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-BCWbFTGF.js";
4
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-BKuL9PdW.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -1,4 +1,4 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-C5VU6T-F.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-CUR4xpYM.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";
@@ -50,8 +50,8 @@ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as san
50
50
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
51
51
  import { t as ensureSymiModelsJson } from "./models-config-J1x_DaPn.js";
52
52
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
53
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-r-ulsUBa.js";
54
- import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-BxJ9BhQe.js";
53
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BgJciaHC.js";
54
+ import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-CLrJn9l-.js";
55
55
  import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
56
56
  import { n as retryAsync } from "./retry-C4Q_VPOo.js";
57
57
  import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
@@ -95,7 +95,7 @@ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliv
95
95
  import { r as detectBinary } from "./onboard-helpers-CF0Cp3OB.js";
96
96
  import { t as resolvePairingIdLabel } from "./pairing-labels-BHx_CdbP.js";
97
97
  import { t as getActiveWebListener } from "./active-listener-DEi7sEFa.js";
98
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-dbCkhLDL.js";
98
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-QIVWAVVI.js";
99
99
  import { createRequire } from "node:module";
100
100
  import { execFileSync, spawn, spawnSync } from "node:child_process";
101
101
  import os, { homedir } from "node:os";
@@ -53585,7 +53585,7 @@ function isVoiceChannelType(type) {
53585
53585
  function createDefaultDeps() {
53586
53586
  return {
53587
53587
  sendMessageWhatsApp: async (...args) => {
53588
- const { sendMessageWhatsApp } = await import("./web-Dpfsnk-b.js");
53588
+ const { sendMessageWhatsApp } = await import("./web-D6PPeyG7.js");
53589
53589
  return await sendMessageWhatsApp(...args);
53590
53590
  },
53591
53591
  sendMessageTelegram: async (...args) => {
@@ -68899,7 +68899,7 @@ function loadWebLoginQr() {
68899
68899
  return webLoginQrPromise;
68900
68900
  }
68901
68901
  function loadWebChannel() {
68902
- webChannelPromise ??= import("./web-Dpfsnk-b.js");
68902
+ webChannelPromise ??= import("./web-D6PPeyG7.js");
68903
68903
  return webChannelPromise;
68904
68904
  }
68905
68905
  function loadWhatsAppActions() {