@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.
- package/dist/{accounts-ChTFYj8Q.js → accounts-CWktKM8a.js} +1 -1
- package/dist/{accounts-CJR8j_Kq.js → accounts-qtxJ-6em.js} +1 -1
- package/dist/{accounts-CI6zQTJj.js → accounts-tNElYrCH.js} +14 -14
- package/dist/{active-listener-D6sXIjAg.js → active-listener-C9r8ZB9m.js} +1 -1
- package/dist/{agent-scope-Bw1Ed8W9.js → agent-scope-BxoUQqgM.js} +3 -3
- package/dist/{audio-preflight-BkIfnmpi.js → audio-preflight-D02HwB-I.js} +29 -29
- package/dist/{bindings-BU2hsBd9.js → bindings-B7Ke6LJi.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +53 -53
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +53 -53
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-C9-gaquj.js → channel-activity-CsM_hJ_s.js} +1 -1
- package/dist/{chrome-CxSAp8x3.js → chrome-EyvdASWt.js} +13 -13
- package/dist/{chunk-ClbN9Pqy.js → chunk-BW5f05BR.js} +1 -1
- package/dist/{command-format-UKHV-j0K.js → command-format-BaxDnULz.js} +1 -1
- package/dist/{command-registry-DXt0PsFy.js → command-registry-CsDAPQfS.js} +4 -4
- package/dist/{commands-registry-VSmULp-g.js → commands-registry-D7CTCQPm.js} +4 -4
- package/dist/{completion-cli-BsSDzZNA.js → completion-cli-B_f5PMBc.js} +1 -1
- package/dist/{completion-cli-CPMOXTf2.js → completion-cli-CSdjFWHy.js} +2 -2
- package/dist/{config-eEaJddXj.js → config-DRbjHIwD.js} +12 -12
- package/dist/{deliver-BA7ZN3iM.js → deliver-D1ZN6-fl.js} +20 -20
- package/dist/{diagnostic-C3nsWaw3.js → diagnostic-CI0kRQkt.js} +1 -1
- package/dist/{doctor-completion-8qbLmeX0.js → doctor-completion-BWJvfjTC.js} +1 -1
- package/dist/{doctor-completion-Dnxn_-ov.js → doctor-completion-llX6EnGy.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{frontmatter-DPlG6yha.js → frontmatter-C_bv_0P8.js} +2 -2
- package/dist/{gateway-cli-XIsXoJZ3.js → gateway-cli-70k2-I4K.js} +12 -8
- package/dist/{gateway-cli-DKDpOBp-.js → gateway-cli-BApdH1bD.js} +12 -8
- package/dist/{gemini-auth-CF48hUR9.js → gemini-auth-CdSPHuLl.js} +1 -1
- package/dist/{github-copilot-token-DJqsJ2-r.js → github-copilot-token-C_qUP7p5.js} +7 -7
- package/dist/{image-BGmVDkkw.js → image-Cp3JDEBB.js} +4 -4
- package/dist/{image-ops-S8-8dAhx.js → image-ops-CvJzsyvE.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{ir-CbFUkv_T.js → ir-DccrnjsE.js} +4 -4
- package/dist/llm-slug-generator.js +53 -53
- package/dist/{local-roots-C7OCYACU.js → local-roots-DMwIh5cS.js} +5 -5
- package/dist/{login-B8uiUAnV.js → login-CwCoxapk.js} +7 -7
- package/dist/{login-qr-CIZk8uKX.js → login-qr-Batf3PT5.js} +12 -12
- package/dist/{manager-BoLr3xR_.js → manager-D_LwXbc6.js} +13 -13
- package/dist/{manifest-registry-CneMHk0N.js → manifest-registry-D0IQ3WuX.js} +19 -19
- package/dist/{markdown-tables-DSHvnTLx.js → markdown-tables-iMQQZu4Q.js} +1 -1
- package/dist/{message-channel-DbsRltF2.js → message-channel-Dz5lr5b0.js} +1 -1
- package/dist/{model-auth-CwOuTuXl.js → model-auth-DK43VicI.js} +9 -9
- package/dist/{onboard-CXOUIg28.js → onboard-1wGdR0wt.js} +1 -1
- package/dist/{onboard-DBeHwdks.js → onboard-nQYq_dsr.js} +1 -1
- package/dist/{onboarding-Dfjn2-9q.js → onboarding-Peg7PNOz.js} +1 -1
- package/dist/{onboarding-C58wjONa.js → onboarding-gQRA57l_.js} +1 -1
- package/dist/{onboarding.finalize-7r1HYXWd.js → onboarding.finalize-C4DSBMrV.js} +4 -4
- package/dist/{onboarding.finalize-DGD56sXW.js → onboarding.finalize-D26o-hBA.js} +3 -3
- package/dist/{outbound-opDNxv-l.js → outbound-D4fN_ZlE.js} +7 -7
- package/dist/{outbound-attachment-Co2diKdP.js → outbound-attachment-DjNDa3zn.js} +2 -2
- package/dist/{paths-CySxpNhH.js → paths-Cce4PUkG.js} +5 -5
- package/dist/{paths-Cb87-LzP.js → paths-DLyHUt31.js} +1 -1
- package/dist/{pi-auth-json-DPWPoruO.js → pi-auth-json-0SYBFZTt.js} +8 -8
- package/dist/{pi-embedded-B6uRrG1f.js → pi-embedded-XE5y7qIF.js} +158 -158
- package/dist/{pi-embedded-helpers-DEEaCvEp.js → pi-embedded-helpers-ag2bosuj.js} +52 -52
- package/dist/{plugins-C4C9637U.js → plugins-DQYI3Fr-.js} +9 -9
- package/dist/{program-CutjuJj0.js → program-Bx47hl_J.js} +2 -2
- package/dist/{program-context-qVc_lsLV.js → program-context-JFmxYLfK.js} +6 -6
- package/dist/{prompt-select-styled-C0yn8YjW.js → prompt-select-styled--d3H0JCo.js} +1 -1
- package/dist/{prompt-select-styled-BCHe7Fks.js → prompt-select-styled-BeJhp9PS.js} +1 -1
- package/dist/{pw-ai-DhwRiS06.js → pw-ai-Ch7liUOW.js} +11 -11
- package/dist/{qmd-manager-DdZh9PHs.js → qmd-manager-QHUP-_em.js} +7 -7
- package/dist/{register.maintenance-DMLPFSKI.js → register.maintenance-CYhp47Hs.js} +5 -5
- package/dist/{register.maintenance-D1MuIUlv.js → register.maintenance-CvaHYkoX.js} +4 -4
- package/dist/{register.onboard-CXHhSH4B.js → register.onboard-CoySBEdQ.js} +2 -2
- package/dist/{register.onboard-D1X2dUGZ.js → register.onboard-mCscJN7t.js} +2 -2
- package/dist/{register.setup-Q58lN0TV.js → register.setup-BmE-pwMT.js} +2 -2
- package/dist/{register.setup-DFDb5BDi.js → register.setup-CzrsIQMG.js} +2 -2
- package/dist/{register.subclis-CrTXa8cj.js → register.subclis-wsgQ6wk8.js} +3 -3
- package/dist/{registry-DP24za6g.js → registry-CK4e9hn8.js} +17 -17
- package/dist/{replies-DpPvWiGF.js → replies-BIX_isV7.js} +3 -3
- package/dist/{reply-prefix-CtL0omgM.js → reply-prefix-XlyuyChD.js} +1 -1
- package/dist/{resolve-route-BVikmvWO.js → resolve-route-CZ-1eqw0.js} +4 -4
- package/dist/{retry-dGG-MbxL.js → retry-Cly39XZB.js} +1 -1
- package/dist/{run-main-BLKPL_vM.js → run-main-mKcFqx7h.js} +3 -3
- package/dist/{runner-B_KP4voe.js → runner-D0QUGA_X.js} +9 -9
- package/dist/{send-DeEosX8F.js → send-B1u-LrcS.js} +18 -18
- package/dist/{send-DwKJK3sM.js → send-CiTGOvEc.js} +10 -10
- package/dist/{send-zSarozV2.js → send-DW96zgDL.js} +6 -6
- package/dist/{send-CHEOWVc8.js → send-DeFniOjh.js} +6 -6
- package/dist/{send-DbcLJb0P.js → send-WyRqb4WD.js} +7 -7
- package/dist/{session-DV1MNlbV.js → session-SM36BTsl.js} +8 -8
- package/dist/{skill-commands-D610IKhm.js → skill-commands-BJMb_psG.js} +9 -9
- package/dist/{skills-o5WVqM4V.js → skills-BFekKL7i.js} +21 -21
- package/dist/{sqlite-6H6Zw1cs.js → sqlite-DRbx2dhW.js} +4 -4
- package/dist/{store-vVE6N2mH.js → store-C0wvOkae.js} +2 -2
- package/dist/{subsystem-DgpxyDQ_.js → subsystem-Bs9YvKLa.js} +1 -1
- package/dist/{tables-BIWsCKXJ.js → tables-DuZspiBu.js} +1 -1
- package/dist/{target-errors-DyItGyW9.js → target-errors-Be1SwYlW.js} +2 -2
- package/dist/{thinking-Ni0HF-w6.js → thinking-CdlENGRW.js} +5 -5
- package/dist/{tokens-c_SLAkVb.js → tokens-H1H1LiSQ.js} +1 -1
- package/dist/{tool-images-DBCfXdli.js → tool-images-DXB7tqWi.js} +2 -2
- package/dist/{tool-loop-detection-Bbc9OPFR.js → tool-loop-detection-Cs8_HCsx.js} +3 -3
- package/dist/{update-cli-BkU6ori8.js → update-cli-BEBDpJF4.js} +5 -5
- package/dist/{update-cli-D18nWvzY.js → update-cli-C22V-tFW.js} +4 -4
- package/dist/{web-BsjZ2RTT.js → web-CviyqTad.js} +57 -57
- package/dist/{whatsapp-actions-oRQjcdQe.js → whatsapp-actions-D1RsnX7P.js} +23 -23
- package/dist/{workspace-CbvamIU6.js → workspace-wAaHI8-5.js} +6 -6
- 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-
|
|
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
|
|
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 ??
|
|
16
|
-
const lstatSync = options.lstatSync ??
|
|
17
|
-
const mkdirSync = options.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,
|
|
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",
|
|
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 (!
|
|
72
|
-
const raw =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 (
|
|
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
|
|
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
|
|
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 =
|
|
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 (
|
|
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-
|
|
3
|
-
import { r as markdownToSlackMrkdwnChunks, t as sendMessageSlack } from "./send-
|
|
4
|
-
import { i as chunkMarkdownTextWithMode } from "./chunk-
|
|
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-
|
|
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-
|
|
4
|
-
import { c as resolveDefaultAgentId } from "./agent-scope-
|
|
5
|
-
import { y as logDebug } from "./workspace-
|
|
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-
|
|
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({
|
|
@@ -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-
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
-
import { _ as runExec } from "./workspace-
|
|
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-
|
|
5
|
-
import { A as normalizeProviderId, L as normalizeGoogleModelId, i as resolveApiKeyForProvider, r as requireApiKey, y as resolveSymiAgentDir } from "./model-auth-
|
|
6
|
-
import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-
|
|
7
|
-
import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-
|
|
8
|
-
import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
-
import { G as danger, J as logVerbose, L as safeParseJson } from "./registry-
|
|
4
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
5
|
-
import { l as resolveTelegramAccount, n as listChannelPlugins, t as getChannelPlugin } from "./plugins-
|
|
6
|
-
import { r as isTruthyEnvValue } from "./command-format-
|
|
7
|
-
import { g as isGifMedia, p as getFileExtension, v as normalizeMimeType, x as mediaKindFromMime } from "./image-ops-
|
|
8
|
-
import { b as withFileLock$1 } from "./model-auth-
|
|
9
|
-
import { n as loadConfig } from "./config-
|
|
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-
|
|
13
|
-
import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
162
|
-
await
|
|
163
|
-
await
|
|
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
|
|
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-
|
|
3
|
-
import { _ as resolveDiscordAccount, v as normalizeDiscordToken } from "./plugins-
|
|
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-
|
|
6
|
-
import { n as loadConfig } from "./config-
|
|
7
|
-
import { n as retryAsync, t as resolveRetryConfig } from "./retry-
|
|
8
|
-
import { c as resolveChunkMode, i as chunkMarkdownTextWithMode } from "./chunk-
|
|
9
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
10
|
-
import { a as loadWebMedia, o as loadWebMediaRaw } from "./ir-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
-
import { x as mediaKindFromMime } from "./image-ops-
|
|
4
|
-
import { n as loadConfig } from "./config-
|
|
5
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
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-
|
|
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-
|
|
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-
|
|
3
|
-
import { d as resolveSlackAccount, m as resolveSlackBotToken } from "./plugins-
|
|
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-
|
|
6
|
-
import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-
|
|
7
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
8
|
-
import { a as loadWebMedia, n as markdownToIR, t as chunkMarkdownIR } from "./ir-
|
|
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-
|
|
3
|
-
import { x as mediaKindFromMime } from "./image-ops-
|
|
4
|
-
import { n as loadConfig } from "./config-
|
|
5
|
-
import { t as resolveIMessageAccount } from "./accounts-
|
|
6
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
7
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
8
|
-
import { t as resolveOutboundAttachmentFromUrl } from "./outbound-attachment-
|
|
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-
|
|
2
|
-
import { c as readCredsJsonRaw, d as resolveWebCredsBackupPath, f as resolveWebCredsPath, o as maybeRestoreCredsFromBackup, u as resolveDefaultWebAuthDir } from "./accounts-
|
|
3
|
-
import { t as formatCliCommand } from "./command-format-
|
|
4
|
-
import { A as VERSION } from "./config-
|
|
5
|
-
import
|
|
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
|
-
|
|
24
|
+
fs.copyFileSync(credsPath, backupPath);
|
|
25
25
|
try {
|
|
26
|
-
|
|
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
|
-
|
|
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-
|
|
3
|
-
import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-
|
|
4
|
-
import { s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-
|
|
5
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
6
|
-
import { o as resolvePluginSkillDirs, t as buildWorkspaceSkillCommandSpecs } from "./skills-
|
|
7
|
-
import { i as listChatCommands } from "./commands-registry-
|
|
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
|
|
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 (!
|
|
287
|
-
const canonicalDir =
|
|
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-
|
|
2
|
-
import { f as normalizeSkillFilter } from "./agent-scope-
|
|
3
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
4
|
-
import { h as resolveSymiPackageRootSync } from "./workspace-
|
|
5
|
-
import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-
|
|
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-
|
|
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
|
|
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 =
|
|
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 (
|
|
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 (
|
|
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 (!
|
|
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 =
|
|
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 =
|
|
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 (
|
|
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 (!
|
|
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 (
|
|
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 (
|
|
659
|
+
if (fs$1.existsSync(rootSkillMd)) {
|
|
660
660
|
try {
|
|
661
|
-
const 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 (!
|
|
700
|
+
if (!fs$1.existsSync(skillMd)) continue;
|
|
701
701
|
try {
|
|
702
|
-
const 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(
|
|
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-
|
|
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-
|
|
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
|
|
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
|
-
|
|
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-
|
|
2
|
-
import { d as detectMime, f as extensionForMime } from "./image-ops-
|
|
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-
|
|
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
|