@symerian/symi 3.4.7 → 3.4.8

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 (51) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/{chrome-CPSDqbK6.js → chrome-CQn8fDIy.js} +7 -7
  4. package/dist/{command-registry-ByBvyNis.js → command-registry-D8fj6th4.js} +4 -4
  5. package/dist/{completion-cli-BFBbL-u4.js → completion-cli-BxspmuYm.js} +2 -2
  6. package/dist/{completion-cli-rzEsCzmE.js → completion-cli-C-85b5b8.js} +1 -1
  7. package/dist/control-ui/js/metrics.js +0 -10
  8. package/dist/{deliver-Mqq3tgqB.js → deliver-DvW5xHHr.js} +4 -4
  9. package/dist/{doctor-completion-B8cqL1A0.js → doctor-completion-BwHbIZjF.js} +1 -1
  10. package/dist/{doctor-completion-BqbhVdbe.js → doctor-completion-CX7LjkOD.js} +1 -1
  11. package/dist/entry.js +1 -1
  12. package/dist/extensionAPI.js +4 -4
  13. package/dist/{gateway-cli-DYJxZ5dh.js → gateway-cli-CTcK1Az2.js} +1 -1
  14. package/dist/{gateway-cli-DfRlFuH-.js → gateway-cli-CW-Z71cE.js} +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/{manager-MbrGCH4o.js → manager-D0NIHMuQ.js} +1 -1
  17. package/dist/{onboard-kDOde8WJ.js → onboard-C8IQnigm.js} +1 -1
  18. package/dist/{onboard-_3W1qIFk.js → onboard-CAIujkV7.js} +1 -1
  19. package/dist/{onboarding-CXaQnqxR.js → onboarding-4v9LJueP.js} +1 -1
  20. package/dist/{onboarding-BJ27gXxY.js → onboarding-BIq5BxG0.js} +1 -1
  21. package/dist/{onboarding.finalize-CSgYg74M.js → onboarding.finalize-Bkcwe5RS.js} +4 -4
  22. package/dist/{onboarding.finalize-CsyhJcuq.js → onboarding.finalize-CXAQzVXM.js} +5 -5
  23. package/dist/{pi-embedded-8Zh_Y5ur.js → pi-embedded-CGebiST2.js} +10 -10
  24. package/dist/plugin-sdk/index.js +6 -6
  25. package/dist/{program-BPcy7UBj.js → program-C19G7o-Q.js} +2 -2
  26. package/dist/{program-context-DYS38Clb.js → program-context-BSUkEz3n.js} +7 -7
  27. package/dist/{prompt-select-styled-Kgvc0-w2.js → prompt-select-styled-B5wlPYN5.js} +1 -1
  28. package/dist/{prompt-select-styled-uUOSg6Qq.js → prompt-select-styled-CnYM7W0j.js} +1 -1
  29. package/dist/{pw-ai-w6Qalz1W.js → pw-ai-BB1pJj9_.js} +1 -1
  30. package/dist/{register.maintenance-CNcd1-Vv.js → register.maintenance-CKsv0lok.js} +5 -5
  31. package/dist/{register.maintenance-BMswbbSL.js → register.maintenance-DDzKUGYJ.js} +4 -4
  32. package/dist/{register.onboard-DR2Wu59i.js → register.onboard-BHtTh0b_.js} +2 -2
  33. package/dist/{register.onboard-CRNjEhnQ.js → register.onboard-CkIM3hU7.js} +2 -2
  34. package/dist/{register.setup-Crrj2t2B.js → register.setup-CLhdFQHW.js} +2 -2
  35. package/dist/{register.setup-Dbe-Z2xu.js → register.setup-CYtYDKMU.js} +2 -2
  36. package/dist/{register.subclis-BRPnstmu.js → register.subclis-CnDo2jzv.js} +4 -4
  37. package/dist/{run-main-CMQVjdht.js → run-main-BIRbWKyA.js} +3 -3
  38. package/dist/{synthesis-iB7TWRW4.js → synthesis-CQdzrLFL.js} +4 -4
  39. package/dist/{tui-B4Pd0T9l.js → tui-D0j61PXx.js} +1 -1
  40. package/dist/{tui-DBrpAw57.js → tui-DFuScHlA.js} +1 -1
  41. package/dist/{tui-cli-B-obcHoZ.js → tui-cli-25xTveHh.js} +1 -1
  42. package/dist/{tui-cli-tbUaY-Pu.js → tui-cli-C3dXNtPo.js} +1 -1
  43. package/dist/{update-cli-Mpq0iwGk.js → update-cli-CWufRpkr.js} +4 -4
  44. package/dist/{update-cli-CUgElk5d.js → update-cli-Dl_QbjXc.js} +5 -5
  45. package/docs/reference/templates/AGENTS.dev.md +0 -4
  46. package/docs/reference/templates/AGENTS.md +7 -68
  47. package/docs/reference/templates/CONFIG-SCHEMA.md +0 -7
  48. package/extensions/shared/resolve-target-test-helpers.ts +1 -1
  49. package/package.json +1 -1
  50. package/skills/coding-agent/SKILL.md +2 -2
  51. package/docs/reference/templates/SYMIPULSE.md +0 -103
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.4.7",
3
- "commit": "be68fee530a1a79950f5e03ea607471819a01875",
4
- "builtAt": "2026-05-03T21:30:17.194Z"
2
+ "version": "3.4.8",
3
+ "commit": "31d66c8692ab6a8547e67864736401b3887dba49",
4
+ "builtAt": "2026-05-03T21:43:39.666Z"
5
5
  }
