rulvar API reference / @rulvar/core / UsageLimits
Interface: UsageLimits
Defined in: packages/core/src/runtime/usage-limits.ts:10
UsageLimits (M1-T06): normative limit vocabulary and the per-spawn merge.
Full contract: https://docs.rulvar.com/guide/agents. Expiry of maxTurns, maxToolCalls, or timeoutMs produces the terminal status 'limit' (paid partial work); streamIdleTimeoutMs expiry is a retryable transport-class AgentError, never 'limit'. The run-level deadline is RunOptions.deadlineAt, not a UsageLimits field.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
maxOutputTokensPerTurn? | number | Unlimited by default (model caps still apply). | packages/core/src/runtime/usage-limits.ts:16 |
maxToolCalls? | number | Unlimited by default. | packages/core/src/runtime/usage-limits.ts:14 |
maxTurns? | number | Default 32. | packages/core/src/runtime/usage-limits.ts:12 |
noProgressTurns? | number | The no-progress detector N (committed at 3): consecutive turns without tool calls or artifact deltas before the engine aborts with the dedicated class (M3-T08). | packages/core/src/runtime/usage-limits.ts:26 |
streamIdleTimeoutMs? | number | Gap between stream events; default 120000. | packages/core/src/runtime/usage-limits.ts:20 |
timeoutMs? | number | Per-agent wall clock; unlimited by default. | packages/core/src/runtime/usage-limits.ts:18 |