d4f962b55d
- Registry-based model family detection (provider-agnostic) - Variant and reasoningEffort ladder downgrade logic - Three-tier resolution: metadata override → family heuristic → unknown drop - Comprehensive test suite covering all model families
32 lines
1021 B
TypeScript
32 lines
1021 B
TypeScript
import { clearSessionPromptParams, setSessionPromptParams } from "./session-prompt-params-state"
|
|
|
|
type PromptParamModel = {
|
|
temperature?: number
|
|
top_p?: number
|
|
reasoningEffort?: string
|
|
maxTokens?: number
|
|
thinking?: { type: "enabled" | "disabled"; budgetTokens?: number }
|
|
}
|
|
|
|
export function applySessionPromptParams(
|
|
sessionID: string,
|
|
model: PromptParamModel | undefined,
|
|
): void {
|
|
if (!model) {
|
|
clearSessionPromptParams(sessionID)
|
|
return
|
|
}
|
|
|
|
const promptOptions: Record<string, unknown> = {
|
|
...(model.reasoningEffort ? { reasoningEffort: model.reasoningEffort } : {}),
|
|
...(model.thinking ? { thinking: model.thinking } : {}),
|
|
...(model.maxTokens !== undefined ? { maxTokens: model.maxTokens } : {}),
|
|
}
|
|
|
|
setSessionPromptParams(sessionID, {
|
|
...(model.temperature !== undefined ? { temperature: model.temperature } : {}),
|
|
...(model.top_p !== undefined ? { topP: model.top_p } : {}),
|
|
...(Object.keys(promptOptions).length > 0 ? { options: promptOptions } : {}),
|
|
})
|
|
}
|