@symerian/symi 3.0.2 → 3.0.3

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 (156) hide show
  1. package/dist/{agents-DEYqmFEH.js → agents-CeafvAwk.js} +4 -4
  2. package/dist/{agents.config-TArPtTFt.js → agents.config-DyAqyKIS.js} +1 -1
  3. package/dist/{agents.config-ClI9Q05l.js → agents.config-wJSTSxHw.js} +1 -1
  4. package/dist/{auth-choice-kJVkaHx6.js → auth-choice-BrH3g0l7.js} +1 -1
  5. package/dist/{auth-choice-bOht3his.js → auth-choice-CSXt138B.js} +1 -1
  6. package/dist/{banner--HSjGLhi.js → banner-kkSwCGXn.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +2 -2
  9. package/dist/bundled/session-memory/handler.js +2 -2
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-C68HZtw7.js → channel-options-BC-QbEPJ.js} +1 -1
  12. package/dist/{channel-options-Cj2ZMHvy.js → channel-options-BdMw9pwh.js} +1 -1
  13. package/dist/{channel-web-BGZxsb8l.js → channel-web-B9o347ZR.js} +1 -1
  14. package/dist/{channels-cli-CLkq2ISd.js → channels-cli-CFZVgAxq.js} +6 -6
  15. package/dist/{channels-cli-C775zJjx.js → channels-cli-n1iS1gNN.js} +6 -6
  16. package/dist/{cli-B2FVKvPQ.js → cli-B3M7EAy1.js} +3 -3
  17. package/dist/{cli-8ibydSgl.js → cli-C852-xID.js} +3 -3
  18. package/dist/{command-registry-C-c2RS-n.js → command-registry-BRN6NMOS.js} +10 -10
  19. package/dist/{completion-cli-BLO_wsYD.js → completion-cli-CQtI0ASD.js} +2 -2
  20. package/dist/{completion-cli-IKI4BpqL.js → completion-cli-EvxmKJ-O.js} +1 -1
  21. package/dist/{config-cli-Bh8aPiiL.js → config-cli-CiV_YQf4.js} +1 -1
  22. package/dist/{config-cli-d4RU82ov.js → config-cli-DeCSlj0Y.js} +1 -1
  23. package/dist/{configure-DKmHXbug.js → configure-BE0YRZWd.js} +3 -3
  24. package/dist/{configure-jxJfT5_B.js → configure-By6_8Jvs.js} +3 -3
  25. package/dist/{doctor-completion-C7SuoBlz.js → doctor-completion-BmjVxgkV.js} +1 -1
  26. package/dist/{doctor-completion-VAGhCLD5.js → doctor-completion-Cts2UOop.js} +1 -1
  27. package/dist/entry.js +1 -1
  28. package/dist/extensionAPI.js +2 -2
  29. package/dist/{gateway-cli-BELyZGAU.js → gateway-cli-DO4uSyVT.js} +12 -12
  30. package/dist/{gateway-cli-D_SJFv7K.js → gateway-cli-bu8Eq_hB.js} +12 -12
  31. package/dist/{glass-ui-ws-0agRdhZD.js → glass-ui-ws-CUWkP3XZ.js} +10 -10
  32. package/dist/{glass-ui-ws-qPJDDUD9.js → glass-ui-ws-oxSeDi37.js} +10 -10
  33. package/dist/{health-BnGM6Yux.js → health-DZB8SV6G.js} +2 -2
  34. package/dist/{health-CCKCR4oM.js → health-N-jvgpZZ.js} +2 -2
  35. package/dist/{heartbeat-visibility-CG080wT5.js → heartbeat-visibility-D6uZvFVV.js} +1 -1
  36. package/dist/{heartbeat-visibility-C4Sg0QOd.js → heartbeat-visibility-_mPYbQT2.js} +1 -1
  37. package/dist/{hooks-cli-CtuiPrKW.js → hooks-cli-BFZv9uGo.js} +4 -4
  38. package/dist/{hooks-cli-B2WVvhgH.js → hooks-cli-DuKd3-QN.js} +4 -4
  39. package/dist/index.js +9 -9
  40. package/dist/llm-slug-generator.js +2 -2
  41. package/dist/{manager-zwcQLMln.js → manager-2D0Tevoj.js} +1 -1
  42. package/dist/{manager-DKUOUCmo.js → manager-DjHARmFk.js} +1 -1
  43. package/dist/{manager-B6EhIj3H.js → manager-DnkWmUWs.js} +1 -1
  44. package/dist/{manager-Mm_GQxOU.js → manager-Dp_9v8j5.js} +1 -1
  45. package/dist/{memory-cli-BEZM7jn9.js → memory-cli-D69x8sVz.js} +3 -3
  46. package/dist/{memory-cli-D4lLSeA1.js → memory-cli-z9Rsga03.js} +3 -3
  47. package/dist/{models-ElQijvpq.js → models-U6PPfAmY.js} +2 -2
  48. package/dist/{models-cli-14U59ejI.js → models-cli-DDev4qyK.js} +5 -5
  49. package/dist/{models-cli-Dtf5Zpgd.js → models-cli-DiqDhhoK.js} +4 -4
  50. package/dist/{onboard-CaYQVQYI.js → onboard-Bl0XFCEJ.js} +2 -2
  51. package/dist/{onboard-DN2xgEv1.js → onboard-DeH6Vxxg.js} +2 -2
  52. package/dist/{onboard-channels-C5sKGabO.js → onboard-channels-CkFD8gYa.js} +1 -1
  53. package/dist/{onboard-channels-B1fWI5k5.js → onboard-channels-Cky54l0-.js} +1 -1
  54. package/dist/{onboarding-BngFnwT6.js → onboarding-BZVJ24wI.js} +3 -3
  55. package/dist/{onboarding-DNIz481s.js → onboarding-DgpTBpWU.js} +3 -3
  56. package/dist/{onboarding.finalize-B-x_trN9.js → onboarding.finalize-DVSMLcSy.js} +8 -8
  57. package/dist/{onboarding.finalize-BA8-Tnhc.js → onboarding.finalize-YB2UOZUK.js} +9 -9
  58. package/dist/{pi-embedded-DUJ9Ytfn.js → pi-embedded-C6GkUoi8.js} +15 -6
  59. package/dist/{plugin-registry-C1xFJkog.js → plugin-registry-2T2NDPGh.js} +1 -1
  60. package/dist/{plugin-registry-CZS8ioCg.js → plugin-registry-739qhWq3.js} +1 -1
  61. package/dist/plugin-sdk/{channel-web-B_XlrV_E.js → channel-web-DAJtsqF_.js} +1 -1
  62. package/dist/plugin-sdk/index.js +3 -3
  63. package/dist/plugin-sdk/{manager-CJd0vK4S.js → manager-DhiL-RSO.js} +1 -1
  64. package/dist/plugin-sdk/{synthesis-Cre_3fLT.js → synthesis-cOQ27lCy.js} +2 -2
  65. package/dist/plugin-sdk/{unified-runner-BNQKFoGX.js → unified-runner-KBVvJUFF.js} +15 -6
  66. package/dist/plugin-sdk/{web-CE-OsTKq.js → web-Bj-jTlHW.js} +3 -3
  67. package/dist/{plugins-cli-BGccb2gT.js → plugins-cli-BrLY9BMq.js} +4 -4
  68. package/dist/{plugins-cli-f_Ncophh.js → plugins-cli-rLBIo-nA.js} +4 -4
  69. package/dist/{program-5Hto31sk.js → program-CKansE2A.js} +9 -9
  70. package/dist/{program-context-Baw4Oc1H.js → program-context-DlM7Bnwp.js} +18 -18
  71. package/dist/{prompt-select-styled-DHSySGF2.js → prompt-select-styled-RR_-htsV.js} +6 -6
  72. package/dist/{prompt-select-styled-Cm6mr7mH.js → prompt-select-styled-YeADoH1b.js} +6 -6
  73. package/dist/{provider-auth-helpers-_aPYnJCR.js → provider-auth-helpers-D7_-bTJg.js} +1 -1
  74. package/dist/{provider-auth-helpers-FdlXX50k.js → provider-auth-helpers-tiuH9v1U.js} +1 -1
  75. package/dist/{push-apns-DnMyTqrU.js → push-apns-BP1rb3hW.js} +1 -1
  76. package/dist/{push-apns-Dusza10V.js → push-apns-CB9rSO0r.js} +1 -1
  77. package/dist/{register.agent-TI-lzUMT.js → register.agent-BXfiPWJL.js} +8 -8
  78. package/dist/{register.agent-DibuuULq.js → register.agent-BadsiDY7.js} +7 -7
  79. package/dist/{register.configure-BbBU2vzP.js → register.configure-J5GbnUak.js} +9 -9
  80. package/dist/{register.configure-CE6z4EEp.js → register.configure-ndWF-EwD.js} +9 -9
  81. package/dist/{register.maintenance-Dsw96Q5M.js → register.maintenance-BAlGfjMJ.js} +10 -10
  82. package/dist/{register.maintenance-D_cRwoi6.js → register.maintenance-BvAh-5NH.js} +11 -11
  83. package/dist/{register.message-BqRfLqBs.js → register.message-CTQZsi6c.js} +4 -4
  84. package/dist/{register.message-7JdfRDPR.js → register.message-CyNUsm17.js} +4 -4
  85. package/dist/{register.onboard-7iv0kkQk.js → register.onboard-DPpsT1JH.js} +7 -7
  86. package/dist/{register.onboard-Ca5HGO6E.js → register.onboard-Dh4f0cDp.js} +7 -7
  87. package/dist/{register.setup-Cy3cIayc.js → register.setup-BrjFdUZ8.js} +7 -7
  88. package/dist/{register.setup-D7AKohSt.js → register.setup-DU8piCcQ.js} +7 -7
  89. package/dist/{register.status-health-sessions-BW51mzBs.js → register.status-health-sessions-Cyljneob.js} +6 -6
  90. package/dist/{register.status-health-sessions-DOkSVuJk.js → register.status-health-sessions-jQvctMC3.js} +6 -6
  91. package/dist/{register.subclis-p-z6ekaE.js → register.subclis-DOLKNKZj.js} +9 -9
  92. package/dist/{run-main-BhEacTM9.js → run-main-DnvLmulK.js} +17 -17
  93. package/dist/{server-methods-C8ff27p5.js → server-methods-DFQlsPZN.js} +9 -9
  94. package/dist/{server-methods-Bcwa782q.js → server-methods-DGQu3NEO.js} +9 -9
  95. package/dist/{server-node-events-B85y_7eX.js → server-node-events-BH1YaeId.js} +4 -4
  96. package/dist/{server-node-events-h8Af4ZTV.js → server-node-events-C3EVBwcx.js} +4 -4
  97. package/dist/{status-DsaLdb09.js → status-Cx2g82Iv.js} +3 -3
  98. package/dist/{status-DUGaRGN0.js → status-DBn69Azp.js} +3 -3
  99. package/dist/{status-DFBG2hcx.js → status-DX8BiUs2.js} +1 -1
  100. package/dist/{status-JL0CD-E1.js → status-DyQuiOVn.js} +1 -1
  101. package/dist/{subagent-registry-DXCGIrYv.js → subagent-registry-Y_8a_o-m.js} +14 -5
  102. package/dist/{synthesis-CLt-6Pzu.js → synthesis-BVbYJPM-.js} +3 -3
  103. package/dist/{synthesis-BxwFFuqZ.js → synthesis-CTHSaeoU.js} +2 -2
  104. package/dist/{synthesis-BUbH-4DA.js → synthesis-DnFo8jPe.js} +2 -2
  105. package/dist/{synthesis-ekn511D_.js → synthesis-ntqeiu25.js} +3 -3
  106. package/dist/{unified-runner-CdBxbcO2.js → unified-runner-DWZT5BCl.js} +14 -5
  107. package/dist/{unified-runner-DtJxJ016.js → unified-runner-DwlXIEtb.js} +15 -6
  108. package/dist/{update-cli-CQbvni-d.js → update-cli-CYpz_sg2.js} +11 -11
  109. package/dist/{update-cli-4OzLcQIF.js → update-cli-DKbaVaEp.js} +10 -10
  110. package/dist/{update-runner-DLCzD7sp.js → update-runner-D1V7cGWA.js} +1 -1
  111. package/dist/{update-runner-CiYhkA5I.js → update-runner-Des8yO8-.js} +1 -1
  112. package/dist/{web-DMFKXi8s.js → web-Cm1sUEcG.js} +5 -5
  113. package/dist/{web-DiqLVzt7.js → web-Dd2K5DCI.js} +4 -4
  114. package/dist/{web-COnC7jb4.js → web-DuUOtg8X.js} +2 -2
  115. package/dist/{web-CSDi520u.js → web-VH47KruC.js} +2 -2
  116. package/extensions/bluebubbles/package.json +1 -1
  117. package/extensions/copilot-proxy/package.json +1 -1
  118. package/extensions/diagnostics-otel/package.json +1 -1
  119. package/extensions/discord/package.json +1 -1
  120. package/extensions/feishu/package.json +1 -1
  121. package/extensions/google-antigravity-auth/package.json +1 -1
  122. package/extensions/google-gemini-cli-auth/package.json +1 -1
  123. package/extensions/googlechat/package.json +1 -1
  124. package/extensions/imessage/package.json +1 -1
  125. package/extensions/irc/package.json +1 -1
  126. package/extensions/learning-loop/package.json +1 -1
  127. package/extensions/line/package.json +1 -1
  128. package/extensions/llm-task/package.json +1 -1
  129. package/extensions/matrix/CHANGELOG.md +6 -0
  130. package/extensions/matrix/package.json +1 -1
  131. package/extensions/mattermost/package.json +1 -1
  132. package/extensions/memory-core/package.json +1 -1
  133. package/extensions/memory-lancedb/package.json +1 -1
  134. package/extensions/minimax-portal-auth/package.json +1 -1
  135. package/extensions/msteams/CHANGELOG.md +6 -0
  136. package/extensions/msteams/package.json +1 -1
  137. package/extensions/nextcloud-talk/package.json +1 -1
  138. package/extensions/nostr/CHANGELOG.md +6 -0
  139. package/extensions/nostr/package.json +1 -1
  140. package/extensions/open-prose/package.json +1 -1
  141. package/extensions/outlook/package.json +1 -1
  142. package/extensions/pipeline/package.json +1 -1
  143. package/extensions/signal/package.json +1 -1
  144. package/extensions/slack/package.json +1 -1
  145. package/extensions/telegram/package.json +1 -1
  146. package/extensions/tlon/package.json +1 -1
  147. package/extensions/twitch/CHANGELOG.md +6 -0
  148. package/extensions/twitch/package.json +1 -1
  149. package/extensions/voice-call/CHANGELOG.md +6 -0
  150. package/extensions/voice-call/package.json +1 -1
  151. package/extensions/whatsapp/package.json +1 -1
  152. package/extensions/zalo/CHANGELOG.md +6 -0
  153. package/extensions/zalo/package.json +1 -1
  154. package/extensions/zalouser/CHANGELOG.md +6 -0
  155. package/extensions/zalouser/package.json +1 -1
  156. package/package.json +1 -1
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-BSkXADb-.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DF6R_pgV.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-CWYKA3Nv.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-bOht3his.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-CSXt138B.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-d0bCdcqT.js").then((n) => n.i);
228
228
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
229
229
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -276,7 +276,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
276
276
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
277
277
  else {
278
278
  const { listChannelPlugins } = await import("./plugins-DTKQE9kt.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-C5sKGabO.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-CkFD8gYa.js").then((n) => n.n);
280
280
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
281
281
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
282
282
  allowSignalInstall: true,
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
302
302
  mode
303
303
  });
