Integrate master agent runtime orchestration updates

This commit is contained in:
kris
2026-04-16 04:41:46 +08:00
parent e0c0ea1814
commit 39be49630f
81 changed files with 9283 additions and 448 deletions

View File

@@ -9,6 +9,8 @@ let runtimeRoot = "";
let POST: (typeof import("../src/app/api/v1/projects/[projectId]/messages/route"))["POST"];
let createAuthSession: (typeof import("../src/lib/boss-data"))["createAuthSession"];
let createIndependentGroupChat: (typeof import("../src/lib/boss-data"))["createIndependentGroupChat"];
let saveAiAccount: (typeof import("../src/lib/boss-data"))["saveAiAccount"];
let updateProjectAgentControls: (typeof import("../src/lib/boss-data"))["updateProjectAgentControls"];
let readState: (typeof import("../src/lib/boss-data"))["readState"];
let writeState: (typeof import("../src/lib/boss-data"))["writeState"];
let AUTH_SESSION_COOKIE: string;
@@ -32,6 +34,8 @@ async function setup() {
POST = routePost;
createAuthSession = data.createAuthSession;
createIndependentGroupChat = data.createIndependentGroupChat;
saveAiAccount = data.saveAiAccount;
updateProjectAgentControls = data.updateProjectAgentControls;
readState = data.readState;
writeState = data.writeState;
baseState = structuredClone(await readState());
@@ -151,6 +155,25 @@ async function ensureTwoSingleThreadProjects() {
test("POST /api/v1/projects/[projectId]/messages returns a dispatch plan for group text messages", async () => {
await setup();
await saveAiAccount({
accountId: "master-codex-smart-policy",
label: "主 GPT",
role: "primary",
provider: "master_codex_node",
displayName: "Mac 上的 Master Codex Node",
nodeId: "local-codex-node",
nodeLabel: "本机 Codex",
model: "gpt-5.4-mini",
enabled: true,
setActive: true,
loginStatusNote: "用于深度任务模型策略测试。",
});
await updateProjectAgentControls("master-agent", {
fastModelOverride: "gpt-5.4-mini",
fastReasoningEffortOverride: "low",
smartModelOverride: "gpt-5.4",
smartReasoningEffortOverride: "high",
});
const memberProjects = await ensureTwoSingleThreadProjects();
assert.ok(memberProjects.length >= 2, "expected seeded single-thread projects");
@@ -199,6 +222,8 @@ test("POST /api/v1/projects/[projectId]/messages returns a dispatch plan for gro
1,
"expected group messages to enqueue a master-agent dispatch recommendation task",
);
assert.equal(queuedGroupDispatchTasks[0]?.executionModel, "gpt-5.4");
assert.equal(queuedGroupDispatchTasks[0]?.executionReasoningEffort, "high");
});
test("POST /api/v1/projects/[projectId]/messages keeps dispatchPlan null for single-thread projects", async () => {