@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.
- package/dist/agents/architect.d.ts +4 -2
- package/dist/agents/architect.d.ts.map +1 -1
- package/dist/agents/architect.js +59 -13
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/chapter-analyzer.js +2 -2
- package/dist/agents/composer.d.ts +8 -0
- package/dist/agents/composer.d.ts.map +1 -1
- package/dist/agents/composer.js +170 -5
- package/dist/agents/composer.js.map +1 -1
- package/dist/agents/continuity.js +8 -8
- package/dist/agents/continuity.js.map +1 -1
- package/dist/agents/fanfic-canon-importer.d.ts +1 -0
- package/dist/agents/fanfic-canon-importer.d.ts.map +1 -1
- package/dist/agents/fanfic-canon-importer.js +19 -1
- package/dist/agents/fanfic-canon-importer.js.map +1 -1
- package/dist/agents/foundation-reviewer.d.ts +29 -0
- package/dist/agents/foundation-reviewer.d.ts.map +1 -0
- package/dist/agents/foundation-reviewer.js +153 -0
- package/dist/agents/foundation-reviewer.js.map +1 -0
- package/dist/agents/planner.d.ts +15 -0
- package/dist/agents/planner.d.ts.map +1 -1
- package/dist/agents/planner.js +247 -36
- package/dist/agents/planner.js.map +1 -1
- package/dist/agents/post-write-validator.d.ts +3 -1
- package/dist/agents/post-write-validator.d.ts.map +1 -1
- package/dist/agents/post-write-validator.js +165 -12
- package/dist/agents/post-write-validator.js.map +1 -1
- package/dist/agents/settler-prompts.d.ts +1 -0
- package/dist/agents/settler-prompts.d.ts.map +1 -1
- package/dist/agents/settler-prompts.js +8 -1
- package/dist/agents/settler-prompts.js.map +1 -1
- package/dist/agents/writer-prompts.js +10 -4
- package/dist/agents/writer-prompts.js.map +1 -1
- package/dist/agents/writer.d.ts +15 -0
- package/dist/agents/writer.d.ts.map +1 -1
- package/dist/agents/writer.js +181 -15
- package/dist/agents/writer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +25 -1
- package/dist/llm/provider.js.map +1 -1
- package/dist/models/chapter.d.ts +4 -4
- package/dist/models/chapter.d.ts.map +1 -1
- package/dist/models/chapter.js +1 -0
- package/dist/models/chapter.js.map +1 -1
- package/dist/models/input-governance.d.ts +165 -0
- package/dist/models/input-governance.d.ts.map +1 -1
- package/dist/models/input-governance.js +34 -0
- package/dist/models/input-governance.js.map +1 -1
- package/dist/models/project.d.ts +8 -0
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +1 -0
- package/dist/models/project.js.map +1 -1
- package/dist/models/runtime-state.d.ts +30 -0
- package/dist/models/runtime-state.d.ts.map +1 -1
- package/dist/models/runtime-state.js +9 -0
- package/dist/models/runtime-state.js.map +1 -1
- package/dist/pipeline/chapter-persistence.d.ts +33 -0
- package/dist/pipeline/chapter-persistence.d.ts.map +1 -0
- package/dist/pipeline/chapter-persistence.js +35 -0
- package/dist/pipeline/chapter-persistence.js.map +1 -0
- package/dist/pipeline/chapter-review-cycle.d.ts +79 -0
- package/dist/pipeline/chapter-review-cycle.d.ts.map +1 -0
- package/dist/pipeline/chapter-review-cycle.js +97 -0
- package/dist/pipeline/chapter-review-cycle.js.map +1 -0
- package/dist/pipeline/chapter-state-recovery.d.ts +59 -0
- package/dist/pipeline/chapter-state-recovery.d.ts.map +1 -0
- package/dist/pipeline/chapter-state-recovery.js +132 -0
- package/dist/pipeline/chapter-state-recovery.js.map +1 -0
- package/dist/pipeline/chapter-truth-validation.d.ts +41 -0
- package/dist/pipeline/chapter-truth-validation.d.ts.map +1 -0
- package/dist/pipeline/chapter-truth-validation.js +67 -0
- package/dist/pipeline/chapter-truth-validation.js.map +1 -0
- package/dist/pipeline/persisted-governed-plan.d.ts +4 -0
- package/dist/pipeline/persisted-governed-plan.d.ts.map +1 -0
- package/dist/pipeline/persisted-governed-plan.js +85 -0
- package/dist/pipeline/persisted-governed-plan.js.map +1 -0
- package/dist/pipeline/runner.d.ts +10 -7
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +459 -283
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/state/manager.d.ts +8 -0
- package/dist/state/manager.d.ts.map +1 -1
- package/dist/state/manager.js +106 -9
- package/dist/state/manager.js.map +1 -1
- package/dist/state/memory-db.d.ts +2 -0
- package/dist/state/memory-db.d.ts.map +1 -1
- package/dist/state/memory-db.js +13 -2
- package/dist/state/memory-db.js.map +1 -1
- package/dist/state/runtime-state-store.d.ts.map +1 -1
- package/dist/state/runtime-state-store.js +1 -0
- package/dist/state/runtime-state-store.js.map +1 -1
- package/dist/state/state-bootstrap.d.ts +2 -5
- package/dist/state/state-bootstrap.d.ts.map +1 -1
- package/dist/state/state-bootstrap.js +61 -141
- package/dist/state/state-bootstrap.js.map +1 -1
- package/dist/state/state-projections.d.ts.map +1 -1
- package/dist/state/state-projections.js +6 -4
- package/dist/state/state-projections.js.map +1 -1
- package/dist/state/state-reducer.d.ts.map +1 -1
- package/dist/state/state-reducer.js +6 -0
- package/dist/state/state-reducer.js.map +1 -1
- package/dist/utils/cadence-policy.d.ts +36 -0
- package/dist/utils/cadence-policy.d.ts.map +1 -0
- package/dist/utils/cadence-policy.js +38 -0
- package/dist/utils/cadence-policy.js.map +1 -0
- package/dist/utils/chapter-cadence.d.ts +34 -0
- package/dist/utils/chapter-cadence.d.ts.map +1 -0
- package/dist/utils/chapter-cadence.js +142 -0
- package/dist/utils/chapter-cadence.js.map +1 -0
- package/dist/utils/context-filter.d.ts +2 -2
- package/dist/utils/context-filter.d.ts.map +1 -1
- package/dist/utils/context-filter.js +3 -2
- package/dist/utils/context-filter.js.map +1 -1
- package/dist/utils/governed-context.d.ts +4 -0
- package/dist/utils/governed-context.d.ts.map +1 -1
- package/dist/utils/governed-context.js +20 -0
- package/dist/utils/governed-context.js.map +1 -1
- package/dist/utils/governed-working-set.d.ts.map +1 -1
- package/dist/utils/governed-working-set.js +2 -1
- package/dist/utils/governed-working-set.js.map +1 -1
- package/dist/utils/hook-agenda.d.ts +21 -0
- package/dist/utils/hook-agenda.d.ts.map +1 -0
- package/dist/utils/hook-agenda.js +95 -0
- package/dist/utils/hook-agenda.js.map +1 -0
- package/dist/utils/hook-arbiter.d.ts.map +1 -1
- package/dist/utils/hook-arbiter.js +7 -0
- package/dist/utils/hook-arbiter.js.map +1 -1
- package/dist/utils/hook-governance.d.ts +2 -0
- package/dist/utils/hook-governance.d.ts.map +1 -1
- package/dist/utils/hook-governance.js +19 -3
- package/dist/utils/hook-governance.js.map +1 -1
- package/dist/utils/hook-health.d.ts +1 -0
- package/dist/utils/hook-health.d.ts.map +1 -1
- package/dist/utils/hook-health.js +85 -26
- package/dist/utils/hook-health.js.map +1 -1
- package/dist/utils/hook-lifecycle.d.ts +34 -0
- package/dist/utils/hook-lifecycle.d.ts.map +1 -0
- package/dist/utils/hook-lifecycle.js +125 -0
- package/dist/utils/hook-lifecycle.js.map +1 -0
- package/dist/utils/hook-policy.d.ts +74 -0
- package/dist/utils/hook-policy.d.ts.map +1 -0
- package/dist/utils/hook-policy.js +126 -0
- package/dist/utils/hook-policy.js.map +1 -0
- package/dist/utils/long-span-fatigue.d.ts.map +1 -1
- package/dist/utils/long-span-fatigue.js +75 -28
- package/dist/utils/long-span-fatigue.js.map +1 -1
- package/dist/utils/memory-retrieval.d.ts +2 -16
- package/dist/utils/memory-retrieval.d.ts.map +1 -1
- package/dist/utils/memory-retrieval.js +14 -269
- package/dist/utils/memory-retrieval.js.map +1 -1
- package/dist/utils/story-markdown.d.ts +13 -0
- package/dist/utils/story-markdown.d.ts.map +1 -0
- package/dist/utils/story-markdown.js +218 -0
- package/dist/utils/story-markdown.js.map +1 -0
- 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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
|