304
304
  await writeConfigFile(nextConfig);
305
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BA8-Tnhc.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-YB2UOZUK.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./auth-profiles-CtBXKml4.js").then((n) => n.t);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-PeQmwVpp.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-C_87_dQz.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-kJVkaHx6.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BrH3g0l7.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-BxJYfB1N.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
278
278
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
279
279
  else {
280
280
  const { listChannelPlugins } = await import("./plugins-BL5D1_sT.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-B1fWI5k5.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-Cky54l0-.js").then((n) => n.n);
282
282
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
283
283
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
284
284
  allowSignalInstall: true,
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-B-x_trN9.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DVSMLcSy.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./tokens-Cz6cgZ7r.js";
4
- import "./unified-runner-CdBxbcO2.js";
4
+ import "./unified-runner-DWZT5BCl.js";
5
5
  import "./registry-ClO_zVv-.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-zqierDLj.js";
7
7
  import "./auth-profiles-CtBXKml4.js";
@@ -56,8 +56,8 @@ import "./send-CrFVrFoV.js";
56
56
  import "./model-JOScPOPJ.js";
57
57
  import "./pi-model-discovery-CXXH7biP.js";
58
58
  import "./reply-prefix-DnXliXio.js";
59
- import "./memory-cli-BEZM7jn9.js";
60
- import "./manager-DKUOUCmo.js";
59
+ import "./memory-cli-D69x8sVz.js";
60
+ import "./manager-DjHARmFk.js";
61
61
  import "./gemini-auth-rYBkv11i.js";
62
62
  import "./retry-DYICeae5.js";
63
63
  import "./sqlite-CRogFEk1.js";
@@ -103,18 +103,18 @@ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks,
103
103
  import "./prompt-style-CSNJI4MG.js";
104
104
  import "./pairing-labels-DJfFSZUS.js";
105
105
  import "./pi-tools.policy-D4i_i5CV.js";
106
- import "./heartbeat-visibility-C4Sg0QOd.js";
106
+ import "./heartbeat-visibility-_mPYbQT2.js";
107
107
  import "./runtime-guard-dBbuLE2m.js";
108
- import "./program-context-Baw4Oc1H.js";
108
+ import "./program-context-DlM7Bnwp.js";
109
109
  import "./note-CYS1SoX6.js";
110
- import { r as installCompletion } from "./completion-cli-IKI4BpqL.js";
110
+ import { r as installCompletion } from "./completion-cli-EvxmKJ-O.js";
111
111
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CNvz5bbJ.js";
112
112
  import { r as isSystemdUserServiceAvailable } from "./systemd-z4aO4iTi.js";
113
113
  import { t as resolveGatewayService } from "./service-CW2RUNzh.js";
114
- import { r as healthCommand } from "./health-CCKCR4oM.js";
114
+ import { r as healthCommand } from "./health-N-jvgpZZ.js";
115
115
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CtKVON4w.js";
116
116
  import { t as formatHealthCheckFailure } from "./health-format-Ct4VWeSk.js";
117
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-VAGhCLD5.js";
117
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Cts2UOop.js";
118
118
  import { t as runTui } from "./tui-BnwK5KK5.js";
119
119
  import os from "node:os";
120
120
  import path from "node:path";
@@ -15,7 +15,7 @@ import "./client-CJIMV1WD.js";
15
15
  import "./call-e869fla2.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-DXCGIrYv.js";
18
+ import "./subagent-registry-Y_8a_o-m.js";
19
19
  import "./sessions-CBlCXpU2.js";
20
20
  import "./tokens-BEvOiQ65.js";
21
21
  import "./plugins-DTKQE9kt.js";
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
53
53
  import "./thinking-8sKPnzpp.js";
54
54
  import "./models-config-BjWk_WQa.js";
55
55
  import "./reply-prefix-Pz-5t5RS.js";
56
- import "./memory-cli-D4lLSeA1.js";
57
- import "./manager-B6EhIj3H.js";
56
+ import "./memory-cli-z9Rsga03.js";
57
+ import "./manager-DnkWmUWs.js";
58
58
  import "./gemini-auth-CdtQ-GuM.js";
59
59
  import "./retry-C4Q_VPOo.js";
60
60
  import "./sqlite-BP8tiuca.js";
@@ -99,20 +99,20 @@ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks,
99
99
  import "./prompt-style-BxVdnrLq.js";
100
100
  import "./pairing-labels-B6chnvfn.js";
101
101
  import "./pi-tools.policy-DcwVdzSK.js";
102
- import "./heartbeat-visibility-CG080wT5.js";
102
+ import "./heartbeat-visibility-D6uZvFVV.js";
103
103
  import "./note-DewoEWtc.js";
104
- import "./register.subclis-p-z6ekaE.js";
105
- import "./command-registry-C-c2RS-n.js";
104
+ import "./register.subclis-DOLKNKZj.js";
105
+ import "./command-registry-BRN6NMOS.js";
106
106
  import "./program-context-DeZ44oQ9.js";
107
- import { r as installCompletion } from "./completion-cli-BLO_wsYD.js";
107
+ import { r as installCompletion } from "./completion-cli-CQtI0ASD.js";
108
108
  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";
109
109
  import "./runtime-guard-BofkqBu7.js";
110
110
  import { r as isSystemdUserServiceAvailable } from "./systemd-CJ5L2ee4.js";
111
111
  import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
112
- import { r as healthCommand } from "./health-BnGM6Yux.js";
112
+ import { r as healthCommand } from "./health-DZB8SV6G.js";
113
113
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DKcwWWGv.js";
114
114
  import { t as formatHealthCheckFailure } from "./health-format-DkjSgkDx.js";
115
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-C7SuoBlz.js";
115
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BmjVxgkV.js";
116
116
  import { t as runTui } from "./tui-BDPCKXK5.js";
117
117
  import os from "node:os";
118
118
  import path from "node:path";
@@ -37,7 +37,7 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
38
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-CdTyeTEN.js";
39
39
  import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-DfzwGNoa.js";
40
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-Mm_GQxOU.js";
40
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-Dp_9v8j5.js";
41
41
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
43
  import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-43lkDH_r.js";
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
3473
3473
  const wrapper = new FallbackMemoryManager({
3474
3474
  primary,
3475
3475
  fallbackFactory: async () => {
3476
- const { MemoryIndexManager } = await import("./manager-Mm_GQxOU.js").then((n) => n.t);
3476
+ const { MemoryIndexManager } = await import("./manager-Dp_9v8j5.js").then((n) => n.t);
3477
3477
  return await MemoryIndexManager.get(params);
3478
3478
  }
3479
3479
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
3486
3486
  }
3487
3487
  }
3488
3488
  try {
3489
- const { MemoryIndexManager } = await import("./manager-Mm_GQxOU.js").then((n) => n.t);
3489
+ const { MemoryIndexManager } = await import("./manager-Dp_9v8j5.js").then((n) => n.t);
3490
3490
  return { manager: await MemoryIndexManager.get(params) };
3491
3491
  } catch (err) {
3492
3492
  return {
@@ -22484,6 +22484,11 @@ function buildAgentSystemPrompt(params) {
22484
22484
  "If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
22485
22485
  "Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
22486
22486
  "",
22487
+ "## Tool Use Discipline (mandatory)",
22488
+ "- If the user explicitly tells you to use a tool (e.g., \"use exec to run X\", \"read the file with read\", \"check the hostname\"), you MUST invoke that tool. Do not answer from training data or memory in place of the tool call.",
22489
+ "- Never narrate or quote tool output you did not actually receive from a real tool result. Writing \"I ran X and got Y\" without a corresponding tool invocation is fabrication and breaks user trust.",
22490
+ "- For factual local-system lookups (hostname, file contents, process state, env vars, current dir, system info), the answer comes from invoking the appropriate tool — not from priors. Always invoke.",
22491
+ "",
22487
22492
  ...compactMode ? [] : [
22488
22493
  "## Tool Call Style",
22489
22494
  "Default: do not narrate routine, low-risk tool calls (just call the tool).",
@@ -40654,7 +40659,11 @@ const SAFETY_AND_STYLE_ADDITIONS = [
40654
40659
  "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
40655
40660
  "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
40656
40661
  "- If you need to verify your work, do so before writing your response, not after.",
40657
- "- Send brief progress updates on long tasks so the user knows you are active."
40662
+ "- Send brief progress updates on long tasks so the user knows you are active.",
40663
+ "TOOL USE DISCIPLINE (no fabrication):",
40664
+ "- If the user asks you to use a tool (e.g., 'use exec to run X', 'read the file', 'check the hostname'), you MUST invoke that tool. Do not answer from training data or priors in place of an actual tool call.",
40665
+ "- Never narrate or quote tool output you did not receive from a real tool result. Writing 'I ran X and got Y' without a corresponding tool call is fabrication.",
40666
+ "- For local-system facts (hostname, file contents, process state, env vars, current dir), the answer comes from running the tool, not from priors — always invoke."
40658
40667
  ];
40659
40668
  /** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
40660
40669
  * planning internal. Not applied to Gemma/Ollama because those models
@@ -60927,7 +60936,7 @@ function setCliSessionId(entry, provider, sessionId) {
60927
60936
  function createDefaultDeps() {
60928
60937
  return {
60929
60938
  sendMessageWhatsApp: async (...args) => {
60930
- const { sendMessageWhatsApp } = await import("./web-COnC7jb4.js");
60939
+ const { sendMessageWhatsApp } = await import("./web-DuUOtg8X.js");
60931
60940
  return await sendMessageWhatsApp(...args);
60932
60941
  },
60933
60942
  sendMessageTelegram: async (...args) => {
@@ -76207,7 +76216,7 @@ function loadWebLoginQr() {
76207
76216
  return webLoginQrPromise;
76208
76217
  }
76209
76218
  function loadWebChannel() {
76210
- webChannelPromise ??= import("./web-COnC7jb4.js");
76219
+ webChannelPromise ??= import("./web-DuUOtg8X.js");
76211
76220
  return webChannelPromise;
76212
76221
  }
76213
76222
  function loadWhatsAppActions() {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as loadSymiPlugins } from "./unified-runner-CdBxbcO2.js";
2
+ import { s as loadSymiPlugins } from "./unified-runner-DWZT5BCl.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-ClO_zVv-.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-zqierDLj.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BajBuriF.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-xM36I1Em.js";
4
4
  import { i as loadConfig } from "./config-BaxT9cN4.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-DXCGIrYv.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-Y_8a_o-m.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
2
  import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
3
- import { G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as buildPairingReply, d as formatDurationPrecise, f as enqueueSystemEvent, g as resolveInboundDebounceMs, h as createInboundDebouncer, ht as createDedupeCache, l as dispatchReplyWithBufferedBlockDispatcher, m as parseActivationCommand, nt as buildMentionRegexes, o as computeBackoff, p as normalizeGroupActivation, rt as normalizeMentionText, s as sleepWithAbort, tt as recordPendingHistoryEntryIfEnabled, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./unified-runner-BNQKFoGX.js";
3
+ import { G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as buildPairingReply, d as formatDurationPrecise, f as enqueueSystemEvent, g as resolveInboundDebounceMs, h as createInboundDebouncer, ht as createDedupeCache, l as dispatchReplyWithBufferedBlockDispatcher, m as parseActivationCommand, nt as buildMentionRegexes, o as computeBackoff, p as normalizeGroupActivation, rt as normalizeMentionText, s as sleepWithAbort, tt as recordPendingHistoryEntryIfEnabled, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./unified-runner-KBVvJUFF.js";
4
4
  import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
5
5
  import { n as loadConfig } from "./config-BBBu18xQ.js";
6
6
  import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
@@ -1,6 +1,6 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
3
- import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as processLineMessage, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, E as attachFooterText, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as hasMarkdownToConvert, St as listThreadBindingsBySessionKey, T as createReceiptCard, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as resolveLineAccount, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as resolveDefaultLineAccountId, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, n as listLineAccountIds, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, r as normalizeAccountId$1, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as stripMarkdown, wt as formatAllowlistMatchMeta, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./unified-runner-BNQKFoGX.js";
3
+ import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as processLineMessage, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, E as attachFooterText, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as hasMarkdownToConvert, St as listThreadBindingsBySessionKey, T as createReceiptCard, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as resolveLineAccount, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as resolveDefaultLineAccountId, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, n as listLineAccountIds, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, r as normalizeAccountId$1, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as stripMarkdown, wt as formatAllowlistMatchMeta, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./unified-runner-KBVvJUFF.js";
4
4
  import "./paths-DR2yt_mP.js";
5
5
  import "./github-copilot-token-D9X2phUj.js";
6
6
  import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-muf5lfx-.js";
@@ -47,12 +47,12 @@ import "./paths-A0xdf3yk.js";
47
47
  import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-fnIb_o_V.js";
48
48
  import { n as extractOriginalFilename } from "./store-uf7TpQm3.js";
49
49
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkHNUpdB.js";
50
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-B_XlrV_E.js";
50
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-DAJtsqF_.js";
51
51
  import "./diagnostic-session-state-DnkpMfCl.js";
52
52
  import "./image-B7fj8HDX.js";
53
53
  import "./pi-auth-json-BOqOPkC8.js";
54
54
  import "./pi-model-discovery-Cdz3tuFk.js";
55
- import "./manager-CJd0vK4S.js";
55
+ import "./manager-DhiL-RSO.js";
56
56
  import "./gemini-auth-lC1AI-WK.js";
57
57
  import "./sqlite-BflKfcLD.js";
58
58
  import "./commands-registry-L_7UhT9Y.js";
@@ -3970,7 +3970,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
3970
3970
  * to bypass the min-interval guard (CLI use).
3971
3971
  */
3972
3972
  async runL3CycleIfDue(params) {
3973
- const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-BieO-_k_.js"), import("./synthesis-Cre_3fLT.js")]);
3973
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-BieO-_k_.js"), import("./synthesis-cOQ27lCy.js")]);
3974
3974
  const synthesize = createSynthesizer({
3975
3975
  cfg: this.cfg,
3976
3976
  agentId: this.agentId,
@@ -1,5 +1,5 @@
1
1
  import "./accounts-D9zGZU5t.js";
2
- import { t as runAgentTurn } from "./unified-runner-BNQKFoGX.js";
2
+ import { t as runAgentTurn } from "./unified-runner-KBVvJUFF.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-muf5lfx-.js";
@@ -49,7 +49,7 @@ import "./diagnostic-session-state-DnkpMfCl.js";
49
49
  import "./image-B7fj8HDX.js";
50
50
  import "./pi-auth-json-BOqOPkC8.js";
51
51
  import "./pi-model-discovery-Cdz3tuFk.js";
52
- import "./manager-CJd0vK4S.js";
52
+ import "./manager-DhiL-RSO.js";
53
53
  import "./gemini-auth-lC1AI-WK.js";
54
54
  import "./sqlite-BflKfcLD.js";
55
55
  import "./commands-registry-L_7UhT9Y.js";
@@ -52,7 +52,7 @@ import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DnkpM
52
52
  import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-B7fj8HDX.js";
53
53
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-BOqOPkC8.js";
54
54
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Cdz3tuFk.js";
55
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CJd0vK4S.js";
55
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-DhiL-RSO.js";
56
56
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-BpFmQTvo.js";
57
57
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-L_7UhT9Y.js";
58
58
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-5H7RKVif.js";
@@ -5900,7 +5900,11 @@ const SAFETY_AND_STYLE_ADDITIONS = [
5900
5900
  "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
5901
5901
  "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
5902
5902
  "- If you need to verify your work, do so before writing your response, not after.",
5903
- "- Send brief progress updates on long tasks so the user knows you are active."
5903
+ "- Send brief progress updates on long tasks so the user knows you are active.",
5904
+ "TOOL USE DISCIPLINE (no fabrication):",
5905
+ "- If the user asks you to use a tool (e.g., 'use exec to run X', 'read the file', 'check the hostname'), you MUST invoke that tool. Do not answer from training data or priors in place of an actual tool call.",
5906
+ "- Never narrate or quote tool output you did not receive from a real tool result. Writing 'I ran X and got Y' without a corresponding tool call is fabrication.",
5907
+ "- For local-system facts (hostname, file contents, process state, env vars, current dir), the answer comes from running the tool, not from priors — always invoke."
5904
5908
  ];
5905
5909
  /** Hint for native-reasoning models (Nemotron, Qwen 3.5/3.6) to keep
5906
5910
  * planning internal. Not applied to Gemma/Ollama because those models
@@ -9625,7 +9629,7 @@ async function getMemorySearchManager(params) {
9625
9629
  const wrapper = new FallbackMemoryManager({
9626
9630
  primary,
9627
9631
  fallbackFactory: async () => {
9628
- const { MemoryIndexManager } = await import("./manager-CJd0vK4S.js").then((n) => n.t);
9632
+ const { MemoryIndexManager } = await import("./manager-DhiL-RSO.js").then((n) => n.t);
9629
9633
  return await MemoryIndexManager.get(params);
9630
9634
  }
9631
9635
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -9638,7 +9642,7 @@ async function getMemorySearchManager(params) {
9638
9642
  }
9639
9643
  }
9640
9644
  try {
9641
- const { MemoryIndexManager } = await import("./manager-CJd0vK4S.js").then((n) => n.t);
9645
+ const { MemoryIndexManager } = await import("./manager-DhiL-RSO.js").then((n) => n.t);
9642
9646
  return { manager: await MemoryIndexManager.get(params) };
9643
9647
  } catch (err) {
9644
9648
  return {
@@ -12503,6 +12507,11 @@ function buildAgentSystemPrompt(params) {
12503
12507
  "If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
12504
12508
  "Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
12505
12509
  "",
12510
+ "## Tool Use Discipline (mandatory)",
12511
+ "- If the user explicitly tells you to use a tool (e.g., \"use exec to run X\", \"read the file with read\", \"check the hostname\"), you MUST invoke that tool. Do not answer from training data or memory in place of the tool call.",
12512
+ "- Never narrate or quote tool output you did not actually receive from a real tool result. Writing \"I ran X and got Y\" without a corresponding tool invocation is fabrication and breaks user trust.",
12513
+ "- For factual local-system lookups (hostname, file contents, process state, env vars, current dir, system info), the answer comes from invoking the appropriate tool — not from priors. Always invoke.",
12514
+ "",
12506
12515
  ...compactMode ? [] : [
12507
12516
  "## Tool Call Style",
12508
12517
  "Default: do not narrate routine, low-risk tool calls (just call the tool).",
@@ -54609,7 +54618,7 @@ function setCliSessionId(entry, provider, sessionId) {
54609
54618
  function createDefaultDeps() {
54610
54619
  return {
54611
54620
  sendMessageWhatsApp: async (...args) => {
54612
- const { sendMessageWhatsApp } = await import("./web-CE-OsTKq.js");
54621
+ const { sendMessageWhatsApp } = await import("./web-Bj-jTlHW.js");
54613
54622
  return await sendMessageWhatsApp(...args);
54614
54623
  },
54615
54624
  sendMessageTelegram: async (...args) => {
@@ -69280,7 +69289,7 @@ function loadWebLoginQr() {
69280
69289
  return webLoginQrPromise;
69281
69290
  }
69282
69291
  function loadWebChannel() {
69283
- webChannelPromise ??= import("./web-CE-OsTKq.js");
69292
+ webChannelPromise ??= import("./web-Bj-jTlHW.js");
69284
69293
  return webChannelPromise;
69285
69294
  }
69286
69295
  function loadWhatsAppActions() {
@@ -1,5 +1,5 @@
1
1
  import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
2
- import "./unified-runner-BNQKFoGX.js";
2
+ import "./unified-runner-KBVvJUFF.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-muf5lfx-.js";
@@ -45,12 +45,12 @@ import "./pi-embedded-helpers-YqYJ6xU1.js";
45
45
  import "./paths-A0xdf3yk.js";
46
46
  import "./diagnostic-fnIb_o_V.js";
47
47
  import "./store-uf7TpQm3.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-B_XlrV_E.js";
48
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DAJtsqF_.js";
49
49
  import "./diagnostic-session-state-DnkpMfCl.js";
50
50
  import "./image-B7fj8HDX.js";
51
51
  import "./pi-auth-json-BOqOPkC8.js";
52
52
  import "./pi-model-discovery-Cdz3tuFk.js";
53
- import "./manager-CJd0vK4S.js";
53
+ import "./manager-DhiL-RSO.js";
54
54
  import "./gemini-auth-lC1AI-WK.js";
55
55
  import "./sqlite-BflKfcLD.js";
56
56
  import "./commands-registry-L_7UhT9Y.js";
@@ -14,7 +14,7 @@ import "./client-CJIMV1WD.js";
14
14
  import "./call-e869fla2.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-DXCGIrYv.js";
17
+ import "./subagent-registry-Y_8a_o-m.js";
18
18
  import "./sessions-CBlCXpU2.js";
19
19
  import "./tokens-BEvOiQ65.js";
20
20
  import "./plugins-DTKQE9kt.js";
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
52
52
  import "./thinking-8sKPnzpp.js";
53
53
  import "./models-config-BjWk_WQa.js";
54
54
  import "./reply-prefix-Pz-5t5RS.js";
55
- import "./memory-cli-D4lLSeA1.js";
56
- import "./manager-B6EhIj3H.js";
55
+ import "./memory-cli-z9Rsga03.js";
56
+ import "./manager-DnkWmUWs.js";
57
57
  import "./gemini-auth-CdtQ-GuM.js";
58
58
  import "./retry-C4Q_VPOo.js";
59
59
  import "./sqlite-BP8tiuca.js";
@@ -103,7 +103,7 @@ import "./npm-registry-spec-PuS2I1Em.js";
103
103
  import "./skill-scanner-BV3QHmsf.js";
104
104
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-B4sNNRaW.js";
105
105
  import { t as renderTable } from "./table-Bka4fasy.js";
106
- import { t as buildPluginStatusReport } from "./status-JL0CD-E1.js";
106
+ import { t as buildPluginStatusReport } from "./status-DyQuiOVn.js";
107
107
  import { n as updateNpmInstalledPlugins } from "./update-DticqU4-.js";
108
108
  import os from "node:os";
109
109
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./tokens-Cz6cgZ7r.js";
4
- import "./unified-runner-CdBxbcO2.js";
4
+ import "./unified-runner-DWZT5BCl.js";
5
5
  import "./registry-ClO_zVv-.js";
6
6
  import { f as defaultRuntime } from "./subsystem-zqierDLj.js";
7
7
  import "./auth-profiles-CtBXKml4.js";
@@ -55,8 +55,8 @@ import "./send-CrFVrFoV.js";
55
55
  import "./model-JOScPOPJ.js";
56
56
  import "./pi-model-discovery-CXXH7biP.js";
57
57
  import "./reply-prefix-DnXliXio.js";
58
- import "./memory-cli-BEZM7jn9.js";
59
- import "./manager-DKUOUCmo.js";
58
+ import "./memory-cli-D69x8sVz.js";
59
+ import "./manager-DjHARmFk.js";
60
60
  import "./gemini-auth-rYBkv11i.js";
61
61
  import "./retry-DYICeae5.js";
62
62
  import "./sqlite-CRogFEk1.js";
@@ -107,7 +107,7 @@ import "./npm-registry-spec-DzwsFqwv.js";
107
107
  import "./skill-scanner-DI28Pqv5.js";
108
108
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-DH3fKGSH.js";
109
109
  import { t as renderTable } from "./table-Cg6YZXv9.js";
110
- import { t as buildPluginStatusReport } from "./status-DFBG2hcx.js";
110
+ import { t as buildPluginStatusReport } from "./status-DX8BiUs2.js";
111
111
  import { n as updateNpmInstalledPlugins } from "./update-BnkusEA2.js";
112
112
  import fs from "node:fs";
113
113
  import os from "node:os";
@@ -15,7 +15,7 @@ import "./client-CJIMV1WD.js";
15
15
  import "./call-e869fla2.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-DXCGIrYv.js";
18
+ import "./subagent-registry-Y_8a_o-m.js";
19
19
  import "./sessions-CBlCXpU2.js";
20
20
  import "./tokens-BEvOiQ65.js";
21
21
  import "./plugins-DTKQE9kt.js";
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
53
53
  import "./thinking-8sKPnzpp.js";
54
54
  import "./models-config-BjWk_WQa.js";
55
55
  import "./reply-prefix-Pz-5t5RS.js";
56
- import "./memory-cli-D4lLSeA1.js";
57
- import "./manager-B6EhIj3H.js";
56
+ import "./memory-cli-z9Rsga03.js";
57
+ import "./manager-DnkWmUWs.js";
58
58
  import "./gemini-auth-CdtQ-GuM.js";
59
59
  import "./retry-C4Q_VPOo.js";
60
60
  import "./sqlite-BP8tiuca.js";
@@ -100,13 +100,13 @@ import "./prompt-style-BxVdnrLq.js";
100
100
  import "./pairing-labels-B6chnvfn.js";
101
101
  import "./pi-tools.policy-DcwVdzSK.js";
102
102
  import "./catalog-KcLvtTfa.js";
103
- import "./plugin-registry-CZS8ioCg.js";
104
- import { n as resolveCliChannelOptions } from "./channel-options-C68HZtw7.js";
105
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-p-z6ekaE.js";
106
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-C-c2RS-n.js";
103
+ import "./plugin-registry-739qhWq3.js";
104
+ import { n as resolveCliChannelOptions } from "./channel-options-BC-QbEPJ.js";
105
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-DOLKNKZj.js";
106
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-BRN6NMOS.js";
107
107
  import { r as setProgramContext } from "./program-context-DeZ44oQ9.js";
108
108
  import { t as forceFreePort } from "./ports-DQg7kV5s.js";
109
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner--HSjGLhi.js";
109
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-kkSwCGXn.js";
110
110
  import { Command } from "commander";
111
111
 
112
112
  //#region src/cli/program/context.ts
@@ -214,7 +214,7 @@ function registerPreActionHooks(program, programVersion) {
214
214
  commandPath
215
215
  });
216
216
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
217
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-CZS8ioCg.js").then((n) => n.n);
217
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-739qhWq3.js").then((n) => n.n);
218
218
  ensurePluginRegistryLoaded();
219
219
  }
220
220
  });