@actalk/inkos-core 1.0.2 → 1.1.0

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.
Files changed (159) hide show
  1. package/dist/agents/architect.d.ts +4 -2
  2. package/dist/agents/architect.d.ts.map +1 -1
  3. package/dist/agents/architect.js +59 -13
  4. package/dist/agents/architect.js.map +1 -1
  5. package/dist/agents/chapter-analyzer.js +2 -2
  6. package/dist/agents/composer.d.ts +8 -0
  7. package/dist/agents/composer.d.ts.map +1 -1
  8. package/dist/agents/composer.js +170 -5
  9. package/dist/agents/composer.js.map +1 -1
  10. package/dist/agents/continuity.js +8 -8
  11. package/dist/agents/continuity.js.map +1 -1
  12. package/dist/agents/fanfic-canon-importer.d.ts +1 -0
  13. package/dist/agents/fanfic-canon-importer.d.ts.map +1 -1
  14. package/dist/agents/fanfic-canon-importer.js +19 -1
  15. package/dist/agents/fanfic-canon-importer.js.map +1 -1
  16. package/dist/agents/foundation-reviewer.d.ts +29 -0
  17. package/dist/agents/foundation-reviewer.d.ts.map +1 -0
  18. package/dist/agents/foundation-reviewer.js +153 -0
  19. package/dist/agents/foundation-reviewer.js.map +1 -0
  20. package/dist/agents/planner.d.ts +15 -0
  21. package/dist/agents/planner.d.ts.map +1 -1
  22. package/dist/agents/planner.js +247 -36
  23. package/dist/agents/planner.js.map +1 -1
  24. package/dist/agents/post-write-validator.d.ts +3 -1
  25. package/dist/agents/post-write-validator.d.ts.map +1 -1
  26. package/dist/agents/post-write-validator.js +165 -12
  27. package/dist/agents/post-write-validator.js.map +1 -1
  28. package/dist/agents/settler-prompts.d.ts +1 -0
  29. package/dist/agents/settler-prompts.d.ts.map +1 -1
  30. package/dist/agents/settler-prompts.js +8 -1
  31. package/dist/agents/settler-prompts.js.map +1 -1
  32. package/dist/agents/writer-prompts.js +10 -4
  33. package/dist/agents/writer-prompts.js.map +1 -1
  34. package/dist/agents/writer.d.ts +15 -0
  35. package/dist/agents/writer.d.ts.map +1 -1
  36. package/dist/agents/writer.js +181 -15
  37. package/dist/agents/writer.js.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/llm/provider.d.ts.map +1 -1
  43. package/dist/llm/provider.js +25 -1
  44. package/dist/llm/provider.js.map +1 -1
  45. package/dist/models/chapter.d.ts +4 -4
  46. package/dist/models/chapter.d.ts.map +1 -1
  47. package/dist/models/chapter.js +1 -0
  48. package/dist/models/chapter.js.map +1 -1
  49. package/dist/models/input-governance.d.ts +165 -0
  50. package/dist/models/input-governance.d.ts.map +1 -1
  51. package/dist/models/input-governance.js +34 -0
  52. package/dist/models/input-governance.js.map +1 -1
  53. package/dist/models/project.d.ts +8 -0
  54. package/dist/models/project.d.ts.map +1 -1
  55. package/dist/models/project.js +1 -0
  56. package/dist/models/project.js.map +1 -1
  57. package/dist/models/runtime-state.d.ts +30 -0
  58. package/dist/models/runtime-state.d.ts.map +1 -1
  59. package/dist/models/runtime-state.js +9 -0
  60. package/dist/models/runtime-state.js.map +1 -1
  61. package/dist/pipeline/chapter-persistence.d.ts +33 -0
  62. package/dist/pipeline/chapter-persistence.d.ts.map +1 -0
  63. package/dist/pipeline/chapter-persistence.js +35 -0
  64. package/dist/pipeline/chapter-persistence.js.map +1 -0
  65. package/dist/pipeline/chapter-review-cycle.d.ts +79 -0
  66. package/dist/pipeline/chapter-review-cycle.d.ts.map +1 -0
  67. package/dist/pipeline/chapter-review-cycle.js +97 -0
  68. package/dist/pipeline/chapter-review-cycle.js.map +1 -0
  69. package/dist/pipeline/chapter-state-recovery.d.ts +59 -0
  70. package/dist/pipeline/chapter-state-recovery.d.ts.map +1 -0
  71. package/dist/pipeline/chapter-state-recovery.js +132 -0
  72. package/dist/pipeline/chapter-state-recovery.js.map +1 -0
  73. package/dist/pipeline/chapter-truth-validation.d.ts +41 -0
  74. package/dist/pipeline/chapter-truth-validation.d.ts.map +1 -0
  75. package/dist/pipeline/chapter-truth-validation.js +67 -0
  76. package/dist/pipeline/chapter-truth-validation.js.map +1 -0
  77. package/dist/pipeline/persisted-governed-plan.d.ts +4 -0
  78. package/dist/pipeline/persisted-governed-plan.d.ts.map +1 -0
  79. package/dist/pipeline/persisted-governed-plan.js +85 -0
  80. package/dist/pipeline/persisted-governed-plan.js.map +1 -0
  81. package/dist/pipeline/runner.d.ts +10 -7
  82. package/dist/pipeline/runner.d.ts.map +1 -1
  83. package/dist/pipeline/runner.js +459 -283
  84. package/dist/pipeline/runner.js.map +1 -1
  85. package/dist/state/manager.d.ts +8 -0
  86. package/dist/state/manager.d.ts.map +1 -1
  87. package/dist/state/manager.js +106 -9
  88. package/dist/state/manager.js.map +1 -1
  89. package/dist/state/memory-db.d.ts +2 -0
  90. package/dist/state/memory-db.d.ts.map +1 -1
  91. package/dist/state/memory-db.js +13 -2
  92. package/dist/state/memory-db.js.map +1 -1
  93. package/dist/state/runtime-state-store.d.ts.map +1 -1
  94. package/dist/state/runtime-state-store.js +1 -0
  95. package/dist/state/runtime-state-store.js.map +1 -1
  96. package/dist/state/state-bootstrap.d.ts +2 -5
  97. package/dist/state/state-bootstrap.d.ts.map +1 -1
  98. package/dist/state/state-bootstrap.js +61 -141
  99. package/dist/state/state-bootstrap.js.map +1 -1
  100. package/dist/state/state-projections.d.ts.map +1 -1
  101. package/dist/state/state-projections.js +6 -4
  102. package/dist/state/state-projections.js.map +1 -1
  103. package/dist/state/state-reducer.d.ts.map +1 -1
  104. package/dist/state/state-reducer.js +6 -0
  105. package/dist/state/state-reducer.js.map +1 -1
  106. package/dist/utils/cadence-policy.d.ts +36 -0
  107. package/dist/utils/cadence-policy.d.ts.map +1 -0
  108. package/dist/utils/cadence-policy.js +38 -0
  109. package/dist/utils/cadence-policy.js.map +1 -0
  110. package/dist/utils/chapter-cadence.d.ts +34 -0
  111. package/dist/utils/chapter-cadence.d.ts.map +1 -0
  112. package/dist/utils/chapter-cadence.js +142 -0
  113. package/dist/utils/chapter-cadence.js.map +1 -0
  114. package/dist/utils/context-filter.d.ts +2 -2
  115. package/dist/utils/context-filter.d.ts.map +1 -1
  116. package/dist/utils/context-filter.js +3 -2
  117. package/dist/utils/context-filter.js.map +1 -1
  118. package/dist/utils/governed-context.d.ts +4 -0
  119. package/dist/utils/governed-context.d.ts.map +1 -1
  120. package/dist/utils/governed-context.js +20 -0
  121. package/dist/utils/governed-context.js.map +1 -1
  122. package/dist/utils/governed-working-set.d.ts.map +1 -1
  123. package/dist/utils/governed-working-set.js +2 -1
  124. package/dist/utils/governed-working-set.js.map +1 -1
  125. package/dist/utils/hook-agenda.d.ts +21 -0
  126. package/dist/utils/hook-agenda.d.ts.map +1 -0
  127. package/dist/utils/hook-agenda.js +95 -0
  128. package/dist/utils/hook-agenda.js.map +1 -0
  129. package/dist/utils/hook-arbiter.d.ts.map +1 -1
  130. package/dist/utils/hook-arbiter.js +7 -0
  131. package/dist/utils/hook-arbiter.js.map +1 -1
  132. package/dist/utils/hook-governance.d.ts +2 -0
  133. package/dist/utils/hook-governance.d.ts.map +1 -1
  134. package/dist/utils/hook-governance.js +19 -3
  135. package/dist/utils/hook-governance.js.map +1 -1
  136. package/dist/utils/hook-health.d.ts +1 -0
  137. package/dist/utils/hook-health.d.ts.map +1 -1
  138. package/dist/utils/hook-health.js +85 -26
  139. package/dist/utils/hook-health.js.map +1 -1
  140. package/dist/utils/hook-lifecycle.d.ts +34 -0
  141. package/dist/utils/hook-lifecycle.d.ts.map +1 -0
  142. package/dist/utils/hook-lifecycle.js +125 -0
  143. package/dist/utils/hook-lifecycle.js.map +1 -0
  144. package/dist/utils/hook-policy.d.ts +74 -0
  145. package/dist/utils/hook-policy.d.ts.map +1 -0
  146. package/dist/utils/hook-policy.js +126 -0
  147. package/dist/utils/hook-policy.js.map +1 -0
  148. package/dist/utils/long-span-fatigue.d.ts.map +1 -1
  149. package/dist/utils/long-span-fatigue.js +75 -28
  150. package/dist/utils/long-span-fatigue.js.map +1 -1
  151. package/dist/utils/memory-retrieval.d.ts +2 -16
  152. package/dist/utils/memory-retrieval.d.ts.map +1 -1
  153. package/dist/utils/memory-retrieval.js +14 -269
  154. package/dist/utils/memory-retrieval.js.map +1 -1
  155. package/dist/utils/story-markdown.d.ts +13 -0
  156. package/dist/utils/story-markdown.d.ts.map +1 -0
  157. package/dist/utils/story-markdown.js +218 -0
  158. package/dist/utils/story-markdown.js.map +1 -0
  159. package/package.json +1 -1
