mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-12 02:02:13 +03:00
fix(model-discovery): ingest capabilities.effort_tiers for synced models (#9160)
Refs: base-red #9737
This commit is contained in:
committed by
GitHub
parent
a6b3b4f57a
commit
2ed487583b
@@ -112,7 +112,8 @@ function parseEffortList(rawList: unknown): string[] | undefined {
|
||||
.map((entry) => {
|
||||
const entryParsed = effortEntrySchema.safeParse(entry);
|
||||
if (!entryParsed.success) return null;
|
||||
const raw = typeof entryParsed.data === "string" ? entryParsed.data : entryParsed.data.effort;
|
||||
const raw =
|
||||
typeof entryParsed.data === "string" ? entryParsed.data : entryParsed.data.effort;
|
||||
return raw.length > 0 ? normalizeSupportedEffort(raw) : null;
|
||||
})
|
||||
.filter((effort): effort is string => effort !== null)
|
||||
@@ -144,6 +145,16 @@ export function detectSupportedThinkingEfforts(record: JsonRecord): string[] | u
|
||||
}
|
||||
}
|
||||
|
||||
// #9160: fall back to `capabilities.effort_tiers` before the legacy fields.
|
||||
// OmniRoute's own catalog surfaces effort tiers inside `capabilities.effort_tiers`,
|
||||
// which the existing `parseEffortList` already handles (string arrays).
|
||||
const capabilitiesRecord = asRecord(record.capabilities);
|
||||
const capabilitiesParsed = effortListSchema.safeParse(capabilitiesRecord.effort_tiers);
|
||||
if (capabilitiesParsed.success) {
|
||||
const fromCapabilities = parseEffortList(capabilitiesRecord.effort_tiers);
|
||||
if (fromCapabilities) return fromCapabilities;
|
||||
}
|
||||
|
||||
// #8347: fall back to `supported_reasoning_levels`, then `thinking.levels` — in that
|
||||
// order, per the regression guard for #7694 (the flat field and `reasoning.supported_efforts`
|
||||
// both take precedence over these two and are handled above / by the caller).
|
||||
|
||||
Reference in New Issue
Block a user