You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PRICE_PER_MTOK (src/cli/analyzeSession.ts:50) is keyed by model family only (priceFamily() → parseModelString().family); the model version is ignored. Current models are priced very differently from the table, so est. cost / --breakdown are wrong for most recent sessions. Tests pin numbers derived from the same table, so they cannot catch it.
Cache read неявно = 0.1× input, но у Opus 5.5 это 0.05×, у Fable 5.1 — 0.025×. Нужна явная колонка, а не множитель.
Cache write считается только по 5-минутной ставке (1.25× input). 1-часовая запись стоит 2×, а UsageMetadata (src/main/types/jsonl.ts:82) не читает usage.cache_creation.ephemeral_5m_input_tokens / ephemeral_1h_input_tokens — разбивка теряется при парсинге.
Тесты (test/main/cli/analyzeSession.test.ts, ~352–484, напр. toBeCloseTo(0.00087) для sonnet) сверяют результат с той же таблицей.
Что сделать
Таблица цен по (family, major, minor) с явными колонками: input, output, cache read, cache write 5m, cache write 1h + комментарий с датой сверки и ссылкой на прайс Anthropic.
Версию брать из parseModelString (src/shared/utils/modelParser.ts уже отдаёт major/minor); fallback для не-Claude моделей (glm) сохранить.
Добавить cache_creation.{ephemeral_5m_input_tokens, ephemeral_1h_input_tokens} в UsageMetadata и парсер; при отсутствии разбивки — считать весь cache_creation_input_tokens как 5m.
Учесть ступенчатую цену Haiku 5.5 (>100K промпта) или явно задокументировать упрощение.
Тесты: эталонные значения выписаны вручную из официального прайса, а не вычислены из таблицы.
Acceptance
Тест на каждую строку таблицы с ценой из официального прайса
Тест на 1h cache write (2× input) и на раунд со смешанной 5m/1h разбивкой
est. cost для Opus 4.8 / Opus 5.5 / Sonnet 5.5 / Haiku 5.5 / Fable 5.1 соответствует прайсу
Activity
axisrow commentedon Oct 11, 2026
Замер на реальной сессии (Claude Code 2.1.296,
claude-opus-5-5, замороженная копия файла):est. cost: $31.93(формула текущей таблицыopus: 15 / 75 / 1.5 / 18.75).cache_creation.ephemeral_1h_input_tokens— не редкий случай, а основной.Проверить:
jq -s '[.[] | select(.type=="assistant") | .message.usage.cache_creation // empty] | group_by(keys) | map({keys: .[0] | keys, n: length})' <file.jsonl>и пересчитать стоимость по прайсу для своей модели.Generated by Claude Code
fix(cli): dated opus-4 ids stay on legacy rates (#72)
fix(cli): version-aware pricing with explicit cache rates (#72) (#115)
feat(cost): compute session costUsd from the shared pricing table (#73)…