@symerian/symi 3.0.3 → 3.0.4

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 (211) hide show
  1. package/dist/{accounts-3dCrO3oZ.js → accounts-BaIiyR_C.js} +1 -1
  2. package/dist/{accounts-BRw8yhIW.js → accounts-D5o2mAKN.js} +3 -3
  3. package/dist/{accounts-BuZxOb3B.js → accounts-nSMFGcjE.js} +1 -1
  4. package/dist/{active-listener-BVZOh2T1.js → active-listener-u0n6lV-h.js} +1 -1
  5. package/dist/{agent-scope-Ddr0Ws7u.js → agent-scope-CEzt6H9x.js} +2 -2
  6. package/dist/{audio-preflight-DrG2ef4O.js → audio-preflight-CWHghOEi.js} +26 -26
  7. package/dist/{audio-preflight-BrKBM7JM.js → audio-preflight-Cje-A0Fs.js} +4 -4
  8. package/dist/{auth-profiles-Bs0Z0FzU.js → auth-profiles-BoHFXe5T.js} +4 -4
  9. package/dist/{bindings-D43o9y2s.js → bindings-B1fUDYvC.js} +2 -2
  10. package/dist/build-info.json +3 -3
  11. package/dist/bundled/boot-md/handler.js +51 -51
  12. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  13. package/dist/bundled/session-memory/handler.js +51 -51
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-activity-D8QD7GoV.js → channel-activity-cK3ZB6TE.js} +1 -1
  16. package/dist/{chrome-X5wmeW9f.js → chrome-BK_P1Tqm.js} +10 -10
  17. package/dist/{chrome-WfENE6tB.js → chrome-DaduLVA1.js} +7 -7
  18. package/dist/{chunk-BRe1o4Af.js → chunk-BMvnM1K5.js} +1 -1
  19. package/dist/{command-registry-BRN6NMOS.js → command-registry-CsiR9i7E.js} +7 -7
  20. package/dist/{commands-registry-Tug42snN.js → commands-registry-D0jEfZ42.js} +4 -4
  21. package/dist/{completion-cli-CQtI0ASD.js → completion-cli-Bon9_6qA.js} +2 -2
  22. package/dist/{completion-cli-EvxmKJ-O.js → completion-cli-Dnyp6OJy.js} +1 -1
  23. package/dist/{config-CCbXer2L.js → config-BmrykwKO.js} +9 -9
  24. package/dist/{config-cli-CiV_YQf4.js → config-cli-BebhyWjM.js} +1 -1
  25. package/dist/{config-cli-DeCSlj0Y.js → config-cli-DqfKE_A1.js} +1 -1
  26. package/dist/{configure-By6_8Jvs.js → configure-DB-1UY2t.js} +1 -1
  27. package/dist/{configure-BE0YRZWd.js → configure-HMRPjIFX.js} +1 -1
  28. package/dist/{consolidate-tpfmfqvr.js → consolidate-DT78djL9.js} +2 -2
  29. package/dist/control-ui/js/app.js +6 -2
  30. package/dist/{deliver-DShQE_sq.js → deliver-B6vfVmif.js} +1 -1
  31. package/dist/{deliver-BfgRx_NK.js → deliver-DbgdviSo.js} +9 -9
  32. package/dist/{diagnostic-BjfiehUF.js → diagnostic-B0Ynd2kf.js} +1 -1
  33. package/dist/{doctor-completion-Cts2UOop.js → doctor-completion-D6U7k8ef.js} +1 -1
  34. package/dist/{doctor-completion-BmjVxgkV.js → doctor-completion-DlvHamvv.js} +1 -1
  35. package/dist/entry.js +1 -1
  36. package/dist/{env-BDXYbTKj.js → env-D9chTL63.js} +1 -1
  37. package/dist/extensionAPI.js +7 -7
  38. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-BbIorbzs.js} +2 -2
  39. package/dist/{gateway-cli-DO4uSyVT.js → gateway-cli-CX6HdZS6.js} +7 -6
  40. package/dist/{gateway-cli-bu8Eq_hB.js → gateway-cli-ms7HH0-P.js} +7 -6
  41. package/dist/{gemini-auth-Cl5PvzLM.js → gemini-auth-D9vLhghA.js} +1 -1
  42. package/dist/{glass-ui-ws-CUWkP3XZ.js → glass-ui-ws-7O88M05N.js} +3 -3
  43. package/dist/{glass-ui-ws-oxSeDi37.js → glass-ui-ws-b6N_1b40.js} +3 -3
  44. package/dist/{health-DZB8SV6G.js → health-_G7Dy5sq.js} +46 -16
  45. package/dist/{health-N-jvgpZZ.js → health-xGaC5l7K.js} +46 -16
  46. package/dist/{image-DfzwGNoa.js → image-C12-WOMI.js} +1 -1
  47. package/dist/{image-C2w5iw4N.js → image-D1wT_m5z.js} +4 -4
  48. package/dist/{image-ops-DFFGK0lW.js → image-ops-DuOHpA9U.js} +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/{ir-CC6LUYsV.js → ir-BpwvHMZb.js} +4 -4
  51. package/dist/llm-slug-generator.js +51 -51
  52. package/dist/{local-roots-jzqRdkXA.js → local-roots-BacHGRfJ.js} +4 -4
  53. package/dist/{login-DHJnG8aX.js → login-C9Nfj1r0.js} +7 -7
  54. package/dist/{login-qr-UB9DGMzi.js → login-qr-n2FhZV37.js} +10 -10
  55. package/dist/{manager-2D0Tevoj.js → manager-C2jDmkaH.js} +9 -9
  56. package/dist/{manager-Dp_9v8j5.js → manager-C8BydiE8.js} +1 -1
  57. package/dist/{manifest-registry-CBCGTsIb.js → manifest-registry-2WUbwZgO.js} +1 -1
  58. package/dist/{markdown-tables-bViwuQKQ.js → markdown-tables-stYj7BCB.js} +1 -1
  59. package/dist/{message-channel-OlFBYAw8.js → message-channel-w9cWbx_W.js} +1 -1
  60. package/dist/{onboard-DeH6Vxxg.js → onboard-B0Y1u3vK.js} +2 -2
  61. package/dist/{onboard-Bl0XFCEJ.js → onboard-Db6LQ1SN.js} +2 -2
  62. package/dist/{onboarding-BZVJ24wI.js → onboarding-BSvR9bkU.js} +1 -1
  63. package/dist/{onboarding-DgpTBpWU.js → onboarding-DTs0CtTa.js} +1 -1
  64. package/dist/{onboarding.finalize-DVSMLcSy.js → onboarding.finalize-BCiHVrC3.js} +4 -4
  65. package/dist/{onboarding.finalize-YB2UOZUK.js → onboarding.finalize-CexXZw9D.js} +5 -5
  66. package/dist/{outbound-DUO7IkKe.js → outbound-BQZtNLk5.js} +7 -7
  67. package/dist/{outbound-attachment-CWi9cBa6.js → outbound-attachment-DhDAO6nl.js} +2 -2
  68. package/dist/{pi-auth-json-S_NBOBoK.js → pi-auth-json-h8jIzOEa.js} +1 -1
  69. package/dist/{pi-embedded-C6GkUoi8.js → pi-embedded-DFMFvHP5.js} +19 -19
  70. package/dist/{pi-embedded-helpers-YSU-xmLw.js → pi-embedded-helpers-C4GmoY6O.js} +18 -18
  71. package/dist/{pi-embedded-helpers-B1k1RWqM.js → pi-embedded-helpers-pMH6u36v.js} +4 -4
  72. package/dist/plugin-sdk/infra/active-heartbeat-runs.d.ts +24 -7
  73. package/dist/{plugins-BpFxTfLA.js → plugins-CneV0s1f.js} +4 -4
  74. package/dist/{program-CKansE2A.js → program-POF8wz57.js} +2 -2
  75. package/dist/{program-context-DlM7Bnwp.js → program-context-DsPL6cge.js} +9 -9
  76. package/dist/{prompt-select-styled-YeADoH1b.js → prompt-select-styled-BaQx_oFk.js} +2 -2
  77. package/dist/{prompt-select-styled-RR_-htsV.js → prompt-select-styled-Cz2iXZki.js} +2 -2
  78. package/dist/{pw-ai-hPAkCert.js → pw-ai-CZJaishg.js} +9 -9
  79. package/dist/{pw-ai-Dd_QrTWR.js → pw-ai-D0CMQA23.js} +1 -1
  80. package/dist/{qmd-manager-DDKAOUcn.js → qmd-manager-Cx3O7YFm.js} +5 -5
  81. package/dist/{register.configure-ndWF-EwD.js → register.configure-DFUqXeRq.js} +2 -2
  82. package/dist/{register.configure-J5GbnUak.js → register.configure-DLPSROfI.js} +2 -2
  83. package/dist/{register.maintenance-BAlGfjMJ.js → register.maintenance-CWCtxkNh.js} +5 -5
  84. package/dist/{register.maintenance-BvAh-5NH.js → register.maintenance-Jqn4H62V.js} +6 -6
  85. package/dist/{register.onboard-Dh4f0cDp.js → register.onboard-BywdvE0H.js} +3 -3
  86. package/dist/{register.onboard-DPpsT1JH.js → register.onboard-DzX8ZUAK.js} +3 -3
  87. package/dist/{register.setup-DU8piCcQ.js → register.setup-acIJDgl8.js} +3 -3
  88. package/dist/{register.setup-BrjFdUZ8.js → register.setup-psP-ZtQm.js} +3 -3
  89. package/dist/{register.status-health-sessions-Cyljneob.js → register.status-health-sessions-BQ9fEidS.js} +2 -2
  90. package/dist/{register.status-health-sessions-jQvctMC3.js → register.status-health-sessions-C3Ekyerp.js} +2 -2
  91. package/dist/{register.subclis-DOLKNKZj.js → register.subclis-C-Y_J1yd.js} +3 -3
  92. package/dist/{registry-DYq1AYOv.js → registry-BIqyUxh_.js} +2 -2
  93. package/dist/{replies-CDz80zCR.js → replies-CvvV7FsP.js} +3 -3
  94. package/dist/{reply-prefix-C1Tw2ERK.js → reply-prefix-DqhURPy6.js} +1 -1
  95. package/dist/{resolve-route-Cz45JFdW.js → resolve-route-CAgv6NO0.js} +4 -4
  96. package/dist/{retry-B-y5suGA.js → retry-CmtozApI.js} +1 -1
  97. package/dist/{run-main-DnvLmulK.js → run-main-BUTiVWxn.js} +7 -7
  98. package/dist/{runner-CaXOtv_D.js → runner-7XhJhCc0.js} +1 -1
  99. package/dist/{runner-7_mUx-F3.js → runner-R8qsprXG.js} +9 -9
  100. package/dist/{send-BQTsCyf6.js → send-B_g1He3g.js} +10 -10
  101. package/dist/{send-R3nkEMMb.js → send-DGVcpcfh.js} +7 -7
  102. package/dist/{send-fVqebfsH.js → send-DWrapvrU.js} +6 -6
  103. package/dist/{send-DUmV-ltI.js → send-DXW6BXBH.js} +6 -6
  104. package/dist/{send-XAxr3MFp.js → send-DkU1UYlf.js} +10 -10
  105. package/dist/{server-methods-DFQlsPZN.js → server-methods-B4SR9px-.js} +4 -3
  106. package/dist/{server-methods-DGQu3NEO.js → server-methods-BAZKdAPo.js} +4 -3
  107. package/dist/{session-Bs8nmUHx.js → session-CI7IFf_N.js} +4 -4
  108. package/dist/{skill-commands-BXs_duC2.js → skill-commands-C0wJE3kM.js} +5 -5
  109. package/dist/{skills-DjtoXuuJ.js → skills-DofJnEQw.js} +6 -6
  110. package/dist/{sqlite-VBmM_OHS.js → sqlite-C7SbUGaN.js} +1 -1
  111. package/dist/{status-DBn69Azp.js → status-Cnr5heo3.js} +1 -1
  112. package/dist/{status-Cx2g82Iv.js → status-D5zp5rJK.js} +1 -1
  113. package/dist/{store-BOFCIL6J.js → store-Bihue0SL.js} +2 -2
  114. package/dist/{subsystem-BjyjJF-d.js → subsystem-dKFaD1RZ.js} +1 -1
  115. package/dist/{synthesis-CTHSaeoU.js → synthesis-CIxaIZH1.js} +7 -7
  116. package/dist/{synthesis-DnFo8jPe.js → synthesis-CoWIFjai.js} +51 -51
  117. package/dist/{tables-DTIPf6oV.js → tables-DKFvaDXb.js} +1 -1
  118. package/dist/{target-errors-Bp-kjJP5.js → target-errors-S2DP7RcP.js} +2 -2
  119. package/dist/{thinking-awGU51JX.js → thinking-DOvUroda.js} +5 -5
  120. package/dist/{tokens-DLGDtW5r.js → tokens-CFTgwwnd.js} +1 -1
  121. package/dist/{tool-images-CiD-DaWf.js → tool-images-C6fG5hIF.js} +2 -2
  122. package/dist/{tool-loop-detection-Dj9h1ogr.js → tool-loop-detection-Bs0RG2qV.js} +2 -2
  123. package/dist/{unified-runner-DwlXIEtb.js → unified-runner-BNiGGPbP.js} +84 -84
  124. package/dist/{update-cli-DKbaVaEp.js → update-cli-BdYAIokj.js} +5 -5
  125. package/dist/{update-cli-CYpz_sg2.js → update-cli-ul-BDwA3.js} +6 -6
  126. package/dist/{web-VH47KruC.js → web-4pKRGaN9.js} +55 -55
  127. package/dist/{web-DuUOtg8X.js → web-CeH7sXd1.js} +7 -7
  128. package/dist/{whatsapp-actions-XPj837oV.js → whatsapp-actions-BVTo7B3-.js} +21 -21
  129. package/dist/{workspace-CarmeCYN.js → workspace-D9KMUsNd.js} +2 -2
  130. package/extensions/bluebubbles/node_modules/.bin/symi +0 -0
  131. package/extensions/bluebubbles/package.json +1 -1
  132. package/extensions/copilot-proxy/node_modules/.bin/symi +0 -0
  133. package/extensions/copilot-proxy/package.json +1 -1
  134. package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -0
  135. package/extensions/diagnostics-otel/node_modules/.bin/symi +0 -0
  136. package/extensions/diagnostics-otel/package.json +1 -1
  137. package/extensions/discord/node_modules/.bin/symi +0 -0
  138. package/extensions/discord/package.json +1 -1
  139. package/extensions/feishu/node_modules/.bin/symi +0 -0
  140. package/extensions/feishu/package.json +1 -1
  141. package/extensions/google-antigravity-auth/node_modules/.bin/symi +0 -0
  142. package/extensions/google-antigravity-auth/package.json +1 -1
  143. package/extensions/google-gemini-cli-auth/node_modules/.bin/symi +0 -0
  144. package/extensions/google-gemini-cli-auth/package.json +1 -1
  145. package/extensions/googlechat/node_modules/.bin/symi +0 -0
  146. package/extensions/googlechat/package.json +1 -1
  147. package/extensions/imessage/node_modules/.bin/symi +0 -0
  148. package/extensions/imessage/package.json +1 -1
  149. package/extensions/irc/node_modules/.bin/symi +0 -0
  150. package/extensions/irc/package.json +1 -1
  151. package/extensions/learning-loop/node_modules/.bin/symi +0 -0
  152. package/extensions/learning-loop/package.json +1 -1
  153. package/extensions/line/node_modules/.bin/symi +0 -0
  154. package/extensions/line/package.json +1 -1
  155. package/extensions/llm-task/package.json +1 -1
  156. package/extensions/matrix/CHANGELOG.md +6 -0
  157. package/extensions/matrix/node_modules/.bin/markdown-it +0 -0
  158. package/extensions/matrix/node_modules/.bin/symi +0 -0
  159. package/extensions/matrix/package.json +1 -1
  160. package/extensions/mattermost/node_modules/.bin/symi +0 -0
  161. package/extensions/mattermost/package.json +1 -1
  162. package/extensions/memory-core/node_modules/.bin/symi +0 -0
  163. package/extensions/memory-core/package.json +1 -1
  164. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -0
  165. package/extensions/memory-lancedb/node_modules/.bin/openai +0 -0
  166. package/extensions/memory-lancedb/node_modules/.bin/symi +0 -0
  167. package/extensions/memory-lancedb/package.json +1 -1
  168. package/extensions/minimax-portal-auth/node_modules/.bin/symi +0 -0
  169. package/extensions/minimax-portal-auth/package.json +1 -1
  170. package/extensions/msteams/CHANGELOG.md +6 -0
  171. package/extensions/msteams/node_modules/.bin/symi +0 -0
  172. package/extensions/msteams/package.json +1 -1
  173. package/extensions/nextcloud-talk/node_modules/.bin/symi +0 -0
  174. package/extensions/nextcloud-talk/package.json +1 -1
  175. package/extensions/nostr/CHANGELOG.md +6 -0
  176. package/extensions/nostr/node_modules/.bin/symi +0 -0
  177. package/extensions/nostr/node_modules/.bin/tsc +0 -0
  178. package/extensions/nostr/node_modules/.bin/tsserver +0 -0
  179. package/extensions/nostr/package.json +1 -1
  180. package/extensions/open-prose/package.json +1 -1
  181. package/extensions/outlook/node_modules/.bin/symi +0 -0
  182. package/extensions/outlook/package.json +1 -1
  183. package/extensions/pipeline/package.json +1 -1
  184. package/extensions/signal/node_modules/.bin/symi +0 -0
  185. package/extensions/signal/package.json +1 -1
  186. package/extensions/slack/node_modules/.bin/symi +0 -0
  187. package/extensions/slack/package.json +1 -1
  188. package/extensions/telegram/node_modules/.bin/symi +0 -0
  189. package/extensions/telegram/package.json +1 -1
  190. package/extensions/tlon/node_modules/.bin/symi +0 -0
  191. package/extensions/tlon/package.json +1 -1
  192. package/extensions/twitch/CHANGELOG.md +6 -0
  193. package/extensions/twitch/node_modules/.bin/symi +0 -0
  194. package/extensions/twitch/package.json +1 -1
  195. package/extensions/voice-call/CHANGELOG.md +6 -0
  196. package/extensions/voice-call/node_modules/.bin/symi +0 -0
  197. package/extensions/voice-call/package.json +1 -1
  198. package/extensions/whatsapp/node_modules/.bin/symi +0 -0
  199. package/extensions/whatsapp/package.json +1 -1
  200. package/extensions/zalo/CHANGELOG.md +6 -0
  201. package/extensions/zalo/node_modules/.bin/symi +0 -0
  202. package/extensions/zalo/package.json +1 -1
  203. package/extensions/zalouser/CHANGELOG.md +6 -0
  204. package/extensions/zalouser/node_modules/.bin/symi +0 -0
  205. package/extensions/zalouser/package.json +1 -1
  206. package/package.json +116 -86
  207. package/skills/long-task/scripts/detach-task.sh +0 -0
  208. package/skills/nano-banana-pro/scripts/generate_image.py +0 -0
  209. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -0
  210. package/skills/tmux/scripts/find-sessions.sh +0 -0
  211. package/skills/tmux/scripts/wait-for-text.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { an as getPrimaryCommand, cn as hasHelpOrVersion } from "./entry.js";
