package com.correx.infrastructure.inference.commons

import com.correx.core.inference.CapabilityScore

/**
 * Descriptor for a model instance with its configuration.
 */
data class ModelDescriptor(
    val modelId: String,
    val modelPath: String,
    val residencyMode: ResidencyMode,
    val idleTimeoutMs: Long = 60_000L,
    val contextSize: Int = 24_576,
    val capabilities: Set<CapabilityScore> = emptySet(),
    /** Extra llama-server CLI args (already flattened to token order), e.g. draft-MTP speculative
     * decoding: `-md <draft.gguf> -ngld 99 --spec-type draft-mtp --spec-draft-n-max 4`. */
    val extraArgs: List<String> = emptyList(),
)
