rulvar API reference / @rulvar/core / ChatRequest
Interface: ChatRequest
Defined in: packages/core/src/l0/messages.ts:102
The provider-neutral chat request. Sampling parameters (temperature, top_p, top_k) are deliberately absent from the first-class surface: both first-class providers reject them on current reasoning models; where a target legitimately supports them they travel through the adapter's providerOptions namespace, subject to caps scrubbing.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
cacheHint? | CacheHint | - | packages/core/src/l0/messages.ts:115 |
effort? | Effort | Canonical effort, already resolved and scrubbed by the router. | packages/core/src/l0/messages.ts:112 |
maxOutputTokens? | number | - | packages/core/src/l0/messages.ts:113 |
messages | Msg[] | System messages are Msg entries with role 'system'. | packages/core/src/l0/messages.ts:106 |
model | string | Wire model id: the segment after 'adapterId:' in ModelRef. | packages/core/src/l0/messages.ts:104 |
providerOptions? | Record<string, Record<string, unknown>> | Namespaced by adapter id: { anthropic: {...}, openai: {...} }. An adapter MUST read only its own namespace and MUST ignore unknown namespaces without error. Canonical fields always win where both express the same thing; a namespaced option silently contradicting a canonical field is a typed ConfigError. | packages/core/src/l0/messages.ts:123 |
schema? | JsonSchema | Structured-output target; tier already chosen by the router. | packages/core/src/l0/messages.ts:110 |
stopSequences? | string[] | - | packages/core/src/l0/messages.ts:114 |
toolChoice? | ToolChoice | - | packages/core/src/l0/messages.ts:108 |
tools? | ToolContract[] | - | packages/core/src/l0/messages.ts:107 |