3
- import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-DOLKNKZj.js";
3
+ import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-C-Y_J1yd.js";
4
4
 
5
5
  //#region src/cli/program/command-registry.ts
6
6
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -22,7 +22,7 @@ const coreEntries = [
22
22
  hasSubcommands: false
23
23
  }],
24
24
  register: async ({ program }) => {
25
- (await import("./register.setup-BrjFdUZ8.js")).registerSetupCommand(program);
25
+ (await import("./register.setup-psP-ZtQm.js")).registerSetupCommand(program);
26
26
  }
27
27
  },
28
28
  {
@@ -32,7 +32,7 @@ const coreEntries = [
32
32
  hasSubcommands: false
33
33
  }],
34
34
  register: async ({ program }) => {
35
- (await import("./register.onboard-Dh4f0cDp.js")).registerOnboardCommand(program);
35
+ (await import("./register.onboard-BywdvE0H.js")).registerOnboardCommand(program);
36
36
  }
37
37
  },
38
38
  {
@@ -42,7 +42,7 @@ const coreEntries = [
42
42
  hasSubcommands: false
43
43
  }],
44
44
  register: async ({ program }) => {
45
- (await import("./register.configure-ndWF-EwD.js")).registerConfigureCommand(program);
45
+ (await import("./register.configure-DFUqXeRq.js")).registerConfigureCommand(program);
46
46
  }
