mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 03:49:26 +00:00
MeteredClient wraps a ChatClient, sums the provider's usage rows per call, prices them from a Model manifest's parameters (cache-hit, input, output per million), and raises BudgetExhausted before a call once the usd or calls ceiling is reached. A 401/402 or "Insufficient Balance" failure becomes AccountError with the provider's message. An unpriced model reports usd None, never zero, and refuses a usd budget; summary() gives the spend block of a task's summary.json. The two plane modules are registered as spec-owned in the module audit (their consumers land in tasks 3-4) and the audit manifest is regenerated. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo