2026-02-08 13:57:26 +09:00
|
|
|
import type { FallbackEntry } from "./model-requirements"
|
|
|
|
|
|
2026-03-18 20:37:50 +01:00
|
|
|
export interface DelegatedModelConfig {
|
|
|
|
|
providerID: string
|
|
|
|
|
modelID: string
|
|
|
|
|
variant?: string
|
|
|
|
|
reasoningEffort?: string
|
|
|
|
|
temperature?: number
|
|
|
|
|
top_p?: number
|
|
|
|
|
maxTokens?: number
|
|
|
|
|
thinking?: { type: "enabled" | "disabled"; budgetTokens?: number }
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-08 13:57:26 +09:00
|
|
|
export type ModelResolutionRequest = {
|
|
|
|
|
intent?: {
|
|
|
|
|
uiSelectedModel?: string
|
|
|
|
|
userModel?: string
|
|
|
|
|
categoryDefaultModel?: string
|
|
|
|
|
}
|
|
|
|
|
constraints: {
|
|
|
|
|
availableModels: Set<string>
|
|
|
|
|
}
|
|
|
|
|
policy?: {
|
|
|
|
|
fallbackChain?: FallbackEntry[]
|
|
|
|
|
systemDefaultModel?: string
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export type ModelResolutionProvenance =
|
|
|
|
|
| "override"
|
|
|
|
|
| "category-default"
|
|
|
|
|
| "provider-fallback"
|
|
|
|
|
| "system-default"
|
|
|
|
|
|
|
|
|
|
export type ModelResolutionResult = {
|
|
|
|
|
model: string
|
|
|
|
|
provenance: ModelResolutionProvenance
|
|
|
|
|
variant?: string
|
|
|
|
|
attempted?: string[]
|
|
|
|
|
reason?: string
|
|
|
|
|
}
|