Skip to main content

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​

SpendReserveRequest

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​

SpendSettleRequest

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>