summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-05 02:23:11 -0400
committerDax Raad <[email protected]>2025-06-05 02:23:11 -0400
commitf3e31130ba4774395ae82bbaf51f32f05ff8e136 (patch)
tree6066f173f810ee4fc0a129a198191c46bf3b1d50
parent671e91f201456c723566ffcf7fa62bc0afeaef7e (diff)
downloadopencode-f3e31130ba4774395ae82bbaf51f32f05ff8e136.tar.gz
opencode-f3e31130ba4774395ae82bbaf51f32f05ff8e136.zip
fix cost
-rw-r--r--packages/opencode/src/session/index.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 13496a775..d77da209e 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -379,9 +379,12 @@ ${app.git ? await ListTool.execute({ path: app.path.cwd }, { sessionID: input.se
let text: Message.TextPart | undefined
const result = streamText({
onStepFinish: async (step) => {
+ log.info("step finish", {
+ finishReason: step.finishReason,
+ })
const assistant = next.metadata!.assistant!
const usage = getUsage(step.usage, model.info)
- assistant.cost = usage.cost
+ assistant.cost += usage.cost
assistant.tokens = usage.tokens
await updateMessage(next)
if (text) {
@@ -465,6 +468,12 @@ ${app.git ? await ListTool.execute({ path: app.path.cwd }, { sessionID: input.se
}
await updateMessage(next)
},
+ async onFinish(input) {
+ const assistant = next.metadata!.assistant!
+ const usage = getUsage(input.totalUsage, model.info)
+ assistant.cost = usage.cost
+ await updateMessage(next)
+ },
onError(input) {
if (input.error instanceof Error) {
next.metadata.error = input.error.toString()