@symerian/symi 2.6.12 → 2.6.13

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 (109) hide show
  1. package/dist/{agents-Cz2na8n6.js → agents-CrSpoNsS.js} +4 -4
  2. package/dist/{agents.config-BeOO73lT.js → agents.config-B3GILTs5.js} +1 -1
  3. package/dist/{agents.config-BoP9QtHX.js → agents.config-Co1CO8fA.js} +1 -1
  4. package/dist/{audio-preflight-DHTaS5U1.js → audio-preflight-BVaaZWkg.js} +4 -4
  5. package/dist/{auth-choice-DTe3UF8T.js → auth-choice-BBmXnDnK.js} +1 -1
  6. package/dist/{auth-choice-D-czhFdL.js → auth-choice-BHWxDJh7.js} +1 -1
  7. package/dist/{banner-CSZ39UAE.js → banner-RLiOIu-3.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +6 -6
  10. package/dist/bundled/session-memory/handler.js +6 -6
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-FlKM6QP8.js → channel-options-BCK41AON.js} +1 -1
  13. package/dist/{channel-options-CySdnaWJ.js → channel-options-PDf46S-K.js} +1 -1
  14. package/dist/{channel-web-BEFE-0qE.js → channel-web-C3XZ7c2q.js} +1 -1
  15. package/dist/{channels-cli-D6zAPAP3.js → channels-cli-723vy6L6.js} +4 -4
  16. package/dist/{channels-cli-RkhiaITs.js → channels-cli-CUWuD7qf.js} +4 -4
  17. package/dist/{chrome-DYZwl5Gv.js → chrome-DkaXoP36.js} +7 -7
  18. package/dist/{cli-v8nSF61Z.js → cli-CAzmrOs0.js} +1 -1
  19. package/dist/{cli-Bjw4Mr_t.js → cli-DYdRSi_j.js} +1 -1
  20. package/dist/{command-registry-CojVJ8At.js → command-registry-B2aO0Q7_.js} +9 -9
  21. package/dist/{completion-cli-rD9RSIqQ.js → completion-cli-BKm12loU.js} +1 -1
  22. package/dist/{completion-cli-D3N7Bpqe.js → completion-cli-BsKD_vBb.js} +2 -2
  23. package/dist/{config-cli-CCG1Hizl.js → config-cli-Bynmd81Q.js} +1 -1
  24. package/dist/{config-cli-DFYbGvDQ.js → config-cli-D47lU7kU.js} +1 -1
  25. package/dist/{configure-DdWNM_S-.js → configure-B3vS2Iz5.js} +3 -3
  26. package/dist/{configure-v2ocSUJ3.js → configure-Df6GmKAR.js} +3 -3
  27. package/dist/{deliver-dODxSv3b.js → deliver-C46-vyqg.js} +1 -1
  28. package/dist/{doctor-completion-F_AI3hun.js → doctor-completion-DyiRkYT4.js} +1 -1
  29. package/dist/{doctor-completion-vTHV1Opp.js → doctor-completion-SEerte2S.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +1 -1
  32. package/dist/{gateway-cli-Di1ExMCg.js → gateway-cli-PjmG0pFo.js} +9 -9
  33. package/dist/{gateway-cli-DLaTC2ps.js → gateway-cli-k19iT2vJ.js} +9 -9
  34. package/dist/{glass-ui-ws-CbaWZjN3.js → glass-ui-ws-D0Yv090T.js} +7 -7
  35. package/dist/{glass-ui-ws-Bfn56Lok.js → glass-ui-ws-iCEtluQU.js} +7 -7
  36. package/dist/{health-DbJOe12X.js → health-B32Q-KYM.js} +1 -1
  37. package/dist/{health-CqQIZeIm.js → health-CXjAtn1-.js} +1 -1
  38. package/dist/{hooks-cli-D60an6P1.js → hooks-cli-DA6zOGNz.js} +2 -2
  39. package/dist/{hooks-cli-B9pOqbW_.js → hooks-cli-DfRmFenH.js} +2 -2
  40. package/dist/{image-CXu8W39c.js → image-CuzFLQWC.js} +1 -1
  41. package/dist/index.js +6 -6
  42. package/dist/llm-slug-generator.js +6 -6
  43. package/dist/{models-cli-4EwiSo4p.js → models-cli-BgCUViRO.js} +2 -2
  44. package/dist/{models-cli-Du60Ivll.js → models-cli-CbJUD_L1.js} +3 -3
  45. package/dist/{models-hMbDU9ot.js → models-zowe4LXa.js} +2 -2
  46. package/dist/{onboard-5yW9nvG6.js → onboard-CYvIpUXQ.js} +2 -2
  47. package/dist/{onboard-DJqYAPxi.js → onboard-DsKgcThj.js} +2 -2
  48. package/dist/{onboard-channels-B39Hvc_L.js → onboard-channels-DLiV4Y0t.js} +1 -1
  49. package/dist/{onboard-channels-BSzHnDcL.js → onboard-channels-DxCGWgB0.js} +1 -1
  50. package/dist/{onboarding-D7Y_e4zX.js → onboarding-BA5v1JEG.js} +3 -3
  51. package/dist/{onboarding-C7g_ZvRW.js → onboarding-DioGtMFo.js} +3 -3
  52. package/dist/{onboarding.finalize-C3rqwVvV.js → onboarding.finalize-CAbRXb0h.js} +5 -5
  53. package/dist/{onboarding.finalize-OYNmD4ly.js → onboarding.finalize-DMXCA49f.js} +6 -6
  54. package/dist/{pi-embedded-Bp_9g-wj.js → pi-embedded-CFFnZEcA.js} +13 -13
  55. package/dist/{pi-embedded-helpers-pubKo8HQ.js → pi-embedded-helpers-CfqDGQ9J.js} +4 -4
  56. package/dist/{plugin-registry-CUjBEHAz.js → plugin-registry-Bt5YCgFq.js} +1 -1
  57. package/dist/{plugin-registry-C4lpIiGz.js → plugin-registry-HFOrv3KN.js} +1 -1
  58. package/dist/plugin-sdk/{channel-web-CQNBQiKF.js → channel-web-C2w1HotM.js} +1 -1
  59. package/dist/plugin-sdk/index.js +2 -2
  60. package/dist/plugin-sdk/{reply-S1JHdV1Y.js → reply-D5CxbzCs.js} +13 -13
  61. package/dist/plugin-sdk/{web-GZFVijBY.js → web-ClsKdqx-.js} +2 -2
  62. package/dist/{plugins-cli-NpSGD1FH.js → plugins-cli-C7xTf9NV.js} +2 -2
  63. package/dist/{plugins-cli-1pbqkgc2.js → plugins-cli-CXz_UApK.js} +2 -2
  64. package/dist/{program-CvHqOriK.js → program-8hWr4qGZ.js} +7 -7
  65. package/dist/{program-context-gkaZBN4U.js → program-context-BBtSJunF.js} +17 -17
  66. package/dist/{prompt-select-styled-We9EmwdJ.js → prompt-select-styled-CwfroEHp.js} +4 -4
  67. package/dist/{prompt-select-styled-DNaDChFa.js → prompt-select-styled-DUXeA9Zp.js} +4 -4
  68. package/dist/{provider-auth-helpers-aA2Nm1dz.js → provider-auth-helpers-Dc7jBEOA.js} +1 -1
  69. package/dist/{provider-auth-helpers-BD1qo8xm.js → provider-auth-helpers-DhLHWjNU.js} +1 -1
  70. package/dist/{push-apns-DseyExUl.js → push-apns-CVZe5WVN.js} +1 -1
  71. package/dist/{push-apns-Cp9F-674.js → push-apns-CflJh75N.js} +1 -1
  72. package/dist/{pw-ai-B5asscAD.js → pw-ai-m0mj2KWK.js} +1 -1
  73. package/dist/{register.agent-BQ2_6Nm3.js → register.agent-BnuJQ5lg.js} +6 -6
  74. package/dist/{register.agent-CBYb5PmK.js → register.agent-DV7IR1rI.js} +5 -5
  75. package/dist/{register.configure-o-37DMn9.js → register.configure-BhncI0ij.js} +6 -6
  76. package/dist/{register.configure-CjLPSjMa.js → register.configure-DaIrJXWo.js} +6 -6
  77. package/dist/{register.maintenance-B119maJ4.js → register.maintenance-BO1XWhVb.js} +7 -7
  78. package/dist/{register.maintenance-B5VGGPfr.js → register.maintenance-DK_p-7so.js} +8 -8
  79. package/dist/{register.message-Dqit98AR.js → register.message-B194ue2R.js} +2 -2
  80. package/dist/{register.message-C0vKP2cl.js → register.message-B4CGCAn_.js} +2 -2
  81. package/dist/{register.onboard-BHj8YY-f.js → register.onboard-DidMCka8.js} +4 -4
  82. package/dist/{register.onboard-DfCy6ZXS.js → register.onboard-Dt53qGB5.js} +4 -4
  83. package/dist/{register.setup-BO4Kdk1x.js → register.setup-CLV1kk2-.js} +4 -4
  84. package/dist/{register.setup-CUK-FwzD.js → register.setup-DgUxMRZR.js} +4 -4
  85. package/dist/{register.status-health-sessions-BIXO_68y.js → register.status-health-sessions-CB10JLY6.js} +3 -3
  86. package/dist/{register.status-health-sessions-CvcX-h97.js → register.status-health-sessions-TvGuwVoR.js} +3 -3
  87. package/dist/{register.subclis-B0T9tMmL.js → register.subclis-elNdyQio.js} +9 -9
  88. package/dist/{reply-DPaH7oQp.js → reply-DUZvOCsG.js} +13 -13
  89. package/dist/{run-main-DLFhMwmE.js → run-main-gBPGqO8r.js} +14 -14
  90. package/dist/{runner-WAG0M5s9.js → runner-CU9l0uJh.js} +1 -1
  91. package/dist/{server-methods-DMIR4YTm.js → server-methods-BG0N79yY.js} +7 -7
  92. package/dist/{server-methods-CCAxdyvF.js → server-methods-dgW-8gC7.js} +7 -7
  93. package/dist/{server-node-events-BvOiDPkg.js → server-node-events-B_hsQw_N.js} +2 -2
  94. package/dist/{server-node-events-BQ7wsfbY.js → server-node-events-ZtQKBPo3.js} +2 -2
  95. package/dist/{status-gpmp_Ca5.js → status-BqhJ-HsW.js} +1 -1
  96. package/dist/{status-BPGU6b1g.js → status-Cd9-xWsZ.js} +2 -2
  97. package/dist/{status-D4RE4eR4.js → status-D-IvYfjk.js} +2 -2
  98. package/dist/{status-CpCo3PvK.js → status-D4Lr90yH.js} +1 -1
  99. package/dist/{subagent-registry-CzBf7A_o.js → subagent-registry-J2pIBQF7.js} +13 -13
  100. package/dist/{unified-runner-CnKhgGr-.js → unified-runner-oH9Pt-cO.js} +27 -27
  101. package/dist/{update-cli-16QmlAYc.js → update-cli-B7TLu25J.js} +8 -8
  102. package/dist/{update-cli-B8lzwxOj.js → update-cli-D8nA6U7C.js} +7 -7
  103. package/dist/{update-runner-CEjq0Uxs.js → update-runner-D8AFB8Oi.js} +1 -1
  104. package/dist/{update-runner-DLCpL3Pj.js → update-runner-DvZOsoQs.js} +1 -1
  105. package/dist/{web-CQ7OlTVM.js → web-0xZpP0WA.js} +6 -6
  106. package/dist/{web-BiZqjSRz.js → web-CAy-xQv2.js} +1 -1
  107. package/dist/{web-BPQuKyCM.js → web-DDiOPIdv.js} +2 -2
  108. package/dist/{web-D7tHOzz3.js → web-mQInjWbW.js} +1 -1
  109. package/package.json +1 -1
@@ -42346,15 +42346,15 @@ function validateShellCommand(command) {
42346
42346
  //#endregion
42347
42347
  //#region src/agents/pi-tools.validate-wrapper.ts
42348
42348
  const log$1 = createSubsystemLogger("agents/tool-validate");
42349
- /** Return a properly formatted tool result error that pi-agent-core can process. */
42350
- function toolError(message) {
42351
- return {
42352
- content: [{
42353
- type: "text",
42354
- text: message
42355
- }],
42356
- details: {}
42357
- };
42349
+ /**
42350
+ * Throw a tool validation error. pi-agent-core catches thrown errors in
42351
+ * execute(), formats them as { content: [{ type: "text", text: e.message }] }
42352
+ * with isError: true on the tool_execution_end event. This ensures:
42353
+ * 1. The model sees the helpful error message (e.message)
42354
+ * 2. The circuit breaker counts it as a tool failure (isError: true)
42355
+ */
42356
+ function throwToolError(message) {
42357
+ throw new Error(message);
42358
42358
  }
42359
42359
  const EXEC_TOOL_NAMES = new Set(["exec", "bash"]);
42360
42360
  const GEMMA_MODEL_ID = "gemma";
@@ -42459,7 +42459,7 @@ function wrapToolWithArgValidation(tool) {
42459
42459
  const missingFields = originalRequired.filter((field) => params[field] === void 0 || params[field] === null);
42460
42460
  if (missingFields.length > 0) {
42461
42461
  log$1.warn(`[validate] ${toolName} missing required fields: ${missingFields.join(", ")}`);
42462
- return Promise.resolve(toolError(`Error: Missing required argument${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}. Please try again with all required arguments.\nExample: ${usageExample}`));
42462
+ throwToolError(`Missing required argument${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}. Please try again with all required arguments.\nExample: ${usageExample}`);
42463
42463
  }
42464
42464
  const { cleaned, changed } = sanitizeParams(params);
42465
42465
  if (changed) log$1.debug(`[validate] sanitized args for ${toolName}: ${Object.keys(params).filter((k) => cleaned[k] !== params[k]).join(",")}`);
@@ -42473,7 +42473,7 @@ function wrapToolWithArgValidation(tool) {
42473
42473
  const result = validateShellCommand(command);
42474
42474
  if (!result.valid) {
42475
42475
  log$1.warn(`[validate] exec command rejected: reason=${result.reason} raw=${command.slice(0, 100)}`);
42476
- return Promise.resolve(toolError(`Error: ${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.`));
42476
+ throwToolError(`${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.`);
42477
42477
  }
42478
42478
  if (result.cleaned !== command) {
42479
42479
  log$1.debug(`[validate] exec command cleaned: raw=${command.slice(0, 80)} → cleaned=${result.cleaned.slice(0, 80)}`);
@@ -60655,7 +60655,7 @@ function isVoiceChannelType(type) {
60655
60655
  function createDefaultDeps() {
60656
60656
  return {
60657
60657
  sendMessageWhatsApp: async (...args) => {
60658
- const { sendMessageWhatsApp } = await import("./web-D7tHOzz3.js");
60658
+ const { sendMessageWhatsApp } = await import("./web-mQInjWbW.js");
60659
60659
  return await sendMessageWhatsApp(...args);
60660
60660
  },
60661
60661
  sendMessageTelegram: async (...args) => {
@@ -75935,7 +75935,7 @@ function loadWebLoginQr() {
75935
75935
  return webLoginQrPromise;
75936
75936
  }
75937
75937
  function loadWebChannel() {
75938
- webChannelPromise ??= import("./web-D7tHOzz3.js");
75938
+ webChannelPromise ??= import("./web-mQInjWbW.js");
75939
75939
  return webChannelPromise;
75940
75940
  }
75941
75941
  function loadWhatsAppActions() {
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-D
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-5SdHIcHU.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DYZwl5Gv.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DkaXoP36.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Bs0AW1g3.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
933
933
  }
934
934
  async function loadPwAiModule(mode) {
935
935
  try {
936
- return await import("./pw-ai-B5asscAD.js");
936
+ return await import("./pw-ai-m0mj2KWK.js");
937
937
  } catch (err) {
938
938
  if (mode === "soft") return null;
939
939
  if (isModuleNotFoundError(err)) return null;
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
3473
3473
  const userDataDir = resolveSymiUserDataDir(profile.name);
3474
3474
  const profileState = getProfileState();
3475
3475
  if (await isHttpReachable(300) && !profileState.running) try {
3476
- await (await import("./pw-ai-B5asscAD.js")).closePlaywrightBrowserConnection();
3476
+ await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3477
3477
  } catch {}
3478
3478
  if (profileState.running) await stopRunningBrowser();
3479
3479
  try {
3480
- await (await import("./pw-ai-B5asscAD.js")).closePlaywrightBrowserConnection();
3480
+ await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3481
3481
  } catch {}
3482
3482
  if (!fs.existsSync(userDataDir)) return {
3483
3483
  moved: false,
@@ -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-D-jRCY0d.js";
4
4
  import { i as loadConfig } from "./config-DHBLS1Hl.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-CzBf7A_o.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-J2pIBQF7.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ft as loadSymiPlugins } from "./reply-DPaH7oQp.js";
2
+ import { ft as loadSymiPlugins } from "./reply-DUZvOCsG.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
@@ -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 { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-S1JHdV1Y.js";
3
+ import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-D5CxbzCs.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-DDkdiUOR.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 stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, 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 processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, 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 normalizeAccountId$1, 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 listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-S1JHdV1Y.js";
3
+ import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, 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 processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, 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 normalizeAccountId$1, 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 listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-D5CxbzCs.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-BbAvhC25.js";
@@ -47,7 +47,7 @@ import "./paths-A0xdf3yk.js";
47
47
  import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-mFf4i4G9.js";
48
48
  import { n as extractOriginalFilename } from "./store-Do3t33-c.js";
49
49
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkCUbYGV.js";
50
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-CQNBQiKF.js";
50
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-C2w1HotM.js";
51
51
  import "./image-BOYy0Ump.js";
52
52
  import "./pi-model-discovery-LbcEa65a.js";
53
53
  import "./api-key-rotation-CVBMpnPc.js";
@@ -30282,15 +30282,15 @@ function validateShellCommand(command) {
30282
30282
  //#endregion
30283
30283
  //#region src/agents/pi-tools.validate-wrapper.ts
30284
30284
  const log$3 = createSubsystemLogger("agents/tool-validate");
30285
- /** Return a properly formatted tool result error that pi-agent-core can process. */
30286
- function toolError(message) {
30287
- return {
30288
- content: [{
30289
- type: "text",
30290
- text: message
30291
- }],
30292
- details: {}
30293
- };
30285
+ /**
30286
+ * Throw a tool validation error. pi-agent-core catches thrown errors in
30287
+ * execute(), formats them as { content: [{ type: "text", text: e.message }] }
30288
+ * with isError: true on the tool_execution_end event. This ensures:
30289
+ * 1. The model sees the helpful error message (e.message)
30290
+ * 2. The circuit breaker counts it as a tool failure (isError: true)
30291
+ */
30292
+ function throwToolError(message) {
30293
+ throw new Error(message);
30294
30294
  }
30295
30295
  const EXEC_TOOL_NAMES = new Set(["exec", "bash"]);
30296
30296
  const GEMMA_MODEL_ID = "gemma";
@@ -30395,7 +30395,7 @@ function wrapToolWithArgValidation(tool) {
30395
30395
  const missingFields = originalRequired.filter((field) => params[field] === void 0 || params[field] === null);
30396
30396
  if (missingFields.length > 0) {
30397
30397
  log$3.warn(`[validate] ${toolName} missing required fields: ${missingFields.join(", ")}`);
30398
- return Promise.resolve(toolError(`Error: Missing required argument${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}. Please try again with all required arguments.\nExample: ${usageExample}`));
30398
+ throwToolError(`Missing required argument${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}. Please try again with all required arguments.\nExample: ${usageExample}`);
30399
30399
  }
30400
30400
  const { cleaned, changed } = sanitizeParams(params);
30401
30401
  if (changed) log$3.debug(`[validate] sanitized args for ${toolName}: ${Object.keys(params).filter((k) => cleaned[k] !== params[k]).join(",")}`);
@@ -30409,7 +30409,7 @@ function wrapToolWithArgValidation(tool) {
30409
30409
  const result = validateShellCommand(command);
30410
30410
  if (!result.valid) {
30411
30411
  log$3.warn(`[validate] exec command rejected: reason=${result.reason} raw=${command.slice(0, 100)}`);
30412
- return Promise.resolve(toolError(`Error: ${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.`));
30412
+ throwToolError(`${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.`);
30413
30413
  }
30414
30414
  if (result.cleaned !== command) {
30415
30415
  log$3.debug(`[validate] exec command cleaned: raw=${command.slice(0, 80)} → cleaned=${result.cleaned.slice(0, 80)}`);
@@ -36252,7 +36252,7 @@ async function runAgentTurn(params) {
36252
36252
  function createDefaultDeps() {
36253
36253
  return {
36254
36254
  sendMessageWhatsApp: async (...args) => {
36255
- const { sendMessageWhatsApp } = await import("./web-GZFVijBY.js");
36255
+ const { sendMessageWhatsApp } = await import("./web-ClsKdqx-.js");
36256
36256
  return await sendMessageWhatsApp(...args);
36257
36257
  },
36258
36258
  sendMessageTelegram: async (...args) => {
@@ -53690,7 +53690,7 @@ function loadWebLoginQr() {
53690
53690
  return webLoginQrPromise;
53691
53691
  }
53692
53692
  function loadWebChannel() {
53693
- webChannelPromise ??= import("./web-GZFVijBY.js");
53693
+ webChannelPromise ??= import("./web-ClsKdqx-.js");
53694
53694
  return webChannelPromise;
53695
53695
  }
53696
53696
  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 "./reply-S1JHdV1Y.js";
2
+ import "./reply-D5CxbzCs.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -45,7 +45,7 @@ import "./pi-embedded-helpers-BveUP4hk.js";
45
45
  import "./paths-A0xdf3yk.js";
46
46
  import "./diagnostic-mFf4i4G9.js";
47
47
  import "./store-Do3t33-c.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-CQNBQiKF.js";
48
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-C2w1HotM.js";
49
49
  import "./image-BOYy0Ump.js";
50
50
  import "./pi-model-discovery-LbcEa65a.js";
51
51
  import "./api-key-rotation-CVBMpnPc.js";
@@ -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-CzBf7A_o.js";
16
+ import "./subagent-registry-J2pIBQF7.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -102,7 +102,7 @@ import "./npm-registry-spec-DkaZNHAW.js";
102
102
  import "./skill-scanner-BGWOBqLY.js";
103
103
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-CgQpVncj.js";
104
104
  import { t as renderTable } from "./table-D01d2GuY.js";
105
- import { t as buildPluginStatusReport } from "./status-CpCo3PvK.js";
105
+ import { t as buildPluginStatusReport } from "./status-D4Lr90yH.js";
106
106
  import { n as updateNpmInstalledPlugins } from "./update-DEMKx4eC.js";
107
107
  import os from "node:os";
108
108
  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 "./thinking-EAliFiVK.js";
4
- import "./reply-DPaH7oQp.js";
4
+ import "./reply-DUZvOCsG.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -106,7 +106,7 @@ import "./npm-registry-spec-C2JDdSZS.js";
106
106
  import "./skill-scanner-CLs8u6vQ.js";
107
107
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-C1Cebk97.js";
108
108
  import { t as renderTable } from "./table-BTgkRafz.js";
109
- import { t as buildPluginStatusReport } from "./status-gpmp_Ca5.js";
109
+ import { t as buildPluginStatusReport } from "./status-BqhJ-HsW.js";
110
110
  import { n as updateNpmInstalledPlugins } from "./update-rw7wJwHd.js";
111
111
  import fs from "node:fs";
112
112
  import os from "node:os";
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-CzBf7A_o.js";
17
+ import "./subagent-registry-J2pIBQF7.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,13 +99,13 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
101
  import "./catalog-DLQFKucJ.js";
102
- import "./plugin-registry-CUjBEHAz.js";
103
- import { n as resolveCliChannelOptions } from "./channel-options-FlKM6QP8.js";
104
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-B0T9tMmL.js";
105
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-CojVJ8At.js";
102
+ import "./plugin-registry-Bt5YCgFq.js";
103
+ import { n as resolveCliChannelOptions } from "./channel-options-BCK41AON.js";
104
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-elNdyQio.js";
105
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-B2aO0Q7_.js";
106
106
  import { r as setProgramContext } from "./program-context-CqzR_m-7.js";
107
107
  import { t as forceFreePort } from "./ports-Dn122MUd.js";
108
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-CSZ39UAE.js";
108
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-RLiOIu-3.js";
109
109
  import { Command } from "commander";
110
110
 
111
111
  //#region src/cli/program/context.ts
@@ -213,7 +213,7 @@ function registerPreActionHooks(program, programVersion) {
213
213
  commandPath
214
214
  });
215
215
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
216
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-CUjBEHAz.js").then((n) => n.n);
216
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-Bt5YCgFq.js").then((n) => n.n);
217
217
  ensurePluginRegistryLoaded();
218
218
  }
219
219
  });
@@ -43,7 +43,7 @@ const entries = [
43
43
  description: "Run, inspect, and query the WebSocket Gateway",
44
44
  hasSubcommands: true,
45
45
  register: async (program) => {
46
- (await import("./gateway-cli-DLaTC2ps.js")).registerGatewayCli(program);
46
+ (await import("./gateway-cli-k19iT2vJ.js")).registerGatewayCli(program);
47
47
  }
48
48
  },
49
49
  {
@@ -75,7 +75,7 @@ const entries = [
75
75
  description: "Discover, scan, and configure models",
76
76
  hasSubcommands: true,
77
77
  register: async (program) => {
78
- (await import("./models-cli-4EwiSo4p.js")).registerModelsCli(program);
78
+ (await import("./models-cli-BgCUViRO.js")).registerModelsCli(program);
79
79
  }
80
80
  },
81
81
  {
@@ -155,7 +155,7 @@ const entries = [
155
155
  description: "Manage internal agent hooks",
156
156
  hasSubcommands: true,
157
157
  register: async (program) => {
158
- (await import("./hooks-cli-B9pOqbW_.js")).registerHooksCli(program);
158
+ (await import("./hooks-cli-DfRmFenH.js")).registerHooksCli(program);
159
159
  }
160
160
  },
161
161
  {
@@ -179,7 +179,7 @@ const entries = [
179
179
  description: "Secure DM pairing (approve inbound requests)",
180
180
  hasSubcommands: true,
181
181
  register: async (program) => {
182
- const { registerPluginCliCommands } = await import("./cli-Bjw4Mr_t.js");
182
+ const { registerPluginCliCommands } = await import("./cli-DYdRSi_j.js");
183
183
  registerPluginCliCommands(program, await loadConfig());
184
184
  (await import("./pairing-cli-CBLfGvqW.js")).registerPairingCli(program);
185
185
  }
@@ -189,8 +189,8 @@ const entries = [
189
189
  description: "Manage Symi plugins and extensions",
190
190
  hasSubcommands: true,
191
191
  register: async (program) => {
192
- (await import("./plugins-cli-1pbqkgc2.js")).registerPluginsCli(program);
193
- const { registerPluginCliCommands } = await import("./cli-Bjw4Mr_t.js");
192
+ (await import("./plugins-cli-CXz_UApK.js")).registerPluginsCli(program);
193
+ const { registerPluginCliCommands } = await import("./cli-DYdRSi_j.js");
194
194
  registerPluginCliCommands(program, await loadConfig());
195
195
  }
196
196
  },
@@ -199,7 +199,7 @@ const entries = [
199
199
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
200
200
  hasSubcommands: true,
201
201
  register: async (program) => {
202
- (await import("./channels-cli-RkhiaITs.js")).registerChannelsCli(program);
202
+ (await import("./channels-cli-CUWuD7qf.js")).registerChannelsCli(program);
203
203
  }
204
204
  },
205
205
  {
@@ -231,7 +231,7 @@ const entries = [
231
231
  description: "Update Symi and inspect update channel status",
232
232
  hasSubcommands: true,
233
233
  register: async (program) => {
234
- (await import("./update-cli-B8lzwxOj.js")).registerUpdateCli(program);
234
+ (await import("./update-cli-D8nA6U7C.js")).registerUpdateCli(program);
235
235
  }
236
236
  },
237
237
  {
@@ -239,7 +239,7 @@ const entries = [
239
239
  description: "Generate shell completion script",
240
240
  hasSubcommands: false,
241
241
  register: async (program) => {
242
- (await import("./completion-cli-rD9RSIqQ.js").then((n) => n.n)).registerCompletionCli(program);
242
+ (await import("./completion-cli-BKm12loU.js").then((n) => n.n)).registerCompletionCli(program);
243
243
  }
244
244
  }
245
245
  ];
@@ -302,7 +302,7 @@ const coreEntries = [
302
302
  hasSubcommands: false
303
303
  }],
304
304
  register: async ({ program }) => {
305
- (await import("./register.setup-CUK-FwzD.js")).registerSetupCommand(program);
305
+ (await import("./register.setup-DgUxMRZR.js")).registerSetupCommand(program);
306
306
  }
307
307
  },
308
308
  {
@@ -312,7 +312,7 @@ const coreEntries = [
312
312
  hasSubcommands: false
313
313
  }],
314
314
  register: async ({ program }) => {
315
- (await import("./register.onboard-DfCy6ZXS.js")).registerOnboardCommand(program);
315
+ (await import("./register.onboard-Dt53qGB5.js")).registerOnboardCommand(program);
316
316
  }
317
317
  },
318
318
  {
@@ -322,7 +322,7 @@ const coreEntries = [
322
322
  hasSubcommands: false
323
323
  }],
324
324
  register: async ({ program }) => {
325
- (await import("./register.configure-o-37DMn9.js")).registerConfigureCommand(program);
325
+ (await import("./register.configure-BhncI0ij.js")).registerConfigureCommand(program);
326
326
  }
327
327
  },
328
328
  {
@@ -332,7 +332,7 @@ const coreEntries = [
332
332
  hasSubcommands: true
333
333
  }],
334
334
  register: async ({ program }) => {
335
- (await import("./config-cli-DFYbGvDQ.js")).registerConfigCli(program);
335
+ (await import("./config-cli-D47lU7kU.js")).registerConfigCli(program);
336
336
  }
337
337
  },
338
338
  {
@@ -359,7 +359,7 @@ const coreEntries = [
359
359
  }
360
360
  ],
361
361
  register: async ({ program }) => {
362
- (await import("./register.maintenance-B119maJ4.js")).registerMaintenanceCommands(program);
362
+ (await import("./register.maintenance-BO1XWhVb.js")).registerMaintenanceCommands(program);
363
363
  }
364
364
  },
365
365
  {
@@ -369,7 +369,7 @@ const coreEntries = [
369
369
  hasSubcommands: true
370
370
  }],
371
371
  register: async ({ program, ctx }) => {
372
- (await import("./register.message-Dqit98AR.js")).registerMessageCommands(program, ctx);
372
+ (await import("./register.message-B194ue2R.js")).registerMessageCommands(program, ctx);
373
373
  }
374
374
  },
375
375
  {
@@ -393,7 +393,7 @@ const coreEntries = [
393
393
  hasSubcommands: true
394
394
  }],
395
395
  register: async ({ program, ctx }) => {
396
- (await import("./register.agent-CBYb5PmK.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
396
+ (await import("./register.agent-DV7IR1rI.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
397
397
  }
398
398
  },
399
399
  {
@@ -415,7 +415,7 @@ const coreEntries = [
415
415
  }
416
416
  ],
417
417
  register: async ({ program }) => {
418
- (await import("./register.status-health-sessions-CvcX-h97.js")).registerStatusHealthSessionsCommands(program);
418
+ (await import("./register.status-health-sessions-TvGuwVoR.js")).registerStatusHealthSessionsCommands(program);
419
419
  }
420
420
  },
421
421
  {
@@ -8,7 +8,7 @@ import { t as buildWorkspaceSkillStatus } from "./skills-status-DKXJ-tbi.js";
8
8
  import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-DHBLS1Hl.js";
9
9
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
10
10
  import { l as resolveGatewayBindHost, n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
11
- import { _n as DEFAULT_OAUTH_WARN_MS, m as loadSymiPlugins, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-CzBf7A_o.js";
11
+ import { _n as DEFAULT_OAUTH_WARN_MS, m as loadSymiPlugins, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-J2pIBQF7.js";
12
12
  import { F as resolveMainSessionKey, H as cleanStaleLockFiles, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
13
13
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
14
14
  import { D as DEFAULT_SANDBOX_COMMON_IMAGE, E as DEFAULT_SANDBOX_BROWSER_IMAGE, O as DEFAULT_SANDBOX_IMAGE, p as resolveSandboxScope } from "./sandbox-BFzSUT19.js";
@@ -31,16 +31,16 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
31
31
  import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, o as needsNodeRuntimeMigration, r as SERVICE_AUDIT_CODES, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-sQipWGd1.js";
32
32
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
33
33
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-t04OgGMk.js";
34
- import { r as healthCommand } from "./health-CqQIZeIm.js";
34
+ import { r as healthCommand } from "./health-CXjAtn1-.js";
35
35
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-BseSWee1.js";
36
36
  import { t as resolveDmAllowState } from "./dm-policy-shared-DJ-61hCT.js";
37
- import { t as runGatewayUpdate } from "./update-runner-CEjq0Uxs.js";
37
+ import { t as runGatewayUpdate } from "./update-runner-D8AFB8Oi.js";
38
38
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
39
39
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
40
40
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-CA3eiKhd.js";
41
41
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DA_LW52P.js";
42
42
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
43
- import { n as doctorShellCompletion } from "./doctor-completion-F_AI3hun.js";
43
+ import { n as doctorShellCompletion } from "./doctor-completion-DyiRkYT4.js";
44
44
  import { execFile } from "node:child_process";
45
45
  import os from "node:os";
46
46
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { d as resolveIsNixMode, g as resolveStateDir, m as resolveOAuthDir, t as CONFIG_PATH, u as resolveGatewayPort, y as resolveRequiredHomeDir } from "./paths-Cqn-zk3M.js";
2
2
  import { C as sleep, S as shortenHomePath, U as getResolvedLoggerSettings, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
- import { _r as formatRemainingShort, ft as loadSymiPlugins, gr as buildAuthHealthSummary, hr as DEFAULT_OAUTH_WARN_MS } from "./reply-DPaH7oQp.js";
3
+ import { _r as formatRemainingShort, ft as loadSymiPlugins, gr as buildAuthHealthSummary, hr as DEFAULT_OAUTH_WARN_MS } from "./reply-DUZvOCsG.js";
4
4
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
5
5
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
6
6
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -34,16 +34,16 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
34
34
  import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, o as needsNodeRuntimeMigration, r as SERVICE_AUDIT_CODES, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-BR6gChwm.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
36
36
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CllGjsWo.js";
37
- import { r as healthCommand } from "./health-DbJOe12X.js";
37
+ import { r as healthCommand } from "./health-B32Q-KYM.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-Z947tKLt.js";
39
39
  import { t as resolveDmAllowState } from "./dm-policy-shared-Bh3TbexU.js";
40
- import { t as runGatewayUpdate } from "./update-runner-DLCpL3Pj.js";
40
+ import { t as runGatewayUpdate } from "./update-runner-DvZOsoQs.js";
41
41
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
42
42
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
43
43
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-QnaBd8kL.js";
44
44
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-aQ75ZlXY.js";
45
45
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
46
- import { n as doctorShellCompletion } from "./doctor-completion-vTHV1Opp.js";
46
+ import { n as doctorShellCompletion } from "./doctor-completion-SEerte2S.js";
47
47
  import fs from "node:fs";
48
48
  import os from "node:os";
49
49
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { L as normalizeProviderId, b as ensureAuthProfileStore, v as upsertAuthProfile } from "./auth-profiles-Q1xTr5SX.js";
3
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CzBf7A_o.js";
3
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-J2pIBQF7.js";
4
4
  import { n as isWSLEnv } from "./wsl-jdLWdiKy.js";
5
5
  import { r as stylePromptTitle } from "./prompt-style-DwCXob2h.js";
6
6
  import { f as updateConfig } from "./shared-D8K9MkWg.js";
@@ -1,4 +1,4 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DPaH7oQp.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DUZvOCsG.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
3
  import { At as ensureAuthProfileStore, Ot as upsertAuthProfile, l as normalizeProviderId } from "./model-selection-CyFvYcRt.js";
4
4
  import { n as isWSLEnv } from "./wsl-C4424szg.js";
@@ -1,7 +1,7 @@
1
1
  import { Yt as resolveStateDir, _t as isVerbose, f as shouldLogSubsystemToConsole, o as createSubsystemLogger } from "./entry.js";
2
2
  import { S as parseAgentSessionKey } from "./session-key-DjZ7Z1hW.js";
3
3
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
4
- import { Fn as estimateBase64DecodedBytes, d as sniffMimeFromBase64 } from "./subagent-registry-CzBf7A_o.js";
4
+ import { Fn as estimateBase64DecodedBytes, d as sniffMimeFromBase64 } from "./subagent-registry-J2pIBQF7.js";
5
5
  import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-B40lik2B.js";
6
6
  import path from "node:path";
7
7
  import chalk from "chalk";
@@ -1,6 +1,6 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { A as isVerbose } from "./utils-B-0b9bGM.js";
3
- import { Nr as estimateBase64DecodedBytes, ot as sniffMimeFromBase64 } from "./reply-DPaH7oQp.js";
3
+ import { Nr as estimateBase64DecodedBytes, ot as sniffMimeFromBase64 } from "./reply-DUZvOCsG.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { s as shouldLogSubsystemToConsole, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
6
6
  import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-f-Q-hFt_.js";
@@ -9,7 +9,7 @@ import "./github-copilot-token-cCYzSU9h.js";
9
9
  import "./boolean-CE7i9tBR.js";
10
10
  import "./config-5SdHIcHU.js";
11
11
  import "./manifest-registry-yb7sAlu4.js";
12
- import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-DYZwl5Gv.js";
12
+ import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-DkaXoP36.js";
13
13
  import "./redact-BDMXB06K.js";
14
14
  import { n as formatErrorMessage } from "./errors-XIsvXeC-.js";
15
15
  import "./ssrf-DpUUUgkK.js";
@@ -15,7 +15,7 @@ import "./client-DMBZpU6X.js";
15
15
  import { a as randomIdempotencyKey, n as callGateway } from "./call-BcE47FtD.js";
16
16
  import { h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import { E as createDefaultDeps, S as resolveSessionKeyForRequest, x as agentCommand } from "./subagent-registry-CzBf7A_o.js";
18
+ import { E as createDefaultDeps, S as resolveSessionKeyForRequest, x as agentCommand } from "./subagent-registry-J2pIBQF7.js";
19
19
  import "./sessions-CJXnZVjR.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -108,16 +108,16 @@ import "./install-safe-path-BK8js28D.js";
108
108
  import "./npm-registry-spec-DkaZNHAW.js";
109
109
  import "./skill-scanner-BGWOBqLY.js";
110
110
  import "./installs-CgQpVncj.js";
111
- import "./onboard-channels-B39Hvc_L.js";
111
+ import "./onboard-channels-DLiV4Y0t.js";
112
112
  import "./config-validation-BITwrsxY.js";
113
113
  import { t as collectOption } from "./helpers-ITexi1_a.js";
114
- import "./agents.config-BoP9QtHX.js";
114
+ import "./agents.config-Co1CO8fA.js";
115
115
  import "./shared-D8K9MkWg.js";
116
116
  import "./auth-token-Cmrk2TPo.js";
117
117
  import "./logging-BGewRZy0.js";
118
- import "./provider-auth-helpers-aA2Nm1dz.js";
119
- import { a as agentsAddCommand, i as agentsDeleteCommand, n as agentsListCommand, r as agentsSetIdentityCommand } from "./agents-Cz2na8n6.js";
120
- import "./auth-choice-DTe3UF8T.js";
118
+ import "./provider-auth-helpers-Dc7jBEOA.js";
119
+ import { a as agentsAddCommand, i as agentsDeleteCommand, n as agentsListCommand, r as agentsSetIdentityCommand } from "./agents-CrSpoNsS.js";
120
+ import "./auth-choice-BBmXnDnK.js";
121
121
  import "./openai-model-default-DAwnTUcK.js";
122
122
  import "./model-picker-D5nCutGW.js";
123
123
 
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, P as setVerbose, S as shortenHomePath, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { $t as parseIdentityMarkdown, Dt as resolveSessionKeyForRequest, Et as agentCommand, Lt as createDefaultDeps, Zt as identityHasValues } from "./reply-DPaH7oQp.js";
4
+ import { $t as parseIdentityMarkdown, Dt as resolveSessionKeyForRequest, Et as agentCommand, Lt as createDefaultDeps, Zt as identityHasValues } from "./reply-DUZvOCsG.js";
5
5
  import { m as DEFAULT_ACCOUNT_ID, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-DCt45XZa.js";
6
6
  import { r as DEFAULT_CHAT_CHANNEL } from "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -115,15 +115,15 @@ import "./install-safe-path-tCLiMpmO.js";
115
115
  import "./npm-registry-spec-C2JDdSZS.js";
116
116
  import "./skill-scanner-CLs8u6vQ.js";
117
117
  import "./installs-C1Cebk97.js";
118
- import { r as setupChannels } from "./onboard-channels-BSzHnDcL.js";
118
+ import { r as setupChannels } from "./onboard-channels-DxCGWgB0.js";
119
119
  import { t as requireValidConfigSnapshot } from "./config-validation-CmimHAES.js";
120
- import { a as pruneAgentConfig, i as loadAgentIdentity, n as buildAgentSummaries, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BeOO73lT.js";
120
+ import { a as pruneAgentConfig, i as loadAgentIdentity, n as buildAgentSummaries, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-B3GILTs5.js";
121
121
  import "./shared-Knv1hy6h.js";
122
122
  import "./auth-token-BnOynwk4.js";
123
123
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
124
- import "./provider-auth-helpers-BD1qo8xm.js";
124
+ import "./provider-auth-helpers-DhLHWjNU.js";
125
125
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BLzEBA1v.js";
126
- import { i as applyAuthChoice, r as warnIfModelConfigLooksOff } from "./auth-choice-D-czhFdL.js";
126
+ import { i as applyAuthChoice, r as warnIfModelConfigLooksOff } from "./auth-choice-BHWxDJh7.js";
127
127
  import "./openai-model-default-DMjQRsb1.js";
128
128
  import "./model-picker-Ddo3jHe-.js";
129
129
  import path from "node:path";