@symerian/symi 2.4.1 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/{accounts-ChTFYj8Q.js → accounts-CWktKM8a.js} +1 -1
  2. package/dist/{accounts-CJR8j_Kq.js → accounts-qtxJ-6em.js} +1 -1
  3. package/dist/{accounts-CI6zQTJj.js → accounts-tNElYrCH.js} +14 -14
  4. package/dist/{active-listener-D6sXIjAg.js → active-listener-C9r8ZB9m.js} +1 -1
  5. package/dist/{agent-scope-Bw1Ed8W9.js → agent-scope-BxoUQqgM.js} +3 -3
  6. package/dist/{audio-preflight-BkIfnmpi.js → audio-preflight-D02HwB-I.js} +29 -29
  7. package/dist/{bindings-BU2hsBd9.js → bindings-B7Ke6LJi.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-C9-gaquj.js → channel-activity-CsM_hJ_s.js} +1 -1
  15. package/dist/{chrome-CxSAp8x3.js → chrome-EyvdASWt.js} +13 -13
  16. package/dist/{chunk-ClbN9Pqy.js → chunk-BW5f05BR.js} +1 -1
  17. package/dist/{command-format-UKHV-j0K.js → command-format-BaxDnULz.js} +1 -1
  18. package/dist/{command-registry-DXt0PsFy.js → command-registry-CsDAPQfS.js} +4 -4
  19. package/dist/{commands-registry-VSmULp-g.js → commands-registry-D7CTCQPm.js} +4 -4
  20. package/dist/{completion-cli-BsSDzZNA.js → completion-cli-B_f5PMBc.js} +1 -1
  21. package/dist/{completion-cli-CPMOXTf2.js → completion-cli-CSdjFWHy.js} +2 -2
  22. package/dist/{config-eEaJddXj.js → config-DRbjHIwD.js} +12 -12
  23. package/dist/{deliver-BA7ZN3iM.js → deliver-D1ZN6-fl.js} +20 -20
  24. package/dist/{diagnostic-C3nsWaw3.js → diagnostic-CI0kRQkt.js} +1 -1
  25. package/dist/{doctor-completion-8qbLmeX0.js → doctor-completion-BWJvfjTC.js} +1 -1
  26. package/dist/{doctor-completion-Dnxn_-ov.js → doctor-completion-llX6EnGy.js} +1 -1
  27. package/dist/entry.js +1 -1
  28. package/dist/{frontmatter-DPlG6yha.js → frontmatter-C_bv_0P8.js} +2 -2
  29. package/dist/{gateway-cli-XIsXoJZ3.js → gateway-cli-70k2-I4K.js} +12 -8
  30. package/dist/{gateway-cli-DKDpOBp-.js → gateway-cli-BApdH1bD.js} +12 -8
  31. package/dist/{gemini-auth-CF48hUR9.js → gemini-auth-CdSPHuLl.js} +1 -1
  32. package/dist/{github-copilot-token-DJqsJ2-r.js → github-copilot-token-C_qUP7p5.js} +7 -7
  33. package/dist/{image-BGmVDkkw.js → image-Cp3JDEBB.js} +4 -4
  34. package/dist/{image-ops-S8-8dAhx.js → image-ops-CvJzsyvE.js} +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/{ir-CbFUkv_T.js → ir-DccrnjsE.js} +4 -4
  37. package/dist/llm-slug-generator.js +53 -53
  38. package/dist/{local-roots-C7OCYACU.js → local-roots-DMwIh5cS.js} +5 -5
  39. package/dist/{login-B8uiUAnV.js → login-CwCoxapk.js} +7 -7
  40. package/dist/{login-qr-CIZk8uKX.js → login-qr-Batf3PT5.js} +12 -12
  41. package/dist/{manager-BoLr3xR_.js → manager-D_LwXbc6.js} +13 -13
  42. package/dist/{manifest-registry-CneMHk0N.js → manifest-registry-D0IQ3WuX.js} +19 -19
  43. package/dist/{markdown-tables-DSHvnTLx.js → markdown-tables-iMQQZu4Q.js} +1 -1
  44. package/dist/{message-channel-DbsRltF2.js → message-channel-Dz5lr5b0.js} +1 -1
  45. package/dist/{model-auth-CwOuTuXl.js → model-auth-DK43VicI.js} +9 -9
  46. package/dist/{onboard-CXOUIg28.js → onboard-1wGdR0wt.js} +1 -1
  47. package/dist/{onboard-DBeHwdks.js → onboard-nQYq_dsr.js} +1 -1
  48. package/dist/{onboarding-Dfjn2-9q.js → onboarding-Peg7PNOz.js} +1 -1
  49. package/dist/{onboarding-C58wjONa.js → onboarding-gQRA57l_.js} +1 -1
  50. package/dist/{onboarding.finalize-7r1HYXWd.js → onboarding.finalize-C4DSBMrV.js} +4 -4
  51. package/dist/{onboarding.finalize-DGD56sXW.js → onboarding.finalize-D26o-hBA.js} +3 -3
  52. package/dist/{outbound-opDNxv-l.js → outbound-D4fN_ZlE.js} +7 -7
  53. package/dist/{outbound-attachment-Co2diKdP.js → outbound-attachment-DjNDa3zn.js} +2 -2
  54. package/dist/{paths-CySxpNhH.js → paths-Cce4PUkG.js} +5 -5
  55. package/dist/{paths-Cb87-LzP.js → paths-DLyHUt31.js} +1 -1
  56. package/dist/{pi-auth-json-DPWPoruO.js → pi-auth-json-0SYBFZTt.js} +8 -8
  57. package/dist/{pi-embedded-B6uRrG1f.js → pi-embedded-XE5y7qIF.js} +158 -158
  58. package/dist/{pi-embedded-helpers-DEEaCvEp.js → pi-embedded-helpers-ag2bosuj.js} +52 -52
  59. package/dist/{plugins-C4C9637U.js → plugins-DQYI3Fr-.js} +9 -9
  60. package/dist/{program-CutjuJj0.js → program-Bx47hl_J.js} +2 -2
  61. package/dist/{program-context-qVc_lsLV.js → program-context-JFmxYLfK.js} +6 -6
  62. package/dist/{prompt-select-styled-C0yn8YjW.js → prompt-select-styled--d3H0JCo.js} +1 -1
  63. package/dist/{prompt-select-styled-BCHe7Fks.js → prompt-select-styled-BeJhp9PS.js} +1 -1
  64. package/dist/{pw-ai-DhwRiS06.js → pw-ai-Ch7liUOW.js} +11 -11
  65. package/dist/{qmd-manager-DdZh9PHs.js → qmd-manager-QHUP-_em.js} +7 -7
  66. package/dist/{register.maintenance-DMLPFSKI.js → register.maintenance-CYhp47Hs.js} +5 -5
  67. package/dist/{register.maintenance-D1MuIUlv.js → register.maintenance-CvaHYkoX.js} +4 -4
  68. package/dist/{register.onboard-CXHhSH4B.js → register.onboard-CoySBEdQ.js} +2 -2
  69. package/dist/{register.onboard-D1X2dUGZ.js → register.onboard-mCscJN7t.js} +2 -2
  70. package/dist/{register.setup-Q58lN0TV.js → register.setup-BmE-pwMT.js} +2 -2
  71. package/dist/{register.setup-DFDb5BDi.js → register.setup-CzrsIQMG.js} +2 -2
  72. package/dist/{register.subclis-CrTXa8cj.js → register.subclis-wsgQ6wk8.js} +3 -3
  73. package/dist/{registry-DP24za6g.js → registry-CK4e9hn8.js} +17 -17
  74. package/dist/{replies-DpPvWiGF.js → replies-BIX_isV7.js} +3 -3
  75. package/dist/{reply-prefix-CtL0omgM.js → reply-prefix-XlyuyChD.js} +1 -1
  76. package/dist/{resolve-route-BVikmvWO.js → resolve-route-CZ-1eqw0.js} +4 -4
  77. package/dist/{retry-dGG-MbxL.js → retry-Cly39XZB.js} +1 -1
  78. package/dist/{run-main-BLKPL_vM.js → run-main-mKcFqx7h.js} +3 -3
  79. package/dist/{runner-B_KP4voe.js → runner-D0QUGA_X.js} +9 -9
  80. package/dist/{send-DeEosX8F.js → send-B1u-LrcS.js} +18 -18
  81. package/dist/{send-DwKJK3sM.js → send-CiTGOvEc.js} +10 -10
  82. package/dist/{send-zSarozV2.js → send-DW96zgDL.js} +6 -6
  83. package/dist/{send-CHEOWVc8.js → send-DeFniOjh.js} +6 -6
  84. package/dist/{send-DbcLJb0P.js → send-WyRqb4WD.js} +7 -7
  85. package/dist/{session-DV1MNlbV.js → session-SM36BTsl.js} +8 -8
  86. package/dist/{skill-commands-D610IKhm.js → skill-commands-BJMb_psG.js} +9 -9
  87. package/dist/{skills-o5WVqM4V.js → skills-BFekKL7i.js} +21 -21
  88. package/dist/{sqlite-6H6Zw1cs.js → sqlite-DRbx2dhW.js} +4 -4
  89. package/dist/{store-vVE6N2mH.js → store-C0wvOkae.js} +2 -2
  90. package/dist/{subsystem-DgpxyDQ_.js → subsystem-Bs9YvKLa.js} +1 -1
  91. package/dist/{tables-BIWsCKXJ.js → tables-DuZspiBu.js} +1 -1
  92. package/dist/{target-errors-DyItGyW9.js → target-errors-Be1SwYlW.js} +2 -2
  93. package/dist/{thinking-Ni0HF-w6.js → thinking-CdlENGRW.js} +5 -5
  94. package/dist/{tokens-c_SLAkVb.js → tokens-H1H1LiSQ.js} +1 -1
  95. package/dist/{tool-images-DBCfXdli.js → tool-images-DXB7tqWi.js} +2 -2
  96. package/dist/{tool-loop-detection-Bbc9OPFR.js → tool-loop-detection-Cs8_HCsx.js} +3 -3
  97. package/dist/{update-cli-BkU6ori8.js → update-cli-BEBDpJF4.js} +5 -5
  98. package/dist/{update-cli-D18nWvzY.js → update-cli-C22V-tFW.js} +4 -4
  99. package/dist/{web-BsjZ2RTT.js → web-CviyqTad.js} +57 -57
  100. package/dist/{whatsapp-actions-oRQjcdQe.js → whatsapp-actions-D1RsnX7P.js} +23 -23
  101. package/dist/{workspace-CbvamIU6.js → workspace-wAaHI8-5.js} +6 -6
  102. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
