Rulvar API reference / @rulvar/core / Usage
Type Alias: Usage
type Usage = {
cacheReadTokens: number;
cacheWrite1hTokens?: number;
cacheWrite5mTokens?: number;
cacheWriteTokens: number;
inputTokens: number;
outputTokens: number;
reasoningTokens?: number;
};Defined in: packages/core/src/l0/messages.ts:153
Usage under the Usage invariant: inputTokens is the FULL prompt size including cache reads and cache writes. Adapters MUST normalize provider-reported usage to satisfy this invariant, and the core verifies it at the adapter boundary.
Properties
cacheReadTokens
cacheReadTokens: number;Defined in: packages/core/src/l0/messages.ts:156
cacheWrite1hTokens?
optional cacheWrite1hTokens?: number;Defined in: packages/core/src/l0/messages.ts:170
cacheWrite5mTokens?
optional cacheWrite5mTokens?: number;Defined in: packages/core/src/l0/messages.ts:169
The cache-write TTL split (RV810), filled by adapters whose provider distinguishes write TTLs in usage (the Anthropic cache_creation breakdown). Optional and additive: absent means undifferentiated writes, priced at the plain write rate exactly as before. When either field is present the split must SUM to cacheWriteTokens (absent counts zero); usageViolations enforces it and priceUsdOf prices each share at its own rate, so a 1h premium write is no longer billed at the 5m rate.
cacheWriteTokens
cacheWriteTokens: number;Defined in: packages/core/src/l0/messages.ts:157
inputTokens
inputTokens: number;Defined in: packages/core/src/l0/messages.ts:154
outputTokens
outputTokens: number;Defined in: packages/core/src/l0/messages.ts:155
reasoningTokens?
optional reasoningTokens?: number;Defined in: packages/core/src/l0/messages.ts:158