MCPcopy Index your code
hub / github.com/coder/mux / resolveModelFallbackChain

Function resolveModelFallbackChain

src/common/utils/ai/modelFallbacks.ts:72–92  ·  view source on GitHub ↗
(
  modelFallbacks: ModelFallbacks | undefined,
  modelString: string
)

Source from the content-addressed store, hash-verified

70 * fallback models' chains are never chased, so chains cannot loop at runtime.
71 */
72export function resolveModelFallbackChain(
73 modelFallbacks: ModelFallbacks | undefined,
74 modelString: string
75): string[] {
76 if (!modelFallbacks) {
77 return [];
78 }
79
80 const canonicalSource = normalizeToCanonical(modelString).trim();
81 const entry = modelFallbacks[canonicalSource];
82 if (!entry || entry.enabled === false || !Array.isArray(entry.models)) {
83 return [];
84 }
85 // Refusal is the only trigger today; entries restricted to other (future)
86 // triggers must not fire on refusals.
87 if (entry.triggers !== undefined && !entry.triggers.includes("model_refusal")) {
88 return [];
89 }
90
91 return sanitizeModelFallbackChain(canonicalSource, entry.models);
92}
93
94/**
95 * Sanitize a full fallback map for persistence: canonical keys, sanitized

Calls 2

normalizeToCanonicalFunction · 0.90

Tested by

no test coverage detected