@momentiq/dark-factory-cli 2.18.0 → 3.0.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/README.md +33 -15
- package/dist/adapters/cursor-sdk.d.ts.map +1 -1
- package/dist/adapters/cursor-sdk.js +14 -2
- package/dist/adapters/cursor-sdk.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mode-scope.d.ts +86 -0
- package/dist/adapters/mode-scope.d.ts.map +1 -0
- package/dist/adapters/mode-scope.js +456 -0
- package/dist/adapters/mode-scope.js.map +1 -0
- package/dist/branch-protection/audit_branch_protection.py +152 -26
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/mode.d.ts.map +1 -1
- package/dist/commands/mode.js +135 -10
- package/dist/commands/mode.js.map +1 -1
- package/dist/commands/objectives.d.ts +27 -3
- package/dist/commands/objectives.d.ts.map +1 -1
- package/dist/commands/objectives.js +347 -53
- package/dist/commands/objectives.js.map +1 -1
- package/dist/cycle-doc-validator/validate_cycle_doc.py +128 -11
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +8 -4
- package/dist/doctor.js.map +1 -1
- package/dist/evidence/index.d.ts +1 -0
- package/dist/evidence/index.d.ts.map +1 -1
- package/dist/evidence/index.js +5 -0
- package/dist/evidence/index.js.map +1 -1
- package/dist/evidence/ui-visual/embed.d.ts +65 -0
- package/dist/evidence/ui-visual/embed.d.ts.map +1 -0
- package/dist/evidence/ui-visual/embed.js +176 -0
- package/dist/evidence/ui-visual/embed.js.map +1 -0
- package/dist/evidence/ui-visual/index.d.ts +2 -0
- package/dist/evidence/ui-visual/index.d.ts.map +1 -0
- package/dist/evidence/ui-visual/index.js +6 -0
- package/dist/evidence/ui-visual/index.js.map +1 -0
- 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/mcp/cycle-doc/parser.d.ts +3 -3
- package/dist/mcp/cycle-doc/parser.d.ts.map +1 -1
- package/dist/mcp/cycle-doc/parser.js +2 -2
- package/dist/mcp/cycle-doc/parser.js.map +1 -1
- package/dist/mcp/tools/doctor.d.ts +5 -0
- package/dist/mcp/tools/doctor.d.ts.map +1 -1
- package/dist/mcp/tools/doctor.js +10 -1
- package/dist/mcp/tools/doctor.js.map +1 -1
- package/dist/mcp/tools/review-bypass.d.ts +5 -0
- package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
- package/dist/mcp/tools/review-bypass.js +9 -1
- package/dist/mcp/tools/review-bypass.js.map +1 -1
- package/dist/mode/apply.d.ts +8 -0
- package/dist/mode/apply.d.ts.map +1 -0
- package/dist/mode/apply.js +118 -0
- package/dist/mode/apply.js.map +1 -0
- package/dist/mode/context.d.ts +50 -0
- package/dist/mode/context.d.ts.map +1 -0
- package/dist/mode/context.js +127 -0
- package/dist/mode/context.js.map +1 -0
- package/dist/mode/critic-registration.d.ts +66 -0
- package/dist/mode/critic-registration.d.ts.map +1 -0
- package/dist/mode/critic-registration.js +279 -0
- package/dist/mode/critic-registration.js.map +1 -0
- package/dist/mode/guard.d.ts +15 -0
- package/dist/mode/guard.d.ts.map +1 -0
- package/dist/mode/guard.js +160 -0
- package/dist/mode/guard.js.map +1 -0
- package/dist/mode/init.d.ts.map +1 -1
- package/dist/mode/init.js +14 -5
- package/dist/mode/init.js.map +1 -1
- package/dist/mode/loadConfig.d.ts +34 -0
- package/dist/mode/loadConfig.d.ts.map +1 -0
- package/dist/mode/loadConfig.js +38 -0
- package/dist/mode/loadConfig.js.map +1 -0
- package/dist/mode/prompts/designer-baseline.md +47 -0
- package/dist/mode/resolve.d.ts +1 -1
- package/dist/mode/resolve.d.ts.map +1 -1
- package/dist/mode/resolve.js +19 -3
- package/dist/mode/resolve.js.map +1 -1
- package/dist/mode/scope-policy.d.ts +41 -0
- package/dist/mode/scope-policy.d.ts.map +1 -0
- package/dist/mode/scope-policy.js +97 -0
- package/dist/mode/scope-policy.js.map +1 -0
- package/dist/mode/status.d.ts.map +1 -1
- package/dist/mode/status.js +2 -9
- package/dist/mode/status.js.map +1 -1
- package/dist/onboard/validate.d.ts +24 -6
- package/dist/onboard/validate.d.ts.map +1 -1
- package/dist/onboard/validate.js +87 -14
- package/dist/onboard/validate.js.map +1 -1
- package/dist/skills/config.d.ts +2 -113
- package/dist/skills/config.d.ts.map +1 -1
- package/dist/skills/config.js +19 -62
- package/dist/skills/config.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/install.d.ts.map +1 -1
- package/dist/skills/install.js +7 -0
- package/dist/skills/install.js.map +1 -1
- package/package.json +2 -2
- package/skills/designer-brief/SKILL.md.tmpl +74 -0
- package/skills/designer-brief/skill.json +17 -0
- package/skills/designer-build/SKILL.md.tmpl +63 -0
- package/skills/designer-build/skill.json +17 -0
- package/skills/designer-handoff/SKILL.md.tmpl +64 -0
- package/skills/designer-handoff/skill.json +17 -0
- package/skills/designer-ship/SKILL.md.tmpl +77 -0
- package/skills/designer-ship/skill.json +17 -0
- package/skills/objectives/SKILL.md.tmpl +16 -1
- package/skills/verify/producer/ui-visual-surfaces.ts +261 -0
- package/skills/verify/producer/ui-visual.config.ts +22 -0
- package/skills/verify/producer/ui-visual.producer.spec.ts +137 -0
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Subcommands:
|
|
5
5
|
// hash — print the canonical sha256 of a criterion text (for manifest authoring)
|
|
6
|
-
// derive — generate a .darkfactory/objectives.yaml from cycle-doc exit criteria
|
|
6
|
+
// derive — generate a .darkfactory/objectives.yaml from cycle-doc exit criteria
|
|
7
|
+
// (--cycle) or a designer brief's Done-when checkboxes (--brief, #312)
|
|
7
8
|
// check — verify text-hash bindings in an existing manifest (Task 6)
|
|
8
9
|
//
|
|
9
10
|
// Exit codes: 0 success / 1 semantic failure / 2 usage error.
|
|
10
11
|
import { createHash } from "node:crypto";
|
|
11
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
12
|
-
import { dirname, join, resolve } from "node:path";
|
|
12
|
+
import { existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
|
|
13
|
+
import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
13
14
|
import { canonicalizeCriterion, parseObjectivesManifest, SOURCE_LOCATOR_RE, } from "@momentiq/dark-factory-schemas";
|
|
14
15
|
import { parse as yamlParse, stringify as yamlStringify } from "yaml";
|
|
15
|
-
import { readCycleDoc, cycleDocsDir } from "../mcp/cycle-doc/parser.js";
|
|
16
|
+
import { readCycleDoc, cycleDocsDir, splitFrontmatter, splitSections, } from "../mcp/cycle-doc/parser.js";
|
|
16
17
|
export function parseObjectivesArgs(rest) {
|
|
17
18
|
const sub = rest[0];
|
|
18
19
|
const subRest = rest.slice(1);
|
|
@@ -68,6 +69,7 @@ function parseHashArgs(rest) {
|
|
|
68
69
|
}
|
|
69
70
|
function parseDeriveArgs(rest) {
|
|
70
71
|
let cycle;
|
|
72
|
+
let brief;
|
|
71
73
|
let apply = false;
|
|
72
74
|
let json = false;
|
|
73
75
|
let cwd = process.cwd();
|
|
@@ -86,6 +88,19 @@ function parseDeriveArgs(rest) {
|
|
|
86
88
|
cycle = a.slice("--cycle=".length);
|
|
87
89
|
continue;
|
|
88
90
|
}
|
|
91
|
+
if (a === "--brief") {
|
|
92
|
+
const next = rest[i + 1];
|
|
93
|
+
if (next === undefined || next.startsWith("--")) {
|
|
94
|
+
return { error: "--brief requires a value (path to a brief .md file)." };
|
|
95
|
+
}
|
|
96
|
+
brief = next;
|
|
97
|
+
i++;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (a.startsWith("--brief=")) {
|
|
101
|
+
brief = a.slice("--brief=".length);
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
89
104
|
if (a === "--cwd") {
|
|
90
105
|
const next = rest[i + 1];
|
|
91
106
|
if (next === undefined || next.startsWith("--")) {
|
|
@@ -109,17 +124,25 @@ function parseDeriveArgs(rest) {
|
|
|
109
124
|
}
|
|
110
125
|
return { error: `unknown flag or positional arg: ${a}` };
|
|
111
126
|
}
|
|
112
|
-
|
|
113
|
-
|
|
127
|
+
const hasCycle = cycle !== undefined && cycle !== "";
|
|
128
|
+
const hasBrief = brief !== undefined && brief !== "";
|
|
129
|
+
if (hasCycle && hasBrief) {
|
|
130
|
+
return { error: "--cycle and --brief are mutually exclusive — pass exactly one." };
|
|
114
131
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
// cycle-doc parser keys on the `cycle<N>` id form, so we rebuild that below.
|
|
118
|
-
const ref = cycle.replace(/^cycle/i, "").trim();
|
|
119
|
-
if (ref === "" || !/^\d+(?:\.\d+)*$/.test(ref)) {
|
|
120
|
-
return { error: `--cycle must be a cycle number (e.g. 23 or cycle23), got ${JSON.stringify(cycle)}.` };
|
|
132
|
+
if (!hasCycle && !hasBrief) {
|
|
133
|
+
return { error: "one of --cycle <N> or --brief <path> is required." };
|
|
121
134
|
}
|
|
122
|
-
|
|
135
|
+
if (hasCycle) {
|
|
136
|
+
// Normalize a `cycle23` / `cycle 23` style value down to the bare number the
|
|
137
|
+
// id + source.ref use (`cycle<N>#ec<k>`, `{kind:"cycle", ref:"<N>"}`). The
|
|
138
|
+
// cycle-doc parser keys on the `cycle<N>` id form, so we rebuild that below.
|
|
139
|
+
const ref = cycle.replace(/^cycle/i, "").trim();
|
|
140
|
+
if (ref === "" || !/^\d+(?:\.\d+)*$/.test(ref)) {
|
|
141
|
+
return { error: `--cycle must be a cycle number (e.g. 23 or cycle23), got ${JSON.stringify(cycle)}.` };
|
|
142
|
+
}
|
|
143
|
+
return { subcommand: "derive", source: { kind: "cycle", cycle: ref }, apply, json, cwd };
|
|
144
|
+
}
|
|
145
|
+
return { subcommand: "derive", source: { kind: "brief", briefPath: brief }, apply, json, cwd };
|
|
123
146
|
}
|
|
124
147
|
function parseCheckArgs(rest) {
|
|
125
148
|
let json = false;
|
|
@@ -232,6 +255,114 @@ export function extractExitCriteria(sectionBody) {
|
|
|
232
255
|
}
|
|
233
256
|
return out;
|
|
234
257
|
}
|
|
258
|
+
// ---------------------------------------------------------------------------
|
|
259
|
+
// Brief criteria extraction — the `--brief` sibling input source (cycle 27
|
|
260
|
+
// Designer Mode Phase C, #312).
|
|
261
|
+
//
|
|
262
|
+
// A designer brief is a markdown file with a `## Done-when` section of GitHub
|
|
263
|
+
// task-list checkboxes; each checkbox is one acceptance criterion. Unlike a
|
|
264
|
+
// cycle doc's exit criteria (free-form list items resolved positionally OR by an
|
|
265
|
+
// explicit `EC<k>` label), brief criteria are ALWAYS positional (`ac<k>`, the
|
|
266
|
+
// k-th checkbox) — a designer writing intent has no id-label convention.
|
|
267
|
+
//
|
|
268
|
+
// Hash unit: the criterion text WITH THE CHECKBOX MARKER STRIPPED. Toggling a
|
|
269
|
+
// box (`[ ]` → `[x]`) marks progress and MUST NOT move the text-hash, so the
|
|
270
|
+
// `[ ]`/`[x]` token is excluded from the canonical input. This is the one place
|
|
271
|
+
// brief hashing differs from cycle hashing; the shared `canonicalizeCriterion`
|
|
272
|
+
// is left untouched (it does not strip checkbox tokens), so cycle bindings are
|
|
273
|
+
// unaffected.
|
|
274
|
+
// ---------------------------------------------------------------------------
|
|
275
|
+
// The brief section whose checkboxes become objectives. `## Done-when`
|
|
276
|
+
// snake-cases to `done_when` via the cycle-doc parser's section slugger.
|
|
277
|
+
const BRIEF_AC_SECTION_SLUG = "done_when";
|
|
278
|
+
// A `## Done-when` task-list checkbox: a `-`/`*`/`+` marker, `[ ]` or `[x]`
|
|
279
|
+
// (case-insensitive), then the criterion text. Group 1 is the checkbox state,
|
|
280
|
+
// group 2 the criterion text (trailing whitespace trimmed by the caller).
|
|
281
|
+
const BRIEF_CHECKBOX_RE = /^\s*[-*+]\s+\[([ xX])\]\s+(.+?)\s*$/;
|
|
282
|
+
// Slugify a brief filename into the `<slug>` used in `brief-<slug>#ac<k>` ids
|
|
283
|
+
// and the `.darkfactory/briefs/<slug>.md` resolution path. Drops the `.md`
|
|
284
|
+
// extension, lowercases, folds every non-`[a-z0-9]` run to a single hyphen, and
|
|
285
|
+
// trims leading/trailing hyphens — yielding a slug that satisfies OBJECTIVE_ID_RE
|
|
286
|
+
// (`[a-z0-9]+(?:-[a-z0-9]+)*`) and cannot contain a path separator.
|
|
287
|
+
function slugifyBriefName(filename) {
|
|
288
|
+
return filename
|
|
289
|
+
.normalize("NFC")
|
|
290
|
+
.replace(/\.md$/i, "")
|
|
291
|
+
.toLowerCase()
|
|
292
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
293
|
+
.replace(/^-+|-+$/g, "");
|
|
294
|
+
}
|
|
295
|
+
// Display-text derivation for a brief criterion: strip residual markdown
|
|
296
|
+
// emphasis / code ticks and fold whitespace. The checkbox marker is already
|
|
297
|
+
// removed by BRIEF_CHECKBOX_RE. Human-facing `text` only — NOT the hash input.
|
|
298
|
+
function briefCriterionDisplayText(criterionText) {
|
|
299
|
+
return criterionText.normalize("NFC").replace(/[*`]/g, "").replace(/\s+/g, " ").trim();
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Enumerate a brief `## Done-when` section body's checkboxes into criteria,
|
|
303
|
+
* assigning each a positional `ac<k>` id. Mirrors `extractExitCriteria`'s
|
|
304
|
+
* continuation-line collection so the single-line-atomic-criterion guard applies
|
|
305
|
+
* to briefs too. `raw` is the checkbox-stripped criterion text (the canonical
|
|
306
|
+
* hash input); NON-checkbox list items and prose in the section are ignored (one
|
|
307
|
+
* objective per Done-when checkbox).
|
|
308
|
+
*/
|
|
309
|
+
export function extractBriefCriteria(sectionBody) {
|
|
310
|
+
const out = [];
|
|
311
|
+
const lines = sectionBody.split(/\r?\n/);
|
|
312
|
+
let itemIndex = 0;
|
|
313
|
+
for (let i = 0; i < lines.length; i++) {
|
|
314
|
+
const line = lines[i] ?? "";
|
|
315
|
+
const m = BRIEF_CHECKBOX_RE.exec(line);
|
|
316
|
+
if (!m)
|
|
317
|
+
continue;
|
|
318
|
+
const criterionText = (m[2] ?? "").trim();
|
|
319
|
+
itemIndex++;
|
|
320
|
+
const id = `ac${itemIndex}`;
|
|
321
|
+
// Continuation lines: subsequent non-blank, non-list-item lines (mirrors
|
|
322
|
+
// extractExitCriteria). A blank line or the next list item terminates the
|
|
323
|
+
// checkbox; anything else is a continuation → tripped by the multi-line
|
|
324
|
+
// guard in the brief builder (single-line atomic criteria, design §4.3).
|
|
325
|
+
const continuationLines = [];
|
|
326
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
327
|
+
const next = lines[j] ?? "";
|
|
328
|
+
if (next.trim() === "")
|
|
329
|
+
break;
|
|
330
|
+
if (ITEM_RE.test(next))
|
|
331
|
+
break;
|
|
332
|
+
continuationLines.push(next);
|
|
333
|
+
}
|
|
334
|
+
out.push({ id, text: briefCriterionDisplayText(criterionText), raw: criterionText, continuationLines });
|
|
335
|
+
}
|
|
336
|
+
return out;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Resolve a brief's committed location — `.darkfactory/briefs/<slug>.md` under
|
|
340
|
+
* `cwd` — for `df objectives check` (and the parity contract with the
|
|
341
|
+
* cycle-doc-validation gate). Returns the absolute path, or `null` when it is
|
|
342
|
+
* absent or escapes the repo. The slug regex already blocks path separators and
|
|
343
|
+
* `..`; the realpath check additionally rejects a symlink at that path pointing
|
|
344
|
+
* outside the repo (defense-in-depth, matching the cycle-doc parser's posture).
|
|
345
|
+
*/
|
|
346
|
+
function resolveBriefFile(cwd, slug) {
|
|
347
|
+
const root = resolve(cwd);
|
|
348
|
+
const candidate = resolve(root, ".darkfactory", "briefs", `${slug}.md`);
|
|
349
|
+
const rel = relative(root, candidate);
|
|
350
|
+
if (rel.startsWith("..") || isAbsolute(rel))
|
|
351
|
+
return null;
|
|
352
|
+
if (!existsSync(candidate))
|
|
353
|
+
return null;
|
|
354
|
+
try {
|
|
355
|
+
const realCandidate = realpathSync(candidate);
|
|
356
|
+
const realRoot = realpathSync(root);
|
|
357
|
+
const realRel = relative(realRoot, realCandidate);
|
|
358
|
+
if (realRel.startsWith("..") || isAbsolute(realRel))
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
return null;
|
|
363
|
+
}
|
|
364
|
+
return candidate;
|
|
365
|
+
}
|
|
235
366
|
function sha256Hex(s) {
|
|
236
367
|
return createHash("sha256").update(s, "utf8").digest("hex");
|
|
237
368
|
}
|
|
@@ -244,14 +375,16 @@ const HELP = [
|
|
|
244
375
|
"",
|
|
245
376
|
"Subcommands:",
|
|
246
377
|
" hash Print the canonical sha256 of a criterion text.",
|
|
247
|
-
" derive Generate .darkfactory/objectives.yaml from cycle
|
|
378
|
+
" derive Generate .darkfactory/objectives.yaml from a cycle doc or a designer brief.",
|
|
248
379
|
" check Verify text-hash bindings in an existing manifest.",
|
|
249
380
|
"",
|
|
250
381
|
"Flags (hash):",
|
|
251
382
|
" --text <criterion> Criterion text to hash (required).",
|
|
252
383
|
"",
|
|
253
|
-
"Flags (derive):",
|
|
254
|
-
" --cycle <N> Cycle number whose Exit criteria to derive from
|
|
384
|
+
"Flags (derive) — pass exactly one input source (--cycle or --brief):",
|
|
385
|
+
" --cycle <N> Cycle number whose '## Exit criteria' items to derive from.",
|
|
386
|
+
" --brief <path> Designer brief whose '## Done-when' checkboxes to derive from",
|
|
387
|
+
" (id form brief-<slug>#ac<k>; slug from the brief filename).",
|
|
255
388
|
" --apply Write .darkfactory/objectives.yaml (default: print to stdout).",
|
|
256
389
|
" --cwd <path> Repository root to operate in (default: process cwd).",
|
|
257
390
|
" --json Emit the manifest object as JSON instead of YAML.",
|
|
@@ -298,8 +431,49 @@ export async function cmdObjectives(rest, io, deps = {}) {
|
|
|
298
431
|
return 2;
|
|
299
432
|
}
|
|
300
433
|
async function cmdDerive(opts, io, deps) {
|
|
434
|
+
// Build the base objectives from the selected input source, then run the
|
|
435
|
+
// shared tail (preserve bindings → self-validate → emit). A builder returns a
|
|
436
|
+
// numeric exit code (having already written the diagnostic) on failure.
|
|
437
|
+
const built = opts.source.kind === "cycle"
|
|
438
|
+
? await buildCycleObjectives(opts, opts.source.cycle, io, deps)
|
|
439
|
+
: buildBriefObjectives(opts, opts.source.briefPath, io);
|
|
440
|
+
if (typeof built === "number")
|
|
441
|
+
return built;
|
|
442
|
+
return finalizeAndEmit(built, opts, io);
|
|
443
|
+
}
|
|
444
|
+
// Multi-line-criterion guard (fail-loud), shared by both input sources. The
|
|
445
|
+
// hash unit is the single `raw` criterion, so any continuation line is content
|
|
446
|
+
// SILENTLY excluded from the source binding: editing it would not change the
|
|
447
|
+
// sha256, yet `df objectives check` and the dashboard `source-bound` rung would
|
|
448
|
+
// still pass — an unsound binding. The design intends SINGLE-LINE atomic
|
|
449
|
+
// criteria (spec §4.3), so REFUSE to mis-bind rather than dropping the
|
|
450
|
+
// continuation silently. Catches only NON-marker continuations; a marker-led
|
|
451
|
+
// nested sub-bullet is enumerated as its own item (the distinct phantom-objective
|
|
452
|
+
// case, tracked at dark-factory#248). Returns true (and writes the diagnostic)
|
|
453
|
+
// when the guard trips.
|
|
454
|
+
function multiLineCriterionGuard(criteria, idPrefix, sourceDesc, sectionDesc, io) {
|
|
455
|
+
const multiLine = criteria.filter((c) => c.continuationLines.length > 0);
|
|
456
|
+
if (multiLine.length === 0)
|
|
457
|
+
return false;
|
|
458
|
+
const detail = multiLine
|
|
459
|
+
.map((c) => ` - ${idPrefix}${c.id}: ${JSON.stringify(c.raw.trim())} ` +
|
|
460
|
+
`has ${c.continuationLines.length} continuation line` +
|
|
461
|
+
`${c.continuationLines.length === 1 ? "" : "s"} (first: ` +
|
|
462
|
+
`${JSON.stringify((c.continuationLines[0] ?? "").trim())})`)
|
|
463
|
+
.join("\n");
|
|
464
|
+
io.stderr(`df objectives derive: ${sourceDesc} ${sectionDesc} has multi-line ` +
|
|
465
|
+
`criterion/criteria — refusing to mis-bind.\n${detail}\n` +
|
|
466
|
+
`Each criterion must be a SINGLE line: only that line is hashed into ` +
|
|
467
|
+
`the source binding, so a continuation line would be silently excluded ` +
|
|
468
|
+
`(editing it would not change the binding). Rewrite each offending ` +
|
|
469
|
+
`criterion as one line (or split it into multiple single-line criteria), ` +
|
|
470
|
+
`then re-run. See the derive-from-source design §4.3 (single-line atomic ` +
|
|
471
|
+
`criteria).\n`);
|
|
472
|
+
return true;
|
|
473
|
+
}
|
|
474
|
+
async function buildCycleObjectives(opts, cycle, io, deps) {
|
|
301
475
|
const read = deps.readCycleDoc ?? readCycleDoc;
|
|
302
|
-
const cycleDocId = `cycle${
|
|
476
|
+
const cycleDocId = `cycle${cycle}`;
|
|
303
477
|
const doc = await read(opts.cwd, cycleDocId);
|
|
304
478
|
if (doc === null) {
|
|
305
479
|
io.stderr(`df objectives derive: cycle doc ${cycleDocId} not found under ` +
|
|
@@ -318,32 +492,7 @@ async function cmdDerive(opts, io, deps) {
|
|
|
318
492
|
"list items — nothing to derive.\n");
|
|
319
493
|
return 1;
|
|
320
494
|
}
|
|
321
|
-
|
|
322
|
-
// item line, so any continuation line is content SILENTLY excluded from the
|
|
323
|
-
// source binding: editing it would not change the sha256, yet `df objectives
|
|
324
|
-
// check` and the dashboard `source-bound` rung would still pass — an unsound
|
|
325
|
-
// binding. The design intends SINGLE-LINE atomic exit criteria (spec §4.3),
|
|
326
|
-
// so REFUSE to mis-bind rather than dropping the continuation silently. The
|
|
327
|
-
// author must make the criterion a single line (or split it into multiple
|
|
328
|
-
// single-line criteria). This catches only NON-marker continuations; a
|
|
329
|
-
// marker-led nested sub-bullet is enumerated as its own item (the distinct
|
|
330
|
-
// phantom-objective case, tracked at dark-factory#248).
|
|
331
|
-
const multiLine = criteria.filter((c) => c.continuationLines.length > 0);
|
|
332
|
-
if (multiLine.length > 0) {
|
|
333
|
-
const detail = multiLine
|
|
334
|
-
.map((c) => ` - ${cycleDocId}#${c.id}: ${JSON.stringify(c.raw.trim())} ` +
|
|
335
|
-
`has ${c.continuationLines.length} continuation line` +
|
|
336
|
-
`${c.continuationLines.length === 1 ? "" : "s"} (first: ` +
|
|
337
|
-
`${JSON.stringify((c.continuationLines[0] ?? "").trim())})`)
|
|
338
|
-
.join("\n");
|
|
339
|
-
io.stderr(`df objectives derive: ${cycleDocId} '## Exit criteria' has multi-line ` +
|
|
340
|
-
`criterion/criteria — refusing to mis-bind.\n${detail}\n` +
|
|
341
|
-
`Each exit criterion must be a SINGLE line: only that line is hashed into ` +
|
|
342
|
-
`the source binding, so a continuation line would be silently excluded ` +
|
|
343
|
-
`(editing it would not change the binding). Rewrite each offending ` +
|
|
344
|
-
`criterion as one line (or split it into multiple single-line criteria), ` +
|
|
345
|
-
`then re-run. See the derive-from-source design §4.3 (single-line atomic ` +
|
|
346
|
-
`criteria).\n`);
|
|
495
|
+
if (multiLineCriterionGuard(criteria, `${cycleDocId}#`, `cycle doc ${cycleDocId}`, "'## Exit criteria'", io)) {
|
|
347
496
|
return 1;
|
|
348
497
|
}
|
|
349
498
|
// Duplicate-id guard: a cycle doc with two identically-labeled EC items
|
|
@@ -366,12 +515,7 @@ async function cmdDerive(opts, io, deps) {
|
|
|
366
515
|
`unique — fix the cycle doc to use distinct labels, then re-run.\n`);
|
|
367
516
|
return 1;
|
|
368
517
|
}
|
|
369
|
-
|
|
370
|
-
// manifest by objective id. Re-running refreshes text/hash + reconciles
|
|
371
|
-
// added/removed criteria, but never clobbers bindings the agent authored.
|
|
372
|
-
const manifestPath = resolve(opts.cwd, MANIFEST_RELATIVE_PATH);
|
|
373
|
-
const preservedBindings = loadPreservedBindings(manifestPath, io);
|
|
374
|
-
const objectives = criteria.map((c) => {
|
|
518
|
+
return criteria.map((c) => {
|
|
375
519
|
const id = `${cycleDocId}#${c.id}`;
|
|
376
520
|
const locator = `exit_criteria#${c.id}`;
|
|
377
521
|
// Defensive: the locator is built from `exit_criteria` + an `ec<k>` id, both
|
|
@@ -383,16 +527,105 @@ async function cmdDerive(opts, io, deps) {
|
|
|
383
527
|
const sha256 = sha256Hex(canonicalizeCriterion(c.raw));
|
|
384
528
|
return {
|
|
385
529
|
id,
|
|
386
|
-
source: { kind: "cycle", ref:
|
|
530
|
+
source: { kind: "cycle", ref: cycle },
|
|
387
531
|
text: c.text,
|
|
388
|
-
|
|
532
|
+
// Cycle proof varies per criterion → default empty; the operator binds
|
|
533
|
+
// routes/tests/critics. Preserved across re-derive by finalizeAndEmit.
|
|
534
|
+
attestedBy: [],
|
|
389
535
|
enforced: false,
|
|
390
536
|
sourceCriterion: { kind: "text-hash", locator, sha256 },
|
|
391
537
|
};
|
|
392
538
|
});
|
|
539
|
+
}
|
|
540
|
+
function buildBriefObjectives(opts, briefPath, io) {
|
|
541
|
+
// Resolve a relative --brief path against opts.cwd (the repo root to operate
|
|
542
|
+
// in), consistent with how --cwd governs cycle-doc resolution, the
|
|
543
|
+
// resolveBriefFile convention check, and the manifest write. Without this,
|
|
544
|
+
// `--brief rel.md --cwd /repo` would read rel.md from the PROCESS cwd, breaking
|
|
545
|
+
// --cwd-isolated MCP/CI invocations.
|
|
546
|
+
const resolvedBriefPath = isAbsolute(briefPath) ? briefPath : resolve(opts.cwd, briefPath);
|
|
547
|
+
if (!existsSync(resolvedBriefPath)) {
|
|
548
|
+
io.stderr(`df objectives derive: brief file not found: ${briefPath}\n`);
|
|
549
|
+
return 1;
|
|
550
|
+
}
|
|
551
|
+
let source;
|
|
552
|
+
try {
|
|
553
|
+
source = readFileSync(resolvedBriefPath, "utf8");
|
|
554
|
+
}
|
|
555
|
+
catch (err) {
|
|
556
|
+
io.stderr(`df objectives derive: could not read brief ${briefPath}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
557
|
+
return 1;
|
|
558
|
+
}
|
|
559
|
+
const slug = slugifyBriefName(basename(resolvedBriefPath));
|
|
560
|
+
if (slug === "") {
|
|
561
|
+
io.stderr(`df objectives derive: could not derive a slug from brief filename ` +
|
|
562
|
+
`${JSON.stringify(basename(briefPath))} — rename it to contain alphanumerics ` +
|
|
563
|
+
`(the slug forms the objective id "brief-<slug>#ac<k>").\n`);
|
|
564
|
+
return 1;
|
|
565
|
+
}
|
|
566
|
+
const sections = splitSections(splitFrontmatter(source).body);
|
|
567
|
+
const section = sections[BRIEF_AC_SECTION_SLUG];
|
|
568
|
+
if (section === undefined || section.trim() === "") {
|
|
569
|
+
const found = Object.keys(sections);
|
|
570
|
+
io.stderr(`df objectives derive: brief ${briefPath} has no '## Done-when' section ` +
|
|
571
|
+
`(found: ${found.length > 0 ? found.join(", ") : "no sections"}) — nothing to derive.\n`);
|
|
572
|
+
return 1;
|
|
573
|
+
}
|
|
574
|
+
const criteria = extractBriefCriteria(section);
|
|
575
|
+
if (criteria.length === 0) {
|
|
576
|
+
io.stderr(`df objectives derive: brief ${briefPath} '## Done-when' section has no checkbox ` +
|
|
577
|
+
`items (e.g. "- [ ] ...") — nothing to derive.\n`);
|
|
578
|
+
return 1;
|
|
579
|
+
}
|
|
580
|
+
if (multiLineCriterionGuard(criteria, `brief-${slug}#`, `brief ${briefPath}`, "'## Done-when'", io)) {
|
|
581
|
+
return 1;
|
|
582
|
+
}
|
|
583
|
+
// Verification-locality note (non-fatal): `df objectives check` and the
|
|
584
|
+
// cycle-doc-validation gate resolve the brief at `.darkfactory/briefs/<slug>.md`.
|
|
585
|
+
// If the brief isn't committed there, the manifest is still produced but its
|
|
586
|
+
// objectives cannot be re-verified — warn so the operator commits it home.
|
|
587
|
+
if (resolveBriefFile(opts.cwd, slug) === null) {
|
|
588
|
+
io.stderr(`df objectives derive: note — 'df objectives check' resolves this brief at ` +
|
|
589
|
+
`${join(".darkfactory", "briefs", `${slug}.md`)}; commit the brief there so its ` +
|
|
590
|
+
`objectives stay verifiable.\n`);
|
|
591
|
+
}
|
|
592
|
+
return criteria.map((c) => {
|
|
593
|
+
const id = `brief-${slug}#${c.id}`;
|
|
594
|
+
const locator = `${BRIEF_AC_SECTION_SLUG}#${c.id}`;
|
|
595
|
+
if (!SOURCE_LOCATOR_RE.test(locator)) {
|
|
596
|
+
throw new Error(`internal: derived locator ${JSON.stringify(locator)} is malformed`);
|
|
597
|
+
}
|
|
598
|
+
const sha256 = sha256Hex(canonicalizeCriterion(c.raw));
|
|
599
|
+
return {
|
|
600
|
+
id,
|
|
601
|
+
source: { kind: "brief", ref: slug },
|
|
602
|
+
text: c.text,
|
|
603
|
+
// Seed an EMPTY `attestedBy`, exactly like `--cycle`: derive produces a
|
|
604
|
+
// text-hash-SOURCE-bound objective whose proof binding is added post-hoc
|
|
605
|
+
// (a visual/UI `route`, or a `test`) and preserved across re-derive by
|
|
606
|
+
// finalizeAndEmit. Seeding a concrete route here would make the default
|
|
607
|
+
// manifest fail cycle-doc-validation until that route is registered in
|
|
608
|
+
// `.agent-review/config.json`; the route→`df prove` join is a downstream
|
|
609
|
+
// integration concern, not a derive-time default.
|
|
610
|
+
attestedBy: [],
|
|
611
|
+
enforced: false,
|
|
612
|
+
sourceCriterion: { kind: "text-hash", locator, sha256 },
|
|
613
|
+
};
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
// Shared derive tail: preserve hand-edited `attestedBy` bindings from an existing
|
|
617
|
+
// manifest (idempotence), self-validate against the schema parser (a manifest
|
|
618
|
+
// that can't round-trip is a bug surfaced here, not at gate time), then emit —
|
|
619
|
+
// to stdout (YAML/JSON) or `.darkfactory/objectives.yaml` under `--apply`.
|
|
620
|
+
function finalizeAndEmit(objectives, opts, io) {
|
|
621
|
+
const manifestPath = resolve(opts.cwd, MANIFEST_RELATIVE_PATH);
|
|
622
|
+
const preservedBindings = loadPreservedBindings(manifestPath, io);
|
|
623
|
+
for (const o of objectives) {
|
|
624
|
+
const preserved = preservedBindings.get(o.id);
|
|
625
|
+
if (preserved)
|
|
626
|
+
o.attestedBy = preserved;
|
|
627
|
+
}
|
|
393
628
|
const manifest = { schemaVersion: 1, objectives };
|
|
394
|
-
// Validate our own output against the schema parser — a derived manifest that
|
|
395
|
-
// can't round-trip is a bug, surfaced loudly here rather than at gate time.
|
|
396
629
|
try {
|
|
397
630
|
parseObjectivesManifest(manifest);
|
|
398
631
|
}
|
|
@@ -470,6 +703,67 @@ async function cmdCheck(opts, io, deps) {
|
|
|
470
703
|
}
|
|
471
704
|
const sectionSlug = hashMatch[1];
|
|
472
705
|
const criterionId = hashMatch[2];
|
|
706
|
+
// Brief-sourced objective: resolve the in-repo brief at
|
|
707
|
+
// `.darkfactory/briefs/<slug>.md` (slug = source.ref, NOT re-parsed from the
|
|
708
|
+
// id) and verify the Done-when checkbox text-hash. This is the local
|
|
709
|
+
// author-time verification that makes gate-side recompute safely deferrable
|
|
710
|
+
// (cycle 27 Designer Mode Phase C, #312).
|
|
711
|
+
if (obj.source?.kind === "brief") {
|
|
712
|
+
if (sectionSlug !== BRIEF_AC_SECTION_SLUG) {
|
|
713
|
+
results.push({
|
|
714
|
+
id: obj.id,
|
|
715
|
+
status: "fail",
|
|
716
|
+
message: `unsupported section in brief locator: ${sectionSlug} (only ${BRIEF_AC_SECTION_SLUG} is supported).`,
|
|
717
|
+
});
|
|
718
|
+
anyFail = true;
|
|
719
|
+
continue;
|
|
720
|
+
}
|
|
721
|
+
const briefFile = resolveBriefFile(opts.cwd, obj.source.ref);
|
|
722
|
+
if (briefFile === null) {
|
|
723
|
+
results.push({
|
|
724
|
+
id: obj.id,
|
|
725
|
+
status: "fail",
|
|
726
|
+
message: `brief ${obj.source.ref} not found at ${join(".darkfactory", "briefs", `${obj.source.ref}.md`)}.`,
|
|
727
|
+
});
|
|
728
|
+
anyFail = true;
|
|
729
|
+
continue;
|
|
730
|
+
}
|
|
731
|
+
const briefSection = splitSections(splitFrontmatter(readFileSync(briefFile, "utf8")).body)[BRIEF_AC_SECTION_SLUG];
|
|
732
|
+
if (briefSection === undefined || briefSection.trim() === "") {
|
|
733
|
+
results.push({
|
|
734
|
+
id: obj.id,
|
|
735
|
+
status: "fail",
|
|
736
|
+
message: `brief ${obj.source.ref} has no '## Done-when' section.`,
|
|
737
|
+
});
|
|
738
|
+
anyFail = true;
|
|
739
|
+
continue;
|
|
740
|
+
}
|
|
741
|
+
const briefCriteria = extractBriefCriteria(briefSection);
|
|
742
|
+
const briefCriterion = briefCriteria.find((c) => c.id === criterionId);
|
|
743
|
+
if (briefCriterion === undefined) {
|
|
744
|
+
results.push({
|
|
745
|
+
id: obj.id,
|
|
746
|
+
status: "fail",
|
|
747
|
+
message: `criterion ${criterionId} not found in brief ${obj.source.ref} '## Done-when' (${briefCriteria.length} checkbox item(s) found).`,
|
|
748
|
+
});
|
|
749
|
+
anyFail = true;
|
|
750
|
+
continue;
|
|
751
|
+
}
|
|
752
|
+
const actualBriefSha = sha256Hex(canonicalizeCriterion(briefCriterion.raw));
|
|
753
|
+
if (actualBriefSha !== sc.sha256) {
|
|
754
|
+
results.push({
|
|
755
|
+
id: obj.id,
|
|
756
|
+
status: "fail",
|
|
757
|
+
message: `text-hash mismatch for ${criterionId} in brief ${obj.source.ref}: ` +
|
|
758
|
+
`declared ${sc.sha256.slice(0, 12)}… ≠ actual ${actualBriefSha.slice(0, 12)}… ` +
|
|
759
|
+
"(brief text may have changed — re-run `df objectives derive --brief` to refresh).",
|
|
760
|
+
});
|
|
761
|
+
anyFail = true;
|
|
762
|
+
continue;
|
|
763
|
+
}
|
|
764
|
+
results.push({ id: obj.id, status: "ok", message: `text-hash verified (${sc.sha256.slice(0, 12)}…).` });
|
|
765
|
+
continue;
|
|
766
|
+
}
|
|
473
767
|
// Only `exit_criteria` is currently resolvable.
|
|
474
768
|
if (sectionSlug !== "exit_criteria") {
|
|
475
769
|
results.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectives.js","sourceRoot":"","sources":["../../src/commands/objectives.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,sDAAsD;AACtD,EAAE;AACF,eAAe;AACf,sFAAsF;AACtF,4FAA4F;AAC5F,yEAAyE;AACzE,EAAE;AACF,8DAA8D;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,GAGlB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAwCxE,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,uBAAuB,GAAG,EAAE,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,IAAc;IACnC,IAAI,IAAwB,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;YAC/C,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO;gBACL,KAAK,EACH,GAAG,CAAC,kFAAkF;aACzF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,OAAO;gBACL,KAAK,EACH,GAAG,IAAI,kFAAkF;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,mCAAmC,CAAC,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,iEAAiE,EAAE,CAAC;IACtF,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAc;IACrC,IAAI,KAAyB,CAAC;IAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC;YAClE,CAAC;YACD,KAAK,GAAG,IAAI,CAAC;YACb,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;YAC9C,CAAC;YACD,GAAG,GAAG,IAAI,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,KAAK,GAAG,IAAI,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnB,IAAI,GAAG,IAAI,CAAC;YACZ,SAAS;QACX,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,mCAAmC,CAAC,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC;IAC7D,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,4DAA4D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACzG,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,IAAc;IACpC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;YAC9C,CAAC;YACD,GAAG,GAAG,IAAI,CAAC;YACX,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnB,IAAI,GAAG,IAAI,CAAC;YACZ,SAAS;QACX,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,mCAAmC,CAAC,EAAE,EAAE,CAAC;IAC3D,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,wDAAwD;AACxD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,wEAAwE;AACxE,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,+EAA+E;AAC/E,4CAA4C;AAC5C,EAAE;AACF,+EAA+E;AAC/E,4DAA4D;AAC5D,+EAA+E;AAC/E,+EAA+E;AAC/E,sCAAsC;AACtC,8EAA8E;AAE9E,gEAAgE;AAChE,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAE3C,8EAA8E;AAC9E,8EAA8E;AAC9E,sEAAsE;AACtE,gFAAgF;AAChF,+BAA+B;AAC/B,MAAM,WAAW,GAAG,2DAA2D,CAAC;AAEhF,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,SAAS,oBAAoB,CAAC,OAAe;IAC3C,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc;IAC7D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iDAAiD,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB;IAC1F,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,iCAAiC;IAC7D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAyBD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAElC,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,EAAE,CAAC;QACxF,SAAS,EAAE,CAAC;QAEZ,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,MAAM,CAAC,iCAAiC;YAChE,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,4CAA4C;YAC3E,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,sBAAsB,GAAG,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEvE,MAAM,IAAI,GAAG;IACX,0EAA0E;IAC1E,EAAE;IACF,QAAQ;IACR,sCAAsC;IACtC,EAAE;IACF,cAAc;IACd,4DAA4D;IAC5D,gFAAgF;IAChF,+DAA+D;IAC/D,EAAE;IACF,eAAe;IACf,0DAA0D;IAC1D,EAAE;IACF,iBAAiB;IACjB,mFAAmF;IACnF,sFAAsF;IACtF,6EAA6E;IAC7E,yEAAyE;IACzE,EAAE;IACF,gBAAgB;IAChB,uGAAuG;IACvG,sDAAsD;IACtD,EAAE;IACF,0CAA0C;IAC1C,EAAE;IACF,aAAa;IACb,cAAc;IACd,uBAAuB;IACvB,yBAAyB;IACzB,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAc,EACd,EAAgB,EAChB,OAAuB,EAAE;IAEzB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,EAAE,CAAC,MAAM,CAAC,kBAAkB,MAAM,CAAC,KAAK,6CAA6C,CAAC,CAAC;QACvF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrG,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,8EAA8E;IAC9E,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,IAAmB,EACnB,EAAgB,EAChB,IAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,EAAE,CAAC,MAAM,CACP,mCAAmC,UAAU,mBAAmB;YAC9D,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB,CACrD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,EAAE,CAAC,MAAM,CACP,mCAAmC,UAAU,qCAAqC;YAChF,yCAAyC,CAC5C,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CACP,mCAAmC,UAAU,qCAAqC;YAChF,mCAAmC,CACtC,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,wDAAwD;IACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,SAAS;aACrB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG;YAC7D,OAAO,CAAC,CAAC,iBAAiB,CAAC,MAAM,oBAAoB;YACrD,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,WAAW;YACzD,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAC9D;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,EAAE,CAAC,MAAM,CACP,yBAAyB,UAAU,qCAAqC;YACtE,+CAA+C,MAAM,IAAI;YACzD,2EAA2E;YAC3E,wEAAwE;YACxE,oEAAoE;YACpE,0EAA0E;YAC1E,0EAA0E;YAC1E,cAAc,CACjB,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wEAAwE;IACxE,8EAA8E;IAC9E,iFAAiF;IACjF,6EAA6E;IAC7E,2EAA2E;IAC3E,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,MAAM,CACP,yBAAyB,UAAU,yCAAyC;YAC1E,UAAU,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C;YAClF,mEAAmE,CACtE,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAElE,MAAM,UAAU,GAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjD,MAAM,EAAE,GAAG,GAAG,UAAU,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,EAAE,CAAC;QACxC,6EAA6E;QAC7E,6EAA6E;QAC7E,+DAA+D;QAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO;YACL,EAAE;YACF,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE;YAC1C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAC3C,QAAQ,EAAE,KAAK;YACf,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE;SACxD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAuB,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAEtE,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,CAAC;QACH,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,MAAM,CACP,qFACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CACP,SAAS,UAAU,CAAC,MAAM,aAAa,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM;gBAC7E,GAAG,sBAAsB,IAAI,CAChC,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AA0BD,KAAK,UAAU,QAAQ,CACrB,IAAkB,EAClB,EAAgB,EAChB,IAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAE/D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,sBAAsB,gBAAgB,IAAI,CAAC,GAAG,sBAAsB,CAAC;QACvF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/C,QAAQ,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,MAAM,CACP,wBAAwB,sBAAsB,yBAC5C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC;QAE/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAAC;YAC/F,SAAS;QACX,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACnF,SAAS;QACX,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,6CAA6C;aACvD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,0BAA0B;QAC1B,gDAAgD;QAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC1F,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAClC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAElC,gDAAgD;QAChD,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,mCAAmC,WAAW,qCAAqC;aAC7F,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,iDAAiD,GAAG,CAAC,EAAE,EAAE;aACnE,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAE5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,aAAa,UAAU,oBAAoB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;aAC9E,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,aAAa,UAAU,YAAY,WAAW,YAAY;aACpE,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,aAAa,WAAW,iBAAiB,UAAU,KAAK,WAAW,MAAM,QAAQ,CAAC,MAAM,gBAAgB;aAClH,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,IAAI,YAAY,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,MAAM;gBACd,OAAO,EACL,0BAA0B,WAAW,OAAO,UAAU,IAAI;oBAC1D,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI;oBAC7E,iFAAiF;aACpF,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,EAAE,CAAC,MAAM,CACP,IAAI,CAAC,SAAS,CACZ,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EACnG,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACtB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC/B,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,EAAE,CAAC,MAAM,CAAC,SAAS,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzF,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,YAAoB,EACpB,EAAgB;IAEhB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,MAAM,CACP,4CAA4C,sBAAsB,gBAAgB;YAChF,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB;YAChF,sDAAsD,CACzD,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"objectives.js","sourceRoot":"","sources":["../../src/commands/objectives.ts"],"names":[],"mappings":"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"}
|