- import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CySxpNhH.js";
1
+ import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-Cce4PUkG.js";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import fs from "node:fs";
5
5
  import { Logger } from "tslog";
6
6
  import JSON5 from "json5";
7
7
  import chalk, { Chalk } from "chalk";
@@ -12,9 +12,9 @@ function isNodeErrorWithCode(err, code) {
12
12
  return typeof err === "object" && err !== null && "code" in err && err.code === code;
13
13
  }
14
14
  function resolvePreferredSymiTmpDir(options = {}) {
15
- const accessSync = options.accessSync ?? fsSync.accessSync;
16
- const lstatSync = options.lstatSync ?? fsSync.lstatSync;
17
- const mkdirSync = options.mkdirSync ?? fsSync.mkdirSync;
15
+ const accessSync = options.accessSync ?? fs.accessSync;
16
+ const lstatSync = options.lstatSync ?? fs.lstatSync;
17
+ const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
18
18
  const getuid = options.getuid ?? (() => {
19
19
  try {
20
20
  return typeof process.getuid === "function" ? process.getuid() : void 0;
@@ -38,14 +38,14 @@ function resolvePreferredSymiTmpDir(options = {}) {
38
38
  try {
39
39
  const preferred = lstatSync(POSIX_SYMI_TMP_DIR);
40
40
  if (!preferred.isDirectory() || preferred.isSymbolicLink()) return fallback();
41
- accessSync(POSIX_SYMI_TMP_DIR, fsSync.constants.W_OK | fsSync.constants.X_OK);
41
+ accessSync(POSIX_SYMI_TMP_DIR, fs.constants.W_OK | fs.constants.X_OK);
42
42
  if (!isSecureDirForUser(preferred)) return fallback();
43
43
  return POSIX_SYMI_TMP_DIR;
44
44
  } catch (err) {
45
45
  if (!isNodeErrorWithCode(err, "ENOENT")) return fallback();
46
46
  }
47
47
  try {
48
- accessSync("/tmp", fsSync.constants.W_OK | fsSync.constants.X_OK);
48
+ accessSync("/tmp", fs.constants.W_OK | fs.constants.X_OK);
49
49
  mkdirSync(POSIX_SYMI_TMP_DIR, {
50
50
  recursive: true,
51
51
  mode: 448
@@ -68,8 +68,8 @@ function resolvePreferredSymiTmpDir(options = {}) {
68
68
  function readLoggingConfig() {
69
69
  const configPath = resolveConfigPath();
70
70
  try {
71
- if (!fsSync.existsSync(configPath)) return;
72
- const raw = fsSync.readFileSync(configPath, "utf-8");
71
+ if (!fs.existsSync(configPath)) return;
72
+ const raw = fs.readFileSync(configPath, "utf-8");
73
73
  const logging = JSON5.parse(raw)?.logging;
74
74
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
75
75
  return logging;
@@ -172,7 +172,7 @@ function isFileLogLevelEnabled(level) {
172
172
  return levelToMinLevel(level) <= levelToMinLevel(settings.level);
173
173
  }
174
174
  function buildLogger(settings) {
175
- fsSync.mkdirSync(path.dirname(settings.file), { recursive: true });
175
+ fs.mkdirSync(path.dirname(settings.file), { recursive: true });
176
176
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
177
177
  const logger = new Logger({
178
178
  name: "symi",
@@ -186,7 +186,7 @@ function buildLogger(settings) {
186
186
  ...logObj,
187
187
  time
188
188
  });
189
- fsSync.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
189
+ fs.appendFileSync(settings.file, `${line}\n`, { encoding: "utf8" });
190
190
  } catch {}
191
191
  });
192
192
  for (const transport of externalTransports) attachExternalTransport(logger, transport);
@@ -238,14 +238,14 @@ function isRollingPath(file) {
238
238
  }
239
239
  function pruneOldRollingLogs(dir) {
240
240
  try {
241
- const entries = fsSync.readdirSync(dir, { withFileTypes: true });
241
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
242
242
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
243
243
  for (const entry of entries) {
244
244
  if (!entry.isFile()) continue;
245
245
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
246
246
  const fullPath = path.join(dir, entry.name);
247
247
  try {
248
- if (fsSync.statSync(fullPath).mtimeMs < cutoff) fsSync.rmSync(fullPath, { force: true });
248
+ if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
249
249
  } catch {}
250
250
  }
251
251
  } catch {}
@@ -326,14 +326,14 @@ function isPlainObject(value) {
326
326
  //#endregion
327
327
  //#region src/utils.ts
328
328
  async function ensureDir(dir) {
329
- await fsSync.promises.mkdir(dir, { recursive: true });
329
+ await fs.promises.mkdir(dir, { recursive: true });
330
330
  }
331
331
  /**
332
332
  * Check if a file or directory exists at the given path.
333
333
  */
334
334
  async function pathExists(targetPath) {
335
335
  try {
336
- await fsSync.promises.access(targetPath);
336
+ await fs.promises.access(targetPath);
337
337
  return true;
338
338
  } catch {
339
339
  return false;
@@ -416,7 +416,7 @@ function readLidReverseMapping(lid, opts) {
416
416
  for (const dir of mappingDirs) {
417
417
  const mappingPath = path.join(dir, mappingFilename);
418
418
  try {
419
- const data = fsSync.readFileSync(mappingPath, "utf8");
419
+ const data = fs.readFileSync(mappingPath, "utf8");
420
420
  const phone = JSON.parse(data);
421
421
  if (phone === null || phone === void 0) continue;
422
422
  return normalizeE164(String(phone));
@@ -500,7 +500,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
500
500
  if (override) return resolveUserPath(override);
501
501
  const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".symi");
502
502
  try {
503
- if (fsSync.existsSync(newDir)) return newDir;
503
+ if (fs.existsSync(newDir)) return newDir;
504
504
  } catch {}
505
505
  return newDir;
506
506
  }
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-c_SLAkVb.js";
3
- import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-CHEOWVc8.js";
4
- import { i as chunkMarkdownTextWithMode } from "./chunk-ClbN9Pqy.js";
2
+ import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-H1H1LiSQ.js";
3
+ import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-DeFniOjh.js";
4
+ import { i as chunkMarkdownTextWithMode } from "./chunk-BW5f05BR.js";
5
5
 
6
6
  //#region src/auto-reply/reply/reply-reference.ts
7
7
  function createReplyReferencePlanner(options) {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveAgentConfig } from "./agent-scope-Bw1Ed8W9.js";
2
+ import { n as resolveAgentConfig } from "./agent-scope-BxoUQqgM.js";
3
3
 
4
4
  //#region src/agents/identity.ts
5
5
  const DEFAULT_ACK_REACTION = "👀";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { d as sanitizeAgentId, f as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, n as DEFAULT_MAIN_KEY, p as normalizeAccountId, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
- import { Z as shouldLogVerbose } from "./registry-DP24za6g.js";
4
- import { c as resolveDefaultAgentId } from "./agent-scope-Bw1Ed8W9.js";
5
- import { y as logDebug } from "./workspace-CbvamIU6.js";
3
+ import { Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
4
+ import { c as resolveDefaultAgentId } from "./agent-scope-BxoUQqgM.js";
5
+ import { y as logDebug } from "./workspace-wAaHI8-5.js";
6
6
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
7
- import { t as listBindings } from "./bindings-BU2hsBd9.js";
7
+ import { t as listBindings } from "./bindings-B7Ke6LJi.js";
8
8
 
9
9
  //#region src/routing/resolve-route.ts
10
10
  var resolve_route_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { B as sleep } from "./registry-DP24za6g.js";
1
+ import { B as sleep } from "./registry-CK4e9hn8.js";
2
2
 
3
3
  //#region src/infra/retry.ts
4
4
  const DEFAULT_RETRY_CONFIG = {
@@ -379,7 +379,7 @@ async function runCli(argv = process$1.argv) {
379
379
  assertSupportedRuntime();
380
380
  if (await tryRouteCli(normalizedArgv)) return;
381
381
  enableConsoleCapture();
382
- const { buildProgram } = await import("./program-CutjuJj0.js");
382
+ const { buildProgram } = await import("./program-Bx47hl_J.js");
383
383
  const program = buildProgram();
384
384
  installUnhandledRejectionHandler();
385
385
  process$1.on("uncaughtException", (error) => {
@@ -411,10 +411,10 @@ async function runCli(argv = process$1.argv) {
411
411
  const { getProgramContext } = await import("./program-context-CqzR_m-7.js").then((n) => n.n);
412
412
  const ctx = getProgramContext(program);
413
413
  if (ctx) {
414
- const { registerCoreCliByName } = await import("./command-registry-DXt0PsFy.js").then((n) => n.t);
414
+ const { registerCoreCliByName } = await import("./command-registry-CsDAPQfS.js").then((n) => n.t);
415
415
  await registerCoreCliByName(program, ctx, primary, parseArgv);
416
416
  }
417
- const { registerSubCliByName } = await import("./register.subclis-CrTXa8cj.js").then((n) => n.a);
417
+ const { registerSubCliByName } = await import("./register.subclis-wsgQ6wk8.js").then((n) => n.a);
418
418
  await registerSubCliByName(program, primary);
419
419
  }
420
420
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -1,13 +1,13 @@
1
- import { J as logVerbose, Z as shouldLogVerbose } from "./registry-DP24za6g.js";
2
- import { _ as runExec } from "./workspace-CbvamIU6.js";
1
+ import { J as logVerbose, Z as shouldLogVerbose } from "./registry-CK4e9hn8.js";
2
+ import { _ as runExec } from "./workspace-wAaHI8-5.js";
3
3
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
4
- import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-S8-8dAhx.js";
5
- import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveSymiAgentDir } from "./model-auth-CwOuTuXl.js";
6
- import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-eEaJddXj.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-BGmVDkkw.js";
8
- import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CF48hUR9.js";
4
+ import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-CvJzsyvE.js";
5
+ import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveSymiAgentDir } from "./model-auth-DK43VicI.js";
6
+ import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-DRbjHIwD.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-Cp3JDEBB.js";
8
+ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CdSPHuLl.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
10
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-C7OCYACU.js";
10
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-DMwIh5cS.js";
11
11
  import fs from "node:fs/promises";
12
12
  import os from "node:os";
13
13
  import path from "node:path";
@@ -882,7 +882,7 @@ async function loadModelCatalog(params) {
882
882
  });
883
883
  try {
884
884
  await ensureSymiModelsJson(params?.config ?? loadConfig());
885
- await (await import("./pi-auth-json-DPWPoruO.js")).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir());
885
+ await (await import("./pi-auth-json-0SYBFZTt.js")).ensurePiAuthJsonFromAuthProfiles(resolveSymiAgentDir());
886
886
  const piSdk = await importPiSdk();
887
887
  const agentDir = resolveSymiAgentDir();
888
888
  const { join } = await import("node:path");
@@ -1,24 +1,24 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { a as resolveOAuthDir, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CySxpNhH.js";
3
- import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-DP24za6g.js";
4
- import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
5
- import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-C4C9637U.js";
6
- import { r as isTruthyEnvValue } from "./command-format-UKHV-j0K.js";
7
- import { g as isGifMedia, p as getFileExtension, v as normalizeMimeType, x as mediaKindFromMime } from "./image-ops-S8-8dAhx.js";
8
- import { b as withFileLock$1 } from "./model-auth-CwOuTuXl.js";
9
- import { n as loadConfig } from "./config-eEaJddXj.js";
2
+ import { a as resolveOAuthDir, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-Cce4PUkG.js";
3
+ import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-CK4e9hn8.js";
4
+ import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
5
+ import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DQYI3Fr-.js";
6
+ import { r as isTruthyEnvValue } from "./command-format-BaxDnULz.js";
7
+ import { g as isGifMedia, p as getFileExtension, v as normalizeMimeType, x as mediaKindFromMime } from "./image-ops-CvJzsyvE.js";
8
+ import { b as withFileLock$1 } from "./model-auth-DK43VicI.js";
9
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
10
10
  import { t as redactSensitiveText } from "./redact-jSxx6Ep2.js";
11
11
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-BoQgnc8X.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DSHvnTLx.js";
13
- import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-CbFUkv_T.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
13
+ import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-DccrnjsE.js";
14
14
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
15
15
  import { t as resolveFetch } from "./fetch-Bso4i15F.js";
16
- import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-C9-gaquj.js";
16
+ import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-CsM_hJ_s.js";
17
17
  import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
18
18
  import { t as makeProxyFetch } from "./proxy-CBJ1upuz.js";
19
19
  import os from "node:os";
20
20
  import path from "node:path";
21
- import fsSync from "node:fs";
21
+ import fs from "node:fs";
22
22
  import crypto from "node:crypto";
23
23
  import process$1 from "node:process";
24
24
  import * as net$1 from "node:net";
@@ -131,7 +131,7 @@ function getPairingAdapter(channelId) {
131
131
  //#region src/plugin-sdk/json-store.ts
132
132
  async function readJsonFileWithFallback(filePath, fallback) {
133
133
  try {
134
- const parsed = safeParseJson(await fsSync.promises.readFile(filePath, "utf-8"));
134
+ const parsed = safeParseJson(await fs.promises.readFile(filePath, "utf-8"));
135
135
  if (parsed == null) return {
136
136
  value: fallback,
137
137
  exists: true
@@ -153,14 +153,14 @@ async function readJsonFileWithFallback(filePath, fallback) {
153
153
  }
154
154
  async function writeJsonFileAtomically(filePath, value) {
155
155
  const dir = path.dirname(filePath);
156
- await fsSync.promises.mkdir(dir, {
156
+ await fs.promises.mkdir(dir, {
157
157
  recursive: true,
158
158
  mode: 448
159
159
  });
160
160
  const tmp = path.join(dir, `${path.basename(filePath)}.${crypto.randomUUID()}.tmp`);
161
- await fsSync.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf-8" });
162
- await fsSync.promises.chmod(tmp, 384);
163
- await fsSync.promises.rename(tmp, filePath);
161
+ await fs.promises.writeFile(tmp, `${JSON.stringify(value, null, 2)}\n`, { encoding: "utf-8" });
162
+ await fs.promises.chmod(tmp, 384);
163
+ await fs.promises.rename(tmp, filePath);
164
164
  }
165
165
 
166
166
  //#endregion
@@ -221,7 +221,7 @@ async function readPairingRequests(filePath) {
221
221
  }
222
222
  async function ensureJsonFile(filePath, fallback) {
223
223
  try {
224
- await fsSync.promises.access(filePath);
224
+ await fs.promises.access(filePath);
225
225
  } catch {
226
226
  await writeJsonFile(filePath, fallback);
227
227
  }
@@ -1,17 +1,17 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { dt as resolvePreferredSymiTmpDir } from "./registry-DP24za6g.js";
3
- import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-C4C9637U.js";
2
+ import { dt as resolvePreferredSymiTmpDir } from "./registry-CK4e9hn8.js";
3
+ import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-DQYI3Fr-.js";
4
4
  import { a as requireTargetKind, i as parseTargetPrefixes, n as ensureTargetId, r as parseTargetMention, t as buildMessagingTarget } from "./targets-CFovdgJI.js";
5
- import { b as maxBytesForKind, f as extensionForMime } from "./image-ops-S8-8dAhx.js";
6
- import { n as loadConfig } from "./config-eEaJddXj.js";
7
- import { n as retryAsync, t as resolveRetryConfig } from "./retry-dGG-MbxL.js";
8
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-ClbN9Pqy.js";
9
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DSHvnTLx.js";
10
- import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-CbFUkv_T.js";
5
+ import { b as maxBytesForKind, f as extensionForMime } from "./image-ops-CvJzsyvE.js";
6
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
7
+ import { n as retryAsync, t as resolveRetryConfig } from "./retry-Cly39XZB.js";
8
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-BW5f05BR.js";
9
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
10
+ import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-DccrnjsE.js";
11
11
  import { t as resolveFetch } from "./fetch-Bso4i15F.js";
12
- import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-C9-gaquj.js";
12
+ import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-CsM_hJ_s.js";
13
13
  import { n as normalizePollInput, t as normalizePollDurationHours } from "./polls-CCuCaqgv.js";
14
- import { t as convertMarkdownTables } from "./tables-BIWsCKXJ.js";
14
+ import { t as convertMarkdownTables } from "./tables-DuZspiBu.js";
15
15
  import fs from "node:fs/promises";
16
16
  import path from "node:path";
17
17
  import { execFile } from "node:child_process";
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveSignalAccount } from "./accounts-ChTFYj8Q.js";
3
- import { x as mediaKindFromMime } from "./image-ops-S8-8dAhx.js";
4
- import { n as loadConfig } from "./config-eEaJddXj.js";
5
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DSHvnTLx.js";
2
+ import { n as resolveSignalAccount } from "./accounts-CWktKM8a.js";
3
+ import { x as mediaKindFromMime } from "./image-ops-CvJzsyvE.js";
4
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
5
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
6
6
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
7
- import { n as markdownToIR, t as chunkMarkdownIR } from "./ir-CbFUkv_T.js";
7
+ import { n as markdownToIR, t as chunkMarkdownIR } from "./ir-DccrnjsE.js";
8
8
  import { t as resolveFetch } from "./fetch-Bso4i15F.js";
9
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-Co2diKdP.js";
9
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DjNDa3zn.js";
10
10
  import { randomUUID } from "node:crypto";
11
11
 
12
12
  //#region src/signal/format.ts
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { J as logVerbose } from "./registry-DP24za6g.js";
3
- import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-C4C9637U.js";
2
+ import { J as logVerbose } from "./registry-CK4e9hn8.js";
3
+ import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-DQYI3Fr-.js";
4
4
  import { a as requireTargetKind, i as parseTargetPrefixes, n as ensureTargetId, r as parseTargetMention, t as buildMessagingTarget } from "./targets-CFovdgJI.js";
5
- import { n as loadConfig } from "./config-eEaJddXj.js";
6
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-ClbN9Pqy.js";
7
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DSHvnTLx.js";
8
- import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-CbFUkv_T.js";
5
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
6
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-BW5f05BR.js";
7
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
8
+ import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-DccrnjsE.js";
9
9
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
10
10
  import { WebClient } from "@slack/web-api";
11
11
 
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { I as resolveUserPath, M as normalizeE164 } from "./registry-DP24za6g.js";
3
- import { x as mediaKindFromMime } from "./image-ops-S8-8dAhx.js";
4
- import { n as loadConfig } from "./config-eEaJddXj.js";
5
- import { t as resolveIMessageAccount } from "./accounts-CJR8j_Kq.js";
6
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DSHvnTLx.js";
7
- import { t as convertMarkdownTables } from "./tables-BIWsCKXJ.js";
8
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-Co2diKdP.js";
2
+ import { I as resolveUserPath, M as normalizeE164 } from "./registry-CK4e9hn8.js";
3
+ import { x as mediaKindFromMime } from "./image-ops-CvJzsyvE.js";
4
+ import { n as loadConfig } from "./config-DRbjHIwD.js";
5
+ import { t as resolveIMessageAccount } from "./accounts-qtxJ-6em.js";
6
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-iMQQZu4Q.js";
7
+ import { t as convertMarkdownTables } from "./tables-DuZspiBu.js";
8
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-DjNDa3zn.js";
9
9
  import { spawn } from "node:child_process";
10
10
  import { createInterface } from "node:readline";
11
11
 
@@ -1,8 +1,8 @@
1
- import { E as ensureDir, G as danger, I as resolveUserPath, Q as success, ot as toPinoLikeLogger, rt as getChildLogger } from "./registry-DP24za6g.js";
2
- import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-CI6zQTJj.js";
3
- import { t as formatCliCommand } from "./command-format-UKHV-j0K.js";
4
- import { A as VERSION } from "./config-eEaJddXj.js";
5
- import fsSync from "node:fs";
1
+ import { E as ensureDir, G as danger, I as resolveUserPath, Q as success, ot as toPinoLikeLogger, rt as getChildLogger } from "./registry-CK4e9hn8.js";
2
+ import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-tNElYrCH.js";
3
+ import { t as formatCliCommand } from "./command-format-BaxDnULz.js";
4
+ import { A as VERSION } from "./config-DRbjHIwD.js";
5
+ import fs from "node:fs";
6
6
  import { randomUUID } from "node:crypto";
7
7
  import { DisconnectReason, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, makeWASocket, useMultiFileAuthState } from "@whiskeysockets/baileys";
8
8
  import qrcode from "qrcode-terminal";
@@ -21,16 +21,16 @@ async function safeSaveCreds(authDir, saveCreds, logger) {
21
21
  const raw = readCredsJsonRaw(credsPath);
22
22
  if (raw) try {
23
23
  JSON.parse(raw);
24
- fsSync.copyFileSync(credsPath, backupPath);
24
+ fs.copyFileSync(credsPath, backupPath);
25
25
  try {
26
- fsSync.chmodSync(backupPath, 384);
26
+ fs.chmodSync(backupPath, 384);
27
27
  } catch {}
28
28
  } catch {}
29
29
  } catch {}
30
30
  try {
31
31
  await Promise.resolve(saveCreds());
32
32
  try {
33
- fsSync.chmodSync(resolveWebCredsPath(authDir), 384);
33
+ fs.chmodSync(resolveWebCredsPath(authDir), 384);
34
34
  } catch {}
35
35
  } catch (err) {
36
36
  logger.warn({ error: String(err) }, "failed saving WhatsApp creds");
@@ -1,14 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-CySxpNhH.js";
3
- import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-DP24za6g.js";
4
- import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-Bw1Ed8W9.js";
5
- import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
6
- import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-o5WVqM4V.js";
7
- import { i as listChatCommands } from "./commands-registry-VSmULp-g.js";
2
+ import { s as resolveStateDir } from "./paths-Cce4PUkG.js";
3
+ import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-CK4e9hn8.js";
4
+ import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-BxoUQqgM.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
6
+ import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-BFekKL7i.js";
7
+ import { i as listChatCommands } from "./commands-registry-D7CTCQPm.js";
8
8
  import fs from "node:fs/promises";
9
9
  import os from "node:os";
10
10
  import path from "node:path";
11
- import fsSync from "node:fs";
11
+ import fs$1 from "node:fs";
12
12
  import { randomUUID } from "node:crypto";
13
13
  import chokidar from "chokidar";
14
14
 
@@ -283,8 +283,8 @@ function listSkillCommandsForAgents(params) {
283
283
  const visitedDirs = /* @__PURE__ */ new Set();
284
284
  for (const agentId of agentIds) {
285
285
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, agentId);
286
- if (!fsSync.existsSync(workspaceDir)) continue;
287
- const canonicalDir = fsSync.realpathSync(workspaceDir);
286
+ if (!fs$1.existsSync(workspaceDir)) continue;
287
+ const canonicalDir = fs$1.realpathSync(workspaceDir);
288
288
  if (visitedDirs.has(canonicalDir)) continue;
289
289
  visitedDirs.add(canonicalDir);
290
290
  const commands = buildWorkspaceSkillCommandSpecs(workspaceDir, {
@@ -1,13 +1,13 @@
1
- import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-DP24za6g.js";
2
- import { f as normalizeSkillFilter } from "./agent-scope-Bw1Ed8W9.js";
3
- import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
4
- import { h as resolveSymiPackageRootSync } from "./workspace-CbvamIU6.js";
5
- import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-CneMHk0N.js";
6
- import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-DPlG6yha.js";
1
+ import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-CK4e9hn8.js";
2
+ import { f as normalizeSkillFilter } from "./agent-scope-BxoUQqgM.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
4
+ import { h as resolveSymiPackageRootSync } from "./workspace-wAaHI8-5.js";
5
+ import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-D0IQ3WuX.js";
6
+ import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-C_bv_0P8.js";
7
7
  import fs from "node:fs/promises";
8
8
  import os from "node:os";
9
9
  import path from "node:path";
10
- import fsSync from "node:fs";
10
+ import fs$1 from "node:fs";
11
11
  import { fileURLToPath } from "node:url";
12
12
  import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
13
13
 
@@ -424,13 +424,13 @@ function shortPath(value) {
424
424
  //#region src/agents/skills/bundled-dir.ts
425
425
  function looksLikeSkillsDir(dir) {
426
426
  try {
427
- const entries = fsSync.readdirSync(dir, { withFileTypes: true });
427
+ const entries = fs$1.readdirSync(dir, { withFileTypes: true });
428
428
  for (const entry of entries) {
429
429
  if (entry.name.startsWith(".")) continue;
430
430
  const fullPath = path.join(dir, entry.name);
431
431
  if (entry.isFile() && entry.name.endsWith(".md")) return true;
432
432
  if (entry.isDirectory()) {
433
- if (fsSync.existsSync(path.join(fullPath, "SKILL.md"))) return true;
433
+ if (fs$1.existsSync(path.join(fullPath, "SKILL.md"))) return true;
434
434
  }
435
435
  }
436
436
  } catch {
@@ -445,7 +445,7 @@ function resolveBundledSkillsDir(opts = {}) {
445
445
  const execPath = opts.execPath ?? process.execPath;
446
446
  const execDir = path.dirname(execPath);
447
447
  const sibling = path.join(execDir, "skills");
448
- if (fsSync.existsSync(sibling)) return sibling;
448
+ if (fs$1.existsSync(sibling)) return sibling;
449
449
  } catch {}
450
450
  try {
451
451
  const moduleUrl = opts.moduleUrl ?? import.meta.url;
@@ -501,7 +501,7 @@ function resolvePluginSkillDirs(params) {
501
501
  const trimmed = raw.trim();
502
502
  if (!trimmed) continue;
503
503
  const candidate = path.resolve(record.rootDir, trimmed);
504
- if (!fsSync.existsSync(candidate)) {
504
+ if (!fs$1.existsSync(candidate)) {
505
505
  log.warn(`plugin skill path not found (${record.id}): ${candidate}`);
506
506
  continue;
507
507
  }
@@ -528,7 +528,7 @@ async function serializeByKey(key, task) {
528
528
 
529
529
  //#endregion
530
530
  //#region src/agents/skills/workspace.ts
531
- const fsp = fsSync.promises;
531
+ const fsp = fs$1.promises;
532
532
  const skillsLogger = createSubsystemLogger("skills");
533
533
  const skillCommandDebugOnce = /* @__PURE__ */ new Set();
534
534
  /**
@@ -605,7 +605,7 @@ function resolveSkillsLimits(config) {
605
605
  }
606
606
  function listChildDirectories(dir) {
607
607
  try {
608
- const entries = fsSync.readdirSync(dir, { withFileTypes: true });
608
+ const entries = fs$1.readdirSync(dir, { withFileTypes: true });
609
609
  const dirs = [];
610
610
  for (const entry of entries) {
611
611
  if (entry.name.startsWith(".")) continue;
@@ -616,7 +616,7 @@ function listChildDirectories(dir) {
616
616
  continue;
617
617
  }
618
618
  if (entry.isSymbolicLink()) try {
619
- if (fsSync.statSync(fullPath).isDirectory()) dirs.push(entry.name);
619
+ if (fs$1.statSync(fullPath).isDirectory()) dirs.push(entry.name);
620
620
  } catch {}
621
621
  }
622
622
  return dirs;
@@ -627,7 +627,7 @@ function listChildDirectories(dir) {
627
627
  function resolveNestedSkillsRoot(dir, opts) {
628
628
  const nested = path.join(dir, "skills");
629
629
  try {
630
- if (!fsSync.existsSync(nested) || !fsSync.statSync(nested).isDirectory()) return { baseDir: dir };
630
+ if (!fs$1.existsSync(nested) || !fs$1.statSync(nested).isDirectory()) return { baseDir: dir };
631
631
  } catch {
632
632
  return { baseDir: dir };
633
633
  }
@@ -636,7 +636,7 @@ function resolveNestedSkillsRoot(dir, opts) {
636
636
  const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
637
637
  for (const name of toScan) {
638
638
  const skillMd = path.join(nested, name, "SKILL.md");
639
- if (fsSync.existsSync(skillMd)) return {
639
+ if (fs$1.existsSync(skillMd)) return {
640
640
  baseDir: nested,
641
641
  note: `Detected nested skills root at ${nested}`
642
642
  };
@@ -656,9 +656,9 @@ function loadSkillEntries(workspaceDir, opts) {
656
656
  const loadSkills = (params) => {
657
657
  const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
658
658
  const rootSkillMd = path.join(baseDir, "SKILL.md");
659
- if (fsSync.existsSync(rootSkillMd)) {
659
+ if (fs$1.existsSync(rootSkillMd)) {
660
660
  try {
661
- const size = fsSync.statSync(rootSkillMd).size;
661
+ const size = fs$1.statSync(rootSkillMd).size;
662
662
  if (size > limits.maxSkillFileBytes) {
663
663
  skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
664
664
  dir: baseDir,
@@ -697,9 +697,9 @@ function loadSkillEntries(workspaceDir, opts) {
697
697
  for (const name of limitedChildren) {
698
698
  const skillDir = path.join(baseDir, name);
699
699
  const skillMd = path.join(skillDir, "SKILL.md");
700
- if (!fsSync.existsSync(skillMd)) continue;
700
+ if (!fs$1.existsSync(skillMd)) continue;
701
701
  try {
702
- const size = fsSync.statSync(skillMd).size;
702
+ const size = fs$1.statSync(skillMd).size;
703
703
  if (size > limits.maxSkillFileBytes) {
704
704
  skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
705
705
  skill: name,
@@ -767,7 +767,7 @@ function loadSkillEntries(workspaceDir, opts) {
767
767
  return Array.from(merged.values()).map((skill) => {
768
768
  let frontmatter = {};
769
769
  try {
770
- frontmatter = parseFrontmatter(fsSync.readFileSync(skill.filePath, "utf-8"));
770
+ frontmatter = parseFrontmatter(fs$1.readFileSync(skill.filePath, "utf-8"));
771
771
  } catch {}
772
772
  return {
773
773
  skill,
@@ -1,10 +1,10 @@
1
- import { t as createSubsystemLogger } from "./subsystem-DgpxyDQ_.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-Bs9YvKLa.js";
2
2
  import { t as redactSensitiveText } from "./redact-jSxx6Ep2.js";
3
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-Cb87-LzP.js";
3
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-DLyHUt31.js";
4
4
  import { createRequire } from "node:module";
5
5
  import fs from "node:fs/promises";
6
6
  import path from "node:path";
7
- import fsSync from "node:fs";
7
+ import fs$1 from "node:fs";
8
8
  import crypto from "node:crypto";
9
9
 
10
10
  //#region src/memory/fs-utils.ts
@@ -71,7 +71,7 @@ async function runTasksWithConcurrency(params) {
71
71
  //#region src/memory/internal.ts
72
72
  function ensureDir(dir) {
73
73
  try {
74
- fsSync.mkdirSync(dir, { recursive: true });
74
+ fs$1.mkdirSync(dir, { recursive: true });
75
75
  } catch {}
76
76
  return dir;
77
77
  }
@@ -1,5 +1,5 @@
1
- import { P as resolveConfigDir } from "./registry-DP24za6g.js";
2
- import { d as detectMime, f as extensionForMime } from "./image-ops-S8-8dAhx.js";
1
+ import { P as resolveConfigDir } from "./registry-CK4e9hn8.js";
2
+ import { d as detectMime, f as extensionForMime } from "./image-ops-CvJzsyvE.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import crypto from "node:crypto";
@@ -1,4 +1,4 @@
1
- import { at as isFileLogLevelEnabled, ct as levelToMinLevel, lt as normalizeLogLevel, n as CHAT_CHANNEL_ORDER, q as isVerbose, rt as getChildLogger, st as loggingState, ut as readLoggingConfig } from "./registry-DP24za6g.js";
1
+ import { at as isFileLogLevelEnabled, ct as levelToMinLevel, lt as normalizeLogLevel, n as CHAT_CHANNEL_ORDER, q as isVerbose, rt as getChildLogger, st as loggingState, ut as readLoggingConfig } from "./registry-CK4e9hn8.js";
2
2
  import { Chalk } from "chalk";
3
3
 
4
4
  //#region src/terminal/progress-line.ts
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-CbFUkv_T.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-DccrnjsE.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
3
3
 
4
4
  //#region src/markdown/tables.ts