feat: expose codex stream delta events

This commit is contained in:
AI Bot
2026-06-03 12:37:23 +08:00
parent b31238b6e2
commit bc9a586e81
12 changed files with 112 additions and 7 deletions

View File

@@ -72,6 +72,7 @@ if (args[0] === "app-server" && args[1] === "generate-json-schema") {
{ properties: { method: { const: "config/mcpServer/reload" } } },
{ properties: { method: { const: "skills/config/write" } } },
{ properties: { method: { const: "command/exec" } } },
{ properties: { method: { const: "command/exec/outputDelta" } } },
{ properties: { method: { const: "command/exec/write" } } },
{ properties: { method: { const: "command/exec/resize" } } },
{ properties: { method: { const: "command/exec/terminate" } } },
@@ -103,6 +104,14 @@ if (args[0] === "app-server" && args[1] === "generate-json-schema") {
{ properties: { method: { const: "mcpServer/resource/read" } } },
{ properties: { method: { const: "mcpServer/tool/call" } } },
{ properties: { method: { const: "mcpServer/elicitation/request" } } },
{ properties: { method: { const: "item/agentMessage/delta" } } },
{ properties: { method: { const: "item/plan/delta" } } },
{ properties: { method: { const: "item/reasoning/summaryPartAdded" } } },
{ properties: { method: { const: "item/reasoning/summaryTextDelta" } } },
{ properties: { method: { const: "item/reasoning/textDelta" } } },
{ properties: { method: { const: "item/mcpToolCall/progress" } } },
{ properties: { method: { const: "item/commandExecution/terminalInteraction" } } },
{ properties: { method: { const: "item/fileChange/outputDelta" } } },
{ properties: { method: { const: "item/tool/requestUserInput" } } },
{ properties: { method: { const: "item/permissions/requestApproval" } } },
{ properties: { method: { const: "process/outputDelta" } } },
@@ -205,6 +214,13 @@ process.exit(2);
assert.equal(manifest.supports.skillsChanged, true);
assert.equal(manifest.supports.pluginInstalledNotification, true);
assert.equal(manifest.supports.threadLifecycleEvents, true);
assert.equal(manifest.supports.agentMessageDelta, true);
assert.equal(manifest.supports.planDelta, true);
assert.equal(manifest.supports.reasoningDeltas, true);
assert.equal(manifest.supports.mcpToolProgress, true);
assert.equal(manifest.supports.commandOutputDeltas, true);
assert.equal(manifest.supports.terminalInteraction, true);
assert.equal(manifest.supports.fileChangeOutputDelta, true);
assert.deepEqual(manifest.methods, [
"account/chatgptAuthTokens/refresh",
"account/login/cancel",
@@ -213,6 +229,7 @@ process.exit(2);
"account/logout",
"account/sendAddCreditsNudgeEmail",
"command/exec",
"command/exec/outputDelta",
"command/exec/resize",
"command/exec/terminate",
"command/exec/write",
@@ -236,7 +253,15 @@ process.exit(2);
"fuzzyFileSearch/sessionCompleted",
"fuzzyFileSearch/sessionUpdated",
"hooks/list",
"item/agentMessage/delta",
"item/commandExecution/terminalInteraction",
"item/fileChange/outputDelta",
"item/mcpToolCall/progress",
"item/permissions/requestApproval",
"item/plan/delta",
"item/reasoning/summaryPartAdded",
"item/reasoning/summaryTextDelta",
"item/reasoning/textDelta",
"item/tool/requestUserInput",
"marketplace/add",
"marketplace/remove",

View File

@@ -293,6 +293,15 @@ test("device detail exposes Codex App Server discovered model and extension summ
notificationOnly: true,
labels: ["线程启动", "线程关闭", "已归档", "已恢复", "改名完成"],
},
streamDeltaEventSummary: {
eventCount: 9,
reasoningDeltaEventCount: 3,
commandStreamEventCount: 2,
toolProgressEventAvailable: true,
fileChangeOutputEventAvailable: true,
notificationOnly: true,
labels: ["Agent 增量", "计划增量", "思考新增", "思考文本", "原始思考", "MCP 进度", "命令输出", "终端交互", "文件输出"],
},
},
},
};
@@ -329,6 +338,7 @@ test("device detail exposes Codex App Server discovered model and extension summ
assert.equal(cards.capabilities.items.codexRuntimeEvents, "运行事件3 项 · 进程 2 项 · 原始响应可用");
assert.equal(cards.capabilities.items.codexExtensionEvents, "扩展事件2 项 · Skill 变更可用 · 插件安装可用");
assert.equal(cards.capabilities.items.codexThreadLifecycleEvents, "线程生命周期5 项 · 归档 2 项 · 改名可用 · 关闭可用");
assert.equal(cards.capabilities.items.codexStreamDeltaEvents, "流式增量9 项 · 思考 3 项 · 命令 2 项 · MCP 进度可用 · 文件输出可用");
});
test("device detail exposes folder and project conflict skeleton from workspace policy", async () => {

View File

@@ -253,6 +253,15 @@ test("codex app-server discovery includes governance and MCP summaries without l
notificationOnly: true,
labels: ["线程启动", "线程关闭", "已归档", "已恢复", "改名完成"],
});
assert.deepEqual(metadata.streamDeltaEventSummary, {
eventCount: 9,
reasoningDeltaEventCount: 3,
commandStreamEventCount: 2,
toolProgressEventAvailable: true,
fileChangeOutputEventAvailable: true,
notificationOnly: true,
labels: ["Agent 增量", "计划增量", "思考新增", "思考文本", "原始思考", "MCP 进度", "命令输出", "终端交互", "文件输出"],
});
const serialized = JSON.stringify(metadata);
assert.equal(serialized.includes("sk-secret-should-not-leak"), false);