Interface: ISpendMeter
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:145
A persisted per-account meter. Every method is safe to call from several processes at once against one store: two reservations cannot both take the last unit, and a reservation settles exactly once.
Methods
heartbeat()
heartbeat(
operationId,now?):Promise<void>
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:151
Pushes a live reservation's lease forward while its turn runs.
Parameters
operationId
string
now?
number
Returns
Promise<void>
reconcile()
reconcile(
opts?):Promise<SpendReconcileResult>
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:153
Settles the reservations whose lease ran out.
Parameters
opts?
limit?
number
now?
number
Returns
Promise<SpendReconcileResult>
reserve()
reserve(
req):Promise<SpendReserveResult>
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:147
Reserves units for an operation, or refuses. Rejects with SpendMeterUnavailableError when the store cannot answer.
Parameters
req
Returns
Promise<SpendReserveResult>
setAllowance()
setAllowance(
accountId,allowance,now?):Promise<void>
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:160
Writes the current period's allowance at once after a plan change; the units used stay. A store that reads the product's allowance at every reservation takes the product's answer again at the next one.
Parameters
accountId
string
allowance
number
now?
number
Returns
Promise<void>
settle()
settle(
req):Promise<SpendSettleResult>
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:149
Settles an operation's reservation. Idempotent per operation and outcome.
Parameters
req
Returns
Promise<SpendSettleResult>
snapshot()
snapshot(
accountId,now?):Promise<SpendMeterSnapshot>
Defined in: packages/agentos/src/safety/runtime/SpendMeter.ts:155
The account's current period: its allowance, the units used and reserved, and what remains.
Parameters
accountId
string
now?
number
Returns
Promise<SpendMeterSnapshot>