summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/provider/models.ts4
-rw-r--r--packages/opencode/src/session/index.ts10
2 files changed, 12 insertions, 2 deletions
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts
index a753d7ec1..e043ab9f9 100644
--- a/packages/opencode/src/provider/models.ts
+++ b/packages/opencode/src/provider/models.ts
@@ -17,8 +17,8 @@ export namespace ModelsDev {
cost: z.object({
input: z.number(),
output: z.number(),
- inputCached: z.number(),
- outputCached: z.number(),
+ cache_read: z.number().optional(),
+ cache_write: z.number().optional(),
}),
limit: z.object({
context: z.number(),
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index fe21b26cd..7d310b853 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -759,6 +759,16 @@ export namespace Session {
cost: new Decimal(0)
.add(new Decimal(tokens.input).mul(model.cost.input).div(1_000_000))
.add(new Decimal(tokens.output).mul(model.cost.output).div(1_000_000))
+ .add(
+ new Decimal(tokens.cache.read)
+ .mul(model.cost.cache_read ?? 0)
+ .div(1_000_000),
+ )
+ .add(
+ new Decimal(tokens.cache.write)
+ .mul(model.cost.cache_write ?? 0)
+ .div(1_000_000),
+ )
.toNumber(),
tokens,
}