



























@@ -24,14 +24,8 @@ const {
2424writeQaDockerHarnessFiles: vi.fn(),
2525buildQaDockerHarnessImage: vi.fn(),
2626runQaDockerUp: vi.fn(),
27-defaultQaRuntimeModelForMode: vi.fn<(mode: string, options?: { alternate?: boolean }) => string>(
28-(mode, options) =>
29-mode === "live-frontier"
30- ? "openai/gpt-5.4"
31- : options?.alternate
32- ? "mock-openai/gpt-5.4-alt"
33- : "mock-openai/gpt-5.4",
34-),
27+defaultQaRuntimeModelForMode:
28+vi.fn<(mode: string, options?: { alternate?: boolean }) => string>(),
3529}));
36303731vi.mock("./manual-lane.runtime.js", () => ({
@@ -83,6 +77,8 @@ import {
8377runQaSuiteCommand,
8478} from "./cli.runtime.js";
8579import { runQaTelegramCommand } from "./live-transports/telegram/cli.runtime.js";
80+import { defaultQaModelForMode as defaultQaProviderModelForMode } from "./model-selection.js";
81+import type { QaProviderModeInput } from "./run-config.js";
86828783describe("qa cli runtime", () => {
8884let stdoutWrite: ReturnType<typeof vi.spyOn>;
@@ -100,11 +96,7 @@ describe("qa cli runtime", () => {
10096runQaDockerUp.mockReset();
10197defaultQaRuntimeModelForMode.mockImplementation(
10298(mode: string, options?: { alternate?: boolean }) =>
103-mode === "live-frontier"
104- ? "openai/gpt-5.4"
105- : options?.alternate
106- ? "mock-openai/gpt-5.4-alt"
107- : "mock-openai/gpt-5.4",
99+defaultQaProviderModelForMode(mode as QaProviderModeInput, options),
108100);
109101runQaSuiteFromRuntime.mockResolvedValue({
110102watchUrl: "http://127.0.0.1:43124",
@@ -234,22 +226,6 @@ describe("qa cli runtime", () => {
234226);
235227});
236228237-it("normalizes legacy live-openai suite runs onto the frontier provider mode", async () => {
238-await runQaSuiteCommand({
239-repoRoot: "/tmp/openclaw-repo",
240-providerMode: "live-openai",
241-scenarioIds: ["approval-turn-tool-followthrough"],
242-});
243-244-expect(runQaSuiteFromRuntime).toHaveBeenCalledWith(
245-expect.objectContaining({
246-repoRoot: path.resolve("/tmp/openclaw-repo"),
247-transportId: "qa-channel",
248-providerMode: "live-frontier",
249-}),
250-);
251-});
252-253229it("passes host suite concurrency through", async () => {
254230await runQaSuiteCommand({
255231repoRoot: "/tmp/openclaw-repo",
@@ -602,6 +578,25 @@ describe("qa cli runtime", () => {
602578});
603579});
604580581+it("defaults manual aimock runs onto the aimock model lane", async () => {
582+await runQaManualLaneCommand({
583+repoRoot: "/tmp/openclaw-repo",
584+providerMode: "aimock",
585+message: "read qa kickoff and reply short",
586+});
587+588+expect(runQaManualLane).toHaveBeenCalledWith({
589+repoRoot: path.resolve("/tmp/openclaw-repo"),
590+transportId: "qa-channel",
591+providerMode: "aimock",
592+primaryModel: "aimock/gpt-5.4",
593+alternateModel: "aimock/gpt-5.4-alt",
594+fastMode: undefined,
595+message: "read qa kickoff and reply short",
596+timeoutMs: undefined,
597+});
598+});
599+605600it("defaults manual frontier runs onto the frontier model lane", async () => {
606601await runQaManualLaneCommand({
607602repoRoot: "/tmp/openclaw-repo",
@@ -640,31 +635,11 @@ describe("qa cli runtime", () => {
640635});
641636});
642637643-it("normalizes legacy live-openai manual runs onto the frontier provider mode", async () => {
644-await runQaManualLaneCommand({
645-repoRoot: "/tmp/openclaw-repo",
646-providerMode: "live-openai",
647-message: "read qa kickoff and reply short",
648-});
649-650-expect(runQaManualLane).toHaveBeenCalledWith(
651-expect.objectContaining({
652-repoRoot: path.resolve("/tmp/openclaw-repo"),
653-transportId: "qa-channel",
654-providerMode: "live-frontier",
655-primaryModel: "openai/gpt-5.4",
656-alternateModel: "openai/gpt-5.4",
657-}),
658-);
659-});
660-661638it("defaults manual frontier runs onto Codex OAuth when the runtime resolver prefers it", async () => {
662639defaultQaRuntimeModelForMode.mockImplementation((mode, options) =>
663640mode === "live-frontier"
664641 ? "openai-codex/gpt-5.4"
665- : options?.alternate
666- ? "mock-openai/gpt-5.4-alt"
667- : "mock-openai/gpt-5.4",
642+ : defaultQaProviderModelForMode(mode as QaProviderModeInput, options),
668643);
669644670645await runQaManualLaneCommand({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。