@actalk/inkos-core 0.5.1 → 0.6.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 +6 -1
- package/dist/agents/architect.d.ts.map +1 -1
- package/dist/agents/architect.js +362 -83
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/chapter-analyzer.d.ts +6 -0
- package/dist/agents/chapter-analyzer.d.ts.map +1 -1
- package/dist/agents/chapter-analyzer.js +220 -17
- package/dist/agents/chapter-analyzer.js.map +1 -1
- package/dist/agents/composer.d.ts +28 -0
- package/dist/agents/composer.d.ts.map +1 -0
- package/dist/agents/composer.js +154 -0
- package/dist/agents/composer.js.map +1 -0
- package/dist/agents/consolidator.d.ts.map +1 -1
- package/dist/agents/consolidator.js +17 -8
- package/dist/agents/consolidator.js.map +1 -1
- package/dist/agents/continuity.d.ts +10 -0
- package/dist/agents/continuity.d.ts.map +1 -1
- package/dist/agents/continuity.js +312 -133
- package/dist/agents/continuity.js.map +1 -1
- package/dist/agents/en-prompt-sections.d.ts.map +1 -1
- package/dist/agents/en-prompt-sections.js +1 -0
- package/dist/agents/en-prompt-sections.js.map +1 -1
- package/dist/agents/length-normalizer.d.ts +32 -0
- package/dist/agents/length-normalizer.d.ts.map +1 -0
- package/dist/agents/length-normalizer.js +156 -0
- package/dist/agents/length-normalizer.js.map +1 -0
- package/dist/agents/planner.d.ts +42 -0
- package/dist/agents/planner.d.ts.map +1 -0
- package/dist/agents/planner.js +382 -0
- package/dist/agents/planner.js.map +1 -0
- package/dist/agents/post-write-validator.d.ts +6 -1
- package/dist/agents/post-write-validator.d.ts.map +1 -1
- package/dist/agents/post-write-validator.js +88 -2
- package/dist/agents/post-write-validator.js.map +1 -1
- package/dist/agents/reviser.d.ts +10 -1
- package/dist/agents/reviser.d.ts.map +1 -1
- package/dist/agents/reviser.js +151 -36
- package/dist/agents/reviser.js.map +1 -1
- package/dist/agents/rules-reader.d.ts +1 -0
- package/dist/agents/rules-reader.d.ts.map +1 -1
- package/dist/agents/rules-reader.js +13 -0
- package/dist/agents/rules-reader.js.map +1 -1
- package/dist/agents/settler-delta-parser.d.ts +7 -0
- package/dist/agents/settler-delta-parser.d.ts.map +1 -0
- package/dist/agents/settler-delta-parser.js +35 -0
- package/dist/agents/settler-delta-parser.js.map +1 -0
- package/dist/agents/settler-prompts.d.ts +2 -0
- package/dist/agents/settler-prompts.d.ts.map +1 -1
- package/dist/agents/settler-prompts.js +77 -63
- package/dist/agents/settler-prompts.js.map +1 -1
- package/dist/agents/writer-parser.d.ts +3 -2
- package/dist/agents/writer-parser.d.ts.map +1 -1
- package/dist/agents/writer-parser.js +44 -13
- package/dist/agents/writer-parser.js.map +1 -1
- package/dist/agents/writer-prompts.d.ts +2 -1
- package/dist/agents/writer-prompts.d.ts.map +1 -1
- package/dist/agents/writer-prompts.js +65 -21
- package/dist/agents/writer-prompts.js.map +1 -1
- package/dist/agents/writer.d.ts +28 -1
- package/dist/agents/writer.d.ts.map +1 -1
- package/dist/agents/writer.js +426 -67
- package/dist/agents/writer.js.map +1 -1
- package/dist/index.d.ts +18 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/llm/provider.d.ts +1 -0
- package/dist/llm/provider.d.ts.map +1 -1
- package/dist/llm/provider.js +19 -6
- package/dist/llm/provider.js.map +1 -1
- package/dist/models/chapter.d.ts +71 -0
- package/dist/models/chapter.d.ts.map +1 -1
- package/dist/models/chapter.js +3 -0
- package/dist/models/chapter.js.map +1 -1
- package/dist/models/input-governance.d.ts +351 -0
- package/dist/models/input-governance.d.ts.map +1 -0
- package/dist/models/input-governance.js +78 -0
- package/dist/models/input-governance.js.map +1 -0
- package/dist/models/length-governance.d.ts +93 -0
- package/dist/models/length-governance.d.ts.map +1 -0
- package/dist/models/length-governance.js +34 -0
- package/dist/models/length-governance.js.map +1 -0
- package/dist/models/project.d.ts +5 -0
- package/dist/models/project.d.ts.map +1 -1
- package/dist/models/project.js +2 -0
- package/dist/models/project.js.map +1 -1
- package/dist/models/runtime-state.d.ts +521 -0
- package/dist/models/runtime-state.d.ts.map +1 -0
- package/dist/models/runtime-state.js +78 -0
- package/dist/models/runtime-state.js.map +1 -0
- package/dist/pipeline/agent.d.ts +2 -1
- package/dist/pipeline/agent.d.ts.map +1 -1
- package/dist/pipeline/agent.js +90 -5
- package/dist/pipeline/agent.js.map +1 -1
- package/dist/pipeline/runner.d.ts +65 -1
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +1029 -73
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/state/manager.d.ts +14 -0
- package/dist/state/manager.d.ts.map +1 -1
- package/dist/state/manager.js +114 -0
- package/dist/state/manager.js.map +1 -1
- package/dist/state/memory-db.d.ts +15 -0
- package/dist/state/memory-db.d.ts.map +1 -1
- package/dist/state/memory-db.js +119 -10
- package/dist/state/memory-db.js.map +1 -1
- package/dist/state/runtime-state-store.d.ts +23 -0
- package/dist/state/runtime-state-store.d.ts.map +1 -0
- package/dist/state/runtime-state-store.js +100 -0
- package/dist/state/runtime-state-store.js.map +1 -0
- package/dist/state/state-bootstrap.d.ts +19 -0
- package/dist/state/state-bootstrap.d.ts.map +1 -0
- package/dist/state/state-bootstrap.js +394 -0
- package/dist/state/state-bootstrap.js.map +1 -0
- package/dist/state/state-projections.d.ts +5 -0
- package/dist/state/state-projections.d.ts.map +1 -0
- package/dist/state/state-projections.js +164 -0
- package/dist/state/state-projections.js.map +1 -0
- package/dist/state/state-reducer.d.ts +12 -0
- package/dist/state/state-reducer.d.ts.map +1 -0
- package/dist/state/state-reducer.js +146 -0
- package/dist/state/state-reducer.js.map +1 -0
- package/dist/state/state-validator.d.ts +12 -0
- package/dist/state/state-validator.d.ts.map +1 -0
- package/dist/state/state-validator.js +56 -0
- package/dist/state/state-validator.js.map +1 -0
- package/dist/utils/chapter-splitter.d.ts +2 -0
- package/dist/utils/chapter-splitter.d.ts.map +1 -1
- package/dist/utils/chapter-splitter.js +22 -4
- package/dist/utils/chapter-splitter.js.map +1 -1
- package/dist/utils/config-loader.d.ts +3 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +14 -3
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/context-filter.js +1 -1
- package/dist/utils/context-filter.js.map +1 -1
- package/dist/utils/governed-context.d.ts +7 -0
- package/dist/utils/governed-context.d.ts.map +1 -0
- package/dist/utils/governed-context.js +22 -0
- package/dist/utils/governed-context.js.map +1 -0
- package/dist/utils/governed-working-set.d.ts +18 -0
- package/dist/utils/governed-working-set.d.ts.map +1 -0
- package/dist/utils/governed-working-set.js +295 -0
- package/dist/utils/governed-working-set.js.map +1 -0
- package/dist/utils/hook-governance.d.ts +26 -0
- package/dist/utils/hook-governance.d.ts.map +1 -0
- package/dist/utils/hook-governance.js +128 -0
- package/dist/utils/hook-governance.js.map +1 -0
- package/dist/utils/hook-health.d.ts +14 -0
- package/dist/utils/hook-health.d.ts.map +1 -0
- package/dist/utils/hook-health.js +68 -0
- package/dist/utils/hook-health.js.map +1 -0
- package/dist/utils/length-metrics.d.ts +10 -0
- package/dist/utils/length-metrics.d.ts.map +1 -0
- package/dist/utils/length-metrics.js +85 -0
- package/dist/utils/length-metrics.js.map +1 -0
- package/dist/utils/long-span-fatigue.d.ts +28 -0
- package/dist/utils/long-span-fatigue.d.ts.map +1 -0
- package/dist/utils/long-span-fatigue.js +359 -0
- package/dist/utils/long-span-fatigue.js.map +1 -0
- package/dist/utils/memory-retrieval.d.ts +39 -0
- package/dist/utils/memory-retrieval.d.ts.map +1 -0
- package/dist/utils/memory-retrieval.js +574 -0
- package/dist/utils/memory-retrieval.js.map +1 -0
- package/dist/utils/spot-fix-patches.d.ts +14 -0
- package/dist/utils/spot-fix-patches.d.ts.map +1 -0
- package/dist/utils/spot-fix-patches.js +75 -0
- package/dist/utils/spot-fix-patches.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { BaseAgent } from "./base.js";
|
|
4
|
+
import { parseBookRules } from "../models/book-rules.js";
|
|
5
|
+
import { ChapterIntentSchema } from "../models/input-governance.js";
|
|
6
|
+
import { buildPlannerHookAgenda, renderHookSnapshot, renderSummarySnapshot, retrieveMemorySelection, } from "../utils/memory-retrieval.js";
|
|
7
|
+
export class PlannerAgent extends BaseAgent {
|
|
8
|
+
get name() {
|
|
9
|
+
return "planner";
|
|
10
|
+
}
|
|
11
|
+
async planChapter(input) {
|
|
12
|
+
const storyDir = join(input.bookDir, "story");
|
|
13
|
+
const runtimeDir = join(storyDir, "runtime");
|
|
14
|
+
await mkdir(runtimeDir, { recursive: true });
|
|
15
|
+
const sourcePaths = {
|
|
16
|
+
authorIntent: join(storyDir, "author_intent.md"),
|
|
17
|
+
currentFocus: join(storyDir, "current_focus.md"),
|
|
18
|
+
storyBible: join(storyDir, "story_bible.md"),
|
|
19
|
+
volumeOutline: join(storyDir, "volume_outline.md"),
|
|
20
|
+
bookRules: join(storyDir, "book_rules.md"),
|
|
21
|
+
currentState: join(storyDir, "current_state.md"),
|
|
22
|
+
};
|
|
23
|
+
const [authorIntent, currentFocus, storyBible, volumeOutline, bookRulesRaw, currentState,] = await Promise.all([
|
|
24
|
+
this.readFileOrDefault(sourcePaths.authorIntent),
|
|
25
|
+
this.readFileOrDefault(sourcePaths.currentFocus),
|
|
26
|
+
this.readFileOrDefault(sourcePaths.storyBible),
|
|
27
|
+
this.readFileOrDefault(sourcePaths.volumeOutline),
|
|
28
|
+
this.readFileOrDefault(sourcePaths.bookRules),
|
|
29
|
+
this.readFileOrDefault(sourcePaths.currentState),
|
|
30
|
+
]);
|
|
31
|
+
const outlineNode = this.findOutlineNode(volumeOutline, input.chapterNumber);
|
|
32
|
+
const goal = this.deriveGoal(input.externalContext, currentFocus, authorIntent, outlineNode, input.chapterNumber);
|
|
33
|
+
const parsedRules = parseBookRules(bookRulesRaw);
|
|
34
|
+
const mustKeep = this.collectMustKeep(currentState, storyBible);
|
|
35
|
+
const mustAvoid = this.collectMustAvoid(currentFocus, parsedRules.rules.prohibitions);
|
|
36
|
+
const styleEmphasis = this.collectStyleEmphasis(authorIntent, currentFocus);
|
|
37
|
+
const conflicts = this.collectConflicts(input.externalContext, outlineNode, volumeOutline);
|
|
38
|
+
const planningAnchor = conflicts.length > 0 ? undefined : outlineNode;
|
|
39
|
+
const memorySelection = await retrieveMemorySelection({
|
|
40
|
+
bookDir: input.bookDir,
|
|
41
|
+
chapterNumber: input.chapterNumber,
|
|
42
|
+
goal,
|
|
43
|
+
outlineNode: planningAnchor,
|
|
44
|
+
mustKeep,
|
|
45
|
+
});
|
|
46
|
+
const hookAgenda = buildPlannerHookAgenda({
|
|
47
|
+
hooks: memorySelection.activeHooks,
|
|
48
|
+
chapterNumber: input.chapterNumber,
|
|
49
|
+
});
|
|
50
|
+
const intent = ChapterIntentSchema.parse({
|
|
51
|
+
chapter: input.chapterNumber,
|
|
52
|
+
goal,
|
|
53
|
+
outlineNode,
|
|
54
|
+
mustKeep,
|
|
55
|
+
mustAvoid,
|
|
56
|
+
styleEmphasis,
|
|
57
|
+
conflicts,
|
|
58
|
+
hookAgenda,
|
|
59
|
+
});
|
|
60
|
+
const runtimePath = join(runtimeDir, `chapter-${String(input.chapterNumber).padStart(4, "0")}.intent.md`);
|
|
61
|
+
const intentMarkdown = this.renderIntentMarkdown(intent, renderHookSnapshot(memorySelection.hooks, input.book.language ?? "zh"), renderSummarySnapshot(memorySelection.summaries, input.book.language ?? "zh"));
|
|
62
|
+
await writeFile(runtimePath, intentMarkdown, "utf-8");
|
|
63
|
+
return {
|
|
64
|
+
intent,
|
|
65
|
+
intentMarkdown,
|
|
66
|
+
plannerInputs: [
|
|
67
|
+
...Object.values(sourcePaths),
|
|
68
|
+
join(storyDir, "pending_hooks.md"),
|
|
69
|
+
join(storyDir, "chapter_summaries.md"),
|
|
70
|
+
...(memorySelection.dbPath ? [memorySelection.dbPath] : []),
|
|
71
|
+
],
|
|
72
|
+
runtimePath,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
deriveGoal(externalContext, currentFocus, authorIntent, outlineNode, chapterNumber) {
|
|
76
|
+
const first = this.extractFirstDirective(externalContext);
|
|
77
|
+
if (first)
|
|
78
|
+
return first;
|
|
79
|
+
const focus = this.extractFocusGoal(currentFocus);
|
|
80
|
+
if (focus)
|
|
81
|
+
return focus;
|
|
82
|
+
const outline = this.extractFirstDirective(outlineNode);
|
|
83
|
+
if (outline)
|
|
84
|
+
return outline;
|
|
85
|
+
const author = this.extractFirstDirective(authorIntent);
|
|
86
|
+
if (author)
|
|
87
|
+
return author;
|
|
88
|
+
return `Advance chapter ${chapterNumber} with clear narrative focus.`;
|
|
89
|
+
}
|
|
90
|
+
collectMustKeep(currentState, storyBible) {
|
|
91
|
+
return this.unique([
|
|
92
|
+
...this.extractListItems(currentState, 2),
|
|
93
|
+
...this.extractListItems(storyBible, 2),
|
|
94
|
+
]).slice(0, 4);
|
|
95
|
+
}
|
|
96
|
+
collectMustAvoid(currentFocus, prohibitions) {
|
|
97
|
+
const avoidSection = this.extractSection(currentFocus, [
|
|
98
|
+
"avoid",
|
|
99
|
+
"must avoid",
|
|
100
|
+
"禁止",
|
|
101
|
+
"避免",
|
|
102
|
+
"避雷",
|
|
103
|
+
]);
|
|
104
|
+
const focusAvoids = avoidSection
|
|
105
|
+
? this.extractListItems(avoidSection, 10)
|
|
106
|
+
: currentFocus
|
|
107
|
+
.split("\n")
|
|
108
|
+
.map((line) => line.trim())
|
|
109
|
+
.filter((line) => line.startsWith("-") &&
|
|
110
|
+
/avoid|don't|do not|不要|别|禁止/i.test(line))
|
|
111
|
+
.map((line) => this.cleanListItem(line))
|
|
112
|
+
.filter((line) => Boolean(line));
|
|
113
|
+
return this.unique([...focusAvoids, ...prohibitions]).slice(0, 6);
|
|
114
|
+
}
|
|
115
|
+
collectStyleEmphasis(authorIntent, currentFocus) {
|
|
116
|
+
return this.unique([
|
|
117
|
+
...this.extractFocusStyleItems(currentFocus),
|
|
118
|
+
...this.extractListItems(authorIntent, 2),
|
|
119
|
+
]).slice(0, 4);
|
|
120
|
+
}
|
|
121
|
+
collectConflicts(externalContext, outlineNode, volumeOutline) {
|
|
122
|
+
if (!externalContext)
|
|
123
|
+
return [];
|
|
124
|
+
const outlineText = outlineNode ?? volumeOutline;
|
|
125
|
+
if (!outlineText || outlineText === "(文件尚未创建)")
|
|
126
|
+
return [];
|
|
127
|
+
const indicatesOverride = /ignore|skip|defer|instead|不要|别|先别|暂停/i.test(externalContext);
|
|
128
|
+
if (!indicatesOverride && this.hasKeywordOverlap(externalContext, outlineText))
|
|
129
|
+
return [];
|
|
130
|
+
return [
|
|
131
|
+
{
|
|
132
|
+
type: "outline_vs_request",
|
|
133
|
+
resolution: "allow local outline deferral",
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
extractFirstDirective(content) {
|
|
138
|
+
if (!content)
|
|
139
|
+
return undefined;
|
|
140
|
+
return content
|
|
141
|
+
.split("\n")
|
|
142
|
+
.map((line) => line.trim())
|
|
143
|
+
.find((line) => line.length > 0
|
|
144
|
+
&& !line.startsWith("#")
|
|
145
|
+
&& !line.startsWith("-")
|
|
146
|
+
&& !this.isTemplatePlaceholder(line));
|
|
147
|
+
}
|
|
148
|
+
extractListItems(content, limit) {
|
|
149
|
+
return content
|
|
150
|
+
.split("\n")
|
|
151
|
+
.map((line) => line.trim())
|
|
152
|
+
.filter((line) => line.startsWith("-"))
|
|
153
|
+
.map((line) => this.cleanListItem(line))
|
|
154
|
+
.filter((line) => Boolean(line))
|
|
155
|
+
.slice(0, limit);
|
|
156
|
+
}
|
|
157
|
+
extractFocusGoal(currentFocus) {
|
|
158
|
+
const focusSection = this.extractSection(currentFocus, [
|
|
159
|
+
"active focus",
|
|
160
|
+
"focus",
|
|
161
|
+
"当前聚焦",
|
|
162
|
+
"当前焦点",
|
|
163
|
+
"近期聚焦",
|
|
164
|
+
]) ?? currentFocus;
|
|
165
|
+
const directives = this.extractFocusStyleItems(focusSection, 3);
|
|
166
|
+
if (directives.length === 0) {
|
|
167
|
+
return this.extractFirstDirective(focusSection);
|
|
168
|
+
}
|
|
169
|
+
return directives.join(this.containsChinese(focusSection) ? ";" : "; ");
|
|
170
|
+
}
|
|
171
|
+
extractFocusStyleItems(currentFocus, limit = 3) {
|
|
172
|
+
const focusSection = this.extractSection(currentFocus, [
|
|
173
|
+
"active focus",
|
|
174
|
+
"focus",
|
|
175
|
+
"当前聚焦",
|
|
176
|
+
"当前焦点",
|
|
177
|
+
"近期聚焦",
|
|
178
|
+
]) ?? currentFocus;
|
|
179
|
+
return this.extractListItems(focusSection, limit);
|
|
180
|
+
}
|
|
181
|
+
extractSection(content, headings) {
|
|
182
|
+
const targets = headings.map((heading) => this.normalizeHeading(heading));
|
|
183
|
+
const lines = content.split("\n");
|
|
184
|
+
let buffer = null;
|
|
185
|
+
let sectionLevel = 0;
|
|
186
|
+
for (const line of lines) {
|
|
187
|
+
const headingMatch = line.match(/^(#+)\s*(.+?)\s*$/);
|
|
188
|
+
if (headingMatch) {
|
|
189
|
+
const level = headingMatch[1].length;
|
|
190
|
+
const heading = this.normalizeHeading(headingMatch[2]);
|
|
191
|
+
if (buffer && level <= sectionLevel) {
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
if (targets.includes(heading)) {
|
|
195
|
+
buffer = [];
|
|
196
|
+
sectionLevel = level;
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (buffer) {
|
|
201
|
+
buffer.push(line);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
const section = buffer?.join("\n").trim();
|
|
205
|
+
return section && section.length > 0 ? section : undefined;
|
|
206
|
+
}
|
|
207
|
+
normalizeHeading(heading) {
|
|
208
|
+
return heading
|
|
209
|
+
.toLowerCase()
|
|
210
|
+
.replace(/[*_`:#]/g, "")
|
|
211
|
+
.replace(/\s+/g, " ")
|
|
212
|
+
.trim();
|
|
213
|
+
}
|
|
214
|
+
cleanListItem(line) {
|
|
215
|
+
const cleaned = line.replace(/^-\s*/, "").trim();
|
|
216
|
+
if (cleaned.length === 0)
|
|
217
|
+
return undefined;
|
|
218
|
+
if (/^[-|]+$/.test(cleaned))
|
|
219
|
+
return undefined;
|
|
220
|
+
if (this.isTemplatePlaceholder(cleaned))
|
|
221
|
+
return undefined;
|
|
222
|
+
return cleaned;
|
|
223
|
+
}
|
|
224
|
+
isTemplatePlaceholder(line) {
|
|
225
|
+
const normalized = line.trim();
|
|
226
|
+
if (!normalized)
|
|
227
|
+
return false;
|
|
228
|
+
return (/^\((describe|briefly describe|write)\b[\s\S]*\)$/i.test(normalized)
|
|
229
|
+
|| /^((?:在这里描述|描述|填写|写下)[\s\S]*)$/u.test(normalized));
|
|
230
|
+
}
|
|
231
|
+
containsChinese(content) {
|
|
232
|
+
return /[\u4e00-\u9fff]/.test(content);
|
|
233
|
+
}
|
|
234
|
+
findOutlineNode(volumeOutline, chapterNumber) {
|
|
235
|
+
const lines = volumeOutline.split("\n").map((line) => line.trim()).filter(Boolean);
|
|
236
|
+
const chapterPatterns = [
|
|
237
|
+
new RegExp(`^#+\\s*Chapter\\s*${chapterNumber}\\b`, "i"),
|
|
238
|
+
new RegExp(`^#+\\s*第\\s*${chapterNumber}\\s*章`),
|
|
239
|
+
];
|
|
240
|
+
const inlinePatterns = [
|
|
241
|
+
new RegExp(`^(?:[-*]\\s+)?(?:\\*\\*)?Chapter\\s*${chapterNumber}(?:[::-])?(?:\\*\\*)?\\s*(.+)$`, "i"),
|
|
242
|
+
new RegExp(`^(?:[-*]\\s+)?(?:\\*\\*)?第\\s*${chapterNumber}\\s*章(?:[::-])?(?:\\*\\*)?\\s*(.+)$`),
|
|
243
|
+
];
|
|
244
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
245
|
+
const line = lines[index];
|
|
246
|
+
const match = inlinePatterns
|
|
247
|
+
.map((pattern) => line.match(pattern))
|
|
248
|
+
.find((result) => Boolean(result));
|
|
249
|
+
if (!match)
|
|
250
|
+
continue;
|
|
251
|
+
const inlineContent = this.cleanOutlineContent(match[1]);
|
|
252
|
+
if (inlineContent) {
|
|
253
|
+
return inlineContent;
|
|
254
|
+
}
|
|
255
|
+
const nextContent = this.findNextOutlineContent(lines, index + 1);
|
|
256
|
+
if (nextContent) {
|
|
257
|
+
return nextContent;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const heading = lines.find((line) => chapterPatterns.some((pattern) => pattern.test(line)));
|
|
261
|
+
if (!heading)
|
|
262
|
+
return this.extractFirstDirective(volumeOutline);
|
|
263
|
+
const headingIndex = lines.indexOf(heading);
|
|
264
|
+
const nextLine = lines[headingIndex + 1];
|
|
265
|
+
return nextLine && !nextLine.startsWith("#") ? nextLine : heading.replace(/^#+\s*/, "");
|
|
266
|
+
}
|
|
267
|
+
cleanOutlineContent(content) {
|
|
268
|
+
const cleaned = content?.trim();
|
|
269
|
+
if (!cleaned)
|
|
270
|
+
return undefined;
|
|
271
|
+
if (/^[*_`~::-]+$/.test(cleaned))
|
|
272
|
+
return undefined;
|
|
273
|
+
return cleaned;
|
|
274
|
+
}
|
|
275
|
+
findNextOutlineContent(lines, startIndex) {
|
|
276
|
+
for (let index = startIndex; index < lines.length; index += 1) {
|
|
277
|
+
const line = lines[index];
|
|
278
|
+
if (!line || line.startsWith("#")) {
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
if (/^(?:[-*]\s+)?(?:\*\*)?Chapter\s*\d+(?:[::-])?(?:\*\*)?\s*$/i.test(line)
|
|
282
|
+
|| /^(?:[-*]\s+)?(?:\*\*)?第\s*\d+\s*章(?:[::-])?(?:\*\*)?\s*$/.test(line)) {
|
|
283
|
+
return undefined;
|
|
284
|
+
}
|
|
285
|
+
const cleaned = this.cleanOutlineContent(line);
|
|
286
|
+
if (cleaned) {
|
|
287
|
+
return cleaned;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
292
|
+
hasKeywordOverlap(left, right) {
|
|
293
|
+
const keywords = this.extractKeywords(left);
|
|
294
|
+
if (keywords.length === 0)
|
|
295
|
+
return false;
|
|
296
|
+
const normalizedRight = right.toLowerCase();
|
|
297
|
+
return keywords.some((keyword) => normalizedRight.includes(keyword.toLowerCase()));
|
|
298
|
+
}
|
|
299
|
+
extractKeywords(content) {
|
|
300
|
+
const english = content.match(/[a-z]{4,}/gi) ?? [];
|
|
301
|
+
const chinese = content.match(/[\u4e00-\u9fff]{2,4}/g) ?? [];
|
|
302
|
+
return this.unique([...english, ...chinese]);
|
|
303
|
+
}
|
|
304
|
+
renderIntentMarkdown(intent, pendingHooks, chapterSummaries) {
|
|
305
|
+
const conflictLines = intent.conflicts.length > 0
|
|
306
|
+
? intent.conflicts.map((conflict) => `- ${conflict.type}: ${conflict.resolution}`).join("\n")
|
|
307
|
+
: "- none";
|
|
308
|
+
const mustKeep = intent.mustKeep.length > 0
|
|
309
|
+
? intent.mustKeep.map((item) => `- ${item}`).join("\n")
|
|
310
|
+
: "- none";
|
|
311
|
+
const mustAvoid = intent.mustAvoid.length > 0
|
|
312
|
+
? intent.mustAvoid.map((item) => `- ${item}`).join("\n")
|
|
313
|
+
: "- none";
|
|
314
|
+
const styleEmphasis = intent.styleEmphasis.length > 0
|
|
315
|
+
? intent.styleEmphasis.map((item) => `- ${item}`).join("\n")
|
|
316
|
+
: "- none";
|
|
317
|
+
const hookAgenda = [
|
|
318
|
+
"### Must Advance",
|
|
319
|
+
intent.hookAgenda.mustAdvance.length > 0
|
|
320
|
+
? intent.hookAgenda.mustAdvance.map((item) => `- ${item}`).join("\n")
|
|
321
|
+
: "- none",
|
|
322
|
+
"",
|
|
323
|
+
"### Eligible Resolve",
|
|
324
|
+
intent.hookAgenda.eligibleResolve.length > 0
|
|
325
|
+
? intent.hookAgenda.eligibleResolve.map((item) => `- ${item}`).join("\n")
|
|
326
|
+
: "- none",
|
|
327
|
+
"",
|
|
328
|
+
"### Stale Debt",
|
|
329
|
+
intent.hookAgenda.staleDebt.length > 0
|
|
330
|
+
? intent.hookAgenda.staleDebt.map((item) => `- ${item}`).join("\n")
|
|
331
|
+
: "- none",
|
|
332
|
+
"",
|
|
333
|
+
"### Avoid New Hook Families",
|
|
334
|
+
intent.hookAgenda.avoidNewHookFamilies.length > 0
|
|
335
|
+
? intent.hookAgenda.avoidNewHookFamilies.map((item) => `- ${item}`).join("\n")
|
|
336
|
+
: "- none",
|
|
337
|
+
].join("\n");
|
|
338
|
+
return [
|
|
339
|
+
"# Chapter Intent",
|
|
340
|
+
"",
|
|
341
|
+
"## Goal",
|
|
342
|
+
intent.goal,
|
|
343
|
+
"",
|
|
344
|
+
"## Outline Node",
|
|
345
|
+
intent.outlineNode ?? "(not found)",
|
|
346
|
+
"",
|
|
347
|
+
"## Must Keep",
|
|
348
|
+
mustKeep,
|
|
349
|
+
"",
|
|
350
|
+
"## Must Avoid",
|
|
351
|
+
mustAvoid,
|
|
352
|
+
"",
|
|
353
|
+
"## Style Emphasis",
|
|
354
|
+
styleEmphasis,
|
|
355
|
+
"",
|
|
356
|
+
"## Hook Agenda",
|
|
357
|
+
hookAgenda,
|
|
358
|
+
"",
|
|
359
|
+
"## Conflicts",
|
|
360
|
+
conflictLines,
|
|
361
|
+
"",
|
|
362
|
+
"## Pending Hooks Snapshot",
|
|
363
|
+
pendingHooks,
|
|
364
|
+
"",
|
|
365
|
+
"## Chapter Summaries Snapshot",
|
|
366
|
+
chapterSummaries,
|
|
367
|
+
"",
|
|
368
|
+
].join("\n");
|
|
369
|
+
}
|
|
370
|
+
unique(values) {
|
|
371
|
+
return [...new Set(values.map((value) => value.trim()).filter(Boolean))];
|
|
372
|
+
}
|
|
373
|
+
async readFileOrDefault(path) {
|
|
374
|
+
try {
|
|
375
|
+
return await readFile(path, "utf-8");
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
return "(文件尚未创建)";
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=planner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agents/planner.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,5 +12,10 @@ export interface PostWriteViolation {
|
|
|
12
12
|
readonly description: string;
|
|
13
13
|
readonly suggestion: string;
|
|
14
14
|
}
|
|
15
|
-
export declare function validatePostWrite(content: string, genreProfile: GenreProfile, bookRules: BookRules | null): ReadonlyArray<PostWriteViolation>;
|
|
15
|
+
export declare function validatePostWrite(content: string, genreProfile: GenreProfile, bookRules: BookRules | null, languageOverride?: "zh" | "en"): ReadonlyArray<PostWriteViolation>;
|
|
16
|
+
/**
|
|
17
|
+
* Cross-chapter repetition check.
|
|
18
|
+
* Detects phrases from the current chapter that also appeared in recent chapters.
|
|
19
|
+
*/
|
|
20
|
+
export declare function detectCrossChapterRepetition(currentContent: string, recentChaptersContent: string, language?: "zh" | "en"): ReadonlyArray<PostWriteViolation>;
|
|
16
21
|
//# sourceMappingURL=post-write-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-write-validator.d.ts","sourceRoot":"","sources":["../../src/agents/post-write-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAmCD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"post-write-validator.d.ts","sourceRoot":"","sources":["../../src/agents/post-write-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAmCD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,gBAAgB,CAAC,EAAE,IAAI,GAAG,IAAI,GAC7B,aAAa,CAAC,kBAAkB,CAAC,CA8LnC;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,MAAM,EACtB,qBAAqB,EAAE,MAAM,EAC7B,QAAQ,GAAE,IAAI,GAAG,IAAW,GAC3B,aAAa,CAAC,kBAAkB,CAAC,CA0DnC"}
|
|
@@ -30,10 +30,10 @@ const COLLECTIVE_SHOCK_PATTERNS = [
|
|
|
30
30
|
/(?:全场|一片)[,,]?(?:寂静|哗然|沸腾|震动)/,
|
|
31
31
|
];
|
|
32
32
|
// --- Validator ---
|
|
33
|
-
export function validatePostWrite(content, genreProfile, bookRules) {
|
|
33
|
+
export function validatePostWrite(content, genreProfile, bookRules, languageOverride) {
|
|
34
34
|
const violations = [];
|
|
35
35
|
// Skip Chinese-specific rules for English content
|
|
36
|
-
const isEnglish = genreProfile.language === "en";
|
|
36
|
+
const isEnglish = (languageOverride ?? genreProfile.language) === "en";
|
|
37
37
|
if (isEnglish) {
|
|
38
38
|
// For English, only run book-specific prohibitions and paragraph length check
|
|
39
39
|
return validatePostWriteEnglish(content, genreProfile, bookRules);
|
|
@@ -207,6 +207,68 @@ export function validatePostWrite(content, genreProfile, bookRules) {
|
|
|
207
207
|
}
|
|
208
208
|
return violations;
|
|
209
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Cross-chapter repetition check.
|
|
212
|
+
* Detects phrases from the current chapter that also appeared in recent chapters.
|
|
213
|
+
*/
|
|
214
|
+
export function detectCrossChapterRepetition(currentContent, recentChaptersContent, language = "zh") {
|
|
215
|
+
if (!recentChaptersContent || recentChaptersContent.length < 100)
|
|
216
|
+
return [];
|
|
217
|
+
const violations = [];
|
|
218
|
+
const isEnglish = language === "en";
|
|
219
|
+
if (isEnglish) {
|
|
220
|
+
// Extract 3-word phrases from current chapter
|
|
221
|
+
const words = currentContent.toLowerCase().replace(/[^\w\s']/g, "").split(/\s+/).filter(w => w.length > 2);
|
|
222
|
+
const phraseCounts = new Map();
|
|
223
|
+
for (let i = 0; i < words.length - 2; i++) {
|
|
224
|
+
const phrase = `${words[i]} ${words[i + 1]} ${words[i + 2]}`;
|
|
225
|
+
phraseCounts.set(phrase, (phraseCounts.get(phrase) ?? 0) + 1);
|
|
226
|
+
}
|
|
227
|
+
// Check which repeated phrases (2+ in current) also appear in recent chapters
|
|
228
|
+
const recentLower = recentChaptersContent.toLowerCase();
|
|
229
|
+
const crossRepeats = [];
|
|
230
|
+
for (const [phrase, count] of phraseCounts) {
|
|
231
|
+
if (count >= 2 && recentLower.includes(phrase)) {
|
|
232
|
+
crossRepeats.push(`"${phrase}" (×${count})`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (crossRepeats.length >= 3) {
|
|
236
|
+
violations.push({
|
|
237
|
+
rule: "Cross-chapter repetition",
|
|
238
|
+
severity: "warning",
|
|
239
|
+
description: `${crossRepeats.length} repeated phrases also found in recent chapters: ${crossRepeats.slice(0, 5).join(", ")}`,
|
|
240
|
+
suggestion: "Vary action verbs and descriptive phrases to avoid cross-chapter repetition",
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
// Chinese: 6-char ngrams
|
|
246
|
+
const chars = currentContent.replace(/[\s\n\r]/g, "");
|
|
247
|
+
const phraseCounts = new Map();
|
|
248
|
+
for (let i = 0; i < chars.length - 5; i++) {
|
|
249
|
+
const phrase = chars.slice(i, i + 6);
|
|
250
|
+
if (/^[\u4e00-\u9fff]{6}$/.test(phrase)) {
|
|
251
|
+
phraseCounts.set(phrase, (phraseCounts.get(phrase) ?? 0) + 1);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const recentClean = recentChaptersContent.replace(/[\s\n\r]/g, "");
|
|
255
|
+
const crossRepeats = [];
|
|
256
|
+
for (const [phrase, count] of phraseCounts) {
|
|
257
|
+
if (count >= 2 && recentClean.includes(phrase)) {
|
|
258
|
+
crossRepeats.push(`"${phrase}"(×${count})`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (crossRepeats.length >= 3) {
|
|
262
|
+
violations.push({
|
|
263
|
+
rule: "跨章重复",
|
|
264
|
+
severity: "warning",
|
|
265
|
+
description: `${crossRepeats.length}个重复短语在近期章节中也出现过:${crossRepeats.slice(0, 5).join("、")}`,
|
|
266
|
+
suggestion: "变换动作描写和场景用语,避免跨章节机械重复",
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return violations;
|
|
271
|
+
}
|
|
210
272
|
/** English-specific post-write validation rules. */
|
|
211
273
|
function validatePostWriteEnglish(content, genreProfile, bookRules) {
|
|
212
274
|
const violations = [];
|
|
@@ -235,6 +297,18 @@ function validatePostWriteEnglish(content, genreProfile, bookRules) {
|
|
|
235
297
|
suggestion: "Break into shorter paragraphs for readability",
|
|
236
298
|
});
|
|
237
299
|
}
|
|
300
|
+
// 2.5. Multi-character scene with almost no direct exchange
|
|
301
|
+
const quotedLines = content.match(/"[^"]+"/g) ?? [];
|
|
302
|
+
const englishNames = [...new Set((content.match(/\b[A-Z][a-z]{2,}\b/g) ?? [])
|
|
303
|
+
.filter((name) => !ENGLISH_NAME_STOP_WORDS.has(name)))];
|
|
304
|
+
if (englishNames.length >= 2 && quotedLines.length < 2 && content.length >= 120) {
|
|
305
|
+
violations.push({
|
|
306
|
+
rule: "Dialogue pressure",
|
|
307
|
+
severity: "warning",
|
|
308
|
+
description: `Multi-character scene appears to rely on narration with almost no direct exchange (${englishNames.slice(0, 3).join(", ")}).`,
|
|
309
|
+
suggestion: "Add at least one resistance-bearing exchange so characters push back, withhold, or pressure each other directly.",
|
|
310
|
+
});
|
|
311
|
+
}
|
|
238
312
|
// 3. Book-specific prohibitions
|
|
239
313
|
if (bookRules?.prohibitions) {
|
|
240
314
|
for (const prohibition of bookRules.prohibitions) {
|
|
@@ -266,4 +340,16 @@ function validatePostWriteEnglish(content, genreProfile, bookRules) {
|
|
|
266
340
|
}
|
|
267
341
|
return violations;
|
|
268
342
|
}
|
|
343
|
+
const ENGLISH_NAME_STOP_WORDS = new Set([
|
|
344
|
+
"The",
|
|
345
|
+
"And",
|
|
346
|
+
"But",
|
|
347
|
+
"When",
|
|
348
|
+
"While",
|
|
349
|
+
"After",
|
|
350
|
+
"Before",
|
|
351
|
+
"Even",
|
|
352
|
+
"Then",
|
|
353
|
+
"They",
|
|
354
|
+
]);
|
|
269
355
|
//# sourceMappingURL=post-write-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-write-validator.js","sourceRoot":"","sources":["../../src/agents/post-write-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post-write-validator.js","sourceRoot":"","sources":["../../src/agents/post-write-validator.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/reviser.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BaseAgent } from "./base.js";
|
|
2
|
+
import type { LengthSpec } from "../models/length-governance.js";
|
|
2
3
|
import type { AuditIssue } from "./continuity.js";
|
|
4
|
+
import type { ContextPackage, RuleStack } from "../models/input-governance.js";
|
|
3
5
|
export type ReviseMode = "polish" | "rewrite" | "rework" | "anti-detect" | "spot-fix";
|
|
6
|
+
export declare const DEFAULT_REVISE_MODE: ReviseMode;
|
|
4
7
|
export interface ReviseOutput {
|
|
5
8
|
readonly revisedContent: string;
|
|
6
9
|
readonly wordCount: number;
|
|
@@ -16,8 +19,14 @@ export interface ReviseOutput {
|
|
|
16
19
|
}
|
|
17
20
|
export declare class ReviserAgent extends BaseAgent {
|
|
18
21
|
get name(): string;
|
|
19
|
-
reviseChapter(bookDir: string, chapterContent: string, chapterNumber: number, issues: ReadonlyArray<AuditIssue>, mode?: ReviseMode, genre?: string
|
|
22
|
+
reviseChapter(bookDir: string, chapterContent: string, chapterNumber: number, issues: ReadonlyArray<AuditIssue>, mode?: ReviseMode, genre?: string, options?: {
|
|
23
|
+
chapterIntent?: string;
|
|
24
|
+
contextPackage?: ContextPackage;
|
|
25
|
+
ruleStack?: RuleStack;
|
|
26
|
+
lengthSpec?: LengthSpec;
|
|
27
|
+
}): Promise<ReviseOutput>;
|
|
20
28
|
private parseOutput;
|
|
21
29
|
private readFileSafe;
|
|
30
|
+
private buildReducedControlBlock;
|
|
22
31
|
}
|
|
23
32
|
//# sourceMappingURL=reviser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviser.d.ts","sourceRoot":"","sources":["../../src/agents/reviser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"reviser.d.ts","sourceRoot":"","sources":["../../src/agents/reviser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAc/E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;AAEtF,eAAO,MAAM,mBAAmB,EAAE,UAAuB,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,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;AAqBD,qBAAa,YAAa,SAAQ,SAAS;IACzC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,EACjC,IAAI,GAAE,UAAgC,EACtC,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,GACA,OAAO,CAAC,YAAY,CAAC;IAsMxB,OAAO,CAAC,WAAW;YAkDL,YAAY;IAQ1B,OAAO,CAAC,wBAAwB;CA4BjC"}
|