fix(model-settings): support family reasoning aliases

This commit is contained in:
acamq
2026-05-10 10:11:55 -06:00
parent 50d0d16854
commit c5e89f1eea
2 changed files with 14 additions and 1 deletions
@@ -6,6 +6,7 @@ export type HeuristicModelFamilyDefinition = {
pattern?: RegExp
variants?: string[]
reasoningEfforts?: string[]
reasoningEffortAliases?: Record<string, string>
supportsThinking?: boolean
}
+13 -1
View File
@@ -86,6 +86,7 @@ function resolveField(
ladder: string[],
familyKnown: boolean,
metadataOverride?: string[],
familyAliases?: Record<string, string>,
): FieldResolution {
if (metadataOverride) {
if (metadataOverride.includes(normalized)) return { value: normalized }
@@ -97,6 +98,10 @@ function resolveField(
if (familyCaps) {
if (familyCaps.includes(normalized)) return { value: normalized }
const aliased = familyAliases?.[normalized]
if (aliased && familyCaps.includes(aliased)) {
return { value: aliased, reason: "unsupported-by-model-family" }
}
return {
value: downgradeWithinLadder(normalized, familyCaps, ladder),
reason: "unsupported-by-model-family",
@@ -132,7 +137,14 @@ export function resolveCompatibleModelSettings(
let reasoningEffort = input.desired.reasoningEffort
if (reasoningEffort !== undefined) {
const normalized = reasoningEffort.toLowerCase()
const resolved = resolveField(normalized, family?.reasoningEfforts, REASONING_LADDER, familyKnown, metadataReasoningEfforts)
const resolved = resolveField(
normalized,
family?.reasoningEfforts,
REASONING_LADDER,
familyKnown,
metadataReasoningEfforts,
family?.reasoningEffortAliases,
)
if (resolved.value !== normalized && resolved.reason) {
changes.push({ field: "reasoningEffort", from: reasoningEffort, to: resolved.value, reason: resolved.reason })
}