mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-22 06:54:26 +00:00
Port of #1078 (plus its #1084 hardening) onto feat/core-extraction, whose pricing seam moved out of the provider decoder. Fix A: OpenAI bills reasoning tokens as part of output_tokens, not on top of it. `billableOutputTokens` in models.ts is the single source of truth for the claude+codex carve-out; the host pricing pass and cachedCallToApiCall (the cold/warm twins) and the models/audit display sums all route through it. codexCredits loses its `reasoningTokens` param, which added the same double-count back on. Fix B: the core codex decoder reads `cache_write_input_tokens` and clamps it into the uncached input, but leaves the bucket split to the host: only a model whose pricing source publishes a real cache-write rate (`cacheWriteCostIsExplicit`) may move tokens into the cache-write bucket, since buildCosts fabricates 1.25x input when a source omits one and OpenAI charges nothing extra before gpt-5.6. The pricing cache file is versioned so a file written by a pre-fix binary can't read that flag back as undefined. Cache ladder: codex results cache 12 -> 13, codex parse version gains `-codex-pricing-v1` (the bucket move does not self-heal on read), daily cache 27 -> 28. |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| package.json | ||
| tsconfig.json | ||
| tsup.config.ts | ||
| vitest.config.ts | ||