@llm4ts/flow 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Approval.d.ts +1 -1
- package/dist/Approval.d.ts.map +1 -1
- package/dist/Artifacts.d.ts +2 -2
- package/dist/Artifacts.d.ts.map +1 -1
- package/dist/BenchReport.d.ts +2 -2
- package/dist/BenchReport.d.ts.map +1 -1
- package/dist/CostLedger.d.ts +2 -2
- package/dist/CostLedger.d.ts.map +1 -1
- package/dist/Decisions.d.ts +187 -0
- package/dist/Decisions.d.ts.map +1 -0
- package/dist/Decisions.js +677 -0
- package/dist/Decisions.js.map +1 -0
- package/dist/Domains.d.ts +125 -0
- package/dist/Domains.d.ts.map +1 -0
- package/dist/Domains.js +528 -0
- package/dist/Domains.js.map +1 -0
- package/dist/Equiv.d.ts +3 -3
- package/dist/Equiv.d.ts.map +1 -1
- package/dist/Flow.d.ts +1 -1
- package/dist/Flow.d.ts.map +1 -1
- package/dist/FlowError.d.ts +25 -1
- package/dist/FlowError.d.ts.map +1 -1
- package/dist/FlowError.js +33 -1
- package/dist/FlowError.js.map +1 -1
- package/dist/Pack.d.ts +16 -0
- package/dist/Pack.d.ts.map +1 -1
- package/dist/Pack.js +53 -1
- package/dist/Pack.js.map +1 -1
- package/dist/PageSpec.d.ts +21 -7
- package/dist/PageSpec.d.ts.map +1 -1
- package/dist/PageSpec.js +83 -14
- package/dist/PageSpec.js.map +1 -1
- package/dist/Persistence.d.ts +2 -2
- package/dist/Persistence.d.ts.map +1 -1
- package/dist/PlanExecution.d.ts +1 -1
- package/dist/PlanExecution.d.ts.map +1 -1
- package/dist/ProgramJudge.d.ts +1 -1
- package/dist/ProgramJudge.d.ts.map +1 -1
- package/dist/Replay.d.ts +2 -2
- package/dist/Replay.d.ts.map +1 -1
- package/dist/Review.d.ts +2 -2
- package/dist/Review.d.ts.map +1 -1
- package/dist/ReviewCache.d.ts +1 -1
- package/dist/ReviewCache.d.ts.map +1 -1
- package/dist/SpecChecks.d.ts +8 -0
- package/dist/SpecChecks.d.ts.map +1 -1
- package/dist/SpecChecks.js +7 -1
- package/dist/SpecChecks.js.map +1 -1
- package/dist/Stories.d.ts +1 -1
- package/dist/Stories.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/Decisions.ts +844 -0
- package/src/Domains.ts +650 -0
- package/src/FlowError.ts +41 -1
- package/src/Pack.ts +79 -1
- package/src/PageSpec.ts +132 -8
- package/src/SpecChecks.ts +15 -1
package/dist/Domains.js
ADDED
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { OpenPoint, makeOpenPointsCollector, parseApprovalMarker, renderOpenPoints } from "./Decisions.js";
|
|
4
|
+
import { DecisionsInvalid } from "./FlowError.js";
|
|
5
|
+
import { stableHash } from "./Plan.js";
|
|
6
|
+
export { DecisionsInvalid } from "./FlowError.js";
|
|
7
|
+
const kindMatches = (kind, patterns) => patterns.some((pattern) => pattern.endsWith("*") ? kind.startsWith(pattern.slice(0, -1)) : kind === pattern);
|
|
8
|
+
class UnionFind {
|
|
9
|
+
parent = new Map();
|
|
10
|
+
find(name) {
|
|
11
|
+
const parent = this.parent.get(name);
|
|
12
|
+
if (parent === undefined || parent === name) {
|
|
13
|
+
this.parent.set(name, name);
|
|
14
|
+
return name;
|
|
15
|
+
}
|
|
16
|
+
const root = this.find(parent);
|
|
17
|
+
this.parent.set(name, root);
|
|
18
|
+
return root;
|
|
19
|
+
}
|
|
20
|
+
union(left, right) {
|
|
21
|
+
const a = this.find(left);
|
|
22
|
+
const b = this.find(right);
|
|
23
|
+
if (a !== b) {
|
|
24
|
+
this.parent.set(a < b ? b : a, a < b ? a : b);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const byFirst = (left, right) => (left.programs[0] ?? "").localeCompare(right.programs[0] ?? "");
|
|
29
|
+
/**
|
|
30
|
+
* Programs grouped by the pack's cluster edges: two units joined by an edge of
|
|
31
|
+
* a `cluster:` kind land in one feature, through any intermediate unit (a
|
|
32
|
+
* shared form target, a servlet). Programs that are the target of a
|
|
33
|
+
* `context:` edge are fragments: their own edges never merge anything, they
|
|
34
|
+
* attach to the clusters that include them, and they form shell clusters
|
|
35
|
+
* among themselves. Shell clusters first, then by first program name.
|
|
36
|
+
*/
|
|
37
|
+
export const clusterPrograms = (graph, programs, rules) => {
|
|
38
|
+
const programSet = new Set(programs);
|
|
39
|
+
const contextEdges = graph.edges.filter((edge) => kindMatches(edge.kind, rules.context));
|
|
40
|
+
const fragments = new Set(contextEdges.map((edge) => edge.to).filter((name) => programSet.has(name)));
|
|
41
|
+
const pages = new UnionFind();
|
|
42
|
+
for (const program of programs) {
|
|
43
|
+
pages.find(program);
|
|
44
|
+
}
|
|
45
|
+
for (const edge of graph.edges) {
|
|
46
|
+
if (kindMatches(edge.kind, rules.cluster) &&
|
|
47
|
+
!fragments.has(edge.from) &&
|
|
48
|
+
!fragments.has(edge.to)) {
|
|
49
|
+
pages.union(edge.from, edge.to);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const shell = new UnionFind();
|
|
53
|
+
for (const fragment of fragments) {
|
|
54
|
+
shell.find(fragment);
|
|
55
|
+
}
|
|
56
|
+
for (const edge of contextEdges) {
|
|
57
|
+
if (fragments.has(edge.from) && fragments.has(edge.to)) {
|
|
58
|
+
shell.union(edge.from, edge.to);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const includes = new Map();
|
|
62
|
+
for (const edge of contextEdges) {
|
|
63
|
+
if (fragments.has(edge.to)) {
|
|
64
|
+
includes.set(edge.from, [...(includes.get(edge.from) ?? []), edge.to]);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const contextOf = (members) => {
|
|
68
|
+
const seen = new Set();
|
|
69
|
+
const frontier = [...members];
|
|
70
|
+
while (frontier.length > 0) {
|
|
71
|
+
const current = frontier.pop();
|
|
72
|
+
if (current === undefined) {
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
for (const included of includes.get(current) ?? []) {
|
|
76
|
+
if (!seen.has(included)) {
|
|
77
|
+
seen.add(included);
|
|
78
|
+
frontier.push(included);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return [...seen].sort();
|
|
83
|
+
};
|
|
84
|
+
const groups = new Map();
|
|
85
|
+
for (const program of programs) {
|
|
86
|
+
if (fragments.has(program)) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const root = pages.find(program);
|
|
90
|
+
groups.set(root, [...(groups.get(root) ?? []), program]);
|
|
91
|
+
}
|
|
92
|
+
const shells = new Map();
|
|
93
|
+
for (const fragment of fragments) {
|
|
94
|
+
const root = shell.find(fragment);
|
|
95
|
+
shells.set(root, [...(shells.get(root) ?? []), fragment]);
|
|
96
|
+
}
|
|
97
|
+
const shellClusters = [...shells.values()]
|
|
98
|
+
.map((members) => ({ programs: [...members].sort(), context: [], shell: true }))
|
|
99
|
+
.sort(byFirst);
|
|
100
|
+
const pageClusters = [...groups.values()]
|
|
101
|
+
.map((members) => {
|
|
102
|
+
const sorted = [...members].sort();
|
|
103
|
+
return { programs: sorted, context: contextOf(sorted), shell: false };
|
|
104
|
+
})
|
|
105
|
+
.sort(byFirst);
|
|
106
|
+
return [...shellClusters, ...pageClusters];
|
|
107
|
+
};
|
|
108
|
+
// ---- The map ------------------------------------------------------------------
|
|
109
|
+
export class ScenarioRef extends Schema.Class("ScenarioRef")({
|
|
110
|
+
program: Schema.String,
|
|
111
|
+
title: Schema.String
|
|
112
|
+
}) {
|
|
113
|
+
}
|
|
114
|
+
export class FeatureScenario extends Schema.Class("FeatureScenario")({
|
|
115
|
+
program: Schema.String,
|
|
116
|
+
title: Schema.String,
|
|
117
|
+
/** Scenarios of other programs this one absorbs as the same behaviour. */
|
|
118
|
+
mergedFrom: Schema.Array(ScenarioRef)
|
|
119
|
+
}) {
|
|
120
|
+
}
|
|
121
|
+
export class DomainFeature extends Schema.Class("DomainFeature")({
|
|
122
|
+
/** kebab-case, the branch and contract name downstream. */
|
|
123
|
+
id: Schema.String,
|
|
124
|
+
name: Schema.String,
|
|
125
|
+
programs: Schema.Array(Schema.String),
|
|
126
|
+
context: Schema.Array(Schema.String),
|
|
127
|
+
scenarios: Schema.Array(FeatureScenario),
|
|
128
|
+
evidence: Schema.String
|
|
129
|
+
}) {
|
|
130
|
+
}
|
|
131
|
+
export class Domains extends Schema.Class("Domains")({
|
|
132
|
+
features: Schema.Array(DomainFeature),
|
|
133
|
+
/** Hash of the specs and decisions the map was built from — staleness check. */
|
|
134
|
+
inputsHash: Schema.String,
|
|
135
|
+
openPoints: Schema.Array(OpenPoint),
|
|
136
|
+
approved: Schema.Boolean
|
|
137
|
+
}) {
|
|
138
|
+
get unansweredOpenPoints() {
|
|
139
|
+
return this.openPoints.filter((point) => point.answer === undefined);
|
|
140
|
+
}
|
|
141
|
+
featureOf(program) {
|
|
142
|
+
return this.features.find((feature) => feature.programs.includes(program));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const scenarioKey = (program, title) => `${program} / ${title}`;
|
|
146
|
+
/**
|
|
147
|
+
* Every surviving scenario of the pack must be assigned to exactly one
|
|
148
|
+
* feature, directly or as a `mergedFrom` source; a feature may not claim a
|
|
149
|
+
* scenario the pack does not have. Deterministic, run before any human looks.
|
|
150
|
+
*/
|
|
151
|
+
export const checkExactlyOnce = (domains, surviving) => {
|
|
152
|
+
const violations = [];
|
|
153
|
+
const assigned = new Map();
|
|
154
|
+
const known = (program, title) => surviving.get(program)?.has(title) ?? false;
|
|
155
|
+
for (const feature of domains.features) {
|
|
156
|
+
for (const scenario of feature.scenarios) {
|
|
157
|
+
const refs = [{ program: scenario.program, title: scenario.title }, ...scenario.mergedFrom];
|
|
158
|
+
for (const ref of refs) {
|
|
159
|
+
const key = scenarioKey(ref.program, ref.title);
|
|
160
|
+
const owners = assigned.get(key) ?? [];
|
|
161
|
+
owners.push(feature.id);
|
|
162
|
+
assigned.set(key, owners);
|
|
163
|
+
if (owners.length === 2) {
|
|
164
|
+
violations.push(`scenario '${key}' is assigned twice (${owners.join(", ")})`);
|
|
165
|
+
}
|
|
166
|
+
else if (owners.length === 1 && !known(ref.program, ref.title)) {
|
|
167
|
+
violations.push(`scenario '${key}' in feature ${feature.id} is not a surviving scenario of the pack`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
for (const [program, titles] of surviving) {
|
|
173
|
+
for (const title of titles) {
|
|
174
|
+
if (!assigned.has(scenarioKey(program, title))) {
|
|
175
|
+
violations.push(`scenario '${scenarioKey(program, title)}' is assigned to no feature`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return violations;
|
|
180
|
+
};
|
|
181
|
+
// ---- Guide, render, parse ------------------------------------------------------
|
|
182
|
+
export const domainsGuide = [
|
|
183
|
+
"## How to read this map",
|
|
184
|
+
"",
|
|
185
|
+
"Each `## Feature:` groups the programs that deliver one domain feature, the",
|
|
186
|
+
"fragments they include as `context:`, and every surviving scenario it absorbs,",
|
|
187
|
+
"one per line as `- <program> / <scenario title>`. A scenario that describes",
|
|
188
|
+
"the same behaviour as another page's is listed once with `(merged from: …)`.",
|
|
189
|
+
"Every surviving scenario of the pack appears exactly once across the map.",
|
|
190
|
+
"The clusters were seeded from the survey graph by the pack's `## Consolidate`",
|
|
191
|
+
"rules; the model named them and proposed merges and folds, each with",
|
|
192
|
+
"`evidence:`. Edit freely: move a scenario line, rename a feature, split or",
|
|
193
|
+
"join sections. Answer `## Open points` with an indented `answer: …` line and",
|
|
194
|
+
"rerun; flip the marker at the end to approve. `inputs:` is the hash of the",
|
|
195
|
+
"specs and decisions this map was built from — the flow regroups when it",
|
|
196
|
+
"changes, or on request.",
|
|
197
|
+
""
|
|
198
|
+
].join("\n");
|
|
199
|
+
export const renderDomains = (domains) => {
|
|
200
|
+
const blocks = domains.features.map((feature) => [
|
|
201
|
+
`## Feature: ${feature.name} (${feature.id})`,
|
|
202
|
+
"",
|
|
203
|
+
`programs: ${feature.programs.join(", ")}`,
|
|
204
|
+
`context: ${feature.context.join(", ")}`,
|
|
205
|
+
`evidence: ${feature.evidence}`,
|
|
206
|
+
"",
|
|
207
|
+
...feature.scenarios.map((scenario) => {
|
|
208
|
+
const merged = scenario.mergedFrom.length === 0
|
|
209
|
+
? ""
|
|
210
|
+
: ` (merged from: ${scenario.mergedFrom
|
|
211
|
+
.map((ref) => scenarioKey(ref.program, ref.title))
|
|
212
|
+
.join("; ")})`;
|
|
213
|
+
return `- ${scenarioKey(scenario.program, scenario.title)}${merged}`;
|
|
214
|
+
}),
|
|
215
|
+
""
|
|
216
|
+
].join("\n"));
|
|
217
|
+
return [
|
|
218
|
+
"# Domain features",
|
|
219
|
+
"",
|
|
220
|
+
domainsGuide,
|
|
221
|
+
`inputs: ${domains.inputsHash}`,
|
|
222
|
+
"",
|
|
223
|
+
...blocks,
|
|
224
|
+
"## Open points",
|
|
225
|
+
"",
|
|
226
|
+
...renderOpenPoints(domains.openPoints),
|
|
227
|
+
...(domains.openPoints.length === 0 ? [] : [""]),
|
|
228
|
+
domains.approved ? "- [x] Approved" : "- [ ] Approved",
|
|
229
|
+
""
|
|
230
|
+
].join("\n");
|
|
231
|
+
};
|
|
232
|
+
const featureHeading = /^## Feature: (.+?) \(([a-z0-9][a-z0-9-]*)\)\s*$/;
|
|
233
|
+
const scenarioLine = /^- (.+?) \/ (.+?)(?: \(merged from: (.+)\))?$/;
|
|
234
|
+
const list = (value) => value
|
|
235
|
+
.split(",")
|
|
236
|
+
.map((item) => item.trim())
|
|
237
|
+
.filter((item) => item.length > 0);
|
|
238
|
+
export const parseDomains = Effect.fn("@llm4ts/flow/Domains.parse")(function* (markdown, path) {
|
|
239
|
+
const features = [];
|
|
240
|
+
const violations = [];
|
|
241
|
+
const points = makeOpenPointsCollector();
|
|
242
|
+
let inputsHash = "";
|
|
243
|
+
let approved = false;
|
|
244
|
+
let draft;
|
|
245
|
+
let section = "other";
|
|
246
|
+
let fenced = false;
|
|
247
|
+
const close = () => {
|
|
248
|
+
if (draft === undefined) {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
if (draft.programs.length === 0) {
|
|
252
|
+
violations.push(`feature '${draft.id}' lists no programs`);
|
|
253
|
+
}
|
|
254
|
+
features.push(DomainFeature.make(draft));
|
|
255
|
+
draft = undefined;
|
|
256
|
+
};
|
|
257
|
+
const lines = markdown.split(/\r?\n/);
|
|
258
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
259
|
+
const number = index + 1;
|
|
260
|
+
const trimmed = (lines[index] ?? "").trim();
|
|
261
|
+
if (trimmed.startsWith("```")) {
|
|
262
|
+
fenced = !fenced;
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
if (fenced || trimmed.length === 0 || trimmed.startsWith("# ")) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
const marker = parseApprovalMarker(trimmed);
|
|
269
|
+
if (marker !== undefined) {
|
|
270
|
+
approved = marker;
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
const heading = featureHeading.exec(trimmed);
|
|
274
|
+
if (heading !== null) {
|
|
275
|
+
close();
|
|
276
|
+
draft = {
|
|
277
|
+
id: heading[2] ?? "",
|
|
278
|
+
name: (heading[1] ?? "").trim(),
|
|
279
|
+
programs: [],
|
|
280
|
+
context: [],
|
|
281
|
+
scenarios: [],
|
|
282
|
+
evidence: ""
|
|
283
|
+
};
|
|
284
|
+
section = "feature";
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
if (trimmed.startsWith("## ")) {
|
|
288
|
+
close();
|
|
289
|
+
section = trimmed === "## Open points" ? "open" : "other";
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
if (section === "other") {
|
|
293
|
+
const inputs = /^inputs:\s*(\S+)\s*$/.exec(trimmed);
|
|
294
|
+
if (inputs?.[1] !== undefined) {
|
|
295
|
+
inputsHash = inputs[1];
|
|
296
|
+
}
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
if (section === "open") {
|
|
300
|
+
const violation = points.add(number, trimmed);
|
|
301
|
+
if (violation !== undefined) {
|
|
302
|
+
violations.push(violation);
|
|
303
|
+
}
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
if (draft === undefined) {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
const field = /^(programs|context|evidence):\s*(.*)$/.exec(trimmed);
|
|
310
|
+
if (field !== null) {
|
|
311
|
+
const value = field[2] ?? "";
|
|
312
|
+
if (field[1] === "programs") {
|
|
313
|
+
draft.programs = list(value);
|
|
314
|
+
}
|
|
315
|
+
else if (field[1] === "context") {
|
|
316
|
+
draft.context = list(value);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
draft.evidence = value.trim();
|
|
320
|
+
}
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
if (trimmed.startsWith("- ")) {
|
|
324
|
+
const match = scenarioLine.exec(trimmed);
|
|
325
|
+
if (match === null) {
|
|
326
|
+
violations.push(`line ${number}: scenario lines read \`- <program> / <title>\`, got: ${trimmed.slice(2)}`);
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
const mergedFrom = (match[3] ?? "")
|
|
330
|
+
.split(";")
|
|
331
|
+
.map((item) => item.trim())
|
|
332
|
+
.filter((item) => item.length > 0)
|
|
333
|
+
.flatMap((item) => {
|
|
334
|
+
const slash = item.indexOf(" / ");
|
|
335
|
+
return slash <= 0
|
|
336
|
+
? []
|
|
337
|
+
: [ScenarioRef.make({ program: item.slice(0, slash), title: item.slice(slash + 3) })];
|
|
338
|
+
});
|
|
339
|
+
draft.scenarios.push(FeatureScenario.make({
|
|
340
|
+
program: (match[1] ?? "").trim(),
|
|
341
|
+
title: (match[2] ?? "").trim(),
|
|
342
|
+
mergedFrom
|
|
343
|
+
}));
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
close();
|
|
347
|
+
if (violations.length > 0) {
|
|
348
|
+
return yield* DecisionsInvalid.make({ ...(path === undefined ? {} : { path }), violations });
|
|
349
|
+
}
|
|
350
|
+
return Domains.make({ features, inputsHash, openPoints: points.points, approved });
|
|
351
|
+
});
|
|
352
|
+
// ---- Proposal (model) ----------------------------------------------------------
|
|
353
|
+
export class ProposedScenario extends Schema.Class("ProposedScenario")({
|
|
354
|
+
program: Schema.String,
|
|
355
|
+
title: Schema.String,
|
|
356
|
+
mergedFrom: Schema.optionalKey(Schema.Array(ScenarioRef))
|
|
357
|
+
}) {
|
|
358
|
+
}
|
|
359
|
+
export class ProposedFeature extends Schema.Class("ProposedFeature")({
|
|
360
|
+
id: Schema.String,
|
|
361
|
+
name: Schema.String,
|
|
362
|
+
programs: Schema.Array(Schema.String),
|
|
363
|
+
scenarios: Schema.Array(ProposedScenario),
|
|
364
|
+
evidence: Schema.String
|
|
365
|
+
}) {
|
|
366
|
+
}
|
|
367
|
+
export class DomainProposal extends Schema.Class("DomainProposal")({
|
|
368
|
+
features: Schema.Array(ProposedFeature),
|
|
369
|
+
openPoints: Schema.Array(Schema.String)
|
|
370
|
+
}) {
|
|
371
|
+
}
|
|
372
|
+
const scenarioRefJsonSchema = {
|
|
373
|
+
type: "object",
|
|
374
|
+
properties: { program: { type: "string" }, title: { type: "string" } },
|
|
375
|
+
required: ["program", "title"]
|
|
376
|
+
};
|
|
377
|
+
export const domainProposalJsonSchema = {
|
|
378
|
+
type: "object",
|
|
379
|
+
properties: {
|
|
380
|
+
features: {
|
|
381
|
+
type: "array",
|
|
382
|
+
items: {
|
|
383
|
+
type: "object",
|
|
384
|
+
properties: {
|
|
385
|
+
id: { type: "string" },
|
|
386
|
+
name: { type: "string" },
|
|
387
|
+
programs: { type: "array", items: { type: "string" } },
|
|
388
|
+
scenarios: {
|
|
389
|
+
type: "array",
|
|
390
|
+
items: {
|
|
391
|
+
type: "object",
|
|
392
|
+
properties: {
|
|
393
|
+
program: { type: "string" },
|
|
394
|
+
title: { type: "string" },
|
|
395
|
+
mergedFrom: { type: "array", items: scenarioRefJsonSchema }
|
|
396
|
+
},
|
|
397
|
+
required: ["program", "title"]
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
evidence: { type: "string" }
|
|
401
|
+
},
|
|
402
|
+
required: ["id", "name", "programs", "scenarios", "evidence"]
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
openPoints: { type: "array", items: { type: "string" } }
|
|
406
|
+
},
|
|
407
|
+
required: ["features", "openPoints"]
|
|
408
|
+
};
|
|
409
|
+
/**
|
|
410
|
+
* The consolidation ask: the deterministic clusters and every surviving
|
|
411
|
+
* scenario, the rules the answer must keep (every scenario exactly once,
|
|
412
|
+
* clusters may be split, joined, or folded only with evidence), and the
|
|
413
|
+
* pack's stack-specific paragraph on what a feature is.
|
|
414
|
+
*/
|
|
415
|
+
export const consolidatePrompt = (clusters, scenarios, packParagraph) => {
|
|
416
|
+
const clusterLines = clusters.map((cluster, index) => `${index + 1}. ${cluster.shell ? "shell fragments" : "programs"}: ${cluster.programs.join(", ")}` +
|
|
417
|
+
(cluster.context.length === 0 ? "" : ` (includes: ${cluster.context.join(", ")})`));
|
|
418
|
+
const scenarioLines = [...scenarios.entries()].flatMap(([program, titles]) => [
|
|
419
|
+
`${program}:`,
|
|
420
|
+
...[...titles].map((title) => ` - ${title}`)
|
|
421
|
+
]);
|
|
422
|
+
return [
|
|
423
|
+
"Name the domain features of this legacy estate and assign every surviving scenario to one.",
|
|
424
|
+
"",
|
|
425
|
+
"The clusters below were derived deterministically from the dependency graph (units that",
|
|
426
|
+
"share a form target, a wizard, or a servlet; fragments attach as included context). Each",
|
|
427
|
+
"cluster is a candidate feature. You may split a cluster, join two, or fold single-page",
|
|
428
|
+
"clusters into one feature (e.g. a 'Portal shell and static pages' feature), but ONLY with",
|
|
429
|
+
"evidence from the specs, stated in the feature's `evidence`.",
|
|
430
|
+
"",
|
|
431
|
+
"Rules:",
|
|
432
|
+
"- Every scenario listed below appears EXACTLY once across the features, either as its own",
|
|
433
|
+
" line or inside another scenario's `mergedFrom` when two pages describe the same behaviour.",
|
|
434
|
+
"- Feature names are business language; `id` is kebab-case and unique.",
|
|
435
|
+
"- Anything you could not decide from the specs goes in `openPoints` as a question for the",
|
|
436
|
+
" human, never as a guess.",
|
|
437
|
+
...(packParagraph === undefined || packParagraph.trim().length === 0
|
|
438
|
+
? []
|
|
439
|
+
: ["", packParagraph.trim()]),
|
|
440
|
+
"",
|
|
441
|
+
"Clusters:",
|
|
442
|
+
...clusterLines,
|
|
443
|
+
"",
|
|
444
|
+
"Surviving scenarios per program:",
|
|
445
|
+
...scenarioLines,
|
|
446
|
+
"",
|
|
447
|
+
'Respond only with JSON: {"features":[{"id":"…","name":"…","programs":["…"],',
|
|
448
|
+
'"scenarios":[{"program":"…","title":"…","mergedFrom":[{"program":"…","title":"…"}]}],',
|
|
449
|
+
'"evidence":"…"}],"openPoints":["…"]}'
|
|
450
|
+
].join("\n");
|
|
451
|
+
};
|
|
452
|
+
/** The map from a proposal: context comes from the clusters, open points are numbered. */
|
|
453
|
+
export const domainsFromProposal = (proposal, clusters, inputsHash) => Domains.make({
|
|
454
|
+
features: proposal.features.map((feature) => {
|
|
455
|
+
const context = new Set();
|
|
456
|
+
for (const cluster of clusters) {
|
|
457
|
+
if (cluster.programs.some((program) => feature.programs.includes(program))) {
|
|
458
|
+
for (const fragment of cluster.context) {
|
|
459
|
+
context.add(fragment);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
return DomainFeature.make({
|
|
464
|
+
id: feature.id,
|
|
465
|
+
name: feature.name,
|
|
466
|
+
programs: feature.programs,
|
|
467
|
+
context: [...context].sort(),
|
|
468
|
+
scenarios: feature.scenarios.map((scenario) => FeatureScenario.make({
|
|
469
|
+
program: scenario.program,
|
|
470
|
+
title: scenario.title,
|
|
471
|
+
mergedFrom: scenario.mergedFrom ?? []
|
|
472
|
+
})),
|
|
473
|
+
evidence: feature.evidence
|
|
474
|
+
});
|
|
475
|
+
}),
|
|
476
|
+
inputsHash,
|
|
477
|
+
openPoints: proposal.openPoints.map((question, index) => OpenPoint.make({ number: index + 1, question })),
|
|
478
|
+
approved: false
|
|
479
|
+
});
|
|
480
|
+
/** Stable over key order; changes with any spec or the decisions text. */
|
|
481
|
+
export const domainsInputsHash = (specs, decisionsText) => stableHash([
|
|
482
|
+
...Object.entries(specs)
|
|
483
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
484
|
+
.map(([name, text]) => `${name}\n${text}`),
|
|
485
|
+
decisionsText
|
|
486
|
+
].join("\n\n"));
|
|
487
|
+
// ---- Navigation order ----------------------------------------------------------
|
|
488
|
+
/**
|
|
489
|
+
* The order a feature's pages convert in: pages no other page of the feature
|
|
490
|
+
* reaches over a cluster edge first (the list before its edit form, step 1
|
|
491
|
+
* before step 2), then breadth-first along those edges, ties and unreached
|
|
492
|
+
* pages in the feature's own order. Edges through a shared non-page unit (a
|
|
493
|
+
* form target both pages post to) say nothing about order and are ignored.
|
|
494
|
+
*/
|
|
495
|
+
export const navigationOrder = (feature, graph, rules) => {
|
|
496
|
+
const pages = new Set(feature.programs);
|
|
497
|
+
const edges = graph.edges.filter((edge) => kindMatches(edge.kind, rules.cluster) &&
|
|
498
|
+
pages.has(edge.from) &&
|
|
499
|
+
pages.has(edge.to) &&
|
|
500
|
+
edge.from !== edge.to);
|
|
501
|
+
const inbound = new Map(feature.programs.map((page) => [page, 0]));
|
|
502
|
+
for (const edge of edges) {
|
|
503
|
+
inbound.set(edge.to, (inbound.get(edge.to) ?? 0) + 1);
|
|
504
|
+
}
|
|
505
|
+
const ordered = [];
|
|
506
|
+
const seen = new Set();
|
|
507
|
+
const queue = feature.programs.filter((page) => (inbound.get(page) ?? 0) === 0);
|
|
508
|
+
while (queue.length > 0) {
|
|
509
|
+
const current = queue.shift();
|
|
510
|
+
if (current === undefined || seen.has(current)) {
|
|
511
|
+
continue;
|
|
512
|
+
}
|
|
513
|
+
seen.add(current);
|
|
514
|
+
ordered.push(current);
|
|
515
|
+
for (const edge of edges) {
|
|
516
|
+
if (edge.from === current && !seen.has(edge.to)) {
|
|
517
|
+
queue.push(edge.to);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
for (const page of feature.programs) {
|
|
522
|
+
if (!seen.has(page)) {
|
|
523
|
+
ordered.push(page);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return ordered;
|
|
527
|
+
};
|
|
528
|
+
//# sourceMappingURL=Domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Domains.js","sourceRoot":"","sources":["../src/Domains.ts"],"names":[],"mappings":"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"}
|
package/dist/Equiv.d.ts
CHANGED
|
@@ -174,8 +174,8 @@ export declare class ReplayedCrashed extends ReplayedCrashed_base {
|
|
|
174
174
|
}
|
|
175
175
|
export declare const Replayed: Schema.Union<readonly [typeof ReplayedObserved, typeof ReplayedCrashed]>;
|
|
176
176
|
export type Replayed = typeof Replayed.Type;
|
|
177
|
-
export declare const writeEquivVectors: (files: PlainFileStoreShape, path: string, vectors: readonly EquivVector[]) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
|
|
178
|
-
export declare const readEquivVectors: (files: PlainFileStoreShape, path: string) => Effect.Effect<readonly EquivVector[], import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
|
|
179
|
-
export declare const replayEquivVector: (process: ProcessExecutorShape, events: FlowEventsShape, command: readonly string[], root: string, vector: EquivVector) => Effect.Effect<ReplayedObserved | ReplayedCrashed, import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
|
|
177
|
+
export declare const writeEquivVectors: (files: PlainFileStoreShape, path: string, vectors: readonly EquivVector[]) => Effect.Effect<void, import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
|
|
178
|
+
export declare const readEquivVectors: (files: PlainFileStoreShape, path: string) => Effect.Effect<readonly EquivVector[], import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
|
|
179
|
+
export declare const replayEquivVector: (process: ProcessExecutorShape, events: FlowEventsShape, command: readonly string[], root: string, vector: EquivVector) => Effect.Effect<ReplayedObserved | ReplayedCrashed, import("./FlowError.ts").PersistenceError | PlanParseError | UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | import("./FlowError.ts").FlowAborted | ProcessError | import("./FlowError.ts").FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
|
|
180
180
|
export {};
|
|
181
181
|
//# sourceMappingURL=Equiv.d.ts.map
|
package/dist/Equiv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Equiv.d.ts","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Equiv.d.ts","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"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"}
|
package/dist/Flow.d.ts
CHANGED
|
@@ -38,5 +38,5 @@ export interface ImplementPlanOptions {
|
|
|
38
38
|
*/
|
|
39
39
|
readonly noopTaskPolicy?: "fail" | "complete";
|
|
40
40
|
}
|
|
41
|
-
export declare const implementPlanFlow: (context: FlowContextShape, options: ImplementPlanOptions) => Effect.Effect<Plan, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | FlowAborted | import("./FlowError.ts").ProcessError | FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed, never>;
|
|
41
|
+
export declare const implementPlanFlow: (context: FlowContextShape, options: ImplementPlanOptions) => Effect.Effect<Plan, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | FlowAborted | import("./FlowError.ts").ProcessError | FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
|
|
42
42
|
//# sourceMappingURL=Flow.d.ts.map
|
package/dist/Flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAI9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB,KAAG,eACd,CAAA;AAE3C,eAAO,MAAM,kBAAkB,mHAmB7B,CAAA;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAC9C;AAOD,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAI9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB,KAAG,eACd,CAAA;AAE3C,eAAO,MAAM,kBAAkB,mHAmB7B,CAAA;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAC9C;AAOD,eAAO,MAAM,iBAAiB,i5BA4G5B,CAAA"}
|