mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-28 04:03:05 +00:00
Report context window usage for Paseo Agent
toAgentUsage dropped SessionStats.contextUsage, leaving the context-window indicator blank on every Paseo Agent session. Mirror the Pi provider's mapping into contextWindowMaxTokens/contextWindowUsedTokens.
This commit is contained in:
@@ -108,6 +108,7 @@ class FakeInProcessPiSession {
|
||||
totalMessages: 2,
|
||||
tokens: { input: 3, output: 5, cacheRead: 2, cacheWrite: 0, total: 10 },
|
||||
cost: 0.01,
|
||||
contextUsage: { contextWindow: 200000, tokens: 1234, percentage: 0.6 },
|
||||
};
|
||||
}
|
||||
|
||||
@@ -452,7 +453,14 @@ describe("PaseoAgentSession runtime events", () => {
|
||||
await expect(resultPromise).resolves.toEqual({
|
||||
sessionId: "pi-session-1",
|
||||
finalText: "done",
|
||||
usage: { inputTokens: 3, cachedInputTokens: 2, outputTokens: 5, totalCostUsd: 0.01 },
|
||||
usage: {
|
||||
inputTokens: 3,
|
||||
cachedInputTokens: 2,
|
||||
outputTokens: 5,
|
||||
totalCostUsd: 0.01,
|
||||
contextWindowMaxTokens: 200000,
|
||||
contextWindowUsedTokens: 1234,
|
||||
},
|
||||
timeline: [
|
||||
{ type: "reasoning", text: "thinking" },
|
||||
{
|
||||
|
||||
@@ -327,10 +327,26 @@ export function toAgentUsage(stats: SessionStats): AgentUsage | undefined {
|
||||
const cachedInputTokens = stats.tokens.cacheRead;
|
||||
const outputTokens = stats.tokens.output;
|
||||
const totalCostUsd = stats.cost;
|
||||
if (inputTokens === 0 && cachedInputTokens === 0 && outputTokens === 0 && totalCostUsd === 0) {
|
||||
const contextWindowMaxTokens = stats.contextUsage?.contextWindow ?? undefined;
|
||||
const contextWindowUsedTokens = stats.contextUsage?.tokens ?? undefined;
|
||||
if (
|
||||
inputTokens === 0 &&
|
||||
cachedInputTokens === 0 &&
|
||||
outputTokens === 0 &&
|
||||
totalCostUsd === 0 &&
|
||||
contextWindowMaxTokens === undefined &&
|
||||
contextWindowUsedTokens === undefined
|
||||
) {
|
||||
return undefined;
|
||||
}
|
||||
return { inputTokens, cachedInputTokens, outputTokens, totalCostUsd };
|
||||
return {
|
||||
inputTokens,
|
||||
cachedInputTokens,
|
||||
outputTokens,
|
||||
totalCostUsd,
|
||||
...(typeof contextWindowMaxTokens === "number" ? { contextWindowMaxTokens } : {}),
|
||||
...(typeof contextWindowUsedTokens === "number" ? { contextWindowUsedTokens } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
const PiTextContentSchema = z.object({ type: z.literal("text"), text: z.string() });
|
||||
|
||||
Reference in New Issue
Block a user