默认只开主世界层,无转述时直接把原文当终稿呈现。

避免再经转述改写一轮,并让主世界层在关转述时走可见正文协议。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-09 03:06:38 +08:00
co-authored by Cursor
parent 5574b0d08e
commit b871578d59
10 changed files with 96 additions and 38 deletions
+18 -1
View File
@@ -34,8 +34,25 @@ import { synthesizeContextOrderFromWorkers } from "../src/skills/context-order.j
import { DIALOGUE_HISTORY_TAG } from "../src/skills/dialogue-history.js";
describe("play_slots", () => {
it("expands default auditor+gm+narrator", () => {
it("defaults to gm only", () => {
const slots = parsePlaySlots({})!;
expect(slots).toEqual({
auditor: false,
gm: true,
narrator: false,
perspective: false,
chance: false,
});
expect(refsFromPlaySlots(slots)).toEqual(["world-simulator"]);
const workers = expandPlaySlotsToWorkers(slots);
expect(workers.map((w) => w.ref)).toEqual(["world-simulator"]);
expect(workers[0].acceptance).toBe("review");
expect(workers[0].outputs).toEqual(["输出.用户展示"]);
});
it("expands auditor+gm+narrator when all enabled", () => {
const slots = parsePlaySlots({
auditor: true,
gm: true,
narrator: true,
perspective: false,
+7 -1
View File
@@ -118,10 +118,16 @@ describe("shell adaptation from reply-format", () => {
});
describe("play present worker", () => {
it("recognizes narrator and round-present", () => {
it("recognizes narrator, round-present, and solo gm", () => {
expect(isPlayPresentWorker("narrator")).toBe(true);
expect(isPlayPresentWorker("round-present")).toBe(true);
expect(isPlayPresentWorker("world-simulator")).toBe(false);
expect(
isPlayPresentWorker("world-simulator", { narratorEnabled: false }),
).toBe(true);
expect(
isPlayPresentWorker("world-simulator", { narratorEnabled: true }),
).toBe(false);
});
it("fallback packet uses the given shell", () => {