Skip to content
Français

ModelRequest

import type { ModelRequest } from "@elie-laloum/outpost";
  • modelRequired
    string
    Nonempty service-specific model identifier; no local catalog or availability probe is used.
  • promptOptional
    string | undefined
    Nonempty text sent as a single user message. Set exactly one of prompt and messages.
  • messagesOptional
    readonly ModelMessage[] | undefined
    Conversation history starting and ending with a user message. Each tool call needs exactly one result in the next user message; reasoning blocks from another provider or model are dropped before sending.
  • systemOptional
    string | undefined
    Instructions sent as the Chat Completions system message, the Responses instructions or the Anthropic system text.
  • toolsOptional
    readonly ModelToolSpec[] | undefined
    Tools the model may call, with unique names and JSON Schema inputs. The provider translates them to its function or tool format; it never executes them.
  • maxOutputTokensOptional
    number | undefined
    Positive output token limit, sent as max_completion_tokens (Chat Completions), max_output_tokens (Responses) or max_tokens (Anthropic). Anthropic requests fail with code configuration without it; inside a harness it defaults to the agent model’s limit.
  • reasoningOptional
    ModelReasoning | undefined
    Reasoning effort for this request. OpenAI protocols send the value unchanged as reasoning_effort or reasoning.effort; Anthropic maps none to disabled thinking, low to max to adaptive thinking at that effort, and rejects minimal.
  • cacheOptional
    boolean | undefined
    Ask Anthropic to cache the conversation prefix with an automatic breakpoint. OpenAI caches stable prefixes automatically and ignores the flag.
  • signalOptional
    AbortSignal | undefined
    Cancellation signal for this request, combined with the provider deadline. Aborting rejects with code aborted; the provider stays reusable.
export interface ModelRequest {
  readonly model: string;
  readonly prompt?: string;
  readonly messages?: readonly ModelMessage[];
  readonly system?: string;
  readonly tools?: readonly ModelToolSpec[];
  readonly maxOutputTokens?: number;
  readonly reasoning?: ModelReasoning;
  readonly cache?: boolean;
  readonly signal?: AbortSignal;
}