@actalk/inkos-core 0.5.0 → 0.5.1

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 (69) hide show
  1. package/dist/agents/base.d.ts +4 -4
  2. package/dist/agents/base.d.ts.map +1 -1
  3. package/dist/agents/base.js +52 -9
  4. package/dist/agents/base.js.map +1 -1
  5. package/dist/agents/consolidator.d.ts +23 -0
  6. package/dist/agents/consolidator.d.ts.map +1 -0
  7. package/dist/agents/consolidator.js +132 -0
  8. package/dist/agents/consolidator.js.map +1 -0
  9. package/dist/agents/continuity.d.ts.map +1 -1
  10. package/dist/agents/continuity.js +17 -9
  11. package/dist/agents/continuity.js.map +1 -1
  12. package/dist/agents/observer-prompts.d.ts +10 -0
  13. package/dist/agents/observer-prompts.d.ts.map +1 -0
  14. package/dist/agents/observer-prompts.js +113 -0
  15. package/dist/agents/observer-prompts.js.map +1 -0
  16. package/dist/agents/settler-prompts.d.ts +1 -0
  17. package/dist/agents/settler-prompts.d.ts.map +1 -1
  18. package/dist/agents/settler-prompts.js +4 -1
  19. package/dist/agents/settler-prompts.js.map +1 -1
  20. package/dist/agents/state-validator.d.ts +21 -0
  21. package/dist/agents/state-validator.d.ts.map +1 -0
  22. package/dist/agents/state-validator.js +100 -0
  23. package/dist/agents/state-validator.js.map +1 -0
  24. package/dist/agents/writer.d.ts.map +1 -1
  25. package/dist/agents/writer.js +45 -12
  26. package/dist/agents/writer.js.map +1 -1
  27. package/dist/index.d.ts +6 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +6 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/llm/provider.d.ts +1 -0
  32. package/dist/llm/provider.d.ts.map +1 -1
  33. package/dist/llm/provider.js +14 -8
  34. package/dist/llm/provider.js.map +1 -1
  35. package/dist/models/project.d.ts +8 -0
  36. package/dist/models/project.d.ts.map +1 -1
  37. package/dist/models/project.js +1 -0
  38. package/dist/models/project.js.map +1 -1
  39. package/dist/pipeline/runner.d.ts +1 -0
  40. package/dist/pipeline/runner.d.ts.map +1 -1
  41. package/dist/pipeline/runner.js +70 -38
  42. package/dist/pipeline/runner.js.map +1 -1
  43. package/dist/pipeline/scheduler.d.ts +4 -0
  44. package/dist/pipeline/scheduler.d.ts.map +1 -1
  45. package/dist/pipeline/scheduler.js +31 -3
  46. package/dist/pipeline/scheduler.js.map +1 -1
  47. package/dist/state/manager.d.ts.map +1 -1
  48. package/dist/state/manager.js +19 -8
  49. package/dist/state/manager.js.map +1 -1
  50. package/dist/state/memory-db.d.ts +60 -0
  51. package/dist/state/memory-db.d.ts.map +1 -0
  52. package/dist/state/memory-db.js +129 -0
  53. package/dist/state/memory-db.js.map +1 -0
  54. package/dist/utils/config-loader.d.ts.map +1 -1
  55. package/dist/utils/config-loader.js +27 -0
  56. package/dist/utils/config-loader.js.map +1 -1
  57. package/dist/utils/context-filter.d.ts +20 -0
  58. package/dist/utils/context-filter.d.ts.map +1 -0
  59. package/dist/utils/context-filter.js +133 -0
  60. package/dist/utils/context-filter.js.map +1 -0
  61. package/dist/utils/pov-filter.d.ts +30 -0
  62. package/dist/utils/pov-filter.d.ts.map +1 -0
  63. package/dist/utils/pov-filter.js +129 -0
  64. package/dist/utils/pov-filter.js.map +1 -0
  65. package/dist/utils/web-search.d.ts +14 -4
  66. package/dist/utils/web-search.d.ts.map +1 -1
  67. package/dist/utils/web-search.js +36 -5
  68. package/dist/utils/web-search.js.map +1 -1
  69. package/package.json +1 -1
