@waterwx/dsh-novel-forge 1.0.0 → 1.1.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +231 -206
- package/lib/client.js +55052 -4393
- package/lib/index.js +12013 -2524
- package/lib/types/ai-scan.d.ts +36 -0
- package/lib/types/assets.d.ts +19 -4
- package/lib/types/assistant.d.ts +6 -0
- package/lib/types/author-assets.d.ts +25 -0
- package/lib/types/bookshelf.d.ts +11 -1
- package/lib/types/client/api.d.ts +210 -4
- package/lib/types/client/docx.d.ts +2 -0
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/llmLive.d.ts +33 -0
- package/lib/types/client/locales.d.ts +102 -29
- package/lib/types/client/panel/AdaptModeView.d.ts +5 -0
- package/lib/types/client/panel/AiTag.d.ts +1 -0
- package/lib/types/client/panel/AuthorAssetsView.d.ts +4 -0
- package/lib/types/client/panel/AuthorHome.d.ts +34 -0
- package/lib/types/client/panel/BookAnalysisView.d.ts +4 -0
- package/lib/types/client/panel/CmdPalette.d.ts +12 -0
- package/lib/types/client/panel/CreateBookView.d.ts +13 -0
- package/lib/types/client/panel/DirectorView.d.ts +7 -0
- package/lib/types/client/panel/GlobalAssetLibraryView.d.ts +4 -0
- package/lib/types/client/panel/IdeaInspirationView.d.ts +6 -0
- package/lib/types/client/panel/ImportModal.d.ts +7 -0
- package/lib/types/client/panel/KnowledgeBaseView.d.ts +4 -0
- package/lib/types/client/panel/LiveFeedLog.d.ts +8 -0
- package/lib/types/client/panel/MarketRadarView.d.ts +5 -0
- package/lib/types/client/panel/ModelManager.d.ts +14 -0
- package/lib/types/client/panel/NovelPanel.d.ts +6 -1
- package/lib/types/client/panel/PageHeader.d.ts +18 -0
- package/lib/types/client/panel/ProgressConsole.d.ts +17 -0
- package/lib/types/client/panel/ProgressHomeView.d.ts +5 -0
- package/lib/types/client/panel/ReaderView.d.ts +8 -0
- package/lib/types/client/panel/ReasoningSection.d.ts +10 -0
- package/lib/types/client/panel/RunPanel.d.ts +5 -0
- package/lib/types/client/panel/SettingsView.d.ts +19 -0
- package/lib/types/client/panel/ShelfView.d.ts +24 -0
- package/lib/types/client/panel/SubPage.d.ts +27 -0
- package/lib/types/client/panel/WorldTab.d.ts +10 -0
- package/lib/types/client/panel/helpers.d.ts +10 -0
- package/lib/types/client/panel/toast.d.ts +2 -0
- package/lib/types/client/panel/views.d.ts +95 -0
- package/lib/types/client/run-status.d.ts +19 -0
- package/lib/types/client/text.d.ts +9 -0
- package/lib/types/docx-core.d.ts +16 -0
- package/lib/types/docx.d.ts +2 -3
- package/lib/types/engine.d.ts +228 -5
- package/lib/types/global-assets.d.ts +6 -0
- package/lib/types/index.d.ts +24 -2
- package/lib/types/llm-live.d.ts +44 -0
- package/lib/types/market-radar-scan.d.ts +19 -0
- package/lib/types/market-radar-sources.d.ts +31 -0
- package/lib/types/migrate-output.d.ts +25 -0
- package/lib/types/novel-context.d.ts +80 -0
- package/lib/types/prompt-utils.d.ts +35 -0
- package/lib/types/prompting.d.ts +10 -0
- package/lib/types/protocol.d.ts +1418 -7
- package/lib/types/review-policy.d.ts +97 -0
- package/lib/types/routes.d.ts +4 -0
- package/lib/types/run.d.ts +34 -0
- package/package.json +120 -93
- package/scripts/patch-schemastery.mjs +47 -0
- package/src/ai-scan.ts +179 -0
- package/src/assets.ts +1774 -518
- package/src/assistant.ts +915 -568
- package/src/author-assets.ts +149 -0
- package/src/bookshelf.ts +187 -148
- package/src/client/api.ts +675 -289
- package/src/client/docx.ts +37 -69
- package/src/client/index.ts +3 -1
- package/src/client/llmLive.ts +101 -0
- package/src/client/locales.ts +418 -271
- package/src/client/mount.tsx +1 -1
- package/src/client/panel/AdaptModeView.tsx +535 -0
- package/src/client/panel/AiTag.tsx +7 -0
- package/src/client/panel/AssetsTab.tsx +448 -456
- package/src/client/panel/AssistantTab.tsx +339 -188
- package/src/client/panel/AuthorAssetsView.tsx +206 -0
- package/src/client/panel/AuthorHome.tsx +309 -0
- package/src/client/panel/BookAnalysisView.tsx +63 -0
- package/src/client/panel/CmdPalette.tsx +102 -0
- package/src/client/panel/CreateBookView.tsx +366 -0
- package/src/client/panel/DirectorView.tsx +200 -0
- package/src/client/panel/GlobalAssetLibraryView.tsx +168 -0
- package/src/client/panel/IdeaInspirationView.tsx +76 -0
- package/src/client/panel/ImportModal.tsx +303 -0
- package/src/client/panel/KnowledgeBaseView.tsx +125 -0
- package/src/client/panel/LiveFeedLog.tsx +67 -0
- package/src/client/panel/MarketRadarView.tsx +377 -0
- package/src/client/panel/ModelManager.tsx +205 -0
- package/src/client/panel/NovelPanel.tsx +5374 -2159
- package/src/client/panel/PageHeader.tsx +37 -0
- package/src/client/panel/ProgressConsole.tsx +63 -0
- package/src/client/panel/ReaderView.tsx +306 -0
- package/src/client/panel/ReasoningSection.tsx +31 -0
- package/src/client/panel/RunPanel.tsx +223 -0
- package/src/client/panel/SettingsView.tsx +305 -0
- package/src/client/panel/ShelfView.tsx +266 -0
- package/src/client/panel/SubPage.tsx +42 -0
- package/src/client/panel/WorldTab.tsx +202 -0
- package/src/client/panel/helpers.ts +50 -0
- package/src/client/panel/panel.module.css +5764 -1698
- package/src/client/panel/toast.ts +51 -0
- package/src/client/panel/views.tsx +401 -0
- package/src/client/run-status.ts +143 -0
- package/src/client/sidebar-entry.ts +1 -1
- package/src/client/text.ts +28 -0
- package/src/docx-core.ts +53 -0
- package/src/docx.ts +44 -83
- package/src/engine.ts +4155 -1233
- package/src/global-assets.ts +59 -0
- package/src/index.ts +311 -184
- package/src/llm-live.ts +68 -0
- package/src/market-radar-scan.ts +41 -0
- package/src/market-radar-sources.ts +173 -0
- package/src/migrate-output.ts +76 -0
- package/src/novel-context.ts +286 -0
- package/src/prompting.ts +26 -0
- package/src/protocol.ts +2046 -623
- package/src/review-policy.ts +161 -0
- package/src/routes.ts +3391 -1172
- package/src/run.ts +341 -0
- package/lib/client.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/src/client/panel/BookshelfBar.tsx +0 -170
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 统一上下文组装与相关设定检索
|
|
3
|
+
*
|
|
4
|
+
* 取代各阶段各自拼装 prompt,消除「生成看得到、审稿看不到」的断层。
|
|
5
|
+
* 所有阶段通过 buildChapterContext 获取同一来源的事实与设定。
|
|
6
|
+
*/
|
|
7
|
+
import type { ProjectState, ChapterPlan, StoryBible, RoleRecord, ChapterFact, Foreshadow, Plotline } from './protocol';
|
|
8
|
+
export interface ChapterContext {
|
|
9
|
+
/** 平台合规红线(永远全量) */
|
|
10
|
+
complianceRedLines: string[];
|
|
11
|
+
/** 本书写作红线(永远全量) */
|
|
12
|
+
bookRedLines: string[];
|
|
13
|
+
/** 当前章相关角色卡(全量信息) */
|
|
14
|
+
relevantRoles: Array<{
|
|
15
|
+
name: string;
|
|
16
|
+
role: string;
|
|
17
|
+
traits: string[];
|
|
18
|
+
goals?: string;
|
|
19
|
+
knowledge?: string[];
|
|
20
|
+
}>;
|
|
21
|
+
/** 当前章相关道藏规则 */
|
|
22
|
+
relevantWorldRules: string[];
|
|
23
|
+
/** 活跃剧情线 */
|
|
24
|
+
activePlotlines: Plotline[];
|
|
25
|
+
/** 未回收伏笔 */
|
|
26
|
+
activeForeshadows: Foreshadow[];
|
|
27
|
+
/** 上一章结尾原文 */
|
|
28
|
+
prevChapterTail: string;
|
|
29
|
+
/** 上一章摘要 */
|
|
30
|
+
prevChapterSummary?: string;
|
|
31
|
+
/** 最近事实(近因记忆,top20) */
|
|
32
|
+
recentFacts: string[];
|
|
33
|
+
/** 相关旧事实(按本章 beats 检索,top15) */
|
|
34
|
+
relatedFacts: string[];
|
|
35
|
+
/** 当前卷大纲 */
|
|
36
|
+
currentVolumeOutline: string;
|
|
37
|
+
/** 本章 beats */
|
|
38
|
+
beats: string;
|
|
39
|
+
/** 本章标题 */
|
|
40
|
+
chapterTitle: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ContextBuildOptions {
|
|
43
|
+
/** 阶段:writing/review/revise/polish/plan */
|
|
44
|
+
stage?: 'writing' | 'review' | 'revise' | 'polish' | 'plan';
|
|
45
|
+
/** 是否注入完整角色卡(false 时只注入角色名+定位) */
|
|
46
|
+
fullRoleCards?: boolean;
|
|
47
|
+
/** 相关事实检索上限 */
|
|
48
|
+
relatedFactsLimit?: number;
|
|
49
|
+
/** 最近事实数量 */
|
|
50
|
+
recentFactsLimit?: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 相关事实检索:trigram 重合度 + 角色名命中加权 + 近因加权
|
|
54
|
+
* 从 generateChapterStream 抽取,扩展为通用函数。
|
|
55
|
+
*/
|
|
56
|
+
export declare function retrieveRelatedFacts(facts: ChapterFact[], beatsText: string, roleNames: string[], limit?: number): string[];
|
|
57
|
+
/**
|
|
58
|
+
* 相关角色检索:beats 中出现的角色 + 主角/主要反派永远全量
|
|
59
|
+
*/
|
|
60
|
+
export declare function retrieveRelevantRoles(bible: StoryBible | undefined, roles: RoleRecord[] | undefined, beatsText: string): ChapterContext['relevantRoles'];
|
|
61
|
+
/**
|
|
62
|
+
* 构建章节统一上下文
|
|
63
|
+
*
|
|
64
|
+
* 各阶段调用此函数获取同一来源的事实与设定,消除上下文断层。
|
|
65
|
+
* 检索结果不足时自动回退全量,保证不丢失关键信息。
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildChapterContext(project: ProjectState, chapter: ChapterPlan, outputDir: string, options?: ContextBuildOptions): ChapterContext;
|
|
68
|
+
/**
|
|
69
|
+
* 将上下文渲染为 prompt 文本块
|
|
70
|
+
* 各阶段可按需选择注入哪些块。
|
|
71
|
+
*/
|
|
72
|
+
export declare function renderContextBlocks(ctx: ChapterContext): {
|
|
73
|
+
rolesBlock: string;
|
|
74
|
+
worldRulesBlock: string;
|
|
75
|
+
factsBlock: string;
|
|
76
|
+
plotlinesBlock: string;
|
|
77
|
+
foreshadowsBlock: string;
|
|
78
|
+
continuityBlock: string;
|
|
79
|
+
redLinesBlock: string;
|
|
80
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 提示词共享常量与工具
|
|
3
|
+
*
|
|
4
|
+
* 所有 JSON 输出规则、通用约束集中在此,避免各阶段重复定义、互相打架。
|
|
5
|
+
*/
|
|
6
|
+
/** JSON 输出规则(所有要求模型输出 JSON 的地方共用) */
|
|
7
|
+
export declare const JSON_OUTPUT_RULES: string[];
|
|
8
|
+
/** JSON 输出规则的紧凑版(适合放在提示词末尾) */
|
|
9
|
+
export declare const JSON_OUTPUT_RULES_COMPACT: string;
|
|
10
|
+
/**
|
|
11
|
+
* 估算 prompt 的 token 数(粗略估算,用于上下文预算控制)
|
|
12
|
+
* 中文约 1.7 字/token,英文约 4 字符/token
|
|
13
|
+
*/
|
|
14
|
+
export declare function estimateTokens(text: string): number;
|
|
15
|
+
/**
|
|
16
|
+
* 按 token 预算截断文本(保留开头,末尾加省略标记)
|
|
17
|
+
* 用于控制单块上下文不超预算。
|
|
18
|
+
*/
|
|
19
|
+
export declare function truncateByTokens(text: string, maxTokens: number, marker?: string): string;
|
|
20
|
+
/** 通用「只改表达不改情节」约束(润色/局部修订共用) */
|
|
21
|
+
export declare const EXPRESSION_ONLY_RULE: string[];
|
|
22
|
+
/** 章节上下文各阶段的 token 预算(粗略,用于控制注入量) */
|
|
23
|
+
export declare const CONTEXT_BUDGET: {
|
|
24
|
+
/** 章节生成:道藏+角色+大纲+事实+伏笔 */
|
|
25
|
+
readonly writing: 12000;
|
|
26
|
+
/** AI 审稿:道藏+角色+事实+正文 */
|
|
27
|
+
readonly review: 10000;
|
|
28
|
+
/** 修订:原意见+相关事实+目标正文 */
|
|
29
|
+
readonly revise: 8000;
|
|
30
|
+
/** 润色:风格资产+原正文 */
|
|
31
|
+
readonly polish: 6000;
|
|
32
|
+
/** 分章规划:大纲+道藏+角色+近期事实 */
|
|
33
|
+
readonly plan: 15000;
|
|
34
|
+
};
|
|
35
|
+
export type ContextStage = keyof typeof CONTEXT_BUDGET;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** 章节写作约束:官方 writer 骨架渲染成可附加到现有系统提示词末尾的必达/禁止/自查块。 */
|
|
2
|
+
export declare function renderOfficialChapterWriterSkeleton(meta: {
|
|
3
|
+
targetChars: number;
|
|
4
|
+
minChars: number;
|
|
5
|
+
maxChars: number;
|
|
6
|
+
pov?: string;
|
|
7
|
+
tonePreference?: string;
|
|
8
|
+
endingHookPreference?: string;
|
|
9
|
+
antiAiRules?: string;
|
|
10
|
+
}): string;
|