@bradtaylorsf/alpha-loop 1.14.0 → 1.14.1

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.
Files changed (66) hide show
  1. package/README.md +73 -1
  2. package/dist/cli.js +37 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/eval.d.ts +22 -0
  5. package/dist/commands/eval.js +105 -1
  6. package/dist/commands/eval.js.map +1 -1
  7. package/dist/commands/evolve-routing.d.ts +24 -0
  8. package/dist/commands/evolve-routing.js +320 -0
  9. package/dist/commands/evolve-routing.js.map +1 -0
  10. package/dist/commands/history.d.ts +2 -0
  11. package/dist/commands/history.js +95 -1
  12. package/dist/commands/history.js.map +1 -1
  13. package/dist/commands/init.d.ts +6 -0
  14. package/dist/commands/init.js +26 -1
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/report.d.ts +7 -0
  17. package/dist/commands/report.js +27 -0
  18. package/dist/commands/report.js.map +1 -0
  19. package/dist/commands/scan.d.ts +1 -1
  20. package/dist/commands/scan.js.map +1 -1
  21. package/dist/engine/agents.d.ts +30 -8
  22. package/dist/engine/agents.js +94 -10
  23. package/dist/engine/agents.js.map +1 -1
  24. package/dist/engine/prerequisites.d.ts +40 -2
  25. package/dist/engine/prerequisites.js +126 -2
  26. package/dist/engine/prerequisites.js.map +1 -1
  27. package/dist/lib/agent.d.ts +39 -2
  28. package/dist/lib/agent.js +106 -4
  29. package/dist/lib/agent.js.map +1 -1
  30. package/dist/lib/config.d.ts +73 -1
  31. package/dist/lib/config.js +214 -1
  32. package/dist/lib/config.js.map +1 -1
  33. package/dist/lib/escalation.d.ts +102 -0
  34. package/dist/lib/escalation.js +241 -0
  35. package/dist/lib/escalation.js.map +1 -0
  36. package/dist/lib/eval-matrix.d.ts +125 -0
  37. package/dist/lib/eval-matrix.js +317 -0
  38. package/dist/lib/eval-matrix.js.map +1 -0
  39. package/dist/lib/eval-report.d.ts +12 -0
  40. package/dist/lib/eval-report.js +132 -0
  41. package/dist/lib/eval-report.js.map +1 -0
  42. package/dist/lib/eval-secret-scan.d.ts +41 -0
  43. package/dist/lib/eval-secret-scan.js +163 -0
  44. package/dist/lib/eval-secret-scan.js.map +1 -0
  45. package/dist/lib/eval.js +7 -4
  46. package/dist/lib/eval.js.map +1 -1
  47. package/dist/lib/hardware.d.ts +9 -0
  48. package/dist/lib/hardware.js +32 -0
  49. package/dist/lib/hardware.js.map +1 -0
  50. package/dist/lib/pipeline.d.ts +5 -1
  51. package/dist/lib/pipeline.js +217 -16
  52. package/dist/lib/pipeline.js.map +1 -1
  53. package/dist/lib/prerequisites.js +11 -3
  54. package/dist/lib/prerequisites.js.map +1 -1
  55. package/dist/lib/routing-history.d.ts +43 -0
  56. package/dist/lib/routing-history.js +112 -0
  57. package/dist/lib/routing-history.js.map +1 -0
  58. package/dist/lib/routing-promotion.d.ts +95 -0
  59. package/dist/lib/routing-promotion.js +229 -0
  60. package/dist/lib/routing-promotion.js.map +1 -0
  61. package/dist/lib/session.js +13 -0
  62. package/dist/lib/session.js.map +1 -1
  63. package/dist/lib/telemetry.d.ts +147 -0
  64. package/dist/lib/telemetry.js +353 -0
  65. package/dist/lib/telemetry.js.map +1 -0
  66. package/package.json +1 -1
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Routing promotion/demotion math — pure-functional rules for deciding when a
3
+ * pipeline stage should be moved from a frontier model to a local model
4
+ * (promotion) or reverted back to a frontier fallback (demotion).
5
+ *
6
+ * Thresholds match issue #163:
7
+ * - Promotion requires >=30 runs, pipeline_success_delta >= -0.03,
8
+ * cost_per_issue_delta <= -0.40 (>=40% savings), tool_error_rate < 0.02.
9
+ * - Demotion fires when rolling 10-issue tool_error_rate > 0.08 OR
10
+ * pipeline_success drops >10pts vs trailing 30-issue baseline.
11
+ */
12
+ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
13
+ /** Promotion thresholds (exported for tests + documentation). */
14
+ export const PROMOTION_MIN_RUNS = 30;
15
+ export const PROMOTION_SUCCESS_DELTA_FLOOR = -0.03;
16
+ export const PROMOTION_COST_SAVINGS_MIN = 0.40;
17
+ export const PROMOTION_TOOL_ERROR_CEILING = 0.02;
18
+ /** Demotion thresholds. */
19
+ export const DEMOTION_WINDOW = 10;
20
+ export const DEMOTION_TOOL_ERROR_CEILING = 0.08;
21
+ export const DEMOTION_BASELINE_WINDOW = 30;
22
+ export const DEMOTION_SUCCESS_DROP_PTS = 0.10;
23
+ /** Endpoint protocols considered "local" for promotion purposes. */
24
+ const LOCAL_ENDPOINT_TYPES = ['anthropic_compat', 'openai_compat'];
25
+ /**
26
+ * For each stage with a frontier + local cell, return a PromotionProposal
27
+ * when the local cell meets all thresholds. Stages with no eligible
28
+ * frontier/local pair are simply skipped.
29
+ */
30
+ export function evaluatePromotion(cells, opts = {}) {
31
+ const minRuns = opts.minRuns ?? PROMOTION_MIN_RUNS;
32
+ const successDeltaFloor = opts.successDeltaFloor ?? PROMOTION_SUCCESS_DELTA_FLOOR;
33
+ const costSavingsMin = opts.costSavingsMin ?? PROMOTION_COST_SAVINGS_MIN;
34
+ const toolErrorCeiling = opts.toolErrorCeiling ?? PROMOTION_TOOL_ERROR_CEILING;
35
+ const byStage = new Map();
36
+ for (const cell of cells) {
37
+ const list = byStage.get(cell.stage);
38
+ if (list)
39
+ list.push(cell);
40
+ else
41
+ byStage.set(cell.stage, [cell]);
42
+ }
43
+ const proposals = [];
44
+ for (const [stage, stageCells] of byStage) {
45
+ const frontier = pickFrontier(stageCells);
46
+ if (!frontier)
47
+ continue;
48
+ const candidates = stageCells.filter((c) => c !== frontier && isLocalCell(c));
49
+ for (const candidate of candidates) {
50
+ if (candidate.runs < minRuns)
51
+ continue;
52
+ // Require a successful baseline to compute meaningful deltas.
53
+ if (frontier.cost_per_issue_shipped == null ||
54
+ candidate.cost_per_issue_shipped == null ||
55
+ frontier.cost_per_issue_shipped <= 0) {
56
+ continue;
57
+ }
58
+ // Round on compute so float-precision noise doesn't knock edge cases
59
+ // off the inclusive boundaries defined in the spec.
60
+ const pipelineSuccessDelta = round3(candidate.pipeline_success_rate - frontier.pipeline_success_rate);
61
+ const costPerIssueDelta = round4(candidate.cost_per_issue_shipped - frontier.cost_per_issue_shipped);
62
+ const costSavingsPct = round3(-costPerIssueDelta / frontier.cost_per_issue_shipped);
63
+ // Tie on cost (no savings) blocks — costSavingsMin is strictly required.
64
+ if (pipelineSuccessDelta < successDeltaFloor)
65
+ continue;
66
+ if (costSavingsPct < costSavingsMin)
67
+ continue;
68
+ if (candidate.tool_error_rate >= toolErrorCeiling)
69
+ continue;
70
+ proposals.push({
71
+ stage,
72
+ from: { model: frontier.model, endpoint: frontier.endpoint },
73
+ to: { model: candidate.model, endpoint: candidate.endpoint },
74
+ metrics: {
75
+ runs: candidate.runs,
76
+ pipelineSuccessDelta,
77
+ costPerIssueDelta,
78
+ costPerIssueSavingsPct: costSavingsPct,
79
+ toolErrorRate: candidate.tool_error_rate,
80
+ frontierCostPerIssue: frontier.cost_per_issue_shipped,
81
+ candidateCostPerIssue: candidate.cost_per_issue_shipped,
82
+ },
83
+ });
84
+ }
85
+ }
86
+ return proposals;
87
+ }
88
+ /**
89
+ * Decide whether the stage should be demoted based on recent turn records and
90
+ * the trailing-30 success baseline computed from aggregated cells.
91
+ *
92
+ * `recentTurns` is oldest→newest; only the last `DEMOTION_WINDOW` turns are
93
+ * inspected for the tool-error guardrail, and the last
94
+ * `DEMOTION_BASELINE_WINDOW` turns (excluding the most recent 10) provide the
95
+ * success baseline.
96
+ */
97
+ export function evaluateDemotion(recentTurns, cells, stage) {
98
+ const windowed = recentTurns.slice(-DEMOTION_WINDOW);
99
+ // Short windows never trigger — we don't have enough signal yet.
100
+ if (windowed.length >= DEMOTION_WINDOW) {
101
+ const errs = windowed.filter((t) => t.errored).length;
102
+ const rate = errs / windowed.length;
103
+ if (rate > DEMOTION_TOOL_ERROR_CEILING) {
104
+ return {
105
+ fire: true,
106
+ reason: 'tool_error_rate',
107
+ stage,
108
+ metrics: {
109
+ rollingToolErrorRate: round4(rate),
110
+ rollingWindow: windowed.length,
111
+ },
112
+ };
113
+ }
114
+ }
115
+ // Pipeline-success drop check — uses trailing 30-run baseline from the
116
+ // aggregated cells for the stage. Prefer the highest-run cell as the
117
+ // reference point for the baseline.
118
+ const stageCells = cells.filter((c) => c.stage === stage && c.runs > 0);
119
+ if (stageCells.length > 0) {
120
+ const trailing = [...stageCells].sort((a, b) => b.runs - a.runs)[0];
121
+ if (trailing.runs >= DEMOTION_BASELINE_WINDOW) {
122
+ // Current success = rate over the rolling window. Derived from turn
123
+ // records (a turn is "successful" when not errored, matching how
124
+ // pipeline_success_rate aggregates at the session level).
125
+ if (windowed.length >= DEMOTION_WINDOW) {
126
+ const currentSuccess = windowed.filter((t) => !t.errored).length / windowed.length;
127
+ const drop = trailing.pipeline_success_rate - currentSuccess;
128
+ if (drop > DEMOTION_SUCCESS_DROP_PTS) {
129
+ return {
130
+ fire: true,
131
+ reason: 'pipeline_success_drop',
132
+ stage,
133
+ metrics: {
134
+ baselineSuccessRate: trailing.pipeline_success_rate,
135
+ currentSuccessRate: round3(currentSuccess),
136
+ successDrop: round3(drop),
137
+ rollingWindow: windowed.length,
138
+ },
139
+ };
140
+ }
141
+ }
142
+ }
143
+ }
144
+ return { fire: false, stage };
145
+ }
146
+ /**
147
+ * Apply a set of promotion proposals to a YAML document, patching the
148
+ * `routing.stages.<name>` block for each. Returns the new YAML string plus a
149
+ * unified-style diff that's easy to drop into a PR body.
150
+ */
151
+ export function applyRoutingDiff(yaml, proposals) {
152
+ if (proposals.length === 0)
153
+ return { yaml, diff: '' };
154
+ const parsed = parseYaml(yaml) ?? {};
155
+ const routing = (parsed.routing && typeof parsed.routing === 'object'
156
+ ? parsed.routing
157
+ : {});
158
+ const stages = (routing.stages && typeof routing.stages === 'object'
159
+ ? routing.stages
160
+ : {});
161
+ const diffLines = [];
162
+ for (const p of proposals) {
163
+ const before = stages[p.stage];
164
+ const beforeFrag = before
165
+ ? stringifyYaml({ [p.stage]: before }).trimEnd()
166
+ : `${p.stage}: (unset)`;
167
+ const newStage = { model: p.to.model };
168
+ if (p.to.endpoint)
169
+ newStage.endpoint = p.to.endpoint;
170
+ stages[p.stage] = newStage;
171
+ const afterFrag = stringifyYaml({ [p.stage]: newStage }).trimEnd();
172
+ diffLines.push(`# stage: ${p.stage}`);
173
+ for (const line of beforeFrag.split('\n'))
174
+ diffLines.push(`- ${line}`);
175
+ for (const line of afterFrag.split('\n'))
176
+ diffLines.push(`+ ${line}`);
177
+ diffLines.push('');
178
+ }
179
+ routing.stages = stages;
180
+ parsed.routing = routing;
181
+ const newYaml = stringifyYaml(parsed);
182
+ return { yaml: newYaml, diff: diffLines.join('\n').trimEnd() };
183
+ }
184
+ /**
185
+ * Build the YAML patch that reverts a stage to the routing.fallback.escalate_to
186
+ * target. Shared by manual demotions and automated guardrail trips.
187
+ */
188
+ export function buildDemotionYaml(yaml, stage, fallback) {
189
+ const proposal = {
190
+ stage,
191
+ from: { model: 'current', endpoint: undefined },
192
+ to: { model: fallback.model, endpoint: fallback.endpoint },
193
+ metrics: {
194
+ runs: 0,
195
+ pipelineSuccessDelta: 0,
196
+ costPerIssueDelta: 0,
197
+ costPerIssueSavingsPct: 0,
198
+ toolErrorRate: 0,
199
+ frontierCostPerIssue: null,
200
+ candidateCostPerIssue: null,
201
+ },
202
+ };
203
+ return applyRoutingDiff(yaml, [proposal]);
204
+ }
205
+ function pickFrontier(cells) {
206
+ // Highest total cost = frontier, mirroring telemetry.aggregateRouting's
207
+ // baseline choice. Break ties by higher cost_per_issue so we don't promote
208
+ // against a volume-heavy local cell that happens to lead on total spend.
209
+ const eligible = cells.filter((c) => !isLocalCell(c));
210
+ if (eligible.length === 0)
211
+ return null;
212
+ return [...eligible].sort((a, b) => {
213
+ if (b.total_cost_usd !== a.total_cost_usd)
214
+ return b.total_cost_usd - a.total_cost_usd;
215
+ const ac = a.cost_per_issue_shipped ?? 0;
216
+ const bc = b.cost_per_issue_shipped ?? 0;
217
+ return bc - ac;
218
+ })[0];
219
+ }
220
+ function isLocalCell(cell) {
221
+ return cell.endpoint_type != null && LOCAL_ENDPOINT_TYPES.includes(cell.endpoint_type);
222
+ }
223
+ function round3(n) {
224
+ return Math.round(n * 1000) / 1000;
225
+ }
226
+ function round4(n) {
227
+ return Math.round(n * 10000) / 10000;
228
+ }
229
+ //# sourceMappingURL=routing-promotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-promotion.js","sourceRoot":"","sources":["../../src/lib/routing-promotion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAKtE,iEAAiE;AACjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAC/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD,2BAA2B;AAC3B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAE9C,oEAAoE;AACpE,MAAM,oBAAoB,GAAmC,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;AAkDnG;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAoB,EACpB,OAAiC,EAAE;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAC;IACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,6BAA6B,CAAC;IAClF,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,0BAA0B,CAAC;IACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,4BAA4B,CAAC;IAE/E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,GAAG,OAAO;gBAAE,SAAS;YAEvC,8DAA8D;YAC9D,IACE,QAAQ,CAAC,sBAAsB,IAAI,IAAI;gBACvC,SAAS,CAAC,sBAAsB,IAAI,IAAI;gBACxC,QAAQ,CAAC,sBAAsB,IAAI,CAAC,EACpC,CAAC;gBACD,SAAS;YACX,CAAC;YAED,qEAAqE;YACrE,oDAAoD;YACpD,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YACtG,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACrG,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,iBAAiB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAEpF,yEAAyE;YACzE,IAAI,oBAAoB,GAAG,iBAAiB;gBAAE,SAAS;YACvD,IAAI,cAAc,GAAG,cAAc;gBAAE,SAAS;YAC9C,IAAI,SAAS,CAAC,eAAe,IAAI,gBAAgB;gBAAE,SAAS;YAE5D,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;gBAC5D,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;gBAC5D,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,oBAAoB;oBACpB,iBAAiB;oBACjB,sBAAsB,EAAE,cAAc;oBACtC,aAAa,EAAE,SAAS,CAAC,eAAe;oBACxC,oBAAoB,EAAE,QAAQ,CAAC,sBAAsB;oBACrD,qBAAqB,EAAE,SAAS,CAAC,sBAAsB;iBACxD;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAyB,EACzB,KAAoB,EACpB,KAAa;IAEb,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;IAErD,iEAAiE;IACjE,IAAI,QAAQ,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpC,IAAI,IAAI,GAAG,2BAA2B,EAAE,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,iBAAiB;gBACzB,KAAK;gBACL,OAAO,EAAE;oBACP,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC;oBAClC,aAAa,EAAE,QAAQ,CAAC,MAAM;iBAC/B;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,oCAAoC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACxE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,IAAI,IAAI,wBAAwB,EAAE,CAAC;YAC9C,oEAAoE;YACpE,iEAAiE;YACjE,0DAA0D;YAC1D,IAAI,QAAQ,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;gBACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,GAAG,cAAc,CAAC;gBAC7D,IAAI,IAAI,GAAG,yBAAyB,EAAE,CAAC;oBACrC,OAAO;wBACL,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,uBAAuB;wBAC/B,KAAK;wBACL,OAAO,EAAE;4BACP,mBAAmB,EAAE,QAAQ,CAAC,qBAAqB;4BACnD,kBAAkB,EAAE,MAAM,CAAC,cAAc,CAAC;4BAC1C,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC;4BACzB,aAAa,EAAE,QAAQ,CAAC,MAAM;yBAC/B;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,SAA8B;IAE9B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAEtD,MAAM,MAAM,GAAI,SAAS,CAAC,IAAI,CAAoC,IAAI,EAAE,CAAC;IACzE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QACnE,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,CAAC,CAAC,EAAE,CAA4B,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QAClE,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,EAAE,CAA4B,CAAC;IAEnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAwC,CAAC;QACtE,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YAChD,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC;QAC1B,MAAM,QAAQ,GAA4B,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAChE,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ;YAAE,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;QACrD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QAC3B,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAEnE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACtE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEzB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,KAAa,EACb,QAA4B;IAE5B,MAAM,QAAQ,GAAsB;QAClC,KAAK;QACL,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;QAC/C,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;QAC1D,OAAO,EAAE;YACP,IAAI,EAAE,CAAC;YACP,oBAAoB,EAAE,CAAC;YACvB,iBAAiB,EAAE,CAAC;YACpB,sBAAsB,EAAE,CAAC;YACzB,aAAa,EAAE,CAAC;YAChB,oBAAoB,EAAE,IAAI;YAC1B,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAC;IACF,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB;IACxC,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc;YAAE,OAAO,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;QACtF,MAAM,EAAE,GAAG,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC;QACzC,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB;IACpC,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AACvC,CAAC"}
@@ -7,6 +7,8 @@ import { log } from './logger.js';
7
7
  import { exec, formatTimestamp } from './shell.js';
