@symerian/symi 2.4.4 → 2.5.1

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 (118) hide show
  1. package/dist/{agents-D0WIqYlR.js → agents-Cf7lxbx4.js} +4 -4
  2. package/dist/{agents.config-BJhlUUzn.js → agents.config-CsltNAhl.js} +1 -1
  3. package/dist/{agents.config-DijsN6pE.js → agents.config-aAHTt-cM.js} +1 -1
  4. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
  5. package/dist/{audio-preflight-O3ASWbaG.js → audio-preflight-D02HwB-I.js} +4 -4
  6. package/dist/{auth-choice-CzrXJoq0.js → auth-choice-Cy78Q2jy.js} +1 -1
  7. package/dist/{auth-choice-CBrZeM8N.js → auth-choice-wU5fEl73.js} +1 -1
  8. package/dist/{banner-DBCyc2l3.js → banner-BRzyFiIY.js} +1 -1
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +6 -6
  11. package/dist/bundled/session-memory/handler.js +6 -6
  12. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  13. package/dist/{channel-options-CcNcqLfp.js → channel-options-BcCKOiwh.js} +1 -1
  14. package/dist/{channel-options-D4b4yiR3.js → channel-options-up8R2ST5.js} +1 -1
  15. package/dist/{channel-web-BxgOSVS3.js → channel-web-CrH0yvww.js} +1 -1
  16. package/dist/{channels-cli-DahG1tUQ.js → channels-cli-BiHu6J16.js} +4 -4
  17. package/dist/{channels-cli-CH8FgCHM.js → channels-cli-DG3sTlC7.js} +4 -4
  18. package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
  19. package/dist/{chrome-BFekevcE.js → chrome-EyvdASWt.js} +7 -7
  20. package/dist/{cli-xjbQGnY4.js → cli-BUkGaPzi.js} +1 -1
  21. package/dist/{cli-BG5jr57F.js → cli-YBkGYxfg.js} +1 -1
  22. package/dist/{command-registry-jAjzb3Ub.js → command-registry-YX9EbrJh.js} +9 -9
  23. package/dist/{completion-cli-zIGxgk1g.js → completion-cli-Cm8iWdRA.js} +2 -2
  24. package/dist/{completion-cli-C5YhoKGC.js → completion-cli-DZf03KrT.js} +1 -1
  25. package/dist/{config-cli-CPhmjH-O.js → config-cli-1PDMhq8v.js} +1 -1
  26. package/dist/{config-cli-3hyKITmM.js → config-cli-Dx3mtUwm.js} +1 -1
  27. package/dist/{configure-S9KIFkj-.js → configure-DKN7f4VI.js} +3 -3
  28. package/dist/{configure-C39-I7AH.js → configure-DZn4tz03.js} +3 -3
  29. package/dist/control-ui/js/render.js +4 -32
  30. package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
  31. package/dist/{deliver-CvCK5Mm9.js → deliver-D1ZN6-fl.js} +1 -1
  32. package/dist/{doctor-completion-DMcB-j3Q.js → doctor-completion--aLGEAgK.js} +1 -1
  33. package/dist/{doctor-completion-DjNFcAWO.js → doctor-completion-D4SLAoAE.js} +1 -1
  34. package/dist/entry.js +1 -1
  35. package/dist/extensionAPI.js +6 -6
  36. package/dist/{gateway-cli-CptbhYJ1.js → gateway-cli-CMVvut5c.js} +11 -45
  37. package/dist/{gateway-cli-Bwd_To8f.js → gateway-cli-ZbqwB66o.js} +11 -45
  38. package/dist/{glass-ui-ws-B8ap5D2v.js → glass-ui-ws-Bg6ek2Vs.js} +7 -7
  39. package/dist/{glass-ui-ws-B4jT1ok5.js → glass-ui-ws-Cykb9Xv4.js} +7 -7
  40. package/dist/{health-DhqSQMPI.js → health-BMKu3MJz.js} +1 -1
  41. package/dist/{health-DCb7BG-3.js → health-CGoPVhko.js} +1 -1
  42. package/dist/{hooks-cli-DK2j2rIy.js → hooks-cli-CFtgfZBU.js} +2 -2
  43. package/dist/{hooks-cli-D5W9ERxc.js → hooks-cli-CQUjUbF8.js} +2 -2
  44. package/dist/{image-B0wGflxA.js → image-Cp3JDEBB.js} +1 -1
  45. package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
  46. package/dist/index.js +6 -6
  47. package/dist/llm-slug-generator.js +6 -6
  48. package/dist/{models-Bh86hVEJ.js → models-BPJ5Z5tU.js} +2 -2
  49. package/dist/{models-cli-DNLCTKv1.js → models-cli-D9miPqtu.js} +2 -2
  50. package/dist/{models-cli-DLEKxIbC.js → models-cli-I7FIJUNa.js} +3 -3
  51. package/dist/{onboard-CYMyc_UX.js → onboard-BU6-iBln.js} +2 -2
  52. package/dist/{onboard-ey37IWby.js → onboard-CCZ5n-rI.js} +2 -2
  53. package/dist/{onboard-channels-BmoLkeU6.js → onboard-channels-B188R3F1.js} +1 -1
  54. package/dist/{onboard-channels-Dj_lMj0q.js → onboard-channels-CaRYhl9J.js} +1 -1
  55. package/dist/{onboarding-Dm9fej7n.js → onboarding-CNgU4kg8.js} +3 -3
  56. package/dist/{onboarding-DLyAGYc6.js → onboarding-Gsj-iMyY.js} +3 -3
  57. package/dist/{onboarding.finalize-csPp9wn_.js → onboarding.finalize-BvPgcu7R.js} +5 -5
  58. package/dist/{onboarding.finalize-CEBQJBqF.js → onboarding.finalize-C64KHESC.js} +6 -6
  59. package/dist/{pi-embedded-Lrmi4POJ.js → pi-embedded-DXSWVPEZ.js} +317 -115
  60. package/dist/{pi-embedded-BUYWm5p1.js → pi-embedded-RoXbo73e.js} +317 -115
  61. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
  62. package/dist/{pi-embedded-helpers-DLFjnVBb.js → pi-embedded-helpers-ag2bosuj.js} +4 -4
  63. package/dist/{plugin-registry-D1vzxXON.js → plugin-registry-ByLEBcK_.js} +1 -1
  64. package/dist/{plugin-registry-ChH5CJIw.js → plugin-registry-dNrBrnR0.js} +1 -1
  65. package/dist/plugin-sdk/agents/output-normalizer.d.ts +69 -0
  66. package/dist/plugin-sdk/{channel-web-DOZ-G9xX.js → channel-web-Dn3ufSyq.js} +1 -1
  67. package/dist/plugin-sdk/index.js +2 -2
  68. package/dist/plugin-sdk/{reply-BIMkrLWh.js → reply-DqjPcp_q.js} +303 -101
  69. package/dist/plugin-sdk/{web-BsZ7_Dy0.js → web-GvAx9MMo.js} +2 -2
  70. package/dist/{plugins-cli-0PARfFDh.js → plugins-cli-BJRG_tkQ.js} +2 -2
  71. package/dist/{plugins-cli-CCMRc0SH.js → plugins-cli-DPaKpbZ0.js} +2 -2
  72. package/dist/{program-CTvCt90X.js → program-DCyh129g.js} +7 -7
  73. package/dist/{program-context-LQmFqAP2.js → program-context-27mCl36z.js} +17 -17
  74. package/dist/{prompt-select-styled-Dk4KU3bk.js → prompt-select-styled-JUdZMeZI.js} +4 -4
  75. package/dist/{prompt-select-styled-M1mZT6zR.js → prompt-select-styled-kpNeUDud.js} +4 -4
  76. package/dist/{provider-auth-helpers-CXq_C8eC.js → provider-auth-helpers-C9GRYN-o.js} +1 -1
  77. package/dist/{provider-auth-helpers-DM1hfi20.js → provider-auth-helpers-DyW_7UGQ.js} +1 -1
  78. package/dist/{push-apns-7t_aUx_g.js → push-apns-CZw1UMXk.js} +1 -1
  79. package/dist/{push-apns-D-D1fcAb.js → push-apns-DSpV-UMg.js} +1 -1
  80. package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
  81. package/dist/{pw-ai-BnAKvSuw.js → pw-ai-Ch7liUOW.js} +1 -1
  82. package/dist/{register.agent-CWwXTRwB.js → register.agent-B7jOO00w.js} +5 -5
  83. package/dist/{register.agent-nABNjBav.js → register.agent-Dt-fGSRM.js} +6 -6
  84. package/dist/{register.configure-FljQTqAv.js → register.configure-B4ssKdGP.js} +6 -6
  85. package/dist/{register.configure-CV6utD3b.js → register.configure-BB1NVcZv.js} +6 -6
  86. package/dist/{register.maintenance-BxRP1viU.js → register.maintenance-B6JGjudV.js} +7 -7
  87. package/dist/{register.maintenance-CAACXueD.js → register.maintenance-ICQUl02l.js} +8 -8
  88. package/dist/{register.message-uz5SnsUO.js → register.message-B-hq0-gd.js} +2 -2
  89. package/dist/{register.message-D_Cc5Hcu.js → register.message-BEP0P-gF.js} +2 -2
  90. package/dist/{register.onboard-C8C1xEuj.js → register.onboard-CrgzRM5X.js} +4 -4
  91. package/dist/{register.onboard-BGsi8HVc.js → register.onboard-Dgsu5_C8.js} +4 -4
  92. package/dist/{register.setup-CyxXsD-4.js → register.setup-B3pPkZ-g.js} +4 -4
  93. package/dist/{register.setup-CbPytgHL.js → register.setup-C8xPuOMY.js} +4 -4
  94. package/dist/{register.status-health-sessions-B_BYvadL.js → register.status-health-sessions-DzM7DkCi.js} +3 -3
  95. package/dist/{register.status-health-sessions-DW422lcn.js → register.status-health-sessions-RqNzd4Pm.js} +3 -3
  96. package/dist/{register.subclis-DAEtHKAL.js → register.subclis-DcJgaLOK.js} +9 -9
  97. package/dist/{reply-BWno_mxL.js → reply-DiFKjgpz.js} +304 -102
  98. package/dist/{run-main-GCA3ZWtS.js → run-main-Ck0iMwKh.js} +14 -14
  99. package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
  100. package/dist/{runner-odEv83vv.js → runner-D0QUGA_X.js} +1 -1
  101. package/dist/{server-methods-BgZzcT_t.js → server-methods-CBQha8Aw.js} +7 -7
  102. package/dist/{server-methods-C0qS1GBg.js → server-methods-pP1Q9SDn.js} +7 -7
  103. package/dist/{server-node-events-CCfQHLwH.js → server-node-events-CfY2QTYr.js} +2 -2
  104. package/dist/{server-node-events-BqTGMdx6.js → server-node-events-aW9AFIXA.js} +2 -2
  105. package/dist/{status-uaQ9lnOb.js → status-BKc593Qu.js} +1 -1
  106. package/dist/{status-C0ghzWRG.js → status-BNOqNwMY.js} +1 -1
  107. package/dist/{status-C_eTc_yp.js → status-DYp8kqmj.js} +2 -2
  108. package/dist/{status-BzeN5Od7.js → status-iwhTBXbZ.js} +2 -2
  109. package/dist/{subagent-registry-CtKDHowr.js → subagent-registry-yBrXpTO-.js} +304 -102
  110. package/dist/{update-cli-CYjjpmcv.js → update-cli-B8lS5-Z5.js} +8 -8
  111. package/dist/{update-cli-B2AkRDy-.js → update-cli-Cma87YH0.js} +7 -7
  112. package/dist/{update-runner-C71_pwI8.js → update-runner-Cx6XjioC.js} +1 -1
  113. package/dist/{update-runner-Co1TMSnd.js → update-runner-DZmjPgW-.js} +1 -1
  114. package/dist/{web-DOlZ2V8e.js → web-B9ciy43q.js} +6 -6
  115. package/dist/{web-YnBBOOGf.js → web-BWuN3c4n.js} +6 -6
  116. package/dist/{web-x4zdMRTu.js → web-C5liFFox.js} +1 -1
  117. package/dist/{web-DyULVUaV.js → web-CycbZoQb.js} +2 -2
  118. package/package.json +1 -1