@@ -9,7 +9,7 @@ export interface ArchitectOutput {
9
9
  }
10
10
  export declare class ArchitectAgent extends BaseAgent {
11
11
  get name(): string;
12
- generateFoundation(book: BookConfig, externalContext?: string): Promise<ArchitectOutput>;
12
+ generateFoundation(book: BookConfig, externalContext?: string, reviewFeedback?: string): Promise<ArchitectOutput>;
13
13
  writeFoundationFiles(bookDir: string, output: ArchitectOutput, numericalSystem?: boolean, language?: "zh" | "en"): Promise<void>;
14
14
  /**
15
15
  * Reverse-engineer foundation from existing chapters.
@@ -17,8 +17,10 @@ export declare class ArchitectAgent extends BaseAgent {
17
17
  * volume_outline, book_rules, current_state, and pending_hooks.
18
18
  */
19
19
  generateFoundationFromImport(book: BookConfig, chaptersText: string, externalContext?: string): Promise<ArchitectOutput>;
20
- generateFanficFoundation(book: BookConfig, fanficCanon: string, fanficMode: FanficMode): Promise<ArchitectOutput>;
20
+ generateFanficFoundation(book: BookConfig, fanficCanon: string, fanficMode: FanficMode, reviewFeedback?: string): Promise<ArchitectOutput>;
21
+ private buildReviewFeedbackBlock;
21
22
  private parseSections;
23
+ private normalizeSectionName;
22
24
  private stripTrailingAssistantCoda;
23
25
  private normalizePendingHooksSection;
24
26
  private parseHookChapterNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAkQxF,oBAAoB,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,eAAe,EACvB,eAAe,GAAE,OAAc,EAC/B,QAAQ,GAAE,IAAI,GAAG,IAAW,GAC3B,OAAO,CAAC,IAAI,CAAC;IAoDhB;;;;OAIG;IACG,4BAA4B,CAChC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,eAAe,CAAC;IAwOrB,wBAAwB,CAC5B,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,eAAe,CAAC;IA0E3B,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,4BAA4B;IAyCpC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,cAAc;CAavB"}
1
+ {"version":3,"file":"architect.d.ts","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,cAAe,SAAQ,SAAS;IAC3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,kBAAkB,CACtB,IAAI,EAAE,UAAU,EAChB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC;IAqQrB,oBAAoB,CACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,eAAe,EACvB,eAAe,GAAE,OAAc,EAC/B,QAAQ,GAAE,IAAI,GAAG,IAAW,GAC3B,OAAO,CAAC,IAAI,CAAC;IAoDhB;;;;OAIG;IACG,4BAA4B,CAChC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,eAAe,CAAC;IAwOrB,wBAAwB,CAC5B,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC;IAoF3B,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,4BAA4B;IA0CpC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,cAAc;CAavB"}
@@ -7,12 +7,13 @@ export class ArchitectAgent extends BaseAgent {
7
7
  get name() {
8
8
  return "architect";
9
9
  }
10
- async generateFoundation(book, externalContext) {
10
+ async generateFoundation(book, externalContext, reviewFeedback) {
11
11
  const { profile: gp, body: genreBody } = await readGenreProfile(this.ctx.projectRoot, book.genre);
12
12
  const resolvedLanguage = book.language ?? gp.language;
13
13
  const contextBlock = externalContext
14
14
  ? `\n\n## 外部指令\n以下是来自外部系统的创作指令,请将其融入设定中:\n\n${externalContext}\n`
15
15
  : "";
16
+ const reviewFeedbackBlock = this.buildReviewFeedbackBlock(reviewFeedback, resolvedLanguage);
16
17
  const numericalBlock = gp.numericalSystem
17
18
  ? `- 有明确的数值/资源体系可追踪
18
19
  - 在 book_rules 中定义 numericalSystemOverrides(hardCap、resourceTypes)`
@@ -173,18 +174,20 @@ enableFullCastTracking: false
173
174
  | 当前冲突 | (第一个冲突) |`;
174
175
  const pendingHooksPrompt = resolvedLanguage === "en"
175
176
  ? `Initial hook pool (Markdown table):
176
- | hook_id | start_chapter | type | status | last_advanced_chapter | expected_payoff | notes |
177
+ | hook_id | start_chapter | type | status | last_advanced_chapter | expected_payoff | payoff_timing | notes |
177
178
 
178
179
  Rules for the hook table:
179
180
  - Column 5 must be a pure chapter number, never natural-language description
180
181
  - During book creation, all planned hooks are still unapplied, so last_advanced_chapter = 0
182
+ - Column 7 must be one of: immediate / near-term / mid-arc / slow-burn / endgame
181
183
  - If you want to describe the initial clue/signal, put it in notes instead of column 5`
182
184
  : `初始伏笔池(Markdown表格):
183
- | hook_id | 起始章节 | 类型 | 状态 | 最近推进 | 预期回收 | 备注 |
185
+ | hook_id | 起始章节 | 类型 | 状态 | 最近推进 | 预期回收 | 回收节奏 | 备注 |
184
186
 
185
187
  伏笔表规则:
186
188
  - 第5列必须是纯数字章节号,不能写自然语言描述
187
189
  - 建书阶段所有伏笔都还没正式推进,所以第5列统一填 0
190
+ - 第7列必须填写:立即 / 近期 / 中程 / 慢烧 / 终局 之一
188
191
  - 如果要说明“初始线索/最初信号”,写进备注,不要写进第5列`;
189
192
  const finalRequirementsPrompt = resolvedLanguage === "en"
190
193
  ? `Generated content must:
@@ -205,7 +208,7 @@ ${eraBlock}
205
208
  3. 主角人设鲜明,有明确行为边界
206
209
  4. 伏笔前后呼应,不留悬空线
207
210
  5. 配角有独立动机,不是工具人`;
208
- const systemPrompt = `你是一个专业的网络小说架构师。你的任务是为一本新的${gp.name}小说生成完整的基础设定。${contextBlock}
211
+ const systemPrompt = `你是一个专业的网络小说架构师。你的任务是为一本新的${gp.name}小说生成完整的基础设定。${contextBlock}${reviewFeedbackBlock}
209
212
 
210
213
  要求:
211
214
  - 平台:${book.platform}
@@ -415,9 +418,9 @@ enableFullCastTracking: false
415
418
  | 当前冲突 | (当前冲突) |`;
416
419
  const pendingHooksPrompt = resolvedLanguage === "en"
417
420
  ? `Identify all active hooks from the source text (Markdown table):
418
- | hook_id | start_chapter | type | status | latest_progress | expected_payoff | notes |`
421
+ | hook_id | start_chapter | type | status | latest_progress | expected_payoff | payoff_timing | notes |`
419
422
  : `从正文中识别的所有伏笔(Markdown表格):
420
- | hook_id | 起始章节 | 类型 | 状态 | 最近推进 | 预期回收 | 备注 |`;
423
+ | hook_id | 起始章节 | 类型 | 状态 | 最近推进 | 预期回收 | 回收节奏 | 备注 |`;
421
424
  const keyPrinciplesPrompt = resolvedLanguage === "en"
422
425
  ? `## Key Principles
423
426
 
@@ -495,8 +498,9 @@ ${keyPrinciplesPrompt}`;
495
498
  ], { maxTokens: 16384, temperature: 0.5 });
496
499
  return this.parseSections(response.content);
497
500
  }
498
- async generateFanficFoundation(book, fanficCanon, fanficMode) {
501
+ async generateFanficFoundation(book, fanficCanon, fanficMode, reviewFeedback) {
499
502
  const { profile: gp, body: genreBody } = await readGenreProfile(this.ctx.projectRoot, book.genre);
503
+ const reviewFeedbackBlock = this.buildReviewFeedbackBlock(reviewFeedback, book.language ?? "zh");
500
504
  const MODE_INSTRUCTIONS = {
501
505
  canon: "剧情发生在原作空白期或未详述的角度。不可改变原作已确立的事实。",
502
506
  au: "标注AU设定与原作的关键分歧点,分歧后的世界线自由发展。保留角色核心性格。",
@@ -508,6 +512,15 @@ ${keyPrinciplesPrompt}`;
508
512
  ## 同人模式:${fanficMode}
509
513
  ${MODE_INSTRUCTIONS[fanficMode]}
510
514
 
515
+ ## 新时空要求(关键)
516
+ 你必须为这本同人设计一个**原创的叙事空间**,而不是复述原作剧情。具体要求:
517
+ 1. **明确分岔点**:story_bible 必须标注"本作从原作的哪个节点分岔",或"本作发生在原作未涉及的什么时空"
518
+ 2. **独立核心冲突**:volume_outline 的核心冲突必须是原创的,不是原作情节的翻版。原作角色可以出现,但他们面对的是新问题
519
+ 3. **5章内引爆**:volume_outline 的第1卷必须在前5章内建立核心悬念,不允许用3章做铺垫才到引爆点
520
+ 4. **场景新鲜度**:至少50%的关键场景发生在原作未出现的地点或情境中
521
+
522
+ ${reviewFeedbackBlock}
523
+
511
524
  ## 原作正典
512
525
  ${fanficCanon}
513
526
 
@@ -517,8 +530,8 @@ ${genreBody}
517
530
  ## 关键原则
518
531
  1. **不发明主要角色** — 主要角色必须来自原作正典的角色档案
519
532
  2. 可以添加原创配角,但必须在 story_bible 中标注为"原创角色"
520
- 3. story_bible 保留原作世界观,标注同人的改动/扩展部分
521
- 4. volume_outline 以原作事件为锚点,标注哪些是原作事件、哪些是同人原创
533
+ 3. story_bible 保留原作世界观,标注同人的改动/扩展部分,并明确写出**分岔点**和**新时空设定**
534
+ 4. volume_outline 不得复述原作剧情节拍。每卷的核心事件必须是原创的,标注"原创"
522
535
  5. book_rules 的 fanficMode 必须设为 "${fanficMode}"
523
536
  6. 主角设定来自原作角色档案中的第一个角色(或用户在标题中暗示的角色)
524
537
 
@@ -563,11 +576,35 @@ prohibitions:
563
576
  ], { maxTokens: 16384, temperature: 0.7 });
564
577
  return this.parseSections(response.content);
565
578
  }
579
+ buildReviewFeedbackBlock(reviewFeedback, language) {
580
+ const trimmed = reviewFeedback?.trim();
581
+ if (!trimmed)
582
+ return "";
583
+ if (language === "en") {
584
+ return `\n\n## Previous Review Feedback
585
+ The previous foundation draft was rejected. You must explicitly fix the following issues in this regeneration instead of paraphrasing the same design:
586
+
587
+ ${trimmed}\n`;
588
+ }
589
+ return `\n\n## 上一轮审核反馈
590
+ 上一轮基础设定未通过审核。你必须在这次重生中明确修复以下问题,不能只换措辞重写同一套方案:
591
+
592
+ ${trimmed}\n`;
593
+ }
566
594
  parseSections(content) {
595
+ const parsedSections = new Map();
596
+ const sectionPattern = /^\s*===\s*SECTION\s*[::]\s*([^\n=]+?)\s*===\s*$/gim;
597
+ const matches = [...content.matchAll(sectionPattern)];
598
+ for (let i = 0; i < matches.length; i++) {
599
+ const match = matches[i];
600
+ const rawName = match[1] ?? "";
601
+ const start = (match.index ?? 0) + match[0].length;
602
+ const end = matches[i + 1]?.index ?? content.length;
603
+ const normalizedName = this.normalizeSectionName(rawName);
604
+ parsedSections.set(normalizedName, content.slice(start, end).trim());
605
+ }
567
606
  const extract = (name) => {
568
- const regex = new RegExp(`=== SECTION: ${name} ===\\s*([\\s\\S]*?)(?==== SECTION:|$)`);
569
- const match = content.match(regex);
570
- const section = match?.[1]?.trim();
607
+ const section = parsedSections.get(this.normalizeSectionName(name));
571
608
  if (!section) {
572
609
  throw new Error(`Architect output missing required section: ${name}`);
573
610
  }
@@ -584,6 +621,14 @@ prohibitions:
584
621
  pendingHooks: extract("pending_hooks"),
585
622
  };
586
623
  }
624
+ normalizeSectionName(name) {
625
+ return name
626
+ .normalize("NFKC")
627
+ .toLowerCase()
628
+ .replace(/[`"'*_]/g, " ")
629
+ .replace(/[^a-z0-9]+/g, "_")
630
+ .replace(/^_+|_+$/g, "");
631
+ }
587
632
  stripTrailingAssistantCoda(section) {
588
633
  const lines = section.split("\n");
589
634
  const cutoff = lines.findIndex((line) => {
@@ -627,7 +672,8 @@ prohibitions:
627
672
  status: row[3] ?? "open",
628
673
  lastAdvancedChapter: normalizedProgress,
629
674
  expectedPayoff: row[5] ?? "",
630
- notes,
675
+ payoffTiming: row.length >= 8 ? row[6] ?? "" : "",
676
+ notes: row.length >= 8 ? this.mergeHookNotes(row[7] ?? "", seedNote, language) : notes,
631
677
  };
632
678
  });
633
679
  return renderHookSnapshot(normalizedHooks, language);
@@ -1 +1 @@
1
- {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,IAAI,IAAI;QACN,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAgB,EAAE,eAAwB;QACjE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GACpC,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;QAEtD,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,4CAA4C,eAAe,IAAI;YACjE,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe;YACvC,CAAC,CAAC;mEAC2D;YAC7D,CAAC,CAAC,oBAAoB,CAAC;QAEzB,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY;YAChC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW;YAC7B,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,gBAAgB,GAAG,gBAAgB,KAAK,IAAI;YAChD,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;iEAyByD;YAC3D,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA6BuB,CAAC;QAE5B,MAAM,mBAAmB,GAAG,gBAAgB,KAAK,IAAI;YACnD,CAAC,CAAC;;;;;kGAK0F;YAC5F,CAAC,CAAC;;;;;sCAK8B,CAAC;QAEnC,MAAM,eAAe,GAAG,gBAAgB,KAAK,IAAI;YAC/C,CAAC,CAAC;;;;;;;;;aASK,IAAI,CAAC,KAAK;;EAErB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;;yCAEkB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;OAcvC;YACD,CAAC,CAAC;;;;;;;;;aASK,IAAI,CAAC,KAAK;;EAErB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;;8BAEO,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;OAc5B,CAAC;QAEJ,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,IAAI;YAClD,CAAC,CAAC;;;;;;;;;wCASgC;YAClC,CAAC,CAAC;;;;;;;;;mBASW,CAAC;QAEhB,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,IAAI;YAClD,CAAC,CAAC;;;;;;uFAM+E;YACjF,CAAC,CAAC;;;;;;gCAMwB,CAAC;QAE7B,MAAM,uBAAuB,GAAG,gBAAgB,KAAK,IAAI;YACvD,CAAC,CAAC;aACK,IAAI,CAAC,QAAQ;aACb,EAAE,CAAC,IAAI;EAClB,cAAc;EACd,UAAU;EACV,QAAQ;;;6EAGmE;YACvE,CAAC,CAAC;OACD,IAAI,CAAC,QAAQ;OACb,EAAE,CAAC,IAAI;EACZ,cAAc;EACd,UAAU;EACV,QAAQ;;;iBAGO,CAAC;QAEd,MAAM,YAAY,GAAG,4BAA4B,EAAE,CAAC,IAAI,eAAe,YAAY;;;OAGhF,IAAI,CAAC,QAAQ;OACb,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;SACnB,IAAI,CAAC,cAAc;SACnB,IAAI,CAAC,gBAAgB;;;;EAI5B,SAAS;;;;;;;EAOT,gBAAgB;;;EAGhB,mBAAmB;;;EAGnB,eAAe;;;EAGf,kBAAkB;;;EAGlB,kBAAkB;;EAElB,uBAAuB,EAAE,CAAC;QAExB,MAAM,UAAU,GAAG,gBAAgB,KAAK,IAAI;YAC1C,CAAC,CAAC,mPAAmP;YACrP,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG,gBAAgB,KAAK,IAAI;YAC3C,CAAC,CAAC,0CAA0C,EAAE,CAAC,IAAI,kBAAkB,IAAI,CAAC,KAAK,iCAAiC;YAChH,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,IAAI,aAAa,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,EAAE;YACtD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,OAAe,EACf,MAAuB,EACvB,kBAA2B,IAAI,EAC/B,WAAwB,IAAI;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAyB;YACnC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;YACvE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;YAC7E,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;YACrE,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC;SAC5E,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT,SAAS,CACP,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EACpC,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAC,sNAAsN;gBACxN,CAAC,CAAC,mJAAmJ,EACvJ,OAAO,CACR,CACF,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CACT,SAAS,CACP,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAClC,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,6NAA6N;YAC/N,CAAC,CAAC,0KAA0K,EAC9K,OAAO,CACR,EACD,SAAS,CACP,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EACnC,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,2JAA2J;YAC7J,CAAC,CAAC,wHAAwH,EAC5H,OAAO,CACR,EACD,SAAS,CACP,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EACrC,QAAQ,KAAK,IAAI;YACf,CAAC,CAAC,8iBAA8iB;YAChjB,CAAC,CAAC,8XAA8X,EAClY,OAAO,CACR,CACF,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,4BAA4B,CAChC,IAAgB,EAChB,YAAoB,EACpB,eAAwB;QAExB,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GACpC,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC;QAEtD,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,gBAAgB,eAAe,IAAI;YACrC,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe;YACvC,CAAC,CAAC;mEAC2D;YAC7D,CAAC,CAAC,oBAAoB,CAAC;QAEzB,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY;YAChC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW;YAC7B,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,gBAAgB,GAAG,gBAAgB,KAAK,IAAI;YAChD,CAAC,CAAC;;;;;;;;;;;;;;2BAcmB,IAAI,CAAC,KAAK,sDAAsD;YACrF,CAAC,CAAC;;;;;;;;;;;;;;QAcA,IAAI,CAAC,KAAK,cAAc,CAAC;QAE7B,MAAM,mBAAmB,GAAG,gBAAgB,KAAK,IAAI;YACnD,CAAC,CAAC;;;qFAG6E;YAC/E,CAAC,CAAC;;;uBAGe,CAAC;QAEpB,MAAM,eAAe,GAAG,gBAAgB,KAAK,IAAI;YAC/C,CAAC,CAAC;;;;;;;;;aASK,IAAI,CAAC,KAAK;;EAErB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;;+DAEwC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;OAc7D;YACD,CAAC,CAAC;;;;;;;;;aASK,IAAI,CAAC,KAAK;;EAErB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;;iCAEU,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;OAc/B,CAAC;QAEJ,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,IAAI;YAClD,CAAC,CAAC;;;;;;;;;0CASkC;YACpC,CAAC,CAAC;;;;;;;;;kBASU,CAAC;QAEf,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,IAAI;YAClD,CAAC,CAAC;wFACgF;YAClF,CAAC,CAAC;gDACwC,CAAC;QAE7C,MAAM,mBAAmB,GAAG,gBAAgB,KAAK,IAAI;YACnD,CAAC,CAAC;;;;;;EAMN,cAAc;EACd,UAAU;EACV,QAAQ,EAAE;YACN,CAAC,CAAC;;;;;;EAMN,cAAc;EACd,UAAU;EACV,QAAQ,EAAE,CAAC;QAET,MAAM,YAAY,GAAG,4CAA4C,YAAY;;;;;;;;;;;;;OAa1E,IAAI,CAAC,KAAK;OACV,IAAI,CAAC,QAAQ;OACb,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;SACnB,IAAI,CAAC,cAAc;SACnB,IAAI,CAAC,gBAAgB;;;;EAI5B,SAAS;;;;;;;EAOT,gBAAgB;;;EAGhB,mBAAmB;;;EAGnB,eAAe;;;EAGf,kBAAkB;;;EAGlB,kBAAkB;;EAElB,mBAAmB,EAAE,CAAC;QAEpB,MAAM,UAAU,GAAG,gBAAgB,KAAK,IAAI;YAC1C,CAAC,CAAC,mPAAmP;YACrP,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,WAAW,GAAG,gBAAgB,KAAK,IAAI;YAC3C,CAAC,CAAC,oDAAoD,EAAE,CAAC,IAAI,kBAAkB,IAAI,CAAC,KAAK,sCAAsC,YAAY,EAAE;YAC7I,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,8BAA8B,YAAY,EAAE,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,EAAE;YACtD;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;aACrB;SACF,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,IAAgB,EAChB,WAAmB,EACnB,UAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GACpC,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3D,MAAM,iBAAiB,GAA+B;YACpD,KAAK,EAAE,iCAAiC;YACxC,EAAE,EAAE,uCAAuC;YAC3C,GAAG,EAAE,6BAA6B;YAClC,EAAE,EAAE,+BAA+B;SACpC,CAAC;QAEF,MAAM,YAAY,GAAG;;UAEf,UAAU;EAClB,iBAAiB,CAAC,UAAU,CAAC;;;EAG7B,WAAW;;;EAGX,SAAS;;;;;;;mCAOwB,UAAU;;;;;;;;;;;;;;;;;;;;aAoBhC,IAAI,CAAC,KAAK;;eAER,UAAU;;;;;;;;;;;;qBAYJ,CAAC;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,SAAS,IAAI,CAAC,KAAK,KAAK,UAAU,kBAAkB,IAAI,CAAC,cAAc,OAAO,IAAI,CAAC,gBAAgB,IAAI;aACjH;SACF,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEO,aAAa,CAAC,OAAe;QACnC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,MAAM,CACtB,gBAAgB,IAAI,wCAAwC,CAC7D,CAAC;YACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC7B,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC;YAClC,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAAC;YACxC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC;YAChC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC;YACtC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC;SACvC,CAAC;IACJ,CAAC;IAEO,0BAA0B,CAAC,OAAe;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC3B,OAAO,uFAAuF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;IAEO,4BAA4B,CAAC,OAAe;QAClD,MAAM,IAAI,GAAG,OAAO;aACjB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACvC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACtE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;QAClF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAgB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,kBAAkB,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC;gBACjF,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAC,CAAC,mBAAmB,WAAW,EAAE,CAAC;gBAChF,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEpE,OAAO;gBACL,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE;gBACrC,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;gBAClB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM;gBACxB,mBAAmB,EAAE,kBAAkB;gBACvC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC5B,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAEO,sBAAsB,CAAC,KAAyB;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAEO,oBAAoB,CAAC,KAAyB;QACpD,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC;IAEO,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAqB;QAC3E,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,QAAQ,KAAK,IAAI;YACtB,CAAC,CAAC,GAAG,YAAY,IAAI,WAAW,GAAG;YACnC,CAAC,CAAC,GAAG,YAAY,KAAK,WAAW,GAAG,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/agents/architect.ts"],"names":[],"mappings":"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"}
@@ -216,7 +216,7 @@ Updated state card as a Markdown table reflecting the end-of-chapter state:
216
216
 
217
217
  === UPDATED_HOOKS ===
218
218
  Updated hooks pool as a Markdown table with the latest status of every known hook:
219
- | hook_id | start_chapter | type | status | last_advanced_chapter | expected_payoff | notes |
219
+ | hook_id | start_chapter | type | status | last_advanced_chapter | expected_payoff | payoff_timing | notes |
220
220
 
221
221
  === CHAPTER_SUMMARY ===
222
222
  Single Markdown table row:
@@ -307,7 +307,7 @@ ${bookRulesBody ? `## 本书规则\n\n${bookRulesBody}` : ""}
307
307
 
308
308
  === UPDATED_HOOKS ===
309
309
  更新后的伏笔池(Markdown表格),包含所有已知伏笔的最新状态:
310
- | hook_id | 起始章节 | 类型 | 状态 | 最近推进 | 预期回收 | 备注 |
310
+ | hook_id | 起始章节 | 类型 | 状态 | 最近推进 | 预期回收 | 回收节奏 | 备注 |
311
311
 
312
312
  === CHAPTER_SUMMARY ===
313
313
  本章摘要(Markdown表格行):
@@ -20,9 +20,17 @@ export declare class ComposerAgent extends BaseAgent {
20
20
  get name(): string;
21
21
  composeChapter(input: ComposeChapterInput): Promise<ComposeChapterOutput>;
22
22
  private collectSelectedContext;
23
+ private buildRecentChapterTrailEntries;
24
+ private buildRecentEndingTrail;
25
+ private extractLastMeaningfulSentence;
26
+ private buildHookDebtEntries;
23
27
  private maybeContextSource;
24
28
  private pickExcerpt;
25
29
  private toFactAnchor;
26
30
  private readFileOrDefault;
31
+ private describeHookAgendaRole;
32
+ private findHookSummary;
33
+ private summaryMentionsHook;
34
+ private renderHookDebtBeat;
27
35
  }
28
36
  //# sourceMappingURL=composer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../src/agents/composer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAiEjE,sBAAsB;YAkEtB,kBAAkB;IAiBhC,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;YASN,iBAAiB;CAOhC"}
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../src/agents/composer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YAqEjE,sBAAsB;YA8FtB,8BAA8B;YAsD9B,sBAAsB;IA4BpC,OAAO,CAAC,6BAA6B;YASvB,oBAAoB;YAuEpB,kBAAkB;IAiBhC,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;YASN,iBAAiB;IAQ/B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;CAK3B"}
@@ -1,9 +1,9 @@
1
- import { readFile, writeFile, mkdir } from "node:fs/promises";
1
+ import { readFile, readdir, writeFile, mkdir } from "node:fs/promises";
2
2
  import { dirname, join } from "node:path";
3
3
  import yaml from "js-yaml";
4
4
  import { BaseAgent } from "./base.js";
5
5
  import { ChapterTraceSchema, ContextPackageSchema, RuleStackSchema, } from "../models/input-governance.js";
6
- import { retrieveMemorySelection } from "../utils/memory-retrieval.js";
6
+ import { parseChapterSummariesMarkdown, retrieveMemorySelection, } from "../utils/memory-retrieval.js";
7
7
  export class ComposerAgent extends BaseAgent {
8
8
  get name() {
9
9
  return "composer";
@@ -12,7 +12,7 @@ export class ComposerAgent extends BaseAgent {
12
12
  const storyDir = join(input.bookDir, "story");
13
13
  const runtimeDir = join(storyDir, "runtime");
14
14
  await mkdir(runtimeDir, { recursive: true });
15
- const selectedContext = await this.collectSelectedContext(storyDir, input.plan);
15
+ const selectedContext = await this.collectSelectedContext(storyDir, input.plan, input.book.language ?? "zh");
16
16
  const contextPackage = ContextPackageSchema.parse({
17
17
  chapter: input.chapterNumber,
18
18
  selectedContext,
@@ -66,13 +66,17 @@ export class ComposerAgent extends BaseAgent {
66
66
  tracePath,
67
67
  };
68
68
  }
69
- async collectSelectedContext(storyDir, plan) {
69
+ async collectSelectedContext(storyDir, plan, language) {
70
70
  const entries = await Promise.all([
71
71
  this.maybeContextSource(storyDir, "current_focus.md", "Current task focus for this chapter."),
72
+ this.maybeContextSource(storyDir, "audit_drift.md", "Carry forward audit drift guidance from the previous chapter without polluting hard state facts."),
72
73
  this.maybeContextSource(storyDir, "current_state.md", "Preserve hard state facts referenced by mustKeep.", plan.intent.mustKeep),
73
74
  this.maybeContextSource(storyDir, "story_bible.md", "Preserve canon constraints referenced by mustKeep.", plan.intent.mustKeep),
74
75
  this.maybeContextSource(storyDir, "volume_outline.md", "Anchor the default planning node for this chapter.", plan.intent.outlineNode ? [plan.intent.outlineNode] : []),
76
+ this.maybeContextSource(storyDir, "parent_canon.md", "Preserve parent canon constraints for governed continuation or fanfic writing."),
77
+ this.maybeContextSource(storyDir, "fanfic_canon.md", "Preserve extracted fanfic canon constraints for governed writing."),
75
78
  ]);
79
+ const trailEntries = await this.buildRecentChapterTrailEntries(storyDir, plan.intent.chapter);
76
80
  const planningAnchor = plan.intent.conflicts.length > 0 ? undefined : plan.intent.outlineNode;
77
81
  const memorySelection = await retrieveMemorySelection({
78
82
  bookDir: dirname(storyDir),
@@ -81,6 +85,7 @@ export class ComposerAgent extends BaseAgent {
81
85
  outlineNode: planningAnchor,
82
86
  mustKeep: plan.intent.mustKeep,
83
87
  });
88
+ const hookDebtEntries = await this.buildHookDebtEntries(storyDir, plan, memorySelection.activeHooks, language);
84
89
  const summaryEntries = memorySelection.summaries.map((summary) => ({
85
90
  source: `story/chapter_summaries.md#${summary.chapter}`,
86
91
  reason: "Relevant episodic memory retrieved for the current chapter goal.",
@@ -96,7 +101,7 @@ export class ComposerAgent extends BaseAgent {
96
101
  const hookEntries = memorySelection.hooks.map((hook) => ({
97
102
  source: `story/pending_hooks.md#${hook.hookId}`,
98
103
  reason: "Carry forward unresolved hooks that match the chapter focus.",
99
- excerpt: [hook.type, hook.status, hook.expectedPayoff, hook.notes]
104
+ excerpt: [hook.type, hook.status, hook.expectedPayoff, hook.payoffTiming, hook.notes]
100
105
  .filter(Boolean)
101
106
  .join(" | "),
102
107
  }));
@@ -107,12 +112,140 @@ export class ComposerAgent extends BaseAgent {
107
112
  }));
108
113
  return [
109
114
  ...entries.filter((entry) => entry !== null),
115
+ ...trailEntries,
116
+ ...hookDebtEntries,
110
117
  ...factEntries,
111
118
  ...summaryEntries,
112
119
  ...volumeSummaryEntries,
113
120
  ...hookEntries,
114
121
  ];
115
122
  }
123
+ async buildRecentChapterTrailEntries(storyDir, chapterNumber) {
124
+ const content = await this.readFileOrDefault(join(storyDir, "chapter_summaries.md"));
125
+ if (!content || content === "(文件尚未创建)") {
126
+ return [];
127
+ }
128
+ const recentSummaries = parseChapterSummariesMarkdown(content)
129
+ .filter((summary) => summary.chapter < chapterNumber)
130
+ .sort((left, right) => right.chapter - left.chapter)
131
+ .slice(0, 5);
132
+ if (recentSummaries.length === 0) {
133
+ return [];
134
+ }
135
+ const entries = [];
136
+ const recentTitles = recentSummaries
137
+ .map((summary) => [summary.chapter, summary.title].filter(Boolean).join(": "))
138
+ .filter(Boolean)
139
+ .join(" | ");
140
+ if (recentTitles) {
141
+ entries.push({
142
+ source: "story/chapter_summaries.md#recent_titles",
143
+ reason: "Keep recent title history visible to avoid repetitive chapter naming.",
144
+ excerpt: recentTitles,
145
+ });
146
+ }
147
+ const moodTrail = recentSummaries
148
+ .filter((summary) => summary.mood || summary.chapterType)
149
+ .map((summary) => `${summary.chapter}: ${summary.mood || "(none)"} / ${summary.chapterType || "(none)"}`)
150
+ .join(" | ");
151
+ if (moodTrail) {
152
+ entries.push({
153
+ source: "story/chapter_summaries.md#recent_mood_type_trail",
154
+ reason: "Keep recent mood and chapter-type cadence visible before writing the next chapter.",
155
+ excerpt: moodTrail,
156
+ });
157
+ }
158
+ const endingTrail = await this.buildRecentEndingTrail(storyDir, chapterNumber);
159
+ if (endingTrail) {
160
+ entries.push({
161
+ source: "story/chapters#recent_endings",
162
+ reason: "Show how recent chapters ended so the writer avoids structural repetition (e.g. 3 consecutive collapse endings).",
163
+ excerpt: endingTrail,
164
+ });
165
+ }
166
+ return entries;
167
+ }
168
+ async buildRecentEndingTrail(storyDir, chapterNumber) {
169
+ const chaptersDir = join(dirname(storyDir), "chapters");
170
+ try {
171
+ const files = await readdir(chaptersDir);
172
+ const chapterFiles = files
173
+ .filter((file) => file.endsWith(".md"))
174
+ .map((file) => ({ file, num: parseInt(file.slice(0, 4), 10) }))
175
+ .filter((entry) => Number.isFinite(entry.num) && entry.num < chapterNumber)
176
+ .sort((a, b) => b.num - a.num)
177
+ .slice(0, 3);
178
+ const endings = [];
179
+ for (const entry of chapterFiles.reverse()) {
180
+ const content = await readFile(join(chaptersDir, entry.file), "utf-8");
181
+ const lastLine = this.extractLastMeaningfulSentence(content);
182
+ if (lastLine) {
183
+ endings.push(`ch${entry.num}: ${lastLine}`);
184
+ }
185
+ }
186
+ return endings.length >= 2 ? endings.join(" | ") : undefined;
187
+ }
188
+ catch {
189
+ return undefined;
190
+ }
191
+ }
192
+ extractLastMeaningfulSentence(content) {
193
+ const lines = content.split("\n").map((line) => line.trim()).filter((line) => line.length > 5 && !line.startsWith("#") && !line.startsWith("|") && !line.startsWith("==="));
194
+ const last = lines.at(-1);
195
+ if (!last)
196
+ return undefined;
197
+ return last.length > 60 ? last.slice(0, 57) + "..." : last;
198
+ }
199
+ async buildHookDebtEntries(storyDir, plan, activeHooks, language) {
200
+ const targetHookIds = [
201
+ ...new Set([
202
+ ...plan.intent.hookAgenda.pressureMap.map((entry) => entry.hookId),
203
+ ...plan.intent.hookAgenda.eligibleResolve,
204
+ ...plan.intent.hookAgenda.mustAdvance,
205
+ ...plan.intent.hookAgenda.staleDebt,
206
+ ]),
207
+ ];
208
+ if (targetHookIds.length === 0) {
209
+ return [];
210
+ }
211
+ const summaries = parseChapterSummariesMarkdown(await this.readFileOrDefault(join(storyDir, "chapter_summaries.md")));
212
+ return targetHookIds.flatMap((hookId) => {
213
+ const hook = activeHooks.find((entry) => entry.hookId === hookId);
214
+ if (!hook) {
215
+ return [];
216
+ }
217
+ const seedSummary = this.findHookSummary(summaries, hook.hookId, hook.startChapter, "seed");
218
+ const latestSummary = this.findHookSummary(summaries, hook.hookId, hook.lastAdvancedChapter, "latest");
219
+ const role = this.describeHookAgendaRole(plan, hook.hookId, language);
220
+ const promise = hook.expectedPayoff || (language === "en" ? "(unspecified)" : "(未写明)");
221
+ const seedBeat = seedSummary
222
+ ? this.renderHookDebtBeat(seedSummary)
223
+ : (hook.notes || promise);
224
+ const latestBeat = latestSummary && latestSummary !== seedSummary
225
+ ? this.renderHookDebtBeat(latestSummary)
226
+ : undefined;
227
+ const age = Math.max(0, plan.intent.chapter - Math.max(1, hook.startChapter));
228
+ return [{
229
+ source: `runtime/hook_debt#${hook.hookId}`,
230
+ reason: language === "en"
231
+ ? "Narrative debt brief with original seed text for this hook agenda target."
232
+ : "含原始种子文本的叙事债务简报。",
233
+ excerpt: language === "en"
234
+ ? [
235
+ `${hook.hookId} (${hook.type}, ${role}, open ${age} chapters)`,
236
+ `reader promise: ${promise}`,
237
+ `original seed (ch${hook.startChapter}): ${seedBeat}`,
238
+ latestBeat ? `latest turn (ch${hook.lastAdvancedChapter}): ${latestBeat}` : undefined,
239
+ ].filter(Boolean).join(" | ")
240
+ : [
241
+ `${hook.hookId}(${hook.type},${role},已开${age}章)`,
242
+ `读者承诺:${promise}`,
243
+ `种于第${hook.startChapter}章:${seedBeat}`,
244
+ latestBeat ? `推进于第${hook.lastAdvancedChapter}章:${latestBeat}` : undefined,
245
+ ].filter(Boolean).join(" | "),
246
+ }];
247
+ });
248
+ }
116
249
  async maybeContextSource(storyDir, fileName, reason, preferredExcerpts = []) {
117
250
  const path = join(storyDir, fileName);
118
251
  const content = await this.readFileOrDefault(path);
@@ -150,5 +283,37 @@ export class ComposerAgent extends BaseAgent {
150
283
  return "(文件尚未创建)";
151
284
  }
152
285
  }
286
+ describeHookAgendaRole(plan, hookId, language) {
287
+ if (plan.intent.hookAgenda.eligibleResolve.includes(hookId)) {
288
+ return language === "en" ? "payoff-ready debt" : "可兑现旧债";
289
+ }
290
+ if (plan.intent.hookAgenda.staleDebt.includes(hookId)) {
291
+ return language === "en" ? "high-pressure debt" : "高压旧债";
292
+ }
293
+ return language === "en" ? "mainline debt" : "主要旧债";
294
+ }
295
+ findHookSummary(summaries, hookId, chapter, mode) {
296
+ const directChapterHit = summaries.find((summary) => summary.chapter === chapter);
297
+ const hookMentions = summaries.filter((summary) => this.summaryMentionsHook(summary, hookId));
298
+ if (mode === "seed") {
299
+ return hookMentions.find((summary) => summary.chapter === chapter)
300
+ ?? hookMentions.at(0)
301
+ ?? directChapterHit;
302
+ }
303
+ return [...hookMentions].reverse().find((summary) => summary.chapter === chapter)
304
+ ?? hookMentions.at(-1)
305
+ ?? directChapterHit;
306
+ }
307
+ summaryMentionsHook(summary, hookId) {
308
+ return [
309
+ summary.title,
310
+ summary.events,
311
+ summary.stateChanges,
312
+ summary.hookActivity,
313
+ ].some((text) => text.includes(hookId));
314
+ }
315
+ renderHookDebtBeat(summary) {
316
+ return `ch${summary.chapter} ${summary.title} - ${summary.events || summary.hookActivity || summary.stateChanges || "(none)"}`;
317
+ }
153
318
  }
154
319
  //# sourceMappingURL=composer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/agents/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/agents/composer.ts"],"names":[],"mappings":"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"}
@@ -119,16 +119,16 @@ function buildDimensionNote(id, language, gp, bookRules, fanficMode, fanficConfi
119
119
  : "检查视角切换是否有过渡、是否与设定视角一致";
120
120
  case 24:
121
121
  return language === "en"
122
- ? "Cross-check subplot_board and chapter_summaries: if any subplot goes unmentioned or unadvanced for more than 5 chapters -> warning. If subplots exist but none move in the last 3 chapters -> warning."
123
- : "对照 subplot_board 和 chapter_summaries:如果任何支线超过5章未被提及或推进→warning。如果存在支线但近3章完全没有任何支线推进→warning";
122
+ ? "Cross-check subplot_board and chapter_summaries: flag any subplot that stays dormant long enough to feel abandoned, or a recent run where every subplot is only restated instead of genuinely moving."
123
+ : "对照 subplot_board 和 chapter_summaries:标记那些沉寂到接近被遗忘的支线,或近期连续只被重复提及、没有真实推进的支线。";
124
124
  case 25:
125
125
  return language === "en"
126
- ? "Cross-check emotional_arcs and chapter_summaries: if a major character shows no emotional change for 3 straight chapters (no new pressure, release, or turn) -> warning. Distinguish unchanged circumstances from unchanged inner movement."
127
- : "对照 emotional_arcs 和 chapter_summaries:如果主要角色连续3章情绪状态无变化(没有新的压力、释放、转变)→warning。注意区分'角色处境未变'和'角色内心未变'";
126
+ ? "Cross-check emotional_arcs and chapter_summaries: flag any major character whose emotional line holds one pressure shape across a run instead of taking new pressure, release, reversal, or reinterpretation. Distinguish unchanged circumstances from unchanged inner movement."
127
+ : "对照 emotional_arcs 和 chapter_summaries:标记主要角色在一段时间内始终停留在同一种情绪压力形态、没有新压力、释放、转折或重估的情况。注意区分'处境未变'和'内心未变'";
128
128
  case 26:
129
129
  return language === "en"
130
- ? "Cross-check chapter_summaries for chapter-type distribution: 3+ consecutive chapters of the same type -> warning. No payoff or climax chapter for 5+ chapters -> warning. Explicitly list the recent type sequence."
131
- : "对照 chapter_summaries 的章节类型分布:连续≥3章相同类型(如连续3个事件章/战斗章/布局章)→warning。≥5章没有出现回收章或高潮章→warning。请明确列出最近章节的类型序列";
130
+ ? "Cross-check chapter_summaries for chapter-type distribution: warn when the recent sequence stays in the same mode long enough to flatten rhythm, or when payoff / release beats disappear for too long. Explicitly list the recent type sequence."
131
+ : "对照 chapter_summaries 的章节类型分布:当近期章节长时间停留在同一种模式、把节奏压平,或回收/释放/高潮章节缺席过久时给出 warning。请明确列出最近章节的类型序列。";
132
132
  case 28:
133
133
  return language === "en"
134
134
  ? "Check whether spinoff events contradict the mainline canon constraints."
@@ -147,8 +147,8 @@ function buildDimensionNote(id, language, gp, bookRules, fanficMode, fanficConfi
147
147
  : "检查番外是否越权回收正传伏笔(warning级别)";
148
148
  case 32:
149
149
  return language === "en"
150
- ? "Check: does the chapter ending provide a hook? Has there been a meaningful payoff within the last 3-5 chapters? Is emotional pressure being suppressed for more than 3 chapters without release? Are reader expectation gaps accumulating or being satisfied?"
151
- : "检查:章尾是否有钩子?最近3-5章内是否有爽点落地?是否存在超过3章的情绪压制无释放?读者的情绪缺口是否在积累或被满足?";
150
+ ? "Check whether the ending renews curiosity, whether promised payoffs are landing on the cadence their hooks imply, whether pressure gets any release, and whether reader expectation gaps are accumulating faster than they are being satisfied."
151
+ : "检查:章尾是否重新点燃好奇心,已经承诺的回收是否按伏笔自身节奏落地,压力是否得到释放,读者期待缺口是在持续累积还是在被满足。";
152
152
  case 33:
153
153
  return language === "en"
154
154
  ? "Cross-check volume_outline: does this chapter match the planned beat for the current chapter range? Did it skip planned nodes or consume later nodes too early? Does actual pacing match the planned chapter span? If a beat planned for N chapters is consumed in 1-2 chapters -> critical."