Files
codex-market-app/test/team-routing.test.js
T

74 lines
2.3 KiB
JavaScript

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: "",
});
});