Per-operation attribution input.

Every property is optional so a request can override only one client default. When attribution is present, the SDK supplies an operation ID from the underlying project/job request when one is not provided.

interface ChatRequestMessage {
    agentFramework?: string;
    agentFrameworkVersion?: string;
    agentSurface?: AgentSurface;
    agentSurfaceVersion?: string;
    appSource?: string;
    billingMode?: BillingMode;
    chat_template_kwargs?: Record<string, unknown>;
    executionMode?: ExecutionMode;
    frequency_penalty?: number;
    jobID: string;
    max_tokens?: number;
    messages: ChatMessage[];
    min_p?: number;
    model: string;
    operationId?: string;
    operationScope?: OperationScope;
    parentOperationId?: string;
    presence_penalty?: number;
    repetition_penalty?: number;
    response_format?: ChatResponseFormat;
    rootOperationId?: string;
    safeContentFilter?: boolean;
    sogni_tool_execution?: boolean;
    sogni_tools?: SogniToolsMode;
    stop?: string | string[];
    stream?: boolean;
    taskProfile?: "general" | "coding" | "reasoning";
    temperature?: number;
    tokenType?: "sogni" | "spark";
    tool_choice?: ToolChoice;
    tools?: ToolDefinition[];
    top_k?: number;
    top_p?: number;
    type: "llm";
    workloadKind?: WorkloadKind;
}

Hierarchy (View Summary)

Properties

agentFramework?: string

Canonical agent host, for example codex, claude-code, or sogni-chat.

agentFrameworkVersion?: string

Version of the agent host when known.

agentSurface?: AgentSurface

How the agent host integrated with Sogni.

agentSurfaceVersion?: string

Version of the integration surface when known.

appSource?: string
billingMode?: BillingMode

Billing mode read by the socket server (data.billingMode) — see ChatCompletionParams.billingMode.

chat_template_kwargs?: Record<string, unknown>

Per-request chat template arguments (e.g. { enable_thinking: false } for llama.cpp).

executionMode?: ExecutionMode

Product execution detail, such as browser or durable execution.

frequency_penalty?: number
jobID: string
max_tokens?: number
messages: ChatMessage[]
min_p?: number
model: string
operationId?: string
operationScope?: OperationScope
parentOperationId?: string
presence_penalty?: number
repetition_penalty?: number
response_format?: ChatResponseFormat

Per-request structured-output constraint (OpenAI-compatible).

rootOperationId?: string
safeContentFilter?: boolean

Safe-content filter state forwarded to the socket server.

sogni_tool_execution?: boolean
sogni_tools?: SogniToolsMode
stop?: string | string[]
stream?: boolean
taskProfile?: "general" | "coding" | "reasoning"
temperature?: number
tokenType?: "sogni" | "spark"
tool_choice?: ToolChoice
tools?: ToolDefinition[]
top_k?: number
top_p?: number
type: "llm"
workloadKind?: WorkloadKind