




















@@ -1,4 +1,5 @@
11import { afterEach, describe, expect, it, vi } from "vitest";
2+import type { OpenClawConfig } from "../../config/types.openclaw.js";
23import {
34clearAgentHarnesses,
45disposeRegisteredAgentHarnesses,
@@ -45,6 +46,20 @@ function makeHarness(
4546};
4647}
474849+function providerRuntimeConfig(provider: string, runtime: string): OpenClawConfig {
50+return {
51+models: {
52+providers: {
53+[provider]: {
54+baseUrl: "https://api.openclaw.test/v1",
55+agentRuntime: { id: runtime },
56+models: [],
57+},
58+},
59+},
60+} as OpenClawConfig;
61+}
62+4863describe("agent harness registry", () => {
4964it("registers and retrieves a harness with owner metadata", () => {
5065const harness = makeHarness("custom");
@@ -132,21 +147,31 @@ describe("agent harness registry", () => {
132147expect(selectAgentHarness({ provider: "codex", modelId: "gpt-5.4" }).id).toBe("plugin-harness");
133148});
134149135-it("honors explicit PI mode", () => {
136-process.env.OPENCLAW_AGENT_RUNTIME = "pi";
150+it("honors explicit provider PI runtime policy", () => {
137151registerAgentHarness(makeHarness("plugin-harness", { priority: 200 }), {
138152ownerPluginId: "plugin-a",
139153});
140154141-expect(selectAgentHarness({ provider: "codex", modelId: "gpt-5.4" }).id).toBe("pi");
155+expect(
156+selectAgentHarness({
157+provider: "codex",
158+modelId: "gpt-5.4",
159+config: providerRuntimeConfig("codex", "pi"),
160+}).id,
161+).toBe("pi");
142162});
143163144-it("honors explicit plugin harness mode when the plugin harness is registered", () => {
145-process.env.OPENCLAW_AGENT_RUNTIME = "custom";
164+it("honors explicit provider plugin runtime policy when the plugin harness is registered", () => {
146165registerAgentHarness(makeHarness("custom", { providers: ["custom-provider"] }), {
147166ownerPluginId: "plugin-a",
148167});
149168150-expect(selectAgentHarness({ provider: "anthropic", modelId: "sonnet-4.6" }).id).toBe("custom");
169+expect(
170+selectAgentHarness({
171+provider: "anthropic",
172+modelId: "sonnet-4.6",
173+config: providerRuntimeConfig("anthropic", "custom"),
174+}).id,
175+).toBe("custom");
151176});
152177});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。