@theokit/sdk 4.31.0 → 4.32.0
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/CHANGELOG.md +27 -0
- package/dist/{agent-Bzg2_uGr.d.cts → agent-DGv1-d81.d.cts} +52 -2
- package/dist/{agent-6GQBOHHA.cjs → agent-ES57DGAT.cjs} +9 -9
- package/dist/{agent-6GQBOHHA.cjs.map → agent-ES57DGAT.cjs.map} +1 -1
- package/dist/{agent-DY5LGZ5E.js → agent-FBFPSBTX.js} +8 -8
- package/dist/{agent-DY5LGZ5E.js.map → agent-FBFPSBTX.js.map} +1 -1
- package/dist/{agent-Ekv8y7_c.d.ts → agent-SmxntivO.d.ts} +52 -2
- package/dist/{chunk-VUXLNVX7.js → chunk-334WDVFZ.js} +4 -4
- package/dist/{chunk-VUXLNVX7.js.map → chunk-334WDVFZ.js.map} +1 -1
- package/dist/{chunk-WQEQCJTZ.cjs → chunk-CJVMDRQB.cjs} +26 -3
- package/dist/chunk-CJVMDRQB.cjs.map +1 -0
- package/dist/{chunk-UKNMWCPZ.cjs → chunk-CVSNCUBU.cjs} +133 -70
- package/dist/chunk-CVSNCUBU.cjs.map +1 -0
- package/dist/{chunk-4SXHEZIV.cjs → chunk-DQSILMWU.cjs} +9 -3
- package/dist/chunk-DQSILMWU.cjs.map +1 -0
- package/dist/{chunk-PORDVVJS.js → chunk-EIPSZ4GA.js} +4 -4
- package/dist/chunk-EIPSZ4GA.js.map +1 -0
- package/dist/{chunk-4JWZRASX.js → chunk-HBTEK5LK.js} +3 -3
- package/dist/{chunk-4JWZRASX.js.map → chunk-HBTEK5LK.js.map} +1 -1
- package/dist/{chunk-U447MTG4.cjs → chunk-HCXDDR6P.cjs} +8 -8
- package/dist/chunk-HCXDDR6P.cjs.map +1 -0
- package/dist/{chunk-XJT5VACT.cjs → chunk-I4QDIQ45.cjs} +6 -6
- package/dist/{chunk-XJT5VACT.cjs.map → chunk-I4QDIQ45.cjs.map} +1 -1
- package/dist/{chunk-CYTAM3E6.cjs → chunk-JPG7NMNH.cjs} +75 -58
- package/dist/chunk-JPG7NMNH.cjs.map +1 -0
- package/dist/{chunk-FZ75EZR5.js → chunk-NI4PAMJQ.js} +45 -28
- package/dist/chunk-NI4PAMJQ.js.map +1 -0
- package/dist/{chunk-FDGRQQWX.cjs → chunk-OQX2DG36.cjs} +5 -5
- package/dist/{chunk-FDGRQQWX.cjs.map → chunk-OQX2DG36.cjs.map} +1 -1
- package/dist/{chunk-TLG444A6.js → chunk-SQVQH4EK.js} +130 -67
- package/dist/chunk-SQVQH4EK.js.map +1 -0
- package/dist/{chunk-ICSCKB3N.js → chunk-UAYYNWYJ.js} +27 -4
- package/dist/chunk-UAYYNWYJ.js.map +1 -0
- package/dist/{chunk-ZZWTY3RX.js → chunk-WPBTPSKQ.js} +9 -4
- package/dist/chunk-WPBTPSKQ.js.map +1 -0
- package/dist/{compact-session-2BFNMENR.cjs → compact-session-OKXLKJIS.cjs} +12 -12
- package/dist/{compact-session-2BFNMENR.cjs.map → compact-session-OKXLKJIS.cjs.map} +1 -1
- package/dist/{compact-session-2JONXHLR.js → compact-session-UHGMWPMW.js} +4 -4
- package/dist/{compact-session-2JONXHLR.js.map → compact-session-UHGMWPMW.js.map} +1 -1
- package/dist/{cron-CjzvXGT2.d.cts → cron-BiK_aNJI.d.cts} +2 -2
- package/dist/{cron-D0Z29gI-.d.ts → cron-Dx7B-3WB.d.ts} +2 -2
- package/dist/cron.cjs +8 -8
- package/dist/cron.d.cts +3 -3
- package/dist/cron.d.ts +3 -3
- package/dist/cron.js +7 -7
- package/dist/{errors-DHZtSNnj.d.ts → errors-Cua4WC9H.d.ts} +1 -1
- package/dist/{errors-BdL-buYn.d.cts → errors-DyVbXdR4.d.cts} +1 -1
- package/dist/errors.d.cts +2 -2
- package/dist/errors.d.ts +2 -2
- package/dist/eval.cjs +11 -11
- package/dist/eval.js +7 -7
- package/dist/fs-session-store-2J5JOXC2.js +8 -0
- package/dist/{fs-session-store-7AEI4STY.js.map → fs-session-store-2J5JOXC2.js.map} +1 -1
- package/dist/fs-session-store-DNAJ6RQG.cjs +17 -0
- package/dist/{fs-session-store-26WVVMC4.cjs.map → fs-session-store-DNAJ6RQG.cjs.map} +1 -1
- package/dist/index.cjs +50 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -8
- package/dist/index.d.ts +23 -8
- package/dist/index.js +30 -10
- package/dist/index.js.map +1 -1
- package/dist/{inject-session-MIFEKATN.cjs → inject-session-24FJ65LP.cjs} +6 -6
- package/dist/{inject-session-MIFEKATN.cjs.map → inject-session-24FJ65LP.cjs.map} +1 -1
- package/dist/{inject-session-NNSCCIVP.js → inject-session-JXQO33T3.js} +4 -4
- package/dist/{inject-session-NNSCCIVP.js.map → inject-session-JXQO33T3.js.map} +1 -1
- package/dist/internal/llm/abort-error.d.ts +1 -0
- package/dist/internal/llm/retrying-client.d.ts +27 -3
- package/dist/internal/llm/transport-error.d.ts +9 -0
- package/dist/internal/persistence/index.cjs +6 -6
- package/dist/internal/persistence/index.js +1 -1
- package/dist/internal/persistence/session-transcript.d.cts +13 -1
- package/dist/internal/persistence/session-transcript.d.ts +13 -1
- package/dist/internal/runtime/lifecycle/post-run-lifecycle.d.ts +1 -1
- package/dist/persistence.cjs +13 -9
- package/dist/persistence.d.cts +2 -1
- package/dist/persistence.d.ts +2 -1
- package/dist/persistence.js +2 -2
- package/dist/{run-OJbGyweZ.d.ts → run-CwEJtLPE.d.cts} +8 -0
- package/dist/{run-OJbGyweZ.d.cts → run-CwEJtLPE.d.ts} +8 -0
- package/dist/server/errors-envelope.d.cts +3 -3
- package/dist/server/errors-envelope.d.ts +3 -3
- package/dist/session-transcript-F5OXXO6G.cjs +50 -0
- package/dist/{session-transcript-LPNZR3YS.cjs.map → session-transcript-F5OXXO6G.cjs.map} +1 -1
- package/dist/{session-transcript-T7LGJUGW.js → session-transcript-QS6CXHHD.js} +3 -3
- package/dist/{session-transcript-T7LGJUGW.js.map → session-transcript-QS6CXHHD.js.map} +1 -1
- package/dist/subagents-loader.d.cts +2 -2
- package/dist/subagents-loader.d.ts +2 -2
- package/dist/types/agent-prims.d.ts +8 -0
- package/dist/types/session-record.d.ts +51 -1
- package/package.json +1 -1
- package/dist/chunk-4SXHEZIV.cjs.map +0 -1
- package/dist/chunk-CYTAM3E6.cjs.map +0 -1
- package/dist/chunk-FZ75EZR5.js.map +0 -1
- package/dist/chunk-ICSCKB3N.js.map +0 -1
- package/dist/chunk-PORDVVJS.js.map +0 -1
- package/dist/chunk-TLG444A6.js.map +0 -1
- package/dist/chunk-U447MTG4.cjs.map +0 -1
- package/dist/chunk-UKNMWCPZ.cjs.map +0 -1
- package/dist/chunk-WQEQCJTZ.cjs.map +0 -1
- package/dist/chunk-ZZWTY3RX.js.map +0 -1
- package/dist/fs-session-store-26WVVMC4.cjs +0 -17
- package/dist/fs-session-store-7AEI4STY.js +0 -8
- package/dist/session-transcript-LPNZR3YS.cjs +0 -46
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { withCwdMutex } from './chunk-2XLKLVVR.js';
|
|
2
|
-
import { readFileSync, mkdirSync,
|
|
2
|
+
import { readFileSync, mkdirSync, openSync, writeSync, closeSync, fstatSync, readSync } from 'fs';
|
|
3
3
|
import { dirname } from 'path';
|
|
4
4
|
|
|
5
5
|
// src/internal/persistence/file-lock.ts
|
|
@@ -115,8 +115,31 @@ function parsearLinha(line, lineNumber, tolerar) {
|
|
|
115
115
|
}
|
|
116
116
|
function appendJsonl(path, record) {
|
|
117
117
|
mkdirSync(dirname(path), { recursive: true });
|
|
118
|
-
|
|
118
|
+
const prefixo = precisaDeQuebraAntes(path) ? "\n" : "";
|
|
119
|
+
const fd = openSync(path, "a", 384);
|
|
120
|
+
try {
|
|
121
|
+
writeSync(fd, `${prefixo}${JSON.stringify(record)}
|
|
119
122
|
`);
|
|
123
|
+
} finally {
|
|
124
|
+
closeSync(fd);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function precisaDeQuebraAntes(path) {
|
|
128
|
+
let fd;
|
|
129
|
+
try {
|
|
130
|
+
fd = openSync(path, "r");
|
|
131
|
+
} catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
const tamanho = fstatSync(fd).size;
|
|
136
|
+
if (tamanho === 0) return false;
|
|
137
|
+
const buf = Buffer.alloc(1);
|
|
138
|
+
readSync(fd, buf, 0, 1, tamanho - 1);
|
|
139
|
+
return buf[0] !== 10;
|
|
140
|
+
} finally {
|
|
141
|
+
closeSync(fd);
|
|
142
|
+
}
|
|
120
143
|
}
|
|
121
144
|
function readJsonlIds(path, keyFn) {
|
|
122
145
|
const done = /* @__PURE__ */ new Set();
|
|
@@ -136,5 +159,5 @@ function readJsonlIds(path, keyFn) {
|
|
|
136
159
|
}
|
|
137
160
|
|
|
138
161
|
export { JsonlParseError, appendJsonl, loadJsonl, readJsonlIds, withFileLock };
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
162
|
+
//# sourceMappingURL=chunk-UAYYNWYJ.js.map
|
|
163
|
+
//# sourceMappingURL=chunk-UAYYNWYJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/persistence/file-lock.ts","../src/internal/persistence/jsonl.ts"],"names":[],"mappings":"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","file":"chunk-UAYYNWYJ.js","sourcesContent":["/**\n * Cross-process file lock helper (ADR D61).\n *\n * Uses `proper-lockfile` (optional peer dep) for cross-process locks. When\n * the peer dep is absent, falls back to `withCwdMutex` (in-process only)\n * with a one-shot stderr warning.\n *\n * EC-1 fix: uses a companion `<path>.lock` file with `realpath: false` so\n * `withFileLock` works even when the target `path` does not exist yet.\n * Without this, fresh installs that lock-then-create would crash with ENOENT.\n *\n * @internal\n */\n\nimport { withCwdMutex } from \"./cwd-mutex.js\";\n\ninterface ProperLockfileModule {\n lock: (file: string, options: ProperLockfileOptions) => Promise<() => Promise<void>>;\n}\n\ninterface ProperLockfileOptions {\n lockfilePath?: string;\n realpath?: boolean;\n stale?: number;\n retries?: {\n retries: number;\n factor?: number;\n minTimeout?: number;\n maxTimeout?: number;\n };\n}\n\nlet cached: ProperLockfileModule | null | undefined;\nlet warnedMissing = false;\nlet warnedStructural = false;\n\nasync function getProperLockfile(): Promise<ProperLockfileModule | null> {\n if (cached !== undefined) return cached;\n try {\n const mod = await import(\"proper-lockfile\");\n // T5.9 — supply-chain hardening: validate the imported module\n // exposes the API surface we depend on BEFORE caching it. A\n // tampered or incompatible version that lacks `lock`/`unlock`\n // functions gets treated as \"not installed\" with an advisory\n // warning — never silently used.\n if (!validateLockModule(mod)) {\n if (!warnedStructural) {\n warnedStructural = true;\n process.stderr.write(\n \"[theokit-sdk] proper-lockfile: imported module does NOT expose \" +\n \"the expected `lock`/`unlock` API surface. This may indicate a \" +\n \"supply-chain compromise or an incompatible major version. \" +\n \"Falling back to in-process mutex (no cross-process safety). \" +\n \"Reinstall with: pnpm add proper-lockfile@^11\\n\",\n );\n }\n cached = null;\n return cached;\n }\n cached = mod as ProperLockfileModule;\n } catch {\n cached = null;\n }\n return cached;\n}\n\n/**\n * T5.9 — Structural validation of the dynamically-imported\n * `proper-lockfile` module. Verifies the API surface we depend on\n * (`lock` and `unlock` as functions) is present. Pure function —\n * never throws, never mutates, never performs I/O.\n *\n * Exported via `__TESTING__validateLockModule` seam so unit tests\n * can drive the check without spinning up the dynamic import.\n *\n * @internal\n */\nfunction validateLockModule(mod: unknown): boolean {\n if (mod === null || mod === undefined || typeof mod !== \"object\") return false;\n const m = mod as Record<string, unknown>;\n return typeof m.lock === \"function\" && typeof m.unlock === \"function\";\n}\n\n/**\n * T5.9 — Test seam: expose the structural validator for unit tests.\n * NOT included in the public barrel.\n *\n * @internal\n */\nexport function __TESTING__validateLockModule(mod: unknown): boolean {\n return validateLockModule(mod);\n}\n\n/**\n * T5.9 — Test seam: reset the module cache + warning flags between\n * tests so each test starts fresh. NOT included in the public barrel.\n *\n * @internal\n */\nexport function __TESTING__resetFileLockCache(): void {\n cached = undefined;\n warnedMissing = false;\n warnedStructural = false;\n}\n\n/**\n * Options for `withFileLock`.\n *\n * @internal\n */\nexport interface FileLockOptions {\n /** Stale lock timeout in ms. Default 30_000 (30s). */\n stale?: number;\n /** Max retries on busy lock. Default 5. */\n retries?: number;\n /** Backoff factor between retries. Default 1.5. */\n retryFactor?: number;\n}\n\n/**\n * Run `fn` while holding an OS-level cross-process lock on `path`.\n *\n * If `proper-lockfile` is installed, uses it with a companion `<path>.lock`\n * file (`realpath: false`, so target file does NOT need to exist yet).\n * Otherwise falls back to in-process `withCwdMutex` and prints a one-shot\n * stderr warning telling the user to install `proper-lockfile` for\n * cross-process safety.\n *\n * The lock is released even when `fn` throws.\n *\n * @internal\n */\nexport async function withFileLock<T>(\n path: string,\n fn: () => Promise<T>,\n options?: FileLockOptions,\n): Promise<T> {\n const lib = await getProperLockfile();\n\n if (lib === null) {\n if (!warnedMissing) {\n warnedMissing = true;\n process.stderr.write(\n \"[theokit-sdk] proper-lockfile not installed; \" +\n \"cross-process file lock unavailable. \" +\n \"Install with: pnpm add proper-lockfile\\n\",\n );\n }\n return withCwdMutex(`file-lock:${path}`, fn);\n }\n\n // proper-lockfile errors immediately on same-process concurrent acquire\n // (\"Lock file is already being held\"). Wrap with cwd-mutex first so\n // in-process callers queue and only ONE thread at a time enters the\n // cross-process acquire path. Combined: full in-process + cross-process\n // serialization.\n return withCwdMutex(`file-lock:${path}`, async () => {\n const release = await lib.lock(path, {\n // EC-1: companion lockfile, target path may not exist yet.\n lockfilePath: `${path}.lock`,\n realpath: false,\n stale: options?.stale ?? 30_000,\n retries: {\n retries: options?.retries ?? 5,\n factor: options?.retryFactor ?? 1.5,\n minTimeout: 100,\n maxTimeout: 5_000,\n },\n });\n\n try {\n return await fn();\n } finally {\n await release();\n }\n });\n}\n\n/**\n * Test helper — resets the cached proper-lockfile module + warning flag.\n * Allows tests to simulate \"module absent\" by clearing cache then\n * monkey-patching the dynamic import resolution.\n *\n * @internal\n */\nexport function _resetFileLockCacheForTesting(): void {\n cached = undefined;\n warnedMissing = false;\n}\n","/**\n * Durable JSONL primitives shared by the eval harness (M6).\n *\n * - `loadJsonl` — generic dataset reader (split/trim/skip-blank/parse) with a\n * line-numbered {@link JsonlParseError}. The dataset SCHEMA is the caller's\n * concern via `map` (M6 ADR D3) — this module owns only the parse.\n * - `appendJsonl` / `readJsonlIds` — crash-durable, resumable batch persistence\n * (M6 ADR D1): each record is appended as one whole `\\n`-terminated line the\n * instant it is produced, and a re-run resumes by skipping already-keyed rows.\n *\n * referencia: knowledge-base/references/theocode-eval/lib/swebench-dataset.ts:82\n * (parseJsonl + line-N error) and swebench-batch.ts:113,205 (resume + per-line\n * flush).\n *\n * @internal\n */\nimport {\n closeSync,\n fstatSync,\n mkdirSync,\n openSync,\n readFileSync,\n readSync,\n writeSync,\n} from \"node:fs\";\nimport { dirname } from \"node:path\";\n\n/** Raised when a JSONL line is not valid JSON or is not a JSON object. Carries the 1-based line number. */\nexport class JsonlParseError extends Error {\n constructor(\n message: string,\n readonly line: number,\n ) {\n super(message);\n this.name = \"JsonlParseError\";\n }\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/** Parse a single trimmed line to a plain object, or `undefined` if blank / invalid / non-object. */\nfunction tryParseObjectLine(line: string): Record<string, unknown> | undefined {\n if (line.length === 0) return undefined;\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n return undefined;\n }\n return isPlainObject(parsed) ? parsed : undefined;\n}\n\n/**\n * Parse a JSONL file into rows. Blank lines are skipped. A malformed or\n * non-object line throws {@link JsonlParseError} naming the 1-based line. When\n * `map` is provided, each raw object is mapped to the typed row (the SWE-bench\n * schema lives in the caller's `map`, per M6 ADR D3).\n */\nexport function loadJsonl<T = Record<string, unknown>>(\n path: string,\n opts: {\n map?: (raw: Record<string, unknown>, lineNumber: number) => T;\n /**\n * M81 — tolerate a truncated LAST line (a crash artifact: the process died mid-write).\n *\n * Opt-in on purpose. As a default it would also swallow corruption in the MIDDLE of the file,\n * turning loud data loss into silent data loss — the wrong trade for a session store.\n */\n tolerateTrailingPartialLine?: boolean;\n } = {},\n): T[] {\n const linhas = readFileSync(path, \"utf8\").split(\"\\n\");\n const out: T[] = [];\n for (let i = 0; i < linhas.length; i += 1) {\n const lineNumber = i + 1;\n const line = (linhas[i] ?? \"\").trim();\n if (line.length === 0) continue;\n // M81 — `undefined` = linha inválida tolerada (última, truncada por crash). Qualquer outra\n // linha inválida já lançou dentro de `parsearLinha`.\n const parsed = parsearLinha(\n line,\n lineNumber,\n opts.tolerateTrailingPartialLine === true && lineNumber === linhas.length,\n );\n if (parsed === undefined) break;\n out.push(opts.map ? opts.map(parsed, lineNumber) : (parsed as unknown as T));\n }\n return out;\n}\n\n/**\n * Parse de UMA linha, devolvendo `undefined` quando ela é uma última-linha-truncada tolerada.\n *\n * Extraído porque `loadJsonl` passou do teto de complexidade cognitiva quando ganhou a tolerância —\n * e porque parse-de-linha e iteração-do-arquivo são duas responsabilidades que só estavam juntas\n * por hábito.\n */\nfunction parsearLinha(\n line: string,\n lineNumber: number,\n tolerar: boolean,\n): Record<string, unknown> | undefined {\n let parsed: unknown;\n try {\n parsed = JSON.parse(line);\n } catch {\n if (tolerar) return undefined;\n throw new JsonlParseError(`line ${lineNumber}: invalid JSON`, lineNumber);\n }\n if (!isPlainObject(parsed)) {\n throw new JsonlParseError(`line ${lineNumber}: not a JSON object`, lineNumber);\n }\n return parsed;\n}\n\n/**\n * Append one record as a whole `\\n`-terminated JSON line. Creates the parent dir\n * if missing. `appendFileSync` is synchronous, so within a single Node process\n * the event loop serializes writes and each call writes its line atomically —\n * interleave-safe for the bounded-concurrency batch runner.\n *\n * referencia: swebench-batch.ts:192 (mkdir-before-append), :205 (per-line flush).\n */\nexport function appendJsonl(path: string, record: unknown): void {\n mkdirSync(dirname(path), { recursive: true });\n const prefixo = precisaDeQuebraAntes(path) ? \"\\n\" : \"\";\n // M93 (revisão adversarial, H1) — `0o600`. `appendFileSync` não aceita `mode`, então a permissão\n // vinha do umask: sob `umask 022` o transcript nascia `0664`, world-readable. O caminho anterior\n // (`replaceFileAtomic`) fixava `0o600` de propósito — \"holds the FULL in-flight content\n // (credential snapshots, OAuth tokens)\" (`atomic-write.ts:107`) — e trocar para append perdeu isso\n // em silêncio. A mesma classe já havia sido pega no consumidor (`atomic-sync.ts`, M88 HIGH-1).\n //\n // `mode` só vale na CRIAÇÃO; um arquivo pré-existente mantém a permissão que já tem.\n const fd = openSync(path, \"a\", 0o600);\n try {\n writeSync(fd, `${prefixo}${JSON.stringify(record)}\\n`);\n } finally {\n closeSync(fd);\n }\n}\n\n/**\n * O arquivo termina sem `\\n`? Então a última linha está truncada — um crash no meio de um append.\n *\n * Sem esta checagem o append seguinte **cola** no meio da linha partida, produzindo uma linha\n * inválida que o leitor descarta: o registro NOVO some junto com o parcial. O caminho anterior\n * (read-modify-write) se auto-curava disso porque reescrevia o arquivo inteiro. Medido na revisão\n * adversarial do M93 (H2): após um append sobre arquivo truncado, o registro recém-escrito não era\n * mais legível.\n *\n * Lê **um byte**, não o arquivo.\n */\nfunction precisaDeQuebraAntes(path: string): boolean {\n let fd: number;\n try {\n fd = openSync(path, \"r\");\n } catch {\n return false; // arquivo ainda não existe: nada a emendar\n }\n try {\n const tamanho = fstatSync(fd).size;\n if (tamanho === 0) return false;\n const buf = Buffer.alloc(1);\n readSync(fd, buf, 0, 1, tamanho - 1);\n return buf[0] !== 0x0a;\n } finally {\n closeSync(fd);\n }\n}\n\n/**\n * Read the set of keys from an existing JSONL file for which `keyFn(parsed)`\n * returns a non-empty string. Used to resume a crashed batch by skipping rows\n * already persisted with a successful result. A trailing partial line from an\n * interrupted append is tolerated (skipped, not thrown), and a missing file\n * yields an empty set.\n *\n * referencia: swebench-batch.ts:113 (readDoneIds), :129 (success-only),\n * :131 (tolerate partial line).\n */\nexport function readJsonlIds(\n path: string,\n keyFn: (parsed: Record<string, unknown>) => string | undefined,\n): Set<string> {\n const done = new Set<string>();\n let text: string;\n try {\n text = readFileSync(path, \"utf8\");\n } catch {\n return done; // no file yet → nothing done\n }\n for (const rawLine of text.split(\"\\n\")) {\n // A trailing partial line from an interrupted run parses to undefined → skipped.\n const parsed = tryParseObjectLine(rawLine.trim());\n if (parsed === undefined) continue;\n const key = keyFn(parsed);\n if (typeof key === \"string\" && key.length > 0) done.add(key);\n }\n return done;\n}\n"]}
|
|
@@ -186,9 +186,14 @@ function reconstructMessages(records) {
|
|
|
186
186
|
}
|
|
187
187
|
return msgs;
|
|
188
188
|
}
|
|
189
|
-
function
|
|
189
|
+
function transcriptRoot() {
|
|
190
|
+
const override = process.env.THEOKIT_HOME?.trim();
|
|
191
|
+
if (override !== void 0 && override.length > 0) return override;
|
|
190
192
|
return join(homedir(), ".theokit");
|
|
191
193
|
}
|
|
194
|
+
function defaultBaseDir() {
|
|
195
|
+
return transcriptRoot();
|
|
196
|
+
}
|
|
192
197
|
function expandTilde(p) {
|
|
193
198
|
if (p === "~") return homedir();
|
|
194
199
|
if (p.startsWith("~/")) return join(homedir(), p.slice(2));
|
|
@@ -225,6 +230,6 @@ async function readTranscript(path) {
|
|
|
225
230
|
return raw.split("\n").map(parseRecordLine).filter((r) => r !== void 0);
|
|
226
231
|
}
|
|
227
232
|
|
|
228
|
-
export { SessionTranscript, defaultBaseDir, encodeProjectDir, expandTilde, readTranscript, reconstructMessages, safeSessionId, transcriptPath, writeTranscript };
|
|
229
|
-
//# sourceMappingURL=chunk-
|
|
230
|
-
//# sourceMappingURL=chunk-
|
|
233
|
+
export { SessionTranscript, defaultBaseDir, encodeProjectDir, expandTilde, readTranscript, reconstructMessages, safeSessionId, transcriptPath, transcriptRoot, writeTranscript };
|
|
234
|
+
//# sourceMappingURL=chunk-WPBTPSKQ.js.map
|
|
235
|
+
//# sourceMappingURL=chunk-WPBTPSKQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/persistence/session-transcript.ts"],"names":[],"mappings":"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","file":"chunk-WPBTPSKQ.js","sourcesContent":["/**\n * SE40 — native session transcript (Claude-Code-compatible on-disk shape, theokit-native names).\n *\n * The theokit session format IS the Claude Code record shape (a `uuid`/`parentUuid` DAG of records with\n * structured `text`/`tool_use`/`tool_result`/`thinking` blocks) — so the ecosystem's read-side tools\n * parse our sessions AND, pointed at `~/.claude`, the Claude Code CLI can `--continue` them. This module\n * is the PURE core: append-per-turn record builders + the DAG reader that rebuilds `LlmMessage[]` for\n * resume. File I/O + loop wiring + append-only compaction live in the FS store.\n *\n * Reader mirrors `claude-code-log` dag.py: leaf = a uuid never used as a parentUuid; walk parentUuid to a\n * root (cycle-break); dedup a uuid across sessions keeping the earliest; a `compact_boundary` root\n * terminates the walk so a resume-after-compaction replays only the post-boundary continuation.\n *\n * referencia: knowledge-base/references/claude-code-log/claude_code_log/dag.py + models.py\n */\nimport { randomUUID } from \"node:crypto\";\nimport { mkdir, readFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nimport type { SessionRecord, TranscriptBlock } from \"../../types/session-record.js\";\nimport type { LlmContentPart, LlmMessage, LlmToolResultPart } from \"../llm/types.js\";\nimport { redactSecrets } from \"../security/redact.js\";\nimport { replaceFileAtomic } from \"./atomic-write.js\";\n\n// The `SessionRecord` contract now lives in the domain `types/` layer (SE46 DIP\n// direction). Re-exported here so existing importers of this DAG-core module\n// keep resolving the same name.\nexport type { SessionRecord } from \"../../types/session-record.js\";\n\nexport interface SessionTranscriptOptions {\n cwd: string;\n sessionId: string;\n model: string;\n version?: string;\n}\n\nexport interface AssistantTurn {\n text?: string;\n thinking?: string;\n toolCalls?: Array<{ id: string; name: string; input: Record<string, unknown> }>;\n}\n\n/** Claude Code path convention: cwd with every non-alphanumeric replaced by `-`. */\nexport function encodeProjectDir(cwd: string): string {\n return cwd.replace(/[^a-zA-Z0-9]/g, \"-\");\n}\n\n/** Make a caller-supplied session id safe as a path component (no traversal). */\nexport function safeSessionId(id: string): string {\n return id.replace(/[^a-zA-Z0-9_-]/g, \"-\");\n}\n\nconst red = (s: string): string => redactSecrets(s);\n\n/** Deep-redact a structured value (tool input) preserving object shape. */\nfunction redactValue(value: unknown): unknown {\n try {\n return JSON.parse(redactSecrets(JSON.stringify(value ?? null)));\n } catch {\n return redactSecrets(String(value));\n }\n}\n\n// M94 — era `Record<string, unknown>`. O tipo publicado descreve a mesma forma que este arquivo\n// sempre produziu; o alias local passa a apontar para ele para que escritor e leitor não possam\n// divergir em silêncio.\ntype Block = TranscriptBlock;\n\n/**\n * Builds a session transcript append-by-append, maintaining the `parentUuid` chain. Each turn mints a\n * fresh `uuid` and parents on the previous record; `appendCompactBoundary` starts a NEW ROOT.\n */\nexport class SessionTranscript {\n #records: SessionRecord[] = [];\n #last: string | null = null;\n #opts: SessionTranscriptOptions;\n\n constructor(opts: SessionTranscriptOptions) {\n this.#opts = opts;\n }\n\n /**\n * Seed a transcript from records already on disk so a subsequent append parents\n * on the existing DAG leaf (the last record in file order). Prior records are\n * re-emitted verbatim by {@link records}, so the whole file rewrites atomically\n * as one append-only line set — never shrinking (SE40 compaction is append-only).\n */\n static fromRecords(\n prior: readonly SessionRecord[],\n opts: SessionTranscriptOptions,\n ): SessionTranscript {\n const t = new SessionTranscript(opts);\n t.#records = [...prior];\n t.#last = prior.length > 0 ? (prior[prior.length - 1]?.uuid ?? null) : null;\n return t;\n }\n\n #push(\n rec: Omit<SessionRecord, \"uuid\" | \"parentUuid\" | \"sessionId\" | \"timestamp\">,\n ): SessionRecord {\n const full: SessionRecord = {\n ...rec,\n uuid: randomUUID(),\n parentUuid: this.#last,\n sessionId: this.#opts.sessionId,\n timestamp: new Date().toISOString(),\n isSidechain: false,\n userType: \"external\",\n cwd: this.#opts.cwd,\n version: this.#opts.version ?? \"1.0.0-theokit\",\n };\n this.#records.push(full);\n this.#last = full.uuid;\n return full;\n }\n\n appendUserTurn(text: string): SessionRecord {\n return this.#push({\n type: \"user\",\n message: { role: \"user\", content: [{ type: \"text\", text: red(text) }] },\n });\n }\n\n appendAssistantTurn(turn: AssistantTurn): SessionRecord {\n const content: Block[] = [];\n if (turn.thinking) content.push({ type: \"thinking\", thinking: red(turn.thinking) });\n if (turn.text) content.push({ type: \"text\", text: red(turn.text) });\n for (const c of turn.toolCalls ?? []) {\n content.push({ type: \"tool_use\", id: c.id, name: c.name, input: redactValue(c.input) });\n }\n return this.#push({\n type: \"assistant\",\n message: {\n id: randomUUID(),\n type: \"message\",\n role: \"assistant\",\n model: this.#opts.model,\n content,\n },\n });\n }\n\n appendToolResults(\n results: Array<{ toolUseId: string; content: string; isError?: boolean }>,\n ): SessionRecord {\n const content: Block[] = results.map((r) => ({\n type: \"tool_result\",\n tool_use_id: r.toolUseId,\n content: red(r.content),\n is_error: r.isError === true,\n }));\n return this.#push({ type: \"user\", message: { role: \"user\", content } });\n }\n\n /** Append-only compaction: a `compact_boundary` system record becomes a NEW ROOT (parentUuid null). */\n appendCompactBoundary(meta: { preTokens: number; trigger: string }): SessionRecord {\n const rec: SessionRecord = {\n type: \"system\",\n uuid: randomUUID(),\n parentUuid: null,\n sessionId: this.#opts.sessionId,\n timestamp: new Date().toISOString(),\n subtype: \"compact_boundary\",\n compactMetadata: meta,\n isSidechain: false,\n userType: \"external\",\n cwd: this.#opts.cwd,\n version: this.#opts.version ?? \"1.0.0-theokit\",\n };\n this.#records.push(rec);\n this.#last = rec.uuid;\n return rec;\n }\n\n records(): readonly SessionRecord[] {\n return this.#records;\n }\n}\n\n// ─── Reader (DAG → LlmMessage[]) ──────────────────────────────────────────────────────────────────\n\n/** Earliest timestamp seen per session id. */\nfunction sessionFirstTimestamps(records: readonly SessionRecord[]): Map<string, string> {\n const first = new Map<string, string>();\n for (const r of records) {\n const cur = first.get(r.sessionId);\n if (cur === undefined || r.timestamp < cur) first.set(r.sessionId, r.timestamp);\n }\n return first;\n}\n\n/** Dedup a uuid across sessions: keep the record whose session's earliest timestamp is smallest. */\nfunction dedupByUuid(records: readonly SessionRecord[]): Map<string, SessionRecord> {\n const firstTs = sessionFirstTimestamps(records);\n const byUuid = new Map<string, SessionRecord>();\n for (const r of records) {\n const existing = byUuid.get(r.uuid);\n const wins =\n existing === undefined ||\n (firstTs.get(r.sessionId) ?? \"\") < (firstTs.get(existing.sessionId) ?? \"\");\n if (wins) byUuid.set(r.uuid, r);\n }\n return byUuid;\n}\n\n/** Map one structured block to an LlmContentPart (`undefined` for thinking — dropped on read, SE42/#122). */\nfunction blockToPart(b: Block): LlmContentPart | undefined {\n if (b.type === \"text\") return { type: \"text\", text: String(b.text ?? \"\") };\n if (b.type === \"tool_use\") {\n return {\n type: \"tool_use\",\n id: String(b.id),\n name: String(b.name),\n input: (b.input as Record<string, unknown>) ?? {},\n };\n }\n if (b.type === \"tool_result\") {\n const tr: LlmToolResultPart = {\n type: \"tool_result\",\n toolUseId: String(b.tool_use_id),\n content: typeof b.content === \"string\" ? b.content : JSON.stringify(b.content),\n isError: b.is_error === true,\n };\n return tr;\n }\n return undefined;\n}\n\n/** Map one record to an LlmMessage; `undefined` for non-conversational (system) records. */\nfunction recordToMessage(rec: SessionRecord): LlmMessage | undefined {\n if (rec.type !== \"user\" && rec.type !== \"assistant\") return undefined;\n const blocks = (rec.message?.content as Block[] | undefined) ?? [];\n const parts = blocks.map(blockToPart).filter((p): p is LlmContentPart => p !== undefined);\n return { role: rec.type, content: parts };\n}\n\n/** The most-recent leaf: the LAST record (in input order) whose uuid is never used as a parentUuid. */\nfunction findLatestLeaf(\n records: readonly SessionRecord[],\n byUuid: Map<string, SessionRecord>,\n parents: Set<string>,\n): SessionRecord | undefined {\n let leaf: SessionRecord | undefined;\n for (const r of records) {\n if (byUuid.get(r.uuid) === r && !parents.has(r.uuid)) leaf = r;\n }\n return leaf;\n}\n\n/** Walk parentUuid from a leaf to a root (cycle-safe), returning root→leaf order. */\nfunction walkToRoot(leaf: SessionRecord, byUuid: Map<string, SessionRecord>): SessionRecord[] {\n const chain: SessionRecord[] = [];\n const seen = new Set<string>();\n let cur: SessionRecord | undefined = leaf;\n while (cur !== undefined && !seen.has(cur.uuid)) {\n seen.add(cur.uuid);\n chain.push(cur);\n cur = cur.parentUuid !== null ? byUuid.get(cur.parentUuid) : undefined;\n }\n return chain.reverse();\n}\n\n/**\n * Rebuild the resumable `LlmMessage[]` from transcript records: dedup → find the most-recent leaf →\n * walk `parentUuid` to a root (a `compact_boundary` root terminates the walk) → map to LlmMessages.\n * Returns them in root→leaf (chronological replay) order.\n */\nexport function reconstructMessages(records: readonly SessionRecord[]): LlmMessage[] {\n const byUuid = dedupByUuid(records);\n const parents = new Set<string>();\n for (const r of byUuid.values()) if (r.parentUuid) parents.add(r.parentUuid);\n const leaf = findLatestLeaf(records, byUuid, parents);\n if (leaf === undefined) return [];\n\n const msgs: LlmMessage[] = [];\n for (const rec of walkToRoot(leaf, byUuid)) {\n const m = recordToMessage(rec);\n if (m !== undefined) msgs.push(m);\n }\n return msgs;\n}\n\n// ─── File I/O (the on-disk Claude layout) ─────────────────────────────────────────────────────────\n\n/**\n * Raiz do estado de transcript.\n *\n * `THEOKIT_HOME` vence; o fallback é `~/.theokit`. Home-ancorado de propósito, e NÃO\n * `getTheokitHome(cwd)` de `paths.ts`: aquele faz fallback para `<cwd>/.theokit`, e trocar\n * por ele moveria o transcript de todo mundo que **não** define a variável. O irmão com a\n * forma certa é `catalog-source-models-dev.ts` (M94 ADR-2).\n *\n * Antes do M94 esta função ignorava a env, então quem a definia tinha o estado partido em\n * dois em silêncio — as sessões continuavam em `~/.theokit` enquanto o resto do SDK migrava.\n */\nexport function transcriptRoot(): string {\n const override = process.env.THEOKIT_HOME?.trim();\n if (override !== undefined && override.length > 0) return override;\n return join(homedir(), \".theokit\");\n}\n\n/** @deprecated Use {@link transcriptRoot}. Mantido como alias — mesmo valor. */\nexport function defaultBaseDir(): string {\n return transcriptRoot();\n}\n\n/**\n * Expand a leading `~` / `~/` to the user's home dir. `node:path` does NOT expand `~`, so a\n * `baseDir: \"~/.claude\"` (the documented Claude Code CLI interop path) would otherwise resolve to a\n * literal `./~/.claude` under cwd and the CLI would never find the session. Absolute or relative\n * paths without a leading tilde pass through untouched.\n */\nexport function expandTilde(p: string): string {\n if (p === \"~\") return homedir();\n if (p.startsWith(\"~/\")) return join(homedir(), p.slice(2));\n return p;\n}\n\n/** The `.jsonl` path for a session: `<baseDir>/projects/<encoded-cwd>/<safe-sessionId>.jsonl`. */\nexport function transcriptPath(baseDir: string, cwd: string, sessionId: string): string {\n return join(baseDir, \"projects\", encodeProjectDir(cwd), `${safeSessionId(sessionId)}.jsonl`);\n}\n\n/** Write records as one JSONL line each (atomic; parent dir created). Returns the path. */\nexport async function writeTranscript(\n path: string,\n records: readonly SessionRecord[],\n): Promise<string> {\n await mkdir(dirname(path), { recursive: true });\n const body = records.map((r) => JSON.stringify(r)).join(\"\\n\");\n await replaceFileAtomic(path, records.length > 0 ? `${body}\\n` : \"\");\n return path;\n}\n\n/** Parse one JSONL line to a record; `undefined` for blank/torn/invalid lines (skipped on read). */\nfunction parseRecordLine(line: string): SessionRecord | undefined {\n const trimmed = line.trim();\n if (trimmed.length === 0) return undefined;\n try {\n const rec = JSON.parse(trimmed) as SessionRecord;\n return typeof rec.uuid === \"string\" && typeof rec.type === \"string\" ? rec : undefined;\n } catch {\n return undefined; // a torn last line (crash mid-write) — the rest of the DAG still reconstructs\n }\n}\n\n/** Parse a transcript `.jsonl` into records; a missing file yields `[]`; malformed lines are skipped. */\nexport async function readTranscript(path: string): Promise<SessionRecord[]> {\n let raw: string;\n try {\n raw = await readFile(path, \"utf8\");\n } catch (cause) {\n if ((cause as NodeJS.ErrnoException).code === \"ENOENT\") return [];\n throw cause;\n }\n return raw\n .split(\"\\n\")\n .map(parseRecordLine)\n .filter((r): r is SessionRecord => r !== undefined);\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkCVSNCUBU_cjs = require('./chunk-CVSNCUBU.cjs');
|
|
4
4
|
require('./chunk-LUSXDZPV.cjs');
|
|
5
5
|
require('./chunk-IT3PWBW4.cjs');
|
|
6
6
|
require('./chunk-MUUQ2WFJ.cjs');
|
|
7
7
|
require('./chunk-6JSIEDKL.cjs');
|
|
8
8
|
require('./chunk-YLQQX5W2.cjs');
|
|
9
|
-
require('./chunk-
|
|
9
|
+
require('./chunk-DQSILMWU.cjs');
|
|
10
10
|
require('./chunk-TIZ4TS5V.cjs');
|
|
11
11
|
require('./chunk-EVADEGM7.cjs');
|
|
12
12
|
require('./chunk-D42XHI4O.cjs');
|
|
@@ -20,35 +20,35 @@ require('./chunk-BEURCLDV.cjs');
|
|
|
20
20
|
|
|
21
21
|
Object.defineProperty(exports, "COMPACT_SUMMARY_MARKER", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunkCVSNCUBU_cjs.COMPACT_SUMMARY_MARKER; }
|
|
24
24
|
});
|
|
25
25
|
Object.defineProperty(exports, "COMPACT_USER_MESSAGE_MAX_TOKENS", {
|
|
26
26
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunkCVSNCUBU_cjs.COMPACT_USER_MESSAGE_MAX_TOKENS; }
|
|
28
28
|
});
|
|
29
29
|
Object.defineProperty(exports, "autoCompactIfNeeded", {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
31
|
+
get: function () { return chunkCVSNCUBU_cjs.autoCompactIfNeeded; }
|
|
32
32
|
});
|
|
33
33
|
Object.defineProperty(exports, "buildDefaultSummarizer", {
|
|
34
34
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
35
|
+
get: function () { return chunkCVSNCUBU_cjs.buildDefaultSummarizer; }
|
|
36
36
|
});
|
|
37
37
|
Object.defineProperty(exports, "compactSessionTranscript", {
|
|
38
38
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
39
|
+
get: function () { return chunkCVSNCUBU_cjs.compactSessionTranscript; }
|
|
40
40
|
});
|
|
41
41
|
Object.defineProperty(exports, "isCompactSummary", {
|
|
42
42
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
43
|
+
get: function () { return chunkCVSNCUBU_cjs.isCompactSummary; }
|
|
44
44
|
});
|
|
45
45
|
Object.defineProperty(exports, "resolveSummarizerRoute", {
|
|
46
46
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
47
|
+
get: function () { return chunkCVSNCUBU_cjs.resolveSummarizerRoute; }
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "shouldAutoCompact", {
|
|
50
50
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
51
|
+
get: function () { return chunkCVSNCUBU_cjs.shouldAutoCompact; }
|
|
52
52
|
});
|
|
53
|
-
//# sourceMappingURL=compact-session-
|
|
54
|
-
//# sourceMappingURL=compact-session-
|
|
53
|
+
//# sourceMappingURL=compact-session-OKXLKJIS.cjs.map
|
|
54
|
+
//# sourceMappingURL=compact-session-OKXLKJIS.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"compact-session-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"compact-session-OKXLKJIS.cjs"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { COMPACT_SUMMARY_MARKER, COMPACT_USER_MESSAGE_MAX_TOKENS, autoCompactIfNeeded, buildDefaultSummarizer, compactSessionTranscript, isCompactSummary, resolveSummarizerRoute, shouldAutoCompact } from './chunk-
|
|
1
|
+
export { COMPACT_SUMMARY_MARKER, COMPACT_USER_MESSAGE_MAX_TOKENS, autoCompactIfNeeded, buildDefaultSummarizer, compactSessionTranscript, isCompactSummary, resolveSummarizerRoute, shouldAutoCompact } from './chunk-SQVQH4EK.js';
|
|
2
2
|
import './chunk-6CLRANZA.js';
|
|
3
3
|
import './chunk-EEZ7CFMM.js';
|
|
4
4
|
import './chunk-FD2UT76F.js';
|
|
5
5
|
import './chunk-U54XCYG3.js';
|
|
6
6
|
import './chunk-2XLKLVVR.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-WPBTPSKQ.js';
|
|
8
8
|
import './chunk-S2BBRVQX.js';
|
|
9
9
|
import './chunk-WA3FO4R7.js';
|
|
10
10
|
import './chunk-KAP4GJHO.js';
|
|
@@ -13,5 +13,5 @@ import './chunk-5NBUH3NO.js';
|
|
|
13
13
|
import './chunk-POQT2OIF.js';
|
|
14
14
|
import './chunk-WLKFWQSJ.js';
|
|
15
15
|
import './chunk-JTFYYKDT.js';
|
|
16
|
-
//# sourceMappingURL=compact-session-
|
|
17
|
-
//# sourceMappingURL=compact-session-
|
|
16
|
+
//# sourceMappingURL=compact-session-UHGMWPMW.js.map
|
|
17
|
+
//# sourceMappingURL=compact-session-UHGMWPMW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"compact-session-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"compact-session-UHGMWPMW.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ZodType } from 'zod';
|
|
2
|
-
import { e as SDKAgent, A as AgentOptions, g as ListResult } from './agent-
|
|
3
|
-
import { u as MessageOrigin, ac as SDKUserMessage, b as Run } from './run-
|
|
2
|
+
import { e as SDKAgent, A as AgentOptions, g as ListResult } from './agent-DGv1-d81.cjs';
|
|
3
|
+
import { u as MessageOrigin, ac as SDKUserMessage, b as Run } from './run-CwEJtLPE.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Public type contract for `Workflow.create / .run / .resume` (Adoption
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ZodType } from 'zod';
|
|
2
|
-
import { e as SDKAgent, A as AgentOptions, g as ListResult } from './agent-
|
|
3
|
-
import { u as MessageOrigin, ac as SDKUserMessage, b as Run } from './run-
|
|
2
|
+
import { e as SDKAgent, A as AgentOptions, g as ListResult } from './agent-SmxntivO.js';
|
|
3
|
+
import { u as MessageOrigin, ac as SDKUserMessage, b as Run } from './run-CwEJtLPE.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Public type contract for `Workflow.create / .run / .resume` (Adoption
|
package/dist/cron.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var chunkOQX2DG36_cjs = require('./chunk-OQX2DG36.cjs');
|
|
4
|
+
require('./chunk-JPG7NMNH.cjs');
|
|
5
5
|
require('./chunk-BV2MWEMV.cjs');
|
|
6
6
|
require('./chunk-MZ5ZRORA.cjs');
|
|
7
|
-
require('./chunk-
|
|
7
|
+
require('./chunk-I4QDIQ45.cjs');
|
|
8
8
|
require('./chunk-BUUUWQMB.cjs');
|
|
9
|
-
require('./chunk-
|
|
10
|
-
require('./chunk-
|
|
9
|
+
require('./chunk-HCXDDR6P.cjs');
|
|
10
|
+
require('./chunk-CVSNCUBU.cjs');
|
|
11
11
|
require('./chunk-LUSXDZPV.cjs');
|
|
12
12
|
require('./chunk-IT3PWBW4.cjs');
|
|
13
13
|
require('./chunk-JLMXKTBX.cjs');
|
|
@@ -22,10 +22,10 @@ require('./chunk-YPEPCZHF.cjs');
|
|
|
22
22
|
require('./chunk-VJ26EKGJ.cjs');
|
|
23
23
|
require('./chunk-GIW4L6HY.cjs');
|
|
24
24
|
require('./chunk-7S7KKUO6.cjs');
|
|
25
|
-
require('./chunk-
|
|
25
|
+
require('./chunk-CJVMDRQB.cjs');
|
|
26
26
|
require('./chunk-JD74LN7R.cjs');
|
|
27
27
|
require('./chunk-YLQQX5W2.cjs');
|
|
28
|
-
require('./chunk-
|
|
28
|
+
require('./chunk-DQSILMWU.cjs');
|
|
29
29
|
require('./chunk-ANIZEWTU.cjs');
|
|
30
30
|
require('./chunk-WJVHMTKB.cjs');
|
|
31
31
|
require('./chunk-TIZ4TS5V.cjs');
|
|
@@ -45,7 +45,7 @@ require('./chunk-BEURCLDV.cjs');
|
|
|
45
45
|
|
|
46
46
|
Object.defineProperty(exports, "Cron", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunkOQX2DG36_cjs.Cron; }
|
|
49
49
|
});
|
|
50
50
|
//# sourceMappingURL=cron.cjs.map
|
|
51
51
|
//# sourceMappingURL=cron.cjs.map
|
package/dist/cron.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as Cron } from './cron-
|
|
2
|
-
import './run-
|
|
3
|
-
import './agent-
|
|
1
|
+
export { C as Cron } from './cron-BiK_aNJI.cjs';
|
|
2
|
+
import './run-CwEJtLPE.cjs';
|
|
3
|
+
import './agent-DGv1-d81.cjs';
|
|
4
4
|
import 'zod';
|
package/dist/cron.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as Cron } from './cron-
|
|
2
|
-
import './run-
|
|
3
|
-
import './agent-
|
|
1
|
+
export { C as Cron } from './cron-Dx7B-3WB.js';
|
|
2
|
+
import './run-CwEJtLPE.js';
|
|
3
|
+
import './agent-SmxntivO.js';
|
|
4
4
|
import 'zod';
|
package/dist/cron.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { Cron } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { Cron } from './chunk-HBTEK5LK.js';
|
|
2
|
+
import './chunk-NI4PAMJQ.js';
|
|
3
3
|
import './chunk-2SFBB54R.js';
|
|
4
4
|
import './chunk-HRA3CPGG.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-334WDVFZ.js';
|
|
6
6
|
import './chunk-K2BQQ445.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
7
|
+
import './chunk-EIPSZ4GA.js';
|
|
8
|
+
import './chunk-SQVQH4EK.js';
|
|
9
9
|
import './chunk-6CLRANZA.js';
|
|
10
10
|
import './chunk-EEZ7CFMM.js';
|
|
11
11
|
import './chunk-XAUBQMQU.js';
|
|
@@ -20,10 +20,10 @@ import './chunk-UJ7IQJAG.js';
|
|
|
20
20
|
import './chunk-7AD3ZTZL.js';
|
|
21
21
|
import './chunk-V4XRLPEF.js';
|
|
22
22
|
import './chunk-5PZMMF4H.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-UAYYNWYJ.js';
|
|
24
24
|
import './chunk-77FOZCOT.js';
|
|
25
25
|
import './chunk-2XLKLVVR.js';
|
|
26
|
-
import './chunk-
|
|
26
|
+
import './chunk-WPBTPSKQ.js';
|
|
27
27
|
import './chunk-BXV2QUIC.js';
|
|
28
28
|
import './chunk-4VPXM6UU.js';
|
|
29
29
|
import './chunk-S2BBRVQX.js';
|
package/dist/errors.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AgentDisposedError, c as AgentRunError, d as AgentRunErrorCode, e as AuthenticationError, g as BudgetExceededError, C as ConfigurationError, u as CredentialPoolExhaustedError, m as ErrorCode, E as ErrorMetadata, I as IntegrationNotConnectedError, n as InvalidTaskIdError, K as KnownAgentRunErrorCode, M as MemoryAdapterError, o as MemoryAdapterErrorCode, N as NetworkError, R as RateLimitError, p as TaskNotFoundError, T as TheokitAgentError, U as UnknownAgentError, q as UnsupportedBudgetOperationError, r as UnsupportedRunOperationError, s as UnsupportedTaskOperationError, t as isTransientError } from './errors-
|
|
2
|
-
import './run-
|
|
1
|
+
export { A as AgentDisposedError, c as AgentRunError, d as AgentRunErrorCode, e as AuthenticationError, g as BudgetExceededError, C as ConfigurationError, u as CredentialPoolExhaustedError, m as ErrorCode, E as ErrorMetadata, I as IntegrationNotConnectedError, n as InvalidTaskIdError, K as KnownAgentRunErrorCode, M as MemoryAdapterError, o as MemoryAdapterErrorCode, N as NetworkError, R as RateLimitError, p as TaskNotFoundError, T as TheokitAgentError, U as UnknownAgentError, q as UnsupportedBudgetOperationError, r as UnsupportedRunOperationError, s as UnsupportedTaskOperationError, t as isTransientError } from './errors-DyVbXdR4.cjs';
|
|
2
|
+
import './run-CwEJtLPE.cjs';
|
|
3
3
|
import 'zod';
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AgentDisposedError, c as AgentRunError, d as AgentRunErrorCode, e as AuthenticationError, g as BudgetExceededError, C as ConfigurationError, u as CredentialPoolExhaustedError, m as ErrorCode, E as ErrorMetadata, I as IntegrationNotConnectedError, n as InvalidTaskIdError, K as KnownAgentRunErrorCode, M as MemoryAdapterError, o as MemoryAdapterErrorCode, N as NetworkError, R as RateLimitError, p as TaskNotFoundError, T as TheokitAgentError, U as UnknownAgentError, q as UnsupportedBudgetOperationError, r as UnsupportedRunOperationError, s as UnsupportedTaskOperationError, t as isTransientError } from './errors-
|
|
2
|
-
import './run-
|
|
1
|
+
export { A as AgentDisposedError, c as AgentRunError, d as AgentRunErrorCode, e as AuthenticationError, g as BudgetExceededError, C as ConfigurationError, u as CredentialPoolExhaustedError, m as ErrorCode, E as ErrorMetadata, I as IntegrationNotConnectedError, n as InvalidTaskIdError, K as KnownAgentRunErrorCode, M as MemoryAdapterError, o as MemoryAdapterErrorCode, N as NetworkError, R as RateLimitError, p as TaskNotFoundError, T as TheokitAgentError, U as UnknownAgentError, q as UnsupportedBudgetOperationError, r as UnsupportedRunOperationError, s as UnsupportedTaskOperationError, t as isTransientError } from './errors-Cua4WC9H.js';
|
|
2
|
+
import './run-CwEJtLPE.js';
|
|
3
3
|
import 'zod';
|
package/dist/eval.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkS7OEXQMI_cjs = require('./chunk-S7OEXQMI.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkJPG7NMNH_cjs = require('./chunk-JPG7NMNH.cjs');
|
|
5
5
|
require('./chunk-BV2MWEMV.cjs');
|
|
6
6
|
require('./chunk-MZ5ZRORA.cjs');
|
|
7
|
-
require('./chunk-
|
|
7
|
+
require('./chunk-I4QDIQ45.cjs');
|
|
8
8
|
var chunkBUUUWQMB_cjs = require('./chunk-BUUUWQMB.cjs');
|
|
9
|
-
require('./chunk-
|
|
10
|
-
require('./chunk-
|
|
9
|
+
require('./chunk-HCXDDR6P.cjs');
|
|
10
|
+
require('./chunk-CVSNCUBU.cjs');
|
|
11
11
|
require('./chunk-LUSXDZPV.cjs');
|
|
12
12
|
require('./chunk-IT3PWBW4.cjs');
|
|
13
13
|
require('./chunk-JLMXKTBX.cjs');
|
|
@@ -22,10 +22,10 @@ require('./chunk-YPEPCZHF.cjs');
|
|
|
22
22
|
require('./chunk-VJ26EKGJ.cjs');
|
|
23
23
|
require('./chunk-GIW4L6HY.cjs');
|
|
24
24
|
require('./chunk-7S7KKUO6.cjs');
|
|
25
|
-
var
|
|
25
|
+
var chunkCJVMDRQB_cjs = require('./chunk-CJVMDRQB.cjs');
|
|
26
26
|
require('./chunk-JD74LN7R.cjs');
|
|
27
27
|
require('./chunk-YLQQX5W2.cjs');
|
|
28
|
-
require('./chunk-
|
|
28
|
+
require('./chunk-DQSILMWU.cjs');
|
|
29
29
|
require('./chunk-ANIZEWTU.cjs');
|
|
30
30
|
require('./chunk-WJVHMTKB.cjs');
|
|
31
31
|
require('./chunk-TIZ4TS5V.cjs');
|
|
@@ -324,14 +324,14 @@ function probeRow(entry, index) {
|
|
|
324
324
|
}
|
|
325
325
|
function computeDoneKeys(persist) {
|
|
326
326
|
if (persist.resume !== true) return /* @__PURE__ */ new Set();
|
|
327
|
-
return
|
|
327
|
+
return chunkCJVMDRQB_cjs.readJsonlIds(
|
|
328
328
|
persist.path,
|
|
329
329
|
(parsed) => parsed.error === void 0 ? persist.key(parsed) : void 0
|
|
330
330
|
);
|
|
331
331
|
}
|
|
332
332
|
function appendRowSafely(path, row) {
|
|
333
333
|
try {
|
|
334
|
-
|
|
334
|
+
chunkCJVMDRQB_cjs.appendJsonl(path, row);
|
|
335
335
|
} catch (err) {
|
|
336
336
|
console.warn(
|
|
337
337
|
"[eval] persist append failed (ignored):",
|
|
@@ -767,7 +767,7 @@ function makeDefaultEmbedder(opts) {
|
|
|
767
767
|
let runtime;
|
|
768
768
|
return (texts) => {
|
|
769
769
|
if (runtime === void 0) {
|
|
770
|
-
runtime =
|
|
770
|
+
runtime = chunkJPG7NMNH_cjs.openRouterMemoryEmbeddingProviderAdapter.create(embedderCreateOptions(opts));
|
|
771
771
|
}
|
|
772
772
|
return runtime.then((rt) => rt.embed(texts));
|
|
773
773
|
};
|
|
@@ -1011,11 +1011,11 @@ var Eval = class _Eval {
|
|
|
1011
1011
|
|
|
1012
1012
|
Object.defineProperty(exports, "JsonlParseError", {
|
|
1013
1013
|
enumerable: true,
|
|
1014
|
-
get: function () { return
|
|
1014
|
+
get: function () { return chunkCJVMDRQB_cjs.JsonlParseError; }
|
|
1015
1015
|
});
|
|
1016
1016
|
Object.defineProperty(exports, "loadJsonl", {
|
|
1017
1017
|
enumerable: true,
|
|
1018
|
-
get: function () { return
|
|
1018
|
+
get: function () { return chunkCJVMDRQB_cjs.loadJsonl; }
|
|
1019
1019
|
});
|
|
1020
1020
|
exports.Eval = Eval;
|
|
1021
1021
|
exports.EvalAlreadyRunningError = EvalAlreadyRunningError;
|
package/dist/eval.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { shellEscapePosix, LocalSandbox } from './chunk-SKWVAQAY.js';
|
|
2
|
-
import { openRouterMemoryEmbeddingProviderAdapter } from './chunk-
|
|
2
|
+
import { openRouterMemoryEmbeddingProviderAdapter } from './chunk-NI4PAMJQ.js';
|
|
3
3
|
import './chunk-2SFBB54R.js';
|
|
4
4
|
import './chunk-HRA3CPGG.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-334WDVFZ.js';
|
|
6
6
|
import { getTracer } from './chunk-K2BQQ445.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
7
|
+
import './chunk-EIPSZ4GA.js';
|
|
8
|
+
import './chunk-SQVQH4EK.js';
|
|
9
9
|
import './chunk-6CLRANZA.js';
|
|
10
10
|
import './chunk-EEZ7CFMM.js';
|
|
11
11
|
import './chunk-XAUBQMQU.js';
|
|
@@ -20,11 +20,11 @@ import './chunk-UJ7IQJAG.js';
|
|
|
20
20
|
import './chunk-7AD3ZTZL.js';
|
|
21
21
|
import './chunk-V4XRLPEF.js';
|
|
22
22
|
import './chunk-5PZMMF4H.js';
|
|
23
|
-
import { readJsonlIds, appendJsonl } from './chunk-
|
|
24
|
-
export { JsonlParseError, loadJsonl } from './chunk-
|
|
23
|
+
import { readJsonlIds, appendJsonl } from './chunk-UAYYNWYJ.js';
|
|
24
|
+
export { JsonlParseError, loadJsonl } from './chunk-UAYYNWYJ.js';
|
|
25
25
|
import './chunk-77FOZCOT.js';
|
|
26
26
|
import './chunk-2XLKLVVR.js';
|
|
27
|
-
import './chunk-
|
|
27
|
+
import './chunk-WPBTPSKQ.js';
|
|
28
28
|
import './chunk-BXV2QUIC.js';
|
|
29
29
|
import './chunk-4VPXM6UU.js';
|
|
30
30
|
import './chunk-S2BBRVQX.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { FsSessionStore } from './chunk-EIPSZ4GA.js';
|
|
2
|
+
import './chunk-UAYYNWYJ.js';
|
|
3
|
+
import './chunk-2XLKLVVR.js';
|
|
4
|
+
import './chunk-WPBTPSKQ.js';
|
|
5
|
+
import './chunk-S2BBRVQX.js';
|
|
6
|
+
import './chunk-JTFYYKDT.js';
|
|
7
|
+
//# sourceMappingURL=fs-session-store-2J5JOXC2.js.map
|
|
8
|
+
//# sourceMappingURL=fs-session-store-2J5JOXC2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"fs-session-store-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"fs-session-store-2J5JOXC2.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkHCXDDR6P_cjs = require('./chunk-HCXDDR6P.cjs');
|
|
4
|
+
require('./chunk-CJVMDRQB.cjs');
|
|
5
|
+
require('./chunk-YLQQX5W2.cjs');
|
|
6
|
+
require('./chunk-DQSILMWU.cjs');
|
|
7
|
+
require('./chunk-TIZ4TS5V.cjs');
|
|
8
|
+
require('./chunk-BEURCLDV.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(exports, "FsSessionStore", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkHCXDDR6P_cjs.FsSessionStore; }
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=fs-session-store-DNAJ6RQG.cjs.map
|
|
17
|
+
//# sourceMappingURL=fs-session-store-DNAJ6RQG.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"fs-session-store-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"fs-session-store-DNAJ6RQG.cjs"}
|