@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
@@ -0,0 +1,132 @@
1
+ export async function retrySettlementAfterValidationFailure(params) {
2
+ params.logWarn?.({
3
+ zh: `状态校验失败,正在仅重试结算层(第${params.chapterNumber}章)`,
4
+ en: `State validation failed; retrying settlement only for chapter ${params.chapterNumber}`,
5
+ });
6
+ const retryOutput = await params.writer.settleChapterState({
7
+ book: params.book,
8
+ bookDir: params.bookDir,
9
+ chapterNumber: params.chapterNumber,
10
+ title: params.title,
11
+ content: params.content,
12
+ chapterIntent: params.reducedControlInput?.chapterIntent,
13
+ contextPackage: params.reducedControlInput?.contextPackage,
14
+ ruleStack: params.reducedControlInput?.ruleStack,
15
+ validationFeedback: buildStateValidationFeedback(params.originalValidation.warnings, params.language),
16
+ });
17
+ let retryValidation;
18
+ try {
19
+ retryValidation = await params.validator.validate(params.content, params.chapterNumber, params.oldState, retryOutput.updatedState, params.oldHooks, retryOutput.updatedHooks, params.language);
20
+ }
21
+ catch (error) {
22
+ throw new Error(`State validation retry failed for chapter ${params.chapterNumber}: ${String(error)}`);
23
+ }
24
+ if (retryValidation.warnings.length > 0) {
25
+ params.logWarn?.({
26
+ zh: `状态校验重试后,第${params.chapterNumber}章仍有 ${retryValidation.warnings.length} 条警告`,
27
+ en: `State validation retry still reports ${retryValidation.warnings.length} warning(s) for chapter ${params.chapterNumber}`,
28
+ });
29
+ for (const warning of retryValidation.warnings) {
30
+ params.logger?.warn(` [${warning.category}] ${warning.description}`);
31
+ }
32
+ }
33
+ if (retryValidation.passed) {
34
+ return {
35
+ kind: "recovered",
36
+ output: retryOutput,
37
+ validation: retryValidation,
38
+ };
39
+ }
40
+ return {
41
+ kind: "degraded",
42
+ issues: buildStateDegradedIssues(retryValidation.warnings, params.language),
43
+ };
44
+ }
45
+ export function buildStateValidationFeedback(warnings, language) {
46
+ if (warnings.length === 0) {
47
+ return language === "en"
48
+ ? "The previous settlement contradicted the chapter text. Reconcile truth files strictly to the body."
49
+ : "上一次状态结算与正文矛盾。请严格以正文为准修正 truth files。";
50
+ }
51
+ if (language === "en") {
52
+ return [
53
+ "The previous settlement failed validation. Fix these contradictions against the chapter body:",
54
+ ...warnings.map((warning) => `- [${warning.category}] ${warning.description}`),
55
+ ].join("\n");
56
+ }
57
+ return [
58
+ "上一次状态结算未通过校验。请对照正文修正以下矛盾:",
59
+ ...warnings.map((warning) => `- [${warning.category}] ${warning.description}`),
60
+ ].join("\n");
61
+ }
62
+ export function buildStateDegradedIssues(warnings, language) {
63
+ if (warnings.length > 0) {
64
+ return warnings.map((warning) => ({
65
+ severity: "warning",
66
+ category: "state-validation",
67
+ description: warning.description,
68
+ suggestion: language === "en"
69
+ ? "Repair chapter state from the persisted body before continuing."
70
+ : "请先基于已保存正文修复本章 state,再继续后续章节。",
71
+ }));
72
+ }
73
+ return [{
74
+ severity: "warning",
75
+ category: "state-validation",
76
+ description: language === "en"
77
+ ? "State validation still failed after settlement retry."
78
+ : "状态结算重试后仍未通过校验。",
79
+ suggestion: language === "en"
80
+ ? "Repair chapter state from the persisted body before continuing."
81
+ : "请先基于已保存正文修复本章 state,再继续后续章节。",
82
+ }];
83
+ }
84
+ export function buildStateDegradedPersistenceOutput(params) {
85
+ return {
86
+ ...params.output,
87
+ runtimeStateDelta: undefined,
88
+ runtimeStateSnapshot: undefined,
89
+ updatedState: params.oldState,
90
+ updatedLedger: params.oldLedger,
91
+ updatedHooks: params.oldHooks,
92
+ updatedChapterSummaries: undefined,
93
+ };
94
+ }
95
+ export function buildStateDegradedReviewNote(baseStatus, issues) {
96
+ return JSON.stringify({
97
+ kind: "state-degraded",
98
+ baseStatus,
99
+ injectedIssues: issues.map((issue) => `[${issue.severity}] ${issue.description}`),
100
+ });
101
+ }
102
+ export function parseStateDegradedReviewNote(reviewNote) {
103
+ if (!reviewNote) {
104
+ return null;
105
+ }
106
+ try {
107
+ const parsed = JSON.parse(reviewNote);
108
+ if (parsed.kind !== "state-degraded"
109
+ || (parsed.baseStatus !== "ready-for-review" && parsed.baseStatus !== "audit-failed")
110
+ || !Array.isArray(parsed.injectedIssues)) {
111
+ return null;
112
+ }
113
+ return {
114
+ kind: "state-degraded",
115
+ baseStatus: parsed.baseStatus,
116
+ injectedIssues: parsed.injectedIssues.filter((issue) => typeof issue === "string"),
117
+ };
118
+ }
119
+ catch {
120
+ return null;
121
+ }
122
+ }
123
+ export function resolveStateDegradedBaseStatus(chapter) {
124
+ const metadata = parseStateDegradedReviewNote(chapter.reviewNote);
125
+ if (metadata) {
126
+ return metadata.baseStatus;
127
+ }
128
+ return chapter.auditIssues.some((issue) => issue.startsWith("[critical]"))
129
+ ? "audit-failed"
130
+ : "ready-for-review";
131
+ }
132
+ //# sourceMappingURL=chapter-state-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chapter-state-recovery.js","sourceRoot":"","sources":["../../src/pipeline/chapter-state-recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { AuditIssue, AuditResult } from "../agents/continuity.js";
2
+ import type { ValidationResult, StateValidatorAgent } from "../agents/state-validator.js";
3
+ import type { WriteChapterOutput, WriterAgent } from "../agents/writer.js";
4
+ import type { BookConfig } from "../models/book.js";
5
+ import type { ContextPackage, RuleStack } from "../models/input-governance.js";
6
+ import type { Logger } from "../utils/logger.js";
7
+ import type { LengthLanguage } from "../utils/length-metrics.js";
8
+ export declare function validateChapterTruthPersistence(params: {
9
+ readonly writer: Pick<WriterAgent, "settleChapterState">;
10
+ readonly validator: Pick<StateValidatorAgent, "validate">;
11
+ readonly book: BookConfig;
12
+ readonly bookDir: string;
13
+ readonly chapterNumber: number;
14
+ readonly title: string;
15
+ readonly content: string;
16
+ readonly persistenceOutput: WriteChapterOutput;
17
+ readonly auditResult: AuditResult;
18
+ readonly previousTruth: {
19
+ readonly oldState: string;
20
+ readonly oldHooks: string;
21
+ readonly oldLedger: string;
22
+ };
23
+ readonly reducedControlInput?: {
24
+ chapterIntent: string;
25
+ contextPackage: ContextPackage;
26
+ ruleStack: RuleStack;
27
+ };
28
+ readonly language: LengthLanguage;
29
+ readonly logWarn: (message: {
30
+ zh: string;
31
+ en: string;
32
+ }) => void;
33
+ readonly logger?: Pick<Logger, "warn">;
34
+ }): Promise<{
35
+ readonly validation: ValidationResult;
36
+ readonly chapterStatus: "state-degraded" | null;
37
+ readonly degradedIssues: ReadonlyArray<AuditIssue>;
38
+ readonly persistenceOutput: WriteChapterOutput;
39
+ readonly auditResult: AuditResult;
40
+ }>;
41
+ //# sourceMappingURL=chapter-truth-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chapter-truth-validation.d.ts","sourceRoot":"","sources":["../../src/pipeline/chapter-truth-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAMjE,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,SAAS,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACnD,QAAQ,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC,CA2ED"}
@@ -0,0 +1,67 @@
1
+ import { buildStateDegradedPersistenceOutput, retrySettlementAfterValidationFailure, } from "./chapter-state-recovery.js";
2
+ export async function validateChapterTruthPersistence(params) {
3
+ let validation;
4
+ let chapterStatus = null;
5
+ let degradedIssues = [];
6
+ let persistenceOutput = params.persistenceOutput;
7
+ let auditResult = params.auditResult;
8
+ try {
9
+ validation = await params.validator.validate(params.content, params.chapterNumber, params.previousTruth.oldState, persistenceOutput.updatedState, params.previousTruth.oldHooks, persistenceOutput.updatedHooks, params.language);
10
+ }
11
+ catch (error) {
12
+ throw new Error(`State validation failed for chapter ${params.chapterNumber}: ${String(error)}`);
13
+ }
14
+ if (validation.warnings.length > 0) {
15
+ params.logWarn({
16
+ zh: `状态校验:第${params.chapterNumber}章发现 ${validation.warnings.length} 条警告`,
17
+ en: `State validation: ${validation.warnings.length} warning(s) for chapter ${params.chapterNumber}`,
18
+ });
19
+ for (const warning of validation.warnings) {
20
+ params.logger?.warn(` [${warning.category}] ${warning.description}`);
21
+ }
22
+ }
23
+ if (!validation.passed) {
24
+ const recovery = await retrySettlementAfterValidationFailure({
25
+ writer: params.writer,
26
+ validator: params.validator,
27
+ book: params.book,
28
+ bookDir: params.bookDir,
29
+ chapterNumber: params.chapterNumber,
30
+ title: params.title,
31
+ content: params.content,
32
+ reducedControlInput: params.reducedControlInput,
33
+ oldState: params.previousTruth.oldState,
34
+ oldHooks: params.previousTruth.oldHooks,
35
+ originalValidation: validation,
36
+ language: params.language,
37
+ logWarn: params.logWarn,
38
+ logger: params.logger,
39
+ });
40
+ if (recovery.kind === "recovered") {
41
+ persistenceOutput = recovery.output;
42
+ validation = recovery.validation;
43
+ }
44
+ else {
45
+ chapterStatus = "state-degraded";
46
+ degradedIssues = recovery.issues;
47
+ persistenceOutput = buildStateDegradedPersistenceOutput({
48
+ output: persistenceOutput,
49
+ oldState: params.previousTruth.oldState,
50
+ oldHooks: params.previousTruth.oldHooks,
51
+ oldLedger: params.previousTruth.oldLedger,
52
+ });
53
+ auditResult = {
54
+ ...auditResult,
55
+ issues: [...auditResult.issues, ...recovery.issues],
56
+ };
57
+ }
58
+ }
59
+ return {
60
+ validation,
61
+ chapterStatus,
62
+ degradedIssues,
63
+ persistenceOutput,
64
+ auditResult,
65
+ };
66
+ }
67
+ //# sourceMappingURL=chapter-truth-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chapter-truth-validation.js","sourceRoot":"","sources":["../../src/pipeline/chapter-truth-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PlanChapterOutput } from "../agents/planner.js";
2
+ export declare function loadPersistedPlan(bookDir: string, chapterNumber: number): Promise<PlanChapterOutput | null>;
3
+ export declare function relativeToBookDir(bookDir: string, absolutePath: string): string;
4
+ //# sourceMappingURL=persisted-governed-plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persisted-governed-plan.d.ts","sourceRoot":"","sources":["../../src/pipeline/persisted-governed-plan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA+CnC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/E"}
@@ -0,0 +1,85 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join, relative } from "node:path";
3
+ import { ChapterIntentSchema } from "../models/input-governance.js";
4
+ export async function loadPersistedPlan(bookDir, chapterNumber) {
5
+ const runtimePath = join(bookDir, "story", "runtime", `chapter-${String(chapterNumber).padStart(4, "0")}.intent.md`);
6
+ try {
7
+ const intentMarkdown = await readFile(runtimePath, "utf-8");
8
+ const sections = parseIntentSections(intentMarkdown);
9
+ const goal = readIntentScalar(sections, "Goal");
10
+ if (!goal || isInvalidPersistedIntentScalar(goal))
11
+ return null;
12
+ const outlineNode = readIntentScalar(sections, "Outline Node");
13
+ if (outlineNode && outlineNode !== "(not found)" && isInvalidPersistedIntentScalar(outlineNode)) {
14
+ return null;
15
+ }
16
+ const conflicts = readIntentList(sections, "Conflicts")
17
+ .map((line) => {
18
+ const separator = line.indexOf(":");
19
+ if (separator < 0)
20
+ return null;
21
+ const type = line.slice(0, separator).trim();
22
+ const resolution = line.slice(separator + 1).trim();
23
+ if (!type || !resolution)
24
+ return null;
25
+ return { type, resolution };
26
+ })
27
+ .filter((conflict) => conflict !== null);
28
+ return {
29
+ intent: ChapterIntentSchema.parse({
30
+ chapter: chapterNumber,
31
+ goal,
32
+ outlineNode: outlineNode && outlineNode !== "(not found)" ? outlineNode : undefined,
33
+ mustKeep: readIntentList(sections, "Must Keep"),
34
+ mustAvoid: readIntentList(sections, "Must Avoid"),
35
+ styleEmphasis: readIntentList(sections, "Style Emphasis"),
36
+ conflicts,
37
+ }),
38
+ intentMarkdown,
39
+ plannerInputs: [runtimePath],
40
+ runtimePath,
41
+ };
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ export function relativeToBookDir(bookDir, absolutePath) {
48
+ return relative(bookDir, absolutePath).replaceAll("\\", "/");
49
+ }
50
+ function parseIntentSections(markdown) {
51
+ const sections = new Map();
52
+ let current = null;
53
+ for (const line of markdown.split("\n")) {
54
+ if (line.startsWith("## ")) {
55
+ current = line.slice(3).trim();
56
+ sections.set(current, []);
57
+ continue;
58
+ }
59
+ if (!current)
60
+ continue;
61
+ sections.get(current)?.push(line);
62
+ }
63
+ return sections;
64
+ }
65
+ function readIntentScalar(sections, name) {
66
+ const lines = sections.get(name) ?? [];
67
+ const value = lines.map((line) => line.trim()).find((line) => line.length > 0);
68
+ return value && value !== "- none" ? value : undefined;
69
+ }
70
+ function readIntentList(sections, name) {
71
+ return (sections.get(name) ?? [])
72
+ .map((line) => line.trim())
73
+ .filter((line) => line.startsWith("-") && line !== "- none")
74
+ .map((line) => line.replace(/^-\s*/, ""));
75
+ }
76
+ function isInvalidPersistedIntentScalar(value) {
77
+ const normalized = value.trim();
78
+ if (!normalized)
79
+ return true;
80
+ if (/^[*_`~::|.-]+$/.test(normalized))
81
+ return true;
82
+ return (/^\((describe|briefly describe|write)\b[\s\S]*\)$/i.test(normalized)
83
+ || /^((?:在这里描述|描述|填写|写下)[\s\S]*)$/u.test(normalized));
84
+ }
85
+ //# sourceMappingURL=persisted-governed-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persisted-governed-plan.js","sourceRoot":"","sources":["../../src/pipeline/persisted-governed-plan.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ export interface ChapterPipelineResult {
32
32
  readonly wordCount: number;
33
33
  readonly auditResult: AuditResult;
34
34
  readonly revised: boolean;
35
- readonly status: "ready-for-review" | "audit-failed";
35
+ readonly status: "ready-for-review" | "audit-failed" | "state-degraded";
36
36
  readonly lengthWarnings?: ReadonlyArray<string>;
37
37
  readonly lengthTelemetry?: LengthTelemetry;
38
38
  readonly tokenUsage?: TokenUsageSummary;
@@ -114,6 +114,9 @@ export declare class PipelineRunner {
114
114
  private logStage;
115
115
  private logInfo;
116
116
  private logWarn;
117
+ private tryGenerateStyleGuide;
118
+ private generateAndReviewFoundation;
119
+ private buildFoundationReviewFeedback;
117
120
  private agentCtx;
118
121
  private resolveOverride;
119
122
  private agentCtxFor;
@@ -140,7 +143,9 @@ export declare class PipelineRunner {
140
143
  /** Get book status overview. */
141
144
  getBookStatus(bookId: string): Promise<BookStatusInfo>;
142
145
  writeNextChapter(bookId: string, wordCount?: number, temperatureOverride?: number): Promise<ChapterPipelineResult>;
146
+ repairChapterState(bookId: string, chapterNumber?: number): Promise<ChapterPipelineResult>;
143
147
  private _writeNextChapterLocked;
148
+ private _repairChapterStateLocked;
144
149
  /**
145
150
  * Generate a qualitative style guide from reference text via LLM.
146
151
  * Also saves the statistical style_profile.json.
@@ -151,6 +156,7 @@ export declare class PipelineRunner {
151
156
  * Reads parent's truth files, uses LLM to generate parent_canon.md in target book.
152
157
  */
153
158
  importCanon(targetBookId: string, parentBookId: string): Promise<string>;
159
+ private readParentChapterSample;
154
160
  /**
155
161
  * Import existing chapters into a book. Reverse-engineers all truth files
156
162
  * via sequential replay so the Writer and Auditor can continue naturally.
@@ -161,6 +167,7 @@ export declare class PipelineRunner {
161
167
  importChapters(input: ImportChaptersInput): Promise<ImportChaptersResult>;
162
168
  private static addUsage;
163
169
  private buildPersistenceOutput;
170
+ private assertNoPendingStateRepair;
164
171
  private prepareWriteInput;
165
172
  private resetImportReplayTruthFiles;
166
173
  private buildImportReplayStateSeed;
@@ -180,6 +187,8 @@ export declare class PipelineRunner {
180
187
  private factKey;
181
188
  private buildLengthWarnings;
182
189
  private buildLengthTelemetry;
190
+ private persistAuditDriftGuidance;
191
+ private stripAuditDriftCorrectionBlock;
183
192
  private logLengthWarnings;
184
193
  private restoreLostAuditIssues;
185
194
  private restoreActionableAuditIfLost;
@@ -187,12 +196,6 @@ export declare class PipelineRunner {
187
196
  private markBookActiveIfNeeded;
188
197
  private createGovernedArtifacts;
189
198
  private resolveGovernedPlan;
190
- private loadPersistedPlan;
191
- private parseIntentSections;
192
- private readIntentScalar;
193
- private readIntentList;
194
- private isInvalidPersistedIntentScalar;
195
- private relativeToBookDir;
196
199
  private emitWebhook;
197
200
  private readChapterContent;
198
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}