@phamvuhoang/otto-core 0.13.0 → 0.15.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/dist/cli-help.d.ts +10 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +18 -1
- package/dist/cli-help.js.map +1 -1
- package/dist/context-budget.d.ts +78 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +114 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/context-report-cli.d.ts +36 -0
- package/dist/context-report-cli.d.ts.map +1 -0
- package/dist/context-report-cli.js +81 -0
- package/dist/context-report-cli.js.map +1 -0
- package/dist/context-report.d.ts +40 -0
- package/dist/context-report.d.ts.map +1 -0
- package/dist/context-report.js +88 -0
- package/dist/context-report.js.map +1 -0
- package/dist/eval-run.d.ts +16 -0
- package/dist/eval-run.d.ts.map +1 -1
- package/dist/eval-run.js +66 -1
- package/dist/eval-run.js.map +1 -1
- package/dist/eval.d.ts +2 -0
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +5 -0
- package/dist/eval.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/iteration-compaction.d.ts +73 -0
- package/dist/iteration-compaction.d.ts.map +1 -0
- package/dist/iteration-compaction.js +105 -0
- package/dist/iteration-compaction.js.map +1 -0
- package/dist/loop.d.ts +4 -0
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +25 -6
- package/dist/loop.js.map +1 -1
- package/dist/memory.d.ts +56 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +0 -0
- package/dist/memory.js.map +1 -1
- package/dist/read-dedup.d.ts +84 -0
- package/dist/read-dedup.d.ts.map +1 -0
- package/dist/read-dedup.js +96 -0
- package/dist/read-dedup.js.map +1 -0
- package/dist/risk.d.ts +7 -0
- package/dist/risk.d.ts.map +1 -1
- package/dist/risk.js +17 -0
- package/dist/risk.js.map +1 -1
- package/dist/run-bin.d.ts.map +1 -1
- package/dist/run-bin.js +17 -0
- package/dist/run-bin.js.map +1 -1
- package/dist/run-report.d.ts +25 -0
- package/dist/run-report.d.ts.map +1 -1
- package/dist/run-report.js.map +1 -1
- package/dist/runner.d.ts +4 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/runs-cli.d.ts +43 -0
- package/dist/runs-cli.d.ts.map +1 -0
- package/dist/runs-cli.js +96 -0
- package/dist/runs-cli.js.map +1 -0
- package/dist/skills-cli.d.ts +39 -0
- package/dist/skills-cli.d.ts.map +1 -0
- package/dist/skills-cli.js +137 -0
- package/dist/skills-cli.js.map +1 -0
- package/dist/skills.d.ts +195 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +320 -0
- package/dist/skills.js.map +1 -0
- package/dist/stage-exec.d.ts.map +1 -1
- package/dist/stage-exec.js +10 -3
- package/dist/stage-exec.js.map +1 -1
- package/dist/tokens.d.ts +21 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +20 -0
- package/dist/tokens.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context telemetry (issue #62 P7, slice 1 — "measure before optimizing").
|
|
3
|
+
*
|
|
4
|
+
* A pure analyzer over a *rendered* stage prompt: it attributes the inline
|
|
5
|
+
* window footprint to the sections that actually fill it, so a later P7 slice
|
|
6
|
+
* (prefix caching, bounded learnings, compaction, read-dedup, budget) can prove
|
|
7
|
+
* it shrank the right thing. INERT on the loop — nothing here runs a stage or
|
|
8
|
+
* changes behavior; it only describes a string.
|
|
9
|
+
*
|
|
10
|
+
* Token counts are an estimate (`ceil(chars/4)`), labelled as such. The
|
|
11
|
+
* authoritative per-stage usage comes from the provider via `tokens.ts`; this
|
|
12
|
+
* module answers the orthogonal *composition* question ("which section is the
|
|
13
|
+
* prompt made of") that a single usage total cannot.
|
|
14
|
+
*/
|
|
15
|
+
/** Standard rough token estimate: ~4 chars per token, rounded up. */
|
|
16
|
+
export function estimateTokens(chars) {
|
|
17
|
+
return Math.ceil(Math.max(0, chars) / 4);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Top-level rendered-prompt block tags → the category they fill. These markers
|
|
21
|
+
* are stable across the afk / ghafk / ghafk-issue templates (see
|
|
22
|
+
* `templates/{afk,ghafk,ghafk-issue}.md`). Anything outside a recognized block
|
|
23
|
+
* is the workflow instructions, attributed to `playbook`.
|
|
24
|
+
*/
|
|
25
|
+
const BLOCK_CATEGORY = {
|
|
26
|
+
commits: "commits",
|
|
27
|
+
learnings: "learnings",
|
|
28
|
+
inputs: "inputs",
|
|
29
|
+
issue: "inputs",
|
|
30
|
+
"issues-summary": "inputs",
|
|
31
|
+
"issues-full-file": "inputs",
|
|
32
|
+
};
|
|
33
|
+
/** Sum the char footprint of every recognized `<tag>…</tag>` span, by category. */
|
|
34
|
+
function recognizedSpans(prompt) {
|
|
35
|
+
const byCategory = new Map();
|
|
36
|
+
for (const [tag, category] of Object.entries(BLOCK_CATEGORY)) {
|
|
37
|
+
// Non-greedy, dot-all: each top-level block appears at most once per prompt.
|
|
38
|
+
const re = new RegExp(`<${tag}>[\\s\\S]*?</${tag}>`, "g");
|
|
39
|
+
for (const match of prompt.matchAll(re)) {
|
|
40
|
+
byCategory.set(category, (byCategory.get(category) ?? 0) + match[0].length);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return byCategory;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Segment a rendered stage prompt into its context categories. The category
|
|
47
|
+
* char counts sum to the whole prompt: recognized blocks are attributed to
|
|
48
|
+
* their category, all remaining text falls to `playbook`.
|
|
49
|
+
*/
|
|
50
|
+
export function analyzeContext(prompt) {
|
|
51
|
+
const totalChars = prompt.length;
|
|
52
|
+
const byCategory = recognizedSpans(prompt);
|
|
53
|
+
const recognizedTotal = [...byCategory.values()].reduce((a, b) => a + b, 0);
|
|
54
|
+
const playbook = totalChars - recognizedTotal;
|
|
55
|
+
if (playbook > 0) {
|
|
56
|
+
byCategory.set("playbook", playbook);
|
|
57
|
+
}
|
|
58
|
+
const segments = [...byCategory.entries()]
|
|
59
|
+
.filter(([, chars]) => chars > 0)
|
|
60
|
+
.map(([category, chars]) => ({
|
|
61
|
+
category,
|
|
62
|
+
chars,
|
|
63
|
+
estimatedTokens: estimateTokens(chars),
|
|
64
|
+
}))
|
|
65
|
+
.sort((a, b) => b.chars - a.chars);
|
|
66
|
+
return {
|
|
67
|
+
totalChars,
|
|
68
|
+
estimatedTokens: estimateTokens(totalChars),
|
|
69
|
+
segments,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const pct = new Intl.NumberFormat("en-US", { maximumFractionDigits: 1 });
|
|
73
|
+
const num = new Intl.NumberFormat("en-US");
|
|
74
|
+
/**
|
|
75
|
+
* Render a breakdown as a short, human-readable composition report. The `~`
|
|
76
|
+
* prefix marks the token figures as estimates, not authoritative billing.
|
|
77
|
+
*/
|
|
78
|
+
export function formatContextReport(b) {
|
|
79
|
+
const header = `context: ${num.format(b.totalChars)} chars (~${num.format(b.estimatedTokens)} tokens)`;
|
|
80
|
+
if (b.segments.length === 0)
|
|
81
|
+
return header;
|
|
82
|
+
const lines = b.segments.map((s) => {
|
|
83
|
+
const share = b.totalChars > 0 ? (s.chars / b.totalChars) * 100 : 0;
|
|
84
|
+
return ` ${s.category.padEnd(10)} ${num.format(s.chars)} chars (~${num.format(s.estimatedTokens)} tokens) ${pct.format(share)}%`;
|
|
85
|
+
});
|
|
86
|
+
return [header, ...lines].join("\n");
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=context-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-report.js","sourceRoot":"","sources":["../src/context-report.ts"],"names":[],"mappings":"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"}
|
package/dist/eval-run.d.ts
CHANGED
|
@@ -44,6 +44,22 @@ export type EvalDeps = {
|
|
|
44
44
|
readStageRecords: (workspaceDir: string, runId: string) => StageRecord[];
|
|
45
45
|
runChecks: (checks: BenchmarkCheck[], cwd: string) => CheckResult[];
|
|
46
46
|
};
|
|
47
|
+
/** Injectable host surface for {@link runEvalCompare} (mirrors `InspectDeps`). */
|
|
48
|
+
export type CompareDeps = {
|
|
49
|
+
env: NodeJS.ProcessEnv;
|
|
50
|
+
cwd: string;
|
|
51
|
+
out: (msg: string) => void;
|
|
52
|
+
err: (msg: string) => void;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Drive `otto-eval compare <run-a> <run-b>`: a **read-only, non-paid** comparison
|
|
56
|
+
* of two already-recorded run bundles. Unlike the benchmark runner it never
|
|
57
|
+
* invokes a model — it scores each bundle's trajectory (`scoreTrajectory`) and
|
|
58
|
+
* prints the side-by-side `compareTrajectories` table, so an operator can A/B two
|
|
59
|
+
* past runs without reading source or re-paying for a run. `latest` resolves to
|
|
60
|
+
* the most recent bundle. Resolves to `0`, or `1` when an id is missing/unknown.
|
|
61
|
+
*/
|
|
62
|
+
export declare function runEvalCompare(argv: string[], deps?: CompareDeps): Promise<number>;
|
|
47
63
|
/**
|
|
48
64
|
* Validate a raw eval-config matrix (array of `{label, args?, env?}`). Throws on
|
|
49
65
|
* a non-array or a config missing its label. Pure.
|
package/dist/eval-run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-run.d.ts","sourceRoot":"","sources":["../src/eval-run.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG;IACvB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IAC1E,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;IACzE,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;CACrE,CAAC;
|
|
1
|
+
{"version":3,"file":"eval-run.d.ts","sourceRoot":"","sources":["../src/eval-run.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG;IACvB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,CAAC;IAC1E,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;IACzE,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;CACrE,CAAC;AAqCF,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,CAAC;AAoBF;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,WAAgC,GACrC,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,CA0B3D;AAuBD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,QAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA0FjB"}
|
package/dist/eval-run.js
CHANGED
|
@@ -30,7 +30,62 @@ const defaultDeps = {
|
|
|
30
30
|
readStageRecords: readStageRecordsFs,
|
|
31
31
|
runChecks: runFixtureChecks,
|
|
32
32
|
};
|
|
33
|
-
const USAGE = "Usage: otto-eval <suite.json> [<configs.json>] [--iterations <n>]"
|
|
33
|
+
const USAGE = "Usage: otto-eval <suite.json> [<configs.json>] [--iterations <n>]\n" +
|
|
34
|
+
" otto-eval compare <run-a> <run-b>";
|
|
35
|
+
const COMPARE_USAGE = "Usage: otto-eval compare <run-a|latest> <run-b|latest>";
|
|
36
|
+
const compareDefaultDeps = {
|
|
37
|
+
env: process.env,
|
|
38
|
+
cwd: process.cwd(),
|
|
39
|
+
out: (m) => process.stdout.write(`${m}\n`),
|
|
40
|
+
err: (m) => process.stderr.write(`${m}\n`),
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Resolve a run-id argument against a workspace: an explicit id, or `latest` →
|
|
44
|
+
* the most recent bundle. Returns null when `latest` is asked of an empty
|
|
45
|
+
* `.otto/runs/` (the caller reports it).
|
|
46
|
+
*/
|
|
47
|
+
function resolveRunId(workspaceDir, arg) {
|
|
48
|
+
if (arg !== "latest")
|
|
49
|
+
return arg;
|
|
50
|
+
const ids = listRunIds(workspaceDir);
|
|
51
|
+
return ids.length ? ids[ids.length - 1] : null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Drive `otto-eval compare <run-a> <run-b>`: a **read-only, non-paid** comparison
|
|
55
|
+
* of two already-recorded run bundles. Unlike the benchmark runner it never
|
|
56
|
+
* invokes a model — it scores each bundle's trajectory (`scoreTrajectory`) and
|
|
57
|
+
* prints the side-by-side `compareTrajectories` table, so an operator can A/B two
|
|
58
|
+
* past runs without reading source or re-paying for a run. `latest` resolves to
|
|
59
|
+
* the most recent bundle. Resolves to `0`, or `1` when an id is missing/unknown.
|
|
60
|
+
*/
|
|
61
|
+
export async function runEvalCompare(argv, deps = compareDefaultDeps) {
|
|
62
|
+
if (argv[0] === "-h" || argv[0] === "--help") {
|
|
63
|
+
deps.out(COMPARE_USAGE);
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
const [aArg, bArg, ...extra] = argv;
|
|
67
|
+
if (!aArg || !bArg || extra.length > 0) {
|
|
68
|
+
deps.err(`compare takes exactly two run ids.\n${COMPARE_USAGE}`);
|
|
69
|
+
return 1;
|
|
70
|
+
}
|
|
71
|
+
const workspaceDir = resolve(deps.env.OTTO_WORKSPACE ?? deps.cwd);
|
|
72
|
+
const labelled = [];
|
|
73
|
+
for (const arg of [aArg, bArg]) {
|
|
74
|
+
const runId = resolveRunId(workspaceDir, arg);
|
|
75
|
+
const manifest = runId ? readManifestFs(workspaceDir, runId) : null;
|
|
76
|
+
if (!manifest) {
|
|
77
|
+
deps.err(`No evidence bundle for run '${arg}' under ${workspaceDir}/.otto/runs/. ` +
|
|
78
|
+
"Check the run id (or pass `latest`).");
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
labelled.push({
|
|
82
|
+
label: runId,
|
|
83
|
+
signals: scoreTrajectory(manifest, readStageRecordsFs(workspaceDir, runId)),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
deps.out(compareTrajectories(labelled));
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
34
89
|
/**
|
|
35
90
|
* Validate a raw eval-config matrix (array of `{label, args?, env?}`). Throws on
|
|
36
91
|
* a non-array or a config missing its label. Pure.
|
|
@@ -87,6 +142,16 @@ function parseArgs(argv) {
|
|
|
87
142
|
* `0` when every expectation held, `1` otherwise.
|
|
88
143
|
*/
|
|
89
144
|
export async function runEval(argv, deps = defaultDeps) {
|
|
145
|
+
// `compare` is the read-only, non-paid path: short-circuit before any suite
|
|
146
|
+
// loading or model invocation. It reuses runEval's stdio/env injection.
|
|
147
|
+
if (argv[0] === "compare") {
|
|
148
|
+
return runEvalCompare(argv.slice(1), {
|
|
149
|
+
env: deps.env,
|
|
150
|
+
cwd: deps.cwd,
|
|
151
|
+
out: deps.out,
|
|
152
|
+
err: deps.err,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
90
155
|
const args = parseArgs(argv);
|
|
91
156
|
if (args.help) {
|
|
92
157
|
deps.out(USAGE);
|
package/dist/eval-run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-run.js","sourceRoot":"","sources":["../src/eval-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EACL,UAAU,EACV,YAAY,IAAI,cAAc,EAC9B,gBAAgB,IAAI,kBAAkB,GAGvC,MAAM,iBAAiB,CAAC;AAgDzB,MAAM,aAAa,GAAgB,KAAK,EAAE,GAAG,EAAE,EAAE;IAC/C,MAAM,IAAI,GACR,GAAG,CAAC,GAAG,KAAK,UAAU;QACpB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,GAAG,CAAC,UAAU;YACnB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE;YACnC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,WAAW,GAAa;IAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,MAAM,EAAE,aAAa;IACrB,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,gBAAgB;CAC5B,CAAC;AAEF,MAAM,KAAK,GACT,
|
|
1
|
+
{"version":3,"file":"eval-run.js","sourceRoot":"","sources":["../src/eval-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GAIjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EACL,UAAU,EACV,YAAY,IAAI,cAAc,EAC9B,gBAAgB,IAAI,kBAAkB,GAGvC,MAAM,iBAAiB,CAAC;AAgDzB,MAAM,aAAa,GAAgB,KAAK,EAAE,GAAG,EAAE,EAAE;IAC/C,MAAM,IAAI,GACR,GAAG,CAAC,GAAG,KAAK,UAAU;QACpB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE;YACjC,GAAG,EAAE,GAAG,CAAC,UAAU;YACnB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE;YACnC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,WAAW,GAAa;IAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,MAAM,EAAE,aAAa;IACrB,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,gBAAgB;CAC5B,CAAC;AAEF,MAAM,KAAK,GACT,qEAAqE;IACrE,0CAA0C,CAAC;AAE7C,MAAM,aAAa,GAAG,wDAAwD,CAAC;AAU/E,MAAM,kBAAkB,GAAgB;IACtC,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;CAC3C,CAAC;AAEF;;;;GAIG;AACH,SAAS,YAAY,CAAC,YAAoB,EAAE,GAAW;IACrD,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAc,EACd,OAAoB,kBAAkB;IAEtC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,uCAAuC,aAAa,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAqE,EAAE,CAAC;IACtF,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CACN,+BAA+B,GAAG,WAAW,YAAY,gBAAgB;gBACvE,sCAAsC,CACzC,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,KAAM;YACb,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,kBAAkB,CAAC,YAAY,EAAE,KAAM,CAAC,CAAC;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,GAAG,GAAG,CAA4B,CAAC;QACzC,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,uCAAuC,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,KAAK,uCAAuC,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxF,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,KAAK,4BAA4B,CAAC,CAAC;QACzE,CAAC;QACD,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAG,IAAiB,IAAI,EAAE;YAC9B,GAAG,EAAG,GAA8B,IAAI,EAAE;SAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AASD,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,MAAM,GAAe,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;aAChD,IAAI,CAAC,KAAK,cAAc;YAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;YAChE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAc,EACd,OAAiB,WAAW;IAE5B,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,KAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,GAAG,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,OAAO,GAAiB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,gBAAgB,CACxB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CACtE,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,WAAW,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAqE,EAAE,CAAC;QACtF,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAmB;gBAC1B,IAAI;gBACJ,MAAM;gBACN,UAAU;gBACV,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;gBACpC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE;aACpC,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS,GAAG,KAAK,CAAC;gBAClB,YAAY,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,uCAAuC,KAAK,IAAI,CAAC,CAAC;gBACvF,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,SAAS,GAAG,KAAK,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAChD,YAAY,CAAC,IAAI,CACf,OAAO,CAAC,MAAM;gBACZ,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,QAAQ;gBAC7B,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,WAAW,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,YAAY;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC"}
|
package/dist/eval.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export type EvalSignals = {
|
|
|
29
29
|
elapsedMs: number | null;
|
|
30
30
|
/** Safety events recorded across the manifest and stage records (issue #43). */
|
|
31
31
|
safetyEventCount: number;
|
|
32
|
+
/** Skills applied across the manifest and stage records (issue #44). */
|
|
33
|
+
skillUsageCount: number;
|
|
32
34
|
};
|
|
33
35
|
/**
|
|
34
36
|
* Derive {@link EvalSignals} from a recorded run trajectory. Pure: no I/O, no
|
package/dist/eval.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGhE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGhE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,WAAW,EAAE,GACpB,WAAW,CAkBb;AAUD,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAyDtE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,CAoCnE"}
|
package/dist/eval.js
CHANGED
|
@@ -19,6 +19,8 @@ export function scoreTrajectory(manifest, stages) {
|
|
|
19
19
|
elapsedMs: elapsedMs(manifest.startedAt, manifest.finishedAt),
|
|
20
20
|
safetyEventCount: (manifest.safetyEvents?.length ?? 0) +
|
|
21
21
|
stages.reduce((n, s) => n + (s.safetyEvents?.length ?? 0), 0),
|
|
22
|
+
skillUsageCount: (manifest.skillsUsed?.length ?? 0) +
|
|
23
|
+
stages.reduce((n, s) => n + (s.skillsUsed?.length ?? 0), 0),
|
|
22
24
|
};
|
|
23
25
|
}
|
|
24
26
|
function elapsedMs(startedAt, finishedAt) {
|
|
@@ -66,6 +68,9 @@ const COMPARE_COLUMNS = [
|
|
|
66
68
|
// detected/reported injections (good detection), so there is no honest
|
|
67
69
|
// direction to mark best/worst.
|
|
68
70
|
{ header: "Safety events", cell: (s) => String(s.safetyEventCount) },
|
|
71
|
+
// Shown but NOT ranked: more skill reuse is usually good (less re-planning),
|
|
72
|
+
// but a config can succeed with zero skills, so there is no honest best/worst.
|
|
73
|
+
{ header: "Skills used", cell: (s) => String(s.skillUsageCount) },
|
|
69
74
|
];
|
|
70
75
|
/**
|
|
71
76
|
* Render a stable markdown comparison table across labelled runs — one row per
|
package/dist/eval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,17 +7,25 @@ export { deriveTaskKey, describeScope, parseGithubRepo, type WorkScope, type Wor
|
|
|
7
7
|
export { renderTemplate, type RenderOptions, type RenderVars, } from "./render.js";
|
|
8
8
|
export { claudeRuntime, getAgentRuntime, runStage, type AgentRuntime, type StageResult, } from "./runner.js";
|
|
9
9
|
export { AGENT_DISPLAY_NAMES, DEFAULT_AGENT, parseAgentId, readAgentConfig, resolveAgentRuntime, type AgentRuntimeId, type AgentSelectionSource, type ResolvedAgentRuntime, } from "./agent-runtime.js";
|
|
10
|
-
export { emptyTokenUsage, parseTokenMode, parseTokenUsage, type TokenMode, type TokenUsage, } from "./tokens.js";
|
|
11
|
-
export {
|
|
10
|
+
export { emptyTokenUsage, formatCacheEfficiency, parseTokenMode, parseTokenUsage, summarizeCacheEfficiency, type CacheEfficiency, type TokenMode, type TokenUsage, } from "./tokens.js";
|
|
11
|
+
export { analyzeContext, estimateTokens, formatContextReport, type ContextBreakdown, type ContextCategory, type ContextSegment, } from "./context-report.js";
|
|
12
|
+
export { DEFAULT_COMMITS_BUDGET_CHARS, compactCommits, formatCompactedCommits, parseCommitLog, type CommitEntry, type CompactedCommits, } from "./iteration-compaction.js";
|
|
13
|
+
export { DEFAULT_CONTEXT_BUDGET_FRACTION, DEFAULT_CONTEXT_WINDOW_TOKENS, assessContextBudget, formatContextBudget, modelContextBudget, modelContextWindow, type BudgetRecommendation, type ContextBudgetAssessment, type ContextBudgetContext, } from "./context-budget.js";
|
|
14
|
+
export { emptyReadLedger, fingerprintContent, formatReadReference, recordRead, summarizeReads, type DedupResult, type DedupSummary, type ReadFingerprint, type ReadLedger, type ReadStatus, } from "./read-dedup.js";
|
|
15
|
+
export { allocateRunId, listRunIds, readManifest, readStageRecords, runReportDir, runsDir, writeManifest, writeStageRecord, type RunArtifact, type RunManifest, type SafetyEvent, type SkillUsage, type StageRecord, } from "./run-report.js";
|
|
12
16
|
export { formatRunReport, runInspect, type InspectDeps, } from "./inspect.js";
|
|
17
|
+
export { formatRunsList, runRuns, summarizeManifest, type RunsDeps, type RunSummary, } from "./runs-cli.js";
|
|
18
|
+
export { formatContextReportRun, runContextReport, type ContextReportDeps, } from "./context-report-cli.js";
|
|
13
19
|
export { formatAuditReport, runMemory, type MemoryDeps, } from "./memory-cli.js";
|
|
14
|
-
export { allocateMemoryId, auditMemory, detectConflicts, DEFAULT_FREQUENT_USE, listMemoryIds, memoryDir, memoryRecordPath, memoryStatus, parseMemoryRecord, projectLearnings, readMemoryRecord, readMemoryRecords, supersede, touchMemory, writeMemoryRecord, type AuditReport, type MemoryRecord, type MemoryStatus, type MemoryTrust, type Supersession, } from "./memory.js";
|
|
15
|
-
export { parseEvalConfigs, runEval, type EvalConfig, type EvalDeps, type EvalInvocation, type EvalInvoker, } from "./eval-run.js";
|
|
20
|
+
export { allocateMemoryId, auditMemory, boundLearnings, detectConflicts, DEFAULT_FREQUENT_USE, DEFAULT_LEARNINGS_BUDGET_CHARS, formatBoundedLearnings, listMemoryIds, memoryDir, memoryRecordPath, memoryStatus, parseMemoryRecord, projectLearnings, readMemoryRecord, readMemoryRecords, selectRelevantMemory, supersede, touchMemory, writeMemoryRecord, type AuditReport, type BoundedMemory, type MemoryRecord, type MemorySelectionContext, type MemoryStatus, type MemoryTrust, type Supersession, } from "./memory.js";
|
|
21
|
+
export { parseEvalConfigs, runEval, runEvalCompare, type CompareDeps, type EvalConfig, type EvalDeps, type EvalInvocation, type EvalInvoker, } from "./eval-run.js";
|
|
16
22
|
export { classifyRisk, reviewDepthForLevel, routeReview, selectLenses, type ReviewDepth, type RiskAssessment, type RiskClass, type RiskLevel, type RouteDecision, } from "./risk.js";
|
|
17
23
|
export { deriveProgress, type IterationObservation, type ProgressSignals, } from "./progress.js";
|
|
18
24
|
export { decide, type PolicyAction, type PolicyContext, type PolicyDecision, } from "./policy.js";
|
|
19
25
|
export { checkApprovalRequired, checkCommand, checkNetworkDomain, checkWritePath, DEFAULT_POLICY, parseSafetyPolicy, readSafetyPolicy, type PolicyViolation, type PolicyViolationKind, type SafetyPolicy, } from "./safety-policy.js";
|
|
20
26
|
export { TAINT_SOURCES, UNTRUSTED_WARNING, wrapUntrusted, type TaintSource, } from "./taint.js";
|
|
27
|
+
export { findSkillCandidates, globMatch, listSkillIds, parseSkill, readSkill, readSkills, recordValidation, selectSkills, skillDir, skillExists, skillInstructionsPath, skillManifestPath, skillsDir, skillStatus, toSkillName, writeSkill, type CandidateRun, type Skill, type SkillCandidate, type SkillMatch, type SkillMatchContext, type SkillStatus, type SkillTrust, type SkillValidation, } from "./skills.js";
|
|
28
|
+
export { formatCandidates, formatSkillsAudit, formatSkillsReport, formatWhy, runSkills, type SkillsDeps, } from "./skills-cli.js";
|
|
21
29
|
export { compareTrajectories, scoreTrajectory, type EvalSignals, type LabelledSignals, } from "./eval.js";
|
|
22
30
|
export { evaluateExpectation, parseBenchmarkSuite, parseBenchmarkTask, readBenchmarkSuite, runFixtureChecks, type BenchmarkBin, type BenchmarkCheck, type BenchmarkExpect, type BenchmarkTask, type CheckResult, type CheckRunner, type ExpectationVerdict, } from "./bench.js";
|
|
23
31
|
export { runWatch, pollOpenIssues, pollLinearIssues, type RunWatchOptions, type PollResult, type WatchProvider, type LinearPollDeps, } from "./watch.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,17 +7,25 @@ export { deriveTaskKey, describeScope, parseGithubRepo, } from "./task-key.js";
|
|
|
7
7
|
export { renderTemplate, } from "./render.js";
|
|
8
8
|
export { claudeRuntime, getAgentRuntime, runStage, } from "./runner.js";
|
|
9
9
|
export { AGENT_DISPLAY_NAMES, DEFAULT_AGENT, parseAgentId, readAgentConfig, resolveAgentRuntime, } from "./agent-runtime.js";
|
|
10
|
-
export { emptyTokenUsage, parseTokenMode, parseTokenUsage, } from "./tokens.js";
|
|
10
|
+
export { emptyTokenUsage, formatCacheEfficiency, parseTokenMode, parseTokenUsage, summarizeCacheEfficiency, } from "./tokens.js";
|
|
11
|
+
export { analyzeContext, estimateTokens, formatContextReport, } from "./context-report.js";
|
|
12
|
+
export { DEFAULT_COMMITS_BUDGET_CHARS, compactCommits, formatCompactedCommits, parseCommitLog, } from "./iteration-compaction.js";
|
|
13
|
+
export { DEFAULT_CONTEXT_BUDGET_FRACTION, DEFAULT_CONTEXT_WINDOW_TOKENS, assessContextBudget, formatContextBudget, modelContextBudget, modelContextWindow, } from "./context-budget.js";
|
|
14
|
+
export { emptyReadLedger, fingerprintContent, formatReadReference, recordRead, summarizeReads, } from "./read-dedup.js";
|
|
11
15
|
export { allocateRunId, listRunIds, readManifest, readStageRecords, runReportDir, runsDir, writeManifest, writeStageRecord, } from "./run-report.js";
|
|
12
16
|
export { formatRunReport, runInspect, } from "./inspect.js";
|
|
17
|
+
export { formatRunsList, runRuns, summarizeManifest, } from "./runs-cli.js";
|
|
18
|
+
export { formatContextReportRun, runContextReport, } from "./context-report-cli.js";
|
|
13
19
|
export { formatAuditReport, runMemory, } from "./memory-cli.js";
|
|
14
|
-
export { allocateMemoryId, auditMemory, detectConflicts, DEFAULT_FREQUENT_USE, listMemoryIds, memoryDir, memoryRecordPath, memoryStatus, parseMemoryRecord, projectLearnings, readMemoryRecord, readMemoryRecords, supersede, touchMemory, writeMemoryRecord, } from "./memory.js";
|
|
15
|
-
export { parseEvalConfigs, runEval, } from "./eval-run.js";
|
|
20
|
+
export { allocateMemoryId, auditMemory, boundLearnings, detectConflicts, DEFAULT_FREQUENT_USE, DEFAULT_LEARNINGS_BUDGET_CHARS, formatBoundedLearnings, listMemoryIds, memoryDir, memoryRecordPath, memoryStatus, parseMemoryRecord, projectLearnings, readMemoryRecord, readMemoryRecords, selectRelevantMemory, supersede, touchMemory, writeMemoryRecord, } from "./memory.js";
|
|
21
|
+
export { parseEvalConfigs, runEval, runEvalCompare, } from "./eval-run.js";
|
|
16
22
|
export { classifyRisk, reviewDepthForLevel, routeReview, selectLenses, } from "./risk.js";
|
|
17
23
|
export { deriveProgress, } from "./progress.js";
|
|
18
24
|
export { decide, } from "./policy.js";
|
|
19
25
|
export { checkApprovalRequired, checkCommand, checkNetworkDomain, checkWritePath, DEFAULT_POLICY, parseSafetyPolicy, readSafetyPolicy, } from "./safety-policy.js";
|
|
20
26
|
export { TAINT_SOURCES, UNTRUSTED_WARNING, wrapUntrusted, } from "./taint.js";
|
|
27
|
+
export { findSkillCandidates, globMatch, listSkillIds, parseSkill, readSkill, readSkills, recordValidation, selectSkills, skillDir, skillExists, skillInstructionsPath, skillManifestPath, skillsDir, skillStatus, toSkillName, writeSkill, } from "./skills.js";
|
|
28
|
+
export { formatCandidates, formatSkillsAudit, formatSkillsReport, formatWhy, runSkills, } from "./skills-cli.js";
|
|
21
29
|
export { compareTrajectories, scoreTrajectory, } from "./eval.js";
|
|
22
30
|
export { evaluateExpectation, parseBenchmarkSuite, parseBenchmarkTask, readBenchmarkSuite, runFixtureChecks, } from "./bench.js";
|
|
23
31
|
export { runWatch, pollOpenIssues, pollLinearIssues, } from "./watch.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAA4B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAsC,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,MAAM,EAAc,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,aAAa,EACb,aAAa,EACb,eAAe,GAGhB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,QAAQ,GAGT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,mBAAmB,GAIpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inter-iteration compaction (issue #62 P7, slice 6).
|
|
3
|
+
*
|
|
4
|
+
* Otto spawns a fresh `claude --print` each iteration, so no live transcript is
|
|
5
|
+
* carried forward; the only prior-iteration state that fills the new prompt's
|
|
6
|
+
* window is the `<commits>` block —
|
|
7
|
+
* `git log -n 5 --format="%H%n%ad%n%B---" --date=short` (recent commit
|
|
8
|
+
* summaries). That block is count-bounded (5) but each commit body is unbounded,
|
|
9
|
+
* so a long run with verbose commit bodies keeps inflating it. This module
|
|
10
|
+
* bounds it: keep the most recent commits in full and *summarize* the older ones
|
|
11
|
+
* (degrade to their subject line) once a char budget is exceeded — "summarize
|
|
12
|
+
* prior iterations into a bounded state rather than carrying the full transcript
|
|
13
|
+
* forward."
|
|
14
|
+
*
|
|
15
|
+
* Pure + INERT on the loop: nothing here runs a stage or changes behavior.
|
|
16
|
+
* Wiring this into the template's commit injection is a later slice; this is the
|
|
17
|
+
* substrate, mirroring how slice 5 (`boundLearnings`) shipped pure-then-wired.
|
|
18
|
+
*/
|
|
19
|
+
export type CommitEntry = {
|
|
20
|
+
hash: string;
|
|
21
|
+
date: string;
|
|
22
|
+
/** First non-empty line of the body — the commit's one-line summary. */
|
|
23
|
+
subject: string;
|
|
24
|
+
/** Full commit body (subject + the rest), trimmed. */
|
|
25
|
+
body: string;
|
|
26
|
+
};
|
|
27
|
+
export type CompactedCommits = {
|
|
28
|
+
/** Newest commits, kept with their full body. */
|
|
29
|
+
kept: CommitEntry[];
|
|
30
|
+
/** Older commits, summarized to subject-only (not dropped). */
|
|
31
|
+
compacted: CommitEntry[];
|
|
32
|
+
/** Rendered chars of the kept (full) entries. */
|
|
33
|
+
keptChars: number;
|
|
34
|
+
/** Rendered chars of the compacted (subject-only) entries. */
|
|
35
|
+
compactedChars: number;
|
|
36
|
+
/** Body chars removed by degrading the compacted entries to their subject. */
|
|
37
|
+
savedChars: number;
|
|
38
|
+
/** The char budget applied. */
|
|
39
|
+
budgetChars: number;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Default budget for the carried-forward commit block. Tuned so a normal history
|
|
43
|
+
* (≤5 short `git log` commits) stays fully intact, while a verbose or long tail
|
|
44
|
+
* is summarized rather than re-fed in full each iteration.
|
|
45
|
+
*/
|
|
46
|
+
export declare const DEFAULT_COMMITS_BUDGET_CHARS = 2400;
|
|
47
|
+
/**
|
|
48
|
+
* Parse `git log --format="%H%n%ad%n%B---"` output into commit entries. Each
|
|
49
|
+
* record is a `---`-delimited chunk of `hash`, `date`, then the body; a chunk
|
|
50
|
+
* whose first line is not a commit hash (e.g. the `No commits found` fallback) is
|
|
51
|
+
* skipped. Never throws — malformed input yields `[]` or fewer entries.
|
|
52
|
+
*/
|
|
53
|
+
export declare function parseCommitLog(raw: string): CommitEntry[];
|
|
54
|
+
/**
|
|
55
|
+
* Keep the newest commits in full and summarize the rest, reporting what was
|
|
56
|
+
* compacted (issue #62 P7 slice 6). Commits are taken newest-first (the order
|
|
57
|
+
* `git log` emits): each is kept full while the cumulative full-rendered chars
|
|
58
|
+
* stay within the budget; the first overflow — and every commit after it — is
|
|
59
|
+
* degraded to subject-only, giving a clean "kept the most recent that fit"
|
|
60
|
+
* boundary. Pure.
|
|
61
|
+
*/
|
|
62
|
+
export declare function compactCommits(commits: CommitEntry[], ctx?: {
|
|
63
|
+
maxChars?: number;
|
|
64
|
+
}): CompactedCommits;
|
|
65
|
+
/**
|
|
66
|
+
* Render a compacted set back into a `<commits>`-style body — kept entries in
|
|
67
|
+
* full, compacted entries as subject-only — preserving newest-first order, with
|
|
68
|
+
* a one-line note when the budget summarized older commits (so the prompt is
|
|
69
|
+
* honest about what was condensed; the issue's "report what was dropped"). When
|
|
70
|
+
* nothing was compacted this is the unmodified full block.
|
|
71
|
+
*/
|
|
72
|
+
export declare function formatCompactedCommits(c: CompactedCommits): string;
|
|
73
|
+
//# sourceMappingURL=iteration-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iteration-compaction.d.ts","sourceRoot":"","sources":["../src/iteration-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iDAAiD;IACjD,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,+DAA+D;IAC/D,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAYjD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAgBzD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,EAAE,EACtB,GAAG,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,gBAAgB,CAyBlB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAUlE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inter-iteration compaction (issue #62 P7, slice 6).
|
|
3
|
+
*
|
|
4
|
+
* Otto spawns a fresh `claude --print` each iteration, so no live transcript is
|
|
5
|
+
* carried forward; the only prior-iteration state that fills the new prompt's
|
|
6
|
+
* window is the `<commits>` block —
|
|
7
|
+
* `git log -n 5 --format="%H%n%ad%n%B---" --date=short` (recent commit
|
|
8
|
+
* summaries). That block is count-bounded (5) but each commit body is unbounded,
|
|
9
|
+
* so a long run with verbose commit bodies keeps inflating it. This module
|
|
10
|
+
* bounds it: keep the most recent commits in full and *summarize* the older ones
|
|
11
|
+
* (degrade to their subject line) once a char budget is exceeded — "summarize
|
|
12
|
+
* prior iterations into a bounded state rather than carrying the full transcript
|
|
13
|
+
* forward."
|
|
14
|
+
*
|
|
15
|
+
* Pure + INERT on the loop: nothing here runs a stage or changes behavior.
|
|
16
|
+
* Wiring this into the template's commit injection is a later slice; this is the
|
|
17
|
+
* substrate, mirroring how slice 5 (`boundLearnings`) shipped pure-then-wired.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Default budget for the carried-forward commit block. Tuned so a normal history
|
|
21
|
+
* (≤5 short `git log` commits) stays fully intact, while a verbose or long tail
|
|
22
|
+
* is summarized rather than re-fed in full each iteration.
|
|
23
|
+
*/
|
|
24
|
+
export const DEFAULT_COMMITS_BUDGET_CHARS = 2400;
|
|
25
|
+
const HASH_RE = /^[0-9a-f]{7,40}$/i;
|
|
26
|
+
function renderFull(e) {
|
|
27
|
+
return `${e.hash}\n${e.date}\n${e.body}`;
|
|
28
|
+
}
|
|
29
|
+
function renderCompact(e) {
|
|
30
|
+
return `${e.hash}\n${e.date}\n${e.subject}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse `git log --format="%H%n%ad%n%B---"` output into commit entries. Each
|
|
34
|
+
* record is a `---`-delimited chunk of `hash`, `date`, then the body; a chunk
|
|
35
|
+
* whose first line is not a commit hash (e.g. the `No commits found` fallback) is
|
|
36
|
+
* skipped. Never throws — malformed input yields `[]` or fewer entries.
|
|
37
|
+
*/
|
|
38
|
+
export function parseCommitLog(raw) {
|
|
39
|
+
const entries = [];
|
|
40
|
+
for (const chunk of raw.split(/^---$/m)) {
|
|
41
|
+
const lines = chunk.split("\n");
|
|
42
|
+
while (lines.length && lines[0].trim() === "")
|
|
43
|
+
lines.shift();
|
|
44
|
+
while (lines.length && lines[lines.length - 1].trim() === "")
|
|
45
|
+
lines.pop();
|
|
46
|
+
if (lines.length < 3)
|
|
47
|
+
continue;
|
|
48
|
+
const hash = lines[0].trim();
|
|
49
|
+
if (!HASH_RE.test(hash))
|
|
50
|
+
continue;
|
|
51
|
+
const date = lines[1].trim();
|
|
52
|
+
const bodyLines = lines.slice(2);
|
|
53
|
+
const body = bodyLines.join("\n").trim();
|
|
54
|
+
const subject = (bodyLines.find((l) => l.trim() !== "") ?? "").trim();
|
|
55
|
+
entries.push({ hash, date, subject, body });
|
|
56
|
+
}
|
|
57
|
+
return entries;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Keep the newest commits in full and summarize the rest, reporting what was
|
|
61
|
+
* compacted (issue #62 P7 slice 6). Commits are taken newest-first (the order
|
|
62
|
+
* `git log` emits): each is kept full while the cumulative full-rendered chars
|
|
63
|
+
* stay within the budget; the first overflow — and every commit after it — is
|
|
64
|
+
* degraded to subject-only, giving a clean "kept the most recent that fit"
|
|
65
|
+
* boundary. Pure.
|
|
66
|
+
*/
|
|
67
|
+
export function compactCommits(commits, ctx = {}) {
|
|
68
|
+
const budgetChars = ctx.maxChars ?? DEFAULT_COMMITS_BUDGET_CHARS;
|
|
69
|
+
const kept = [];
|
|
70
|
+
const compacted = [];
|
|
71
|
+
let keptChars = 0;
|
|
72
|
+
let full = false;
|
|
73
|
+
for (const c of commits) {
|
|
74
|
+
const fullLen = renderFull(c).length;
|
|
75
|
+
if (!full && keptChars + fullLen <= budgetChars) {
|
|
76
|
+
kept.push(c);
|
|
77
|
+
keptChars += fullLen;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
full = true;
|
|
81
|
+
compacted.push(c);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const compactedChars = compacted.reduce((sum, c) => sum + renderCompact(c).length, 0);
|
|
85
|
+
const savedChars = compacted.reduce((sum, c) => sum + (renderFull(c).length - renderCompact(c).length), 0);
|
|
86
|
+
return { kept, compacted, keptChars, compactedChars, savedChars, budgetChars };
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Render a compacted set back into a `<commits>`-style body — kept entries in
|
|
90
|
+
* full, compacted entries as subject-only — preserving newest-first order, with
|
|
91
|
+
* a one-line note when the budget summarized older commits (so the prompt is
|
|
92
|
+
* honest about what was condensed; the issue's "report what was dropped"). When
|
|
93
|
+
* nothing was compacted this is the unmodified full block.
|
|
94
|
+
*/
|
|
95
|
+
export function formatCompactedCommits(c) {
|
|
96
|
+
const rendered = [...c.kept.map(renderFull), ...c.compacted.map(renderCompact)];
|
|
97
|
+
const body = rendered.map((r) => `${r}\n---`).join("\n");
|
|
98
|
+
if (c.compacted.length === 0)
|
|
99
|
+
return body;
|
|
100
|
+
return (body +
|
|
101
|
+
`\n_Compacted: ${c.compacted.length} older commit(s) summarized to their ` +
|
|
102
|
+
`subject (saved ${c.savedChars} chars) to keep prior-iteration context ` +
|
|
103
|
+
`within the ${c.budgetChars}-char budget._`);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=iteration-compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iteration-compaction.js","sourceRoot":"","sources":["../src/iteration-compaction.ts"],"names":[],"mappings":"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"}
|
package/dist/loop.d.ts
CHANGED
|
@@ -32,6 +32,10 @@ export type LoopOptions = {
|
|
|
32
32
|
/** Opt-in adaptive compute router (issue #41): route review depth per iteration
|
|
33
33
|
* by the risk of that iteration's change. When off, `reviewLenses` is used as-is. */
|
|
34
34
|
adaptiveRouter?: boolean;
|
|
35
|
+
/** Opt-in (issue #45 P6): print the adaptive router's per-iteration reasoning
|
|
36
|
+
* (change class/risk, chosen depth/lenses, policy decision). No effect when
|
|
37
|
+
* `adaptiveRouter` is off — there is no routing decision to explain. */
|
|
38
|
+
explainRouting?: boolean;
|
|
35
39
|
/** Injectable resolver for an iteration's changed paths (default: git diff since
|
|
36
40
|
* the iteration-start HEAD). Used only when `adaptiveRouter` is on. */
|
|
37
41
|
resolveChangedPaths?: (workspaceDir: string) => string[];
|