@@ -13,14 +13,14 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
13
13
  import { t as note$1 } from "./note-DeHoW7xO.js";
14
14
  import { t as WizardCancelledError } from "./prompts-Xu2Sveka.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-B7pN13HV.js";
16
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-Dj_lMj0q.js";
16
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-CaRYhl9J.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-2mwX-jqj.js";
18
18
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
19
- import { r as healthCommand } from "./health-DhqSQMPI.js";
19
+ import { r as healthCommand } from "./health-BMKu3MJz.js";
20
20
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
21
21
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
22
22
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BLzEBA1v.js";
23
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-CzrXJoq0.js";
23
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-Cy78Q2jy.js";
24
24
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-Ddo3jHe-.js";
25
25
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-aQ75ZlXY.js";
26
26
  import { a as promptCustomApiConfig } from "./onboard-custom-C7O-zfQ1.js";
@@ -322,27 +322,9 @@ function stripModelTokensClient(text) {
322
322
  return cleaned;
323
323
  }
324
324
 
325
- // ── Self-reflection monologue filter ─────────────────────────────────
326
- const MONOLOGUE_PATTERNS = [
327
- /^I have not yet (?:successfully )?fulfilled/i,
328
- /^Current Status:\s*\n/i,
329
- /^Plan to fix:/i,
330
- /^Address requirements:/i,
331
- /^Let me (?:check|assess|evaluate) (?:my|the) (?:progress|status)/i,
332
- /^(?:Task|Goal) (?:Status|Progress|Assessment):/i,
333
- /^I (?:need to|should|must) (?:now |next )?(?:verify|check|confirm|assess)/i,
334
- /^Verification:.*(?:failed|passed|pending)/i,
335
- /^Self-assessment:/i,
336
- ];
337
-
338
- function isInternalMonologue(text) {
339
- const profile = window.activeModelProfile;
340
- if (profile?.filters?.suppressMonologue !== true) {
341
- return false;
342
- }
343
- const trimmed = text.trim();
344
- return MONOLOGUE_PATTERNS.some((re) => re.test(trimmed));
345
- }
325
+ // NOTE: Monologue suppression has moved to the OutputNormalizer (server-side).
326
+ // The model stream is cleaned before events reach the Glass UI, so client-side
327
+ // monologue detection is no longer needed.
346
328
 
