mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 21:07:01 -06:00
126b5a08e7
Centralize QA model-pair construction after resolving the actual primary, preserve explicit and manual single-model selections, and keep omitted live-frontier alternates on the provider-owned OpenAI Sol/Luna policy. Punchcard-Session: amber-workshop-workshop-36 Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com>
46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
// QA Lab suite model selection follows an explicitly selected scenario lane.
|
|
import {
|
|
isQaFastModeEnabled,
|
|
normalizeQaProviderMode,
|
|
type QaProviderMode,
|
|
} from "./model-selection.js";
|
|
import { resolveQaRuntimeModelPair } from "./model-selection.runtime.js";
|
|
import { DEFAULT_QA_LIVE_PROVIDER_MODE } from "./providers/index.js";
|
|
import {
|
|
resolveQaScenarioRequiredProviderMode,
|
|
type QaSeedScenarioWithSource,
|
|
} from "./scenario-catalog.js";
|
|
|
|
export function resolveRequestedQaSuiteModels(params: {
|
|
alternateModel?: string;
|
|
fastMode?: boolean;
|
|
primaryModel?: string;
|
|
providerMode?: QaProviderMode;
|
|
scenarioIds?: readonly string[];
|
|
scenarios: readonly QaSeedScenarioWithSource[];
|
|
}) {
|
|
// A scenario supplies a single-run default; an explicit provider always owns the selected lane.
|
|
const selectedScenario =
|
|
params.providerMode === undefined && params.scenarioIds?.length === 1
|
|
? params.scenarios.find((scenario) => scenario.id === params.scenarioIds?.[0])
|
|
: undefined;
|
|
const selectedProviderMode =
|
|
selectedScenario?.execution.kind === "flow"
|
|
? resolveQaScenarioRequiredProviderMode(selectedScenario)
|
|
: undefined;
|
|
const providerMode = normalizeQaProviderMode(
|
|
params.providerMode ?? selectedProviderMode ?? DEFAULT_QA_LIVE_PROVIDER_MODE,
|
|
);
|
|
const { primaryModel, alternateModel } = resolveQaRuntimeModelPair({
|
|
providerMode,
|
|
primaryModel: params.primaryModel,
|
|
alternateModel: params.alternateModel,
|
|
});
|
|
return {
|
|
alternateModel,
|
|
fastMode: params.fastMode ?? isQaFastModeEnabled({ primaryModel, alternateModel }),
|
|
primaryModel,
|
|
providerMode,
|
|
};
|
|
}
|