@@ -11,15 +11,15 @@ export interface AgentContext {
11
11
  export declare abstract class BaseAgent {
12
12
  protected readonly ctx: AgentContext;
13
13
  constructor(ctx: AgentContext);
14
+ protected get log(): Logger | undefined;
14
15
  protected chat(messages: ReadonlyArray<LLMMessage>, options?: {
15
16
  readonly temperature?: number;
16
17
  readonly maxTokens?: number;
17
18
  }): Promise<LLMResponse>;
18
19
  /**
19
- * Chat with provider-native web search enabled.
20
- * OpenAI Chat API: uses web_search_options.
21
- * OpenAI Responses API: uses web_search_preview hosted tool.
22
- * Anthropic: falls back to regular chat (no native search).
20
+ * Chat with web search enabled.
21
+ * OpenAI: uses native web_search_options / web_search_preview.
22
+ * Other providers: searches via Tavily API (TAVILY_API_KEY), injects results into prompt.
23
23
  */
24
24
  protected chatWithSearch(messages: ReadonlyArray<LLMMessage>, options?: {
25
25
  readonly temperature?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED,8BAAsB,SAAS;IAC7B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBAEzB,GAAG,EAAE,YAAY;cAIb,IAAI,CAClB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,WAAW,CAAC;IAOvB;;;;;OAKG;cACa,cAAc,CAC5B,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,WAAW,CAAC;IAQvB,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG/F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CAC9C;AAED,8BAAsB,SAAS;IAC7B,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;gBAEzB,GAAG,EAAE,YAAY;IAI7B,SAAS,KAAK,GAAG,uBAEhB;cAEe,IAAI,CAClB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,WAAW,CAAC;IAOvB;;;;OAIG;cACa,cAAc,CAC5B,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,EACnC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACvE,OAAO,CAAC,WAAW,CAAC;IAuDvB,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;CAC7B"}
@@ -1,9 +1,13 @@
1
1
  import { chatCompletion } from "../llm/provider.js";
2
+ import { searchWeb, fetchUrl } from "../utils/web-search.js";
2
3
  export class BaseAgent {
3
4
  ctx;
4
5
  constructor(ctx) {
5
6
  this.ctx = ctx;
6
7
  }
8
+ get log() {
9
+ return this.ctx.logger;
10
+ }
7
11
  async chat(messages, options) {
8
12
  return chatCompletion(this.ctx.client, this.ctx.model, messages, {
9
13
  ...options,
@@ -11,17 +15,56 @@ export class BaseAgent {
11
15
  });
12
16
  }
13
17
  /**
14
- * Chat with provider-native web search enabled.
15
- * OpenAI Chat API: uses web_search_options.
16
- * OpenAI Responses API: uses web_search_preview hosted tool.
17
- * Anthropic: falls back to regular chat (no native search).
18
+ * Chat with web search enabled.
19
+ * OpenAI: uses native web_search_options / web_search_preview.
20
+ * Other providers: searches via Tavily API (TAVILY_API_KEY), injects results into prompt.
18
21
  */
19
22
  async chatWithSearch(messages, options) {
20
- return chatCompletion(this.ctx.client, this.ctx.model, messages, {
21
- ...options,
22
- webSearch: true,
23
- onStreamProgress: this.ctx.onStreamProgress,
24
- });
23
+ // OpenAI has native search — use it directly
24
+ if (this.ctx.client.provider === "openai") {
25
+ return chatCompletion(this.ctx.client, this.ctx.model, messages, {
26
+ ...options,
27
+ webSearch: true,
28
+ onStreamProgress: this.ctx.onStreamProgress,
29
+ });
30
+ }
31
+ // Other providers: self-hosted search → inject results into prompt
32
+ const lastUserMsg = [...messages].reverse().find((m) => m.role === "user");
33
+ if (!lastUserMsg) {
34
+ return this.chat(messages, options);
35
+ }
36
+ try {
37
+ // Extract search query from user message (first 200 chars)
38
+ const query = lastUserMsg.content.slice(0, 200);
39
+ this.log?.info(`[search] Searching: ${query.slice(0, 60)}...`);
40
+ const results = await searchWeb(query, 3);
41
+ if (results.length === 0) {
42
+ this.log?.warn("[search] No results found, falling back to regular chat");
43
+ return this.chat(messages, options);
44
+ }
45
+ // Fetch top result for full content
46
+ let fullContent = "";
47
+ try {
48
+ fullContent = await fetchUrl(results[0].url, 4000);
49
+ }
50
+ catch {
51
+ // Fetch failed, use snippets only
52
+ }
53
+ const searchContext = [
54
+ "## Web Search Results\n",
55
+ ...results.map((r, i) => `${i + 1}. **${r.title}**\n ${r.url}\n ${r.snippet}`),
56
+ ...(fullContent ? [`\n## Full Content (Top Result)\n${fullContent}`] : []),
57
+ ].join("\n");
58
+ // Inject search results before the last user message
59
+ const augmentedMessages = messages.map((m) => m === lastUserMsg
60
+ ? { ...m, content: `${searchContext}\n\n---\n\n${m.content}` }
61
+ : m);
62
+ return this.chat(augmentedMessages, options);
63
+ }
64
+ catch (e) {
65
+ this.log?.warn(`[search] Search failed: ${e}, falling back to regular chat`);
66
+ return this.chat(messages, options);
67
+ }
25
68
  }
26
69
  }
27
70
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYpD,MAAM,OAAgB,SAAS;IACV,GAAG,CAAe;IAErC,YAAY,GAAiB;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,IAAI,CAClB,QAAmC,EACnC,OAAwE;QAExE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC/D,GAAG,OAAO;YACV,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB;SAC5C,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,cAAc,CAC5B,QAAmC,EACnC,OAAwE;QAExE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC/D,GAAG,OAAO;YACV,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB;SAC5C,CAAC,CAAC;IACL,CAAC;CAGF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/agents/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { BaseAgent } from "./base.js";
2
+ export interface ConsolidationResult {
3
+ readonly volumeSummaries: string;
4
+ readonly archivedVolumes: number;
5
+ readonly retainedChapters: number;
6
+ }
7
+ /**
8
+ * Consolidates chapter summaries into volume-level narrative summaries.
9
+ * Reduces token usage for long books while preserving critical context.
10
+ */
11
+ export declare class ConsolidatorAgent extends BaseAgent {
12
+ get name(): string;
13
+ /**
14
+ * Consolidate chapter summaries by volume.
15
+ * - Reads volume_outline to determine volume boundaries
16
+ * - For each completed volume, LLM compresses chapter summaries into a narrative paragraph
17
+ * - Archives detailed summaries, keeps only recent volume's per-chapter rows
18
+ */
19
+ consolidate(bookDir: string): Promise<ConsolidationResult>;
20
+ private parseVolumeBoundaries;
21
+ private parseSummaryTable;
22
+ }
23
+ //# sourceMappingURL=consolidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidator.d.ts","sourceRoot":"","sources":["../../src/agents/consolidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsGhE,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,iBAAiB;CAa1B"}
@@ -0,0 +1,132 @@
1
+ import { BaseAgent } from "./base.js";
2
+ import { readFile, writeFile, mkdir } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ /**
5
+ * Consolidates chapter summaries into volume-level narrative summaries.
6
+ * Reduces token usage for long books while preserving critical context.
7
+ */
8
+ export class ConsolidatorAgent extends BaseAgent {
9
+ get name() {
10
+ return "consolidator";
11
+ }
12
+ /**
13
+ * Consolidate chapter summaries by volume.
14
+ * - Reads volume_outline to determine volume boundaries
15
+ * - For each completed volume, LLM compresses chapter summaries into a narrative paragraph
16
+ * - Archives detailed summaries, keeps only recent volume's per-chapter rows
17
+ */
18
+ async consolidate(bookDir) {
19
+ const storyDir = join(bookDir, "story");
20
+ const summariesPath = join(storyDir, "chapter_summaries.md");
21
+ const outlinePath = join(storyDir, "volume_outline.md");
22
+ const volumeSummariesPath = join(storyDir, "volume_summaries.md");
23
+ const [summariesRaw, outlineRaw] = await Promise.all([
24
+ readFile(summariesPath, "utf-8").catch(() => ""),
25
+ readFile(outlinePath, "utf-8").catch(() => ""),
26
+ ]);
27
+ if (!summariesRaw || !outlineRaw) {
28
+ return { volumeSummaries: "", archivedVolumes: 0, retainedChapters: 0 };
29
+ }
30
+ // Parse volume boundaries from outline
31
+ const volumeBoundaries = this.parseVolumeBoundaries(outlineRaw);
32
+ if (volumeBoundaries.length === 0) {
33
+ return { volumeSummaries: "", archivedVolumes: 0, retainedChapters: 0 };
34
+ }
35
+ // Parse chapter summaries into rows
36
+ const { header, rows } = this.parseSummaryTable(summariesRaw);
37
+ if (rows.length === 0) {
38
+ return { volumeSummaries: "", archivedVolumes: 0, retainedChapters: 0 };
39
+ }
40
+ const maxChapter = Math.max(...rows.map((r) => r.chapter));
41
+ // Determine which volumes are "completed" (all chapters written)
42
+ const completedVolumes = [];
43
+ const currentVolumeRows = [];
44
+ for (const vol of volumeBoundaries) {
45
+ const volRows = rows.filter((r) => r.chapter >= vol.startCh && r.chapter <= vol.endCh);
46
+ if (vol.endCh <= maxChapter && volRows.length > 0) {
47
+ completedVolumes.push({ ...vol, rows: volRows });
48
+ }
49
+ else {
50
+ // Current/incomplete volume — keep detailed rows
51
+ currentVolumeRows.push(...volRows);
52
+ }
53
+ }
54
+ // Also keep any rows not covered by volume boundaries
55
+ const coveredChapters = new Set(volumeBoundaries.flatMap((v) => {
56
+ const chs = [];
57
+ for (let i = v.startCh; i <= v.endCh; i++)
58
+ chs.push(i);
59
+ return chs;
60
+ }));
61
+ for (const r of rows) {
62
+ if (!coveredChapters.has(r.chapter))
63
+ currentVolumeRows.push(r);
64
+ }
65
+ if (completedVolumes.length === 0) {
66
+ return { volumeSummaries: "", archivedVolumes: 0, retainedChapters: currentVolumeRows.length };
67
+ }
68
+ // LLM consolidation for each completed volume
69
+ const existingVolSummaries = await readFile(volumeSummariesPath, "utf-8").catch(() => "");
70
+ const newSummaries = existingVolSummaries ? [existingVolSummaries.trim()] : ["# Volume Summaries\n"];
71
+ for (const vol of completedVolumes) {
72
+ const volSummaryRows = vol.rows.map((r) => r.raw).join("\n");
73
+ const response = await this.chat([
74
+ {
75
+ role: "system",
76
+ content: `You are a narrative summarizer. Compress chapter-by-chapter summaries into a single coherent paragraph (max 500 words) that captures the key events, character developments, and plot progression of this volume. Preserve specific names, locations, and plot points. Write in the same language as the input.`,
77
+ },
78
+ {
79
+ role: "user",
80
+ content: `Volume: ${vol.name} (Chapters ${vol.startCh}-${vol.endCh})\n\nChapter summaries:\n${header}\n${volSummaryRows}`,
81
+ },
82
+ ], { temperature: 0.3, maxTokens: 1024 });
83
+ newSummaries.push(`\n## ${vol.name} (Ch.${vol.startCh}-${vol.endCh})\n\n${response.content.trim()}`);
84
+ }
85
+ // Write volume summaries
86
+ await writeFile(volumeSummariesPath, newSummaries.join("\n"), "utf-8");
87
+ // Archive detailed summaries
88
+ const archiveDir = join(storyDir, "summaries_archive");
89
+ await mkdir(archiveDir, { recursive: true });
90
+ for (const vol of completedVolumes) {
91
+ const archivePath = join(archiveDir, `vol_${vol.startCh}-${vol.endCh}.md`);
92
+ await writeFile(archivePath, `# ${vol.name}\n\n${header}\n${vol.rows.map((r) => r.raw).join("\n")}`, "utf-8");
93
+ }
94
+ // Rewrite chapter_summaries.md with only current volume rows
95
+ const retainedContent = currentVolumeRows.length > 0
96
+ ? `${header}\n${currentVolumeRows.map((r) => r.raw).join("\n")}\n`
97
+ : `${header}\n`;
98
+ await writeFile(summariesPath, retainedContent, "utf-8");
99
+ return {
100
+ volumeSummaries: newSummaries.join("\n"),
101
+ archivedVolumes: completedVolumes.length,
102
+ retainedChapters: currentVolumeRows.length,
103
+ };
104
+ }
105
+ parseVolumeBoundaries(outline) {
106
+ const volumes = [];
107
+ // Match patterns like "第一卷 ... 第1-30章" or "Volume 1 ... Chapters 1-30"
108
+ const regex = /(?:第[一二三四五六七八九十\d]+卷|Volume\s+\d+)[::\s]*([^\n]*?)(?:第(\d+)[-–~](\d+)章|[Cc]hapters?\s+(\d+)[-–~](\d+))/g;
109
+ let match;
110
+ while ((match = regex.exec(outline)) !== null) {
111
+ const name = match[0].split(/[((]/)[0].trim();
112
+ const startCh = parseInt(match[2] ?? match[4] ?? "0", 10);
113
+ const endCh = parseInt(match[3] ?? match[5] ?? "0", 10);
114
+ if (startCh > 0 && endCh > 0) {
115
+ volumes.push({ name, startCh, endCh });
116
+ }
117
+ }
118
+ return volumes;
119
+ }
120
+ parseSummaryTable(raw) {
121
+ const lines = raw.split("\n");
122
+ const headerLines = lines.filter((l) => l.startsWith("|") && (l.includes("章节") || l.includes("Chapter") || l.includes("---")));
123
+ const dataLines = lines.filter((l) => l.startsWith("|") && !l.includes("章节") && !l.includes("Chapter") && !l.includes("---"));
124
+ const header = headerLines.join("\n");
125
+ const rows = dataLines.map((line) => {
126
+ const match = line.match(/\|\s*(\d+)\s*\|/);
127
+ return { chapter: match ? parseInt(match[1], 10) : 0, raw: line };
128
+ }).filter((r) => r.chapter > 0);
129
+ return { header, rows };
130
+ }
131
+ }
132
+ //# sourceMappingURL=consolidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consolidator.js","sourceRoot":"","sources":["../../src/agents/consolidator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"continuity.d.ts","sourceRoot":"","sources":["../../src/agents/continuity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAStC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA4KD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,WAAW,CAAC;IA0JvB,OAAO,CAAC,gBAAgB;IAmExB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;YAqBX,mBAAmB;YAcnB,YAAY;CAO3B"}
1
+ {"version":3,"file":"continuity.d.ts","sourceRoot":"","sources":["../../src/agents/continuity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAUtC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AA4KD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,WAAW,CAAC;IAkKvB,OAAO,CAAC,gBAAgB;IAmExB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;YAqBX,mBAAmB;YAcnB,YAAY;CAO3B"}
@@ -2,6 +2,7 @@ import { BaseAgent } from "./base.js";
2
2
  import { readGenreProfile, readBookRules } from "./rules-reader.js";
3
3
  import { getFanficDimensionConfig } from "./fanfic-dimensions.js";
4
4
  import { readFile, readdir } from "node:fs/promises";
5
+ import { filterHooks, filterSummaries, filterSubplots, filterEmotionalArcs, filterCharacterMatrix } from "../utils/context-filter.js";
5
6
  import { join } from "node:path";
6
7
  // Dimension ID → name mapping
7
8
  const DIMENSION_MAP = {
@@ -246,17 +247,24 @@ ${dimList}
246
247
  const ledgerBlock = gp.numericalSystem
247
248
  ? `\n## 资源账本\n${ledger}`
248
249
  : "";
249
- const subplotBlock = subplotBoard !== "(文件不存在)"
250
- ? `\n## 支线进度板\n${subplotBoard}\n`
250
+ // Smart context filtering for auditor — same logic as writer
251
+ const bookRulesForFilter = parsedRules?.rules ?? null;
252
+ const filteredSubplots = filterSubplots(subplotBoard);
253
+ const filteredArcs = filterEmotionalArcs(emotionalArcs, chapterNumber);
254
+ const filteredMatrix = filterCharacterMatrix(characterMatrix, volumeOutline, bookRulesForFilter?.protagonist?.name);
255
+ const filteredSummaries = filterSummaries(chapterSummaries, chapterNumber);
256
+ const filteredHooks = filterHooks(hooks);
257
+ const subplotBlock = filteredSubplots !== "(文件不存在)"
258
+ ? `\n## 支线进度板\n${filteredSubplots}\n`
251
259
  : "";
252
- const emotionalBlock = emotionalArcs !== "(文件不存在)"
253
- ? `\n## 情感弧线\n${emotionalArcs}\n`
260
+ const emotionalBlock = filteredArcs !== "(文件不存在)"
261
+ ? `\n## 情感弧线\n${filteredArcs}\n`
254
262
  : "";
255
- const matrixBlock = characterMatrix !== "(文件不存在)"
256
- ? `\n## 角色交互矩阵\n${characterMatrix}\n`
263
+ const matrixBlock = filteredMatrix !== "(文件不存在)"
264
+ ? `\n## 角色交互矩阵\n${filteredMatrix}\n`
257
265
  : "";
258
- const summariesBlock = chapterSummaries !== "(文件不存在)"
259
- ? `\n## 章节摘要(用于节奏检查)\n${chapterSummaries}\n`
266
+ const summariesBlock = filteredSummaries !== "(文件不存在)"
267
+ ? `\n## 章节摘要(用于节奏检查)\n${filteredSummaries}\n`
260
268
  : "";
261
269
  const canonBlock = hasParentCanon
262
270
  ? `\n## 正传正典参照(番外审查专用)\n${parentCanon}\n`
@@ -276,7 +284,7 @@ ${dimList}
276
284
  ${currentState}
277
285
  ${ledgerBlock}
278
286
  ## 伏笔池
279
- ${hooks}
287
+ ${filteredHooks}
280
288
  ${subplotBlock}${emotionalBlock}${matrixBlock}${summariesBlock}${canonBlock}${fanficCanonBlock}${outlineBlock}${prevChapterBlock}
281
289
  ## 文风指南
282
290
  ${styleGuide}
@@ -1 +1 @@
1
- {"version":3,"file":"continuity.js","sourceRoot":"","sources":["../../src/agents/continuity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuity.js","sourceRoot":"","sources":["../../src/agents/continuity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { BookConfig } from "../models/book.js";
2
+ import type { GenreProfile } from "../models/genre-profile.js";
3
+ /**
4
+ * Observer phase: extract ALL facts from the chapter.
5
+ * Intentionally over-extracts — better to catch too much than miss something.
6
+ * The Reflector phase will merge observations into truth files with cross-validation.
7
+ */
8
+ export declare function buildObserverSystemPrompt(book: BookConfig, genreProfile: GenreProfile, language?: "zh" | "en"): string;
9
+ export declare function buildObserverUserPrompt(chapterNumber: number, title: string, content: string, language?: "zh" | "en"): string;
10
+ //# sourceMappingURL=observer-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer-prompts.d.ts","sourceRoot":"","sources":["../../src/agents/observer-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GACrB,MAAM,CAsGR;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GACrB,MAAM,CAKR"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Observer phase: extract ALL facts from the chapter.
3
+ * Intentionally over-extracts — better to catch too much than miss something.
4
+ * The Reflector phase will merge observations into truth files with cross-validation.
5
+ */
6
+ export function buildObserverSystemPrompt(book, genreProfile, language) {
7
+ const isEnglish = (language ?? genreProfile.language) === "en";
8
+ const langPrefix = isEnglish
9
+ ? "【LANGUAGE OVERRIDE】ALL output MUST be in English.\n\n"
10
+ : "";
11
+ return `${langPrefix}${isEnglish ? "You are" : "你是"}${isEnglish ? " a fact extraction specialist" : "一个事实提取专家"}。${isEnglish ? "Read the chapter text and extract EVERY observable fact change." : "阅读章节正文,提取每一个可观察到的事实变化。"}
12
+
13
+ ${isEnglish ? "## Extraction Categories" : "## 提取类别"}
14
+
15
+ ${isEnglish ? `1. **Character actions**: Who did what, to whom, why
16
+ 2. **Location changes**: Who moved where, from where
17
+ 3. **Resource changes**: Items gained, lost, consumed, quantities
18
+ 4. **Relationship changes**: New encounters, trust/distrust shifts, alliances, betrayals
19
+ 5. **Emotional shifts**: Character mood before → after, trigger event
20
+ 6. **Information flow**: Who learned what, who is still unaware
21
+ 7. **Plot threads**: New mysteries planted, existing threads advanced, threads resolved
22
+ 8. **Time progression**: How much time passed, time markers mentioned
23
+ 9. **Physical state**: Injuries, healing, fatigue, power changes` : `1. **角色行为**:谁做了什么,对谁,为什么
24
+ 2. **位置变化**:谁去了哪里,从哪里来
25
+ 3. **资源变化**:获得、失去、消耗了什么,具体数量
26
+ 4. **关系变化**:新相遇、信任/不信任转变、结盟、背叛
27
+ 5. **情绪变化**:角色情绪从X到Y,触发事件是什么
28
+ 6. **信息流动**:谁知道了什么新信息,谁仍然不知情
29
+ 7. **剧情线索**:新埋下的悬念、已有线索的推进、线索的解答
30
+ 8. **时间推进**:过了多少时间,提到的时间标记
31
+ 9. **身体状态**:受伤、恢复、疲劳、战力变化`}
32
+
33
+ ${isEnglish ? "## Rules" : "## 规则"}
34
+
35
+ ${isEnglish ? `- Extract from the TEXT ONLY — do not infer what might happen
36
+ - Over-extract: if unsure whether something is significant, include it
37
+ - Be specific: "Lin Chen's left arm fractured" not "Lin Chen got hurt"
38
+ - Include chapter-internal time markers
39
+ - Note which characters are present in each scene` : `- 只从正文提取——不推测可能发生的事
40
+ - 宁多勿少:不确定是否重要时也要记录
41
+ - 具体化:"陆承烬左肩旧伤开裂" 而非 "陆承烬受伤了"
42
+ - 记录章节内的时间标记
43
+ - 标注每个场景中在场的角色`}
44
+
45
+ ${isEnglish ? "## Output Format" : "## 输出格式"}
46
+
47
+ === OBSERVATIONS ===
48
+
49
+ ${isEnglish ? `[CHARACTERS]
50
+ - <name>: <action/state change> (scene: <location>)
51
+
52
+ [LOCATIONS]
53
+ - <character> moved from <A> to <B>
54
+
55
+ [RESOURCES]
56
+ - <character> gained/lost <item> (quantity: <n>)
57
+
58
+ [RELATIONSHIPS]
59
+ - <charA> → <charB>: <change description>
60
+
61
+ [EMOTIONS]
62
+ - <character>: <before> → <after> (trigger: <event>)
63
+
64
+ [INFORMATION]
65
+ - <character> learned: <fact> (source: <how>)
66
+ - <character> still unaware of: <fact>
67
+
68
+ [PLOT_THREADS]
69
+ - NEW: <description>
70
+ - ADVANCED: <existing thread> — <progress>
71
+ - RESOLVED: <thread> — <resolution>
72
+
73
+ [TIME]
74
+ - <time markers, duration>
75
+
76
+ [PHYSICAL_STATE]
77
+ - <character>: <injury/healing/fatigue/power change>` : `[角色行为]
78
+ - <角色名>: <行为/状态变化> (场景: <地点>)
79
+
80
+ [位置变化]
81
+ - <角色> 从 <A> 到 <B>
82
+
83
+ [资源变化]
84
+ - <角色> 获得/失去 <物品> (数量: <n>)
85
+
86
+ [关系变化]
87
+ - <角色A> → <角色B>: <变化描述>
88
+
89
+ [情绪变化]
90
+ - <角色>: <之前> → <之后> (触发: <事件>)
91
+
92
+ [信息流动]
93
+ - <角色> 得知: <事实> (来源: <途径>)
94
+ - <角色> 仍不知: <事实>
95
+
96
+ [剧情线索]
97
+ - 新埋: <描述>
98
+ - 推进: <已有线索> — <进展>
99
+ - 回收: <线索> — <解答>
100
+
101
+ [时间]
102
+ - <时间标记、时长>
103
+
104
+ [身体状态]
105
+ - <角色>: <受伤/恢复/疲劳/战力变化>`}`;
106
+ }
107
+ export function buildObserverUserPrompt(chapterNumber, title, content, language) {
108
+ const isEnglish = language === "en";
109
+ return isEnglish
110
+ ? `Extract all facts from Chapter ${chapterNumber} "${title}":\n\n${content}`
111
+ : `请提取第${chapterNumber}章「${title}」中的所有事实:\n\n${content}`;
112
+ }
113
+ //# sourceMappingURL=observer-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observer-prompts.js","sourceRoot":"","sources":["../../src/agents/observer-prompts.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAgB,EAChB,YAA0B,EAC1B,QAAsB;IAEtB,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAE/D,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,wBAAwB;;EAE1N,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS;;EAElD,SAAS,CAAC,CAAC,CAAC;;;;;;;;iEAQmD,CAAC,CAAC,CAAC;;;;;;;;0BAQ1C;;EAExB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;;EAEhC,SAAS,CAAC,CAAC,CAAC;;;;kDAIoC,CAAC,CAAC,CAAC;;;;eAItC;;EAEb,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;;;;EAI1C,SAAS,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA4BuC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4BhC,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,aAAqB,EACrB,KAAa,EACb,OAAe,EACf,QAAsB;IAEtB,MAAM,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IACpC,OAAO,SAAS;QACd,CAAC,CAAC,kCAAkC,aAAa,KAAK,KAAK,SAAS,OAAO,EAAE;QAC7E,CAAC,CAAC,OAAO,aAAa,KAAK,KAAK,eAAe,OAAO,EAAE,CAAC;AAC7D,CAAC"}
@@ -14,5 +14,6 @@ export declare function buildSettlerUserPrompt(params: {
14
14
  readonly emotionalArcs: string;
15
15
  readonly characterMatrix: string;
16
16
  readonly volumeOutline: string;
17
+ readonly observations?: string;
17
18
  }): string;
18
19
  //# sourceMappingURL=settler-prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settler-prompts.d.ts","sourceRoot":"","sources":["../../src/agents/settler-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GACrB,MAAM,CA8DR;AA6DD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GAAG,MAAM,CAqCT"}
1
+ {"version":3,"file":"settler-prompts.d.ts","sourceRoot":"","sources":["../../src/agents/settler-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GACrB,MAAM,CA8DR;AA6DD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,MAAM,CAyCT"}
@@ -129,8 +129,11 @@ export function buildSettlerUserPrompt(params) {
129
129
  const matrixBlock = params.characterMatrix !== "(文件尚未创建)"
130
130
  ? `\n## 当前角色交互矩阵\n${params.characterMatrix}\n`
131
131
  : "";
132
+ const observationsBlock = params.observations
133
+ ? `\n## 观察日志(由 Observer 提取,包含本章所有事实变化)\n${params.observations}\n\n基于以上观察日志和正文,更新所有追踪文件。确保观察日志中的每一项变化都反映在对应的文件中。\n`
134
+ : "";
132
135
  return `请分析第${params.chapterNumber}章「${params.title}」的正文,更新所有追踪文件。
133
-
136
+ ${observationsBlock}
134
137
  ## 本章正文
135
138
 
136
139
  ${params.content}
@@ -1 +1 @@
1
- {"version":3,"file":"settler-prompts.js","sourceRoot":"","sources":["../../src/agents/settler-prompts.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,wBAAwB,CACtC,IAAgB,EAChB,YAA0B,EAC1B,SAA2B,EAC3B,QAAsB;IAEtB,MAAM,YAAY,GAAG,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC;IACvD,MAAM,SAAS,GAAG,YAAY,KAAK,IAAI,CAAC;IACxC,MAAM,cAAc,GAAG,YAAY,CAAC,eAAe;QACjD,CAAC,CAAC;8BACwB;QAC1B,CAAC,CAAC,gCAAgC,CAAC;IAErC,MAAM,SAAS,GAAG;;;;;;6BAMS,CAAC;IAE5B,MAAM,aAAa,GAAG,SAAS,EAAE,sBAAsB;QACrD,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,4KAA4K;QAC9K,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,GAAG,UAAU;;;;;;;;;;;;;;;;;;;;;;OAsBf,IAAI,CAAC,KAAK;OACV,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;OAC/B,IAAI,CAAC,QAAQ;EAClB,cAAc;EACd,SAAS,GAAG,aAAa;;;;EAIzB,wBAAwB,CAAC,YAAY,CAAC;;;;;;;oCAOJ,CAAC;AACrC,CAAC;AAED,SAAS,wBAAwB,CAAC,EAAgB;IAChD,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe;QACvC,CAAC,CAAC;;;;;;mCAM6B;QAC/B,CAAC,CAAC;;;;mCAI6B,CAAC;IAElC,MAAM,aAAa,GAAG,EAAE,CAAC,eAAe;QACtC,CAAC,CAAC,qDAAqD;QACvD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,GAAG,cAAc;;;;EAIxB,aAAa;;;;;;;;6DAQ8C,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;4CAyBvF,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAYtC;IACC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;QAC/B,CAAC,CAAC,gBAAgB,MAAM,CAAC,MAAM,IAAI;QACnC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,KAAK,UAAU;QAC3D,CAAC,CAAC,gBAAgB,MAAM,CAAC,gBAAgB,IAAI;QAC7C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,KAAK,UAAU;QACrD,CAAC,CAAC,iBAAiB,MAAM,CAAC,YAAY,IAAI;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,KAAK,UAAU;QACxD,CAAC,CAAC,gBAAgB,MAAM,CAAC,aAAa,IAAI;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,KAAK,UAAU;QACvD,CAAC,CAAC,kBAAkB,MAAM,CAAC,eAAe,IAAI;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,OAAO,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,KAAK;;;;EAInD,MAAM,CAAC,OAAO;;;EAGd,MAAM,CAAC,YAAY;EACnB,WAAW;;EAEX,MAAM,CAAC,KAAK;EACZ,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW;;EAE5D,MAAM,CAAC,aAAa;;4BAEM,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"settler-prompts.js","sourceRoot":"","sources":["../../src/agents/settler-prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { BaseAgent } from "./base.js";
2
+ export interface ValidationWarning {
3
+ readonly category: string;
4
+ readonly description: string;
5
+ }
6
+ export interface ValidationResult {
7
+ readonly warnings: ReadonlyArray<ValidationWarning>;
8
+ readonly passed: boolean;
9
+ }
10
+ /**
11
+ * Validates Settler output by comparing old and new truth files via LLM.
12
+ * Catches contradictions, missing state changes, and temporal inconsistencies.
13
+ * Non-blocking: returns warnings but does not prevent truth file writes.
14
+ */
15
+ export declare class StateValidatorAgent extends BaseAgent {
16
+ get name(): string;
17
+ validate(chapterContent: string, chapterNumber: number, oldState: string, newState: string, oldHooks: string, newHooks: string, language?: "zh" | "en"): Promise<ValidationResult>;
18
+ private computeDiff;
19
+ private parseResult;
20
+ }
21
+ //# sourceMappingURL=state-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-validator.d.ts","sourceRoot":"","sources":["../../src/agents/state-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IAChD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,QAAQ,CACZ,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,IAAI,GAAG,IAAW,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IA+D5B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,WAAW;CAgBpB"}