mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-17 17:43:04 +08:00
feat(tui): show usage by routed model
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
// kilocode_change - new file
|
||||
import { describe, expect, test } from "bun:test"
|
||||
import type { AssistantMessage, Message, UserMessage } from "@kilocode/sdk/v2"
|
||||
import { formatCount, getUsage } from "../../../src/cli/cmd/tui/routes/session/usage"
|
||||
|
||||
function assistant(id: string, input: number, output: number, read: number): AssistantMessage {
|
||||
return {
|
||||
id,
|
||||
sessionID: "ses_1",
|
||||
role: "assistant",
|
||||
time: { created: 1 },
|
||||
parentID: "msg_parent",
|
||||
modelID: "claude-sonnet",
|
||||
providerID: "anthropic",
|
||||
mode: "code",
|
||||
agent: "code",
|
||||
path: { cwd: "/tmp", root: "/tmp" },
|
||||
cost: 0,
|
||||
tokens: {
|
||||
input,
|
||||
output,
|
||||
reasoning: 99,
|
||||
cache: {
|
||||
read,
|
||||
write: 7,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
function user(): UserMessage {
|
||||
return {
|
||||
id: "msg_user",
|
||||
sessionID: "ses_1",
|
||||
role: "user",
|
||||
time: { created: 0 },
|
||||
agent: "code",
|
||||
model: {
|
||||
providerID: "anthropic",
|
||||
modelID: "claude-sonnet",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
describe("session usage", () => {
|
||||
test("sums input, output, and cache read across assistant messages only", () => {
|
||||
const msg: Message[] = [user(), assistant("a", 1200, 45, 300), assistant("b", 800, 55, 700)]
|
||||
|
||||
expect(getUsage(msg)).toEqual({
|
||||
input: 2000,
|
||||
output: 100,
|
||||
cached: 1000,
|
||||
})
|
||||
})
|
||||
|
||||
test("formats full counts with thousands separators", () => {
|
||||
expect(formatCount(0)).toBe("0")
|
||||
expect(formatCount(12345)).toBe("12,345")
|
||||
expect(formatCount(9876543)).toBe("9,876,543")
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user