8
8
  import { ghExec } from './rate-limit.js';
9
9
  import { createPR, updateProjectStatus } from './github.js';
10
+ import { readStageTelemetry } from './telemetry.js';
11
+ import { runDir } from './traces.js';
10
12
  function slugify(text) {
11
13
  return text.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
12
14
  }
@@ -181,6 +183,14 @@ export async function finalizeSession(session, config) {
181
183
  const learningsDir = join(projectDir, '.alpha-loop', 'learnings');
182
184
  mkdirSync(learningsDir, { recursive: true });
183
185
  const manifestName = `session-${session.name.replace(/\//g, '-')}.json`;
186
+ const stageEntries = (() => {
187
+ try {
188
+ return readStageTelemetry(runDir(session.name, projectDir));
189
+ }
190
+ catch {
191
+ return [];
192
+ }
193
+ })();
184
194
  const manifest = {
185
195
  name: session.name,
186
196
  branch: session.branch,
@@ -196,6 +206,9 @@ export async function finalizeSession(session, config) {
196
206
  filesChanged: r.filesChanged,
197
207
  })),
198
208
  };
209
+ if (stageEntries.length > 0) {
210
+ manifest.stages = stageEntries;
211
+ }
199
212
  writeFileSync(join(learningsDir, manifestName), JSON.stringify(manifest, null, 2) + '\n');
