feat: add model tracking and reporting across pipeline

- Track actual model name from router through audit logs, session.json, and query output
- Add router-utils.ts to resolve model names from ROUTER_DEFAULT env var
- Inject model info into final report's Executive Summary section
- Update documentation with supported providers, pricing, and config examples
- Update router-config.json with latest model versions (GPT-5.2, Gemini 2.5, etc.)
This commit is contained in:
ajmallesh
2026-01-15 18:30:19 -08:00
parent d01980ce4b
commit cd04c7a6d2
16 changed files with 312 additions and 56 deletions
+16 -5
View File
@@ -26,7 +26,8 @@ interface AttemptData {
cost_usd: number;
success: boolean;
timestamp: string;
error?: string;
model?: string | undefined;
error?: string | undefined;
}
interface AgentMetrics {
@@ -34,7 +35,8 @@ interface AgentMetrics {
attempts: AttemptData[];
final_duration_ms: number;
total_cost_usd: number;
checkpoint?: string;
model?: string | undefined;
checkpoint?: string | undefined;
}
interface PhaseMetrics {
@@ -66,9 +68,10 @@ interface AgentEndResult {
duration_ms: number;
cost_usd: number;
success: boolean;
error?: string;
checkpoint?: string;
isFinalAttempt?: boolean;
model?: string | undefined;
error?: string | undefined;
checkpoint?: string | undefined;
isFinalAttempt?: boolean | undefined;
}
interface ActiveTimer {
@@ -169,6 +172,10 @@ export class MetricsTracker {
timestamp: formatTimestamp(),
};
if (result.model) {
attempt.model = result.model;
}
if (result.error) {
attempt.error = result.error;
}
@@ -183,6 +190,10 @@ export class MetricsTracker {
agent.status = 'success';
agent.final_duration_ms = result.duration_ms;
if (result.model) {
agent.model = result.model;
}
if (result.checkpoint) {
agent.checkpoint = result.checkpoint;
}