会话与前端接上听书、呈现投影、请求轮廓和旁观气泡偏好。

新建作品可选听书连载,朗读与消费进度走专用接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-07 23:49:44 +08:00
co-authored by Cursor
parent cf6cb68429
commit 66ed1eaca8
21 changed files with 2395 additions and 357 deletions
+1
View File
@@ -18,6 +18,7 @@ describe("display-labels", () => {
it("maps creation intake modes and recipe display names", () => {
expect(displayCreationModeLabel("recipe")).toBe("工序编排");
expect(displayCreationModeLabel("dictate")).toBe("对话落盘");
expect(displayCreationModeLabel("listen_serial")).toBe("听书连载");
expect(displaySkillPackLabel("world-simulator")).toBe("回合推演");
expect(displaySkillPackLabel("快穿短局")).toBe("快穿短局");
});
+53
View File
@@ -0,0 +1,53 @@
import { describe, expect, it, beforeEach, afterEach } from "vitest";
import {
applyPlayAuxLlmBubbles,
isPlayAuxLlmBubblesEnabled,
isPlayAuxLlmOutput,
} from "../web/feed-prefs.js";
describe("play aux LLM bubbles", () => {
beforeEach(() => {
applyPlayAuxLlmBubbles(false);
});
afterEach(() => {
applyPlayAuxLlmBubbles(false);
});
it("stores the more-menu preference", () => {
expect(isPlayAuxLlmBubblesEnabled()).toBe(false);
applyPlayAuxLlmBubbles(true);
expect(isPlayAuxLlmBubblesEnabled()).toBe(true);
});
it("treats auditor worker_output as aux and world-simulator as main", () => {
const play = { lifecycleStage: "play" };
expect(
isPlayAuxLlmOutput(
{ role: "assistant", kind: "worker_output", actor: "auditor" },
play,
),
).toBe(true);
expect(
isPlayAuxLlmOutput(
{
role: "assistant",
kind: "worker_output",
actor: "world-simulator",
title: "主世界层 · 产出",
},
play,
),
).toBe(false);
expect(
isPlayAuxLlmOutput(
{
role: "assistant",
kind: "worker_output",
actor: "narrator",
title: "叙事转述 · 产出",
},
play,
),
).toBe(false);
});
});