Files
openclaw/extensions/qa-lab/src/model-selection.ts
2026-05-09 11:26:43 +01:00

46 lines
1.1 KiB
TypeScript

import {
DEFAULT_QA_LIVE_PROVIDER_MODE,
getQaProvider,
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)
);
}