fabro/lib/foundation/fabro-api/tests
Bryan Helmkamp ef86ad278a
Carry usage as lithos-llm's Usage and rename billing to usage
Re-pin lithos-llm to 55add4596b861a0623d00c3a54aa5c147c8d504b and
pebble to c91810fe51aece80359b9cd8efea971af0c46925, where token usage
and cost travel together as Usage { tokens: TokenCounts, cost:
Option<Cost> }. Fabro now carries that one type everywhere it used to
carry BilledTokenCounts, BilledModelUsage, UsdMicros, or a token count
beside a cost_usd_micros.

fabro-types: billing.rs is usage.rs with ModelRef, ModelUsage { model,
usage }, sum_usage, and usage_is_empty; billing_rollup.rs is
usage_rollup.rs with ProjectionUsageStage, ProjectionUsageByModel,
ProjectionUsageRollup, and usage_rollup_from_projection. Every usage
field is named usage: StageProjection.usage and usage_by_model,
Outcome<Option<ModelUsage>>, stage.completed and stage.failed usage and
usage_by_model, prompt.completed usage, run.completed and run.failed
usage (total_usd_micros is gone), Conclusion.usage, StageSummary.usage,
Run.usage. RunSize buckets by Cost.

fabro-workflow: model_usage_from_llm prices tokens from the catalog with
a Catalog cost source, with_reported_cost keeps a provider cost, and the
pebble handler's stage_usage groups pebble's accounts by model and sums
rows with Usage::saturating_add, so a total has a cost only when every
priced part was priced. The store fold's live usage is the agent's
usage plus its descendants'.

API: the OpenAPI spec deletes BilledTokenCounts, BilledModelUsage,
CompletionUsage, CompletionCost, TokenUsage, and RunBillingSummary,
adds TokenCounts, Cost, Usage, and ModelUsage, and renames every
billing schema, property, tag, path, and operation to usage. fabro-api
reuses lithos-llm's and fabro-types' types through with_replacement,
with a round-trip test per replacement.

Old stored runs get no migration: their pebble events in the old shape
read back with zero usage, and their rebuilt projections lose agent
usage.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 12:31:34 -06:00
..
agent_session_activated_props_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
agent_session_projection_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
automation_round_trip.rs Tighten automation Git validation types 2026-08-31 18:02:08 -04:00
blob_hash_round_trip.rs Align SHA-256 hash casing contracts 2026-08-17 17:31:15 -04:00
command_termination_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
completion_message_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
cost_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
create_completion_request_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
diff_stats_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
diff_summary_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
environment_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
event_envelope_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
git_context_round_trip.rs Remove the recorded pre-run push outcome, keep the push 2026-08-03 19:27:33 -04:00
interview_option_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
interview_question_record_round_trip.rs Add structured review targets to human gates 2026-07-28 13:24:12 -04:00
manifest_args_round_trip.rs Remove obsolete manifest Docker image argument 2026-08-01 09:03:10 -04:00
mcp_server_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
mcp_transport_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
model_costs_round_trip.rs Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
model_limits_round_trip.rs Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
model_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
model_test_mode_round_trip.rs Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
pair_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
parallel_branch_id_round_trip.rs Fix live parallel branch refresh and simplify branch rendering 2026-07-28 17:26:05 -04:00
pending_interview_record_round_trip.rs Add structured review targets to human gates 2026-07-28 13:24:12 -04:00
principal_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
provider_id_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
provider_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
pull_request_round_trip.rs Make pull request creation durable and asynchronous 2026-08-01 19:28:52 -04:00
question_type_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
reasoning_output_round_trip.rs Run agent stages, Ask Fabro, and fabro exec on pebble's CodingAgent 2026-09-11 14:19:15 -06:00
run_event_round_trip.rs Run agent stages, Ask Fabro, and fabro exec on pebble's CodingAgent 2026-09-11 14:19:15 -06:00
run_failure_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
run_integrations_round_trip.rs docs(api): document additional github repository access 2026-08-21 15:12:23 -04:00
run_intent_round_trip.rs Add RunIntent registration support 2026-08-28 20:40:38 -04:00
run_model_settings_round_trip.rs refactor: simplify model-keyed fallback internals 2026-07-30 12:51:36 -04:00
run_projection_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
run_sandbox_round_trip.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
run_summary_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
run_usage_stage_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
sandbox_details_round_trip.rs Put the driver's sandbox status on the API instead of a projection 2026-09-11 13:07:00 -06:00
sandbox_inventory_round_trip.rs Put the driver's sandbox status on the API instead of a projection 2026-09-11 13:07:00 -06:00
sandbox_services_round_trip.rs Run the agent's MCP servers and the service listing through the driver's services facet 2026-09-11 13:18:02 -06:00
secret_metadata_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
secret_type_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
server_settings_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
session_contract_round_trip.rs Run agent stages, Ask Fabro, and fabro exec on pebble's CodingAgent 2026-09-11 14:19:15 -06:00
stage_completion_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
stage_handler_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
stage_id_round_trip.rs fix: harden stage execution identity on resume 2026-07-24 09:37:05 -04:00
stage_model_usage_round_trip.rs Import lithos-llm types directly instead of through fabro-types 2026-09-10 10:03:08 -06:00
stage_outcome_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
stage_projection_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
stage_state_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
status_round_trip.rs fix(workflow): make publish failures terminal 2026-07-27 11:25:18 -04:00
submit_answer_request_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
system_integrations_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
token_counts_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
usage_round_trip.rs Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
variable_round_trip.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
workflow_settings_round_trip.rs Remove nonfunctional run agent permissions setting 2026-07-29 10:23:00 -04:00
workflow_version_round_trip.rs Align SHA-256 hash casing contracts 2026-08-17 17:31:15 -04:00