/** * Request-parameter passthrough (design/40). A deployment can set official provider params it wants but * core doesn't model as first-class fields (OpenAI `frequency_penalty`/`presence_penalty`/`top_p`/`seed`/ * `logit_bias`; Anthropic `top_k`/`top_p`/`stop_sequences`; …) via `Model.extraBody`, and core merges them * into the brain's request body. Anchored at the **Model** level (not per-turn) so the serialized body * stays byte-stable across turns → the prefix cache holds (design/9/31). * * Symmetric: each brain owns its structural + tuning keys (`reserved`) and ALWAYS wins — `extraBody` can * only supply the long tail, never clobber `messages`/`tools`/`temperature`/etc. Stripping is the safety * enforcement (the brains are standalone-usable); `prepareTask` separately warns on a collision (it has * `onError`, the brain doesn't — council design/40). */ /** OpenAI request-body keys core owns; `extraBody` cannot override these. */ export declare const OPENAI_RESERVED: ReadonlySet; /** Anthropic request-body keys core owns; `extraBody` cannot override these. (Note the asymmetry vs * OpenAI — e.g. `stop`/`stop_sequences` is NOT reserved here because the Anthropic brain never sets it.) */ export declare const ANTHROPIC_RESERVED: ReadonlySet; /** Reserved set for a model's API. */ export declare function reservedFor(api: string): ReadonlySet; /** * Merge `extraBody` into a brain's already-built request `body`, dropping any key the brain owns so core * always wins. Returns a NEW object (passthrough keys first, then core keys) when `extraBody` is set; the * exact `body` reference (no allocation, byte-identical serialization) when it isn't — so an existing * deployment with no `extraBody` is unaffected. */ export declare function applyExtraBody(body: Record, extraBody: Record | undefined, reserved: ReadonlySet): Record; /** Names in `extraBody` that collide with a reserved (core-owned) key — for a load-time warning. */ export declare function reservedCollisions(extraBody: Record | undefined, reserved: ReadonlySet): string[]; //# sourceMappingURL=request-params.d.ts.map