@symerian/symi 2.1.9 → 2.1.10

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 (75) hide show
  1. package/dist/{accounts-tNElYrCH.js → accounts-CRksecBH.js} +14 -14
  2. package/dist/{accounts-qtxJ-6em.js → accounts-K_r7OhcD.js} +1 -1
  3. package/dist/{accounts-CWktKM8a.js → accounts-q7Sc1Tpi.js} +1 -1
  4. package/dist/{active-listener-C9r8ZB9m.js → active-listener-DXU1iEiq.js} +1 -1
  5. package/dist/{agent-scope-BxoUQqgM.js → agent-scope-BkCGKhZd.js} +3 -3
  6. package/dist/{audio-preflight-BZIRAXlv.js → audio-preflight-BbZjr38h.js} +29 -29
  7. package/dist/{bindings-B7Ke6LJi.js → bindings-Bv-cp2U5.js} +2 -2
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +53 -53
  10. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  11. package/dist/bundled/command-logger/handler.js +1 -1
  12. package/dist/bundled/session-memory/handler.js +53 -53
  13. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  14. package/dist/{channel-activity-CsM_hJ_s.js → channel-activity-IwGy5fjY.js} +1 -1
  15. package/dist/{chrome-791kNCCB.js → chrome-B4c8SEkN.js} +13 -13
  16. package/dist/{chunk-BW5f05BR.js → chunk-CxYL-OXO.js} +1 -1
  17. package/dist/{command-format-BaxDnULz.js → command-format-HKbBegfJ.js} +1 -1
  18. package/dist/{commands-registry-BCRa0DAp.js → commands-registry-BqkqVEHA.js} +4 -4
  19. package/dist/{config-CfZ-oKwR.js → config-BrAFSU6Z.js} +17 -17
  20. package/dist/control-ui/index.html +1 -1
  21. package/dist/control-ui/js/models.js +1 -1
  22. package/dist/{deliver-CrlXl9KD.js → deliver-CfiME1St.js} +20 -20
  23. package/dist/{diagnostic-CI0kRQkt.js → diagnostic-CINBNBQX.js} +1 -1
  24. package/dist/{frontmatter-C_bv_0P8.js → frontmatter-wVHII0KO.js} +4 -4
  25. package/dist/{gemini-auth-DzFcFvHV.js → gemini-auth-BwRMlWJH.js} +1 -1
  26. package/dist/{github-copilot-token-C_qUP7p5.js → github-copilot-token-DJqsJ2-r.js} +7 -7
  27. package/dist/{image-ycxQmhff.js → image-DEVMOUEF.js} +4 -4
  28. package/dist/{image-ops-CvJzsyvE.js → image-ops-Lmflb2E9.js} +1 -1
  29. package/dist/{ir-DccrnjsE.js → ir-CuuCOLHL.js} +4 -4
  30. package/dist/llm-slug-generator.js +53 -53
  31. package/dist/{local-roots-DMwIh5cS.js → local-roots-C0y1zqg5.js} +5 -5
  32. package/dist/{login-DMnQmqbM.js → login-C-iEZ7-d.js} +7 -7
  33. package/dist/{login-qr-Dbb1xG4s.js → login-qr-Z0tp3m4b.js} +12 -12
  34. package/dist/{manager-M83fJMDC.js → manager-BlH-kIAA.js} +13 -13
  35. package/dist/{manifest-registry-D0IQ3WuX.js → manifest-registry-DetgyAnG.js} +19 -19
  36. package/dist/{markdown-tables-iMQQZu4Q.js → markdown-tables-C4L0emuC.js} +1 -1
  37. package/dist/{message-channel-Dz5lr5b0.js → message-channel-Bzd90Fg1.js} +1 -1
  38. package/dist/{model-auth-64S8o7s-.js → model-auth-DbMOVgB3.js} +9 -9
  39. package/dist/{outbound-DEjQvzWk.js → outbound-CsCk7-X6.js} +7 -7
  40. package/dist/{outbound-attachment-DjNDa3zn.js → outbound-attachment-DTzYlChD.js} +2 -2
  41. package/dist/{paths-DLyHUt31.js → paths-Cb87-LzP.js} +1 -1
  42. package/dist/{paths-Cce4PUkG.js → paths-CySxpNhH.js} +5 -5
  43. package/dist/{pi-auth-json-wQxiCgzR.js → pi-auth-json-Cog6KWQ0.js} +8 -8
  44. package/dist/{pi-embedded-helpers-DoTustDz.js → pi-embedded-helpers-DwUUGl8K.js} +52 -52
  45. package/dist/{pi-embedded-AKhKHxb6.js → pi-embedded-l6fnSeuU.js} +160 -160
  46. package/dist/{plugins-DQYI3Fr-.js → plugins-D1_FhsCG.js} +9 -9
  47. package/dist/{pw-ai-DIVguI36.js → pw-ai-BIGSU-k2.js} +11 -11
  48. package/dist/{qmd-manager-QHUP-_em.js → qmd-manager-jPsEJprD.js} +7 -7
  49. package/dist/{registry-CK4e9hn8.js → registry-Cgbuhd6U.js} +19 -19
  50. package/dist/{replies-Cj2HD2yn.js → replies-CjfQWlpL.js} +3 -3
  51. package/dist/{reply-prefix-XlyuyChD.js → reply-prefix-NvPdveXK.js} +1 -1
  52. package/dist/{resolve-route-CZ-1eqw0.js → resolve-route-BoOTtfRC.js} +4 -4
  53. package/dist/{retry-Cly39XZB.js → retry-CZ13t_sq.js} +1 -1
  54. package/dist/{runner-Cw5KZrjx.js → runner-Dl0eiBve.js} +9 -9
  55. package/dist/{send-BxrNk2KH.js → send-3jM0m9vc.js} +7 -7
  56. package/dist/{send-QC5kvnW3.js → send-BDVMssZq.js} +6 -6
  57. package/dist/{send-D0WfDllx.js → send-CQxYqAP8.js} +10 -10
  58. package/dist/{send-Ct3wqNP6.js → send-DJ537kMF.js} +6 -6
  59. package/dist/{send-G-E0gOCC.js → send-DZCl3x0a.js} +18 -18
  60. package/dist/{session-BK0E3EZe.js → session-BgWKJ33t.js} +8 -8
  61. package/dist/{skill-commands-DCDG7ki5.js → skill-commands-BtMC57oh.js} +9 -9
  62. package/dist/{skills-BFekKL7i.js → skills-8Qi9zQz0.js} +21 -21
  63. package/dist/{sqlite-DRbx2dhW.js → sqlite-ReocE89T.js} +4 -4
  64. package/dist/{store-C0wvOkae.js → store-CsOqrZPF.js} +2 -2
  65. package/dist/{subsystem-Bs9YvKLa.js → subsystem-LRKKAgQx.js} +1 -1
  66. package/dist/{tables-DuZspiBu.js → tables-Du3x5E08.js} +1 -1
  67. package/dist/{target-errors-Be1SwYlW.js → target-errors-DUTv7Hgk.js} +2 -2
  68. package/dist/{thinking-CdlENGRW.js → thinking-DwjHOBvM.js} +5 -5
  69. package/dist/{tokens-H1H1LiSQ.js → tokens-CXvgek4j.js} +1 -1
  70. package/dist/{tool-images-DXB7tqWi.js → tool-images-DA9V4mO7.js} +2 -2
  71. package/dist/{tool-loop-detection-Cs8_HCsx.js → tool-loop-detection-43NkVgks.js} +3 -3
  72. package/dist/{web-Kz-ZuUjq.js → web-Cbjmu3ex.js} +57 -57
  73. package/dist/{whatsapp-actions-CHVuR8Yp.js → whatsapp-actions-CmlTTSUG.js} +23 -23
  74. package/dist/{workspace-wAaHI8-5.js → workspace-CFIJ53-f.js} +6 -6
  75. package/package.json +1 -1
