@symerian/symi 3.4.12 → 3.4.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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.4.12",
3
- "commit": "1d70876f43373c9f6def73739576e2a71fb57a88",
4
- "builtAt": "2026-05-03T22:52:42.015Z"
2
+ "version": "3.4.13",
3
+ "commit": "0bd7af3aad729d5624b4468624bc1f06a99df485",
4
+ "builtAt": "2026-05-03T23:47:00.036Z"
5
5
  }
@@ -4,14 +4,14 @@ import { E as shouldLogVerbose, G as isRecord, r as DEFAULT_CHAT_CHANNEL, v as i
4
4
  import { a as resolveAgentSkillsFilter, c as resolveEffectiveModelFallbacks, i as resolveAgentModelPrimary, l as resolveSessionAgentId, o as resolveAgentWorkspaceDir, r as resolveAgentDir, t as listAgentIds, u as resolveSessionAgentIds } from "../../agent-scope-B1Ina6jV.js";
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "../../subsystem-DzRUKS9f.js";
6
6
  import { l as ensureAgentWorkspace } from "../../workspace-CsaDUuDn.js";
7
- import { A as runWithModelFallback, C as resolveSymiDocsPath, D as resolveRunWorkspaceDir, E as redactRunIdentifier, M as resolveFailoverStatus, O as deriveSessionTotalTokens, S as buildAgentSystemPrompt, T as resolveBootstrapContextForRun, _ as AGENT_LANE_NESTED, a as resolveSessionDeliveryTarget, b as emitAgentEvent, c as detectRuntimeShell, d as applyModelOverrideToSessionEntry, f as applyVerboseOverride, g as resolveAgentTimeoutMs, i as resolveOutboundTarget, j as FailoverError, k as hasNonzeroUsage, l as resolveSendPolicy, m as clearSessionAuthProfileOverride, n as buildModelAliasLines, o as buildSystemPromptParams, p as loadModelCatalog, s as getProcessSupervisor, t as runAgentTurn, u as lookupContextTokens, v as AGENT_LANE_SUBAGENT, w as makeBootstrapWarn, x as registerAgentRunContext, y as clearAgentRunContext } from "../../unified-runner-BNt7TQKM.js";
7
+ import { A as runWithModelFallback, C as resolveSymiDocsPath, D as resolveRunWorkspaceDir, E as redactRunIdentifier, M as resolveFailoverStatus, O as deriveSessionTotalTokens, S as buildAgentSystemPrompt, T as resolveBootstrapContextForRun, _ as AGENT_LANE_NESTED, a as resolveSessionDeliveryTarget, b as emitAgentEvent, c as detectRuntimeShell, d as applyModelOverrideToSessionEntry, f as applyVerboseOverride, g as resolveAgentTimeoutMs, i as resolveOutboundTarget, j as FailoverError, k as hasNonzeroUsage, l as resolveSendPolicy, m as clearSessionAuthProfileOverride, n as buildModelAliasLines, o as buildSystemPromptParams, p as loadModelCatalog, s as getProcessSupervisor, t as runAgentTurn, u as lookupContextTokens, v as AGENT_LANE_SUBAGENT, w as makeBootstrapWarn, x as registerAgentRunContext, y as clearAgentRunContext } from "../../unified-runner-Clv_2ElO.js";
8
8
  import { $ as DEFAULT_MODEL, A as resolveThinkingDefault, C as normalizeModelRef, D as resolveDefaultModelForAgent, E as resolveConfiguredModelRef, Q as DEFAULT_CONTEXT_TOKENS, S as modelKey, Z as isTruthyEnvValue, _ as buildAllowedModelSet, d as ensureAuthProfileStore, et as DEFAULT_PROVIDER, tt as formatCliCommand, w as normalizeProviderId, x as isCliProvider } from "../../auth-profiles-Boy_KMd1.js";
9
9
  import "../../github-copilot-token-B31ugq7R.js";
10
10
  import "../../boolean-mcn6kL0s.js";
11
- import { At as resolveSessionResetPolicy, Dt as resolveSessionKey, It as resolveAgentMainSessionKey, Lt as resolveExplicitAgentSessionKey, M as classifyFailoverReason, Ot as evaluateSessionFreshness, Rt as resolveMainSessionKey, U as isFailoverErrorMessage, a as normalizeOutboundPayloadsForJson, at as loadSessionStore, i as normalizeOutboundPayloads, it as resolveAndPersistSessionFile, jt as resolveSessionResetType, kt as resolveChannelResetConfig, lt as updateSessionStore, nt as parseSessionThreadInfo, r as formatOutboundPayloadLog, t as deliverOutboundPayloads, vt as normalizeAccountId } from "../../deliver-BkCYBlzi.js";
11
+ import { At as resolveSessionResetPolicy, Dt as resolveSessionKey, It as resolveAgentMainSessionKey, Lt as resolveExplicitAgentSessionKey, M as classifyFailoverReason, Ot as evaluateSessionFreshness, Rt as resolveMainSessionKey, U as isFailoverErrorMessage, a as normalizeOutboundPayloadsForJson, at as loadSessionStore, i as normalizeOutboundPayloads, it as resolveAndPersistSessionFile, jt as resolveSessionResetType, kt as resolveChannelResetConfig, lt as updateSessionStore, nt as parseSessionThreadInfo, r as formatOutboundPayloadLog, t as deliverOutboundPayloads, vt as normalizeAccountId } from "../../deliver-59sRVaYQ.js";
12
12
  import { c as loadConfig } from "../../ssrf-CeQ2Aub-.js";
13
13
  import "../../manifest-registry-C0nJ3Ja3.js";
14
- import "../../chrome-B4P7ycw5.js";
14
+ import "../../chrome-DT1fIVG1.js";
15
15
  import "../../frontmatter-CwO0i5Q7.js";
16
16
  import { n as buildWorkspaceSkillSnapshot } from "../../skills-DaU_5XvP.js";
17
17
  import "../../redact-Dd8jrogi.js";
@@ -27,7 +27,7 @@ import "../../diagnostic-D7z6O7v0.js";
27
27
  import "../../diagnostic-session-state-BkfiP_y6.js";
28
28
  import "../../pi-auth-json-De8XczIE.js";
29
29
  import "../../reply-prefix-D3muTai5.js";
30
- import "../../manager-BD_cpL9b.js";
30
+ import "../../manager-DlPBpRRR.js";
31
31
  import "../../sqlite--aBEq1-J.js";
32
32
  import "../../markdown-tables-ptfgMe6b.js";
33
33
  import "../../commands-registry-CBFyeJ5K.js";
@@ -4,14 +4,14 @@ import "../../registry-C-JddWwo.js";
4
4
  import { o as resolveAgentWorkspaceDir } from "../../agent-scope-B1Ina6jV.js";
5
5
  import { t as createSubsystemLogger } from "../../subsystem-DzRUKS9f.js";
6
6
  import "../../workspace-CsaDUuDn.js";
7
- import "../../unified-runner-BNt7TQKM.js";
7
+ import "../../unified-runner-Clv_2ElO.js";
8
8
  import "../../auth-profiles-Boy_KMd1.js";
9
9
  import "../../github-copilot-token-B31ugq7R.js";
10
10
  import "../../boolean-mcn6kL0s.js";
11
- import { Tt as hasInterSessionUserProvenance } from "../../deliver-BkCYBlzi.js";
11
+ import { Tt as hasInterSessionUserProvenance } from "../../deliver-59sRVaYQ.js";
12
12
  import "../../ssrf-CeQ2Aub-.js";
13
13
  import "../../manifest-registry-C0nJ3Ja3.js";
14
- import "../../chrome-B4P7ycw5.js";
14
+ import "../../chrome-DT1fIVG1.js";
15
15
  import "../../frontmatter-CwO0i5Q7.js";
16
16
  import "../../skills-DaU_5XvP.js";
17
17
  import "../../redact-Dd8jrogi.js";
@@ -27,7 +27,7 @@ import "../../diagnostic-D7z6O7v0.js";
27
27
  import "../../diagnostic-session-state-BkfiP_y6.js";
28
28
  import "../../pi-auth-json-De8XczIE.js";
29
29
  import "../../reply-prefix-D3muTai5.js";
30
- import "../../manager-BD_cpL9b.js";
30
+ import "../../manager-DlPBpRRR.js";
31
31
  import "../../sqlite--aBEq1-J.js";
32
32
  import "../../markdown-tables-ptfgMe6b.js";
33
33
  import "../../commands-registry-CBFyeJ5K.js";
@@ -1 +1 @@
1
- 4fa9757036ba49d5786323fb5d2e649f1635bb70f4affee7e92250bd5b71d18e
1
+ a649098f562391f51cd1204df04e27461a1ae2ca318a6f86ef3ae200db57eeb8
@@ -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$1, { WebSocketServer } from "ws";
12
+ import WebSocket, { 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$1.OPEN) throw new Error("Chrome extension not connected");
180
+ if (!ws || ws.readyState !== WebSocket.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$1.OPEN) continue;
197
+ if (ws.readyState !== WebSocket.OPEN) continue;
198
198
  ws.send(msg);
199
199
  }
