fix: Codex 自动压缩不触发 —— 接管时链接模型目录(绝对路径)进 config.toml (hot 1.5.83)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert/strict");
|
||||
const Module = require("node:module");
|
||||
|
||||
function loadTeam() {
|
||||
const originalLoad = Module._load;
|
||||
Module._load = function load(request, parent, isMain) {
|
||||
if (request === "electron") {
|
||||
return {
|
||||
app: { getPath: () => "/tmp/codex-market-team-test" },
|
||||
safeStorage: { isEncryptionAvailable: () => false },
|
||||
};
|
||||
}
|
||||
return originalLoad.call(this, request, parent, isMain);
|
||||
};
|
||||
try {
|
||||
delete require.cache[require.resolve("../electron/lib/team")];
|
||||
delete require.cache[require.resolve("../electron/lib/router")];
|
||||
return require("../electron/lib/team");
|
||||
} finally {
|
||||
Module._load = originalLoad;
|
||||
}
|
||||
}
|
||||
|
||||
test("team package keeps generation and runtime models separate", () => {
|
||||
const team = loadTeam();
|
||||
const files = team.packFiles({
|
||||
project_name: "model-routing",
|
||||
employees: [{
|
||||
id: "worker",
|
||||
name: "执行 Agent",
|
||||
duty: "实现与测试",
|
||||
model: "deepseek-v4-flash",
|
||||
responsibilities: [],
|
||||
constraints: [],
|
||||
owner_paths: [],
|
||||
review_paths: [],
|
||||
allowed_paths: ["**"],
|
||||
collaborators: [],
|
||||
}],
|
||||
orchestrator: {
|
||||
id: "orchestrator",
|
||||
name: "总控 Agent",
|
||||
duty: "调度与验收",
|
||||
model: "gpt-5.6-luna",
|
||||
responsibilities: [],
|
||||
constraints: [],
|
||||
owner_paths: [],
|
||||
review_paths: ["**"],
|
||||
allowed_paths: [],
|
||||
workflow: [],
|
||||
},
|
||||
model_routing: {
|
||||
generation_model: "gpt-5.4-mini",
|
||||
orchestrator_model: "gpt-5.6-luna",
|
||||
worker_model: "deepseek-v4-flash",
|
||||
},
|
||||
}, "codex");
|
||||
|
||||
const orchestrator = files.find((file) => file.path === "agents/_orchestrator.toml").content;
|
||||
const worker = files.find((file) => file.path === "agents/worker.toml").content;
|
||||
const manifest = JSON.parse(files.find((file) => file.path === "agent-manifest.json").content);
|
||||
assert.match(orchestrator, /model = "gpt-5\.6-luna"/);
|
||||
assert.match(worker, /model = "deepseek-v4-flash"/);
|
||||
assert.match(worker, /TD_MODEL_ROUTE model="deepseek-v4-flash" role="worker" agent="worker"/);
|
||||
assert.doesNotMatch(orchestrator, /gpt-5\.4-mini/);
|
||||
assert.deepEqual(manifest.model_routing, {
|
||||
generation: "gpt-5.4-mini",
|
||||
orchestrator: "gpt-5.6-luna",
|
||||
workers: ["deepseek-v4-flash"],
|
||||
capability_policy: "",
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user