Files
openclaw/extensions/qa-lab/src/model-selection.ts
Gustavo Madeira Santana bb7e9823a8 QA Lab: add provider registry
Move mock and live provider behavior behind provider-owned definitions so suite, manual, Matrix, and transport lanes share defaults, auth staging, model config, and standalone server startup.

Add AIMock as a first-class local provider mode while keeping mock-openai as the scenario-aware deterministic lane.
2026-04-16 21:24:59 -04:00

47 lines
1.1 KiB
TypeScript

import {
DEFAULT_QA_LIVE_PROVIDER_MODE,
getQaProvider,
type QaProviderMode,
type QaProviderModeInput,
} from "./providers/index.js";
export type { QaProviderMode, QaProviderModeInput } from "./providers/index.js";
export type QaModelSelection = {
primaryModel: string;
alternateModel: string;
};
export { normalizeQaProviderMode } from "./providers/index.js";
export function defaultQaModelForMode(
mode: QaProviderModeInput,
options?: {
alternate?: boolean;
preferredLiveModel?: string;
},
) {
return getQaProvider(mode).defaultModel(options);
}
export function splitQaModelRef(ref: string) {
const slash = ref.indexOf("/");
if (slash <= 0 || slash === ref.length - 1) {
return null;
}
return {
provider: ref.slice(0, slash),
model: ref.slice(slash + 1),
};
}
export function isQaFastModeModelRef(ref: string) {
return getQaProvider(DEFAULT_QA_LIVE_PROVIDER_MODE).usesFastModeByDefault(ref);
}
export function isQaFastModeEnabled(selection: QaModelSelection) {
return (
isQaFastModeModelRef(selection.primaryModel) || isQaFastModeModelRef(selection.alternateModel)
);
}