@phamvuhoang/otto-core 0.33.0 → 0.34.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/codebase-memory-adapter.d.ts +106 -0
- package/dist/codebase-memory-adapter.d.ts.map +1 -0
- package/dist/codebase-memory-adapter.js +142 -0
- package/dist/codebase-memory-adapter.js.map +1 -0
- package/dist/context-compressor.d.ts +11 -0
- package/dist/context-compressor.d.ts.map +1 -1
- package/dist/context-compressor.js +16 -0
- package/dist/context-compressor.js.map +1 -1
- package/dist/eval-run.d.ts +6 -0
- package/dist/eval-run.d.ts.map +1 -1
- package/dist/eval-run.js +27 -5
- package/dist/eval-run.js.map +1 -1
- package/dist/eval.d.ts +35 -0
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +42 -1
- package/dist/eval.js.map +1 -1
- package/dist/extension-profiles.d.ts.map +1 -1
- package/dist/extension-profiles.js +11 -0
- package/dist/extension-profiles.js.map +1 -1
- package/dist/fanout.d.ts +48 -1
- package/dist/fanout.d.ts.map +1 -1
- package/dist/fanout.js +121 -11
- package/dist/fanout.js.map +1 -1
- package/dist/handoff.d.ts +32 -0
- package/dist/handoff.d.ts.map +1 -0
- package/dist/handoff.js +58 -0
- package/dist/handoff.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +59 -2
- package/dist/loop.js.map +1 -1
- package/dist/panel.d.ts +10 -0
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +29 -4
- package/dist/panel.js.map +1 -1
- package/dist/plan-tasks.d.ts +39 -5
- package/dist/plan-tasks.d.ts.map +1 -1
- package/dist/plan-tasks.js +85 -12
- package/dist/plan-tasks.js.map +1 -1
- package/dist/report-finalize.d.ts +9 -0
- package/dist/report-finalize.d.ts.map +1 -1
- package/dist/report-finalize.js +28 -1
- package/dist/report-finalize.js.map +1 -1
- package/dist/run-report.d.ts +45 -0
- package/dist/run-report.d.ts.map +1 -1
- package/dist/run-report.js +18 -0
- package/dist/run-report.js.map +1 -1
- package/dist/tools.d.ts +17 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +48 -0
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
- package/templates/subtask.md +17 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type { ToolDefinition } from "./tools.js";
|
|
2
|
+
/**
|
|
3
|
+
* Codebase Memory adapter (P26 spike, Task 2). Otto owns a local MCP stdio
|
|
4
|
+
* child (`codebase-memory`) that builds and queries a code-knowledge graph
|
|
5
|
+
* for the target repo — architecture summaries, call-path tracing, symbol
|
|
6
|
+
* search — without any runtime network access. The adapter follows the same
|
|
7
|
+
* house pattern as {@link ./headroom-adapter.js}: a {@link ToolDefinition}
|
|
8
|
+
* factory for the `.otto/tools/` registry (`otto-tools list/why/health`,
|
|
9
|
+
* policy authorization) plus an injectable transport ({@link CbmRunner}) so
|
|
10
|
+
* unit tests never spawn a real process.
|
|
11
|
+
*
|
|
12
|
+
* The tool is opt-in and inert until a repo registers + enables it:
|
|
13
|
+
* `stages: []` (no default injection into any stage template), `enabled:
|
|
14
|
+
* false` (registry-level off switch), `networkDomains: []` (no runtime
|
|
15
|
+
* network — the graph lives entirely in a local cache), and `writeRoots:
|
|
16
|
+
* [".codebase-memory"]` (writes confined to its own cache directory).
|
|
17
|
+
*/
|
|
18
|
+
/** One JSON-RPC request to the codebase-memory MCP child. */
|
|
19
|
+
export type CbmRequest = {
|
|
20
|
+
operation: string;
|
|
21
|
+
params: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
/** The structured response from a {@link CbmRunner} call. */
|
|
24
|
+
export type CbmResponse = {
|
|
25
|
+
ok: boolean;
|
|
26
|
+
result?: unknown;
|
|
27
|
+
error?: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* The injectable transport the adapter drives. The real implementation
|
|
31
|
+
* ({@link createStdioCbmRunner}) spawns the MCP child over stdio; unit tests
|
|
32
|
+
* inject a stub — this contract is the seam.
|
|
33
|
+
*/
|
|
34
|
+
export type CbmRunner = {
|
|
35
|
+
available(): boolean;
|
|
36
|
+
call(req: CbmRequest): CbmResponse;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The {@link ToolDefinition} a repo drops into `.otto/tools/codebase-memory.json`
|
|
40
|
+
* (mirrors {@link ./headroom-adapter.js}'s `headroomToolDefinition`). Declares
|
|
41
|
+
* no runtime network, cache-only writes, and the operation allowlist
|
|
42
|
+
* (`operations`) that a caller can gate calls against. `stages: []` and
|
|
43
|
+
* `enabled: false` keep it fully opt-in — a bare repo behaves as before.
|
|
44
|
+
*/
|
|
45
|
+
export declare function codebaseMemoryToolDefinition(command?: string): ToolDefinition;
|
|
46
|
+
/**
|
|
47
|
+
* Real transport: a minimal newline-delimited JSON-RPC client over stdio.
|
|
48
|
+
* Sends an `initialize` handshake followed by one `tools/call`, both
|
|
49
|
+
* newline-framed, and reads the child's stdout for the matching response.
|
|
50
|
+
* Synchronous (`spawnSync`) to fit the same render/`@spill`-boundary
|
|
51
|
+
* constraints as the Headroom runners. Only exercised under the gated e2e —
|
|
52
|
+
* unit tests inject a {@link CbmRunner} stub instead.
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* Split a command string into argv, respecting single/double quotes so a
|
|
56
|
+
* binary path containing spaces (e.g. `"/opt/My Tools/codebase-memory" serve`)
|
|
57
|
+
* stays one token instead of being shredded by a naive `split(" ")`. Minimal:
|
|
58
|
+
* no escape sequences or environment expansion. Pure.
|
|
59
|
+
*/
|
|
60
|
+
export declare function tokenizeCommand(command: string): string[];
|
|
61
|
+
export declare function createStdioCbmRunner(command: string, cwd: string, timeoutMs: number): CbmRunner;
|
|
62
|
+
/**
|
|
63
|
+
* Identity stamp a persisted `.codebase-memory/` index carries, so a later
|
|
64
|
+
* run can tell whether it's safe to trust without re-indexing: which
|
|
65
|
+
* workspace it was built for, the source revision it was built at, whether
|
|
66
|
+
* the worktree was dirty at build time, and tool/index bookkeeping.
|
|
67
|
+
*/
|
|
68
|
+
export type CbmIndexIdentity = {
|
|
69
|
+
workspace: string;
|
|
70
|
+
sourceRevision: string;
|
|
71
|
+
worktreeDirty: boolean;
|
|
72
|
+
toolVersion: string;
|
|
73
|
+
indexStatus: string;
|
|
74
|
+
indexedAt: string;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Freshness verdict for a persisted index against the current workspace
|
|
78
|
+
* state: `absent` (no index or no current state to compare), `wrong-project`
|
|
79
|
+
* (index was built for a different workspace), `stale` (revision drift or a
|
|
80
|
+
* dirty worktree since indexing), `fresh` (safe to trust as-is).
|
|
81
|
+
*/
|
|
82
|
+
export type IndexFreshness = "fresh" | "stale" | "absent" | "wrong-project";
|
|
83
|
+
/**
|
|
84
|
+
* Classifies a persisted index's freshness against the current workspace
|
|
85
|
+
* identity. Pure — no filesystem or process access; callers gather
|
|
86
|
+
* `current`/`index` themselves.
|
|
87
|
+
*/
|
|
88
|
+
export declare function classifyIndexFreshness(current: {
|
|
89
|
+
workspace: string;
|
|
90
|
+
sourceRevision: string;
|
|
91
|
+
worktreeDirty: boolean;
|
|
92
|
+
} | null, index: CbmIndexIdentity | null): IndexFreshness;
|
|
93
|
+
/**
|
|
94
|
+
* New files written during a run (`after \ before`) plus which of those
|
|
95
|
+
* escaped the tool's declared write roots — i.e. wrote outside
|
|
96
|
+
* `.codebase-memory/` (see `writeRoots` on {@link codebaseMemoryToolDefinition}).
|
|
97
|
+
* A declared root matches itself exactly or any path under `root + "/"`, so
|
|
98
|
+
* a root doesn't accidentally prefix-match a sibling like `.codebase-memory-foo`.
|
|
99
|
+
*/
|
|
100
|
+
export type WriteInventory = {
|
|
101
|
+
files: string[];
|
|
102
|
+
escaped: string[];
|
|
103
|
+
};
|
|
104
|
+
/** Pure diff of two file-path snapshots against a set of declared write roots. */
|
|
105
|
+
export declare function diffWriteInventory(before: string[], after: string[], declaredRoots: string[]): WriteInventory;
|
|
106
|
+
//# sourceMappingURL=codebase-memory-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-memory-adapter.d.ts","sourceRoot":"","sources":["../src/codebase-memory-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;;;;GAeG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,IAAI,OAAO,CAAC;IACrB,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC;CACpC,CAAC;AAoBF;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,SAAoB,GAC1B,cAAc,CAwBhB;AAED;;;;;;;GAOG;AACH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzD;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,SAAS,CA0CX;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE;IACP,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,IAAI,EACR,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7B,cAAc,CAMhB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpE,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,GACtB,cAAc,CAWhB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
/** Read-only operations the codebase-memory server exposes. */
|
|
3
|
+
const READ_OPS = [
|
|
4
|
+
"index_status",
|
|
5
|
+
"get_graph_schema",
|
|
6
|
+
"get_architecture",
|
|
7
|
+
"search_graph",
|
|
8
|
+
"trace_path",
|
|
9
|
+
"detect_changes",
|
|
10
|
+
"search_code",
|
|
11
|
+
"get_code_snippet",
|
|
12
|
+
];
|
|
13
|
+
/** The full operation allowlist: one write op + the read-only surface. */
|
|
14
|
+
const OPERATIONS = [
|
|
15
|
+
{ name: "index_repository", write: true },
|
|
16
|
+
...READ_OPS.map((name) => ({ name, write: false })),
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* The {@link ToolDefinition} a repo drops into `.otto/tools/codebase-memory.json`
|
|
20
|
+
* (mirrors {@link ./headroom-adapter.js}'s `headroomToolDefinition`). Declares
|
|
21
|
+
* no runtime network, cache-only writes, and the operation allowlist
|
|
22
|
+
* (`operations`) that a caller can gate calls against. `stages: []` and
|
|
23
|
+
* `enabled: false` keep it fully opt-in — a bare repo behaves as before.
|
|
24
|
+
*/
|
|
25
|
+
export function codebaseMemoryToolDefinition(command = "codebase-memory") {
|
|
26
|
+
return {
|
|
27
|
+
name: "codebase-memory",
|
|
28
|
+
kind: "mcp",
|
|
29
|
+
description: "Local code-knowledge graph via an Otto-owned MCP stdio child.",
|
|
30
|
+
capabilities: [
|
|
31
|
+
"architecture",
|
|
32
|
+
"call-path",
|
|
33
|
+
"change-impact",
|
|
34
|
+
"symbol-search",
|
|
35
|
+
],
|
|
36
|
+
stages: [], // opt-in via config; no default injection
|
|
37
|
+
command,
|
|
38
|
+
env: [],
|
|
39
|
+
networkDomains: [], // no runtime network
|
|
40
|
+
writeRoots: [".codebase-memory"], // cache-only
|
|
41
|
+
secretRefs: [],
|
|
42
|
+
timeoutMs: 120_000,
|
|
43
|
+
healthCheck: `${command} --version`,
|
|
44
|
+
approvalActions: [],
|
|
45
|
+
enabled: false,
|
|
46
|
+
operations: OPERATIONS,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Real transport: a minimal newline-delimited JSON-RPC client over stdio.
|
|
51
|
+
* Sends an `initialize` handshake followed by one `tools/call`, both
|
|
52
|
+
* newline-framed, and reads the child's stdout for the matching response.
|
|
53
|
+
* Synchronous (`spawnSync`) to fit the same render/`@spill`-boundary
|
|
54
|
+
* constraints as the Headroom runners. Only exercised under the gated e2e —
|
|
55
|
+
* unit tests inject a {@link CbmRunner} stub instead.
|
|
56
|
+
*/
|
|
57
|
+
/**
|
|
58
|
+
* Split a command string into argv, respecting single/double quotes so a
|
|
59
|
+
* binary path containing spaces (e.g. `"/opt/My Tools/codebase-memory" serve`)
|
|
60
|
+
* stays one token instead of being shredded by a naive `split(" ")`. Minimal:
|
|
61
|
+
* no escape sequences or environment expansion. Pure.
|
|
62
|
+
*/
|
|
63
|
+
export function tokenizeCommand(command) {
|
|
64
|
+
const tokens = [];
|
|
65
|
+
const re = /"([^"]*)"|'([^']*)'|(\S+)/g;
|
|
66
|
+
let m;
|
|
67
|
+
while ((m = re.exec(command)) !== null) {
|
|
68
|
+
tokens.push(m[1] ?? m[2] ?? m[3]);
|
|
69
|
+
}
|
|
70
|
+
return tokens;
|
|
71
|
+
}
|
|
72
|
+
export function createStdioCbmRunner(command, cwd, timeoutMs) {
|
|
73
|
+
const [bin, ...args] = tokenizeCommand(command);
|
|
74
|
+
const available = () => {
|
|
75
|
+
const probe = spawnSync(bin, ["--version"], { cwd, timeout: 5000 });
|
|
76
|
+
return probe.status === 0;
|
|
77
|
+
};
|
|
78
|
+
// One-shot request/response: initialize handshake + tools/call, newline-framed.
|
|
79
|
+
const call = (req) => {
|
|
80
|
+
const init = JSON.stringify({
|
|
81
|
+
jsonrpc: "2.0",
|
|
82
|
+
id: 1,
|
|
83
|
+
method: "initialize",
|
|
84
|
+
params: {},
|
|
85
|
+
});
|
|
86
|
+
const callMsg = JSON.stringify({
|
|
87
|
+
jsonrpc: "2.0",
|
|
88
|
+
id: 2,
|
|
89
|
+
method: "tools/call",
|
|
90
|
+
params: { name: req.operation, arguments: req.params },
|
|
91
|
+
});
|
|
92
|
+
const proc = spawnSync(bin, args, {
|
|
93
|
+
cwd,
|
|
94
|
+
timeout: timeoutMs,
|
|
95
|
+
input: `${init}\n${callMsg}\n`,
|
|
96
|
+
});
|
|
97
|
+
if (proc.status !== 0)
|
|
98
|
+
return { ok: false, error: proc.stderr?.toString() || "child failed" };
|
|
99
|
+
const lines = proc.stdout.toString().split("\n").filter(Boolean);
|
|
100
|
+
for (const line of lines) {
|
|
101
|
+
try {
|
|
102
|
+
const msg = JSON.parse(line);
|
|
103
|
+
if (msg.id === 2 && "result" in msg)
|
|
104
|
+
return { ok: true, result: msg.result };
|
|
105
|
+
if (msg.id === 2 && "error" in msg)
|
|
106
|
+
return { ok: false, error: String(msg.error.message ?? msg.error) };
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
/* ignore non-JSON banner lines */
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return { ok: false, error: "no response for tools/call" };
|
|
113
|
+
};
|
|
114
|
+
return { available, call };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Classifies a persisted index's freshness against the current workspace
|
|
118
|
+
* identity. Pure — no filesystem or process access; callers gather
|
|
119
|
+
* `current`/`index` themselves.
|
|
120
|
+
*/
|
|
121
|
+
export function classifyIndexFreshness(current, index) {
|
|
122
|
+
if (!index || !current)
|
|
123
|
+
return "absent";
|
|
124
|
+
if (index.workspace !== current.workspace)
|
|
125
|
+
return "wrong-project";
|
|
126
|
+
if (index.sourceRevision !== current.sourceRevision || current.worktreeDirty)
|
|
127
|
+
return "stale";
|
|
128
|
+
return "fresh";
|
|
129
|
+
}
|
|
130
|
+
/** Pure diff of two file-path snapshots against a set of declared write roots. */
|
|
131
|
+
export function diffWriteInventory(before, after, declaredRoots) {
|
|
132
|
+
const beforeSet = new Set(before);
|
|
133
|
+
const files = after.filter((f) => !beforeSet.has(f));
|
|
134
|
+
const under = (f) => declaredRoots.some((raw) => {
|
|
135
|
+
// Normalize a trailing slash so a root declared as `.codebase-memory/`
|
|
136
|
+
// classifies the bare directory the same as `.codebase-memory` does.
|
|
137
|
+
const r = raw.replace(/\/+$/, "");
|
|
138
|
+
return f === r || f.startsWith(`${r}/`);
|
|
139
|
+
});
|
|
140
|
+
return { files, escaped: files.filter((f) => !under(f)) };
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=codebase-memory-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codebase-memory-adapter.js","sourceRoot":"","sources":["../src/codebase-memory-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -173,6 +173,17 @@ export declare function summarizeToolCompression(usages: ToolUsage[]): {
|
|
|
173
173
|
tokensSaved: number;
|
|
174
174
|
retrievals: number;
|
|
175
175
|
};
|
|
176
|
+
/**
|
|
177
|
+
* Summarize the codebase-memory retrieval {@link ToolUsage} records on a run's
|
|
178
|
+
* stage records (name `codebase-memory`) — what a context report reads to show
|
|
179
|
+
* graph-retrieval evidence (P26). Pure. `undefined` when no such usage is
|
|
180
|
+
* present, so a non-CBM run's report omits the section entirely.
|
|
181
|
+
*/
|
|
182
|
+
export declare function summarizeGraphRetrieval(usages: ToolUsage[]): {
|
|
183
|
+
queries: number;
|
|
184
|
+
tokensAvoided: number;
|
|
185
|
+
fallbacks: number;
|
|
186
|
+
} | undefined;
|
|
176
187
|
/** One-line human summary of compression savings for the context report. Pure. */
|
|
177
188
|
export declare function formatCompressionSummary(s: CompressionSummary): string;
|
|
178
189
|
//# sourceMappingURL=context-compressor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-compressor.d.ts","sourceRoot":"","sources":["../src/context-compressor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-compressor.d.ts","sourceRoot":"","sources":["../src/context-compressor.ts"],"names":[],"mappings":"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"}
|
|
@@ -259,6 +259,22 @@ export function summarizeToolCompression(usages) {
|
|
|
259
259
|
}
|
|
260
260
|
return { invocations, tokensSaved, retrievals };
|
|
261
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Summarize the codebase-memory retrieval {@link ToolUsage} records on a run's
|
|
264
|
+
* stage records (name `codebase-memory`) — what a context report reads to show
|
|
265
|
+
* graph-retrieval evidence (P26). Pure. `undefined` when no such usage is
|
|
266
|
+
* present, so a non-CBM run's report omits the section entirely.
|
|
267
|
+
*/
|
|
268
|
+
export function summarizeGraphRetrieval(usages) {
|
|
269
|
+
const graph = usages.filter((u) => u.name === "codebase-memory");
|
|
270
|
+
if (graph.length === 0)
|
|
271
|
+
return undefined;
|
|
272
|
+
return {
|
|
273
|
+
queries: graph.length,
|
|
274
|
+
tokensAvoided: graph.reduce((s, u) => s + (u.tokensAvoided ?? 0), 0),
|
|
275
|
+
fallbacks: graph.filter((u) => u.fallbackReason).length,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
262
278
|
/** One-line human summary of compression savings for the context report. Pure. */
|
|
263
279
|
export function formatCompressionSummary(s) {
|
|
264
280
|
if (s.invocations === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-compressor.js","sourceRoot":"","sources":["../src/context-compressor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAkC/C,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY;IACZ,aAAa;IACb,iBAAiB;IACjB,eAAe;IACf,mBAAmB;CACX,CAAC;AAGX;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA6B;IAClE,OAAO,QAAQ,KAAK,YAAY,CAAC;AACnC,CAAC;AA+DD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAIrC;IACC,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAoB,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAa;IAEb,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CACtC,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ;YAC3C,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IACD,OAAO,qBAAqB,CAAC;QAC3B,IAAI;QACJ,GAAG,EAAE,GAAG,CAAC,uBAAuB;QAChC,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QACvB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC;AAKD;;;;;GAKG;AACH,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;;;;GAOG;AACH,SAAS,cAAc,CACrB,KAAoB,EACpB,OAAe,EACf,MAAwB,EACxB,KAA4B,EAC5B,SAAiB;IAEjB,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,QAAiB,EAAE,IAAa,EAAkB,EAAE,CAAC,CAAC;QACzE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,YAAY;QACZ,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,CAAC;QACd,SAAS;QACT,iBAAiB,EAAE,OAAO;QAC1B,QAAQ;QACR,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1B,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,WAAW,CAChB,IAAI,EACJ,eAAe,OAAO,+BAA+B,CACtD,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;QAC9C,OAAO,WAAW,CAChB,CAAC,MAAM,CAAC,EAAE,EACV,MAAM,CAAC,IAAI;YACT,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,SAAS,CAAC,CACjE,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,uEAAuE;IACvE,oEAAoE;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,YAAY,GAAG,cAAc,EAAE,CAAC;QAC3C,OAAO,WAAW,CAChB,IAAI,EACJ,wBAAwB,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,WAAW;YACpE,sBAAsB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,YAAY;QACZ,WAAW;QACX,WAAW,EAAE,YAAY,GAAG,WAAW;QACvC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,SAAS;QACT,iBAAiB,EAAE,OAAO;QAC1B,QAAQ,EAAE,KAAK;QACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAoC,EACpC,KAAoB,EACpB,KAA4B,EAC5B,OAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,IAAI,CAAC,UAAU;QACb,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,EACL,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAC9B,IAAI,EACJ,CAAC,CACF,CAAC;IAEJ,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACpB,IAAI,SAAkB,CAAC;IACvB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,SAAS;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,cAAc,CACnB,KAAK,EACL,UAAU,CAAC,OAAO,EAClB,MAAM,EACN,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,cAAc,CACnB,KAAK,EACL,UAAU,CAAC,OAAO,EAClB;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,qBAAsB,CAAW,CAAC,OAAO,IAAI,CAAC,EAAE;SACvD,EACD,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAwC,EACxC,KAAoB,EACpB,KAA4B,EAC5B,MAAoB,IAAI,CAAC,GAAG;IAE5B,IAAI,CAAC,UAAU;QACb,OAAO,cAAc,CACnB,KAAK,EACL,KAAK,EACL,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAC9B,IAAI,EACJ,CAAC,CACF,CAAC;IACJ,IAAI,CAAC,UAAU,CAAC,SAAS;QACvB,OAAO,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,cAAc,CACnB,KAAK,EACL,UAAU,CAAC,OAAO,EAClB,MAAM,EACN,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,cAAc,CACnB,KAAK,EACL,UAAU,CAAC,OAAO,EAClB;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,qBAAsB,CAAW,CAAC,OAAO,IAAI,CAAC,EAAE;SACvD,EACD,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAsB,EACtB,QAA6B,EAC7B,KAAc;IAEd,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,GAAG,CAAC,MAAM,CAAC,eAAe;YACxB,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE;YACP,cAAc,QAAQ,EAAE;YACxB,MAAM,CAAC,QAAQ;gBACb,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,SAAS;SACzC;KACF,CAAC;AACJ,CAAC;AAYD,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAClC,OAAyB;IAEzB,MAAM,CAAC,GAAuB;QAC5B,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;KACZ,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC;QACjC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,CAAC,eAAe;YAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,QAAQ;YAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAmB;IAK1D,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QACpC,WAAW,IAAI,CAAC,CAAC;QACjB,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,eAAe;YAAE,UAAU,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,CAAqB;IAC5D,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC;QAAE,OAAO,gCAAgC,CAAC;IACjE,MAAM,GAAG,GACP,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG;QACZ,wBAAwB,CAAC,CAAC,WAAW,kBAAkB,GAAG,aAAa,CAAC,CAAC,WAAW,UAAU;QAC9F,GAAG,CAAC,CAAC,UAAU,uBAAuB;KACvC,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,2BAA2B,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"context-compressor.js","sourceRoot":"","sources":["../src/context-compressor.ts"],"names":[],"mappings":"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"}
|
package/dist/eval-run.d.ts
CHANGED
|
@@ -43,6 +43,12 @@ export type EvalDeps = {
|
|
|
43
43
|
readManifest: (workspaceDir: string, runId: string) => RunManifest | null;
|
|
44
44
|
readStageRecords: (workspaceDir: string, runId: string) => StageRecord[];
|
|
45
45
|
runChecks: (checks: BenchmarkCheck[], cwd: string) => CheckResult[];
|
|
46
|
+
/** Known impacted-file set a fixture declares (its `impact.json`); `[]` when
|
|
47
|
+
* the fixture declares none, which leaves impact recall at 0 (P26). */
|
|
48
|
+
readImpactSet: (fixtureDir: string) => string[];
|
|
49
|
+
/** The run's answer text (its rendered report) impact recall is scored
|
|
50
|
+
* against; `""` when no report was written (P26). */
|
|
51
|
+
readReportText: (fixtureDir: string, runId: string) => string;
|
|
46
52
|
};
|
|
47
53
|
/** Injectable host surface for {@link runEvalCompare} (mirrors `InspectDeps`). */
|
|
48
54
|
export type CompareDeps = {
|
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;
|
|
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;AAMpB,OAAO,EAKL,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;IACpE;4EACwE;IACxE,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAChD;0DACsD;IACtD,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/D,CAAC;AAkDF,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,CAqCjB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,CAkC3D;AAuBD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,QAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA8GjB"}
|
package/dist/eval-run.js
CHANGED
|
@@ -2,8 +2,8 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { dirname, resolve } from "node:path";
|
|
4
4
|
import { evaluateExpectation, readBenchmarkSuite, runFixtureChecks, } from "./bench.js";
|
|
5
|
-
import { compareTrajectories, scoreTrajectory } from "./eval.js";
|
|
6
|
-
import { listRunIds, readManifest as readManifestFs, readStageRecords as readStageRecordsFs, } from "./run-report.js";
|
|
5
|
+
import { compareTrajectories, scoreImpactRecall, scoreTrajectory, } from "./eval.js";
|
|
6
|
+
import { listRunIds, readManifest as readManifestFs, readRunReport, readStageRecords as readStageRecordsFs, } from "./run-report.js";
|
|
7
7
|
const defaultInvoke = async (inv) => {
|
|
8
8
|
const argv = inv.bin === "otto-afk"
|
|
9
9
|
? [inv.task.inputs, String(inv.iterations), ...inv.args]
|
|
@@ -29,6 +29,18 @@ const defaultDeps = {
|
|
|
29
29
|
readManifest: readManifestFs,
|
|
30
30
|
readStageRecords: readStageRecordsFs,
|
|
31
31
|
runChecks: runFixtureChecks,
|
|
32
|
+
readImpactSet: (fixtureDir) => {
|
|
33
|
+
try {
|
|
34
|
+
const parsed = JSON.parse(readFileSync(resolve(fixtureDir, "impact.json"), "utf8"));
|
|
35
|
+
return Array.isArray(parsed)
|
|
36
|
+
? parsed.filter((f) => typeof f === "string")
|
|
37
|
+
: [];
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
readReportText: (fixtureDir, runId) => readRunReport(fixtureDir, runId) ?? "",
|
|
32
44
|
};
|
|
33
45
|
const USAGE = "Usage: otto-eval <suite.json> [<configs.json>] [--iterations <n>]\n" +
|
|
34
46
|
" otto-eval compare <run-a> <run-b>";
|
|
@@ -103,11 +115,13 @@ export function parseEvalConfigs(raw) {
|
|
|
103
115
|
throw new Error(`eval config [${i}]: 'label' must be a non-empty string`);
|
|
104
116
|
}
|
|
105
117
|
const args = rec.args;
|
|
106
|
-
if (args !== undefined &&
|
|
118
|
+
if (args !== undefined &&
|
|
119
|
+
(!Array.isArray(args) || args.some((a) => typeof a !== "string"))) {
|
|
107
120
|
throw new Error(`eval config '${rec.label}': 'args' must be an array of strings`);
|
|
108
121
|
}
|
|
109
122
|
const env = rec.env;
|
|
110
|
-
if (env !== undefined &&
|
|
123
|
+
if (env !== undefined &&
|
|
124
|
+
(env == null || typeof env !== "object" || Array.isArray(env))) {
|
|
111
125
|
throw new Error(`eval config '${rec.label}': 'env' must be an object`);
|
|
112
126
|
}
|
|
113
127
|
return {
|
|
@@ -203,7 +217,15 @@ export async function runEval(argv, deps = defaultDeps) {
|
|
|
203
217
|
verdictLines.push(` - ${config.label}: FAIL (no evidence bundle for run '${runId}')`);
|
|
204
218
|
continue;
|
|
205
219
|
}
|
|
206
|
-
|
|
220
|
+
// Impact recall only applies to fixtures that declare a known
|
|
221
|
+
// impacted-file set; otherwise it stays 0 (scoreImpactRecall is
|
|
222
|
+
// vacuously 1 for an empty set, which would wrongly inflate it).
|
|
223
|
+
const impactSet = deps.readImpactSet(fixtureDir);
|
|
224
|
+
const signals = scoreTrajectory(manifest, deps.readStageRecords(fixtureDir, runId), impactSet.length > 0
|
|
225
|
+
? {
|
|
226
|
+
impactRecall: scoreImpactRecall(impactSet, deps.readReportText(fixtureDir, runId)),
|
|
227
|
+
}
|
|
228
|
+
: {});
|
|
207
229
|
const checks = deps.runChecks(task.expect.checks ?? [], fixtureDir);
|
|
208
230
|
const verdict = evaluateExpectation(task.expect, signals, checks);
|
|
209
231
|
if (!verdict.passed)
|
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,
|
|
1
|
+
{"version":3,"file":"eval-run.js","sourceRoot":"","sources":["../src/eval-run.ts"],"names":[],"mappings":"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"}
|
package/dist/eval.d.ts
CHANGED
|
@@ -47,6 +47,29 @@ export type EvalSignals = {
|
|
|
47
47
|
* trajectory), so this function stays pure.
|
|
48
48
|
*/
|
|
49
49
|
reportLegibilityRatio: number | null;
|
|
50
|
+
/**
|
|
51
|
+
* Count of external tool invocations recorded across the manifest and stage
|
|
52
|
+
* records (P26 codebase-memory spike). `0` when no tools were used.
|
|
53
|
+
*/
|
|
54
|
+
toolCallCount: number;
|
|
55
|
+
/**
|
|
56
|
+
* Sum of `tokensAvoided` reported by tool invocations (P26) — tokens that
|
|
57
|
+
* would have been spent inlining context the tool retrieved instead. `0`
|
|
58
|
+
* when no tool reported an estimate.
|
|
59
|
+
*/
|
|
60
|
+
tokensAvoided: number;
|
|
61
|
+
/**
|
|
62
|
+
* Fraction (0..1) of the benchmark's known-impacted files that the run's
|
|
63
|
+
* answer text surfaced, scored by {@link scoreImpactRecall} against a
|
|
64
|
+
* fixture's `impact.json` (P26). `0` when not scored from the trajectory
|
|
65
|
+
* alone — callers score this against a fixture's known-impact list.
|
|
66
|
+
*/
|
|
67
|
+
impactRecall: number;
|
|
68
|
+
/**
|
|
69
|
+
* Milliseconds spent building/refreshing the codebase-memory index for this
|
|
70
|
+
* run (P26), summed from `manifest.codebaseMemory`. `0` for non-CBM runs.
|
|
71
|
+
*/
|
|
72
|
+
indexingOverheadMs: number;
|
|
50
73
|
};
|
|
51
74
|
/**
|
|
52
75
|
* Derive {@link EvalSignals} from a recorded run trajectory. Pure: no I/O, no
|
|
@@ -57,7 +80,19 @@ export type EvalSignals = {
|
|
|
57
80
|
export declare function scoreTrajectory(manifest: RunManifest, stages: StageRecord[], opts?: {
|
|
58
81
|
planScore?: PlanRubricScore;
|
|
59
82
|
reportScore?: ReportRubricScore;
|
|
83
|
+
/** Precomputed impact recall for fixtures that declare a known impacted-file
|
|
84
|
+
* set (P26). The trajectory alone can't derive it — the eval harness scores
|
|
85
|
+
* it via {@link scoreImpactRecall} against the fixture's impact list and the
|
|
86
|
+
* run's answer text, then threads it in here. Absent ⇒ 0 (not applicable). */
|
|
87
|
+
impactRecall?: number;
|
|
60
88
|
}): EvalSignals;
|
|
89
|
+
/**
|
|
90
|
+
* Score how many `knownImpactedFiles` a run's answer text surfaced — a thin
|
|
91
|
+
* wrapper over {@link assessFactSurvival} treating each impacted file path as
|
|
92
|
+
* a "fact" that must survive into the answer (P26 codebase-memory spike).
|
|
93
|
+
* Vacuously `1` for an empty impact list. Pure.
|
|
94
|
+
*/
|
|
95
|
+
export declare function scoreImpactRecall(knownImpactedFiles: string[], answerText: string): number;
|
|
61
96
|
/** One Otto run's signals tagged with the configuration label that produced it. */
|
|
62
97
|
export type LabelledSignals = {
|
|
63
98
|
label: string;
|
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,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIhE;;;;;;;;;;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;IACxB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,WAAW,EAAE,EACrB,IAAI,GAAE;IACJ,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;mFAG+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,WAAW,CAoCb;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAUD,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AA8FtE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,CAoCnE"}
|
package/dist/eval.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { tokenUsageTotal } from "./tokens.js";
|
|
2
|
+
import { assessFactSurvival } from "./compression-survival.js";
|
|
2
3
|
const SUCCESS_REASONS = new Set(["complete", "done"]);
|
|
3
4
|
/**
|
|
4
5
|
* Derive {@link EvalSignals} from a recorded run trajectory. Pure: no I/O, no
|
|
@@ -23,8 +24,28 @@ export function scoreTrajectory(manifest, stages, opts = {}) {
|
|
|
23
24
|
stages.reduce((n, s) => n + (s.skillsUsed?.length ?? 0), 0),
|
|
24
25
|
planQualityRatio: opts.planScore ? opts.planScore.ratio : null,
|
|
25
26
|
reportLegibilityRatio: opts.reportScore ? opts.reportScore.ratio : null,
|
|
27
|
+
toolCallCount: (manifest.toolsUsed?.length ?? 0) +
|
|
28
|
+
stages.reduce((n, s) => n + (s.toolsUsed?.length ?? 0), 0),
|
|
29
|
+
tokensAvoided: (manifest.toolsUsed?.reduce((n, t) => n + (t.tokensAvoided ?? 0), 0) ??
|
|
30
|
+
0) +
|
|
31
|
+
stages.reduce((n, s) => n +
|
|
32
|
+
(s.toolsUsed?.reduce((m, t) => m + (t.tokensAvoided ?? 0), 0) ?? 0), 0),
|
|
33
|
+
impactRecall: opts.impactRecall ?? 0,
|
|
34
|
+
indexingOverheadMs: (manifest.codebaseMemory?.buildMs ?? 0) +
|
|
35
|
+
(manifest.codebaseMemory?.refreshMs ?? 0),
|
|
26
36
|
};
|
|
27
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Score how many `knownImpactedFiles` a run's answer text surfaced — a thin
|
|
40
|
+
* wrapper over {@link assessFactSurvival} treating each impacted file path as
|
|
41
|
+
* a "fact" that must survive into the answer (P26 codebase-memory spike).
|
|
42
|
+
* Vacuously `1` for an empty impact list. Pure.
|
|
43
|
+
*/
|
|
44
|
+
export function scoreImpactRecall(knownImpactedFiles, answerText) {
|
|
45
|
+
if (knownImpactedFiles.length === 0)
|
|
46
|
+
return 1;
|
|
47
|
+
return assessFactSurvival(knownImpactedFiles, answerText).survivalRate;
|
|
48
|
+
}
|
|
28
49
|
function elapsedMs(startedAt, finishedAt) {
|
|
29
50
|
if (finishedAt == null)
|
|
30
51
|
return null;
|
|
@@ -43,7 +64,7 @@ const COMPARE_COLUMNS = [
|
|
|
43
64
|
{ header: "Exit", cell: (s) => s.exitReason ?? "—" },
|
|
44
65
|
{
|
|
45
66
|
header: "Iterations",
|
|
46
|
-
cell: (s) =>
|
|
67
|
+
cell: (s) => s.completedIterations == null ? "—" : String(s.completedIterations),
|
|
47
68
|
},
|
|
48
69
|
{ header: "Stages", cell: (s) => String(s.stageCount) },
|
|
49
70
|
{
|
|
@@ -87,6 +108,26 @@ const COMPARE_COLUMNS = [
|
|
|
87
108
|
: `${Math.round(s.reportLegibilityRatio * 100)}%`,
|
|
88
109
|
rank: { value: (s) => s.reportLegibilityRatio, better: "higher" },
|
|
89
110
|
},
|
|
111
|
+
{
|
|
112
|
+
header: "Tool calls",
|
|
113
|
+
cell: (s) => String(s.toolCallCount),
|
|
114
|
+
rank: { value: (s) => s.toolCallCount, better: "lower" },
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
header: "Tokens avoided",
|
|
118
|
+
cell: (s) => String(s.tokensAvoided),
|
|
119
|
+
rank: { value: (s) => s.tokensAvoided, better: "higher" },
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
header: "Impact recall",
|
|
123
|
+
cell: (s) => `${Math.round(s.impactRecall * 100)}%`,
|
|
124
|
+
rank: { value: (s) => s.impactRecall, better: "higher" },
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
header: "Indexing overhead (ms)",
|
|
128
|
+
cell: (s) => String(s.indexingOverheadMs),
|
|
129
|
+
rank: { value: (s) => s.indexingOverheadMs, better: "lower" },
|
|
130
|
+
},
|
|
90
131
|
];
|
|
91
132
|
/**
|
|
92
133
|
* Render a stable markdown comparison table across labelled runs — one row per
|