@lawpath-tech/openclaw 2026.2.21-29 → 2026.2.21-30

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 (84) hide show
  1. package/dist/{accounts-CQT5u65w.js → accounts-CJEDkyd7.js} +1 -1
  2. package/dist/{accounts-DFrH9IVU.js → accounts-CaJg9v7D.js} +1 -1
  3. package/dist/{accounts-C8m4ADkw.js → accounts-DQo5uGA3.js} +14 -14
  4. package/dist/{active-listener-BKTctYlH.js → active-listener-Bhmh-BBe.js} +1 -1
  5. package/dist/{agent-scope-DSUeV7-g.js → agent-scope-DiO1KimT.js} +3 -3
  6. package/dist/{audio-preflight-CODznzqu.js → audio-preflight-Da7vejCH.js} +4 -4
  7. package/dist/{audio-preflight-CLqoZYgI.js → audio-preflight-z9oahneY.js} +29 -29
  8. package/dist/{bindings-BKEEBdsb.js → bindings-CEJk9Gww.js} +2 -2
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +53 -53
  11. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  12. package/dist/bundled/command-logger/handler.js +1 -1
  13. package/dist/bundled/session-memory/handler.js +53 -53
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-activity-BgsTqLau.js → channel-activity-pOw1s-fe.js} +1 -1
  16. package/dist/{chrome-Bqbv_ZSj.js → chrome-B3ZZfPkj.js} +13 -13
  17. package/dist/{chrome-lRUqqgSD.js → chrome-CZuniMYN.js} +7 -7
  18. package/dist/{chunk-fZrBDWYg.js → chunk-BkGjWi6P.js} +1 -1
  19. package/dist/{command-format-BOHIfoCX.js → command-format-CM0AxuCk.js} +1 -1
  20. package/dist/{commands-registry-BzlB3qtZ.js → commands-registry-C0QzohKU.js} +4 -4
  21. package/dist/{config-Du_-inxH.js → config-7ClJ9IDt.js} +12 -12
  22. package/dist/{deliver-B2d2N8OJ.js → deliver-0ThKlzQo.js} +1 -1
  23. package/dist/{deliver-CKH_FhS0.js → deliver-CrJoiqws.js} +20 -20
  24. package/dist/{diagnostic-DriDPU6M.js → diagnostic-DTfVTKJM.js} +1 -1
  25. package/dist/extensionAPI.js +6 -6
  26. package/dist/{frontmatter-CdkBcBAo.js → frontmatter-Dab6NVCF.js} +2 -2
  27. package/dist/{gemini-auth-A2JaRMHH.js → gemini-auth-CnEqRhSo.js} +1 -1
  28. package/dist/{github-copilot-token-Dgb9dAHW.js → github-copilot-token-DAycnoAs.js} +7 -7
  29. package/dist/{image-CxPjVob-.js → image-2bonNMVD.js} +4 -4
  30. package/dist/{image--DDZnw-F.js → image-88q3KE-C.js} +1 -1
  31. package/dist/{image-ops-BGmpOcey.js → image-ops-D-bh1BTN.js} +1 -1
  32. package/dist/{ir-DJPm0a4k.js → ir-j1Xb0PNv.js} +4 -4
  33. package/dist/llm-slug-generator.js +53 -53
  34. package/dist/{local-roots-JqlMsAYY.js → local-roots-Dx32AY60.js} +5 -5
  35. package/dist/{login-DXtAIVXy.js → login-CLQskGt7.js} +7 -7
  36. package/dist/{login-qr-D0A3WDBN.js → login-qr-CxZVehrh.js} +12 -12
  37. package/dist/{manager-D7SRrHxT.js → manager-C6KdjXEH.js} +13 -13
  38. package/dist/{manifest-registry-Dhk4A5vb.js → manifest-registry-D31TP66o.js} +19 -19
  39. package/dist/{markdown-tables-DpVJE0eA.js → markdown-tables-BOmw5zkp.js} +1 -1
  40. package/dist/{message-channel-CHYSjmbr.js → message-channel-BckS8bQ9.js} +1 -1
  41. package/dist/{model-auth-vtNH8C4P.js → model-auth-C-Vzzybi.js} +9 -9
  42. package/dist/{outbound-BWgFha97.js → outbound-Bk0PGZ1q.js} +7 -7
  43. package/dist/{outbound-attachment-B8WHzsCX.js → outbound-attachment-CHLSsIj_.js} +2 -2
  44. package/dist/{paths-CyR9Pa1R.js → paths-CkkDESQ2.js} +5 -5
  45. package/dist/{paths-BEAbheM8.js → paths-Cv2Q0cX2.js} +1 -1
  46. package/dist/{pi-auth-json-BiwfFswL.js → pi-auth-json-DzcwV2uo.js} +8 -8
  47. package/dist/{pi-embedded-Dz24QZz9.js → pi-embedded-BFPKtgT3.js} +158 -158
  48. package/dist/{pi-embedded-C_B8_quB.js → pi-embedded-ZvazjIyF.js} +16 -16
  49. package/dist/{pi-embedded-helpers-Cd0S0WfR.js → pi-embedded-helpers-B0Kht0I2.js} +4 -4
  50. package/dist/{pi-embedded-helpers-CSE0v99A.js → pi-embedded-helpers-eDaF2UhI.js} +52 -52
  51. package/dist/{plugins-DIrNa311.js → plugins-Bf_qBfZ7.js} +9 -9
  52. package/dist/{pw-ai-D-_aGzdQ.js → pw-ai-B3EislzC.js} +11 -11
  53. package/dist/{pw-ai-C-kqYO4L.js → pw-ai-S3cpSYOy.js} +1 -1
  54. package/dist/{qmd-manager-DePh-PT0.js → qmd-manager-DVrv2Huu.js} +7 -7
  55. package/dist/{registry-DpeZG5fo.js → registry-wimgwqAA.js} +18 -18
  56. package/dist/{replies-CSVWkVda.js → replies-DuQ9MtQM.js} +3 -3
  57. package/dist/{reply-prefix-DZrS3Kf7.js → reply-prefix-B_1VtLm5.js} +1 -1
  58. package/dist/{resolve-route-1ar2IrQt.js → resolve-route-CSE9DZsB.js} +4 -4
  59. package/dist/{retry-Bdu4_ZcT.js → retry-DwLEH9x4.js} +1 -1
  60. package/dist/{runner-D1eXJZ8T.js → runner-BeO6HoPY.js} +9 -9
  61. package/dist/{runner-Dq-qfrq7.js → runner-a43IsYad.js} +1 -1
  62. package/dist/{send-DPVf5tQ4.js → send-BCt1G0xY.js} +6 -6
  63. package/dist/{send-BeWYOs1x.js → send-CEP4RX_l.js} +7 -7
  64. package/dist/{send-Byt_wJDK.js → send-CMeyW_Bu.js} +6 -6
  65. package/dist/{send-CWtaJF1G.js → send-CdIaqNP6.js} +18 -18
  66. package/dist/{send-BEFzSOoD.js → send-DrfA4RxA.js} +10 -10
  67. package/dist/{session-Bnp7PC7f.js → session-CQ9JJgSo.js} +8 -8
  68. package/dist/{skill-commands-CqyVDpti.js → skill-commands-CwFNOYqC.js} +9 -9
  69. package/dist/{skills-DSZuhFx9.js → skills-C8xf0p1B.js} +21 -21
  70. package/dist/{sqlite-C3XxSzBN.js → sqlite-B6SD9PTM.js} +4 -4
  71. package/dist/{store-BrNiRjgB.js → store-VFVAfYgh.js} +2 -2
  72. package/dist/{subsystem-BF9jT_Nw.js → subsystem-BEdh_1O5.js} +1 -1
  73. package/dist/{tables-C3clT_iA.js → tables-QNO5uMcm.js} +1 -1
  74. package/dist/{target-errors-ChHV8dPI.js → target-errors-DD2466Y6.js} +2 -2
  75. package/dist/{thinking-Dg8vKjw_.js → thinking-BZFf1juV.js} +5 -5
  76. package/dist/{tokens-B-c56SkM.js → tokens-GCiqN5mi.js} +1 -1
  77. package/dist/{tool-images-C1rdDr34.js → tool-images-D0sBSASn.js} +2 -2
  78. package/dist/{tool-loop-detection-Bu3OGskw.js → tool-loop-detection-BPAeTbUj.js} +3 -3
  79. package/dist/{web-DiYh3u92.js → web-CVSol55V.js} +6 -6
  80. package/dist/{web-Y49Dumye.js → web-CfqjWSEf.js} +57 -57
  81. package/dist/{whatsapp-actions-DFZYzkBp.js → whatsapp-actions-kX73ghOz.js} +23 -23
  82. package/dist/{workspace-DYx5Dxtw.js → workspace-CH9k4Qgz.js} +6 -6
  83. package/extensions/voice-call/src/providers/realtime-session.ts +1 -32
  84. 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-CyR9Pa1R.js";
