mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-18 12:39:28 +00:00
feat(plane): budget metering (task 2)
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
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
152728c052
commit
f460735a87
@@ -54,6 +54,8 @@ SPEC_OWNED = {
|
||||
"cpg": "model-grounded-detection Req 4: the CPG seam package",
|
||||
"cpg.backend": "model-grounded-detection Req 4.1/4.5: the single Joern subprocess boundary",
|
||||
"cpg.capability": "model-grounded-detection Req 4.2/4.3: the engine probe that degrades to suspicion",
|
||||
"plane": "ai-service-plane Req 1-4: the service plane package; runner and reconciler integration in tasks 3-4",
|
||||
"plane.budget": "ai-service-plane Req 2.3/2.4: metered chat client with usd and calls ceilings; task integration in tasks 3, 6",
|
||||
}
|
||||
|
||||
STANDALONE = {
|
||||
|
||||
Reference in New Issue
Block a user