@bradtaylorsf/alpha-loop 1.14.0 → 1.14.2
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/README.md +73 -1
- package/dist/cli.js +37 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/eval.d.ts +22 -0
- package/dist/commands/eval.js +105 -1
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/evolve-routing.d.ts +24 -0
- package/dist/commands/evolve-routing.js +320 -0
- package/dist/commands/evolve-routing.js.map +1 -0
- package/dist/commands/history.d.ts +2 -0
- package/dist/commands/history.js +95 -1
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +26 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/report.d.ts +7 -0
- package/dist/commands/report.js +27 -0
- package/dist/commands/report.js.map +1 -0
- package/dist/commands/scan.d.ts +1 -1
- package/dist/commands/scan.js.map +1 -1
- package/dist/engine/agents.d.ts +30 -8
- package/dist/engine/agents.js +94 -10
- package/dist/engine/agents.js.map +1 -1
- package/dist/engine/prerequisites.d.ts +40 -2
- package/dist/engine/prerequisites.js +126 -2
- package/dist/engine/prerequisites.js.map +1 -1
- package/dist/lib/agent.d.ts +39 -2
- package/dist/lib/agent.js +106 -4
- package/dist/lib/agent.js.map +1 -1
- package/dist/lib/config.d.ts +73 -1
- package/dist/lib/config.js +214 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/escalation.d.ts +102 -0
- package/dist/lib/escalation.js +241 -0
- package/dist/lib/escalation.js.map +1 -0
- package/dist/lib/eval-matrix.d.ts +125 -0
- package/dist/lib/eval-matrix.js +317 -0
- package/dist/lib/eval-matrix.js.map +1 -0
- package/dist/lib/eval-report.d.ts +12 -0
- package/dist/lib/eval-report.js +132 -0
- package/dist/lib/eval-report.js.map +1 -0
- package/dist/lib/eval-secret-scan.d.ts +41 -0
- package/dist/lib/eval-secret-scan.js +163 -0
- package/dist/lib/eval-secret-scan.js.map +1 -0
- package/dist/lib/eval.js +7 -4
- package/dist/lib/eval.js.map +1 -1
- package/dist/lib/hardware.d.ts +9 -0
- package/dist/lib/hardware.js +32 -0
- package/dist/lib/hardware.js.map +1 -0
- package/dist/lib/pipeline.d.ts +5 -1
- package/dist/lib/pipeline.js +217 -16
- package/dist/lib/pipeline.js.map +1 -1
- package/dist/lib/prerequisites.js +11 -3
- package/dist/lib/prerequisites.js.map +1 -1
- package/dist/lib/routing-history.d.ts +43 -0
- package/dist/lib/routing-history.js +112 -0
- package/dist/lib/routing-history.js.map +1 -0
- package/dist/lib/routing-promotion.d.ts +95 -0
- package/dist/lib/routing-promotion.js +229 -0
- package/dist/lib/routing-promotion.js.map +1 -0
- package/dist/lib/session.js +13 -0
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/telemetry.d.ts +147 -0
- package/dist/lib/telemetry.js +353 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/package.json +1 -1
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { RoutingStageName, FallbackPolicy } from './config.js';
|
|
2
|
+
/** Reason classes we detect in agent output. */
|
|
3
|
+
export type ToolErrorKind = 'json_parse' | 'unknown_tool' | 'schema_validation';
|
|
4
|
+
/** Structured classification of a tool-call error found in agent output. */
|
|
5
|
+
export type ToolErrorClassification = {
|
|
6
|
+
kind: ToolErrorKind;
|
|
7
|
+
reason: string;
|
|
8
|
+
};
|
|
9
|
+
/** One tool-call failure attempt tracked within a single turn. */
|
|
10
|
+
export type TurnErrorState = {
|
|
11
|
+
/** Classified errors seen in this turn so far, in encounter order. */
|
|
12
|
+
errors: ToolErrorClassification[];
|
|
13
|
+
/** Whether this turn has already been escalated once (max 1 per turn). */
|
|
14
|
+
escalated: boolean;
|
|
15
|
+
};
|
|
16
|
+
/** Structured event recorded when escalation or guardrail logic fires. */
|
|
17
|
+
export type EscalationEvent = {
|
|
18
|
+
type: 'escalation' | 'stage_revert' | 'stage_revert_active' | 'needs_human_input';
|
|
19
|
+
stage: RoutingStageName;
|
|
20
|
+
from_model: string;
|
|
21
|
+
to_model: string;
|
|
22
|
+
reason: string;
|
|
23
|
+
turn_index: number;
|
|
24
|
+
issue: number;
|
|
25
|
+
ts: string;
|
|
26
|
+
};
|
|
27
|
+
/** Per-stage record of a single turn outcome (used by the rolling guardrail). */
|
|
28
|
+
export type TurnRecord = {
|
|
29
|
+
/** Whether any tool-call error was classified in the turn. */
|
|
30
|
+
errored: boolean;
|
|
31
|
+
/** Whether this turn was escalated to the fallback model. */
|
|
32
|
+
escalated: boolean;
|
|
33
|
+
/** Epoch ms when the turn completed. */
|
|
34
|
+
timestampMs: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Classify a single tool-call failure signal in agent output.
|
|
38
|
+
* Returns null when no classified pattern is found.
|
|
39
|
+
*
|
|
40
|
+
* Use `classifyToolErrors` to detect multiple distinct failures in one turn.
|
|
41
|
+
*/
|
|
42
|
+
export declare function classifyToolError(output: string): ToolErrorClassification | null;
|
|
43
|
+
/**
|
|
44
|
+
* Scan an output buffer for every classified tool-call failure occurrence.
|
|
45
|
+
* Returned in encounter order; duplicates of the same exact reason are kept —
|
|
46
|
+
* two hits means two consecutive errors, which is the escalation trigger.
|
|
47
|
+
*/
|
|
48
|
+
export declare function classifyToolErrors(output: string): ToolErrorClassification[];
|
|
49
|
+
/** Start a new per-turn error-state object. */
|
|
50
|
+
export declare function newTurnState(): TurnErrorState;
|
|
51
|
+
/**
|
|
52
|
+
* Record tool-call errors from an output into the turn state.
|
|
53
|
+
* Returns true when the turn has reached the 2-error escalation threshold
|
|
54
|
+
* AND hasn't already been escalated.
|
|
55
|
+
*/
|
|
56
|
+
export declare function shouldEscalate(turn: TurnErrorState, output: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Rolling-window guardrail that tracks per-stage tool-error rates across
|
|
59
|
+
* recent turns and pins a stage to fallback when the rate exceeds the
|
|
60
|
+
* configured threshold. All time comes from the injected `now()` so tests
|
|
61
|
+
* can advance fake timers.
|
|
62
|
+
*/
|
|
63
|
+
export declare class EscalationTracker {
|
|
64
|
+
private state;
|
|
65
|
+
private readonly statePath;
|
|
66
|
+
private readonly nowFn;
|
|
67
|
+
constructor(options?: {
|
|
68
|
+
statePath?: string | null;
|
|
69
|
+
now?: () => number;
|
|
70
|
+
});
|
|
71
|
+
now(): number;
|
|
72
|
+
/** Append a turn outcome for a stage. Trims to the rolling window size. */
|
|
73
|
+
recordTurn(entry: {
|
|
74
|
+
stage: RoutingStageName;
|
|
75
|
+
errored: boolean;
|
|
76
|
+
escalated: boolean;
|
|
77
|
+
timestampMs?: number;
|
|
78
|
+
windowSize: number;
|
|
79
|
+
}): void;
|
|
80
|
+
/** Current rolling error rate for a stage (0..1). Returns 0 when no data. */
|
|
81
|
+
errorRate(stage: RoutingStageName): number;
|
|
82
|
+
/** Whether the stage is currently pinned to fallback. */
|
|
83
|
+
isStageReverted(stage: RoutingStageName, now?: number): boolean;
|
|
84
|
+
/** Pin a stage to fallback until `untilMs`. */
|
|
85
|
+
markRevert(stage: RoutingStageName, untilMs: number): void;
|
|
86
|
+
/**
|
|
87
|
+
* Evaluate whether the stage should be pinned to fallback. Call after
|
|
88
|
+
* recordTurn(). Returns true when a new revert was just applied.
|
|
89
|
+
*/
|
|
90
|
+
maybeTriggerRevert(stage: RoutingStageName, policy: FallbackPolicy): boolean;
|
|
91
|
+
/** When the current pin expires (epoch ms) or null if unpinned. */
|
|
92
|
+
revertUntil(stage: RoutingStageName): number | null;
|
|
93
|
+
private load;
|
|
94
|
+
private save;
|
|
95
|
+
}
|
|
96
|
+
/** Default filesystem location for the persisted guardrail state. */
|
|
97
|
+
export declare function defaultEscalationStatePath(projectDir?: string): string;
|
|
98
|
+
/**
|
|
99
|
+
* Append a structured escalation event to the traces ndjson log.
|
|
100
|
+
* Silent on failure — telemetry should never break the pipeline.
|
|
101
|
+
*/
|
|
102
|
+
export declare function appendEscalationEventToTrace(runDir: string, event: EscalationEvent): void;
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry-with-escalation: when a local-model stage emits malformed tool calls
|
|
3
|
+
* or fails structural checks twice within the same turn, auto-escalate that
|
|
4
|
+
* turn to the configured frontier fallback model. Also implements the 24h
|
|
5
|
+
* rolling-rate guardrail that pins a stage to fallback when the primary's
|
|
6
|
+
* tool-error rate exceeds the configured threshold.
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
9
|
+
import { dirname, join } from 'node:path';
|
|
10
|
+
const EMPTY_STATE = { history: {}, reverts: {} };
|
|
11
|
+
/**
|
|
12
|
+
* Patterns used to classify tool-call errors found in agent output.
|
|
13
|
+
*
|
|
14
|
+
* We scan only the last ~4KB of output to avoid matching code the agent wrote
|
|
15
|
+
* (e.g. docstrings containing the word "ZodError" or "unknown tool"). If the
|
|
16
|
+
* signal appears anywhere further up, it's far more likely to be content than
|
|
17
|
+
* a genuine error.
|
|
18
|
+
*/
|
|
19
|
+
const CLASSIFY_TAIL_CHARS = 4000;
|
|
20
|
+
const JSON_PARSE_PATTERNS = [
|
|
21
|
+
/SyntaxError:\s*Unexpected token/i,
|
|
22
|
+
/SyntaxError:\s*Expected.*JSON/i,
|
|
23
|
+
/JSON\.parse\s*\(/,
|
|
24
|
+
/Unexpected end of JSON input/i,
|
|
25
|
+
/Invalid JSON in tool (call|arguments?)/i,
|
|
26
|
+
/failed to parse tool arguments?/i,
|
|
27
|
+
/malformed (tool[- ])?(call|arguments?|json)/i,
|
|
28
|
+
];
|
|
29
|
+
const UNKNOWN_TOOL_PATTERNS = [
|
|
30
|
+
/unknown tool[: ]/i,
|
|
31
|
+
/tool not (found|defined|registered)/i,
|
|
32
|
+
/no such tool[: ]/i,
|
|
33
|
+
/unrecognized tool[: ]/i,
|
|
34
|
+
];
|
|
35
|
+
const SCHEMA_VALIDATION_PATTERNS = [
|
|
36
|
+
/ZodError/,
|
|
37
|
+
/"code":\s*"invalid_type"/,
|
|
38
|
+
/invalid_type/i,
|
|
39
|
+
/required field.*missing/i,
|
|
40
|
+
/schema validation failed/i,
|
|
41
|
+
/does not match schema/i,
|
|
42
|
+
/parameter .+ is required/i,
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Classify a single tool-call failure signal in agent output.
|
|
46
|
+
* Returns null when no classified pattern is found.
|
|
47
|
+
*
|
|
48
|
+
* Use `classifyToolErrors` to detect multiple distinct failures in one turn.
|
|
49
|
+
*/
|
|
50
|
+
export function classifyToolError(output) {
|
|
51
|
+
if (!output)
|
|
52
|
+
return null;
|
|
53
|
+
const tail = output.slice(-CLASSIFY_TAIL_CHARS);
|
|
54
|
+
for (const p of JSON_PARSE_PATTERNS) {
|
|
55
|
+
const m = tail.match(p);
|
|
56
|
+
if (m)
|
|
57
|
+
return { kind: 'json_parse', reason: m[0].trim() };
|
|
58
|
+
}
|
|
59
|
+
for (const p of UNKNOWN_TOOL_PATTERNS) {
|
|
60
|
+
const m = tail.match(p);
|
|
61
|
+
if (m)
|
|
62
|
+
return { kind: 'unknown_tool', reason: m[0].trim() };
|
|
63
|
+
}
|
|
64
|
+
for (const p of SCHEMA_VALIDATION_PATTERNS) {
|
|
65
|
+
const m = tail.match(p);
|
|
66
|
+
if (m)
|
|
67
|
+
return { kind: 'schema_validation', reason: m[0].trim() };
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Scan an output buffer for every classified tool-call failure occurrence.
|
|
73
|
+
* Returned in encounter order; duplicates of the same exact reason are kept —
|
|
74
|
+
* two hits means two consecutive errors, which is the escalation trigger.
|
|
75
|
+
*/
|
|
76
|
+
export function classifyToolErrors(output) {
|
|
77
|
+
if (!output)
|
|
78
|
+
return [];
|
|
79
|
+
const tail = output.slice(-CLASSIFY_TAIL_CHARS);
|
|
80
|
+
const hits = [];
|
|
81
|
+
const scan = (patterns, kind) => {
|
|
82
|
+
for (const p of patterns) {
|
|
83
|
+
const globalPattern = new RegExp(p.source, p.flags.includes('g') ? p.flags : p.flags + 'g');
|
|
84
|
+
let m;
|
|
85
|
+
while ((m = globalPattern.exec(tail)) !== null) {
|
|
86
|
+
hits.push({ index: m.index, classification: { kind, reason: m[0].trim() } });
|
|
87
|
+
if (m.index === globalPattern.lastIndex)
|
|
88
|
+
globalPattern.lastIndex++;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
scan(JSON_PARSE_PATTERNS, 'json_parse');
|
|
93
|
+
scan(UNKNOWN_TOOL_PATTERNS, 'unknown_tool');
|
|
94
|
+
scan(SCHEMA_VALIDATION_PATTERNS, 'schema_validation');
|
|
95
|
+
hits.sort((a, b) => a.index - b.index);
|
|
96
|
+
return hits.map((h) => h.classification);
|
|
97
|
+
}
|
|
98
|
+
/** Start a new per-turn error-state object. */
|
|
99
|
+
export function newTurnState() {
|
|
100
|
+
return { errors: [], escalated: false };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Record tool-call errors from an output into the turn state.
|
|
104
|
+
* Returns true when the turn has reached the 2-error escalation threshold
|
|
105
|
+
* AND hasn't already been escalated.
|
|
106
|
+
*/
|
|
107
|
+
export function shouldEscalate(turn, output) {
|
|
108
|
+
if (turn.escalated)
|
|
109
|
+
return false;
|
|
110
|
+
const newErrors = classifyToolErrors(output);
|
|
111
|
+
if (newErrors.length === 0)
|
|
112
|
+
return false;
|
|
113
|
+
turn.errors.push(...newErrors);
|
|
114
|
+
return turn.errors.length >= 2;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Rolling-window guardrail that tracks per-stage tool-error rates across
|
|
118
|
+
* recent turns and pins a stage to fallback when the rate exceeds the
|
|
119
|
+
* configured threshold. All time comes from the injected `now()` so tests
|
|
120
|
+
* can advance fake timers.
|
|
121
|
+
*/
|
|
122
|
+
export class EscalationTracker {
|
|
123
|
+
state;
|
|
124
|
+
statePath;
|
|
125
|
+
nowFn;
|
|
126
|
+
constructor(options = {}) {
|
|
127
|
+
this.statePath = options.statePath ?? null;
|
|
128
|
+
this.nowFn = options.now ?? (() => Date.now());
|
|
129
|
+
this.state = this.load();
|
|
130
|
+
}
|
|
131
|
+
now() {
|
|
132
|
+
return this.nowFn();
|
|
133
|
+
}
|
|
134
|
+
/** Append a turn outcome for a stage. Trims to the rolling window size. */
|
|
135
|
+
recordTurn(entry) {
|
|
136
|
+
const history = this.state.history[entry.stage] ?? [];
|
|
137
|
+
history.push({
|
|
138
|
+
errored: entry.errored,
|
|
139
|
+
escalated: entry.escalated,
|
|
140
|
+
timestampMs: entry.timestampMs ?? this.nowFn(),
|
|
141
|
+
});
|
|
142
|
+
while (history.length > entry.windowSize)
|
|
143
|
+
history.shift();
|
|
144
|
+
this.state.history[entry.stage] = history;
|
|
145
|
+
this.save();
|
|
146
|
+
}
|
|
147
|
+
/** Current rolling error rate for a stage (0..1). Returns 0 when no data. */
|
|
148
|
+
errorRate(stage) {
|
|
149
|
+
const history = this.state.history[stage] ?? [];
|
|
150
|
+
if (history.length === 0)
|
|
151
|
+
return 0;
|
|
152
|
+
const errored = history.filter((h) => h.errored).length;
|
|
153
|
+
return errored / history.length;
|
|
154
|
+
}
|
|
155
|
+
/** Whether the stage is currently pinned to fallback. */
|
|
156
|
+
isStageReverted(stage, now) {
|
|
157
|
+
const pin = this.state.reverts[stage];
|
|
158
|
+
if (pin == null)
|
|
159
|
+
return false;
|
|
160
|
+
const current = now ?? this.nowFn();
|
|
161
|
+
if (current >= pin) {
|
|
162
|
+
delete this.state.reverts[stage];
|
|
163
|
+
this.save();
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
/** Pin a stage to fallback until `untilMs`. */
|
|
169
|
+
markRevert(stage, untilMs) {
|
|
170
|
+
this.state.reverts[stage] = untilMs;
|
|
171
|
+
this.save();
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Evaluate whether the stage should be pinned to fallback. Call after
|
|
175
|
+
* recordTurn(). Returns true when a new revert was just applied.
|
|
176
|
+
*/
|
|
177
|
+
maybeTriggerRevert(stage, policy) {
|
|
178
|
+
if (this.isStageReverted(stage))
|
|
179
|
+
return false;
|
|
180
|
+
const history = this.state.history[stage] ?? [];
|
|
181
|
+
if (history.length < policy.escalation_window_issues)
|
|
182
|
+
return false;
|
|
183
|
+
const rate = this.errorRate(stage);
|
|
184
|
+
if (rate > policy.escalation_error_threshold) {
|
|
185
|
+
this.markRevert(stage, this.nowFn() + policy.escalation_revert_ms);
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
/** When the current pin expires (epoch ms) or null if unpinned. */
|
|
191
|
+
revertUntil(stage) {
|
|
192
|
+
const pin = this.state.reverts[stage];
|
|
193
|
+
return pin ?? null;
|
|
194
|
+
}
|
|
195
|
+
load() {
|
|
196
|
+
if (!this.statePath || !existsSync(this.statePath)) {
|
|
197
|
+
return { history: {}, reverts: {} };
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
const raw = readFileSync(this.statePath, 'utf-8');
|
|
201
|
+
const parsed = JSON.parse(raw);
|
|
202
|
+
return {
|
|
203
|
+
history: parsed.history ?? {},
|
|
204
|
+
reverts: parsed.reverts ?? {},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
return { history: {}, reverts: {} };
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
save() {
|
|
212
|
+
if (!this.statePath)
|
|
213
|
+
return;
|
|
214
|
+
try {
|
|
215
|
+
mkdirSync(dirname(this.statePath), { recursive: true });
|
|
216
|
+
writeFileSync(this.statePath, JSON.stringify(this.state, null, 2) + '\n');
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
// Non-fatal — guardrail is a best-effort cache.
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/** Default filesystem location for the persisted guardrail state. */
|
|
224
|
+
export function defaultEscalationStatePath(projectDir) {
|
|
225
|
+
return join(projectDir ?? process.cwd(), '.alpha-loop', 'escalation-state.json');
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Append a structured escalation event to the traces ndjson log.
|
|
229
|
+
* Silent on failure — telemetry should never break the pipeline.
|
|
230
|
+
*/
|
|
231
|
+
export function appendEscalationEventToTrace(runDir, event) {
|
|
232
|
+
try {
|
|
233
|
+
mkdirSync(runDir, { recursive: true });
|
|
234
|
+
const path = join(runDir, 'events.ndjson');
|
|
235
|
+
writeFileSync(path, JSON.stringify(event) + '\n', { flag: 'a' });
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
// Non-fatal.
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=escalation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalation.js","sourceRoot":"","sources":["../../src/lib/escalation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { Config } from './config.js';
|
|
2
|
+
import type { EvalSuiteResult } from './eval.js';
|
|
3
|
+
import type { EvalCaseWithChecks, EvalRunOptions } from './eval-runner.js';
|
|
4
|
+
/** Options the CLI accepts for the matrix run. */
|
|
5
|
+
export type MatrixOptions = {
|
|
6
|
+
/** Paths / names of profile YAMLs. Names are resolved under .alpha-loop/evals/profiles/. */
|
|
7
|
+
profiles: string[];
|
|
8
|
+
/** Baseline profile name or path to use for delta computations. */
|
|
9
|
+
baseline?: string;
|
|
10
|
+
/** Output directory for markdown + CSV reports. */
|
|
11
|
+
outDir?: string;
|
|
12
|
+
/** Passed through to runEvalSuite (e.g. --verbose). */
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Skip actual pipeline execution; emit a structural report only.
|
|
16
|
+
*
|
|
17
|
+
* Why this exists: the current eval pipeline calls processIssue(), which
|
|
18
|
+
* hits live GitHub (project board, labels, branches). A matrix run across
|
|
19
|
+
* routing-regression cases would mutate real issues because the case IDs
|
|
20
|
+
* ("001-…", "002-…") parse back to real issue numbers on the active repo.
|
|
21
|
+
* Until proper fixture isolation lands (clean clone at source_pr's
|
|
22
|
+
* base_sha, no GH mutations), dry-run is the safe default.
|
|
23
|
+
*/
|
|
24
|
+
dryRun?: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** Per-profile metrics for a single case. */
|
|
27
|
+
export type MatrixCaseEntry = {
|
|
28
|
+
/** True if the case passed pipeline_success under this profile. */
|
|
29
|
+
passed: boolean;
|
|
30
|
+
partialCredit: number;
|
|
31
|
+
costUsd: number;
|
|
32
|
+
wallTimeS: number;
|
|
33
|
+
toolErrorRate: number;
|
|
34
|
+
/** Diff similarity vs golden.patch; null if not applicable / stub patch. */
|
|
35
|
+
diffSimilarity: number | null;
|
|
36
|
+
/** True when the run errored outright (crash, timeout). */
|
|
37
|
+
errored: boolean;
|
|
38
|
+
error?: string;
|
|
39
|
+
/** True when the case was skipped because the matrix ran in dry-run mode. */
|
|
40
|
+
skipped?: boolean;
|
|
41
|
+
};
|
|
42
|
+
/** Aggregated totals for one profile. */
|
|
43
|
+
export type MatrixProfileTotals = {
|
|
44
|
+
profile: string;
|
|
45
|
+
caseCount: number;
|
|
46
|
+
passCount: number;
|
|
47
|
+
passRate: number;
|
|
48
|
+
totalCostUsd: number;
|
|
49
|
+
meanWallTimeS: number;
|
|
50
|
+
meanToolErrorRate: number;
|
|
51
|
+
};
|
|
52
|
+
/** The full matrix result returned by runMatrix. */
|
|
53
|
+
export type MatrixResult = {
|
|
54
|
+
profiles: string[];
|
|
55
|
+
baseline: string;
|
|
56
|
+
cases: Array<{
|
|
57
|
+
caseId: string;
|
|
58
|
+
description: string;
|
|
59
|
+
perProfile: Record<string, MatrixCaseEntry>;
|
|
60
|
+
}>;
|
|
61
|
+
totals: MatrixProfileTotals[];
|
|
62
|
+
/** Per-profile deltas vs baseline: positive means "better than baseline". */
|
|
63
|
+
deltas: Record<string, {
|
|
64
|
+
pipelineSuccessDelta: number;
|
|
65
|
+
costPerIssueDelta: number;
|
|
66
|
+
}>;
|
|
67
|
+
/** True when this report reflects a dry-run (no pipelines executed). */
|
|
68
|
+
dryRun?: boolean;
|
|
69
|
+
};
|
|
70
|
+
/** Narrow Partial<Config> — only fields supported by profile YAMLs. */
|
|
71
|
+
export type ProfileOverrides = Partial<Pick<Config, 'agent' | 'model' | 'reviewModel' | 'pipeline' | 'routing'>>;
|
|
72
|
+
/**
|
|
73
|
+
* Load a profile YAML and return the narrow override shape.
|
|
74
|
+
* Accepts either a bare name ("hybrid-v1") or a full path.
|
|
75
|
+
*/
|
|
76
|
+
export declare function loadProfileOverrides(profileNameOrPath: string, projectDir?: string): ProfileOverrides;
|
|
77
|
+
/** Resolve a bare profile name to its path, or pass a real path through. */
|
|
78
|
+
export declare function resolveProfilePath(nameOrPath: string, projectDir: string): string;
|
|
79
|
+
/** Human-friendly profile name for reports — always just the base. */
|
|
80
|
+
export declare function profileDisplayName(nameOrPath: string): string;
|
|
81
|
+
/** Compose profile overrides onto a base config. Pipeline merges per-step. */
|
|
82
|
+
export declare function applyProfileToConfig(base: Config, overrides: ProfileOverrides): Config;
|
|
83
|
+
/**
|
|
84
|
+
* Compute a rough similarity score between a produced diff and the golden
|
|
85
|
+
* patch. Line-set Jaccard over non-empty, non-header lines — cheap and
|
|
86
|
+
* stable enough to flag drift, not meant to replace a proper diff compare.
|
|
87
|
+
*/
|
|
88
|
+
export declare function diffSimilarity(produced: string, golden: string): number;
|
|
89
|
+
/**
|
|
90
|
+
* Detect whether a golden.patch file is a stub (no real diff to compare).
|
|
91
|
+
* Stubs start with "# TODO" or contain only comment/blank lines.
|
|
92
|
+
*/
|
|
93
|
+
export declare function isStubPatch(content: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Extract per-case matrix entries from an EvalSuiteResult, plus the supplied
|
|
96
|
+
* per-case diff comparisons (if any).
|
|
97
|
+
*/
|
|
98
|
+
export declare function toMatrixEntries(result: EvalSuiteResult, diffLookup?: Map<string, number | null>): Record<string, MatrixCaseEntry>;
|
|
99
|
+
/** Aggregate per-profile totals from per-case entries. */
|
|
100
|
+
export declare function aggregateTotals(profile: string, entries: Record<string, MatrixCaseEntry>): MatrixProfileTotals;
|
|
101
|
+
/** Compute deltas for each profile vs the baseline. */
|
|
102
|
+
export declare function computeDeltas(totals: MatrixProfileTotals[], baseline: string): Record<string, {
|
|
103
|
+
pipelineSuccessDelta: number;
|
|
104
|
+
costPerIssueDelta: number;
|
|
105
|
+
}>;
|
|
106
|
+
/**
|
|
107
|
+
* Run the full matrix: every profile × every case. Each profile gets a
|
|
108
|
+
* fresh config built by deep-merging its overrides onto `baseConfig`.
|
|
109
|
+
*
|
|
110
|
+
* `runner` is injectable for tests — defaults to the real `runEvalSuite`.
|
|
111
|
+
*/
|
|
112
|
+
export declare function runMatrix(cases: EvalCaseWithChecks[], opts: MatrixOptions, baseConfig: Config, runner?: (cases: EvalCaseWithChecks[], config: Config, options?: EvalRunOptions) => Promise<EvalSuiteResult>): Promise<MatrixResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Locate the most recent matrix report, returning its mtime (epoch ms) and
|
|
115
|
+
* path. Used by `alpha-loop evolve routing` to enforce a freshness gate on
|
|
116
|
+
* promotion proposals — promotion must not fire without a recent matrix run.
|
|
117
|
+
*
|
|
118
|
+
* Checks the default `eval/reports/` directory first, then
|
|
119
|
+
* `.alpha-loop/evals/reports/` (where older runs land). Returns null when
|
|
120
|
+
* neither directory contains a `routing-*.{md,csv}` file.
|
|
121
|
+
*/
|
|
122
|
+
export declare function latestMatrixRun(projectDir?: string): {
|
|
123
|
+
timestampMs: number;
|
|
124
|
+
summaryPath: string;
|
|
125
|
+
} | null;
|