feat: expose codex fs command governance
This commit is contained in:
@@ -65,6 +65,19 @@ if (args[0] === "app-server" && args[1] === "generate-json-schema") {
|
||||
{ properties: { method: { const: "config/batchWrite" } } },
|
||||
{ properties: { method: { const: "config/mcpServer/reload" } } },
|
||||
{ properties: { method: { const: "skills/config/write" } } },
|
||||
{ properties: { method: { const: "command/exec" } } },
|
||||
{ properties: { method: { const: "command/exec/write" } } },
|
||||
{ properties: { method: { const: "command/exec/resize" } } },
|
||||
{ properties: { method: { const: "command/exec/terminate" } } },
|
||||
{ properties: { method: { const: "fs/readFile" } } },
|
||||
{ properties: { method: { const: "fs/readDirectory" } } },
|
||||
{ properties: { method: { const: "fs/getMetadata" } } },
|
||||
{ properties: { method: { const: "fs/writeFile" } } },
|
||||
{ properties: { method: { const: "fs/createDirectory" } } },
|
||||
{ properties: { method: { const: "fs/remove" } } },
|
||||
{ properties: { method: { const: "fs/copy" } } },
|
||||
{ properties: { method: { const: "fs/watch" } } },
|
||||
{ properties: { method: { const: "fs/unwatch" } } },
|
||||
{ properties: { method: { const: "skills/extraRoots/set" } } },
|
||||
{ properties: { method: { const: "hooks/list" } } },
|
||||
{ properties: { method: { const: "turn/interrupt" } } },
|
||||
@@ -132,6 +145,13 @@ process.exit(2);
|
||||
assert.equal(manifest.supports.configBatchWrite, true);
|
||||
assert.equal(manifest.supports.configMcpServerReload, true);
|
||||
assert.equal(manifest.supports.skillsConfigWrite, true);
|
||||
assert.equal(manifest.supports.commandExec, true);
|
||||
assert.equal(manifest.supports.commandExecWrite, true);
|
||||
assert.equal(manifest.supports.commandExecResize, true);
|
||||
assert.equal(manifest.supports.commandExecTerminate, true);
|
||||
assert.equal(manifest.supports.fsRead, true);
|
||||
assert.equal(manifest.supports.fsWrite, true);
|
||||
assert.equal(manifest.supports.fsWatch, true);
|
||||
assert.deepEqual(manifest.methods, [
|
||||
"account/chatgptAuthTokens/refresh",
|
||||
"account/login/cancel",
|
||||
@@ -139,9 +159,22 @@ process.exit(2);
|
||||
"account/login/start",
|
||||
"account/logout",
|
||||
"account/sendAddCreditsNudgeEmail",
|
||||
"command/exec",
|
||||
"command/exec/resize",
|
||||
"command/exec/terminate",
|
||||
"command/exec/write",
|
||||
"config/batchWrite",
|
||||
"config/mcpServer/reload",
|
||||
"config/value/write",
|
||||
"fs/copy",
|
||||
"fs/createDirectory",
|
||||
"fs/getMetadata",
|
||||
"fs/readDirectory",
|
||||
"fs/readFile",
|
||||
"fs/remove",
|
||||
"fs/unwatch",
|
||||
"fs/watch",
|
||||
"fs/writeFile",
|
||||
"hooks/list",
|
||||
"plugin/install",
|
||||
"plugin/read",
|
||||
|
||||
@@ -189,6 +189,24 @@ test("device detail exposes Codex App Server discovered model and extension summ
|
||||
userInitiatedOnly: true,
|
||||
labels: ["配置读取", "单项写入", "批量写入", "MCP 重载", "Skill 配置"],
|
||||
},
|
||||
fileSystemGovernanceSummary: {
|
||||
actionCount: 9,
|
||||
readActionCount: 3,
|
||||
writeActionCount: 3,
|
||||
destructiveActionCount: 1,
|
||||
watchActionCount: 2,
|
||||
userInitiatedOnly: true,
|
||||
labels: ["读取文件", "读取目录", "元数据", "写入文件", "创建目录", "复制", "删除", "监听", "取消监听"],
|
||||
},
|
||||
commandSessionSummary: {
|
||||
actionCount: 5,
|
||||
controlActionCount: 3,
|
||||
streamAvailable: true,
|
||||
terminationAvailable: true,
|
||||
sandboxedCommandAvailable: true,
|
||||
userInitiatedOnly: true,
|
||||
labels: ["执行命令", "写入 stdin", "调整 PTY", "终止命令", "输出流"],
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -211,6 +229,8 @@ test("device detail exposes Codex App Server discovered model and extension summ
|
||||
assert.equal(cards.capabilities.items.codexPluginGovernance, "插件治理:9 项 · 安装/卸载 2 项 · 共享 4 项 · Skill 读取可用");
|
||||
assert.equal(cards.capabilities.items.codexAccountGovernance, "账号治理:6 项 · 登录 3 项 · 令牌刷新可用 · 额度提醒可用");
|
||||
assert.equal(cards.capabilities.items.codexConfigGovernance, "配置治理:5 项 · 写入 3 项 · 重载 1 项 · 读取可用");
|
||||
assert.equal(cards.capabilities.items.codexFileSystemGovernance, "文件治理:9 项 · 读 3 项 · 写 3 项 · 监听 2 项");
|
||||
assert.equal(cards.capabilities.items.codexCommandSession, "命令会话:5 项 · 控制 3 项 · 输出流可用 · 可终止");
|
||||
});
|
||||
|
||||
test("device detail exposes folder and project conflict skeleton from workspace policy", async () => {
|
||||
|
||||
@@ -149,6 +149,24 @@ test("codex app-server discovery includes governance and MCP summaries without l
|
||||
userInitiatedOnly: true,
|
||||
labels: ["配置读取", "单项写入", "批量写入", "MCP 重载", "Skill 配置"],
|
||||
});
|
||||
assert.deepEqual(metadata.fileSystemGovernanceSummary, {
|
||||
actionCount: 9,
|
||||
readActionCount: 3,
|
||||
writeActionCount: 3,
|
||||
destructiveActionCount: 1,
|
||||
watchActionCount: 2,
|
||||
userInitiatedOnly: true,
|
||||
labels: ["读取文件", "读取目录", "元数据", "写入文件", "创建目录", "复制", "删除", "监听", "取消监听"],
|
||||
});
|
||||
assert.deepEqual(metadata.commandSessionSummary, {
|
||||
actionCount: 5,
|
||||
controlActionCount: 3,
|
||||
streamAvailable: true,
|
||||
terminationAvailable: true,
|
||||
sandboxedCommandAvailable: true,
|
||||
userInitiatedOnly: true,
|
||||
labels: ["执行命令", "写入 stdin", "调整 PTY", "终止命令", "输出流"],
|
||||
});
|
||||
|
||||
const serialized = JSON.stringify(metadata);
|
||||
assert.equal(serialized.includes("sk-secret-should-not-leak"), false);
|
||||
|
||||
Reference in New Issue
Block a user