引入游玩回合与开场收口,抽出可替换 agent 司机并支持运行中止;完善预设洞位、世界书拼装与试跑,并打磨会话运行时与 Web 交互。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-24 01:13:48 +08:00
co-authored by Cursor
parent ec474cb946
commit b82da4c5a5
95 changed files with 6781 additions and 1344 deletions
+31 -2
View File
@@ -17,7 +17,7 @@ describe("resolveAcceptanceModeForWorker", () => {
expect(mode).toBe("user_confirmed");
});
it("maps review → user_confirmed and continue → no_confirmation", () => {
it("maps review → user_confirmed and continue → no_confirmation in design", () => {
const bb = new Blackboard();
const yaml = JSON.stringify({
version: 1,
@@ -32,7 +32,7 @@ describe("resolveAcceptanceModeForWorker", () => {
slots: {
...createSession().slots,
designInstanceReady: true,
uiLifecycleStage: "play",
uiLifecycleStage: "design",
},
};
@@ -51,6 +51,34 @@ describe("resolveAcceptanceModeForWorker", () => {
}),
).toBe("user_confirmed");
});
it("play ignores worker-set review and auto-continues", () => {
const bb = new Blackboard();
bb.write({
tag: "设计.worker集",
content: JSON.stringify({
version: 1,
workers: [{ ref: "narrator", acceptance: "review" }],
}),
source: "test",
});
const session = {
...createSession(),
slots: {
...createSession().slots,
designInstanceReady: true,
uiLifecycleStage: "play",
playLayerActive: true,
},
};
expect(
resolveAcceptanceModeForWorker({
session,
blackboard: bb,
workerId: "narrator",
}),
).toBe("no_confirmation");
});
});
describe("buildDeclaredWorkerSkill", () => {
@@ -92,5 +120,6 @@ describe("buildDeclaredWorkerSkill", () => {
expect(promptBody).toContain("残酷但不虐主");
expect(promptBody).toContain("主角免疫");
expect(promptBody).toContain("声明驱动");
expect(promptBody).toContain("500~2000");
});
});