347
329
  // ── Markdown renderer ─────────────────────────────────────────────────
348
330
  function renderMarkdown(text) {
@@ -805,17 +787,7 @@ window.renderMessage = function (message) {
805
787
  return null;
806
788
  }
807
789
 
808
- // Internal monologue filter route Gemma self-reflection to Reasoning Panel
809
- if (!isUser && isInternalMonologue(_msgText)) {
810
- if (typeof window.appendToReasoningPanel === "function") {
811
- window.appendToReasoningPanel({
812
- type: "thinking",
813
- thinking: _msgText,
814
- _source: "monologue-filter",
815
- });
816
- }
817
- return null;
818
- }
790
+ // NOTE: Monologue suppression moved server-side to OutputNormalizer.
819
791
 
820
792
  // Plugin context messages (e.g. "[Outlook 365] Not connected...")
821
793
  if (role === "user" && /^\[.+\]\s+(Not connected|Connected as)\b/i.test(_msgText)) {
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
6
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Cn6drXx2.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-71oIavrF.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-lgx_U5KS.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-B8kqLWns.js";
9
9
  import { d as getChannelDock } from "./thinking-W85Rb32m.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-DTMTDXwE.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
@@ -5,7 +5,7 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, x as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
6
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-H1H1LiSQ.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DQYI3Fr-.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-DLFjnVBb.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-ag2bosuj.js";
9
9
  import { d as getChannelDock } from "./thinking-CdlENGRW.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BW5f05BR.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DeHoW7xO.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-C5YhoKGC.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DZf03KrT.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-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-zIGxgk1g.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cm8iWdRA.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-GCA3ZWtS.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-Ck0iMwKh.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
  });