1
+ import { a as resolveOAuthDir, c as expandHomePrefix, l as resolveEffectiveHomeDir, n as resolveConfigPath, u as resolveRequiredHomeDir } from "./paths-CkkDESQ2.js";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import fs from "node:fs";
4
+ import fsSync 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 resolvePreferredOpenClawTmpDir(options = {}) {
15
- const accessSync = options.accessSync ?? fs.accessSync;
16
- const lstatSync = options.lstatSync ?? fs.lstatSync;
17
- const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
15
+ const accessSync = options.accessSync ?? fsSync.accessSync;
16
+ const lstatSync = options.lstatSync ?? fsSync.lstatSync;
17
+ const mkdirSync = options.mkdirSync ?? fsSync.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 resolvePreferredOpenClawTmpDir(options = {}) {
38
38
  try {
39
39
  const preferred = lstatSync(POSIX_OPENCLAW_TMP_DIR);
40
40
  if (!preferred.isDirectory() || preferred.isSymbolicLink()) return fallback();
41
- accessSync(POSIX_OPENCLAW_TMP_DIR, fs.constants.W_OK | fs.constants.X_OK);
41
+ accessSync(POSIX_OPENCLAW_TMP_DIR, fsSync.constants.W_OK | fsSync.constants.X_OK);
42
42
  if (!isSecureDirForUser(preferred)) return fallback();
43
43
  return POSIX_OPENCLAW_TMP_DIR;
44
44
  } catch (err) {
45
45
  if (!isNodeErrorWithCode(err, "ENOENT")) return fallback();
46
46
  }
47
47
  try {
48
- accessSync("/tmp", fs.constants.W_OK | fs.constants.X_OK);
48
+ accessSync("/tmp", fsSync.constants.W_OK | fsSync.constants.X_OK);
49
49
  mkdirSync(POSIX_OPENCLAW_TMP_DIR, {
50
50
  recursive: true,
51
51
  mode: 448
@@ -68,8 +68,8 @@ function resolvePreferredOpenClawTmpDir(options = {}) {
68
68
  function readLoggingConfig() {
69
69
  const configPath = resolveConfigPath();
70
70
  try {
71
- if (!fs.existsSync(configPath)) return;
72
- const raw = fs.readFileSync(configPath, "utf-8");
71
+ if (!fsSync.existsSync(configPath)) return;
72
+ const raw = fsSync.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;
@@ -174,7 +174,7 @@ function isFileLogLevelEnabled(level) {
174
174
  return levelToMinLevel(level) <= levelToMinLevel(settings.level);
175
175
  }
176
176
  function buildLogger(settings) {
177
- fs.mkdirSync(path.dirname(settings.file), { recursive: true });
177
+ fsSync.mkdirSync(path.dirname(settings.file), { recursive: true });
178
178
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
179
179
  let currentFileBytes = getCurrentLogFileBytes(settings.file);
180
180
  let warnedAboutSizeCap = false;
@@ -218,14 +218,14 @@ function resolveMaxLogFileBytes(raw) {
218
218
  }
219
219
  function getCurrentLogFileBytes(file) {
220
220
  try {
221
- return fs.statSync(file).size;
221
+ return fsSync.statSync(file).size;
222
222
  } catch {
223
223
  return 0;
224
224
  }
225
225
  }
226
226
  function appendLogLine(file, line) {
227
227
  try {
228
- fs.appendFileSync(file, line, { encoding: "utf8" });
228
+ fsSync.appendFileSync(file, line, { encoding: "utf8" });
229
229
  return true;
230
230
  } catch {
231
231
  return false;
@@ -277,14 +277,14 @@ function isRollingPath(file) {
277
277
  }
278
278
  function pruneOldRollingLogs(dir) {
279
279
  try {
280
- const entries = fs.readdirSync(dir, { withFileTypes: true });
280
+ const entries = fsSync.readdirSync(dir, { withFileTypes: true });
281
281
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
282
282
  for (const entry of entries) {
283
283
  if (!entry.isFile()) continue;
284
284
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
285
285
  const fullPath = path.join(dir, entry.name);
286
286
  try {
287
- if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
287
+ if (fsSync.statSync(fullPath).mtimeMs < cutoff) fsSync.rmSync(fullPath, { force: true });
288
288
  } catch {}
289
289
  }
290
290
  } catch {}
@@ -365,14 +365,14 @@ function isPlainObject(value) {
365
365
  //#endregion
366
366
  //#region src/utils.ts
367
367
  async function ensureDir(dir) {
368
- await fs.promises.mkdir(dir, { recursive: true });
368
+ await fsSync.promises.mkdir(dir, { recursive: true });
369
369
  }
370
370
  /**
371
371
  * Check if a file or directory exists at the given path.
372
372
  */
373
373
  async function pathExists(targetPath) {
374
374
  try {
375
- await fs.promises.access(targetPath);
375
+ await fsSync.promises.access(targetPath);
376
376
  return true;
377
377
  } catch {
378
378
  return false;
@@ -455,7 +455,7 @@ function readLidReverseMapping(lid, opts) {
455
455
  for (const dir of mappingDirs) {
456
456
  const mappingPath = path.join(dir, mappingFilename);
457
457
  try {
458
- const data = fs.readFileSync(mappingPath, "utf8");
458
+ const data = fsSync.readFileSync(mappingPath, "utf8");
459
459
  const phone = JSON.parse(data);
460
460
  if (phone === null || phone === void 0) continue;
461
461
  return normalizeE164(String(phone));
@@ -539,7 +539,7 @@ function resolveConfigDir(env = process.env, homedir = os.homedir) {
539
539
  if (override) return resolveUserPath(override);
540
540
  const newDir = path.join(resolveRequiredHomeDir(env, homedir), ".openclaw");
541
541
  try {
542
- if (fs.existsSync(newDir)) return newDir;
542
+ if (fsSync.existsSync(newDir)) return newDir;
543
543
  } catch {}
544
544
  return newDir;
545
545
  }
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-B-c56SkM.js";
3
- import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-Byt_wJDK.js";
4
- import { i as chunkMarkdownTextWithMode } from "./chunk-fZrBDWYg.js";
2
+ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-GCiqN5mi.js";
3
+ import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-CMeyW_Bu.js";
4
+ import { i as chunkMarkdownTextWithMode } from "./chunk-BkGjWi6P.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-DSUeV7-g.js";
2
+ import { n as resolveAgentConfig } from "./agent-scope-DiO1KimT.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-DpeZG5fo.js";
4
- import { c as resolveDefaultAgentId } from "./agent-scope-DSUeV7-g.js";
5
- import { y as logDebug } from "./workspace-DYx5Dxtw.js";
3
+ import { Z as shouldLogVerbose } from "./registry-wimgwqAA.js";
4
+ import { c as resolveDefaultAgentId } from "./agent-scope-DiO1KimT.js";
5
+ import { y as logDebug } from "./workspace-CH9k4Qgz.js";
6
6
  import { t as normalizeChatType } from "./chat-type-C_KiWNAH.js";
7
- import { t as listBindings } from "./bindings-BKEEBdsb.js";
7
+ import { t as listBindings } from "./bindings-CEJk9Gww.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-DpeZG5fo.js";
1
+ import { B as sleep } from "./registry-wimgwqAA.js";
2
2
 
3
3
  //#region src/infra/retry.ts
4
4
  const DEFAULT_RETRY_CONFIG = {
@@ -1,13 +1,13 @@
1
- import { J as logVerbose, Z as shouldLogVerbose } from "./registry-DpeZG5fo.js";
2
- import { _ as runExec } from "./workspace-DYx5Dxtw.js";
1
+ import { J as logVerbose, Z as shouldLogVerbose } from "./registry-wimgwqAA.js";
2
+ import { _ as runExec } from "./workspace-CH9k4Qgz.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-BGmpOcey.js";
5
- import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveOpenClawAgentDir } from "./model-auth-vtNH8C4P.js";
6
- import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-Du_-inxH.js";
7
- import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-CxPjVob-.js";
8
- import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-A2JaRMHH.js";
4
+ import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-D-bh1BTN.js";
5
+ import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveOpenClawAgentDir } from "./model-auth-C-Vzzybi.js";
6
+ import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-7ClJ9IDt.js";
7
+ import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-2bonNMVD.js";
8
+ import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-CnEqRhSo.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-JqlMsAYY.js";
10
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-Dx32AY60.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 ensureOpenClawModelsJson(params?.config ?? loadConfig());
885
- await (await import("./pi-auth-json-BiwfFswL.js")).ensurePiAuthJsonFromAuthProfiles(resolveOpenClawAgentDir());
885
+ await (await import("./pi-auth-json-DzcwV2uo.js")).ensurePiAuthJsonFromAuthProfiles(resolveOpenClawAgentDir());
886
886
  const piSdk = await importPiSdk();
887
887
  const agentDir = resolveOpenClawAgentDir();
888
888
  const { join } = await import("node:path");
@@ -4,7 +4,7 @@ import { G as resolveOpenClawAgentDir, T as resolveApiKeyForProvider, c as norma
4
4
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
5
5
  import { _ as kindFromMime, d as detectMime, h as isAudioFileName, p as getFileExtension } from "./image-ops-BfqdVNxh.js";
6
6
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-KL7847B1.js";
7
- import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image--DDZnw-F.js";
7
+ import { S as ensureOpenClawModelsJson, t as describeImageWithModel } from "./image-88q3KE-C.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-BF6ZCNOV.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-BheTNyes.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-C4BHj9W8.js";
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { n as resolveSignalAccount } from "./accounts-CQT5u65w.js";
3
- import { x as mediaKindFromMime } from "./image-ops-BGmpOcey.js";
4
- import { n as loadConfig } from "./config-Du_-inxH.js";
5
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DpVJE0eA.js";
2
+ import { n as resolveSignalAccount } from "./accounts-CJEDkyd7.js";
3
+ import { x as mediaKindFromMime } from "./image-ops-D-bh1BTN.js";
4
+ import { n as loadConfig } from "./config-7ClJ9IDt.js";
5
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BOmw5zkp.js";
6
6
  import { n as fetchWithTimeout } from "./fetch-timeout-DL3f_O53.js";
7
- import { n as markdownToIR, t as chunkMarkdownIR } from "./ir-DJPm0a4k.js";
7
+ import { n as markdownToIR, t as chunkMarkdownIR } from "./ir-j1Xb0PNv.js";
8
8
  import { t as resolveFetch } from "./fetch-DtI0mtzx.js";
9
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-B8WHzsCX.js";
9
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-CHLSsIj_.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 { I as resolveUserPath, M as normalizeE164 } from "./registry-DpeZG5fo.js";
3
- import { x as mediaKindFromMime } from "./image-ops-BGmpOcey.js";
4
- import { n as loadConfig } from "./config-Du_-inxH.js";
5
- import { t as resolveIMessageAccount } from "./accounts-DFrH9IVU.js";
6
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DpVJE0eA.js";
7
- import { t as convertMarkdownTables } from "./tables-C3clT_iA.js";
8
- import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-B8WHzsCX.js";
2
+ import { I as resolveUserPath, M as normalizeE164 } from "./registry-wimgwqAA.js";
3
+ import { x as mediaKindFromMime } from "./image-ops-D-bh1BTN.js";
4
+ import { n as loadConfig } from "./config-7ClJ9IDt.js";
5
+ import { t as resolveIMessageAccount } from "./accounts-CaJg9v7D.js";
6
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BOmw5zkp.js";
7
+ import { t as convertMarkdownTables } from "./tables-QNO5uMcm.js";
8
+ import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-CHLSsIj_.js";
9
9
  import { spawn } from "node:child_process";
10
10
  import { createInterface } from "node:readline";
11
11
 
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { J as logVerbose } from "./registry-DpeZG5fo.js";
3
- import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-DIrNa311.js";
2
+ import { J as logVerbose } from "./registry-wimgwqAA.js";
3
+ import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-Bf_qBfZ7.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-Du_-inxH.js";
6
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-fZrBDWYg.js";
7
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DpVJE0eA.js";
8
- import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-DJPm0a4k.js";
5
+ import { n as loadConfig } from "./config-7ClJ9IDt.js";
6
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-BkGjWi6P.js";
7
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BOmw5zkp.js";
8
+ import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-j1Xb0PNv.js";
9
9
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
10
10
  import { WebClient } from "@slack/web-api";
11
11
 
@@ -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-CyR9Pa1R.js";
3
- import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-DpeZG5fo.js";
4
- import { t as createSubsystemLogger } from "./subsystem-BF9jT_Nw.js";
5
- import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DIrNa311.js";
6
- import { r as isTruthyEnvValue } from "./command-format-BOHIfoCX.js";
7
- import { g as isGifMedia, p as getFileExtension, v as normalizeMimeType, x as mediaKindFromMime } from "./image-ops-BGmpOcey.js";
8
- import { b as withFileLock$1 } from "./model-auth-vtNH8C4P.js";
9
- import { n as loadConfig } from "./config-Du_-inxH.js";
2
+ import { a as resolveOAuthDir, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CkkDESQ2.js";
3
+ import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-wimgwqAA.js";
4
+ import { t as createSubsystemLogger } from "./subsystem-BEdh_1O5.js";
5
+ import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-Bf_qBfZ7.js";
6
+ import { r as isTruthyEnvValue } from "./command-format-CM0AxuCk.js";
7
+ import { g as isGifMedia, p as getFileExtension, v as normalizeMimeType, x as mediaKindFromMime } from "./image-ops-D-bh1BTN.js";
8
+ import { b as withFileLock$1 } from "./model-auth-C-Vzzybi.js";
9
+ import { n as loadConfig } from "./config-7ClJ9IDt.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-DpVJE0eA.js";
13
- import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-DJPm0a4k.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BOmw5zkp.js";
13
+ import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-j1Xb0PNv.js";
14
14
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
15
15
  import { t as resolveFetch } from "./fetch-DtI0mtzx.js";
16
- import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-BgsTqLau.js";
16
+ import { i as createTelegramRetryRunner, n as recordChannelActivity } from "./channel-activity-pOw1s-fe.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 fs from "node:fs";
21
+ import fsSync 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 fs.promises.readFile(filePath, "utf-8"));
134
+ const parsed = safeParseJson(await fsSync.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 fs.promises.mkdir(dir, {
156
+ await fsSync.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 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);
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);
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 fs.promises.access(filePath);
224
+ await fsSync.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 resolvePreferredOpenClawTmpDir } from "./registry-DpeZG5fo.js";
3
- import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-DIrNa311.js";
2
+ import { dt as resolvePreferredOpenClawTmpDir } from "./registry-wimgwqAA.js";
3
+ import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-Bf_qBfZ7.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-BGmpOcey.js";
6
- import { n as loadConfig } from "./config-Du_-inxH.js";
7
- import { n as retryAsync, t as resolveRetryConfig } from "./retry-Bdu4_ZcT.js";
8
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-fZrBDWYg.js";
9
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DpVJE0eA.js";
10
- import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-DJPm0a4k.js";
5
+ import { b as maxBytesForKind, f as extensionForMime } from "./image-ops-D-bh1BTN.js";
6
+ import { n as loadConfig } from "./config-7ClJ9IDt.js";
7
+ import { n as retryAsync, t as resolveRetryConfig } from "./retry-DwLEH9x4.js";
8
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-BkGjWi6P.js";
9
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BOmw5zkp.js";
10
+ import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-j1Xb0PNv.js";
11
11
  import { t as resolveFetch } from "./fetch-DtI0mtzx.js";
12
- import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-BgsTqLau.js";
12
+ import { n as recordChannelActivity, r as createDiscordRetryRunner } from "./channel-activity-pOw1s-fe.js";
13
13
  import { n as normalizePollInput, t as normalizePollDurationHours } from "./polls-CCuCaqgv.js";
14
- import { t as convertMarkdownTables } from "./tables-C3clT_iA.js";
14
+ import { t as convertMarkdownTables } from "./tables-QNO5uMcm.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,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-DpeZG5fo.js";
2
- import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-C8m4ADkw.js";
3
- import { t as formatCliCommand } from "./command-format-BOHIfoCX.js";
4
- import { A as VERSION } from "./config-Du_-inxH.js";
5
- import fs 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-wimgwqAA.js";
2
+ import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-DQo5uGA3.js";
3
+ import { t as formatCliCommand } from "./command-format-CM0AxuCk.js";
4
+ import { A as VERSION } from "./config-7ClJ9IDt.js";
5
+ import fsSync 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
- fs.copyFileSync(credsPath, backupPath);
24
+ fsSync.copyFileSync(credsPath, backupPath);
25
25
  try {
26
- fs.chmodSync(backupPath, 384);
26
+ fsSync.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
- fs.chmodSync(resolveWebCredsPath(authDir), 384);
33
+ fsSync.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-CyR9Pa1R.js";
3
- import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-DpeZG5fo.js";
4
- import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-DSUeV7-g.js";
5
- import { t as createSubsystemLogger } from "./subsystem-BF9jT_Nw.js";
6
- import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-DSZuhFx9.js";
7
- import { i as listChatCommands } from "./commands-registry-BzlB3qtZ.js";
2
+ import { s as resolveStateDir } from "./paths-CkkDESQ2.js";
3
+ import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-wimgwqAA.js";
4
+ import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-DiO1KimT.js";
5
+ import { t as createSubsystemLogger } from "./subsystem-BEdh_1O5.js";
6
+ import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-C8xf0p1B.js";
7
+ import { i as listChatCommands } from "./commands-registry-C0QzohKU.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 fs$1 from "node:fs";
11
+ import fsSync 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 (!fs$1.existsSync(workspaceDir)) continue;
287
- const canonicalDir = fs$1.realpathSync(workspaceDir);
286
+ if (!fsSync.existsSync(workspaceDir)) continue;
287
+ const canonicalDir = fsSync.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-DpeZG5fo.js";
2
- import { f as normalizeSkillFilter } from "./agent-scope-DSUeV7-g.js";
3
- import { t as createSubsystemLogger } from "./subsystem-BF9jT_Nw.js";
4
- import { h as resolveOpenClawPackageRootSync } from "./workspace-DYx5Dxtw.js";
5
- import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-Dhk4A5vb.js";
6
- import { a as resolveOpenClawManifestBlock, c as resolveOpenClawManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseOpenClawManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveOpenClawManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveOpenClawManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-CdkBcBAo.js";
1
+ import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-wimgwqAA.js";
2
+ import { f as normalizeSkillFilter } from "./agent-scope-DiO1KimT.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-BEdh_1O5.js";
4
+ import { h as resolveOpenClawPackageRootSync } from "./workspace-CH9k4Qgz.js";
5
+ import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-D31TP66o.js";
6
+ import { a as resolveOpenClawManifestBlock, c as resolveOpenClawManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseOpenClawManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveOpenClawManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveOpenClawManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-Dab6NVCF.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 fs$1 from "node:fs";
10
+ import fsSync 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 = fs$1.readdirSync(dir, { withFileTypes: true });
427
+ const entries = fsSync.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 (fs$1.existsSync(path.join(fullPath, "SKILL.md"))) return true;
433
+ if (fsSync.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 (fs$1.existsSync(sibling)) return sibling;
448
+ if (fsSync.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 (!fs$1.existsSync(candidate)) {
504
+ if (!fsSync.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 = fs$1.promises;
531
+ const fsp = fsSync.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 = fs$1.readdirSync(dir, { withFileTypes: true });
608
+ const entries = fsSync.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 (fs$1.statSync(fullPath).isDirectory()) dirs.push(entry.name);
619
+ if (fsSync.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 (!fs$1.existsSync(nested) || !fs$1.statSync(nested).isDirectory()) return { baseDir: dir };
630
+ if (!fsSync.existsSync(nested) || !fsSync.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 (fs$1.existsSync(skillMd)) return {
639
+ if (fsSync.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 (fs$1.existsSync(rootSkillMd)) {
659
+ if (fsSync.existsSync(rootSkillMd)) {
660
660
  try {
661
- const size = fs$1.statSync(rootSkillMd).size;
661
+ const size = fsSync.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 (!fs$1.existsSync(skillMd)) continue;
700
+ if (!fsSync.existsSync(skillMd)) continue;
701
701
  try {
702
- const size = fs$1.statSync(skillMd).size;
702
+ const size = fsSync.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(fs$1.readFileSync(skill.filePath, "utf-8"));
770
+ frontmatter = parseFrontmatter(fsSync.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-BF9jT_Nw.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-BEdh_1O5.js";
2
2
  import { t as redactSensitiveText } from "./redact-jSxx6Ep2.js";
3
- import { o as resolveSessionTranscriptsDirForAgent } from "./paths-BEAbheM8.js";
3
+ import { o as resolveSessionTranscriptsDirForAgent } from "./paths-Cv2Q0cX2.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 fs$1 from "node:fs";
7
+ import fsSync 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
- fs$1.mkdirSync(dir, { recursive: true });
74
+ fsSync.mkdirSync(dir, { recursive: true });
75
75
  } catch {}
76
76
  return dir;
77
77
  }
@@ -1,5 +1,5 @@
1
- import { P as resolveConfigDir } from "./registry-DpeZG5fo.js";
2
- import { d as detectMime, f as extensionForMime } from "./image-ops-BGmpOcey.js";
1
+ import { P as resolveConfigDir } from "./registry-wimgwqAA.js";
2
+ import { d as detectMime, f as extensionForMime } from "./image-ops-D-bh1BTN.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-DpeZG5fo.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-wimgwqAA.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-DJPm0a4k.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-j1Xb0PNv.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-CDCvpfhh.js";
3
3
 
4
4
  //#region src/markdown/tables.ts