/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/app/src/context/model-variant.ts
52 строки
2 KB
Adam
fix(app): model selection persist by session (#17348)
13 мар 2026, 19:05
Не верифицирован
13 мар 2026, 19:05
4ad8116
Код
Авторство
О чём код?
type AgentModel = { providerID: string modelID: string } type Agent = { model?: AgentModel variant?: string } type Model = AgentModel & { variants?: Record<string, unknown> } type VariantInput = { variants: string[] selected: string | null | undefined configured: string | undefined } export function getConfiguredAgentVariant(input: { agent: Agent | undefined; model: Model | undefined }) { if (!input.agent?.variant) return undefined if (!input.agent.model) return undefined if (!input.model?.variants) return undefined if (input.agent.model.providerID !== input.model.providerID) return undefined if (input.agent.model.modelID !== input.model.modelID) return undefined if (!(input.agent.variant in input.model.variants)) return undefined return input.agent.variant } export function resolveModelVariant(input: VariantInput) { if (input.selected === null) return undefined if (input.selected && input.variants.includes(input.selected)) return input.selected if (input.configured && input.variants.includes(input.configured)) return input.configured return undefined } export function cycleModelVariant(input: VariantInput) { if (input.variants.length === 0) return undefined if (input.selected === null) return input.variants[0] if (input.selected && input.variants.includes(input.selected)) { const index = input.variants.indexOf(input.selected) if (index === input.variants.length - 1) return undefined return input.variants[index + 1] } if (input.configured && input.variants.includes(input.configured)) { const index = input.variants.indexOf(input.configured) if (index === input.variants.length - 1) return input.variants[0] return input.variants[index + 1] } return input.variants[0] }