frontend-harness 0.7.9 → 0.7.10
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/CHANGELOG.md +29 -0
- package/README.md +3 -0
- package/dist/cli/index.js +20 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/runtime/clean.js +24 -3
- package/dist/runtime/clean.js.map +1 -1
- package/dist/runtime/context.js +49 -5
- package/dist/runtime/context.js.map +1 -1
- package/dist/runtime/evidence.js +63 -8
- package/dist/runtime/evidence.js.map +1 -1
- package/dist/runtime/graph.js +11 -4
- package/dist/runtime/graph.js.map +1 -1
- package/dist/runtime/knowledge/constants.d.ts +9 -0
- package/dist/runtime/knowledge/constants.js +24 -0
- package/dist/runtime/knowledge/constants.js.map +1 -0
- package/dist/runtime/knowledge/core.d.ts +19 -0
- package/dist/runtime/knowledge/core.js +1264 -0
- package/dist/runtime/knowledge/core.js.map +1 -0
- package/dist/runtime/knowledge/types.d.ts +172 -0
- package/dist/runtime/knowledge/types.js +2 -0
- package/dist/runtime/knowledge/types.js.map +1 -0
- package/dist/runtime/knowledge.d.ts +2 -188
- package/dist/runtime/knowledge.js +1 -1126
- package/dist/runtime/knowledge.js.map +1 -1
- package/dist/runtime/plan/component-resolver.js +17 -6
- package/dist/runtime/plan/component-resolver.js.map +1 -1
- package/dist/runtime/plan/proposal.js +9 -0
- package/dist/runtime/plan/proposal.js.map +1 -1
- package/dist/runtime/plan.js +6 -4
- package/dist/runtime/plan.js.map +1 -1
- package/dist/runtime/policy-provenance.js +43 -5
- package/dist/runtime/policy-provenance.js.map +1 -1
- package/dist/runtime/project-discovery.js +32 -17
- package/dist/runtime/project-discovery.js.map +1 -1
- package/dist/runtime/project-paths.js +7 -1
- package/dist/runtime/project-paths.js.map +1 -1
- package/dist/runtime/protocol-init.js +105 -19
- package/dist/runtime/protocol-init.js.map +1 -1
- package/dist/runtime/repair-decision.js +76 -16
- package/dist/runtime/repair-decision.js.map +1 -1
- package/dist/runtime/repair-packet.js +55 -16
- package/dist/runtime/repair-packet.js.map +1 -1
- package/dist/runtime/scaffold/vue-template.js +1 -1
- package/dist/runtime/scaffold/vue-template.js.map +1 -1
- package/dist/runtime/scaffold.js +44 -8
- package/dist/runtime/scaffold.js.map +1 -1
- package/dist/runtime/skills.js +120 -18
- package/dist/runtime/skills.js.map +1 -1
- package/dist/runtime/state.js +49 -8
- package/dist/runtime/state.js.map +1 -1
- package/dist/runtime/units.js +11 -4
- package/dist/runtime/units.js.map +1 -1
- package/dist/runtime/verification-commands.js +95 -21
- package/dist/runtime/verification-commands.js.map +1 -1
- package/dist/runtime/verify.js +64 -18
- package/dist/runtime/verify.js.map +1 -1
- package/dist/runtime/visual-compare.js +104 -12
- package/dist/runtime/visual-compare.js.map +1 -1
- package/dist/schemas/validation.js +222 -6
- package/dist/schemas/validation.js.map +1 -1
- package/dist/storage/json.d.ts +9 -1
- package/dist/storage/json.js +106 -8
- package/dist/storage/json.js.map +1 -1
- package/docs/RELEASE.md +5 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,35 @@ All notable changes to `frontend-harness` are documented here.
|
|
|
4
4
|
|
|
5
5
|
This project follows semver while it is pre-1.0: patch releases may include harness policy improvements that tighten validation, and minor releases may change generated protocol expectations.
|
|
6
6
|
|
|
7
|
+
## 0.7.9 - 2026-05-27
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Hardened harness artifact writes, protocol initialization, visual comparison outputs, and log cleanup against symlink paths that could otherwise write or delete files outside the project.
|
|
12
|
+
- Rejected symlinked state lock files instead of waiting on or inspecting external lock targets.
|
|
13
|
+
- Ignored symlinked project knowledge and skill Markdown files during discovery so external files cannot be injected into project-local planning policy.
|
|
14
|
+
- Ignored symlinked protocol constraint files and PRD discovery roots, and rejected non-POSIX file paths in execution-unit and component-graph artifacts.
|
|
15
|
+
- Rejected duplicate CLI flags instead of letting later values silently override earlier inputs.
|
|
16
|
+
- Rejected malformed or oversized PNG inputs during visual comparison before decoding or allocating diff buffers.
|
|
17
|
+
- Bounded knowledge and PRD markdown scanning by file size, file count, and directory depth so checks fail visibly instead of consuming unbounded resources.
|
|
18
|
+
- Bounded project-local skill markdown scanning by file size, file count, and directory depth so checks fail visibly instead of consuming unbounded resources.
|
|
19
|
+
- Rejected oversized execution-unit and component-graph artifacts before parsing generated harness JSON.
|
|
20
|
+
- Skipped context artifact hashing for oversized harness files so context construction cannot read unbounded artifact contents.
|
|
21
|
+
- Read repair packet log excerpts from bounded tail windows while hashing logs in chunks.
|
|
22
|
+
- Skipped repair decision provenance hashes for oversized repair and verification artifacts.
|
|
23
|
+
- Rejected oversized agent proposal and repair decision input envelopes before JSON parsing.
|
|
24
|
+
- Bounded protocol initialization and check reads for managed protocol files, builtin project skills, and protocol provenance artifacts.
|
|
25
|
+
- Rejected oversized visual evidence artifacts before hash validation and hashed git change baselines in chunks.
|
|
26
|
+
- Failed verification command discovery when package verification scripts are malformed instead of treating invalid script values as runnable commands.
|
|
27
|
+
- Preserved failing verification command exit codes when test output contains phrases such as "not found" instead of misclassifying those failures as command launch errors.
|
|
28
|
+
- Wrote harness JSON and text artifacts through same-directory temporary files and atomic renames to reduce partial-write and symlink race exposure.
|
|
29
|
+
- Wrote visual comparison diff images through the same atomic write path as other harness artifacts.
|
|
30
|
+
- Rejected stale protocol provenance artifact paths instead of treating tampered path metadata as current.
|
|
31
|
+
- Applied scaffold executable modes through non-symlink file handles so generated file mode changes cannot follow replaced symlink targets.
|
|
32
|
+
- Revalidated accepted repair decision summaries before exposing them through context so tampered harness artifacts cannot publish unsafe target paths.
|
|
33
|
+
- Preserved quoted frontmatter scalar values during knowledge and skill parsing, preventing escaped quotes from accumulating during read/update cycles.
|
|
34
|
+
- Made context artifact reporting tolerate malformed artifact paths that exist as directories by reporting a missing hash instead of failing the whole context command.
|
|
35
|
+
|
|
7
36
|
## 0.7.8 - 2026-05-26
|
|
8
37
|
|
|
9
38
|
### Changed
|
package/README.md
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -371,7 +371,7 @@ function handleVisual(projectRoot, parsed) {
|
|
|
371
371
|
...optionalString("actual", parsed.flags["actual"]),
|
|
372
372
|
...optionalString("diff", parsed.flags["diff"]),
|
|
373
373
|
...optionalString("report", parsed.flags["report"]),
|
|
374
|
-
...
|
|
374
|
+
...optionalFiniteNumber("threshold", parsed.flags["threshold"])
|
|
375
375
|
});
|
|
376
376
|
output(result, parsed.json);
|
|
377
377
|
process.exitCode = result.status === "failed" ? 1 : 0;
|
|
@@ -563,6 +563,12 @@ function parseArgs(args) {
|
|
|
563
563
|
}
|
|
564
564
|
if (arg.startsWith("--")) {
|
|
565
565
|
const key = arg.slice(2);
|
|
566
|
+
if (key.includes("=")) {
|
|
567
|
+
throw new Error(`Unsupported flag assignment syntax: --${key}. Use --${key.split("=")[0]} <value>.`);
|
|
568
|
+
}
|
|
569
|
+
if (Object.prototype.hasOwnProperty.call(flags, key)) {
|
|
570
|
+
throw new Error(`Duplicate flag: --${key}`);
|
|
571
|
+
}
|
|
566
572
|
if (["json", "from-git", "dry-run", "check", "help", "force", "include-deprecated"].includes(key)) {
|
|
567
573
|
flags[key] = true;
|
|
568
574
|
}
|
|
@@ -892,6 +898,19 @@ function optionalNumber(key, value) {
|
|
|
892
898
|
}
|
|
893
899
|
return { [key]: parsed };
|
|
894
900
|
}
|
|
901
|
+
function optionalFiniteNumber(key, value) {
|
|
902
|
+
if (value === undefined) {
|
|
903
|
+
return {};
|
|
904
|
+
}
|
|
905
|
+
if (typeof value !== "string") {
|
|
906
|
+
throw new Error("numeric flag requires a value");
|
|
907
|
+
}
|
|
908
|
+
const parsed = Number(value);
|
|
909
|
+
if (!Number.isFinite(parsed)) {
|
|
910
|
+
throw new Error(`Invalid numeric value: ${value}`);
|
|
911
|
+
}
|
|
912
|
+
return { [key]: parsed };
|
|
913
|
+
}
|
|
895
914
|
function isRecord(value) {
|
|
896
915
|
return typeof value === "object" && value !== null;
|
|
897
916
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxN,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAA2B,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,wCAAwC,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC1H,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAWtE,MAAM,YAAY,GAA6B;IAC7C,IAAI,EAAE;QACJ,QAAQ;QACR,kCAAkC;QAClC,0CAA0C;QAC1C,wCAAwC;QACxC,EAAE;QACF,QAAQ;QACR,+DAA+D;QAC/D,wEAAwE;QACxE,+CAA+C;KAChD;IACD,OAAO,EAAE;QACP,QAAQ;QACR,mCAAmC;KACpC;IACD,KAAK,EAAE;QACL,QAAQ;QACR,qEAAqE;QACrE,EAAE;QACF,QAAQ;QACR,mFAAmF;QACnF,mEAAmE;QACnE,wDAAwD;KACzD;IACD,IAAI,EAAE;QACJ,QAAQ;QACR,iJAAiJ;QACjJ,EAAE;QACF,QAAQ;QACR,+EAA+E;QAC/E,gFAAgF;QAChF,wEAAwE;QACxE,kEAAkE;KACnE;IACD,MAAM,EAAE;QACN,QAAQ;QACR,iGAAiG;QACjG,EAAE;QACF,QAAQ;QACR,kEAAkE;QAClE,6DAA6D;QAC7D,8DAA8D;QAC9D,0DAA0D;KAC3D;IACD,MAAM,EAAE;QACN,QAAQ;QACR,uJAAuJ;QACvJ,EAAE;QACF,QAAQ;QACR,+DAA+D;QAC/D,8DAA8D;QAC9D,8CAA8C;QAC9C,0DAA0D;QAC1D,8DAA8D;KAC/D;IACD,gBAAgB,EAAE;QAChB,QAAQ;QACR,uJAAuJ;KACxJ;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,6CAA6C;QAC7C,wEAAwE;KACzE;IACD,mBAAmB,EAAE;QACnB,QAAQ;QACR,6CAA6C;KAC9C;IACD,iBAAiB,EAAE;QACjB,QAAQ;QACR,wEAAwE;QACxE,EAAE;QACF,QAAQ;QACR,qFAAqF;QACrF,uDAAuD;KACxD;IACD,KAAK,EAAE;QACL,QAAQ;QACR,sCAAsC;QACtC,yCAAyC;QACzC,uCAAuC;QACvC,+CAA+C;QAC/C,mDAAmD;KACpD;IACD,qBAAqB,EAAE;QACrB,QAAQ;QACR,+CAA+C;QAC/C,mDAAmD;QACnD,EAAE;QACF,QAAQ;QACR,yEAAyE;KAC1E;IACD,SAAS,EAAE;QACT,QAAQ;QACR,8FAA8F;QAC9F,oHAAoH;QACpH,iFAAiF;QACjF,2CAA2C;QAC3C,8CAA8C;QAC9C,0CAA0C;QAC1C,gEAAgE;QAChE,8DAA8D;QAC9D,2CAA2C;QAC3C,EAAE;QACF,+CAA+C;KAChD;IACD,eAAe,EAAE;QACf,QAAQ;QACR,mIAAmI;QACnI,EAAE;QACF,0BAA0B;QAC1B,iCAAiC;QACjC,yCAAyC;QACzC,6CAA6C;QAC7C,iCAAiC;QACjC,iCAAiC;QACjC,iCAAiC;QACjC,iCAAiC;QACjC,EAAE;QACF,qBAAqB;QACrB,0FAA0F;QAC1F,oFAAoF;QACpF,8CAA8C;QAC9C,uEAAuE;QACvE,+EAA+E;QAC/E,wEAAwE;QACxE,yDAAyD;QACzD,8BAA8B;QAC9B,+BAA+B;KAChC;IACD,kBAAkB,EAAE;QAClB,QAAQ;QACR,+IAA+I;QAC/I,EAAE;QACF,QAAQ;QACR,2FAA2F;QAC3F,2CAA2C;QAC3C,mDAAmD;QACnD,qDAAqD;QACrD,uDAAuD;QACvD,wDAAwD;QACxD,8CAA8C;QAC9C,oDAAoD;QACpD,0CAA0C;QAC1C,mCAAmC;QACnC,gEAAgE;QAChE,8BAA8B;QAC9B,+BAA+B;KAChC;IACD,kBAAkB,EAAE;QAClB,QAAQ;QACR,6GAA6G;QAC7G,EAAE;QACF,QAAQ;QACR,qDAAqD;QACrD,6FAA6F;QAC7F,4EAA4E;QAC5E,iDAAiD;QACjD,0DAA0D;KAC3D;IACD,mBAAmB,EAAE;QACnB,QAAQ;QACR,uJAAuJ;KACxJ;IACD,kBAAkB,EAAE;QAClB,QAAQ;QACR,yGAAyG;KAC1G;IACD,gBAAgB,EAAE;QAChB,QAAQ;QACR,0FAA0F;KAC3F;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,uEAAuE;QACvE,EAAE;QACF,4BAA4B;QAC5B,iNAAiN;QACjN,EAAE;QACF,6GAA6G;KAC9G;IACD,MAAM,EAAE;QACN,QAAQ;QACR,yCAAyC;QACzC,+EAA+E;KAChF;IACD,iBAAiB,EAAE;QACjB,QAAQ;QACR,+EAA+E;KAChF;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,8FAA8F;QAC9F,EAAE;QACF,QAAQ;QACR,0CAA0C;QAC1C,4DAA4D;QAC5D,4DAA4D;QAC5D,oEAAoE;KACrE;IACD,MAAM,EAAE;QACN,QAAQ;QACR,uCAAuC;QACvC,wCAAwC;KACzC;IACD,KAAK,EAAE;QACL,QAAQ;QACR,uCAAuC;KACxC;IACD,KAAK,EAAE;QACL,QAAQ;QACR,uCAAuC;KACxC;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,0CAA0C;KAC3C;CACF,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,MAAM,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,KAAK,MAAM;gBACT,CAAC;oBACC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO;YACT,KAAK,SAAS;gBACZ,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO;YACT,KAAK,OAAO;gBACV,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE;oBACxC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxC,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;iBACzD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;YACT,KAAK,MAAM;gBACT,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC7C,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACxD,GAAG,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBACnE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;YACT,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,EAAE;oBAC1C,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACzD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC/C,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAClD,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;oBACvE,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ;wBAC1B,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC;gBACR,OAAO;YACT,CAAC;YACD,KAAK,UAAU;gBACb,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACpC,OAAO;YACT,KAAK,QAAQ;gBACX,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO;YACT,KAAK,OAAO;gBACV,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACjC,OAAO;YACT,KAAK,WAAW;gBACd,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACrC,OAAO;YACT,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,qCAAqC,CAAC,CAAC;gBAC1E,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,qCAAqC,CAAC,CAAC;gBAC1E,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,QAAQ;gBACX,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO;YACT,KAAK,UAAU;gBACb,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE;oBAClC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAClD,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACtC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;YACT,KAAK,QAAQ;gBACX,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO;YACT,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,kCAAkC,CAAC,CAAC;gBACvE,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,kCAAkC,CAAC,CAAC;gBACvE,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB,EAAE,MAAkB;IAC7D,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB,EAAE,MAAkB;IAC3D,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE;YACjD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;SAChE,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB,EAAE,MAAkB;IAC1D,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtH,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,wCAAwC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB,EAAE,MAAkB;IAC3D,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC1E,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB,EAAE,MAAkB;IAC3D,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB,EAAE,MAAkB;IAC9D,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAChC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE;YAC/B,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvD,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3D,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC/D,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE;YACnC,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE;YACxC,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC/D,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACtD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE;YAClC,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACzD,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrD,GAAG,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC/D,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvD,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvD,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3D,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAChD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE;YAChC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;SAC/D,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE;YACrE,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9D,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAClD,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpH,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAC;AAChI,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAkB,EAAE,UAAkB,EAAE,OAAe;IAChF,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,KAAK,GAAqC,EAAE,CAAC;IACnD,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,WAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACvG,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACnB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO;QACL,OAAO;QACP,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAC1B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QAClE,KAAK;QACL,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,OAAO,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB;IACvC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;WAC/B,MAAM,CAAC,OAAO,KAAK,SAAS;WAC5B,MAAM,CAAC,OAAO,KAAK,MAAM;WACzB,MAAM,CAAC,OAAO,KAAK,QAAQ;WAC3B,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,MAAkB;IACtC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,YAAY,GAA6B;QAC7C,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;QAC1B,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,CAAC;QAC5C,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QAClG,QAAQ,EAAE,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACxD,KAAK,EAAE,MAAM,CAAC,UAAU,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;QAC5C,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACxD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QAClD,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,EAAE;KACT,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,cAAc,CAAC,UAA8B;IACpD,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;QAC/F,KAAK,SAAS;YACZ,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACjD,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;QACtF,KAAK,QAAQ;YACX,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC;QAChH,KAAK,MAAM;YACT,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAChC,KAAK,QAAQ;YACX,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAClD,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC;QACZ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,IAAa;IAC3C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,aAAa,IAAI,KAAK,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,KAAyH,CAAC;QAC1I,OAAO;YACL,gBAAgB,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE;YAC1D,mBAAmB,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,IAAI,SAAS,CAAC,EAAE;YAC/E,cAAc,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,IAAI,SAAS,CAAC,EAAE;YACrE,aAAa,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,IAAI,SAAS,CAAC,EAAE;SACpE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,KAA2E,CAAC;QACzF,OAAO;YACL,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC,EAAE;YACnD,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC,EAAE;YACjD,UAAU,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;SAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,YAAY,GAAG,KAAuG,CAAC;QAC7H,OAAO;YACL,WAAW,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YACrD,YAAY,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE;YACzC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC;SAC3J,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,gBAAgB,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,KAQlB,CAAC;QACF,OAAO;YACL,WAAW,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YACnD,UAAU,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE;YACjD,cAAc,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE;YACzD,kBAAkB,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,SAAS,CAAC,EAAE;YACjE,iBAAiB,MAAM,CAAC,UAAU,CAAC,YAAY,IAAI,SAAS,CAAC,EAAE;YAC/D,aAAa,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE;YACvD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM;gBACxE,CAAC,CAAC,CAAC,gBAAgB,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,KAAkE,CAAC;QAChF,OAAO;YACL,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YAC7C,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YAC7C,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE;SAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,KAAkH,CAAC;QACjI,OAAO;YACL,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YAC9C,iBAAiB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACpF,iBAAiB,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,IAAI,SAAS,CAAC,EAAE;YAClE,eAAe,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE;SAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC9F,MAAM,QAAQ,GAAG,KAAsI,CAAC;QACxJ,OAAO;YACL,GAAG,WAAW,CAAC,QAAmC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YACrE,UAAU,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACrE,WAAW,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;SACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAA+D,CAAC;QAC7F,OAAO,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7L,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAA8E,CAAC;QAC1G,OAAO;YACL,UAAU,KAAK,CAAC,MAAM,EAAE;YACxB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7E,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,CAAC;YAC7H,CAAC,CAAC;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAqF,CAAC;QACpG,OAAO;YACL,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,CAAC,EAAE;YAC5C,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC,EAAE;YAClD,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,EAAE;YAChD,EAAE;YACF,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;SACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,KAAqH,CAAC;QACpI,OAAO;YACL,iBAAiB,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC,EAAE;YAC1D,cAAc,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;YAC5C,mBAAmB,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE;YACtD,4BAA4B,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC,EAAE;SACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,uBAAuB,IAAI,KAAK,IAAI,qBAAqB,IAAI,KAAK,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,KAAyJ,CAAC;QAC3K,OAAO;YACL,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YACjD,mBAAmB,MAAM,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,EAAE;YACzD,0BAA0B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,IAAI,CAAC,CAAC,EAAE;YACvE,wBAAwB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/G,uBAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;SAC7G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,KAAiE,CAAC;QACpF,OAAO,CAAC,SAAS,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjL,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACpD,OAAO,WAAW,CAAC,KAAoH,EAAE,WAAW,CAAC,CAAC;IACxJ,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACpD,OAAO,WAAW,CAAC,KAAoH,EAAE,WAAW,CAAC,CAAC;IACxJ,CAAC;IACD,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QACnD,OAAO,WAAW,CAAC,KAAmH,EAAE,YAAY,CAAC,CAAC;IACxJ,CAAC;IACD,IAAI,eAAe,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACrD,OAAO,WAAW,CAAC,KAAqH,EAAE,WAAW,CAAC,CAAC;IACzJ,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QAC5E,OAAO,WAAW,CAAC,KAAyE,EAAE,IAAI,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,iBAAiB,IAAI,KAAK,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,KAAuF,CAAC;QACvG,OAAO;YACL,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YAC/C,uBAAuB,MAAM,CAAC,MAAM,CAAC,kBAAkB,IAAI,SAAS,CAAC,EAAE;YACvE,mBAAmB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;SAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,iBAAiB,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,KAKZ,CAAC;QACF,OAAO;YACL,WAAW,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE;YACzC,gBAAgB,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE;YACvD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,SAAS,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAoE,CAAC;QACnF,OAAO;YACL,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE;YAC1C,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACrE,SAAS,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,KAA0G,CAAC;QAC5H,OAAO;YACL,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YACjD,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YACjD,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YACjD,gBAAgB,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE;YAC3D,UAAU,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;SAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACtB,OAAO,WAAW,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B,EAAE,QAAuB;IAC1E,MAAM,KAAK,GAAG;QACZ,WAAW,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,EAAE;QACjD,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9F,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,MAAmB;IACpC,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,OAAO,eAAe,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjG,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,WAAW,IAAI,eAAe,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,KAAmC;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAmC;IAC7D,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAqB,GAAQ,EAAE,KAAmC;IACvF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CAAqB,GAAQ,EAAE,KAAmC;IACvF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAyB,CAAC;AAClD,CAAC;AAED,SAAS,oBAAoB,CAAqB,GAAQ,EAAE,KAAmC;IAC7F,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAyB,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/runtime/clean.js
CHANGED
|
@@ -31,9 +31,15 @@ export function cleanRuntimeArtifacts(projectRoot, options = {}) {
|
|
|
31
31
|
const keepLogs = normalizeKeepLogs(options.keepLogs);
|
|
32
32
|
const removed = [];
|
|
33
33
|
const kept = [...DURABLE_ARTIFACTS];
|
|
34
|
+
const harnessRoot = harnessPath(projectRoot);
|
|
35
|
+
const harnessRootStat = fs.lstatSync(harnessRoot, { throwIfNoEntry: false });
|
|
36
|
+
if (harnessRootStat?.isSymbolicLink()) {
|
|
37
|
+
throw new Error("Refusing to clean symlinked .frontend-harness directory.");
|
|
38
|
+
}
|
|
34
39
|
for (const segments of GENERATED_ARTIFACTS) {
|
|
35
40
|
const fullPath = harnessPath(projectRoot, ...segments);
|
|
36
|
-
|
|
41
|
+
const stat = fs.lstatSync(fullPath, { throwIfNoEntry: false });
|
|
42
|
+
if (!stat || stat.isSymbolicLink()) {
|
|
37
43
|
continue;
|
|
38
44
|
}
|
|
39
45
|
const relativePath = relativeHarnessPath(...segments);
|
|
@@ -55,10 +61,17 @@ function cleanLogs(projectRoot, keepLogs, dryRun) {
|
|
|
55
61
|
if (!fs.existsSync(logsRoot)) {
|
|
56
62
|
return [];
|
|
57
63
|
}
|
|
64
|
+
const logsRootStat = fs.lstatSync(logsRoot, { throwIfNoEntry: false });
|
|
65
|
+
if (!logsRootStat || logsRootStat.isSymbolicLink() || !logsRootStat.isDirectory()) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
58
68
|
const entries = fs.readdirSync(logsRoot, { withFileTypes: true })
|
|
59
69
|
.filter((entry) => entry.isFile())
|
|
60
70
|
.map((entry) => {
|
|
61
71
|
const fullPath = path.join(logsRoot, entry.name);
|
|
72
|
+
if (fs.lstatSync(fullPath, { throwIfNoEntry: false })?.isSymbolicLink()) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
62
75
|
const stat = fs.statSync(fullPath, { throwIfNoEntry: false });
|
|
63
76
|
if (!stat) {
|
|
64
77
|
return null;
|
|
@@ -73,15 +86,23 @@ function cleanLogs(projectRoot, keepLogs, dryRun) {
|
|
|
73
86
|
.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
74
87
|
const stale = entries.slice(keepLogs);
|
|
75
88
|
for (const entry of stale) {
|
|
76
|
-
if (!dryRun) {
|
|
89
|
+
if (!dryRun && isRegularLogFile(entry.fullPath)) {
|
|
77
90
|
fs.rmSync(entry.fullPath, { force: true });
|
|
78
91
|
}
|
|
79
92
|
}
|
|
80
|
-
|
|
93
|
+
const latestLogsRootStat = fs.lstatSync(logsRoot, { throwIfNoEntry: false });
|
|
94
|
+
if (!dryRun
|
|
95
|
+
&& latestLogsRootStat?.isDirectory()
|
|
96
|
+
&& !latestLogsRootStat.isSymbolicLink()
|
|
97
|
+
&& fs.readdirSync(logsRoot).length === 0) {
|
|
81
98
|
fs.rmdirSync(logsRoot);
|
|
82
99
|
}
|
|
83
100
|
return stale.map((entry) => entry.relativePath);
|
|
84
101
|
}
|
|
102
|
+
function isRegularLogFile(fullPath) {
|
|
103
|
+
const latestStat = fs.lstatSync(fullPath, { throwIfNoEntry: false });
|
|
104
|
+
return Boolean(latestStat?.isFile()) && !latestStat?.isSymbolicLink();
|
|
105
|
+
}
|
|
85
106
|
function normalizeKeepLogs(value) {
|
|
86
107
|
if (value === undefined) {
|
|
87
108
|
return 20;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/runtime/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAcvE,MAAM,mBAAmB,GAAG;IAC1B,CAAC,YAAY,CAAC;IACd,CAAC,YAAY,CAAC;IACd,CAAC,SAAS,CAAC;IACX,CAAC,OAAO,CAAC;IACT,CAAC,UAAU,CAAC;IACZ,CAAC,cAAc,CAAC;IAChB,CAAC,gBAAgB,CAAC;IAClB,CAAC,UAAU,CAAC;IACZ,CAAC,QAAQ,CAAC;IACV,CAAC,QAAQ,CAAC;IACV,CAAC,iBAAiB,CAAC;IACnB,CAAC,eAAe,CAAC;IACjB,CAAC,iBAAiB,CAAC;IACnB,CAAC,iBAAiB,CAAC;IACnB,CAAC,WAAW,CAAC;IACb,CAAC,eAAe,CAAC;CACT,CAAC;AAEX,MAAM,iBAAiB,GAAG;IACxB,mBAAmB,CAAC,UAAU,CAAC;IAC/B,mBAAmB,CAAC,aAAa,CAAC;IAClC,mBAAmB,CAAC,UAAU,CAAC;IAC/B,mBAAmB,CAAC,WAAW,CAAC;IAChC,mBAAmB,CAAC,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,UAAwB,EAAE;IACnF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/runtime/clean.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/context.js
CHANGED
|
@@ -2,7 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
5
|
-
import { writeJson } from "../storage/json.js";
|
|
5
|
+
import { isRegularFileWithoutSymlink, writeJson } from "../storage/json.js";
|
|
6
6
|
import { discoverVerificationCommands } from "./verification-commands.js";
|
|
7
7
|
import { detectProjectStack, discoverProjectSurface } from "./project-discovery.js";
|
|
8
8
|
import { discoverSkills } from "./skills.js";
|
|
@@ -14,6 +14,8 @@ import { readAcceptedRepairDecision } from "./repair-decision.js";
|
|
|
14
14
|
import { checkProtocol } from "./protocol-init.js";
|
|
15
15
|
import { projectScriptCommand, publicRecommendedCommands } from "./command-taxonomy.js";
|
|
16
16
|
import { buildPolicyProvenance } from "./policy-provenance.js";
|
|
17
|
+
const MAX_CONTEXT_ARTIFACT_HASH_BYTES = 2 * 1024 * 1024;
|
|
18
|
+
const CONTEXT_ARTIFACT_HASH_CHUNK_BYTES = 64 * 1024;
|
|
17
19
|
export function buildContext(projectRoot) {
|
|
18
20
|
const projectSurface = discoverProjectSurface(projectRoot);
|
|
19
21
|
const knownArtifacts = {
|
|
@@ -39,13 +41,19 @@ export function buildContext(projectRoot) {
|
|
|
39
41
|
lastPlannedPolicyProvenance: buildPolicyProvenance(projectRoot, state.task?.scope ?? ""),
|
|
40
42
|
recommendedNextCommands: publicRecommendedCommands()
|
|
41
43
|
};
|
|
44
|
+
context.projectStatus.artifacts.latestContext = {
|
|
45
|
+
path: knownArtifacts.latestContext,
|
|
46
|
+
exists: true,
|
|
47
|
+
updatedAt: new Date().toISOString(),
|
|
48
|
+
sha256: null
|
|
49
|
+
};
|
|
42
50
|
writeJson(harnessPath(projectRoot, "context", "latest.json"), context);
|
|
43
51
|
return context;
|
|
44
52
|
}
|
|
45
53
|
function collectConstraints(projectRoot) {
|
|
46
54
|
const constraints = [];
|
|
47
55
|
for (const file of ["AGENTS.md", "CLAUDE.md", "docs/DIRECTION.md"]) {
|
|
48
|
-
if (
|
|
56
|
+
if (isRegularFileWithoutSymlink(path.join(projectRoot, file))) {
|
|
49
57
|
constraints.push(file);
|
|
50
58
|
}
|
|
51
59
|
}
|
|
@@ -132,7 +140,8 @@ function summarizePlanningDecision(task) {
|
|
|
132
140
|
}
|
|
133
141
|
function describeArtifact(projectRoot, relativePath) {
|
|
134
142
|
const fullPath = path.join(projectRoot, relativePath);
|
|
135
|
-
|
|
143
|
+
const stat = fs.lstatSync(fullPath, { throwIfNoEntry: false });
|
|
144
|
+
if (!stat) {
|
|
136
145
|
return {
|
|
137
146
|
path: relativePath,
|
|
138
147
|
exists: false,
|
|
@@ -140,14 +149,49 @@ function describeArtifact(projectRoot, relativePath) {
|
|
|
140
149
|
sha256: null
|
|
141
150
|
};
|
|
142
151
|
}
|
|
143
|
-
|
|
152
|
+
if (!stat.isFile()) {
|
|
153
|
+
return {
|
|
154
|
+
path: relativePath,
|
|
155
|
+
exists: true,
|
|
156
|
+
updatedAt: stat.mtime.toISOString(),
|
|
157
|
+
sha256: null
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if (stat.size > MAX_CONTEXT_ARTIFACT_HASH_BYTES) {
|
|
161
|
+
return {
|
|
162
|
+
path: relativePath,
|
|
163
|
+
exists: true,
|
|
164
|
+
updatedAt: stat.mtime.toISOString(),
|
|
165
|
+
sha256: null
|
|
166
|
+
};
|
|
167
|
+
}
|
|
144
168
|
return {
|
|
145
169
|
path: relativePath,
|
|
146
170
|
exists: true,
|
|
147
171
|
updatedAt: stat.mtime.toISOString(),
|
|
148
|
-
sha256:
|
|
172
|
+
sha256: sha256File(fullPath)
|
|
149
173
|
};
|
|
150
174
|
}
|
|
175
|
+
function sha256File(filePath) {
|
|
176
|
+
const hash = createHash("sha256");
|
|
177
|
+
const buffer = Buffer.alloc(CONTEXT_ARTIFACT_HASH_CHUNK_BYTES);
|
|
178
|
+
const fd = fs.openSync(filePath, "r");
|
|
179
|
+
try {
|
|
180
|
+
let position = 0;
|
|
181
|
+
while (true) {
|
|
182
|
+
const bytesRead = fs.readSync(fd, buffer, 0, buffer.length, position);
|
|
183
|
+
if (bytesRead === 0) {
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
hash.update(buffer.subarray(0, bytesRead));
|
|
187
|
+
position += bytesRead;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
fs.closeSync(fd);
|
|
192
|
+
}
|
|
193
|
+
return hash.digest("hex");
|
|
194
|
+
}
|
|
151
195
|
function discoverKnowledge(projectRoot) {
|
|
152
196
|
return discoverKnowledgeCards(projectRoot).map(({ searchable, ...card }) => card);
|
|
153
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/evidence.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { readJson, writeJson } from "../storage/json.js";
|
|
4
|
+
import { isRegularFileWithoutSymlink, readJson, writeJson } from "../storage/json.js";
|
|
5
5
|
import { projectScriptCommand } from "./command-taxonomy.js";
|
|
6
6
|
import { isProjectRelativeSubpath, normalizeProjectRelativePath, resolveProjectOrHarnessRelativePath } from "./project-paths.js";
|
|
7
7
|
import { loadState } from "./state.js";
|
|
8
|
+
const MAX_EVIDENCE_ARTIFACT_HASH_BYTES = 32 * 1024 * 1024;
|
|
9
|
+
const MAX_EVIDENCE_MANIFEST_BYTES = 2 * 1024 * 1024;
|
|
10
|
+
const EVIDENCE_HASH_CHUNK_BYTES = 64 * 1024;
|
|
8
11
|
export function createEvidenceTemplate(projectRoot) {
|
|
9
12
|
const manifestPath = ".frontend-harness/verification/evidence.json";
|
|
10
13
|
const requiredEvidence = requiredVerificationEvidence(projectRoot);
|
|
@@ -35,7 +38,7 @@ export function recordEvidence(projectRoot, inputPath) {
|
|
|
35
38
|
if (isProjectRelativeSubpath(input.relativePath, ".frontend-harness") && !isProjectRelativeSubpath(input.relativePath, ".frontend-harness/evidence")) {
|
|
36
39
|
throw new Error("evidence input file under .frontend-harness must be stored below .frontend-harness/evidence/.");
|
|
37
40
|
}
|
|
38
|
-
if (!
|
|
41
|
+
if (!isRegularFileWithoutSymlink(input.fullPath)) {
|
|
39
42
|
throw new Error(`evidence input file does not exist: ${input.relativePath}`);
|
|
40
43
|
}
|
|
41
44
|
const submitted = readEvidenceManifest(projectRoot, input.relativePath, { fillMissingCreatedAt: new Date().toISOString() });
|
|
@@ -67,6 +70,11 @@ export function recordEvidence(projectRoot, inputPath) {
|
|
|
67
70
|
next.push(entry);
|
|
68
71
|
}
|
|
69
72
|
}
|
|
73
|
+
const mergedRequired = next.map((entry) => ({ unitId: entry.unitId, kind: entry.kind }));
|
|
74
|
+
const mergedErrors = validateEvidenceEntries(projectRoot, mergedRequired, next);
|
|
75
|
+
if (mergedErrors.length > 0) {
|
|
76
|
+
throw new Error(`Existing evidence manifest failed validation after merge: ${mergedErrors.join(" ")}`);
|
|
77
|
+
}
|
|
70
78
|
writeJson(path.join(projectRoot, manifestPath), { entries: next });
|
|
71
79
|
return {
|
|
72
80
|
status: "passed",
|
|
@@ -90,7 +98,7 @@ export function assertDesignSourceReadyForProjectChanges(projectRoot, files) {
|
|
|
90
98
|
return [normalized];
|
|
91
99
|
}).filter((file) => {
|
|
92
100
|
const fullPath = path.join(projectRoot, file);
|
|
93
|
-
return
|
|
101
|
+
return isRegularFileWithoutSymlink(fullPath);
|
|
94
102
|
});
|
|
95
103
|
if (existingProjectFiles.length === 0) {
|
|
96
104
|
return;
|
|
@@ -254,9 +262,13 @@ function evidenceMetadataTemplate(kind) {
|
|
|
254
262
|
}
|
|
255
263
|
function readEvidenceManifest(projectRoot, relativePath, options = {}) {
|
|
256
264
|
const fullPath = path.join(projectRoot, relativePath);
|
|
257
|
-
if (!
|
|
265
|
+
if (!isRegularFileWithoutSymlink(fullPath)) {
|
|
258
266
|
return { ok: false, error: `Missing evidence manifest: ${relativePath}.` };
|
|
259
267
|
}
|
|
268
|
+
const stat = fs.statSync(fullPath);
|
|
269
|
+
if (stat.size > MAX_EVIDENCE_MANIFEST_BYTES) {
|
|
270
|
+
return { ok: false, error: `Evidence manifest exceeds ${MAX_EVIDENCE_MANIFEST_BYTES} bytes.` };
|
|
271
|
+
}
|
|
260
272
|
let parsed;
|
|
261
273
|
try {
|
|
262
274
|
parsed = readJson(fullPath);
|
|
@@ -351,13 +363,21 @@ function validateEvidenceEntries(projectRoot, requiredEvidence, entries) {
|
|
|
351
363
|
return errors;
|
|
352
364
|
}
|
|
353
365
|
function validateEvidenceArtifactPath(projectRoot, artifactPath, label, errors) {
|
|
366
|
+
if (artifactPath.includes("\\") || /^[A-Za-z]:/.test(artifactPath)) {
|
|
367
|
+
errors.push(`Evidence artifact for ${label} must be a POSIX-style project-relative path under .frontend-harness/: ${artifactPath}.`);
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
354
370
|
const normalized = path.posix.normalize(artifactPath.replace(/\\/g, "/"));
|
|
355
371
|
if (!normalized.startsWith(".frontend-harness/") || normalized.includes("..") || path.isAbsolute(artifactPath)) {
|
|
356
372
|
errors.push(`Evidence artifact for ${label} must be a project-relative path under .frontend-harness/: ${artifactPath}.`);
|
|
357
373
|
return;
|
|
358
374
|
}
|
|
375
|
+
if (!isAllowedEvidenceArtifactPath(normalized)) {
|
|
376
|
+
errors.push(`Evidence artifact for ${label} must be stored under .frontend-harness/evidence/ or .frontend-harness/visual/: ${artifactPath}.`);
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
359
379
|
const fullPath = path.join(projectRoot, normalized);
|
|
360
|
-
if (!
|
|
380
|
+
if (!isRegularFileWithoutSymlink(fullPath)) {
|
|
361
381
|
errors.push(`Evidence artifact for ${label} does not exist: ${artifactPath}.`);
|
|
362
382
|
}
|
|
363
383
|
}
|
|
@@ -432,7 +452,7 @@ function requireDesignToCodeUsability(metadata, label, errors) {
|
|
|
432
452
|
return;
|
|
433
453
|
}
|
|
434
454
|
const usability = metadata["usability"];
|
|
435
|
-
const allowed = ["
|
|
455
|
+
const allowed = ["usable_as_visual_baseline", "usable_for_patch_reference", "usable_as_source", "unusable"];
|
|
436
456
|
if (typeof usability !== "string" || !allowed.includes(usability)) {
|
|
437
457
|
errors.push(`Evidence metadata for ${label} with sourceType design_to_code must include usability of ${allowed.join(", ")}.`);
|
|
438
458
|
}
|
|
@@ -602,22 +622,57 @@ function requireArtifactHashMatch(projectRoot, artifactPath, expectedHash, label
|
|
|
602
622
|
if (!fullPath) {
|
|
603
623
|
return;
|
|
604
624
|
}
|
|
605
|
-
const
|
|
625
|
+
const stat = fs.statSync(fullPath, { throwIfNoEntry: false });
|
|
626
|
+
if (!stat || stat.size > MAX_EVIDENCE_ARTIFACT_HASH_BYTES) {
|
|
627
|
+
errors.push(`Evidence metadata for ${label} cannot verify oversized artifact sha256 for ${artifactPath}; artifact exceeds ${MAX_EVIDENCE_ARTIFACT_HASH_BYTES} bytes.`);
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
const actualHash = sha256File(fullPath);
|
|
606
631
|
if (actualHash.toLowerCase() !== expectedHash.toLowerCase()) {
|
|
607
632
|
errors.push(`Evidence metadata for ${label} must match actual artifact sha256 for ${artifactPath}.`);
|
|
608
633
|
}
|
|
609
634
|
}
|
|
635
|
+
function sha256File(filePath) {
|
|
636
|
+
const hash = createHash("sha256");
|
|
637
|
+
const buffer = Buffer.alloc(EVIDENCE_HASH_CHUNK_BYTES);
|
|
638
|
+
const fd = fs.openSync(filePath, "r");
|
|
639
|
+
try {
|
|
640
|
+
let position = 0;
|
|
641
|
+
while (true) {
|
|
642
|
+
const bytesRead = fs.readSync(fd, buffer, 0, buffer.length, position);
|
|
643
|
+
if (bytesRead === 0) {
|
|
644
|
+
break;
|
|
645
|
+
}
|
|
646
|
+
hash.update(buffer.subarray(0, bytesRead));
|
|
647
|
+
position += bytesRead;
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
finally {
|
|
651
|
+
fs.closeSync(fd);
|
|
652
|
+
}
|
|
653
|
+
return hash.digest("hex");
|
|
654
|
+
}
|
|
610
655
|
function evidenceArtifactFullPath(projectRoot, artifactPath) {
|
|
656
|
+
if (artifactPath.includes("\\") || /^[A-Za-z]:/.test(artifactPath)) {
|
|
657
|
+
return null;
|
|
658
|
+
}
|
|
611
659
|
const normalized = path.posix.normalize(artifactPath.replace(/\\/g, "/"));
|
|
612
660
|
if (!normalized.startsWith(".frontend-harness/") || normalized.includes("..") || path.isAbsolute(artifactPath)) {
|
|
613
661
|
return null;
|
|
614
662
|
}
|
|
663
|
+
if (!isAllowedEvidenceArtifactPath(normalized)) {
|
|
664
|
+
return null;
|
|
665
|
+
}
|
|
615
666
|
const fullPath = path.join(projectRoot, normalized);
|
|
616
|
-
if (!
|
|
667
|
+
if (!isRegularFileWithoutSymlink(fullPath)) {
|
|
617
668
|
return null;
|
|
618
669
|
}
|
|
619
670
|
return fullPath;
|
|
620
671
|
}
|
|
672
|
+
function isAllowedEvidenceArtifactPath(relativePath) {
|
|
673
|
+
return relativePath.startsWith(".frontend-harness/evidence/")
|
|
674
|
+
|| relativePath.startsWith(".frontend-harness/visual/");
|
|
675
|
+
}
|
|
621
676
|
function isSha256(value) {
|
|
622
677
|
return /^[a-f0-9]{64}$/i.test(value);
|
|
623
678
|
}
|