


























@@ -9,6 +9,7 @@ import {
99} from "openclaw/plugin-sdk/agent-harness";
1010import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
1111import { __testing as nativeHookRelayTesting } from "../../../../src/agents/harness/native-hook-relay.js";
12+import { buildAgentRuntimePlan } from "../../../../src/agents/runtime-plan/build.js";
1213import {
1314onAgentEvent,
1415resetAgentEventsForTest,
@@ -52,6 +53,28 @@ function createParams(sessionFile: string, workspaceDir: string): EmbeddedRunAtt
5253} as EmbeddedRunAttemptParams;
5354}
545556+function createParamsWithRuntimePlan(
57+sessionFile: string,
58+workspaceDir: string,
59+): EmbeddedRunAttemptParams {
60+const params = createParams(sessionFile, workspaceDir);
61+return {
62+ ...params,
63+runtimePlan: buildAgentRuntimePlan({
64+provider: params.provider,
65+modelId: params.modelId,
66+model: params.model,
67+modelApi: params.model.api,
68+harnessId: "codex",
69+harnessRuntime: "codex",
70+config: params.config,
71+ workspaceDir,
72+agentDir: tempDir,
73+thinkingLevel: params.thinkLevel,
74+}),
75+} as EmbeddedRunAttemptParams;
76+}
77+5578function threadStartResult(threadId = "thread-1") {
5679return {
5780thread: {
@@ -364,7 +387,7 @@ describe("runCodexAppServerAttempt", () => {
364387sessionManager.appendMessage(assistantMessage("existing context", Date.now()));
365388const harness = createStartedThreadHarness();
366389367-const params = createParams(sessionFile, workspaceDir);
390+const params = createParamsWithRuntimePlan(sessionFile, workspaceDir);
368391params.onAgentEvent = onRunAgentEvent;
369392const run = runCodexAppServerAttempt(params);
370393await harness.waitForMethod("turn/start");
@@ -460,6 +483,8 @@ describe("runCodexAppServerAttempt", () => {
460483sessionId: "session-1",
461484provider: "codex",
462485model: "gpt-5.4-codex",
486+resolvedRef: "codex/gpt-5.4-codex",
487+harnessId: "codex",
463488assistantTexts: ["hello back"],
464489lastAssistant: expect.objectContaining({
465490role: "assistant",
@@ -675,9 +700,9 @@ describe("runCodexAppServerAttempt", () => {
675700return undefined;
676701});
677702678-await expect(runCodexAppServerAttempt(createParams(sessionFile, workspaceDir))).rejects.toThrow(
679-"turn start exploded",
680-);
703+await expect(
704+runCodexAppServerAttempt(createParamsWithRuntimePlan(sessionFile, workspaceDir)),
705+).rejects.toThrow("turn start exploded");
681706682707await vi.waitFor(() => expect(llmInput).toHaveBeenCalledTimes(1), { interval: 1 });
683708await vi.waitFor(() => expect(llmOutput).toHaveBeenCalledTimes(1), { interval: 1 });
@@ -687,6 +712,8 @@ describe("runCodexAppServerAttempt", () => {
687712assistantTexts: [],
688713model: "gpt-5.4-codex",
689714provider: "codex",
715+resolvedRef: "codex/gpt-5.4-codex",
716+harnessId: "codex",
690717runId: "run-1",
691718sessionId: "session-1",
692719}),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。