assertledger 1.0.0 → 1.1.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.
Files changed (93) hide show
  1. package/README.fr.md +3 -3
  2. package/README.md +3 -3
  3. package/SECURITY.md +11 -6
  4. package/conformance/schema-extensions.json +36 -0
  5. package/dist/build-info.d.ts +16 -0
  6. package/dist/build-info.d.ts.map +1 -0
  7. package/dist/build-info.js +18 -0
  8. package/dist/build-info.js.map +1 -0
  9. package/dist/build-info.json +7 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +117 -19
  12. package/dist/cli.js.map +1 -1
  13. package/dist/contracts/index.d.ts +943 -0
  14. package/dist/contracts/index.d.ts.map +1 -1
  15. package/dist/contracts/index.js +561 -21
  16. package/dist/contracts/index.js.map +1 -1
  17. package/dist/core/index.d.ts +10 -1
  18. package/dist/core/index.d.ts.map +1 -1
  19. package/dist/core/index.js +484 -8
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/diagnostics.d.ts.map +1 -1
  22. package/dist/diagnostics.js +42 -2
  23. package/dist/diagnostics.js.map +1 -1
  24. package/dist/engine/adapters/node-test-runtime.d.ts +17 -0
  25. package/dist/engine/adapters/node-test-runtime.d.ts.map +1 -1
  26. package/dist/engine/adapters/node-test-runtime.js +45 -23
  27. package/dist/engine/adapters/node-test-runtime.js.map +1 -1
  28. package/dist/engine/container.d.ts +54 -0
  29. package/dist/engine/container.d.ts.map +1 -0
  30. package/dist/engine/container.js +464 -0
  31. package/dist/engine/container.js.map +1 -0
  32. package/dist/engine/git-regression.d.ts +12 -2
  33. package/dist/engine/git-regression.d.ts.map +1 -1
  34. package/dist/engine/git-regression.js +63 -16
  35. package/dist/engine/git-regression.js.map +1 -1
  36. package/dist/engine/index.d.ts +7 -1
  37. package/dist/engine/index.d.ts.map +1 -1
  38. package/dist/engine/index.js +300 -74
  39. package/dist/engine/index.js.map +1 -1
  40. package/dist/mcp/index.d.ts.map +1 -1
  41. package/dist/mcp/index.js +53 -1
  42. package/dist/mcp/index.js.map +1 -1
  43. package/dist/proof-planner/carry-over.d.ts +21 -0
  44. package/dist/proof-planner/carry-over.d.ts.map +1 -0
  45. package/dist/proof-planner/carry-over.js +212 -0
  46. package/dist/proof-planner/carry-over.js.map +1 -0
  47. package/dist/proof-planner/index.d.ts +11 -0
  48. package/dist/proof-planner/index.d.ts.map +1 -0
  49. package/dist/proof-planner/index.js +11 -0
  50. package/dist/proof-planner/index.js.map +1 -0
  51. package/dist/proof-planner/model.d.ts +272 -0
  52. package/dist/proof-planner/model.d.ts.map +1 -0
  53. package/dist/proof-planner/model.js +215 -0
  54. package/dist/proof-planner/model.js.map +1 -0
  55. package/dist/proof-planner/plan.d.ts +140 -0
  56. package/dist/proof-planner/plan.d.ts.map +1 -0
  57. package/dist/proof-planner/plan.js +1124 -0
  58. package/dist/proof-planner/plan.js.map +1 -0
  59. package/dist/proof-planner/policy.d.ts +100 -0
  60. package/dist/proof-planner/policy.d.ts.map +1 -0
  61. package/dist/proof-planner/policy.js +407 -0
  62. package/dist/proof-planner/policy.js.map +1 -0
  63. package/dist/proof-planner/render.d.ts +4 -0
  64. package/dist/proof-planner/render.d.ts.map +1 -0
  65. package/dist/proof-planner/render.js +73 -0
  66. package/dist/proof-planner/render.js.map +1 -0
  67. package/dist/sdk/index.d.ts +16 -6
  68. package/dist/sdk/index.d.ts.map +1 -1
  69. package/dist/sdk/index.js +63 -5
  70. package/dist/sdk/index.js.map +1 -1
  71. package/docs/agentic-test-profile.md +5 -0
  72. package/docs/architecture.md +15 -3
  73. package/docs/ci.md +7 -1
  74. package/docs/conformance-v1.md +11 -2
  75. package/docs/container-isolation.md +156 -0
  76. package/docs/evidence-export.md +146 -0
  77. package/docs/git-regression.md +7 -3
  78. package/docs/migration-timeout-discovery-inconclusive.md +126 -0
  79. package/docs/migration-verification-v2.md +55 -0
  80. package/docs/project-intent.md +3 -2
  81. package/docs/proof-model.md +28 -6
  82. package/docs/proof-planner.md +368 -0
  83. package/docs/reference.md +59 -12
  84. package/docs/roadmap.md +12 -4
  85. package/examples/agentic-profile/profile-manifest.mjs +5 -1
  86. package/examples/evidence-export/consumer.mjs +35 -0
  87. package/package.json +5 -5
  88. package/schemas/evidence-export-replay-result.v1.json +49 -0
  89. package/schemas/evidence-export-request.v1.json +681 -0
  90. package/schemas/evidence-export.v1.json +1479 -0
  91. package/schemas/evidence-manifest.v2.json +886 -0
  92. package/schemas/evidence-provider-manifest.v1.json +269 -0
  93. package/schemas/verification-request.v2.json +457 -0
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,24 @@ interface PreflightInput {
5
5
  timeoutMs: number;
6
6
  maximumOutputBytes: number;
7
7
  processRunner: (input: NodeTestPreflightProcessInput) => Promise<NodeTestPreflightProcessResult>;
8
+ /** Replaces the host-workspace probe execution, for example to run each probe in a container. */
9
+ probeExecutor?: NodeTestPreflightProbeExecutor;
8
10
  }
