43 lines
1.7 KiB
Markdown
43 lines
1.7 KiB
Markdown
---
|
|
summary: "models.dev pricing metadata pipeline, cache, lookup rules, and token-cost units."
|
|
read_when:
|
|
- Updating models.dev pricing metadata support
|
|
- Debugging model-pricing cache refresh or lookup behavior
|
|
- Routing provider cost calculations through shared pricing metadata
|
|
---
|
|
|
|
# Model pricing metadata
|
|
|
|
CodexBar has an additive models.dev pricing pipeline for future cost lookup work. Existing hardcoded pricing remains unchanged for now.
|
|
|
|
## Source and cache
|
|
|
|
- Source API: `https://models.dev/api.json`
|
|
- No API key is required.
|
|
- Local cache: `~/Library/Caches/CodexBar/model-pricing/models-dev-v1.json`
|
|
- TTL: 24 hours
|
|
|
|
The pipeline lets future scanner code read the last valid cache synchronously with `ModelsDevPricingPipeline.lookup` and refresh stale metadata separately with `ModelsDevPricingPipeline.refreshIfNeeded`. If a refresh fails, the last valid cache remains usable.
|
|
|
|
## Lookup rules
|
|
|
|
Pricing is scoped by provider id and model id. This prevents two providers with the same model id or display name from sharing pricing accidentally.
|
|
|
|
Planned local source mapping:
|
|
|
|
- Codex/OpenAI logs: models.dev provider id `openai`
|
|
- Claude logs: models.dev provider id `anthropic`
|
|
- Vertex AI Claude logs: models.dev provider id `google-vertex-anthropic`
|
|
|
|
The first integration PR only adds the parser, client, cache, provider-scoped lookup, and tests. It does not route live cost calculations through models.dev yet.
|
|
|
|
## Units
|
|
|
|
models.dev publishes costs as USD per 1M tokens. CodexBar converts those to USD per token in the metadata layer:
|
|
|
|
```text
|
|
perToken = modelsDevCost / 1_000_000
|
|
```
|
|
|
|
When models.dev includes `cost.context_over_200k`, CodexBar parses those values as the above-200k-token pricing lane and converts them with the same per-1M-token rule.
|