package com.correx.core.inference

import com.correx.core.context.model.ContextPack
import com.correx.core.events.types.InferenceRequestId
import com.correx.core.events.types.SessionId
import com.correx.core.events.types.StageId
import kotlinx.serialization.Serializable

@Serializable
data class InferenceRequest(
    val requestId: InferenceRequestId,
    val sessionId: SessionId,
    val stageId: StageId,
    val contextPack: ContextPack,
    val generationConfig: GenerationConfig,
    val timeout: InferenceTimeout? = null,
    val responseFormat: ResponseFormat = ResponseFormat.Text,
    val tools: List<ToolDefinition> = emptyList(),
)