200
213
  log.info(`Session manifest saved: ${manifestName}`);
201
214
  // Stage learnings (including session manifest)
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import type { Config, RoutingEndpointType } from './config.js';
2
+ import type { AgentResult } from './agent.js';
3
+ /** One per-stage telemetry record. Written once per agent invocation. */
4
+ export type StageTelemetry = {
5
+ /** Pipeline stage name (plan, implement, test_fix, review, verify, assumptions, batch-*). */
6
+ stage: string;
7
+ /** Model used for the invocation. */
8
+ model: string;
9
+ /** Named routing endpoint the stage hit (or 'default' if routing wasn't used). */
10
+ endpoint: string;
11
+ /** Protocol shape of the endpoint — used to identify local vs frontier. */
12
+ endpoint_type?: RoutingEndpointType;
13
+ /** Input tokens consumed. */
14
+ tokens_in: number;
15
+ /** Output tokens generated. */
16
+ tokens_out: number;
17
+ /** Cost in USD. Local-endpoint invocations record 0. */
18
+ cost_usd: number;
19
+ /** Wall-clock time in seconds (float). */
20
+ wall_time_s: number;
21
+ /** Count of tool_use blocks emitted by the agent. */
22
+ tool_calls: number;
23
+ /** Count of tool_result blocks flagged is_error. */
24
+ tool_errors: number;
25
+ /** Whether the stage invocation succeeded (exit code 0). */
26
+ stage_success: boolean;
27
+ /** ISO timestamp at start of invocation. */
28
+ started_at: string;
29
+ /** Routing profile that was active for this invocation, if any. */
30
+ profile?: string;
31
+ /** Issue number this stage was processing. */
32
+ issue_num?: number;
33
+ };
34
+ /** A session manifest reference loaded by the reporter. */
35
+ export type SessionManifestLite = {
36
+ name: string;
37
+ completed?: string;
38
+ results?: Array<{
39
+ issueNum: number;
40
+ status: 'success' | 'failure';
41
+ filesChanged?: number;
42
+ prUrl?: string;
43
+ }>;
44
+ stages?: StageTelemetry[];
45
+ };
46
+ /** Aggregated per-cell metrics, grouped by (stage, model). */
47
+ export type RoutingCell = {
48
+ stage: string;
49
+ model: string;
50
+ endpoint?: string;
51
+ endpoint_type?: RoutingEndpointType;
52
+ profile?: string;
53
+ runs: number;
54
+ tokens_in: number;
55
+ tokens_out: number;
56
+ total_cost_usd: number;
57
+ pipeline_success_rate: number;
58
+ cost_per_issue_shipped: number | null;
59
+ median_wall_time_s: number;
60
+ tool_error_rate: number;
61
+ delta_cost_per_issue_shipped_vs_baseline?: number | null;
62
+ delta_median_wall_time_s_vs_baseline?: number | null;
63
+ delta_tool_error_rate_vs_baseline?: number | null;
64
+ delta_pipeline_success_rate_vs_baseline?: number | null;
65
+ };
66
+ /** Aggregation result, grouped by (stage, model), plus global totals. */
67
+ export type RoutingAggregation = {
68
+ cells: RoutingCell[];
69
+ total_sessions: number;
70
+ total_stages: number;
71
+ total_issues_shipped: number;
72
+ total_cost_usd: number;
73
+ filters: {
74
+ profile?: string;
75
+ since_ms?: number;
76
+ baseline: string;
77
+ };
78
+ };
79
+ /**
80
+ * Build a StageTelemetry record from an AgentResult and stage context.
81
+ *
82
+ * Uses the agent's reported cost/tokens when present. Falls back to the
83
+ * pricing table (0 for local endpoints since pricing entries are 0/0).
84
+ */
85
+ export declare function buildStageTelemetry(agentResult: AgentResult, stage: string, config: Config, ctx: {
86
+ endpoint?: string;
87
+ endpointType?: RoutingEndpointType;
88
+ profile?: string;
89
+ issueNum?: number;
90
+ startedAt?: string;
91
+ }): StageTelemetry;
92
+ /**
93
+ * Append a stage telemetry entry to the run's stages.jsonl file.
94
+ * Creates the file and parent directory when needed.
95
+ */
96
+ export declare function writeStageTelemetry(runDirPath: string, entry: StageTelemetry): void;
97
+ /**
98
+ * Read all stage telemetry entries for a single run.
99
+ * Returns an empty array if the file doesn't exist or has parse errors.
100
+ */
101
+ export declare function readStageTelemetry(runDirPath: string): StageTelemetry[];
102
+ /**
103
+ * Scan `.alpha-loop/traces/` under the given project dir and return all
104
+ * stage telemetry entries across all runs, each tagged with its session name.
105
+ */
106
+ export declare function readAllStageTelemetry(projectDir?: string): Array<{
107
+ session: string;
108
+ entries: StageTelemetry[];
109
+ }>;
110
+ /**
111
+ * Load session manifests written to `.alpha-loop/learnings/` by finalizeSession.
112
+ * Used by the reporter to join cost data with shipped-issue counts.
113
+ */
114
+ export declare function readSessionManifests(projectDir?: string): SessionManifestLite[];
115
+ /**
116
+ * Aggregate stage telemetry across sessions into per (stage, model) cells.
117
+ *
118
+ * - `pipeline_success_rate`: fraction of parent sessions that shipped a
119
+ * successful issue while this (stage, model) cell was active.
120
+ * - `cost_per_issue_shipped`: total cost across this cell divided by the
121
+ * number of shipped (status=success, filesChanged>0) issues in the sessions
122
+ * where this cell ran.
123
+ * - `median_wall_time_s`: median wall_time_s across invocations.
124
+ * - `tool_error_rate`: sum(tool_errors) / sum(tool_calls || runs).
125
+ * - Delta columns compare each cell against the cell at the same `stage` with
126
+ * `model` matching the baseline. When `baseline` is 'all-frontier' (default)
127
+ * we pick the highest-cost cell per stage as the baseline (frontier).
128
+ */
129
+ export declare function aggregateRouting(items: Array<{
130
+ session: string;
131
+ entries: StageTelemetry[];
132
+ }>, manifests: SessionManifestLite[], opts?: {
133
+ profile?: string;
134
+ sinceMs?: number;
135
+ baseline?: string;
136
+ }): RoutingAggregation;
137
+ /**
138
+ * Format an aggregation as a human-readable table or JSON string.
139
+ */
140
+ export declare function formatRoutingReport(agg: RoutingAggregation, opts?: {
141
+ json?: boolean;
142
+ }): string;
143
+ /**
144
+ * Parse a duration string like "30d", "12h", "45m", "90s" into milliseconds.
145
+ * Returns undefined when the input is empty or unparseable.
146
+ */
147
+ export declare function parseDuration(input: string | undefined): number | undefined;