@@ -1 +1 @@
1
- 2da12392f1dfb9456c6f4f2bcf5d0407221f77b6898ec39d55278c183f0fcf97
1
+ b9fe869c3c58059b9f0d77a05e0059597cf7460323f7ab46e5f2c6689e9d56e6
@@ -9,7 +9,7 @@ import fs$1 from "node:fs/promises";
9
9
  import { execFileSync, spawn } from "node:child_process";
10
10
  import net from "node:net";
11
11
  import { createServer } from "node:http";
12
- import WebSocket, { WebSocketServer } from "ws";
12
+ import WebSocket$1, { WebSocketServer } from "ws";
13
13
  import { Buffer as Buffer$1 } from "node:buffer";
14
14
 
15
15
  //#region src/browser/constants.ts
@@ -177,7 +177,7 @@ async function ensureChromeExtensionRelayServer(opts) {
177
177
  let nextExtensionId = 1;
178
178
  const sendToExtension = async (payload) => {
179
179
  const ws = extensionWs;
180
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
180
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
181
181
  ws.send(JSON.stringify(payload));
182
182
  return await new Promise((resolve, reject) => {
183
183
  const timer = setTimeout(() => {
@@ -194,12 +194,12 @@ async function ensureChromeExtensionRelayServer(opts) {
194
194
  const broadcastToCdpClients = (evt) => {
195
195
  const msg = JSON.stringify(evt);
196
196
  for (const ws of cdpClients) {
197
- if (ws.readyState !== WebSocket.OPEN) continue;
197
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
198
198
  ws.send(msg);
199
199
  }
200
200
  };
201
201
  const sendResponseToCdp = (ws, res) => {
202
- if (ws.readyState !== WebSocket.OPEN) return;
202
+ if (ws.readyState !== WebSocket$1.OPEN) return;
203
203
  ws.send(JSON.stringify(res));
204
204
  };
205
205
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -424,7 +424,7 @@ async function ensureChromeExtensionRelayServer(opts) {
424
424
  wssExtension.on("connection", (ws) => {
425
425
  extensionWs = ws;
426
426
  const ping = setInterval(() => {
427
- if (ws.readyState !== WebSocket.OPEN) return;
427
+ if (ws.readyState !== WebSocket$1.OPEN) return;
428
428
  ws.send(JSON.stringify({ method: "ping" }));
429
429
  }, 5e3);
430
430
  ws.on("message", (data) => {
@@ -742,7 +742,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
742
742
  }
743
743
  async function withCdpSocket(wsUrl, fn, opts) {
744
744
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
745
- const ws = new WebSocket(wsUrl, {
745
+ const ws = new WebSocket$1(wsUrl, {
746
746
  handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
747
747
  ...Object.keys(headers).length ? { headers } : {}
748
748
  });
@@ -1636,7 +1636,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1636
1636
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1637
1637
  return await new Promise((resolve) => {
1638
1638
  const headers = getHeadersWithAuth(wsUrl);
1639
- const ws = new WebSocket(wsUrl, {
1639
+ const ws = new WebSocket$1(wsUrl, {
1640
1640
  handshakeTimeout: timeoutMs,
1641
1641
  ...Object.keys(headers).length ? { headers } : {}
1642
1642
  });
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Zt as getPrimaryCommand, en as hasHelpOrVersion } from "./entry.js";
3
- import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-BRPnstmu.js";
3
+ import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-CnDo2jzv.js";
4
4
 
5
5
  //#region src/cli/program/command-registry.ts
6
6
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -22,7 +22,7 @@ const coreEntries = [
22
22
  hasSubcommands: false
23
23
  }],
24
24
  register: async ({ program }) => {
25
- (await import("./register.setup-Dbe-Z2xu.js")).registerSetupCommand(program);
25
+ (await import("./register.setup-CYtYDKMU.js")).registerSetupCommand(program);
26
26
  }
27
27
  },
28
28
  {
@@ -32,7 +32,7 @@ const coreEntries = [
32
32
  hasSubcommands: false
33
33
  }],
34
34
  register: async ({ program }) => {
35
- (await import("./register.onboard-CRNjEhnQ.js")).registerOnboardCommand(program);
35
+ (await import("./register.onboard-CkIM3hU7.js")).registerOnboardCommand(program);
36
36
  }
37
37
  },
38
38
  {
@@ -79,7 +79,7 @@ const coreEntries = [
79
79
  }
80
80
  ],
81
81
  register: async ({ program }) => {
82
- (await import("./register.maintenance-CNcd1-Vv.js")).registerMaintenanceCommands(program);
82
+ (await import("./register.maintenance-CKsv0lok.js")).registerMaintenanceCommands(program);
83
83
  }
84
84
  },
85
85
  {
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { jt as pathExists, l as routeLogsToStderr, vt as resolveStateDir } from "./entry.js";
3
- import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-BRPnstmu.js";
4
- import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-ByBvyNis.js";
3
+ import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-CnDo2jzv.js";
4
+ import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-D8fj6th4.js";
5
5
  import { t as getProgramContext } from "./program-context-BFKw4l9I.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as resolveStateDir } from "./paths-BSzKwaxE.js";
3
3
  import { f as pathExists } from "./utils-BU8jVQFM.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-CtH6J8AV.js";
5
- import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-DYS38Clb.js";
5
+ import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-BSUkEz3n.js";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
8
8
  import fs from "node:fs/promises";
@@ -45,19 +45,9 @@ function updateSubagents() {
45
45
  }
46
46
  }
47
47
 
48
- function updateHeartbeat() {
49
- const el = document.getElementById("last-hb");
50
- if (el) {
51
- const now = new Date();
52
- el.textContent = now.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit" });
53
- }
54
- }
55
-
56
48
  // Initial + interval updates
57
49
  void updateMetrics();
58
50
  updateUptime();
59
51
  updateSubagents();
60
- updateHeartbeat();
61
52
 
62
53
  setInterval(updateMetrics, 2000);
63
- setInterval(updateHeartbeat, 30000);
@@ -9,7 +9,7 @@ import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
9
9
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-Cp39v6b_.js";
10
10
  import { _ as listDeliverableMessageChannels, c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, v as normalizeMessageChannel } from "./chunk-BjnT3w_x.js";
11
11
  import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-CBajKNWO.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-CPSDqbK6.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-CQn8fDIy.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Bn0f9KTL.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C6sHIFo_.js";
15
15
  import { C as openFileWithinRoot, S as SafeOpenError, a as IMAGE_REDUCE_QUALITY_STEPS, c as getImageMetadata, d as resizeToJpeg, f as detectMime, n as isSilentReplyText, o as buildImageResizeSideGrid, p as extensionForMime, r as getAgentScopedMediaLocalRoots, t as SILENT_REPLY_TOKEN } from "./tokens-Dm_xa-oz.js";
@@ -1329,7 +1329,7 @@ function isModuleNotFoundError(err) {
1329
1329
  }
1330
1330
  async function loadPwAiModule(mode) {
1331
1331
  try {
1332
- return await import("./pw-ai-w6Qalz1W.js");
1332
+ return await import("./pw-ai-BB1pJj9_.js");
1333
1333
  } catch (err) {
1334
1334
  if (mode === "soft") return null;
1335
1335
  if (isModuleNotFoundError(err)) return null;
@@ -3926,11 +3926,11 @@ function createProfileContext(opts, profile) {
3926
3926
  const userDataDir = resolveSymiUserDataDir(profile.name);
3927
3927
  const profileState = getProfileState();
3928
3928
  if (await isHttpReachable(300) && !profileState.running) try {
3929
- await (await import("./pw-ai-w6Qalz1W.js")).closePlaywrightBrowserConnection();
3929
+ await (await import("./pw-ai-BB1pJj9_.js")).closePlaywrightBrowserConnection();
3930
3930
  } catch {}
3931
3931
  if (profileState.running) await stopRunningBrowser();
3932
3932
  try {
3933
- await (await import("./pw-ai-w6Qalz1W.js")).closePlaywrightBrowserConnection();
3933
+ await (await import("./pw-ai-BB1pJj9_.js")).closePlaywrightBrowserConnection();
3934
3934
  } catch {}
3935
3935
  if (!fs.existsSync(userDataDir)) return {
3936
3936
  moved: false,
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BvAkTjTI.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-DueRHNOE.js";
3
3
  import { t as note } from "./note-CHrtEumO.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-rzEsCzmE.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-C-85b5b8.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-Xm6vX3qJ.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-CK6iELVh.js";
3
3
  import { t as note } from "./note-DKRm9hYC.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BFBbL-u4.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BxspmuYm.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
package/dist/entry.js CHANGED
@@ -2312,7 +2312,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2312
2312
  applyCliProfileEnv({ profile: parsed.profile });
2313
2313
  process$1.argv = parsed.argv;
2314
2314
  }
2315
- import("./run-main-CMQVjdht.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2315
+ import("./run-main-BIRbWKyA.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2316
2316
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2317
2317
  process$1.exitCode = 1;
2318
2318
  });
@@ -7,21 +7,21 @@ import { a as resolveAgentIdentity } from "./reply-prefix-i-FPYcoQ.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./plugins-Cp39v6b_.js";
9
9
  import "./replies-DU-fXkSk.js";
10
- import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-8Zh_Y5ur.js";
11
- import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-Mqq3tgqB.js";
10
+ import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-CGebiST2.js";
11
+ import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-DvW5xHHr.js";
12
12
  import "./diagnostic-BvZmqxYI.js";
13
13
  import "./diagnostic-session-state-CWtaDOiK.js";
14
14
  import "./chunk-BjnT3w_x.js";
15
15
  import "./ssrf-CBajKNWO.js";
16
16
  import "./manifest-registry-CAWGTwb5.js";
17
- import "./chrome-CPSDqbK6.js";
17
+ import "./chrome-CQn8fDIy.js";
18
18
  import "./skills-Bn0f9KTL.js";
19
19
  import "./redact-ojHFHOAb.js";
20
20
  import "./errors-C6sHIFo_.js";
21
21
  import "./tokens-Dm_xa-oz.js";
22
22
  import "./thinking-BKsvyjWX.js";
23
23
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-N698mtPE.js";
24
- import "./manager-MbrGCH4o.js";
24
+ import "./manager-D0NIHMuQ.js";
25
25
  import "./sqlite-jFnvSfLz.js";
26
26
  import "./markdown-tables-BtWlyyt1.js";
27
27
  import "./commands-registry-BRWqR35Z.js";
@@ -120,7 +120,7 @@ import { r as pickGatewaySelfPresence } from "./status-DEXnB1sw.js";
120
120
  import { i as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-D8cKia4i.js";
121
121
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DUhvOLUL.js";
122
122
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-CZxZhEXr.js";
123
- import { t as runOnboardingWizard } from "./onboarding-CXaQnqxR.js";
123
+ import { t as runOnboardingWizard } from "./onboarding-4v9LJueP.js";
124
124
  import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-vp5zi6v5.js";
125
125
  import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-Bm39oOO9.js";
126
126
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-fA1VaWLv.js";
@@ -115,7 +115,7 @@ import { n as createDefaultDeps, t as createOutboundSendDeps } from "./outbound-
115
115
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5BrwGRs.js";
116
116
  import { t as ensureSymiCliOnPath } from "./path-env-DmaMvYrK.js";
117
117
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-C1JNxsic.js";
118
- import { t as runOnboardingWizard } from "./onboarding-BJ27gXxY.js";
118
+ import { t as runOnboardingWizard } from "./onboarding-BIq5BxG0.js";
119
119
  import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-Dz6NGEg3.js";
120
120
  import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-DqmFEcqh.js";
121
121
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-B1BYpISg.js";
package/dist/index.js CHANGED
@@ -88,7 +88,7 @@ import { t as ensureSymiCliOnPath } from "./path-env-DuQralyy.js";
88
88
  import { t as assertSupportedRuntime } from "./runtime-guard-BZ3_1QqS.js";
89
89
  import "./ports-DRHSHvqY.js";
90
90
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-Bt9A9Gfj.js";
91
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-DYS38Clb.js";
91
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-BSUkEz3n.js";
92
92
  import "./catalog-CSgSg5Gp.js";
93
93
  import "./plugin-registry-d4hMhLLZ.js";
94
94
  import { n as resolveCliChannelOptions } from "./channel-options-COanIUoQ.js";
@@ -4220,7 +4220,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
4220
4220
  * to bypass the min-interval guard (CLI use).
4221
4221
  */
4222
4222
  async runL3CycleIfDue(params) {
4223
- const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-QhuD5a9e.js"), import("./synthesis-iB7TWRW4.js")]);
4223
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-QhuD5a9e.js"), import("./synthesis-CQdzrLFL.js")]);
4224
4224
  const synthesize = createSynthesizer({
4225
4225
  cfg: this.cfg,
4226
4226
  agentId: this.agentId,
@@ -12,7 +12,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-9LEEqibe.js";
13
13
  import { t as resolveGatewayService } from "./service-AP9pR9R5.js";
14
14
  import { r as healthCommand } from "./health-D8cKia4i.js";
15
- import { t as runOnboardingWizard } from "./onboarding-CXaQnqxR.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-4v9LJueP.js";
16
16
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-SebYuqfR.js";
17
17
  import { n as logConfigUpdated } from "./logging-B96FQvnn.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-CsjluQCN.js";
@@ -10,7 +10,7 @@ import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, c as han
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-p_nEAkHC.js";
11
11
  import { t as resolveGatewayService } from "./service-BIixwO-v.js";
12
12
  import { r as healthCommand } from "./health-DdzNc1yA.js";
13
- import { t as runOnboardingWizard } from "./onboarding-BJ27gXxY.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-BIq5BxG0.js";
14
14
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-Brb1Askz.js";
15
15
  import { n as logConfigUpdated } from "./logging-BeA4q4J_.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-D9WcUI_J.js";
@@ -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-CSgYg74M.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Bkcwe5RS.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -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-CsyhJcuq.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CXAQzVXM.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -43,10 +43,10 @@ import "./tool-display-Dr6VaTg5.js";
43
43
  import "./bindings-9LSA3Jr1.js";
44
44
  import "./progress-CyPyGCDn.js";
45
45
  import "./runtime-guard-BZ3_1QqS.js";
46
- import "./program-context-DYS38Clb.js";
46
+ import "./program-context-BSUkEz3n.js";
47
47
  import "./prompt-style-Cad0BDRS.js";
48
48
  import "./note-CHrtEumO.js";
49
- import { r as installCompletion } from "./completion-cli-rzEsCzmE.js";
49
+ import { r as installCompletion } from "./completion-cli-C-85b5b8.js";
50
50
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BpfA4d6Q.js";
51
51
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CHfdRdZR.js";
52
52
  import { r as isSystemdUserServiceAvailable } from "./systemd-9LEEqibe.js";
@@ -54,8 +54,8 @@ import { t as resolveGatewayService } from "./service-AP9pR9R5.js";
54
54
  import { r as healthCommand } from "./health-D8cKia4i.js";
55
55
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DUhvOLUL.js";
56
56
  import { t as formatHealthCheckFailure } from "./health-format-39e76m9p.js";
57
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B8cqL1A0.js";
58
- import { t as runTui } from "./tui-DBrpAw57.js";
57
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BwHbIZjF.js";
58
+ import { t as runTui } from "./tui-DFuScHlA.js";
59
59
  import path from "node:path";
60
60
  import os from "node:os";
61
61
  import fs from "node:fs/promises";
@@ -39,10 +39,10 @@ import "./bindings-D3NmzRPM.js";
39
39
  import "./progress-C4ck6JXh.js";
40
40
  import "./prompt-style-Z2ZizQap.js";
41
41
  import "./note-DKRm9hYC.js";
42
- import "./register.subclis-BRPnstmu.js";
43
- import "./command-registry-ByBvyNis.js";
42
+ import "./register.subclis-CnDo2jzv.js";
43
+ import "./command-registry-D8fj6th4.js";
44
44
  import "./program-context-BFKw4l9I.js";
45
- import { r as installCompletion } from "./completion-cli-BFBbL-u4.js";
45
+ import { r as installCompletion } from "./completion-cli-BxspmuYm.js";
46
46
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2Y9RfgcP.js";
47
47
  import "./runtime-guard-p4-FMx0l.js";
48
48
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-Bm-oyLWy.js";
@@ -51,8 +51,8 @@ import { t as resolveGatewayService } from "./service-BIixwO-v.js";
51
51
  import { r as healthCommand } from "./health-DdzNc1yA.js";
52
52
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-B5BrwGRs.js";
53
53
  import { t as formatHealthCheckFailure } from "./health-format-DaP03FBk.js";
54
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BqbhVdbe.js";
55
- import { t as runTui } from "./tui-B4Pd0T9l.js";
54
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CX7LjkOD.js";
55
+ import { t as runTui } from "./tui-D0j61PXx.js";
56
56
  import os from "node:os";
57
57
  import path from "node:path";
58
58
  import fs from "node:fs/promises";
@@ -10,13 +10,13 @@ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Bbs
10
10
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
11
11
  import { i as resolveSlackAccount, n as listChannelPlugins, o as resolveSlackAppToken, r as normalizeChannelId$1, s as resolveSlackBotToken, t as getChannelPlugin } from "./plugins-Cp39v6b_.js";
12
12
  import { S as resolveSlackChannelId, _ as resolveSlackWebClientOptions, a as sendMessageSlack, b as buildSlackBlocksFallbackText, c as getDefaultLocalRoots, d as fetchRemoteMedia, f as readResponseWithLimit, g as createSlackWebClient, h as fetchWithTimeout, i as resolveSlackThreadTs, l as loadWebMedia, m as bindAbortRelay, n as deliverReplies, o as renderMarkdownWithMarkers, p as fetchWithSsrFGuard, s as markdownToIRWithMeta, t as createSlackReplyDeliveryPlan, u as MediaFetchError, v as parseSlackBlocksInput, x as parseSlackTarget, y as validateSlackBlocksArray } from "./replies-DU-fXkSk.js";
13
- import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-Mqq3tgqB.js";
13
+ import { $ as loadSessionStore, $t as resolveToolProfilePolicy, A as formatRawAssistantErrorForUi, At as resolveMainSessionKey, B as isRateLimitAssistantError, Bt as saveMediaBuffer, C as downgradeOpenAIReasoningBlocks, Ct as resolveChannelResetConfig, D as classifyFailoverReason, Dt as DEFAULT_RESET_TRIGGERS, E as BILLING_ERROR_USER_MESSAGE, Et as resolveThreadFlag, F as isCompactionFailureError, Ft as createBrowserRouteContext, G as parseImageSizeError, Gt as resolveBrowserControlAuth, H as isTimeoutErrorMessage, Ht as resolveExistingPathsWithinRoot, I as isContextOverflowError, It as registerBrowserRoutes, J as resolveSandboxContext, Jt as collectExplicitAllowlist, K as sanitizeUserFacingText, Kt as applyOwnerOnlyToolPolicy, L as isFailoverAssistantError, Lt as resolveBrowserConfig, M as isAuthAssistantError, Mt as resolveGroupSessionKey, N as isBillingAssistantError, Nt as acquireSessionWriteLock, O as formatAssistantErrorText, Ot as resolveFreshSessionTotalTokens, P as isCloudCodeAssistFormatError, Pt as resolveSessionLockMaxHoldFromTimeout, Q as resolveAndPersistSessionFile, Qt as normalizeToolName$1, R as isFailoverErrorMessage, Rt as resolveProfile, S as extractToolResultId, St as evaluateSessionFreshness, T as isGoogleModelApi, Tt as resolveSessionResetType, U as isTransientHttpError, Ut as getBridgeAuthForPort, V as isRawApiErrorPayload, Vt as DEFAULT_UPLOAD_DIR, W as parseImageDimensionError, Wt as ensureBrowserControlAuth, X as extractDeliveryInfo, Xt as expandToolGroups, Y as resolveSandboxRuntimeStatus, Yt as expandPolicyWithPluginGroups, Z as appendAssistantMessageToSessionTranscript, Zt as mergeAlsoAllowPolicy, _ as sanitizeSessionMessagesImages, _t as INPUT_PROVENANCE_KIND_VALUES, a as normalizeChannelTargetInput, an as resolveBootstrapMaxChars, at as updateSessionStoreEntry, b as resolveImageSanitizationLimits, bt as normalizeInputProvenance, c as parseReplyDirectives, cn as getGlobalHookRunner, ct as deliveryContextFromSession, d as parseInlineDirectives$1, dt as normalizeDeliveryContext, en as stripPluginOnlyAllowlist, et as readSessionUpdatedAt, f as validateAnthropicTurns, ft as normalizeSessionDeliveryFields, g as normalizeTextForComparison, gt as extractToolCallNames, h as isMessagingToolDuplicateNormalized, ht as countToolResults, i as buildTargetResolverSignature, in as ensureSessionHeader, it as updateSessionStore, j as getApiErrorPayloadFingerprint, jt as deriveSessionMetaPatch, k as formatBillingErrorMessage, kt as canonicalizeMainSessionAlias, l as MEDIA_TOKEN_RE, ln as initializeGlobalHookRunner, lt as deliveryContextKey, m as pickFallbackThinkingLevel, mt as capArrayByJsonBytes, nn as matchesAnyGlobPattern, o as normalizeTargetForProvider, on as resolveBootstrapTotalMaxChars, ot as isCacheEnabled, p as validateGeminiTurns, pt as archiveSessionTranscripts, q as ensureSandboxWorkspaceForSession, qt as buildPluginToolGroups, r as normalizeReplyPayloadsForDelivery, rn as buildBootstrapContextFiles, rt as updateLastRoute, s as throwIfAborted, sn as sanitizeGoogleTurnOrdering, st as resolveCacheTtlMs$1, t as deliverOutboundPayloads, tn as compileGlobPatterns, tt as recordSessionMetaFromInbound, u as splitMediaFromOutput, ut as mergeDeliveryContext, v as sanitizeImageBlocks, vt as applyInputProvenanceToUserMessage, w as isAntigravityClaude, wt as resolveSessionResetPolicy, x as extractToolCallsFromAssistant, xt as resolveSessionKey, y as sanitizeToolResultImages, yt as hasInterSessionUserProvenance, z as isLikelyContextOverflowError, zt as getMediaDir } from "./deliver-DvW5xHHr.js";
14
14
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BvZmqxYI.js";
15
15
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-CWtaDOiK.js";
16
16
  import { S as GATEWAY_CLIENT_NAMES, _ as listDeliverableMessageChannels, a as chunkText, b as GATEWAY_CLIENT_IDS, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, g as isMarkdownCapableMessageChannel, h as isInternalMessageChannel, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, m as isDeliverableMessageChannel, o as chunkTextWithMode, p as INTERNAL_MESSAGE_CHANNEL, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt, v as normalizeMessageChannel, x as GATEWAY_CLIENT_MODES, y as resolveGatewayMessageChannel } from "./chunk-BjnT3w_x.js";
17
17
  import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, o as normalizeHostname, p as parseDurationMs, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-CBajKNWO.js";
18
18
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-CAWGTwb5.js";
19
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CPSDqbK6.js";
19
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CQn8fDIy.js";
20
20
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, h as parseFrontmatterBlock, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Bn0f9KTL.js";
21
21
  import { n as redactToolDetail } from "./redact-ojHFHOAb.js";
22
22
  import { n as formatErrorMessage } from "./errors-C6sHIFo_.js";
@@ -25,7 +25,7 @@ import { _ as normalizeHyphenSlug, a as normalizeReasoningLevel, c as normalizeV
25
25
  import { n as resolveConversationLabel } from "./conversation-label-CPUfoQmh.js";
26
26
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-N698mtPE.js";
27
27
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-fUhPZcB5.js";
28
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-MbrGCH4o.js";
28
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-D0NIHMuQ.js";
29
29
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-DWs9CjHs.js";
30
30
  import { n as resolveMarkdownTableMode } from "./markdown-tables-BtWlyyt1.js";
31
31
  import { a as shouldHandleTextCommands, c as resolveNativeCommandsEnabled, i as normalizeCommandBody, l as resolveNativeSkillsEnabled, n as listChatCommands, o as isCommandFlagEnabled, r as listChatCommandsForConfig, s as isRestartEnabled } from "./commands-registry-BRWqR35Z.js";
@@ -49,7 +49,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
49
49
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
50
50
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
51
51
  import AjvPkg from "ajv";
52
- import { WebSocket as WebSocket$1 } from "ws";
52
+ import { WebSocket } from "ws";
53
53
  import { Buffer as Buffer$1 } from "node:buffer";
54
54
  import { createJiti } from "jiti";
55
55
  import { Type } from "@sinclair/typebox";
@@ -1028,7 +1028,7 @@ async function getMemorySearchManager(params) {
1028
1028
  const wrapper = new FallbackMemoryManager({
1029
1029
  primary,
1030
1030
  fallbackFactory: async () => {
1031
- const { MemoryIndexManager } = await import("./manager-MbrGCH4o.js").then((n) => n.t);
1031
+ const { MemoryIndexManager } = await import("./manager-D0NIHMuQ.js").then((n) => n.t);
1032
1032
  return await MemoryIndexManager.get(params);
1033
1033
  }
1034
1034
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -1041,7 +1041,7 @@ async function getMemorySearchManager(params) {
1041
1041
  }
1042
1042
  }
1043
1043
  try {
1044
- const { MemoryIndexManager } = await import("./manager-MbrGCH4o.js").then((n) => n.t);
1044
+ const { MemoryIndexManager } = await import("./manager-D0NIHMuQ.js").then((n) => n.t);
1045
1045
  return { manager: await MemoryIndexManager.get(params) };
1046
1046
  } catch (err) {
1047
1047
  return {
@@ -3554,7 +3554,7 @@ var GatewayClient = class {
3554
3554
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
3555
3555
  });
3556
3556
  }
3557
- this.ws = new WebSocket$1(url, wsOptions);
3557
+ this.ws = new WebSocket(url, wsOptions);
3558
3558
  this.ws.on("open", () => {
3559
3559
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
3560
3560
  const tlsError = this.validateTlsFingerprint();
@@ -3773,7 +3773,7 @@ var GatewayClient = class {
3773
3773
  return null;
3774
3774
  }
3775
3775
  async request(method, params, opts) {
3776
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
3776
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
3777
3777
  const id = randomUUID();
3778
3778
  const frame = {
3779
3779
  type: "req",
@@ -4719,7 +4719,7 @@ async function routeReply(params) {
4719
4719
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
4720
4720
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
4721
4721
  try {
4722
- const { deliverOutboundPayloads } = await import("./deliver-Mqq3tgqB.js").then((n) => n.n);
4722
+ const { deliverOutboundPayloads } = await import("./deliver-DvW5xHHr.js").then((n) => n.n);
4723
4723
  return {
4724
4724
  ok: true,
4725
4725
  messageId: (await deliverOutboundPayloads({
@@ -38774,7 +38774,7 @@ async function deliverSessionMaintenanceWarning(params) {
38774
38774
  return;
38775
38775
  }
38776
38776
  try {
38777
- const { deliverOutboundPayloads } = await import("./deliver-Mqq3tgqB.js").then((n) => n.n);
38777
+ const { deliverOutboundPayloads } = await import("./deliver-DvW5xHHr.js").then((n) => n.n);
38778
38778
  await deliverOutboundPayloads({
38779
38779
  cfg: params.cfg,
38780
38780
  channel,
@@ -3,7 +3,7 @@ import path from "node:path";
3
3
  import fs, { constants, readFileSync } from "node:fs";
4
4
  import os from "node:os";
5
5
  import { Logger } from "tslog";
6
- import JSON5 from "json5";
6
+ import json5 from "json5";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import fs$1, { mkdtemp, rm } from "node:fs/promises";
9
9
  import { z } from "zod";
@@ -473,7 +473,7 @@ function readLoggingConfig() {
473
473
  try {
474
474
  if (!fs.existsSync(configPath)) return;
475
475
  const raw = fs.readFileSync(configPath, "utf-8");
476
- const logging = JSON5.parse(raw)?.logging;
476
+ const logging = json5.parse(raw)?.logging;
477
477
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
478
478
  return logging;
479
479
  } catch {
@@ -7320,7 +7320,7 @@ function safeRealpath(target) {
7320
7320
  }
7321
7321
  const defaultResolver = {
7322
7322
  readFile: (p) => fs.readFileSync(p, "utf-8"),
7323
- parseJson: (raw) => JSON5.parse(raw)
7323
+ parseJson: (raw) => json5.parse(raw)
7324
7324
  };
7325
7325
  /**
7326
7326
  * Resolves all $include directives in a parsed config object.
@@ -10551,7 +10551,7 @@ function resolveConfigPathForDeps(deps) {
10551
10551
  function normalizeDeps(overrides = {}) {
10552
10552
  return {
10553
10553
  fs: overrides.fs ?? fs,
10554
- json5: overrides.json5 ?? JSON5,
10554
+ json5: overrides.json5 ?? json5,
10555
10555
  env: overrides.env ?? process.env,
10556
10556
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
10557
10557
  configPath: overrides.configPath ?? "",
@@ -10562,11 +10562,11 @@ function maybeLoadDotEnvForConfig(env) {
10562
10562
  if (env !== process.env) return;
10563
10563
  loadDotEnv({ quiet: true });
10564
10564
  }
10565
- function parseConfigJson5(raw, json5 = JSON5) {
10565
+ function parseConfigJson5(raw, json5$1 = json5) {
10566
10566
  try {
10567
10567
  return {
10568
10568
  ok: true,
10569
- parsed: json5.parse(raw)
10569
+ parsed: json5$1.parse(raw)
10570
10570
  };
10571
10571
  } catch (err) {
10572
10572
  return {
@@ -81,8 +81,8 @@ import "./pi-tools.policy-BaRznBvu.js";
81
81
  import "./catalog-CJzUbDcX.js";
82
82
  import "./plugin-registry-D7ACpV2Y.js";
83
83
  import { n as resolveCliChannelOptions } from "./channel-options-DGUqfnbP.js";
84
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-BRPnstmu.js";
85
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-ByBvyNis.js";
84
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-CnDo2jzv.js";
85
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-D8fj6th4.js";
86
86
  import { r as setProgramContext } from "./program-context-BFKw4l9I.js";
87
87
  import { t as forceFreePort } from "./ports-BAzQoIw0.js";
88
88
  import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-l9GjW5Rm.js";
@@ -35,7 +35,7 @@ const entries = [
35
35
  description: "Run, inspect, and query the WebSocket Gateway",
36
36
  hasSubcommands: true,
37
37
  register: async (program) => {
38
- (await import("./gateway-cli-DYJxZ5dh.js")).registerGatewayCli(program);
38
+ (await import("./gateway-cli-CTcK1Az2.js")).registerGatewayCli(program);
39
39
  }
40
40
  },
41
41
  {
@@ -115,7 +115,7 @@ const entries = [
115
115
  description: "Open a terminal UI connected to the Gateway",
116
116
  hasSubcommands: false,
117
117
  register: async (program) => {
118
- (await import("./tui-cli-tbUaY-Pu.js")).registerTuiCli(program);
118
+ (await import("./tui-cli-C3dXNtPo.js")).registerTuiCli(program);
119
119
  }
120
120
  },
121
121
  {
@@ -223,7 +223,7 @@ const entries = [
223
223
  description: "Update Symi and inspect update channel status",
224
224
  hasSubcommands: true,
225
225
  register: async (program) => {
226
- (await import("./update-cli-Mpq0iwGk.js")).registerUpdateCli(program);
226
+ (await import("./update-cli-CWufRpkr.js")).registerUpdateCli(program);
227
227
  }
228
228
  },
229
229
  {
@@ -231,7 +231,7 @@ const entries = [
231
231
  description: "Generate shell completion script",
232
232
  hasSubcommands: false,
233
233
  register: async (program) => {
234
- (await import("./completion-cli-rzEsCzmE.js").then((n) => n.n)).registerCompletionCli(program);
234
+ (await import("./completion-cli-C-85b5b8.js").then((n) => n.n)).registerCompletionCli(program);
235
235
  }
236
236
  }
237
237
  ];
@@ -294,7 +294,7 @@ const coreEntries = [
294
294
  hasSubcommands: false
295
295
  }],
296
296
  register: async ({ program }) => {
297
- (await import("./register.setup-Crrj2t2B.js")).registerSetupCommand(program);
297
+ (await import("./register.setup-CLhdFQHW.js")).registerSetupCommand(program);
298
298
  }
299
299
  },
300
300
  {
@@ -304,7 +304,7 @@ const coreEntries = [
304
304
  hasSubcommands: false
305
305
  }],
306
306
  register: async ({ program }) => {
307
- (await import("./register.onboard-DR2Wu59i.js")).registerOnboardCommand(program);
307
+ (await import("./register.onboard-BHtTh0b_.js")).registerOnboardCommand(program);
308
308
  }
309
309
  },
310
310
  {
@@ -351,7 +351,7 @@ const coreEntries = [
351
351
  }
352
352
  ],
353
353
  register: async ({ program }) => {
354
- (await import("./register.maintenance-BMswbbSL.js")).registerMaintenanceCommands(program);
354
+ (await import("./register.maintenance-DDzKUGYJ.js")).registerMaintenanceCommands(program);
355
355
  }
356
356
  },
357
357
  {