200
200
  };
201
201
  const sendResponseToCdp = (ws, res) => {
202
- if (ws.readyState !== WebSocket$1.OPEN) return;
202
+ if (ws.readyState !== WebSocket.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$1.OPEN) return;
427
+ if (ws.readyState !== WebSocket.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$1(wsUrl, {
745
+ const ws = new WebSocket(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$1(wsUrl, {
1639
+ const ws = new WebSocket(wsUrl, {
1640
1640
  handshakeTimeout: timeoutMs,
1641
1641
  ...Object.keys(headers).length ? { headers } : {}
1642
1642
  });
@@ -4982,6 +4982,33 @@ body {
4982
4982
  gap: 0;
4983
4983
  }
4984
4984
 
4985
+ /* ── Float right-column panels (no card background) ──────────────────── */
4986
+ .gateway-panel,
4987
+ #model-routing-panel,
4988
+ .scheduling-panel {
4989
+ background: transparent;
4990
+ backdrop-filter: none;
4991
+ -webkit-backdrop-filter: none;
4992
+ border: none;
4993
+ box-shadow: none;
4994
+ }
4995
+
4996
+ .gateway-panel:hover,
4997
+ #model-routing-panel:hover,
4998
+ .scheduling-panel:hover {
4999
+ border: none;
5000
+ box-shadow: none;
5001
+ }
5002
+
5003
+ .gateway-panel::before,
5004
+ .gateway-panel::after,
5005
+ #model-routing-panel::before,
5006
+ #model-routing-panel::after,
5007
+ .scheduling-panel::before,
5008
+ .scheduling-panel::after {
5009
+ display: none;
5010
+ }
5011
+
4985
5012
  .schedule-count {
4986
5013
  font-size: 10px;
4987
5014
  font-family: var(--font-mono);
@@ -253,7 +253,7 @@
253
253
  </button>
254
254
  </div>
255
255
 
256
- <div class="glass-panel">
256
+ <div class="glass-panel gateway-panel">
257
257
  <div class="panel-label">SYMI GATEWAY</div>
258
258
  <div class="net-row">
259
259
  <div class="status-dot dot-green pulse"></div>
@@ -8,7 +8,7 @@ import { _ as runExec, a as DEFAULT_SYMICORE_FILENAME, c as DEFAULT_USER_FILENAM
8
8
  import { g as isPidAlive, h as resolveProcessScopedMap, tt as formatCliCommand } from "./auth-profiles-Boy_KMd1.js";
9
9
  import { t as parseBooleanValue } from "./boolean-mcn6kL0s.js";
10
10
  import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-CeQ2Aub-.js";
11
- 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-B4P7ycw5.js";
11
+ 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-DT1fIVG1.js";
12
12
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DaU_5XvP.js";
13
13
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BkfLlDKo.js";
14
14
  import { b as SafeOpenError, d as extensionForMime, i as buildImageResizeSideGrid, l as resizeToJpeg, o as getImageMetadata, r as IMAGE_REDUCE_QUALITY_STEPS, t as getAgentScopedMediaLocalRoots, u as detectMime, x as openFileWithinRoot } from "./local-roots-BCTg2O-a.js";
@@ -938,7 +938,7 @@ function isModuleNotFoundError(err) {
938
938
  }
939
939
  async function loadPwAiModule(mode) {
940
940
  try {
941
- return await import("./pw-ai-BsEf8C15.js");
941
+ return await import("./pw-ai-C5MJKzUM.js");
942
942
  } catch (err) {
943
943
  if (mode === "soft") return null;
944
944
  if (isModuleNotFoundError(err)) return null;
@@ -3535,11 +3535,11 @@ function createProfileContext(opts, profile) {
3535
3535
  const userDataDir = resolveSymiUserDataDir(profile.name);
3536
3536
  const profileState = getProfileState();
3537
3537
  if (await isHttpReachable(300) && !profileState.running) try {
3538
- await (await import("./pw-ai-BsEf8C15.js")).closePlaywrightBrowserConnection();
3538
+ await (await import("./pw-ai-C5MJKzUM.js")).closePlaywrightBrowserConnection();
3539
3539
  } catch {}
3540
3540
  if (profileState.running) await stopRunningBrowser();
3541
3541
  try {
3542
- await (await import("./pw-ai-BsEf8C15.js")).closePlaywrightBrowserConnection();
3542
+ await (await import("./pw-ai-C5MJKzUM.js")).closePlaywrightBrowserConnection();
3543
3543
  } catch {}
3544
3544
  if (!fs.existsSync(userDataDir)) return {
3545
3545
  moved: false,
@@ -3,14 +3,14 @@ import "./registry-C-JddWwo.js";
3
3
  import { o as resolveAgentWorkspaceDir, s as resolveDefaultAgentId } from "./agent-scope-B1Ina6jV.js";
4
4
  import "./subsystem-DzRUKS9f.js";
5
5
  import "./workspace-CsaDUuDn.js";
6
- import { t as runAgentTurn } from "./unified-runner-BNt7TQKM.js";
6
+ import { t as runAgentTurn } from "./unified-runner-Clv_2ElO.js";
7
7
  import "./auth-profiles-Boy_KMd1.js";
8
8
  import "./github-copilot-token-B31ugq7R.js";
9
9
  import "./boolean-mcn6kL0s.js";
10
- import "./deliver-BkCYBlzi.js";
10
+ import "./deliver-59sRVaYQ.js";
11
11
  import "./ssrf-CeQ2Aub-.js";
12
12
  import "./manifest-registry-C0nJ3Ja3.js";
13
- import "./chrome-B4P7ycw5.js";
13
+ import "./chrome-DT1fIVG1.js";
14
14
  import "./frontmatter-CwO0i5Q7.js";
15
15
  import "./skills-DaU_5XvP.js";
16
16
  import "./redact-Dd8jrogi.js";
@@ -26,7 +26,7 @@ import "./diagnostic-D7z6O7v0.js";
26
26
  import "./diagnostic-session-state-BkfiP_y6.js";
27
27
  import "./pi-auth-json-De8XczIE.js";
28
28
  import "./reply-prefix-D3muTai5.js";
29
- import "./manager-BD_cpL9b.js";
29
+ import "./manager-DlPBpRRR.js";
30
30
  import "./sqlite--aBEq1-J.js";
31
31
  import "./markdown-tables-ptfgMe6b.js";
32
32
  import "./commands-registry-CBFyeJ5K.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-C-HKdAJo.js"), import("./synthesis-DSdF0vsi.js")]);
4223
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-C-HKdAJo.js"), import("./synthesis-CrqlbxVW.js")]);
4224
4224
  const synthesize = createSynthesizer({
4225
4225
  cfg: this.cfg,
4226
4226
  agentId: this.agentId,
@@ -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 {
@@ -8,7 +8,7 @@ import "./github-copilot-token-B31ugq7R.js";
8
8
  import "./boolean-mcn6kL0s.js";
9
9
  import "./ssrf-CeQ2Aub-.js";
10
10
  import "./manifest-registry-C0nJ3Ja3.js";
11
- 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-B4P7ycw5.js";
11
+ 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-DT1fIVG1.js";
12
12
  import "./redact-Dd8jrogi.js";
13
13
  import { n as formatErrorMessage } from "./errors-BkfLlDKo.js";
14
14
  import path from "node:path";
@@ -3,14 +3,14 @@ import "./registry-C-JddWwo.js";
3
3
  import "./agent-scope-B1Ina6jV.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-DzRUKS9f.js";
5
5
  import "./workspace-CsaDUuDn.js";
6
- import { t as runAgentTurn } from "./unified-runner-BNt7TQKM.js";
6
+ import { t as runAgentTurn } from "./unified-runner-Clv_2ElO.js";
7
7
  import "./auth-profiles-Boy_KMd1.js";
8
8
  import "./github-copilot-token-B31ugq7R.js";
9
9
  import "./boolean-mcn6kL0s.js";
10
- import "./deliver-BkCYBlzi.js";
10
+ import "./deliver-59sRVaYQ.js";
11
11
  import "./ssrf-CeQ2Aub-.js";
12
12
  import "./manifest-registry-C0nJ3Ja3.js";
13
- import "./chrome-B4P7ycw5.js";
13
+ import "./chrome-DT1fIVG1.js";
14
14
  import "./frontmatter-CwO0i5Q7.js";
15
15
  import "./skills-DaU_5XvP.js";
16
16
  import "./redact-Dd8jrogi.js";
@@ -26,7 +26,7 @@ import "./diagnostic-D7z6O7v0.js";
26
26
  import "./diagnostic-session-state-BkfiP_y6.js";
27
27
  import "./pi-auth-json-De8XczIE.js";
28
28
  import "./reply-prefix-D3muTai5.js";
29
- import "./manager-BD_cpL9b.js";
29
+ import "./manager-DlPBpRRR.js";
30
30
  import "./sqlite--aBEq1-J.js";
31
31
  import "./markdown-tables-ptfgMe6b.js";
32
32
  import "./commands-registry-CBFyeJ5K.js";
@@ -8,10 +8,10 @@ import { S as logWarn, _ as runExec, b as logError, f as loadWorkspaceBootstrapF
8
8
  import { $ as DEFAULT_MODEL, A as resolveThinkingDefault, B as requireApiKey, C as normalizeModelRef$1, D as resolveDefaultModelForAgent, E as resolveConfiguredModelRef, F as resolveImplicitProviders, G as normalizeSecretInput, H as resolveEnvApiKey, I as OLLAMA_NATIVE_BASE_URL, J as resolveShellEnvFallbackTimeoutMs, K as getShellPathFromLoginShell, L as createOllamaStreamFn, M as normalizeProviders, N as resolveImplicitBedrockProvider, O as resolveModelRefFromString, P as resolveImplicitCopilotProvider, Q as DEFAULT_CONTEXT_TOKENS, R as getApiKeyForModel, S as modelKey, U as resolveModelAuthMode, V as resolveApiKeyForProvider, Z as isTruthyEnvValue, _ as buildAllowedModelSet, a as markAuthProfileFailure, b as findNormalizedProviderValue, c as dedupeProfileIds, d as ensureAuthProfileStore, et as DEFAULT_PROVIDER, f as resolveAuthStorePathForDisplay, i as isProfileInCooldown, j as normalizeGoogleModelId, k as resolveSubagentSpawnModelSelection, l as listProfilesForProvider, m as withFileLock$1, n as resolveAuthProfileOrder, nt as resolveCliName, o as markAuthProfileUsed, p as resolveSymiAgentDir, r as getSoonestCooldownExpiry, rt as resolveAuthProfileDisplayLabel, s as resolveApiKeyForProfile, tt as formatCliCommand, u as markAuthProfileGood, v as buildConfiguredAllowlistKeys, w as normalizeProviderId, y as buildModelAliasIndex, z as getCustomProviderApiKey } from "./auth-profiles-Boy_KMd1.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-B31ugq7R.js";
10
10
  import { t as parseBooleanValue } from "./boolean-mcn6kL0s.js";
11
- import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-BkCYBlzi.js";
11
+ import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-59sRVaYQ.js";
12
12
  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-CeQ2Aub-.js";
13
13
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-C0nJ3Ja3.js";
14
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-B4P7ycw5.js";
14
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-DT1fIVG1.js";
15
15
  import { l as parseFrontmatterBlock } from "./frontmatter-CwO0i5Q7.js";
16
16
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-DaU_5XvP.js";
17
17
  import { n as redactToolDetail } from "./redact-Dd8jrogi.js";
@@ -30,7 +30,7 @@ import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r
30
30
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-BkfiP_y6.js";
31
31
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-De8XczIE.js";
32
32
  import { a as resolveEffectiveMessagesConfig, i as resolveAckReaction, o as resolveHumanDelayConfig, r as resolveResponsePrefixTemplate, t as createReplyPrefixOptions } from "./reply-prefix-D3muTai5.js";
33
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-BD_cpL9b.js";
33
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, n as retryAsync, o as collectProviderApiKeysForExecution, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation } from "./manager-DlPBpRRR.js";
34
34
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Crkye5gI.js";
35
35
  import { n as resolveMarkdownTableMode } from "./markdown-tables-ptfgMe6b.js";
36
36
  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-CBFyeJ5K.js";
@@ -54,7 +54,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
54
54
  import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
55
55
  import AjvPkg from "ajv";
56
56
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
57
- import { WebSocket } from "ws";
57
+ import { WebSocket as WebSocket$1 } from "ws";
58
58
  import { Buffer as Buffer$1 } from "node:buffer";
59
59
  import { createJiti } from "jiti";
60
60
  import { Type } from "@sinclair/typebox";
@@ -2099,7 +2099,7 @@ async function getMemorySearchManager(params) {
2099
2099
  const wrapper = new FallbackMemoryManager({
2100
2100
  primary,
2101
2101
  fallbackFactory: async () => {
2102
- const { MemoryIndexManager } = await import("./manager-BD_cpL9b.js").then((n) => n.t);
2102
+ const { MemoryIndexManager } = await import("./manager-DlPBpRRR.js").then((n) => n.t);
2103
2103
  return await MemoryIndexManager.get(params);
2104
2104
  }
2105
2105
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -2112,7 +2112,7 @@ async function getMemorySearchManager(params) {
2112
2112
  }
2113
2113
  }
2114
2114
  try {
2115
- const { MemoryIndexManager } = await import("./manager-BD_cpL9b.js").then((n) => n.t);
2115
+ const { MemoryIndexManager } = await import("./manager-DlPBpRRR.js").then((n) => n.t);
2116
2116
  return { manager: await MemoryIndexManager.get(params) };
2117
2117
  } catch (err) {
2118
2118
  return {
@@ -7255,7 +7255,7 @@ var GatewayClient = class {
7255
7255
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
7256
7256
  });
7257
7257
  }
7258
- this.ws = new WebSocket(url, wsOptions);
7258
+ this.ws = new WebSocket$1(url, wsOptions);
7259
7259
  this.ws.on("open", () => {
7260
7260
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
7261
7261
  const tlsError = this.validateTlsFingerprint();
@@ -7474,7 +7474,7 @@ var GatewayClient = class {
7474
7474
  return null;
7475
7475
  }
7476
7476
  async request(method, params, opts) {
7477
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
7477
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
7478
7478
  const id = randomUUID();
7479
7479
  const frame = {
7480
7480
  type: "req",
@@ -8433,7 +8433,7 @@ async function routeReply(params) {
8433
8433
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
8434
8434
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
8435
8435
  try {
8436
- const { deliverOutboundPayloads } = await import("./deliver-BkCYBlzi.js").then((n) => n.n);
8436
+ const { deliverOutboundPayloads } = await import("./deliver-59sRVaYQ.js").then((n) => n.n);
8437
8437
  return {
8438
8438
  ok: true,
8439
8439
  messageId: (await deliverOutboundPayloads({
@@ -41267,7 +41267,7 @@ async function deliverSessionMaintenanceWarning(params) {
41267
41267
  return;
41268
41268
  }
41269
41269
  try {
41270
- const { deliverOutboundPayloads } = await import("./deliver-BkCYBlzi.js").then((n) => n.n);
41270
+ const { deliverOutboundPayloads } = await import("./deliver-59sRVaYQ.js").then((n) => n.n);
41271
41271
  await deliverOutboundPayloads({
41272
41272
  cfg: params.cfg,
41273
41273
  channel,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.4.12",
3
+ "version": "3.4.13",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",