47
47
  },
48
48
  {
@@ -52,7 +52,7 @@ const coreEntries = [
52
52
  hasSubcommands: true
53
53
  }],
54
54
  register: async ({ program }) => {
55
- (await import("./config-cli-CiV_YQf4.js")).registerConfigCli(program);
55
+ (await import("./config-cli-BebhyWjM.js")).registerConfigCli(program);
56
56
  }
57
57
  },
58
58
  {
@@ -79,7 +79,7 @@ const coreEntries = [
79
79
  }
80
80
  ],
81
81
  register: async ({ program }) => {
82
- (await import("./register.maintenance-BvAh-5NH.js")).registerMaintenanceCommands(program);
82
+ (await import("./register.maintenance-Jqn4H62V.js")).registerMaintenanceCommands(program);
83
83
  }
84
84
  },
85
85
  {
@@ -135,7 +135,7 @@ const coreEntries = [
135
135
  }
136
136
  ],
137
137
  register: async ({ program }) => {
138
- (await import("./register.status-health-sessions-jQvctMC3.js")).registerStatusHealthSessionsCommands(program);
138
+ (await import("./register.status-health-sessions-C3Ekyerp.js")).registerStatusHealthSessionsCommands(program);
139
139
  }
140
140
  },
141
141
  {
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { D as escapeRegExp, W as isPlainObject, c as getActivePluginRegistry } from "./registry-DYq1AYOv.js";
3
- import { $ as DEFAULT_PROVIDER, E as resolveConfiguredModelRef, Q as DEFAULT_MODEL } from "./auth-profiles-Bs0Z0FzU.js";
4
- import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-awGU51JX.js";
5
- import { r as normalizeChannelId } from "./plugins-BpFxTfLA.js";
2
+ import { D as escapeRegExp, W as isPlainObject, c as getActivePluginRegistry } from "./registry-BIqyUxh_.js";
3
+ import { $ as DEFAULT_PROVIDER, E as resolveConfiguredModelRef, Q as DEFAULT_MODEL } from "./auth-profiles-BoHFXe5T.js";
4
+ import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-DOvUroda.js";
5
+ import { r as normalizeChannelId } from "./plugins-CneV0s1f.js";
6
6
 
7
7
  //#region src/config/commands.ts
8
8
  function resolveAutoDefault(providerId) {
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Yt as resolveStateDir, l as routeLogsToStderr, nt as pathExists } from "./entry.js";
3
- import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-DOLKNKZj.js";
4
- import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-BRN6NMOS.js";
3
+ import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-C-Y_J1yd.js";
4
+ import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-CsiR9i7E.js";
5
5
  import { t as getProgramContext } from "./program-context-DeZ44oQ9.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
3
3
  import { h as pathExists } from "./utils-B-0b9bGM.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-zqierDLj.js";
5
- import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-DlM7Bnwp.js";
5
+ import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-DsPL6cge.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,14 +1,14 @@
1
1
  import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
2
2
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { I as resolveUserPath, P as resolveConfigDir, W as isPlainObject$1, k as isRecord, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-DYq1AYOv.js";
4
- import { o as resolveAgentWorkspaceDir, s as resolveDefaultAgentId } from "./agent-scope-Ddr0Ws7u.js";
5
- import { J as resolveShellEnvFallbackTimeoutMs, T as parseModelRef, X as shouldEnableShellEnvFallback, Y as shouldDeferShellEnvFallback, Z as DEFAULT_CONTEXT_TOKENS, q as loadShellEnvFallback } from "./auth-profiles-Bs0Z0FzU.js";
6
- import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, f as normalizeEnvVarKey, l as isPathInside, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-CBCGTsIb.js";
3
+ import { I as resolveUserPath, P as resolveConfigDir, W as isPlainObject$1, k as isRecord, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-BIqyUxh_.js";
4
+ import { o as resolveAgentWorkspaceDir, s as resolveDefaultAgentId } from "./agent-scope-CEzt6H9x.js";
5
+ import { J as resolveShellEnvFallbackTimeoutMs, T as parseModelRef, X as shouldEnableShellEnvFallback, Y as shouldDeferShellEnvFallback, Z as DEFAULT_CONTEXT_TOKENS, q as loadShellEnvFallback } from "./auth-profiles-BoHFXe5T.js";
6
+ import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, f as normalizeEnvVarKey, l as isPathInside, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-2WUbwZgO.js";
7
7
  import { createRequire } from "node:module";
8
8
  import path from "node:path";
9
9
  import fs from "node:fs";
10
10
  import os from "node:os";
11
- import JSON5 from "json5";
11
+ import json5 from "json5";
12
12
  import { isDeepStrictEqual } from "node:util";
13
13
  import crypto from "node:crypto";
14
14
  import dotenv from "dotenv";
@@ -892,7 +892,7 @@ function safeRealpath(target) {
892
892
  }
893
893
  const defaultResolver = {
894
894
  readFile: (p) => fs.readFileSync(p, "utf-8"),
895
- parseJson: (raw) => JSON5.parse(raw)
895
+ parseJson: (raw) => json5.parse(raw)
896
896
  };
897
897
  /**
898
898
  * Resolves all $include directives in a parsed config object.
@@ -5594,7 +5594,7 @@ function resolveConfigPathForDeps(deps) {
5594
5594
  function normalizeDeps(overrides = {}) {
5595
5595
  return {
5596
5596
  fs: overrides.fs ?? fs,
5597
- json5: overrides.json5 ?? JSON5,
5597
+ json5: overrides.json5 ?? json5,
5598
5598
  env: overrides.env ?? process.env,
5599
5599
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
5600
5600
  configPath: overrides.configPath ?? "",
@@ -5605,11 +5605,11 @@ function maybeLoadDotEnvForConfig(env) {
5605
5605
  if (env !== process.env) return;
5606
5606
  loadDotEnv({ quiet: true });
5607
5607
  }
5608
- function parseConfigJson5(raw, json5 = JSON5) {
5608
+ function parseConfigJson5(raw, json5$1 = json5) {
5609
5609
  try {
5610
5610
  return {
5611
5611
  ok: true,
5612
- parsed: json5.parse(raw)
5612
+ parsed: json5$1.parse(raw)
5613
5613
  };
5614
5614
  } catch (err) {
5615
5615
  return {
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
201
201
  }
202
202
  function registerConfigCli(program) {
203
203
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
204
- const { configureCommandFromSectionsArg } = await import("./configure-BE0YRZWd.js").then((n) => n.t);
204
+ const { configureCommandFromSectionsArg } = await import("./configure-HMRPjIFX.js").then((n) => n.t);
205
205
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
206
206
  });
207
207
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
206
206
  }
207
207
  function registerConfigCli(program) {
208
208
  const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
209
- const { configureCommandFromSectionsArg } = await import("./configure-By6_8Jvs.js").then((n) => n.t);
209
+ const { configureCommandFromSectionsArg } = await import("./configure-DB-1UY2t.js").then((n) => n.t);
210
210
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
211
211
  });
212
212
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -16,7 +16,7 @@ import { t as createClackPrompter } from "./clack-prompter-Cd5Ohk77.js";
16
16
  import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Cky54l0-.js";
17
17
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CNvz5bbJ.js";
18
18
  import { t as resolveGatewayService } from "./service-CW2RUNzh.js";
19
- import { r as healthCommand } from "./health-N-jvgpZZ.js";
19
+ import { r as healthCommand } from "./health-xGaC5l7K.js";
20
20
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CtKVON4w.js";
21
21
  import { n as logConfigUpdated } from "./logging-CZuxhCZR.js";
22
22
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-PeQmwVpp.js";
@@ -14,7 +14,7 @@ import { t as createClackPrompter } from "./clack-prompter-CTPf_777.js";
14
14
  import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-CkFD8gYa.js";
15
15
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-EeFXD_no.js";
16
16
  import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
17
- import { r as healthCommand } from "./health-DZB8SV6G.js";
17
+ import { r as healthCommand } from "./health-_G7Dy5sq.js";
18
18
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DKcwWWGv.js";
19
19
  import { n as logConfigUpdated } from "./logging-PVQxLC6I.js";
20
20
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-DF6R_pgV.js";
@@ -1,6 +1,6 @@
1
1
  import "./paths-CE7eVGHg.js";
2
- import "./registry-DYq1AYOv.js";
3
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
2
+ import "./registry-BIqyUxh_.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-dKFaD1RZ.js";
4
4
  import { l as parseEmbedding, r as cosineSimilarity } from "./internal-DjnxpF_K.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
@@ -849,8 +849,12 @@ function handleGatewayEvent(event) {
849
849
  if (p.isHeartbeat) {
850
850
  return;
851
851
  }
852
- // Server-reported error — route through unified failure handler
853
- handleRunFailure(p.error?.message || "Server reported an error");
852
+ // Server-reported error — route through unified failure handler.
853
+ // The gateway emits the diagnostic at top-level `errorMessage`
854
+ // (camelCase); fall back to nested `error.message` for forward-compat
855
+ // and the legacy default if neither shape is present.
856
+ const message = p.errorMessage || p.error?.message || "Server reported an error";
857
+ handleRunFailure(message);
854
858
  }
855
859
  }
856
860
 
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
6
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DRIIdGfF.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CpxUKuIt.js";
8
- import { R as appendAssistantMessageToSessionTranscript, z as resolveMirroredTranscriptText } from "./pi-embedded-helpers-B1k1RWqM.js";
8
+ import { R as appendAssistantMessageToSessionTranscript, z as resolveMirroredTranscriptText } from "./pi-embedded-helpers-pMH6u36v.js";
9
9
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-Bk95VMr4.js";
10
10
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DAG0TQQX.js";
11
11
  import { t as getAgentScopedMediaLocalRoots } from "./local-roots-cwNFw4qu.js";
@@ -1,15 +1,15 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
3
3
  import { p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
4
- import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-DYq1AYOv.js";
5
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
6
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DLGDtW5r.js";
7
- import { R as appendAssistantMessageToSessionTranscript, z as resolveMirroredTranscriptText } from "./pi-embedded-helpers-YSU-xmLw.js";
8
- import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BpFxTfLA.js";
9
- import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BRe1o4Af.js";
10
- import { n as resolveMarkdownTableMode } from "./markdown-tables-bViwuQKQ.js";
11
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-jzqRdkXA.js";
12
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-DUmV-ltI.js";
4
+ import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-BIqyUxh_.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-dKFaD1RZ.js";
6
+ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CFTgwwnd.js";
7
+ import { R as appendAssistantMessageToSessionTranscript, z as resolveMirroredTranscriptText } from "./pi-embedded-helpers-C4GmoY6O.js";
8
+ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CneV0s1f.js";
9
+ import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BMvnM1K5.js";
10
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-stYj7BCB.js";
11
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-BacHGRfJ.js";
12
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-DXW6BXBH.js";
13
13
  import path from "node:path";
14
14
  import fs from "node:fs";
15
15
  import crypto from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-dKFaD1RZ.js";
3
3
  import { i as pruneDiagnosticSessionStates, r as getDiagnosticSessionState, t as diagnosticSessionStates } from "./diagnostic-session-state-C9jKr8qI.js";
4
4
 
5
5
  //#region src/infra/diagnostic-events.ts
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-CyXZlazG.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-7ei1lwo0.js";
3
3
  import { t as note } from "./note-CYS1SoX6.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-EvxmKJ-O.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Dnyp6OJy.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-CK6iELVh.js";
3
3
  import { t as note } from "./note-DewoEWtc.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-CQtI0ASD.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Bon9_6qA.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-DnvLmulK.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-BUTiVWxn.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });
@@ -1,4 +1,4 @@
1
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-dKFaD1RZ.js";
2
2
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
3
3
  import path from "node:path";
4
4
 
@@ -7,13 +7,13 @@ import { a as resolveAgentIdentity } from "./reply-prefix-C7ZwCr7X.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-DRIIdGfF.js";
10
- import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-C6GkUoi8.js";
10
+ import { D as resolveAgentTimeoutMs, p as runEmbeddedPiAgent } from "./pi-embedded-DFMFvHP5.js";
11
11
  import "./plugins-CpxUKuIt.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-pK-Lzohb.js";
14
14
  import "./send-DMhDlUGJ.js";
15
15
  import "./send-ByAzOT7G.js";
16
- import "./deliver-DShQE_sq.js";
16
+ import "./deliver-B6vfVmif.js";
17
17
  import "./diagnostic-BVsSwe-J.js";
18
18
  import "./diagnostic-session-state-C1vRJs5w.js";
19
19
  import "./accounts-8zZqL37v.js";
@@ -21,10 +21,10 @@ import "./send-CFvpJQIE.js";
21
21
  import "./image-ops-BKUwjozo.js";
22
22
  import "./pi-model-discovery-j5tVLINv.js";
23
23
  import "./message-channel-BQINJQIT.js";
24
- import { V as loadSessionStore, W as saveSessionStore } from "./pi-embedded-helpers-B1k1RWqM.js";
24
+ import { V as loadSessionStore, W as saveSessionStore } from "./pi-embedded-helpers-pMH6u36v.js";
25
25
  import "./config-BOuq5KZE.js";
26
26
  import "./manifest-registry-DWdYdchb.js";
27
- import "./chrome-WfENE6tB.js";
27
+ import "./chrome-DaduLVA1.js";
28
28
  import "./skills-amp3F-om.js";
29
29
  import "./redact-1NGYV_8p.js";
30
30
  import "./errors-CPfngF0S.js";
@@ -34,8 +34,8 @@ import "./thinking-B8s2BpSx.js";
34
34
  import "./accounts-DImOt9jX.js";
35
35
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DkMamAQ-.js";
36
36
  import "./tool-images-CdTyeTEN.js";
37
- import "./image-DfzwGNoa.js";
38
- import "./manager-Dp_9v8j5.js";
37
+ import "./image-C12-WOMI.js";
38
+ import "./manager-C8BydiE8.js";
39
39
  import "./gemini-auth-D3D-a_lj.js";
40
40
  import "./retry-QGp0jvVi.js";
41
41
  import "./sqlite-Bo4pHfp8.js";
@@ -47,7 +47,7 @@ import "./ir-CDdlA9_f.js";
47
47
  import "./render-qcqmrHse.js";
48
48
  import "./commands-registry-iF38r_Xp.js";
49
49
  import "./skill-commands-c5Lly1_3.js";
50
- import "./runner-CaXOtv_D.js";
50
+ import "./runner-7XhJhCc0.js";
51
51
  import "./fetch-WLZaC77l.js";
52
52
  import "./channel-activity-C-6tM-GK.js";
53
53
  import "./tables-BuPzx5Wl.js";
@@ -2,7 +2,7 @@ import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
2
2
  import { n as MANIFEST_KEY, t as LEGACY_MANIFEST_KEYS } from "./legacy-names-CePMUvus.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
5
- import JSON5 from "json5";
5
+ import json5 from "json5";
6
6
  import YAML from "yaml";
7
7
 
8
8
  //#region src/shared/config-eval.ts
@@ -210,7 +210,7 @@ function resolveSymiManifestBlock(params) {
210
210
  const raw = getFrontmatterString(params.frontmatter, params.key ?? "metadata");
211
211
  if (!raw) return;
212
212
  try {
213
- const parsed = JSON5.parse(raw);
213
+ const parsed = json5.parse(raw);
214
214
  if (!parsed || typeof parsed !== "object") return;
215
215
  const manifestKeys = [MANIFEST_KEY, ...LEGACY_MANIFEST_KEYS];
216
216
  for (const key of manifestKeys) {
@@ -131,12 +131,12 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
131
131
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-vevi4OAS.js";
132
132
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CfXVd09Y.js";
133
133
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BWaTCKHh.js";
134
- import { i as pickGatewaySelfPresence } from "./status-DBn69Azp.js";
135
- import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-DZB8SV6G.js";
134
+ import { i as pickGatewaySelfPresence } from "./status-Cnr5heo3.js";
135
+ import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-_G7Dy5sq.js";
136
136
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DKcwWWGv.js";
137
137
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-BNjupSIM.js";
138
- import { t as runOnboardingWizard } from "./onboarding-BZVJ24wI.js";
139
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-DGQu3NEO.js";
138
+ import { t as runOnboardingWizard } from "./onboarding-BSvR9bkU.js";
139
+ import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-BAZKdAPo.js";
140
140
  import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CB9rSO0r.js";
141
141
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-YTXXLbHH.js";
142
142
  import "./agents.config-DyAqyKIS.js";
@@ -2087,7 +2087,8 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2087
2087
  sessionKey,
2088
2088
  seq,
2089
2089
  state: "error",
2090
- errorMessage: error ? formatForLog(error) : void 0
2090
+ errorMessage: error ? formatForLog(error) : void 0,
2091
+ ...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {}
2091
2092
  };
2092
2093
  broadcast("chat", payload);
2093
2094
  nodeSendToSession(sessionKey, "chat", payload);
@@ -12127,7 +12128,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12127
12128
  });
12128
12129
  let glassUiBridgeCleanup = null;
12129
12130
  if (!minimalTestGateway) {
12130
- const { createGlassUiBridge } = await import("./glass-ui-ws-CUWkP3XZ.js");
12131
+ const { createGlassUiBridge } = await import("./glass-ui-ws-7O88M05N.js");
12131
12132
  glassUiBridgeCleanup = createGlassUiBridge({
12132
12133
  wss: glassUiWss,
12133
12134
  context: gatewayRequestContext,
@@ -136,12 +136,12 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
136
136
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DnATZix4.js";
137
137
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-BFAHZWI2.js";
138
138
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-PnjDY_wY.js";
139
- import { r as pickGatewaySelfPresence } from "./status-Cx2g82Iv.js";
140
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-N-jvgpZZ.js";
139
+ import { r as pickGatewaySelfPresence } from "./status-D5zp5rJK.js";
140
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-xGaC5l7K.js";
141
141
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CtKVON4w.js";
142
142
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-BIE5FLmi.js";
143
- import { t as runOnboardingWizard } from "./onboarding-DgpTBpWU.js";
144
- import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-DFQlsPZN.js";
143
+ import { t as runOnboardingWizard } from "./onboarding-DTs0CtTa.js";
144
+ import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-B4SR9px-.js";
145
145
  import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-BP1rb3hW.js";
146
146
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-BV1BJYYk.js";
147
147
  import "./agents.config-wJSTSxHw.js";
@@ -2091,7 +2091,8 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2091
2091
  sessionKey,
2092
2092
  seq,
2093
2093
  state: "error",
2094
- errorMessage: error ? formatForLog(error) : void 0
2094
+ errorMessage: error ? formatForLog(error) : void 0,
2095
+ ...heartbeatCtx?.isHeartbeat ? { isHeartbeat: true } : {}
2095
2096
  };
2096
2097
  broadcast("chat", payload);
2097
2098
  nodeSendToSession(sessionKey, "chat", payload);
@@ -12131,7 +12132,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
12131
12132
  });
12132
12133
  let glassUiBridgeCleanup = null;
12133
12134
  if (!minimalTestGateway) {
12134
- const { createGlassUiBridge } = await import("./glass-ui-ws-oxSeDi37.js");
12135
+ const { createGlassUiBridge } = await import("./glass-ui-ws-b6N_1b40.js");
12135
12136
  glassUiBridgeCleanup = createGlassUiBridge({
12136
12137
  wss: glassUiWss,
12137
12138
  context: gatewayRequestContext,
@@ -1,4 +1,4 @@
1
- import { w as normalizeProviderId } from "./auth-profiles-Bs0Z0FzU.js";
1
+ import { w as normalizeProviderId } from "./auth-profiles-BoHFXe5T.js";
2
2
  import { n as formatErrorMessage } from "./errors-XIsvXeC-.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
@@ -110,11 +110,11 @@ import "./service-RxN7lQKN.js";
110
110
  import "./diagnostics-C6xPE2ln.js";
111
111
  import "./table-Bka4fasy.js";
112
112
  import "./audit-CfXVd09Y.js";
113
- import "./status-DBn69Azp.js";
114
- import "./health-DZB8SV6G.js";
113
+ import "./status-Cnr5heo3.js";
114
+ import "./health-_G7Dy5sq.js";
115
115
  import "./control-ui-assets-DKcwWWGv.js";
116
116
  import "./update-check-BNjupSIM.js";
117
- import { n as handleGatewayRequest } from "./server-methods-DGQu3NEO.js";
117
+ import { n as handleGatewayRequest } from "./server-methods-BAZKdAPo.js";
118
118
  import "./push-apns-CB9rSO0r.js";
119
119
  import "./agents.config-DyAqyKIS.js";
120
120
  import "./dm-policy-shared-BSjL81w0.js";
@@ -115,11 +115,11 @@ import "./service-CW2RUNzh.js";
115
115
  import "./diagnostics-D40jPn_9.js";
116
116
  import "./table-Cg6YZXv9.js";
117
117
  import "./audit-BFAHZWI2.js";
118
- import "./status-Cx2g82Iv.js";
119
- import "./health-N-jvgpZZ.js";
118
+ import "./status-D5zp5rJK.js";
119
+ import "./health-xGaC5l7K.js";
120
120
  import "./control-ui-assets-CtKVON4w.js";
121
121
  import "./update-check-BIE5FLmi.js";
122
- import { n as handleGatewayRequest } from "./server-methods-DFQlsPZN.js";
122
+ import { n as handleGatewayRequest } from "./server-methods-B4SR9px-.js";
123
123
  import "./push-apns-BP1rb3hW.js";
124
124
  import "./agents.config-wJSTSxHw.js";
125
125
  import "./dm-policy-shared-Ca_yzxgO.js";
@@ -26,27 +26,49 @@ const activeHeartbeats = /* @__PURE__ */ new Map();
26
26
  * heartbeat run on `sessionKey`. If a previous controller exists for
27
27
  * the same key (shouldn't happen — heartbeats are serialized per
28
28
  * session — but be defensive), abort it before replacing.
29
+ *
30
+ * `runId` is optional — the heartbeat-runner registers the controller
31
+ * before runReplyTurn assigns the agent runId, then calls
32
+ * setHeartbeatRunId once the runId is known.
29
33
  */
30
- function registerHeartbeatRun(sessionKey, controller) {
34
+ function registerHeartbeatRun(sessionKey, controller, runId) {
31
35
  if (!sessionKey) return;
32
36
  const existing = activeHeartbeats.get(sessionKey);
33
- if (existing && existing !== controller) try {
34
- existing.abort();
37
+ if (existing && existing.controller !== controller) try {
38
+ existing.controller.abort();
35
39
  } catch {}
36
- activeHeartbeats.set(sessionKey, controller);
40
+ activeHeartbeats.set(sessionKey, {
41
+ controller,
42
+ runId
43
+ });
37
44
  }
38
45
  /**
39
- * Drop the controller for `sessionKey` from the registry. Called from
40
- * the heartbeat runner's finally block once the run has completed
41
- * (successfully, with an error, or via abort).
46
+ * Update the runId for the active heartbeat registration on `sessionKey`.
47
+ * No-op when no registration exists (e.g., if the run cleared between
48
+ * registerHeartbeatRun and onAgentRunStart). Wired from the heartbeat
49
+ * runner's onAgentRunStart callback so abortHeartbeatRunForSession can
50
+ * return the runId at preemption time.
51
+ */
52
+ function setHeartbeatRunId(sessionKey, runId) {
53
+ if (!sessionKey || !runId) return;
54
+ const existing = activeHeartbeats.get(sessionKey);
55
+ if (!existing) return;
56
+ existing.runId = runId;
57
+ }
58
+ /**
59
+ * Drop the registration for `sessionKey`. Called from the heartbeat
60
+ * runner's finally block once the run has completed (successfully,
61
+ * with an error, or via abort).
42
62
  */
43
63
  function clearHeartbeatRun(sessionKey) {
44
64
  if (!sessionKey) return;
45
65
  activeHeartbeats.delete(sessionKey);
46
66
  }
47
67
  /**
48
- * Abort the active heartbeat (if any) for `sessionKey`. Returns true
49
- * when an abort was issued, false when no heartbeat was in flight.
68
+ * Abort the active heartbeat (if any) for `sessionKey`. Returns
69
+ * `{ aborted: true, runId? }` when an abort was issued (runId may be
70
+ * undefined if the agent loop hadn't started yet) or `{ aborted: false }`
71
+ * when no heartbeat was in flight.
50
72
  *
51
73
  * Called from the chat.send handler before it enqueues the user turn,
52
74
  * so the user's message doesn't sit behind a heartbeat that may take
@@ -54,14 +76,17 @@ function clearHeartbeatRun(sessionKey) {
54
76
  * pulse interval — no state to recover.
55
77
  */
56
78
  function abortHeartbeatRunForSession(sessionKey) {
57
- if (!sessionKey) return false;
58
- const controller = activeHeartbeats.get(sessionKey);
59
- if (!controller) return false;
79
+ if (!sessionKey) return { aborted: false };
80
+ const registration = activeHeartbeats.get(sessionKey);
81
+ if (!registration) return { aborted: false };
60
82
  try {
61
- controller.abort();
83
+ registration.controller.abort();
62
84
  } catch {}
63
85
  activeHeartbeats.delete(sessionKey);
64
- return true;
86
+ return {
87
+ aborted: true,
88
+ runId: registration.runId
89
+ };
65
90
  }
66
91
 
67
92
  //#endregion
@@ -593,15 +618,20 @@ async function runHeartbeatOnce(opts) {
593
618
  });
594
619
  const heartbeatModelOverride = heartbeat?.model?.trim() || void 0;
595
620
  const suppressToolErrorWarnings = heartbeat?.suppressToolErrorWarnings === true;
621
+ const onAgentRunStart = (runId) => {
622
+ setHeartbeatRunId(sessionKey, runId);
623
+ };
596
624
  const replyResult = await runReplyTurn(ctx, heartbeatModelOverride ? {
597
625
  isHeartbeat: true,
598
626
  heartbeatModelOverride,
599
627
  suppressToolErrorWarnings,
600
- abortSignal: abortController.signal
628
+ abortSignal: abortController.signal,
629
+ onAgentRunStart
601
630
  } : {
602
631
  isHeartbeat: true,
603
632
  suppressToolErrorWarnings,
604
- abortSignal: abortController.signal
633
+ abortSignal: abortController.signal,
634
+ onAgentRunStart
605
635
  }, cfg);
606
636
  const replyPayload = resolveHeartbeatReplyPayload(replyResult);
607
637
  const reasoningPayloads = heartbeat?.includeReasoning === true ? resolveHeartbeatReasoningPayloads(replyResult).filter((payload) => payload !== replyPayload) : [];