Раздел: AI & Agents
Идентификатор:costs· Экран:ui/costs/CostsScreen.kt
Снимок: 2026-10-27
1. Зачем и что это
Одна строка turn_costs — один ход. Цена в ней — снимок на момент хода: правка тарифа не пересчитывает прошлое. Поэтому история честно показывает, по какой ставке ход был выполнен.
2. Как попасть
Хаб инструментов → секция AI & Agents → карточка «Затраты» (hub_costs_title, подпись «Расход по тредам и ходам: токены, цена и модели без тарифа»). Второй вход — токен-бар в чате: тап открывает окно затрат треда.
| Откуда ещё | Путь |
|---|---|
| Мост | app_navigate с screen: "costs" |
| Чат | тап по токен-бару → «Затраты треда» |
3. Экран: элементы и действия
| Элемент | Что делает |
|---|---|
| Периоды | Сегодня, 7 дней, 30 дней, всё |
| Сводка | Итого, число ходов, ходы без тарифа |
| Строки | Тред, scope (Codex / opencode / Claude), цена, токены и время |
| Кнопка «Тарифы» | Открывает экран ставок |
| «Скопировать запрос агенту» | Кладёт в буфер готовую задачу на заполнение тарифов через pricing_save |
Окно затрат треда показывает итог, среднюю цену, долю кэша, число ходов без тарифа и историю по дням. В карточке хода — модель, время, цена и разбивка вход / кэш / выход; для opencode рядом лежит серверная цена только для сверки.
4. Как считается цена
| Вид | Что означает |
|---|---|
EXACT | Явная запись реестра: $0.0076 |
FALLBACK | Совпадение по имени модели без провайдера: ~$0.0076 |
FREE | Модель помечена бесплатной: $0 |
UNKNOWN | Тарифа нет: —, а не ложный ноль |
Каждый запрос оценивается по своему времени и модели; цена хода — сумма запросов. Ход, пересёкший границу окна off-peak, получает смешанную цену.
5. Данные и границы
| Что | Где | Кто читает |
|---|---|---|
| История ходов | turn_costs в y83-chat.db | CostsScreen, ThreadCostWindow |
| Тарифы | ~/.y83-ws/pricing.json на бэкенде | бэкенд, агент через MCP |
| Кэш тарифов | prefs приложения (PriceRegistry) | приложение офлайн |
Границы: прошлые ходы из кэша не мигрируются — история начинается с появления реестра. В native-режиме стоимость намеренно не считается: подписка не даёт цены за токен, и ноль в ленте был бы ложью.