Skip to content

Commit 92b7c0d

Browse files
committed
Quality guardrail and strict validation
1 parent d148d48 commit 92b7c0d

3 files changed

Lines changed: 60 additions & 3 deletions

File tree

packages/agents/src/agents/base.agent.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ export type AgentRunResult<T> = {
1010
cached: boolean;
1111
durationMs: number;
1212
tokensUsed: number;
13+
estimatedInputTokens: number;
14+
compressionPasses: number;
15+
providerInputTokens: number;
16+
providerOutputTokens: number;
17+
model: string;
1318
};
1419

1520
export async function runAgent<TInput, TOutput>(
@@ -28,6 +33,11 @@ export async function runAgent<TInput, TOutput>(
2833
cached: true,
2934
durationMs: 0,
3035
tokensUsed: 0,
36+
estimatedInputTokens: 0,
37+
compressionPasses: 0,
38+
providerInputTokens: 0,
39+
providerOutputTokens: 0,
40+
model: "cache",
3141
};
3242
}
3343

@@ -57,5 +67,10 @@ export async function runAgent<TInput, TOutput>(
5767
cached: false,
5868
durationMs,
5969
tokensUsed: response.tokensUsed,
70+
estimatedInputTokens: optimized.estimatedInputTokens,
71+
compressionPasses: optimized.compressionPasses,
72+
providerInputTokens: response.inputTokens ?? optimized.estimatedInputTokens,
73+
providerOutputTokens: response.outputTokens ?? optimized.maxOutputTokens,
74+
model: response.model ?? optimized.model,
6075
};
6176
}

packages/agents/src/orchestrator/orchestrator.service.ts

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,27 @@ function agentCompleted(
3636
durationMs: number,
3737
cached: boolean,
3838
tokensUsed: number,
39+
estimatedInputTokens: number,
40+
compressionPasses: number,
41+
providerInputTokens: number,
42+
providerOutputTokens: number,
43+
model: string,
3944
): SSEEvent {
4045
return {
4146
type: "agent_completed",
4247
jobId,
4348
agent,
4449
timestamp: now(),
45-
payload: { durationMs, cached, tokensUsed },
50+
payload: {
51+
durationMs,
52+
cached,
53+
tokensUsed,
54+
estimatedInputTokens,
55+
compressionPasses,
56+
providerInputTokens,
57+
providerOutputTokens,
58+
model,
59+
},
4660
};
4761
}
4862

@@ -54,12 +68,35 @@ async function runWithEmit<T>(
5468
jobId: string,
5569
agentName: AgentName,
5670
emit: (event: SSEEvent) => void,
57-
fn: () => Promise<{ output: T; cached: boolean; durationMs: number; tokensUsed: number }>,
71+
fn: () => Promise<{
72+
output: T;
73+
cached: boolean;
74+
durationMs: number;
75+
tokensUsed: number;
76+
estimatedInputTokens: number;
77+
compressionPasses: number;
78+
providerInputTokens: number;
79+
providerOutputTokens: number;
80+
model: string;
81+
}>,
5882
): Promise<T> {
5983
emit(agentStarted(jobId, agentName));
6084
try {
6185
const result = await fn();
62-
emit(agentCompleted(jobId, agentName, result.durationMs, result.cached, result.tokensUsed));
86+
emit(
87+
agentCompleted(
88+
jobId,
89+
agentName,
90+
result.durationMs,
91+
result.cached,
92+
result.tokensUsed,
93+
result.estimatedInputTokens,
94+
result.compressionPasses,
95+
result.providerInputTokens,
96+
result.providerOutputTokens,
97+
result.model,
98+
),
99+
);
63100
return result.output;
64101
} catch (err) {
65102
const msg = err instanceof Error ? err.message : String(err);

packages/shared/src/schemas/sse.schema.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ export const AgentCompletedEventSchema = SSEBaseSchema.extend({
2727
durationMs: z.number(),
2828
cached: z.boolean(),
2929
tokensUsed: z.number(),
30+
estimatedInputTokens: z.number(),
31+
compressionPasses: z.number(),
32+
providerInputTokens: z.number(),
33+
providerOutputTokens: z.number(),
34+
model: z.string(),
3035
}),
3136
});
3237

0 commit comments

Comments
 (0)