@@ -1,14 +1,14 @@
1
- import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-Cce4PUkG.js";
1
+ import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CySxpNhH.js";
2
2
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { I as resolveUserPath, P as resolveConfigDir, W as isPlainObject$1, k as isRecord, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-CK4e9hn8.js";
4
- import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
5
- import { $ as shouldEnableShellEnvFallback, Q as shouldDeferShellEnvFallback, W as DEFAULT_CONTEXT_TOKENS, X as loadShellEnvFallback, Z as resolveShellEnvFallbackTimeoutMs, j as parseModelRef } from "./model-auth-64S8o7s-.js";
6
- import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, f as normalizeEnvVarKey, l as isPathInside, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-D0IQ3WuX.js";
3
+ import { I as resolveUserPath, P as resolveConfigDir, W as isPlainObject$1, k as isRecord, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-Cgbuhd6U.js";
4
+ import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-BkCGKhZd.js";
5
+ import { $ as shouldEnableShellEnvFallback, Q as shouldDeferShellEnvFallback, W as DEFAULT_CONTEXT_TOKENS, X as loadShellEnvFallback, Z as resolveShellEnvFallbackTimeoutMs, j as parseModelRef } from "./model-auth-DbMOVgB3.js";
6
+ import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, f as normalizeEnvVarKey, l as isPathInside, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-DetgyAnG.js";
7
7
  import { createRequire } from "node:module";
8
8
  import os from "node:os";
9
9
  import path from "node:path";
10
- import fs from "node:fs";
11
- import JSON5 from "json5";
10
+ import fsSync from "node:fs";
11
+ import json5 from "json5";
12
12
  import { isDeepStrictEqual } from "node:util";
13
13
  import crypto from "node:crypto";
14
14
  import dotenv from "dotenv";
@@ -20,7 +20,7 @@ function loadDotEnv(opts) {
20
20
  const quiet = opts?.quiet ?? true;
21
21
  dotenv.config({ quiet });
22
22
  const globalEnvPath = path.join(resolveConfigDir(process.env), ".env");
23
- if (!fs.existsSync(globalEnvPath)) return;
23
+ if (!fsSync.existsSync(globalEnvPath)) return;
24
24
  dotenv.config({
25
25
  quiet,
26
26
  path: globalEnvPath,
@@ -156,7 +156,7 @@ function resolveAgentMaxConcurrent(cfg) {
156
156
  //#endregion
157
157
  //#region src/config/talk.ts
158
158
  function readTalkApiKeyFromProfile(deps = {}) {
159
- const fsImpl = deps.fs ?? fs;
159
+ const fsImpl = deps.fs ?? fsSync;
160
160
  const osImpl = deps.os ?? os;
161
161
  const pathImpl = deps.path ?? path;
162
162
  const home = osImpl.homedir();
@@ -849,7 +849,7 @@ var IncludeProcessor = class IncludeProcessor {
849
849
  const normalized = path.normalize(resolved);
850
850
  if (!isPathInside(this.rootDir, normalized)) throw new ConfigIncludeError(`Include path escapes config directory: ${includePath} (root: ${this.rootDir})`, includePath);
851
851
  try {
852
- const real = fs.realpathSync(normalized);
852
+ const real = fsSync.realpathSync(normalized);
853
853
  if (!isPathInside(this.rootRealDir, real)) throw new ConfigIncludeError(`Include path resolves outside config directory (symlink): ${includePath} (root: ${this.rootDir})`, includePath);
854
854
  } catch (err) {
855
855
  if (err instanceof ConfigIncludeError) throw err;
@@ -885,14 +885,14 @@ var IncludeProcessor = class IncludeProcessor {
885
885
  };
886
886
  function safeRealpath(target) {
887
887
  try {
888
- return fs.realpathSync(target);
888
+ return fsSync.realpathSync(target);
889
889
  } catch {
890
890
  return target;
891
891
  }
892
892
  }
893
893
  const defaultResolver = {
894
- readFile: (p) => fs.readFileSync(p, "utf-8"),
895
- parseJson: (raw) => JSON5.parse(raw)
894
+ readFile: (p) => fsSync.readFileSync(p, "utf-8"),
895
+ parseJson: (raw) => json5.parse(raw)
896
896
  };
897
897
  /**
898
898
  * Resolves all $include directives in a parsed config object.
@@ -5555,8 +5555,8 @@ function resolveConfigPathForDeps(deps) {
5555
5555
  }
5556
5556
  function normalizeDeps(overrides = {}) {
5557
5557
  return {
5558
- fs: overrides.fs ?? fs,
5559
- json5: overrides.json5 ?? JSON5,
5558
+ fs: overrides.fs ?? fsSync,
5559
+ json5: overrides.json5 ?? json5,
5560
5560
  env: overrides.env ?? process.env,
5561
5561
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
5562
5562
  configPath: overrides.configPath ?? "",
@@ -5567,11 +5567,11 @@ function maybeLoadDotEnvForConfig(env) {
5567
5567
  if (env !== process.env) return;
5568
5568
  loadDotEnv({ quiet: true });
5569
5569
  }
5570
- function parseConfigJson5(raw, json5 = JSON5) {
5570
+ function parseConfigJson5(raw, json5$1 = json5) {
5571
5571
  try {
5572
5572
  return {
5573
5573
  ok: true,
5574
- parsed: json5.parse(raw)
5574
+ parsed: json5$1.parse(raw)
5575
5575
  };
5576
5576
  } catch (err) {
5577
5577
  return {
@@ -606,7 +606,7 @@
606
606
  <select class="subagent-form-select" id="subagent-model">
607
607
  <option value="">Default</option>
608
608
  <option value="anthropic/claude-sonnet-4-6">Claude Sonnet 4.6</option>
609
- <option value="ollama/gpt-oss:120b">GPT-OSS 120B</option>
609
+ <option value="ollama/gemma4:31b">Gemma 4 31B</option>
610
610
  <option value="ollama/qwen2.5:32b">Qwen 2.5 32B</option>
611
611
  </select>
612
612
  </div>
@@ -3,7 +3,7 @@
3
3
 
4
4
  (function () {
5
5
  const MODELS = {
6
- local: "ollama/gpt-oss:120b",
6
+ local: "ollama/gemma4:31b",
7
7
  redsand: "redsand/nemotron-3-super-120b",
8
8
  api: "anthropic/claude-sonnet-4-6",
9
9
  };
@@ -1,18 +1,18 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
2
+ import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
3
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
4
- import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-CK4e9hn8.js";
5
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-H1H1LiSQ.js";
7
- import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DQYI3Fr-.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-DoTustDz.js";
9
- import { d as getChannelDock } from "./thinking-CdlENGRW.js";
10
- import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BW5f05BR.js";
11
- import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
12
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-DMwIh5cS.js";
13
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-QC5kvnW3.js";
4
+ import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-Cgbuhd6U.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-LRKKAgQx.js";
6
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CXvgek4j.js";
7
+ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-D1_FhsCG.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-DwUUGl8K.js";
9
+ import { d as getChannelDock } from "./thinking-DwjHOBvM.js";
10
+ import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-CxYL-OXO.js";
11
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-C4L0emuC.js";
12
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-C0y1zqg5.js";
13
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BDVMssZq.js";
14
14
  import path from "node:path";
15
- import fs from "node:fs";
15
+ import fsSync from "node:fs";
16
16
  import crypto from "node:crypto";
17
17
 
18
18
  //#region src/plugins/hooks.ts
@@ -721,11 +721,11 @@ function resolveFailedDir(stateDir) {
721
721
  /** Ensure the queue directory (and failed/ subdirectory) exist. */
722
722
  async function ensureQueueDir(stateDir) {
723
723
  const queueDir = resolveQueueDir(stateDir);
724
- await fs.promises.mkdir(queueDir, {
724
+ await fsSync.promises.mkdir(queueDir, {
725
725
  recursive: true,
726
726
  mode: 448
727
727
  });
728
- await fs.promises.mkdir(resolveFailedDir(stateDir), {
728
+ await fsSync.promises.mkdir(resolveFailedDir(stateDir), {
729
729
  recursive: true,
730
730
  mode: 448
731
731
  });
@@ -752,18 +752,18 @@ async function enqueueDelivery(params, stateDir) {
752
752
  const filePath = path.join(queueDir, `${id}.json`);
753
753
  const tmp = `${filePath}.${process.pid}.tmp`;
754
754
  const json = JSON.stringify(entry, null, 2);
755
- await fs.promises.writeFile(tmp, json, {
755
+ await fsSync.promises.writeFile(tmp, json, {
756
756
  encoding: "utf-8",
757
757
  mode: 384
758
758
  });
759
- await fs.promises.rename(tmp, filePath);
759
+ await fsSync.promises.rename(tmp, filePath);
760
760
  return id;
761
761
  }
762
762
  /** Remove a successfully delivered entry from the queue. */
763
763
  async function ackDelivery(id, stateDir) {
764
764
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
765
765
  try {
766
- await fs.promises.unlink(filePath);
766
+ await fsSync.promises.unlink(filePath);
767
767
  } catch (err) {
768
768
  if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) !== "ENOENT") throw err;
769
769
  }
@@ -771,16 +771,16 @@ async function ackDelivery(id, stateDir) {
771
771
  /** Update a queue entry after a failed delivery attempt. */
772
772
  async function failDelivery(id, error, stateDir) {
773
773
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
774
- const raw = await fs.promises.readFile(filePath, "utf-8");
774
+ const raw = await fsSync.promises.readFile(filePath, "utf-8");
775
775
  const entry = JSON.parse(raw);
776
776
  entry.retryCount += 1;
777
777
  entry.lastError = error;
778
778
  const tmp = `${filePath}.${process.pid}.tmp`;
779
- await fs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
779
+ await fsSync.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
780
780
  encoding: "utf-8",
781
781
  mode: 384
782
782
  });
783
- await fs.promises.rename(tmp, filePath);
783
+ await fsSync.promises.rename(tmp, filePath);
784
784
  }
785
785
 
786
786
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
2
+ import { t as createSubsystemLogger } from "./subsystem-LRKKAgQx.js";
3
3
  import { i as pruneDiagnosticSessionStates, r as getDiagnosticSessionState, t as diagnosticSessionStates } from "./diagnostic-session-state-Bxo4UHOL.js";
4
4
 
5
5
  //#region src/infra/diagnostic-events.ts
@@ -1,8 +1,8 @@
1
1
  import { t as parseBooleanValue } from "./boolean-B8-BqKGQ.js";
2
2
  import { n as MANIFEST_KEY, t as LEGACY_MANIFEST_KEYS } from "./legacy-names-BHV4AoFT.js";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
5
- import JSON5 from "json5";
4
+ import fsSync from "node:fs";
5
+ import json5 from "json5";
6
6
  import YAML from "yaml";
7
7
 
8
8
  //#region src/shared/config-eval.ts
@@ -79,7 +79,7 @@ function hasBinary(bin) {
79
79
  for (const part of parts) for (const ext of extensions) {
80
80
  const candidate = path.join(part, bin + ext);
81
81
  try {
82
- fs.accessSync(candidate, fs.constants.X_OK);
82
+ fsSync.accessSync(candidate, fsSync.constants.X_OK);
83
83
  hasBinaryCache.set(bin, true);
84
84
  return true;
85
85
  } catch {}
@@ -210,7 +210,7 @@ function resolveSymiManifestBlock(params) {
210
210
  const raw = getFrontmatterString(params.frontmatter, params.key ?? "metadata");
211
211
  if (!raw) return;
212
212
  try {
213
- const parsed = JSON5.parse(raw);
213
+ const parsed = json5.parse(raw);
214
214
  if (!parsed || typeof parsed !== "object") return;
215
215
  const manifestKeys = [MANIFEST_KEY, ...LEGACY_MANIFEST_KEYS];
216
216
  for (const key of manifestKeys) {
@@ -1,4 +1,4 @@
1
- import { A as normalizeProviderId } from "./model-auth-64S8o7s-.js";
1
+ import { A as normalizeProviderId } from "./model-auth-DbMOVgB3.js";
2
2
  import { n as formatErrorMessage } from "./errors-BoQgnc8X.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
2
+ import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
4
+ import fsSync from "node:fs";
5
5
 
6
6
  //#region src/infra/json-file.ts
7
7
  function loadJsonFile(pathname) {
8
8
  try {
9
- if (!fs.existsSync(pathname)) return;
10
- const raw = fs.readFileSync(pathname, "utf8");
9
+ if (!fsSync.existsSync(pathname)) return;
10
+ const raw = fsSync.readFileSync(pathname, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return;
@@ -15,12 +15,12 @@ function loadJsonFile(pathname) {
15
15
  }
16
16
  function saveJsonFile(pathname, data) {
17
17
  const dir = path.dirname(pathname);
18
- if (!fs.existsSync(dir)) fs.mkdirSync(dir, {
18
+ if (!fsSync.existsSync(dir)) fsSync.mkdirSync(dir, {
19
19
  recursive: true,
20
20
  mode: 448
21
21
  });
22
- fs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
- fs.chmodSync(pathname, 384);
22
+ fsSync.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
+ fsSync.chmodSync(pathname, 384);
24
24
  }
25
25
 
26
26
  //#endregion
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { R as shortenHomeInString, k as isRecord } from "./registry-CK4e9hn8.js";
3
- import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-64S8o7s-.js";
2
+ import { R as shortenHomeInString, k as isRecord } from "./registry-Cgbuhd6U.js";
3
+ import { B as resolveImplicitCopilotProvider, J as normalizeSecretInput, R as normalizeProviders, V as resolveImplicitProviders, r as requireApiKey, t as getApiKeyForModel, y as resolveSymiAgentDir, z as resolveImplicitBedrockProvider } from "./model-auth-DbMOVgB3.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DaNAekda.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-DoTustDz.js";
6
- import { n as loadConfig } from "./config-CfZ-oKwR.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-DwUUGl8K.js";
6
+ import { n as loadConfig } from "./config-BrAFSU6Z.js";
7
7
  import { n as redactToolDetail } from "./redact-jSxx6Ep2.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { _ as runExec } from "./workspace-wAaHI8-5.js";
1
+ import { _ as runExec } from "./workspace-CFIJ53-f.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
@@ -1,7 +1,7 @@
1
- import { I as resolveUserPath, J as logVerbose, Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
2
- import { a as hasAlphaChannel, b as maxBytesForKind, c as SafeOpenError, d as detectMime, f as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg, u as readLocalFileSafely, x as mediaKindFromMime } from "./image-ops-CvJzsyvE.js";
3
- import { a as chunkText } from "./chunk-BW5f05BR.js";
4
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots } from "./local-roots-DMwIh5cS.js";
1
+ import { I as resolveUserPath, J as logVerbose, Z as shouldLogVerbose } from "./registry-Cgbuhd6U.js";
2
+ import { a as hasAlphaChannel, b as maxBytesForKind, c as SafeOpenError, d as detectMime, f as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg, u as readLocalFileSafely, x as mediaKindFromMime } from "./image-ops-Lmflb2E9.js";
3
+ import { a as chunkText } from "./chunk-CxYL-OXO.js";
4
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots } from "./local-roots-C0y1zqg5.js";
5
5
  import fs from "node:fs/promises";
6
6
  import path from "node:path";
7
7
  import { fileURLToPath } from "node:url";
@@ -1,65 +1,65 @@
1
- import "./paths-Cce4PUkG.js";
2
- import "./registry-CK4e9hn8.js";
3
- import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
4
- import "./subsystem-Bs9YvKLa.js";
5
- import "./workspace-wAaHI8-5.js";
6
- import "./tokens-H1H1LiSQ.js";
7
- import { t as runEmbeddedPiAgent } from "./pi-embedded-AKhKHxb6.js";
8
- import "./plugins-DQYI3Fr-.js";
9
- import "./accounts-tNElYrCH.js";
1
+ import "./paths-CySxpNhH.js";
2
+ import "./registry-Cgbuhd6U.js";
3
+ import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BkCGKhZd.js";
4
+ import "./subsystem-LRKKAgQx.js";
5
+ import "./workspace-CFIJ53-f.js";
6
+ import "./tokens-CXvgek4j.js";
7
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-l6fnSeuU.js";
8
+ import "./plugins-D1_FhsCG.js";
9
+ import "./accounts-CRksecBH.js";
10
10
  import "./boolean-B8-BqKGQ.js";
11
- import "./command-format-BaxDnULz.js";
12
- import "./bindings-B7Ke6LJi.js";
13
- import "./send-Ct3wqNP6.js";
14
- import "./send-D0WfDllx.js";
15
- import "./deliver-CrlXl9KD.js";
16
- import "./diagnostic-CI0kRQkt.js";
11
+ import "./command-format-HKbBegfJ.js";
12
+ import "./bindings-Bv-cp2U5.js";
13
+ import "./send-DJ537kMF.js";
14
+ import "./send-CQxYqAP8.js";
15
+ import "./deliver-CfiME1St.js";
16
+ import "./diagnostic-CINBNBQX.js";
17
17
  import "./diagnostic-session-state-Bxo4UHOL.js";
18
- import "./accounts-CWktKM8a.js";
19
- import "./send-G-E0gOCC.js";
20
- import "./image-ops-CvJzsyvE.js";
21
- import "./model-auth-64S8o7s-.js";
22
- import "./github-copilot-token-C_qUP7p5.js";
18
+ import "./accounts-q7Sc1Tpi.js";
19
+ import "./send-DZCl3x0a.js";
20
+ import "./image-ops-Lmflb2E9.js";
21
+ import "./model-auth-DbMOVgB3.js";
22
+ import "./github-copilot-token-DJqsJ2-r.js";
23
23
  import "./pi-model-discovery-DaNAekda.js";
24
- import "./message-channel-Dz5lr5b0.js";
25
- import "./pi-embedded-helpers-DoTustDz.js";
26
- import "./config-CfZ-oKwR.js";
27
- import "./manifest-registry-D0IQ3WuX.js";
28
- import "./chrome-791kNCCB.js";
29
- import "./frontmatter-C_bv_0P8.js";
30
- import "./skills-BFekKL7i.js";
24
+ import "./message-channel-Bzd90Fg1.js";
25
+ import "./pi-embedded-helpers-DwUUGl8K.js";
26
+ import "./config-BrAFSU6Z.js";
27
+ import "./manifest-registry-DetgyAnG.js";
28
+ import "./chrome-B4c8SEkN.js";
29
+ import "./frontmatter-wVHII0KO.js";
30
+ import "./skills-8Qi9zQz0.js";
31
31
  import "./redact-jSxx6Ep2.js";
32
32
  import "./errors-BoQgnc8X.js";
33
33
  import "./ssrf-BTMDZjHT.js";
34
- import "./store-C0wvOkae.js";
35
- import "./thinking-CdlENGRW.js";
36
- import "./accounts-qtxJ-6em.js";
37
- import "./paths-DLyHUt31.js";
38
- import "./tool-images-DXB7tqWi.js";
39
- import "./image-ycxQmhff.js";
40
- import "./reply-prefix-XlyuyChD.js";
41
- import "./manager-M83fJMDC.js";
42
- import "./gemini-auth-DzFcFvHV.js";
43
- import "./sqlite-DRbx2dhW.js";
44
- import "./retry-Cly39XZB.js";
45
- import "./target-errors-Be1SwYlW.js";
46
- import "./chunk-BW5f05BR.js";
47
- import "./markdown-tables-iMQQZu4Q.js";
48
- import "./local-roots-DMwIh5cS.js";
49
- import "./ir-DccrnjsE.js";
34
+ import "./store-CsOqrZPF.js";
35
+ import "./thinking-DwjHOBvM.js";
36
+ import "./accounts-K_r7OhcD.js";
37
+ import "./paths-Cb87-LzP.js";
38
+ import "./tool-images-DA9V4mO7.js";
39
+ import "./image-DEVMOUEF.js";
40
+ import "./reply-prefix-NvPdveXK.js";
41
+ import "./manager-BlH-kIAA.js";
42
+ import "./gemini-auth-BwRMlWJH.js";
43
+ import "./sqlite-ReocE89T.js";
44
+ import "./retry-CZ13t_sq.js";
45
+ import "./target-errors-DUTv7Hgk.js";
46
+ import "./chunk-CxYL-OXO.js";
47
+ import "./markdown-tables-C4L0emuC.js";
48
+ import "./local-roots-C0y1zqg5.js";
49
+ import "./ir-CuuCOLHL.js";
50
50
  import "./render-CDCvpfhh.js";
51
- import "./commands-registry-BCRa0DAp.js";
52
- import "./skill-commands-DCDG7ki5.js";
53
- import "./runner-Cw5KZrjx.js";
51
+ import "./commands-registry-BqkqVEHA.js";
52
+ import "./skill-commands-BtMC57oh.js";
53
+ import "./runner-Dl0eiBve.js";
54
54
  import "./fetch-Bso4i15F.js";
55
- import "./channel-activity-CsM_hJ_s.js";
56
- import "./tables-DuZspiBu.js";
57
- import "./send-QC5kvnW3.js";
58
- import "./outbound-attachment-DjNDa3zn.js";
59
- import "./send-BxrNk2KH.js";
60
- import "./resolve-route-CZ-1eqw0.js";
55
+ import "./channel-activity-IwGy5fjY.js";
56
+ import "./tables-Du3x5E08.js";
57
+ import "./send-BDVMssZq.js";
58
+ import "./outbound-attachment-DTzYlChD.js";
59
+ import "./send-3jM0m9vc.js";
60
+ import "./resolve-route-BoOTtfRC.js";
61
61
  import "./proxy-CBJ1upuz.js";
62
- import "./replies-Cj2HD2yn.js";
62
+ import "./replies-CjfQWlpL.js";
63
63
  import fs from "node:fs/promises";
64
64
  import os from "node:os";
65
65
  import path from "node:path";
@@ -1,8 +1,8 @@
1
- import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
2
- import { dt as resolvePreferredSymiTmpDir } from "./registry-CK4e9hn8.js";
3
- import { s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
4
- import { S as logWarn } from "./workspace-wAaHI8-5.js";
5
- import { d as detectMime, f as extensionForMime } from "./image-ops-CvJzsyvE.js";
1
+ import { s as resolveStateDir } from "./paths-CySxpNhH.js";
2
+ import { dt as resolvePreferredSymiTmpDir } from "./registry-Cgbuhd6U.js";
3
+ import { s as resolveAgentWorkspaceDir } from "./agent-scope-BkCGKhZd.js";
4
+ import { S as logWarn } from "./workspace-CFIJ53-f.js";
5
+ import { d as detectMime, f as extensionForMime } from "./image-ops-Lmflb2E9.js";
6
6
  import { a as resolvePinnedHostnameWithPolicy, n as closeDispatcher, r as createPinnedDispatcher, t as SsrFBlockedError } from "./ssrf-BTMDZjHT.js";
7
7
  import { t as bindAbortRelay } from "./fetch-timeout-DL3f_O53.js";
8
8
  import path from "node:path";
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { G as danger, K as info, Q as success } from "./registry-CK4e9hn8.js";
3
- import { r as defaultRuntime } from "./subsystem-Bs9YvKLa.js";
4
- import { x as logInfo } from "./workspace-wAaHI8-5.js";
5
- import { a as logoutWeb, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
6
- import { t as formatCliCommand } from "./command-format-BaxDnULz.js";
7
- import { n as loadConfig } from "./config-CfZ-oKwR.js";
8
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-BK0E3EZe.js";
2
+ import { G as danger, K as info, Q as success } from "./registry-Cgbuhd6U.js";
3
+ import { r as defaultRuntime } from "./subsystem-LRKKAgQx.js";
4
+ import { x as logInfo } from "./workspace-CFIJ53-f.js";
5
+ import { a as logoutWeb, t as resolveWhatsAppAccount } from "./accounts-CRksecBH.js";
6
+ import { t as formatCliCommand } from "./command-format-HKbBegfJ.js";
7
+ import { n as loadConfig } from "./config-BrAFSU6Z.js";
8
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-BgWKJ33t.js";
9
9
  import { DisconnectReason } from "@whiskeysockets/baileys";
10
10
 
11
11
  //#region src/web/login.ts
@@ -1,16 +1,16 @@
1
- import "./paths-Cce4PUkG.js";
2
- import { G as danger, K as info, Q as success } from "./registry-CK4e9hn8.js";
3
- import "./agent-scope-BxoUQqgM.js";
4
- import { r as defaultRuntime } from "./subsystem-Bs9YvKLa.js";
5
- import { x as logInfo } from "./workspace-wAaHI8-5.js";
6
- import { a as logoutWeb, l as readWebSelfId, p as webAuthExists, t as resolveWhatsAppAccount } from "./accounts-tNElYrCH.js";
1
+ import "./paths-CySxpNhH.js";
2
+ import { G as danger, K as info, Q as success } from "./registry-Cgbuhd6U.js";
3
+ import "./agent-scope-BkCGKhZd.js";
4
+ import { r as defaultRuntime } from "./subsystem-LRKKAgQx.js";
5
+ import { x as logInfo } from "./workspace-CFIJ53-f.js";
6
+ import { a as logoutWeb, l as readWebSelfId, p as webAuthExists, t as resolveWhatsAppAccount } from "./accounts-CRksecBH.js";
7
7
  import "./boolean-B8-BqKGQ.js";
8
- import "./command-format-BaxDnULz.js";
9
- import "./model-auth-64S8o7s-.js";
10
- import "./github-copilot-token-C_qUP7p5.js";
11
- import { n as loadConfig } from "./config-CfZ-oKwR.js";
12
- import "./manifest-registry-D0IQ3WuX.js";
13
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BK0E3EZe.js";
8
+ import "./command-format-HKbBegfJ.js";
9
+ import "./model-auth-DbMOVgB3.js";
10
+ import "./github-copilot-token-DJqsJ2-r.js";
11
+ import { n as loadConfig } from "./config-BrAFSU6Z.js";
12
+ import "./manifest-registry-DetgyAnG.js";
13
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BgWKJ33t.js";
14
14
  import { randomUUID } from "node:crypto";
15
15
  import { DisconnectReason } from "@whiskeysockets/baileys";
16
16
  import QRCodeModule from "qrcode-terminal/vendor/QRCode/index.js";
@@ -1,20 +1,20 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
3
- import { I as resolveUserPath, T as clampNumber, U as truncateUtf16Safe, w as clampInt } from "./registry-CK4e9hn8.js";
4
- import { n as resolveAgentConfig, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BxoUQqgM.js";
5
- import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
- import { r as isTruthyEnvValue } from "./command-format-BaxDnULz.js";
7
- import { i as resolveApiKeyForProvider, r as requireApiKey } from "./model-auth-64S8o7s-.js";
2
+ import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
+ import { I as resolveUserPath, T as clampNumber, U as truncateUtf16Safe, w as clampInt } from "./registry-Cgbuhd6U.js";
4
+ import { n as resolveAgentConfig, r as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BkCGKhZd.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-LRKKAgQx.js";
6
+ import { r as isTruthyEnvValue } from "./command-format-HKbBegfJ.js";
7
+ import { i as resolveApiKeyForProvider, r as requireApiKey } from "./model-auth-DbMOVgB3.js";
8
8
  import { n as formatErrorMessage } from "./errors-BoQgnc8X.js";
9
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-DLyHUt31.js";
9
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-Cb87-LzP.js";
10
10
  import { n as onSessionTranscriptUpdate } from "./transcript-events-DDYvbmRV.js";
11
- import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-DzFcFvHV.js";
12
- import { _ as isFileMissingError, a as buildFileEntry, c as ensureDir, d as listMemoryFiles, f as normalizeExtraMemoryPaths, h as runWithConcurrency, i as sessionPathForFile, l as hashText, m as remapChunkLines, n as buildSessionEntry, o as chunkMarkdown, p as parseEmbedding, r as listSessionFilesForAgent, s as cosineSimilarity, t as requireNodeSqlite, u as isMemoryPath, v as statRegularFile } from "./sqlite-DRbx2dhW.js";
13
- import { n as retryAsync } from "./retry-Cly39XZB.js";
11
+ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-BwRMlWJH.js";
12
+ import { _ as isFileMissingError, a as buildFileEntry, c as ensureDir, d as listMemoryFiles, f as normalizeExtraMemoryPaths, h as runWithConcurrency, i as sessionPathForFile, l as hashText, m as remapChunkLines, n as buildSessionEntry, o as chunkMarkdown, p as parseEmbedding, r as listSessionFilesForAgent, s as cosineSimilarity, t as requireNodeSqlite, u as isMemoryPath, v as statRegularFile } from "./sqlite-ReocE89T.js";
13
+ import { n as retryAsync } from "./retry-CZ13t_sq.js";
14
14
  import fs from "node:fs/promises";
15
15
  import os from "node:os";
16
16
  import path from "node:path";
17
- import fs$1 from "node:fs";
17
+ import fsSync from "node:fs";
18
18
  import { randomUUID } from "node:crypto";
19
19
  import { createInterface } from "node:readline";
20
20
  import { Readable } from "node:stream";
@@ -614,7 +614,7 @@ function canAutoSelectLocal(options) {
614
614
  if (/^(hf:|https?:)/i.test(modelPath)) return false;
615
615
  const resolved = resolveUserPath(modelPath);
616
616
  try {
617
- return fs$1.statSync(resolved).isFile();
617
+ return fsSync.statSync(resolved).isFile();
618
618
  } catch {
619
619
  return false;
620
620
  }
@@ -2073,7 +2073,7 @@ var MemoryManagerSyncOps = class {
2073
2073
  ]);
2074
2074
  const additionalPaths = normalizeExtraMemoryPaths(this.workspaceDir, this.settings.extraPaths);
2075
2075
  for (const entry of additionalPaths) try {
2076
- const stat = fs$1.lstatSync(entry);
2076
+ const stat = fsSync.lstatSync(entry);
2077
2077
  if (stat.isSymbolicLink()) continue;
2078
2078
  if (stat.isDirectory()) {
2079
2079
  watchPaths.add(path.join(entry, "**", "*.md"));