mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-07 10:43:25 +00:00
fix(opencode): include cache writes in ACP usage (#40450)
Co-authored-by: Aiden Cline <rekram1-node@users.noreply.github.com>
This commit is contained in:
parent
5b4fb1f770
commit
9f38562237
3 changed files with 9 additions and 5 deletions
|
|
@ -656,7 +656,7 @@ function makeUsageService(sdk: OpencodeClient) {
|
|||
sessionId: params.sessionID,
|
||||
update: {
|
||||
sessionUpdate: "usage_update",
|
||||
used: message.tokens.input + message.tokens.cache.read,
|
||||
used: UsageService.contextTokens(message),
|
||||
size,
|
||||
cost: { amount: UsageService.totalSessionCost(messages), currency: "USD" },
|
||||
},
|
||||
|
|
|
|||
|
|
@ -83,6 +83,10 @@ export function messageLoaderFromSDK(sdk: SDK): MessageLoaderInterface {
|
|||
|
||||
export const messageLoaderLayer = (sdk: SDK) => Layer.succeed(MessageLoader, messageLoaderFromSDK(sdk))
|
||||
|
||||
export function contextTokens(message: AssistantTokenCost): number {
|
||||
return message.tokens.input + message.tokens.cache.read + message.tokens.cache.write
|
||||
}
|
||||
|
||||
export function buildUsage(message: AssistantTokenCost): Usage {
|
||||
const cachedReadTokens = message.tokens.cache.read
|
||||
const cachedWriteTokens = message.tokens.cache.write
|
||||
|
|
@ -207,7 +211,7 @@ const layer = Layer.effect(
|
|||
sessionId: input.sessionID,
|
||||
update: {
|
||||
sessionUpdate: "usage_update",
|
||||
used: message.tokens.input + message.tokens.cache.read,
|
||||
used: contextTokens(message),
|
||||
size,
|
||||
cost: { amount: totalSessionCost(messages), currency: "USD" },
|
||||
},
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ describe("acp usage", () => {
|
|||
)
|
||||
})
|
||||
|
||||
it.effect("sends ACP usage_update with context size and cumulative assistant cost", () => {
|
||||
it.effect("includes cache reads and writes in ACP context usage", () => {
|
||||
const updates: SessionNotification[] = []
|
||||
return Effect.gen(function* () {
|
||||
const usage = yield* UsageService.Service
|
||||
|
|
@ -222,7 +222,7 @@ describe("acp usage", () => {
|
|||
sessionId: "ses_1",
|
||||
update: {
|
||||
sessionUpdate: "usage_update",
|
||||
used: 15,
|
||||
used: 22,
|
||||
size: 128_000,
|
||||
cost: { amount: 3, currency: "USD" },
|
||||
},
|
||||
|
|
@ -239,7 +239,7 @@ describe("acp usage", () => {
|
|||
input: 10,
|
||||
output: 20,
|
||||
reasoning: 0,
|
||||
cache: { read: 5, write: 0 },
|
||||
cache: { read: 5, write: 7 },
|
||||
},
|
||||
}),
|
||||
]),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue