fabro/apps/fabro-web/app/lib
Bryan Helmkamp 27f16f89c4
Delete fabro's own pricing: lithos-llm prices every response once
lithos-llm attaches a cost to every response at the client: the codec
keeps a provider-reported cost when the provider supplies one, and the
resolver fills the catalog's price for the route when it does not.
Pebble records that priced usage on every assistant turn and sums it,
so each AssistantMessage on the stream, and the store fold's live stage
usage, already carries the cost. Fabro's catalog re-pricing of the same
tokens was redundant, and is gone.

model_usage_from_llm, with_reported_cost, and every estimate_cost call
in fabro are deleted. The pebble handler's stage_usage groups pebble's
accounts by route and sums them with Usage::saturating_add, keeping the
cost and source pebble carried, so the terminal stage.completed usage is
the live fold's sum; it no longer fails when the catalog does not know a
provider. A one-shot prompt stage records the response's own usage and
cost as lithos-llm returned it. The per-model price cards in fabro-llm's
API module stay.

Tests: the pebble handler sums Catalog and Provider costs per row and
leaves a row's and the total's cost unknown once an answer was unpriced;
the store fold shows the same tokens and cost live and at completion,
and None at both for an unpriced answer; the agent integration test
compares the whole completed Usage with the live fold, cost included;
a one-shot prompt stage on a mocked OpenAI-compatible provider reports a
Catalog cost that lithos-llm's resolver attached, with no fabro pricing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 14:46:44 -06:00
..
api-client.test.ts feat: download latest artifacts as zip 2026-07-31 13:23:35 -04:00
api-client.ts refactor: simplify artifact ZIP download 2026-08-01 09:09:54 -04:00
ask-fabro-runtime.test.ts fix: render Ask Fabro session responses 2026-05-22 12:32:59 -04:00
ask-fabro-runtime.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
automation.ts Align remote workflow selectors with run targets 2026-08-31 17:13:20 -04:00
board-cache.ts feat(web): upgrade Children sub-tab to use the runs list view 2026-05-25 12:48:18 -04:00
board-events.test.tsx Harden cancellation and interrupt lifecycles 2026-07-23 20:40:22 -04:00
board-events.ts Harden cancellation and interrupt lifecycles 2026-07-23 20:40:22 -04:00
build-version-contract.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
build-version.test.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
build-version.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
chats-runtime.test.ts Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
chats-runtime.ts Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
chats-script.ts Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
chats-store.test.tsx Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
chats-store.tsx Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
chats-types.ts Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
class-names.ts fix(web): harden collapsible run docks 2026-07-28 15:24:58 -04:00
credential-heuristics.test.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
credential-heuristics.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
cross-tab-sse.test.ts fix(web): recover cross-tab SSE coordination after fallback 2026-05-04 15:52:18 -04:00
cross-tab-sse.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
demo-mode.test.tsx feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
demo-mode.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
environment-providers.ts Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
format.ts feat(web): add models table to /settings/models 2026-05-25 15:21:40 -04:00
graph-theme.ts refactor(web): drop light mode, go dark-only 2026-04-20 09:27:08 -04:00
graph-viewport.test.ts Increase LR graph zoom to 400% and remember zoom per direction (#581) 2026-07-21 16:06:25 -04:00
graph-viewport.ts Remove unsupported workflow playground 2026-09-03 12:04:35 -04:00
import-chunk.test.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
import-chunk.ts feat(web): tell open tabs when a new build ships 2026-07-25 14:45:26 -04:00
live-events.test.tsx feat(web): build live events page in settings 2026-05-10 14:05:10 -04:00
live-events.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
mcp-server-cache.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
mcp-transport-kinds.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
model-offerings.test.ts feat: make model aliases provider-aware 2026-07-23 10:12:25 -04:00
model-offerings.ts feat: make model aliases provider-aware 2026-07-23 10:12:25 -04:00
mutations.test.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
mutations.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
pierre-diffs-worker.ts fix(web): virtualize run file diffs consistently 2026-05-05 16:41:39 -04:00
plural.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
principal-display.tsx feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
queries.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
query-keys.test.ts fix(timing): simplify live timing projections 2026-07-28 14:20:59 -04:00
query-keys.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
run-actions.test.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
run-actions.ts fix(timing): simplify live timing projections 2026-07-28 14:20:59 -04:00
run-events.test.tsx Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
run-events.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
run-phases.test.ts fix(web): close run phase on terminal events (#427) 2026-05-27 10:38:32 -04:00
run-phases.ts fix(web): close run phase on terminal events (#427) 2026-05-27 10:38:32 -04:00
run-sandbox-lifecycle.ts Model run sandbox lifecycle explicitly (#431) 2026-05-27 12:48:56 -04:00
run-settings-snapshot.ts refactor: remove compatibility shims (#281) 2026-05-16 15:29:25 -04:00
sandbox-state.ts Put the driver's sandbox status on the API instead of a projection 2026-09-11 13:07:00 -06:00
session-stream.test.ts fix: render Ask Fabro session responses 2026-05-22 12:32:59 -04:00
session-stream.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
sse.ts Runs list view: table layout, server-side sort/pagination, redesigned toolbar (#367) 2026-05-23 14:25:58 -04:00
stage-sidebar.test.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
stage-sidebar.ts Delete fabro's own pricing: lithos-llm prices every response once 2026-09-14 14:46:44 -06:00
test-fixtures.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
test-utils.tsx Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
time.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
unknown.ts refactor(web): narrow event property reads via shared helpers 2026-04-30 22:45:38 -04:00
usage.ts Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00