11
+ export interface NodeTestPreflightProbe {
12
+ name: "assertion" | "generic-throw";
13
+ reporterSource: string;
14
+ controlSource: string;
15
+ candidateSource: string;
16
+ timeoutMs: number;
17
+ maximumOutputBytes: number;
18
+ reportMaximumBytes: number;
19
+ }
20
+ export interface NodeTestPreflightProbeOutcome {
21
+ processResult: NodeTestPreflightProcessResult;
22
+ /** The parsed reporter document, or undefined when it is absent, oversize or not JSON. */
23
+ report: unknown;
24
+ }
25
+ export type NodeTestPreflightProbeExecutor = (probe: NodeTestPreflightProbe) => Promise<NodeTestPreflightProbeOutcome>;
9
26
  interface NodeTestPreflightProcessInput {
10
27
  executable: string;
11
28
  args: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"node-test-runtime.d.ts","sourceRoot":"","sources":["../../../src/engine/adapters/node-test-runtime.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAClG;AAED,UAAU,6BAA6B;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,8BAA8B;IACtC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC/C,UAAU,EAAE,OAAO,CAAC;IACpB,wBAAwB,EAAE,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC;IACnB,qBAAqB,EAAE,CAAC,CAAC;IACzB,wBAAwB,EAAE,CAAC,CAAC;IAC5B,2BAA2B,EAAE,CAAC,CAAC;IAC/B,8BAA8B,EAAE,OAAO,CAAC;IACxC,oBAAoB,EAAE,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,aAAa,CAAC;CAClC;AA+ID,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,wBAAwB,CAAC,CAmEnC"}
1
+ {"version":3,"file":"node-test-runtime.d.ts","sourceRoot":"","sources":["../../../src/engine/adapters/node-test-runtime.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACjG,iGAAiG;IACjG,aAAa,CAAC,EAAE,8BAA8B,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,8BAA8B,CAAC;IAC9C,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,8BAA8B,GAAG,CAC3C,KAAK,EAAE,sBAAsB,KAC1B,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE5C,UAAU,6BAA6B;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,8BAA8B;IACtC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC/C,UAAU,EAAE,OAAO,CAAC;IACpB,wBAAwB,EAAE,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC;IACnB,qBAAqB,EAAE,CAAC,CAAC;IACzB,wBAAwB,EAAE,CAAC,CAAC;IAC5B,2BAA2B,EAAE,CAAC,CAAC;IAC/B,8BAA8B,EAAE,OAAO,CAAC;IACxC,oBAAoB,EAAE,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,aAAa,CAAC;CAClC;AAyKD,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,wBAAwB,CAAC,CAkEnC"}
@@ -55,34 +55,54 @@ async function readBoundedReporterDocument(reportPath) {
55
55
  await handle.close();
56
56
  }
57
57
  }
58
- async function executeProbe(input, root, reporterPath, controlPath, name, body) {
59
- const candidatePath = path.join(root, `${name}.test.mjs`);
60
- const reportPath = path.join(root, `${name}.json`);
61
- await writeFile(candidatePath, body, { flag: "wx" });
62
- const processResult = await input.processRunner({
63
- executable: input.executable,
64
- args: [
65
- "--test",
66
- `--test-reporter=${pathToFileURL(reporterPath).href}`,
67
- `--test-reporter-destination=${reportPath}`,
68
- "--",
69
- controlPath,
70
- candidatePath,
71
- ],
72
- cwd: root,
73
- environment: {
74
- ...input.environment,
75
- TESTFORGE_NODE_CANDIDATE_FILES: JSON.stringify([candidatePath]),
76
- },
58
+ function hostProbeExecutor(input, root, reporterPath, controlPath) {
59
+ return async (probe) => {
60
+ const candidatePath = path.join(root, `${probe.name}.test.mjs`);
61
+ const reportPath = path.join(root, `${probe.name}.json`);
62
+ await writeFile(candidatePath, probe.candidateSource, { flag: "wx" });
63
+ const processResult = await input.processRunner({
64
+ executable: input.executable,
65
+ args: [
66
+ "--test",
67
+ `--test-reporter=${pathToFileURL(reporterPath).href}`,
68
+ `--test-reporter-destination=${reportPath}`,
69
+ "--",
70
+ controlPath,
71
+ candidatePath,
72
+ ],
73
+ cwd: root,
74
+ environment: {
75
+ ...input.environment,
76
+ TESTFORGE_NODE_CANDIDATE_FILES: JSON.stringify([candidatePath]),
77
+ },
78
+ timeoutMs: probe.timeoutMs,
79
+ maximumOutputBytes: probe.maximumOutputBytes,
80
+ });
81
+ const crashed = processResult.outcome === "PROCESS_CRASH" &&
82
+ processResult.exitCode !== null &&
83
+ processResult.exitCode !== 0;
84
+ return {
85
+ processResult,
86
+ report: crashed ? await readBoundedReporterDocument(reportPath) : undefined,
87
+ };
88
+ };
89
+ }
90
+ async function executeProbe(input, executor, controlSource, name, body) {
91
+ const { processResult, report } = await executor({
92
+ name,
93
+ reporterSource: input.reporterSource,
94
+ controlSource,
95
+ candidateSource: body,
77
96
  timeoutMs: Math.min(input.timeoutMs, 5_000),
78
97
  maximumOutputBytes: Math.min(input.maximumOutputBytes, PREFLIGHT_REPORT_LIMIT_BYTES),
98
+ reportMaximumBytes: PREFLIGHT_REPORT_LIMIT_BYTES,
79
99
  });
80
100
  if (processResult.outcome !== "PROCESS_CRASH" ||
81
101
  processResult.exitCode === null ||
82
102
  processResult.exitCode === 0) {
83
103
  throw new Error(PREFLIGHT_ERROR);
84
104
  }
85
- const document = parseReporterDocument(await readBoundedReporterDocument(reportPath));
105
+ const document = parseReporterDocument(report);
86
106
  if (document === undefined)
87
107
  throw new Error(PREFLIGHT_ERROR);
88
108
  const expectedAssertionFacts = name === "assertion";
@@ -130,15 +150,17 @@ export async function runNodeTestRuntimePreflight(input) {
130
150
  root = await realpath(await mkdtemp(path.join(os.tmpdir(), "assertledger-node-test-preflight-")));
131
151
  const reporterPath = path.join(root, "reporter.mjs");
132
152
  const controlPath = path.join(root, "control.test.mjs");
153
+ const controlSource = ['import test from "node:test";', 'test("control", () => {});', ""].join("\n");
133
154
  await writeFile(reporterPath, input.reporterSource, { flag: "wx" });
134
- await writeFile(controlPath, ['import test from "node:test";', 'test("control", () => {});', ""].join("\n"), { flag: "wx" });
135
- const assertionProbe = await executeProbe(input, root, reporterPath, controlPath, "assertion", [
155
+ await writeFile(controlPath, controlSource, { flag: "wx" });
156
+ const executor = input.probeExecutor ?? hostProbeExecutor(input, root, reporterPath, controlPath);
157
+ const assertionProbe = await executeProbe(input, executor, controlSource, "assertion", [
136
158
  'import test from "node:test";',
137
159
  'import assert from "node:assert/strict";',
138
160
  'test("assertion", () => assert.equal(false, true));',
139
161
  "",
140
162
  ].join("\n"));
141
- const genericThrowProbe = await executeProbe(input, root, reporterPath, controlPath, "generic-throw", [
163
+ const genericThrowProbe = await executeProbe(input, executor, controlSource, "generic-throw", [
142
164
  'import test from "node:test";',
143
165
  'import assert from "node:assert/strict";',
144
166
  'test("generic throw", () => {',
@@ -1 +1 @@
1
- {"version":3,"file":"node-test-runtime.js","sourceRoot":"","sources":["../../../src/engine/adapters/node-test-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-test-runtime.js","sourceRoot":"","sources":["../../../src/engine/adapters/node-test-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { ContainerIsolation, ExecutionBackendRecord } from "../contracts/index.js";
2
+ import type { ProcessInput, ProcessResult } from "./index.js";
3
+ export declare const DEFAULT_CONTAINER_RUNTIME_COMMAND: readonly string[];
4
+ export declare const DEFAULT_CONTAINER_LIMITS: {
5
+ readonly memoryBytes: 1073741824;
6
+ readonly cpuMillicores: 2000;
7
+ readonly pids: 256;
8
+ readonly temporaryDirectoryBytes: 67108864;
9
+ };
10
+ export declare const CONTAINER_ROOT = "/assertledger";
11
+ export declare const CONTAINER_WORKSPACE = "/assertledger/repository";
12
+ export declare const CONTAINER_RESULT_FILE = "/assertledger/out/result.json";
13
+ export declare const CONTAINER_REPORTER_FILE = "/assertledger/reporter/node-test-reporter.mjs";
14
+ export declare const CONTAINER_LIMITATIONS: string[];
15
+ type ContainerBackendRecord = Extract<ExecutionBackendRecord, {
16
+ kind: "container";
17
+ }>;
18
+ export interface BoundedProcessResult extends ProcessResult {
19
+ stdoutBytes: Buffer;
20
+ }
21
+ export type ContainerProcessRunner = (input: ProcessInput, standardInput?: AsyncIterable<Uint8Array>) => Promise<BoundedProcessResult>;
22
+ export interface ContainerBackend {
23
+ runtimeCommand: string[];
24
+ isolation: ContainerIsolation;
25
+ record: ContainerBackendRecord;
26
+ }
27
+ export interface ContainerExecution {
28
+ workspace: string;
29
+ reporterSource?: string;
30
+ executable: string;
31
+ args: string[];
32
+ environment: Record<string, string>;
33
+ timeoutMs: number;
34
+ maximumOutputBytes: number;
35
+ resultMaximumBytes?: number;
36
+ }
37
+ export interface ContainerExecutionResult {
38
+ process: ProcessResult;
39
+ result: Buffer | undefined;
40
+ }
41
+ /** Validates an operator runtime command: a non-empty argv array, never a shell string. */
42
+ export declare function parseContainerRuntimeCommand(value: unknown): string[];
43
+ /** Probes the runtime and the pinned image without pulling, creating or starting anything. */
44
+ export declare function prepareContainerBackend(command: readonly string[], isolation: ContainerIsolation, runner: ContainerProcessRunner, workingDirectory: string): Promise<ContainerBackend>;
45
+ /**
46
+ * Extracts the single regular `result.json` entry that `cp CONTAINER:FILE -` streams. Links, extra
47
+ * entries, other names, corrupt headers, truncation and oversize content are all rejected.
48
+ */
49
+ declare function readContainerResultArchive(archive: Buffer, maximumBytes: number): Buffer | undefined;
50
+ export declare const readContainerResultArchiveForTesting: typeof readContainerResultArchive;
51
+ /** Executes one adapter process in a fresh container and always removes that container. */
52
+ export declare function runContainerExecution(backend: ContainerBackend, execution: ContainerExecution, runner: ContainerProcessRunner, workingDirectory: string): Promise<ContainerExecutionResult>;
53
+ export {};
54
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/engine/container.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAM9D,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAAe,CAAC;AAC/E,eAAO,MAAM,wBAAwB;aACnC,WAAW,EAAE,UAAa;aAC1B,aAAa,EAAE,IAAK;aACpB,IAAI,EAAE,GAAG;aACT,uBAAuB,EAAE,QAAU;CAC3B,CAAC;AACX,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,6BAAiC,CAAC;AAClE,eAAO,MAAM,qBAAqB,kCAAsC,CAAC;AACzE,eAAO,MAAM,uBAAuB,kDAAsD,CAAC;AAC3F,eAAO,MAAM,qBAAqB,UAKjC,CAAC;AAaF,KAAK,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAErF,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,YAAY,EACnB,aAAa,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,KACtC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAiCD,2FAA2F;AAC3F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAkBrE;AAiCD,8FAA8F;AAC9F,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,sBAAsB,EAC9B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAmH3B;AA4HD;;;GAGG;AACH,iBAAS,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgD7F;AAED,eAAO,MAAM,oCAAoC,mCAA6B,CAAC;AA2D/E,2FAA2F;AAC3F,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,sBAAsB,EAC9B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,wBAAwB,CAAC,CAsEnC"}