// Qa Matrix plugin module implements model selection behavior. import { loadQaRuntimeModule } from "openclaw/plugin-sdk/qa-runner-runtime"; import { normalizeQaProviderMode, type QaProviderModeInput } from "../../run-config.js"; export type ResolvedMatrixQaModels = { providerMode: ReturnType; primaryModel: string; alternateModel: string; }; export function resolveMatrixQaModels(params: { providerMode?: QaProviderModeInput; primaryModel?: string; alternateModel?: string; }): ResolvedMatrixQaModels { const providerMode = normalizeQaProviderMode(params.providerMode ?? "live-frontier"); const primaryModel = params.primaryModel?.trim(); const alternateModel = params.alternateModel?.trim(); if (primaryModel && alternateModel) { return { providerMode, primaryModel, alternateModel, }; } const qaRuntime = loadQaRuntimeModule(); return { providerMode, primaryModel: primaryModel || qaRuntime.defaultQaRuntimeModelForMode(providerMode), alternateModel: alternateModel || qaRuntime.defaultQaRuntimeModelForMode(providerMode, { alternate: true }), }; }