feat: adapt codex app-server protocol updates

This commit is contained in:
AI Bot
2026-05-31 03:25:30 +08:00
parent e1aed590f8
commit b9d3cca2e7
820 changed files with 108070 additions and 71 deletions

View File

@@ -105,6 +105,7 @@ process.exit(0);
await chmod(fakeCodexPath, 0o755);
const completeBodies = [];
const progressBodies = [];
let claimCount = 0;
const controlPlane = createServer(async (request, response) => {
const url = request.url || "";
@@ -134,6 +135,15 @@ process.exit(0);
);
return;
}
if (
request.method === "POST" &&
url === "/api/v1/master-agent/tasks/conversation-app-server-task/progress"
) {
progressBodies.push(await readJsonBody(request));
response.writeHead(200, { "content-type": "application/json" });
response.end(JSON.stringify({ ok: true }));
return;
}
if (
request.method === "POST" &&
url === "/api/v1/master-agent/tasks/conversation-app-server-task/complete"
@@ -201,6 +211,7 @@ process.exit(0);
cwd: repoRoot,
env: {
...process.env,
BOSS_CODEX_APP_SERVER_FIXTURE_EMIT_PROGRESS: "1",
PATH: `${fakeBinDir}${path.delimiter}${process.env.PATH || ""}`,
},
stdio: ["ignore", "pipe", "pipe"],
@@ -212,6 +223,16 @@ process.exit(0);
assert.equal(body.status, "completed");
assert.equal(body.replyBody, "APP_SERVER_REPLY:用 app server 回复");
assert.notEqual(body.replyBody, "CLI_FALLBACK_USED");
assert.ok(progressBodies.length >= 1, "expected local-agent to stream app-server progress before completion");
assert.equal(progressBodies[0].status, "running");
assert.equal(progressBodies[0].executionProgress.steps[0].text, "读取 Codex 官方 app-server 协议");
assert.ok(
progressBodies.some((progress) => progress.executionProgress?.branch?.additions === 181),
"expected one streamed progress update to include diff stats",
);
assert.equal(body.executionProgress.steps[0].text, "读取 Codex 官方 app-server 协议");
assert.equal(body.executionProgress.branch.additions, 181);
assert.equal(body.executionProgress.artifacts[0].label, "codex-app-server-protocol-0.135.0.json");
} finally {
child.kill("SIGTERM");
await new Promise((resolve) => {