@@ -7,13 +7,13 @@ import { a as resolveAgentIdentity } from "./reply-prefix-K_J_nfgx.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-Cn6drXx2.js";
10
- import { D as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-BUYWm5p1.js";
10
+ import { D as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-RoXbo73e.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";
14
14
  import "./send-D-hWrHoH.js";
15
15
  import "./send-C1IYd3g7.js";
16
- import "./deliver-BH0l3UKW.js";
16
+ import "./deliver-C-37cZUe.js";
17
17
  import "./diagnostic-D0xmLpej.js";
18
18
  import "./diagnostic-session-state-C1vRJs5w.js";
19
19
  import "./accounts-8zZqL37v.js";
@@ -21,10 +21,10 @@ import "./send-C4Ucr8ep.js";
21
21
  import "./image-ops-ByaQt43P.js";
22
22
  import "./pi-model-discovery-j5tVLINv.js";
23
23
  import "./message-channel-BQINJQIT.js";
24
- import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-lgx_U5KS.js";
24
+ import { G as saveSessionStore, H as loadSessionStore } from "./pi-embedded-helpers-B8kqLWns.js";
25
25
  import "./config-BmV60pPT.js";
26
26
  import "./manifest-registry-D-mTF1cj.js";
27
- import "./chrome-CDJYxX5a.js";
27
+ import "./chrome-D2SKJnR7.js";
28
28
  import "./skills-BNpGMnp-.js";
29
29
  import "./redact-1NGYV_8p.js";
30
30
  import "./errors-CPfngF0S.js";
@@ -34,7 +34,7 @@ import "./thinking-W85Rb32m.js";
34
34
  import "./accounts-DImOt9jX.js";
35
35
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DkMamAQ-.js";
36
36
  import "./tool-images-ChC2CXaN.js";
37
- import "./image-CHzdaNJ4.js";
37
+ import "./image-DcpMiprB.js";
38
38
  import "./manager-jpn5vRTY.js";
39
39
  import "./gemini-auth-CSlZZ1Pw.js";
40
40
  import "./sqlite-BNh23mUR.js";
@@ -47,7 +47,7 @@ import "./ir-F0moAwIl.js";
47
47
  import "./render-B1VqYyvo.js";
48
48
  import "./commands-registry-C_aYUwpl.js";
49
49
  import "./skill-commands-DklY7Cj7.js";
50
- import "./runner-DUBExAb5.js";
50
+ import "./runner-BcQ0sF9T.js";
51
51
  import "./fetch-DtLn7YU3.js";
52
52
  import "./channel-activity-D9q-fIPB.js";
53
53
  import "./tables-COnZ169v.js";
@@ -21,7 +21,7 @@ import "./pairing-token-Byh6drgn.js";
21
21
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
22
22
  import { a as isValidIPv4, c as resolveClientIp, d as resolveHostName, f as rawDataToString, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, t as isLoopbackAddress, u as resolveGatewayListenHosts } from "./net-DZ5Ayk-W.js";
23
23
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-Cmumpn76.js";
24
- import { $ as resolveCronStyleNow, $t as setGatewaySigusr1RestartPolicy, An as DEFAULT_INPUT_MAX_REDIRECTS, At as normalizeOptionalAgentId, Cr as getAgentRunContext, Ct as summarizeRestartSentinel, D as createDefaultDeps, E as createOutboundSendDeps, Et as normalizeHttpWebhookUrl, Fn as resolveInputFileLimits, Ft as migrateLegacyCronPayload, Ht as detectSuspiciousPatterns, It as buildDeliveryFromLegacyPayload, J as getTotalPendingReplies, Jt as deferGatewayRestartUntilIdle, Ln as resolveAgentTimeoutMs, Lt as hasLegacyDeliveryHints, Mn as extractFileContentFromSource, Mt as normalizeOptionalText, N as resolveModelProfile, Nn as extractImageContentFromSource, Nt as normalizePayloadToSystemText, On as DEFAULT_INPUT_IMAGE_MAX_BYTES, P as resolveAgentAvatar, Pn as normalizeMimeList, Pt as normalizeRequiredName, Rt as stripLegacyDeliveryFields, S as agentCommand, Sr as emitAgentEvent, Tr as registerAgentRunContext, Ut as getHookType, V as buildHistoryContextFromEntries, Vt as buildSafeExternalPrompt, Wt as isExternalHookSession, Xt as isGatewaySigusr1RestartExternallyAllowed, Yt as emitGatewayRestart, Zt as markGatewaySigusr1RestartHandled, _ as handleSlackHttpRequest, _t as runWithModelFallback, at as readLatestAssistantReply, b as computeBackoff, br as stripHeartbeatToken, dr as getTotalQueueSize, en as setPreRestartDeferralCheck, et as getCliSessionId, f as stripModelTokens, fn as requestHeartbeatNow, fr as resetAllLanes, ft as resolveOutboundTarget, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as loadSymiPlugins, hr as CommandLane, ht as resetDirectoryCache, i as listDescendantRunsForRequester, it as createSymiTools, j as getActiveEmbeddedRunCount, jn as DEFAULT_INPUT_TIMEOUT_MS, jt as normalizeOptionalSessionKey, k as runEmbeddedPiAgent, kn as DEFAULT_INPUT_IMAGE_MIMES, kt as inferLegacyName, l as applyToolPolicyPipeline, lr as getActiveTaskCount, lt as resolveOutboundSessionRoute, mr as waitForActiveTasks, n as countActiveRunsForSession, nt as runCliAgent, ot as resolveAnnounceTargetFromKey, p as getPluginToolMeta, pr as setCommandLaneConcurrency, pt as resolveSessionDeliveryTarget, qt as consumeGatewaySigusr1RestartAuthorization, r as initSubagentRegistry, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as setCliSessionId, u as buildDefaultToolPolicyPipelineSteps, v as readJsonBodyWithLimit, wn as enqueueSystemEvent, wr as onAgentEvent, x as sleepWithAbort, xr as clearAgentRunContext, xt as formatRestartSentinelMessage, y as requestBodyErrorToText, yt as consumeRestartSentinel } from "./subagent-registry-CtKDHowr.js";
24
+ import { $ as getCliSessionId, $t as setPreRestartDeferralCheck, A as getActiveEmbeddedRunCount, An as DEFAULT_INPUT_TIMEOUT_MS, At as normalizeOptionalSessionKey, B as buildHistoryContextFromEntries, Bt as buildSafeExternalPrompt, Cn as enqueueSystemEvent, Cr as onAgentEvent, Dn as DEFAULT_INPUT_IMAGE_MAX_BYTES, E as createDefaultDeps, Ft as buildDeliveryFromLegacyPayload, Ht as getHookType, In as resolveAgentTimeoutMs, It as hasLegacyDeliveryHints, Jt as emitGatewayRestart, Kt as consumeGatewaySigusr1RestartAuthorization, Lt as stripLegacyDeliveryFields, M as resolveModelProfile, Mn as extractImageContentFromSource, Mt as normalizePayloadToSystemText, N as resolveAgentAvatar, Nn as normalizeMimeList, Nt as normalizeRequiredName, O as runEmbeddedPiAgent, On as DEFAULT_INPUT_IMAGE_MIMES, Ot as inferLegacyName, Pn as resolveInputFileLimits, Pt as migrateLegacyCronPayload, Q as resolveCronStyleNow, Qt as setGatewaySigusr1RestartPolicy, Sr as getAgentRunContext, St as summarizeRestartSentinel, T as createOutboundSendDeps, Tt as normalizeHttpWebhookUrl, Ut as isExternalHookSession, Vt as detectSuspiciousPatterns, Xt as markGatewaySigusr1RestartHandled, Yt as isGatewaySigusr1RestartExternallyAllowed, _ as readJsonBodyWithLimit, at as resolveAnnounceTargetFromKey, b as sleepWithAbort, br as clearAgentRunContext, bt as formatRestartSentinelMessage, cr as getActiveTaskCount, ct as resolveOutboundSessionRoute, dn as requestHeartbeatNow, dr as resetAllLanes, dt as resolveOutboundTarget, et as setCliSessionId, f as getPluginToolMeta, fr as setCommandLaneConcurrency, ft as resolveSessionDeliveryTarget, g as handleSlackHttpRequest, gt as runWithModelFallback, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, i as listDescendantRunsForRequester, it as readLatestAssistantReply, jn as extractFileContentFromSource, jt as normalizeOptionalText, kn as DEFAULT_INPUT_MAX_REDIRECTS, kt as normalizeOptionalAgentId, l as applyToolPolicyPipeline, m as loadSymiPlugins, mr as CommandLane, mt as resetDirectoryCache, n as countActiveRunsForSession, pr as waitForActiveTasks, q as getTotalPendingReplies, qt as deferGatewayRestartUntilIdle, r as initSubagentRegistry, rt as createSymiTools, s as runSubagentAnnounceFlow, t as countActiveDescendantRuns, tt as runCliAgent, u as buildDefaultToolPolicyPipelineSteps, ur as getTotalQueueSize, v as requestBodyErrorToText, vt as consumeRestartSentinel, wr as registerAgentRunContext, x as agentCommand, xr as emitAgentEvent, y as computeBackoff, yr as stripHeartbeatToken } from "./subagent-registry-yBrXpTO-.js";
25
25
  import { D as resolveSessionResetPolicy, F as resolveMainSessionKey, H as cleanStaleLockFiles, I as resolveMainSessionKeyFromConfig, K as mergeDeliveryContext, M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, T as evaluateSessionFreshness, W as deliveryContextFromSession, d as updateSessionStore, n as parseSessionThreadInfo, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
26
26
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Csntmwwn.js";
27
27
  import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -130,20 +130,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
130
130
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BtG9rny3.js";
131
131
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-Byo5jCLN.js";
132
132
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-CA_XIzr_.js";
133
- import { i as pickGatewaySelfPresence } from "./status-BzeN5Od7.js";
134
- import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-DCb7BG-3.js";
133
+ import { i as pickGatewaySelfPresence } from "./status-iwhTBXbZ.js";
134
+ import { a as styleHealthChannelLine, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-CGoPVhko.js";
135
135
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
136
136
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
137
- import { t as runOnboardingWizard } from "./onboarding-Dm9fej7n.js";
138
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-BgZzcT_t.js";
139
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-D-D1fcAb.js";
137
+ import { t as runOnboardingWizard } from "./onboarding-CNgU4kg8.js";
138
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-CBQha8Aw.js";
139
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DSpV-UMg.js";
140
140
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CzWeiE-Y.js";
141
- import "./agents.config-DijsN6pE.js";
141
+ import "./agents.config-aAHTt-cM.js";
142
142
  import "./dm-policy-shared-DJ-61hCT.js";
143
143
  import "./node-service-fcZExd22.js";
144
144
  import "./status.update-DbmZz0Aq.js";
145
145
  import "./skills-install-1ZdwGTnh.js";
146
- import "./update-runner-C71_pwI8.js";
146
+ import "./update-runner-Cx6XjioC.js";
147
147
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
148
148
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
149
149
  import { n as forceFreePortAndWait } from "./ports-Dn122MUd.js";
@@ -1860,27 +1860,6 @@ function createChannelManager(opts) {
1860
1860
 
1861
1861
  //#endregion
1862
1862
  //#region src/gateway/server-chat.ts
1863
- /**
1864
- * Strip Gemma's self-verification monologue blocks from the final text.
1865
- * Gemma produces several variants of this pattern:
1866
- * "I have addressed the request fully.\n**Verification:**\n..."
1867
- * "I've reviewed my response against your request:\n1. Requirements:..."
1868
- * "**Verification:**\n1. **Address requirements:**..."
1869
- */
1870
- const MONOLOGUE_PATTERNS = [
1871
- /\n*I have addressed the request fully\.?\s*(?:\n[\s\S]*)?$/,
1872
- /\n*I['']ve reviewed my response[\s\S]*$/,
1873
- /\n*\*?\*?Verification:?\*?\*?\s*\n[\s\S]*?(?:Everything is correct|All requirements met)\.?\s*✅?\s*$/,
1874
- /\n*(?:\*?\*?)?(?:Status Check|Address requirements|Requirements):?(?:\*?\*?)?\s*\n[\s\S]*?(?:Everything is correct|All requirements met|is correct)\.?\s*✅?\s*$/,
1875
- /\n*\d+\.\s*\*?\*?Requirements:?\*?\*?[\s\S]*?\d+\.\s*\*?\*?Verification:?\*?\*?[\s\S]*$/
1876
- ];
1877
- function suppressMonologueBlock(text) {
1878
- for (const pattern of MONOLOGUE_PATTERNS) {
1879
- const result = text.replace(pattern, "");
1880
- if (result !== text && result.trim()) return result.trim();
1881
- }
1882
- return text;
1883
- }
1884
1863
  function resolveHeartbeatAckMaxChars$1() {
1885
1864
  try {
1886
1865
  const cfg = loadConfig();
@@ -2065,11 +2044,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2065
2044
  nodeSendToSession(sessionKey, "chat", payload);
2066
2045
  };
2067
2046
  const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
2068
- let remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2069
- if (remainingDelta) try {
2070
- const flushModelId = loadConfig().agents?.defaults?.model?.primary;
2071
- if (flushModelId) remainingDelta = stripModelTokens(remainingDelta, flushModelId);
2072
- } catch {}
2047
+ const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2073
2048
  if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
2074
2049
  const flushPayload = {
2075
2050
  runId: clientRunId,
@@ -2090,19 +2065,10 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2090
2065
  nodeSendToSession(sessionKey, "chat", flushPayload);
2091
2066
  }
2092
2067
  chatRunState.pendingDeltaText.delete(clientRunId);
2093
- let bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
2094
- try {
2095
- const modelId = loadConfig().agents?.defaults?.model?.primary;
2096
- if (modelId) {
2097
- const profile = resolveModelProfile(modelId);
2098
- bufferedText = stripModelTokens(bufferedText, modelId);
2099
- if (profile.filters.suppressMonologue) bufferedText = suppressMonologueBlock(bufferedText);
2100
- }
2101
- } catch {}
2102
2068
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2103
2069
  runId: clientRunId,
2104
2070
  sourceRunId,
2105
- text: bufferedText
2071
+ text: chatRunState.buffers.get(clientRunId)?.trim() ?? ""
2106
2072
  });
2107
2073
  const text = normalizedHeartbeatText.text.trim();
2108
2074
  const shouldSuppressSilent = normalizedHeartbeatText.suppress || isSilentReplyText(text, SILENT_REPLY_TOKEN);
@@ -11729,7 +11695,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11729
11695
  });
11730
11696
  let glassUiBridgeCleanup = null;
11731
11697
  if (!minimalTestGateway) {
11732
- const { createGlassUiBridge } = await import("./glass-ui-ws-B4jT1ok5.js");
11698
+ const { createGlassUiBridge } = await import("./glass-ui-ws-Cykb9Xv4.js");
11733
11699
  glassUiBridgeCleanup = createGlassUiBridge({
11734
11700
  wss: glassUiWss,
11735
11701
  context: gatewayRequestContext,
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
4
- import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as countActiveRunsForSession, Ar as extractFileContentFromSource, B as summarizeRestartSentinel, Bn as onAgentEvent, Bt as runEmbeddedPiAgent, Ct as readJsonBodyWithLimit, Dr as DEFAULT_INPUT_IMAGE_MIMES, Dt as agentCommand, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MAX_BYTES, Et as sleepWithAbort, F as setPreRestartDeferralCheck, Fn as runSubagentAnnounceFlow, Fr as resolveAgentTimeoutMs, Ft as createOutboundSendDeps, Gt as runWithModelFallback, Ht as getActiveEmbeddedRunCount, I as consumeRestartSentinel, In as readLatestAssistantReply, J as normalizeOptionalSessionKey, Jt as runCliAgent, K as inferLegacyName, Kt as getCliSessionId, Ln as clearAgentRunContext, M as markGatewaySigusr1RestartHandled, Mn as listDescendantRunsForRequester, Mr as normalizeMimeList, Nr as resolveInputFileLimits, Nt as resolveOutboundTarget, O as consumeGatewaySigusr1RestartAuthorization, Or as DEFAULT_INPUT_MAX_REDIRECTS, P as setGatewaySigusr1RestartPolicy, Pt as resolveSessionDeliveryTarget, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as emitAgentEvent, Rt as createDefaultDeps, Sr as enqueueSystemEvent, St as handleSlackHttpRequest, Tt as computeBackoff, U as normalizeHttpWebhookUrl, Vn as registerAgentRunContext, Wt as resolveModelProfile, X as normalizePayloadToSystemText, Y as normalizeOptionalText, Z as normalizeRequiredName, Zt as resolveAgentAvatar, ar as resetAllLanes, cr as CommandLane, ct as requestHeartbeatNow, d as createSymiTools, dt as getPluginToolMeta, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, gn as getTotalPendingReplies, i as resolveCronStyleNow, in as isExternalHookSession, ir as getTotalQueueSize, j as isGatewaySigusr1RestartExternallyAllowed, jn as initSubagentRegistry, jr as extractImageContentFromSource, k as deferGatewayRestartUntilIdle, kn as countActiveDescendantRuns, kr as DEFAULT_INPUT_TIMEOUT_MS, l as applyToolPolicyPipeline, ln as buildHistoryContextFromEntries, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, mr as lookupContextTokens, nn as detectSuspiciousPatterns, nr as getActiveTaskCount, or as setCommandLaneConcurrency, pr as stripHeartbeatToken, pt as loadSymiPlugins, q as normalizeOptionalAgentId, qt as setCliSessionId, rn as getHookType, sr as waitForActiveTasks, st as stripModelTokens, tn as buildSafeExternalPrompt, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as requestBodyErrorToText, zn as getAgentRunContext } from "./reply-BWno_mxL.js";
4
+ import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as initSubagentRegistry, Ar as extractImageContentFromSource, B as summarizeRestartSentinel, Bn as registerAgentRunContext, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as readLatestAssistantReply, Gt as getCliSessionId, I as consumeRestartSentinel, In as clearAgentRunContext, J as normalizeOptionalSessionKey, K as inferLegacyName, Kt as setCliSessionId, Ln as emitAgentEvent, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mr as resolveInputFileLimits, Mt as resolveOutboundTarget, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, P as setGatewaySigusr1RestartPolicy, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as getAgentRunContext, St as readJsonBodyWithLimit, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as resolveModelProfile, Vt as getActiveEmbeddedRunCount, Wt as runWithModelFallback, X as normalizePayloadToSystemText, Xt as resolveAgentAvatar, Y as normalizeOptionalText, Z as normalizeRequiredName, ar as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createSymiTools, en as buildSafeExternalPrompt, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, ft as loadSymiPlugins, hn as getTotalPendingReplies, i as resolveCronStyleNow, ir as resetAllLanes, j as isGatewaySigusr1RestartExternallyAllowed, jn as listDescendantRunsForRequester, jr as normalizeMimeList, k as deferGatewayRestartUntilIdle, kn as countActiveRunsForSession, kr as extractFileContentFromSource, l as applyToolPolicyPipeline, nn as getHookType, or as waitForActiveTasks, pr as lookupContextTokens, q as normalizeOptionalAgentId, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, sr as CommandLane, st as requestHeartbeatNow, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xr as enqueueSystemEvent, xt as handleSlackHttpRequest, zn as onAgentEvent, zt as runEmbeddedPiAgent } from "./reply-DiFKjgpz.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { r as matchesSkillFilter, t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, w as registerInternalHook } from "./registry-Cja8eT7G.js";
@@ -135,20 +135,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
135
135
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BJvwnR5z.js";
136
136
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CrITRV6w.js";
137
137
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BHTF5p0X.js";
138
- import { r as pickGatewaySelfPresence } from "./status-C_eTc_yp.js";
139
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-DhqSQMPI.js";
138
+ import { r as pickGatewaySelfPresence } from "./status-DYp8kqmj.js";
139
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-BMKu3MJz.js";
140
140
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
141
141
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
142
- import { t as runOnboardingWizard } from "./onboarding-DLyAGYc6.js";
143
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-C0qS1GBg.js";
144
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-7t_aUx_g.js";
142
+ import { t as runOnboardingWizard } from "./onboarding-Gsj-iMyY.js";
143
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-pP1Q9SDn.js";
144
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CZw1UMXk.js";
145
145
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Bv0M7ka7.js";
146
- import "./agents.config-BJhlUUzn.js";
146
+ import "./agents.config-CsltNAhl.js";
147
147
  import "./dm-policy-shared-Bh3TbexU.js";
148
148
  import "./node-service-Cxz4e-Qd.js";
149
149
  import "./status.update-DtwCUTf-.js";
150
150
  import "./skills-install-D67isO1L.js";
151
- import "./update-runner-Co1TMSnd.js";
151
+ import "./update-runner-DZmjPgW-.js";
152
152
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
153
153
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
154
154
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -1864,27 +1864,6 @@ function createChannelManager(opts) {
1864
1864
 
1865
1865
  //#endregion
1866
1866
  //#region src/gateway/server-chat.ts
1867
- /**
1868
- * Strip Gemma's self-verification monologue blocks from the final text.
1869
- * Gemma produces several variants of this pattern:
1870
- * "I have addressed the request fully.\n**Verification:**\n..."
1871
- * "I've reviewed my response against your request:\n1. Requirements:..."
1872
- * "**Verification:**\n1. **Address requirements:**..."
1873
- */
1874
- const MONOLOGUE_PATTERNS = [
1875
- /\n*I have addressed the request fully\.?\s*(?:\n[\s\S]*)?$/,
1876
- /\n*I['']ve reviewed my response[\s\S]*$/,
1877
- /\n*\*?\*?Verification:?\*?\*?\s*\n[\s\S]*?(?:Everything is correct|All requirements met)\.?\s*✅?\s*$/,
1878
- /\n*(?:\*?\*?)?(?:Status Check|Address requirements|Requirements):?(?:\*?\*?)?\s*\n[\s\S]*?(?:Everything is correct|All requirements met|is correct)\.?\s*✅?\s*$/,
1879
- /\n*\d+\.\s*\*?\*?Requirements:?\*?\*?[\s\S]*?\d+\.\s*\*?\*?Verification:?\*?\*?[\s\S]*$/
1880
- ];
1881
- function suppressMonologueBlock(text) {
1882
- for (const pattern of MONOLOGUE_PATTERNS) {
1883
- const result = text.replace(pattern, "");
1884
- if (result !== text && result.trim()) return result.trim();
1885
- }
1886
- return text;
1887
- }
1888
1867
  function resolveHeartbeatAckMaxChars$1() {
1889
1868
  try {
1890
1869
  const cfg = loadConfig();
@@ -2069,11 +2048,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2069
2048
  nodeSendToSession(sessionKey, "chat", payload);
2070
2049
  };
2071
2050
  const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
2072
- let remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2073
- if (remainingDelta) try {
2074
- const flushModelId = loadConfig().agents?.defaults?.model?.primary;
2075
- if (flushModelId) remainingDelta = stripModelTokens(remainingDelta, flushModelId);
2076
- } catch {}
2051
+ const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2077
2052
  if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
2078
2053
  const flushPayload = {
2079
2054
  runId: clientRunId,
@@ -2094,19 +2069,10 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2094
2069
  nodeSendToSession(sessionKey, "chat", flushPayload);
2095
2070
  }
2096
2071
  chatRunState.pendingDeltaText.delete(clientRunId);
2097
- let bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
2098
- try {
2099
- const modelId = loadConfig().agents?.defaults?.model?.primary;
2100
- if (modelId) {
2101
- const profile = resolveModelProfile(modelId);
2102
- bufferedText = stripModelTokens(bufferedText, modelId);
2103
- if (profile.filters.suppressMonologue) bufferedText = suppressMonologueBlock(bufferedText);
2104
- }
2105
- } catch {}
2106
2072
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2107
2073
  runId: clientRunId,
2108
2074
  sourceRunId,
2109
- text: bufferedText
2075
+ text: chatRunState.buffers.get(clientRunId)?.trim() ?? ""
2110
2076
  });
2111
2077
  const text = normalizedHeartbeatText.text.trim();
2112
2078
  const shouldSuppressSilent = normalizedHeartbeatText.suppress || isSilentReplyText(text, SILENT_REPLY_TOKEN);
@@ -11733,7 +11699,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11733
11699
  });
11734
11700
  let glassUiBridgeCleanup = null;
11735
11701
  if (!minimalTestGateway) {
11736
- const { createGlassUiBridge } = await import("./glass-ui-ws-B8ap5D2v.js");
11702
+ const { createGlassUiBridge } = await import("./glass-ui-ws-Bg6ek2Vs.js");
11737
11703
  glassUiBridgeCleanup = createGlassUiBridge({
11738
11704
  wss: glassUiWss,
11739
11705
  context: gatewayRequestContext,
@@ -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 "./reply-BWno_mxL.js";
4
+ import "./reply-DiFKjgpz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -113,18 +113,18 @@ import "./service-Cl74hx8J.js";
113
113
  import "./diagnostics-BAMlsVVX.js";
114
114
  import "./table-BTgkRafz.js";
115
115
  import "./audit-CrITRV6w.js";
116
- import "./status-C_eTc_yp.js";
117
- import "./health-DhqSQMPI.js";
116
+ import "./status-DYp8kqmj.js";
117
+ import "./health-BMKu3MJz.js";
118
118
  import "./control-ui-assets-Z947tKLt.js";
119
119
  import "./update-check-CtckACbb.js";
120
- import { n as handleGatewayRequest } from "./server-methods-C0qS1GBg.js";
121
- import "./push-apns-7t_aUx_g.js";
122
- import "./agents.config-BJhlUUzn.js";
120
+ import { n as handleGatewayRequest } from "./server-methods-pP1Q9SDn.js";
121
+ import "./push-apns-CZw1UMXk.js";
122
+ import "./agents.config-CsltNAhl.js";
123
123
  import "./dm-policy-shared-Bh3TbexU.js";
124
124
  import "./node-service-Cxz4e-Qd.js";
125
125
  import "./status.update-DtwCUTf-.js";
126
126
  import "./skills-install-D67isO1L.js";
127
- import "./update-runner-Co1TMSnd.js";
127
+ import "./update-runner-DZmjPgW-.js";
128
128
 
129
129
  //#region src/gateway/glass-ui-ws.ts
130
130
  const SESSION_KEY = "agent:main:main";
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
13
13
  import "./call-BcE47FtD.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-CtKDHowr.js";
16
+ import "./subagent-registry-yBrXpTO-.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -108,18 +108,18 @@ import "./service-Cm9j9WzQ.js";
108
108
  import "./diagnostics-CS1ov_hH.js";
109
109
  import "./table-D01d2GuY.js";
110
110
  import "./audit-Byo5jCLN.js";
111
- import "./status-BzeN5Od7.js";
112
- import "./health-DCb7BG-3.js";
111
+ import "./status-iwhTBXbZ.js";
112
+ import "./health-CGoPVhko.js";
113
113
  import "./control-ui-assets-BseSWee1.js";
114
114
  import "./update-check-ZdimP1aU.js";
115
- import { n as handleGatewayRequest } from "./server-methods-BgZzcT_t.js";
116
- import "./push-apns-D-D1fcAb.js";
117
- import "./agents.config-DijsN6pE.js";
115
+ import { n as handleGatewayRequest } from "./server-methods-CBQha8Aw.js";
116
+ import "./push-apns-DSpV-UMg.js";
117
+ import "./agents.config-aAHTt-cM.js";
118
118
  import "./dm-policy-shared-DJ-61hCT.js";
119
119
  import "./node-service-fcZExd22.js";
120
120
  import "./status.update-DbmZz0Aq.js";
121
121
  import "./skills-install-1ZdwGTnh.js";
122
- import "./update-runner-C71_pwI8.js";
122
+ import "./update-runner-Cx6XjioC.js";
123
123
 
124
124
  //#region src/gateway/glass-ui-ws.ts
125
125
  const SESSION_KEY = "agent:main:main";
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-B-0b9bGM.js";
2
- import { Hn as resolveUserTimezone, Mt as resolveHeartbeatSenderContext, cr as CommandLane, ct as requestHeartbeatNow, dr as isHeartbeatContentEffectivelyEmpty, fr as resolveHeartbeatPrompt$1, jt as resolveHeartbeatDeliveryTarget, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lt as setHeartbeatWakeHandler, pr as stripHeartbeatToken, r as appendCronStyleCurrentTimeLine, rr as getQueueSize, t as getReplyFromConfig, ur as DEFAULT_HEARTBEAT_EVERY, ut as resolveHeartbeatReasonKind, wr as peekSystemEventEntries } from "./reply-BWno_mxL.js";
2
+ import { At as resolveHeartbeatDeliveryTarget, Cr as peekSystemEventEntries, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ct as setHeartbeatWakeHandler, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, lt as resolveHeartbeatReasonKind, nr as getQueueSize, r as appendCronStyleCurrentTimeLine, sr as CommandLane, st as requestHeartbeatNow, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-DiFKjgpz.js";
3
3
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
@@ -4,7 +4,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
4
4
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-D-jRCY0d.js";
5
5
  import { C as parseDurationMs, i as loadConfig } from "./config-DHBLS1Hl.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
7
- import { En as peekSystemEventEntries, Q as appendCronStyleCurrentTimeLine, X as getReplyFromConfig, Yn as resolveUserTimezone, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, dt as resolveHeartbeatSenderContext, fn as requestHeartbeatNow, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, mn as resolveHeartbeatReasonKind, pn as setHeartbeatWakeHandler, ur as getQueueSize, ut as resolveHeartbeatDeliveryTarget, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./subagent-registry-CtKDHowr.js";
7
+ import { Jn as resolveUserTimezone, Tn as peekSystemEventEntries, Y as getReplyFromConfig, Z as appendCronStyleCurrentTimeLine, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-yBrXpTO-.js";
8
8
  import { M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
9
9
  import { r as SYMIPULSE_TOKEN } from "./tokens-Csntmwwn.js";
10
10
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -15,7 +15,7 @@ import "./client-DMBZpU6X.js";
15
15
  import "./call-BcE47FtD.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-CtKDHowr.js";
18
+ import "./subagent-registry-yBrXpTO-.js";
19
19
  import "./sessions-CJXnZVjR.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -104,7 +104,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
104
104
  import { t as renderTable } from "./table-D01d2GuY.js";
105
105
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
106
106
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CEoLdlyb.js";
107
- import { t as buildPluginStatusReport } from "./status-C0ghzWRG.js";
107
+ import { t as buildPluginStatusReport } from "./status-BNOqNwMY.js";
108
108
  import path from "node:path";
109
109
  import fs from "node:fs";
110
110
  import fs$1 from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-BWno_mxL.js";
4
+ import "./reply-DiFKjgpz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -108,7 +108,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
108
108
  import { t as renderTable } from "./table-BTgkRafz.js";
109
109
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
110
110
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BqLZtMLa.js";
111
- import { t as buildPluginStatusReport } from "./status-uaQ9lnOb.js";
111
+ import { t as buildPluginStatusReport } from "./status-BKc593Qu.js";
112
112
  import fs from "node:fs";
113
113
  import path from "node:path";
114
114
  import fs$1 from "node:fs/promises";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { R as shortenHomeInString, k as isRecord } from "./registry-CK4e9hn8.js";
3
3
  import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-DK43VicI.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-DLFjnVBb.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-ag2bosuj.js";
6
6
  import { n as loadConfig } from "./config-DRbjHIwD.js";
7
7
  import { n as redactToolDetail } from "./redact-jSxx6Ep2.js";
8
8
  import fs from "node:fs/promises";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { D as isRecord, I as shortenHomeInString } from "./registry-BhoUuugi.js";
3
3
  import { G as resolveSymiAgentDir, S as getApiKeyForModel, Y as normalizeSecretInput, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-BQCG9ah0.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-lgx_U5KS.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-B8kqLWns.js";
6
6
  import { n as loadConfig } from "./config-BmV60pPT.js";
7
7
  import { n as redactToolDetail } from "./redact-1NGYV_8p.js";
8
8
  import path from "node:path";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "./paths-Cqn-zk3M.js";
3
3
  import { B as theme, P as setVerbose, T as toWhatsappJid, l as escapeRegExp, m as normalizeE164, n as assertWebChannel, z as isRich } from "./utils-B-0b9bGM.js";
4
4
  import "./thinking-EAliFiVK.js";
5
- import { Rt as createDefaultDeps, t as getReplyFromConfig, xt as resolveCommitHash } from "./reply-BWno_mxL.js";
5
+ import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-DiFKjgpz.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime, r as enableConsoleCapture, u as visibleWidth } from "./subsystem-D9vIQve0.js";
8
8
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -103,7 +103,7 @@ import "./pi-tools.policy-CIDBbw6x.js";
103
103
  import "./control-service-Bz7rxLWq.js";
104
104
  import "./stagger-BUClb97_.js";
105
105
  import "./channel-selection-DuWs0Aak.js";
106
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-BxgOSVS3.js";
106
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-CrH0yvww.js";
107
107
  import "./outbound-DB5Zus0-.js";
108
108
  import "./session-DIBTkyvE.js";
109
109
  import "./login-dIlDkG4X.js";
@@ -112,10 +112,10 @@ import { t as ensureSymiCliOnPath } from "./path-env-MnzRq6nD.js";
112
112
  import { t as assertSupportedRuntime } from "./runtime-guard-B37eizu-.js";
113
113
  import "./ports-BX0kKI0g.js";
114
114
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-C6ovOie2.js";
115
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-LQmFqAP2.js";
115
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-27mCl36z.js";
116
116
  import "./catalog-RiADx7MA.js";
117
- import "./plugin-registry-ChH5CJIw.js";
118
- import { n as resolveCliChannelOptions } from "./channel-options-D4b4yiR3.js";
117
+ import "./plugin-registry-dNrBrnR0.js";
118
+ import { n as resolveCliChannelOptions } from "./channel-options-up8R2ST5.js";
119
119
  import process$1 from "node:process";
120
120
  import { fileURLToPath } from "node:url";
121
121
  import { Command } from "commander";
@@ -515,7 +515,7 @@ function registerPreActionHooks(program, programVersion) {
515
515
  commandPath
516
516
  });
517
517
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
518
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-ChH5CJIw.js").then((n) => n.n);
518
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-dNrBrnR0.js").then((n) => n.n);
519
519
  ensurePluginRegistryLoaded();
520
520
  }
521
521
  });