主世界层直接写正文,转述与旁观改读用户展示输出。

去掉裁决包主路径,让无转述时可直出终稿、有转述时再改写镶壳。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-10 02:18:14 +08:00
co-authored by Cursor
parent d65ebbce8b
commit 3d720f23fe
27 changed files with 290 additions and 216 deletions
+13 -3
View File
@@ -5,6 +5,8 @@ import {
parseShellAdaptationFromReplyFormat,
presentFromPlainText,
presentOutputFromFallback,
isPlayFinalVisibleWorker,
isPlayGmBodyWorker,
isPlayPresentWorker,
shellDefaultRegions,
} from "../src/skills/present-packet.js";
@@ -118,16 +120,24 @@ describe("shell adaptation from reply-format", () => {
});
describe("play present worker", () => {
it("recognizes narrator, round-present, and solo gm", () => {
it("structured present only for narrator / round-present", () => {
expect(isPlayPresentWorker("narrator")).toBe(true);
expect(isPlayPresentWorker("round-present")).toBe(true);
expect(isPlayPresentWorker("world-simulator")).toBe(false);
});
it("gm body worker and final visible roles", () => {
expect(isPlayGmBodyWorker("world-simulator")).toBe(true);
expect(isPlayGmBodyWorker("narrator")).toBe(false);
expect(
isPlayPresentWorker("world-simulator", { narratorEnabled: false }),
isPlayFinalVisibleWorker("world-simulator", { narratorEnabled: false }),
).toBe(true);
expect(
isPlayPresentWorker("world-simulator", { narratorEnabled: true }),
isPlayFinalVisibleWorker("world-simulator", { narratorEnabled: true }),
).toBe(false);
expect(
isPlayFinalVisibleWorker("narrator", { narratorEnabled: true }),
).toBe(true);
});
it("fallback packet uses the given shell", () => {