@astra-spec/sdk 0.0.1 → 0.0.3

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.
@@ -1,7 +1,5 @@
1
- // Semantic validation: cross-references, constraint resolution, and
2
- // `from:`-path direction rules. Operates on parsed dict-like data
3
- // (matching the Python validator) so it doesn't depend on type narrowing.
4
- import { collectNodeDecisions, getInputIds, getOutputIds, isConditionMet, loadYaml, resolveAnalysisTree, } from "../helpers.js";
1
+ import { dirname } from "node:path";
2
+ import { asArray, asDict, collectNodeDecisions, getInputIds, getOutputIds, isConditionMet, loadYaml, resolveAnalysisTree, } from "../helpers.js";
5
3
  export class SemanticError {
6
4
  code;
7
5
  message;
@@ -16,12 +14,6 @@ export class SemanticError {
16
14
  }
17
15
  }
18
16
  const ID_PATTERN = /^[a-z][a-z0-9_]*$/;
19
- function asDict(v) {
20
- return v && typeof v === "object" && !Array.isArray(v) ? v : undefined;
21
- }
22
- function asArray(v) {
23
- return Array.isArray(v) ? v : [];
24
- }
25
17
  /** Parse a `../scope.id` style path. Returns null on malformed input. */
26
18
  function parseFromPath(ref) {
27
19
  let up = 0;
@@ -127,7 +119,6 @@ export function validateAnalysis(data, options = {}) {
127
119
  function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathPrefix) {
128
120
  const errors = [];
129
121
  const nodePath = `${pathPrefix}.${nodeId}`;
130
- // Path-only stub (not yet resolved): skip deep checks.
131
122
  if (node.path && !node.inputs && !node.outputs)
132
123
  return errors;
133
124
  for (const field of ["inputs", "outputs"]) {
@@ -135,7 +126,6 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
135
126
  errors.push(new SemanticError("MISSING_SUB_FIELD", `Sub-analysis '${nodeId}' is missing required field: ${field}`, nodePath));
136
127
  }
137
128
  }
138
- // Decision `from:` checks.
139
129
  const allDecisions = (asDict(node.decisions) ?? {});
140
130
  for (const [decisionId, decision] of Object.entries(allDecisions)) {
141
131
  const ref = decision?.from;
@@ -143,7 +133,6 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
143
133
  errors.push(..._validateDecisionFrom(ref, ancestorChain, `${nodePath}.decisions.${decisionId}`));
144
134
  }
145
135
  }
146
- // Inputs.
147
136
  const nodeInputs = asArray(node.inputs);
148
137
  const nodeInputIds = new Set();
149
138
  for (const inp of nodeInputs) {
@@ -154,7 +143,6 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
154
143
  if (ref)
155
144
  errors.push(..._validateInputFrom(ref, ancestorChain, nodeId, nodePath));
156
145
  }
157
- // Output IDs unique.
158
146
  const nodeOutputIds = new Set();
159
147
  for (const out of asArray(node.outputs)) {
160
148
  const id = out?.id;
@@ -168,7 +156,7 @@ function _validateAnalysisNode(nodeId, node, priorInsights, ancestorChain, pathP
168
156
  errors.push(..._validateOutputsFrom(nodeOutputs, node, nodePath));
169
157
  const nodeDecisions = collectNodeDecisions(node);
170
158
  // Build the constraint scope: locally-defined decisions plus any `from:`
171
- // alias resolved one ancestor up (matches the Python `constraint_scope`).
159
+ // alias resolved one ancestor up (matches the Python constraint_scope).
172
160
  const constraintScope = { ...nodeDecisions };
173
161
  for (const [decisionId, decision] of Object.entries(allDecisions)) {
174
162
  const ref = decision?.from;
@@ -261,32 +249,12 @@ function _validateDecisions(decisions, priorInsights, pathPrefix, constraintScop
261
249
  if (defaultOpt != null && !(defaultOpt in options)) {
262
250
  errors.push(new SemanticError("INVALID_DEFAULT", `Default option '${defaultOpt}' not found in options`, decisionPath));
263
251
  }
264
- const when = decision.when;
265
- if (when) {
266
- const conds = typeof when === "string" ? [when] : when;
267
- for (const cond of conds) {
268
- const ref = cond.startsWith("~") ? cond.slice(1) : cond;
269
- const parts = ref.split(".");
270
- if (parts.length !== 2) {
271
- errors.push(new SemanticError("INVALID_WHEN_REF", `Decision 'when' condition '${cond}' has invalid format`, decisionPath));
272
- continue;
273
- }
274
- const [whenDecisionId, whenOptionId] = parts;
275
- if (!(whenDecisionId in decisions) && !(whenDecisionId in scope)) {
276
- errors.push(new SemanticError("INVALID_WHEN_REF", `'when' references non-existent decision '${whenDecisionId}'`, decisionPath));
277
- }
278
- else {
279
- const refDecision = decisions[whenDecisionId] ?? scope[whenDecisionId];
280
- const refOptions = refDecision ? (asDict(refDecision.options) ?? {}) : {};
281
- if (refDecision && !(whenOptionId in refOptions)) {
282
- errors.push(new SemanticError("INVALID_WHEN_REF", `'when' references non-existent option '${whenOptionId}' in decision '${whenDecisionId}'`, decisionPath));
283
- }
284
- }
285
- if (whenDecisionId === decisionId) {
286
- errors.push(new SemanticError("INVALID_WHEN_REF", "'when' cannot reference own decision", decisionPath));
287
- }
288
- }
289
- }
252
+ errors.push(..._validateWhenRefs(decision.when, {
253
+ decisions: { ...scope, ...decisions },
254
+ path: decisionPath,
255
+ ownerKind: "Decision",
256
+ forbidSelfRef: decisionId,
257
+ }));
290
258
  for (const [optionId, optionRaw] of Object.entries(options)) {
291
259
  const option = optionRaw;
292
260
  const optionPath = `${decisionPath}.options.${optionId}`;
@@ -327,30 +295,42 @@ function _validateOutputWhen(outputs, decisions, pathPrefix) {
327
295
  const id = out?.id;
328
296
  if (!id)
329
297
  continue;
330
- const when = out.when;
331
- if (!when)
298
+ errors.push(..._validateWhenRefs(out.when, {
299
+ decisions,
300
+ path: `${outputsPrefix}.${id}`,
301
+ ownerKind: "Output",
302
+ }));
303
+ }
304
+ return errors;
305
+ }
306
+ function _validateWhenRefs(when, ctx) {
307
+ if (when == null)
308
+ return [];
309
+ const conds = typeof when === "string" ? [when] : Array.isArray(when) ? when : [];
310
+ const errors = [];
311
+ for (const cond of conds) {
312
+ const ref = cond.startsWith("~") ? cond.slice(1) : cond;
313
+ const parts = ref.split(".");
314
+ if (parts.length !== 2) {
315
+ errors.push(new SemanticError("INVALID_WHEN_REF", `${ctx.ownerKind} 'when' condition '${cond}' has invalid format`, ctx.path));
332
316
  continue;
333
- const conds = typeof when === "string" ? [when] : when;
334
- const outputPath = `${outputsPrefix}.${id}`;
335
- for (const cond of conds) {
336
- const ref = cond.startsWith("~") ? cond.slice(1) : cond;
337
- const parts = ref.split(".");
338
- if (parts.length !== 2) {
339
- errors.push(new SemanticError("INVALID_WHEN_REF", `Output 'when' condition '${cond}' has invalid format`, outputPath));
340
- continue;
341
- }
342
- const [decisionId, optionId] = parts;
343
- if (!(decisionId in decisions)) {
344
- errors.push(new SemanticError("INVALID_WHEN_REF", `Output 'when' references non-existent decision '${decisionId}'`, outputPath));
345
- }
346
- else {
347
- const refDecision = decisions[decisionId];
348
- const refOptions = (asDict(refDecision.options) ?? {});
349
- if (!(optionId in refOptions)) {
350
- errors.push(new SemanticError("INVALID_WHEN_REF", `Output 'when' references non-existent option '${optionId}' in decision '${decisionId}'`, outputPath));
351
- }
317
+ }
318
+ const [decisionId, optionId] = parts;
319
+ const referenced = ctx.decisions[decisionId];
320
+ if (!referenced) {
321
+ const subject = ctx.ownerKind === "Output" ? `${ctx.ownerKind} 'when'` : "'when'";
322
+ errors.push(new SemanticError("INVALID_WHEN_REF", `${subject} references non-existent decision '${decisionId}'`, ctx.path));
323
+ }
324
+ else {
325
+ const refOptions = asDict(referenced.options) ?? {};
326
+ if (!(optionId in refOptions)) {
327
+ const subject = ctx.ownerKind === "Output" ? `${ctx.ownerKind} 'when'` : "'when'";
328
+ errors.push(new SemanticError("INVALID_WHEN_REF", `${subject} references non-existent option '${optionId}' in decision '${decisionId}'`, ctx.path));
352
329
  }
353
330
  }
331
+ if (ctx.forbidSelfRef && decisionId === ctx.forbidSelfRef) {
332
+ errors.push(new SemanticError("INVALID_WHEN_REF", "'when' cannot reference own decision", ctx.path));
333
+ }
354
334
  }
355
335
  return errors;
356
336
  }
@@ -625,9 +605,6 @@ function _validateConstraintRef(ref, decisions, optionPath) {
625
605
  }
626
606
  return [];
627
607
  }
628
- // ---------------------------------------------------------------------------
629
- // Universe validation
630
- // ---------------------------------------------------------------------------
631
608
  export function validateUniverse(universeData, analysisData) {
632
609
  return _validateUniverseNode(universeData, analysisData, "", []);
633
610
  }
@@ -738,14 +715,10 @@ function _validateNodeUniverseConstraints(universeDecisions, analysisDecisions,
738
715
  }
739
716
  return errors;
740
717
  }
741
- // ---------------------------------------------------------------------------
742
- // File-level wrappers
743
- // ---------------------------------------------------------------------------
744
- import { dirname } from "node:path";
745
- export function validateAnalysisFile(filePath) {
718
+ export function semanticValidateAnalysisFile(filePath) {
746
719
  return validateAnalysis(loadYaml(filePath), { basePath: dirname(filePath) });
747
720
  }
748
- export function validateUniverseFile(universePath, analysisPath) {
721
+ export function semanticValidateUniverseFile(universePath, analysisPath) {
749
722
  return validateUniverse(loadYaml(universePath), loadYaml(analysisPath));
750
723
  }
751
724
  //# sourceMappingURL=semantic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/validation/semantic.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,kEAAkE;AAClE,0EAA0E;AAE1E,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,MAAM,OAAO,aAAa;IAEN;IACA;IACA;IAHlB,YACkB,IAAY,EACZ,OAAe,EACf,IAAa;QAFb,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAS;IAC5B,CAAC;IAEJ,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACvG,CAAC;CACF;AAED,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAIvC,SAAS,MAAM,CAAC,CAAU;IACxB,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC;AAED,SAAS,OAAO,CAAC,CAAU;IACzB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC;AAED,yEAAyE;AACzE,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,EAAE,IAAI,CAAC,CAAC;QACR,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,QAAQ;QAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IACnE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU,EAAE,MAAuB,EAAE,UAAU,GAAG,EAAE;IAChF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC;QACtF,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAClE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,qBAAqB,EACrB,iBAAiB,KAAK,kCAAkC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI;oBAC/E,0FAA0F,EAC5F,QAAQ,CACT,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAC9B,IAAqB,EACrB,UAAiC,EAAE;IAEnC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAG,IAAY,CAAC;IAE3B,yEAAyE;IACzE,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,oBAAoB,EACpB,4CAA4C,KAAK,GAAG,EACpD,KAAK,CACN,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAW,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAW,CAAC;IACnD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAE3D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,EAAE;YAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,EAAE;YAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAoC,CAAC;IACvF,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,aAAa,EAAE,aAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7E,MAAM,CAAC,IAAI,CACT,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,gBAAgB,CAAC,CACpG,CAAC;IACF,MAAM,CAAC,IAAI,CACT,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,CAAC,CACxF,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAW,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,GAAG,EAAE,EAAwB,CAAC;YAC1C,IAAI,GAAG;gBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3D,MAAM,CAAC,IAAI,CACT,GAAG,2BAA2B,CAAC,OAAO,EAAE;QACtC,gBAAgB,EAAE,QAAQ;QAC1B,gBAAgB,EAAE,aAAa;QAC/B,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,YAAY;KAC5B,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;IAEhE,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,CAAC,IAAI,CACT,GAAG,qBAAqB,CAAC,UAAU,EAAE,GAAG,EAAE,aAAqB,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CACxF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAc,EACd,IAAU,EACV,aAAmB,EACnB,aAAqB,EACrB,UAAkB;IAElB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC;IAE3C,uDAAuD;IACvD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAE9D,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,mBAAmB,EACnB,iBAAiB,MAAM,gCAAgC,KAAK,EAAE,EAC9D,QAAQ,CACT,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAyB,CAAC;IAC5E,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,QAAQ,EAAE,IAA0B,CAAC;QACjD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,IAAI,CACT,GAAG,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,QAAQ,cAAc,UAAU,EAAE,CAAC,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,UAAU;IACV,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,EAAE;YAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,EAAE,IAA0B,CAAC;QAC5C,IAAI,GAAG;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,qBAAqB;IACrB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAW,EAAE,CAAC;QAClD,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,EAAE,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,yCAAyC,EAAE,EAAE,EAC7C,GAAG,QAAQ,YAAY,EAAE,EAAE,CAC5B,CACF,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAW,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElE,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAyB,CAAC;IAEzE,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,eAAe,GAAyB,EAAE,GAAG,aAAa,EAAE,CAAC;IACnE,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,QAAQ,EAAE,IAA0B,CAAC;QACjD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACxE,MAAM,WAAW,GAAG,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW;YAAE,SAAS;QAC3B,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAyB,CAAC;QACtF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;QAChC,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,GAAG;gBAAE,eAAe,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5F,MAAM,CAAC,IAAI,CACT,GAAG,yBAAyB,CAC1B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EACjC,aAAa,EACb,QAAQ,EACR,gBAAgB,CACjB,CACF,CAAC;IACF,MAAM,CAAC,IAAI,CACT,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAC/F,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAW,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,GAAG,EAAE,EAAwB,CAAC;YAC1C,IAAI,GAAG;gBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAG,2BAA2B,CAAC,WAAW,EAAE;QAC1C,gBAAgB,EAAE,YAAY;QAC9B,gBAAgB,EAAE,eAAe;QACjC,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,YAAY;KAC5B,CAAC,CACH,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5E,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,CAAC,IAAI,CACT,GAAG,qBAAqB,CACtB,KAAK,EACL,GAAG,EACH,aAAa,EACb,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC,EACxB,GAAG,QAAQ,WAAW,CACvB,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAe,EACf,YAAkB,EAClB,UAAkB;IAElB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,EAAE,IAA0B,CAAC;QAC5C,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;YAAE,SAAS;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAc,EACd,SAAsB,EACtB,UAAkB,EAClB,OAAe;IAEf,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACnE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAW,CAAC;QACzD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,WAAW,GAAG,EAAE,EAAE,QAA8B,CAAC;YACvD,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,sBAAsB,EACtB,sBAAsB,WAAW,iCAAiC,EAClE,GAAG,WAAW,aAAa,CAAC,YAAY,CACzC,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,SAA+B,EAC/B,aAAmB,EACnB,UAAkB,EAClB,eAAsC;IAEtC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,eAAe,IAAI,SAAS,CAAC;IAC3C,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAE7E,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,MAAM,YAAY,GAAG,GAAG,eAAe,IAAI,UAAU,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAyB,CAAC;QAEzE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAA6B,CAAC;QAC1D,IAAI,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,iBAAiB,EACjB,mBAAmB,UAAU,wBAAwB,EACrD,YAAY,CACb,CACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAqC,CAAC;QAC5D,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,8BAA8B,IAAI,sBAAsB,EACxD,YAAY,CACb,CACF,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,KAAyB,CAAC;gBACjE,IAAI,CAAC,CAAC,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,EAAE,CAAC;oBACjE,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,4CAA4C,cAAc,GAAG,EAC7D,YAAY,CACb,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;oBACvE,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1E,IAAI,WAAW,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC;wBACjD,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,0CAA0C,YAAY,kBAAkB,cAAc,GAAG,EACzF,YAAY,CACb,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CAAC,kBAAkB,EAAE,sCAAsC,EAAE,YAAY,CAAC,CAC5F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,SAAS,CAAC;YACzB,MAAM,UAAU,GAAG,GAAG,YAAY,YAAY,QAAQ,EAAE,CAAC;YAEzD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa,CAAC;YACzD,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,qBAAqB,EACrB,mBAAmB,UAAU,+BAA+B,EAC5D,GAAG,UAAU,aAAa,CAAC,GAAG,CAC/B,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAa,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,eAAqC,CAAC;YACpE,IAAI,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,yBAAyB,EACzB,oBAAoB,QAAQ,kCAAkC,EAC9D,UAAU,CACX,CACF,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,wBAAwB,EACxB,WAAW,QAAQ,oDAAoD,EACvE,UAAU,CACX,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAE,CAAC;YAC3C,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,mBAAmB,UAAU,yBAAyB,EACtD,YAAY,CACb,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAe,EACf,SAA+B,EAC/B,UAAkB;IAElB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAqC,CAAC;QACvD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,UAAU,GAAG,GAAG,aAAa,IAAI,EAAE,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,4BAA4B,IAAI,sBAAsB,EACtD,UAAU,CACX,CACF,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,KAAyB,CAAC;YACzD,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,mDAAmD,UAAU,GAAG,EAChE,UAAU,CACX,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAyB,CAAC;gBAC/E,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,iDAAiD,QAAQ,kBAAkB,UAAU,GAAG,EACxF,UAAU,CACX,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AASD,SAAS,2BAA2B,CAClC,OAAe,EACf,IAAoB;IAEpB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAC/E,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,OAAO;QAAE,IAAI,GAAG,EAAE,EAAE;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAY,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,gBAAgB,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;IAEhF,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,EAAE,EAAwB,CAAC;QACzC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,OAAO,GAAG,GAAG,aAAa,IAAI,EAAE,EAAE,CAAC;QAEzC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAa,CAAC;QACvD,QAAQ,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,sBAAsB,EACtB,iBAAiB,KAAK,sDAAsD,EAC5E,GAAG,OAAO,SAAS,CACpB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAa,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,KAAK,IAAI,gBAAgB,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,yBAAyB,EACzB,oBAAoB,KAAK,8BAA8B,EACvD,GAAG,OAAO,YAAY,CACvB,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;QAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CACT,GAAG,wBAAwB,CACzB,OAAO,EACP,IAAI,GAAG,CAAC,cAAc,CAAC,EACvB,IAAI,GAAG,CAAC,iBAAiB,CAAC,EAC1B,GAAG,OAAO,iBAAiB,CAC5B,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CAAC,cAAc,EAAE,8BAA8B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CACrG,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;0EAE0E;AAC1E,QAAQ,CAAC,CAAC,kBAAkB,CAC1B,OAAe;IAEf,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,YAAY;gBACZ,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,0EAA0E;YAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvC,kDAAkD;YAClD,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,UAAU,GAAkB,IAAI,CAAC;YACrC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACpC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACd,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACnC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YACxC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACd,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAe,EACf,cAA2B,EAC3B,iBAA8B,EAC9B,IAAY;IAEZ,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,MAAiF,CAAC;IACtF,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,aAAa,CAAC,0BAA0B,EAAG,CAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,QAAQ,GAAgC;QAC5C,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IAEF,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,MAAM,EAAE,CAAC;QACvD,IAAI,KAAK,IAAI,IAAI;YAAE,SAAS;QAC5B,IAAI,KAAK,KAAK,EAAE,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CAAC,0BAA0B,EAAE,iCAAiC,KAAK,IAAI,EAAE,IAAI,CAAC,CAChG,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;YAAE,SAAS;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;oBAC1D,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,yBAAyB,EACzB,yBAAyB,KAAK,4BAA4B,QAAQ,KAAK,IAAI,uBAAuB,IAAI,GAAG,EACzG,IAAI,CACL,CACF,CAAC;gBACJ,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,0BAA0B,EAC1B,iCAAiC,KAAK,iEAAiE,EACvG,IAAI,CACL,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkC;IAC5D,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IAC1D,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,SAAS,GAAG,CAAC,IAAY;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;gBAAE,SAAS;YAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,EAAU;IACtD,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAC5B,GAAW,EACX,aAAqB,EACrB,YAAoB;IAEpB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAmB,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,uBAAuB,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAC5G,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,kBAAkB,GAAG,2BAA2B,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC;QACjB,OAAO,KAAK,CAAC,kBAAkB,GAAG,2DAA2D,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC9B,OAAO,KAAK,CACV,kBAAkB,GAAG,wCAAwC;YAC3D,gGAAgG,CACnG,CAAC;IACJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM;QACT,OAAO,KAAK,CACV,kBAAkB,GAAG,aAAa,MAAM,CAAC,EAAE,sBAAsB,aAAa,CAAC,MAAM,8BAA8B,CACpH,CAAC;IACJ,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAyB,CAAC;IACjF,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,IAAI,eAAe,CAAC;QAC3C,OAAO,KAAK,CAAC,kBAAkB,GAAG,+CAA+C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1G,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAW,EACX,aAAqB,EACrB,aAAqB,EACrB,QAAgB;IAEhB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAmB,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,eAAe,GAAG,2BAA2B,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC;QACjB,OAAO,KAAK,CACV,eAAe,GAAG,2CAA2C;YAC3D,0FAA0F,CAC7F,CAAC;IACJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM;QACT,OAAO,KAAK,CACV,eAAe,GAAG,aAAa,MAAM,CAAC,EAAE,sBAAsB,aAAa,CAAC,MAAM,8BAA8B,CACjH,CAAC;IAEJ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,eAAe,GAAG,4CAA4C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpG,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,GAAS,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC;YACvB,OAAO,KAAK,CACV,eAAe,GAAG,oBAAoB,GAAG,wBAAwB,CAAC,kBAAkB,CACrF,CAAC;QACJ,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,aAAa;YACrD,OAAO,KAAK,CAAC,eAAe,GAAG,gCAAgC,CAAC,CAAC;QACnE,OAAO,GAAG,WAAW,CAAC,GAAG,CAAS,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAClC,OAAO,KAAK,CAAC,eAAe,GAAG,cAAc,IAAI,oCAAoC,CAAC,CAAC;IACzF,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAW,EACX,YAAkB,EAClB,UAAkB;IAElB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAmB,EAAE,CAAC;QAC5C,IAAI,aAAa,CAAC,qBAAqB,EAAE,CAAC,EAAE,UAAU,CAAC;KACxD,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,gBAAgB,GAAG,2BAA2B,CAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC;QACjB,OAAO,KAAK,CACV,gBAAgB,GAAG,qCAAqC;YACtD,6EAA6E,CAChF,CAAC;IACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC5B,OAAO,KAAK,CACV,gBAAgB,GAAG,sCAAsC;YACvD,uDAAuD,CAC1D,CAAC;IAEJ,IAAI,OAAO,GAAS,YAAY,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC;YACvB,OAAO,KAAK,CAAC,gBAAgB,GAAG,oBAAoB,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACtF,OAAO,GAAG,WAAW,CAAC,GAAG,CAAS,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAClC,OAAO,KAAK,CAAC,gBAAgB,GAAG,cAAc,IAAI,oCAAoC,CAAC,CAAC;IAC1F,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,sBAAsB,CAC7B,GAAW,EACX,SAA+B,EAC/B,UAAkB;IAElB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,aAAa,CACf,2BAA2B,EAC3B,eAAe,GAAG,yCAAyC,EAC3D,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,KAAyB,CAAC;IACzD,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,aAAa,CACf,wBAAwB,EACxB,mBAAmB,GAAG,sCAAsC,UAAU,GAAG,EACzE,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAyB,CAAC;IACvF,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,aAAa,CACf,wBAAwB,EACxB,mBAAmB,GAAG,oCAAoC,QAAQ,GAAG,EACrE,UAAU,CACX;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,UAAU,gBAAgB,CAC9B,YAAkB,EAClB,YAAkB;IAElB,OAAO,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAC5B,YAAkB,EAClB,YAAkB,EAClB,UAAkB,EAClB,qBAA+C;IAE/C,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,YAAY,CAAyB,CAAC;IACrF,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAyB,CAAC;IAC5F,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAA2B,CAAC;IAC3F,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;IAE3E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAClE,IAAI,QAAQ,IAAK,QAAiB,CAAC,IAAI;YAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvE,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,2BAA2B,EAC3B,qCAAqC,UAAU,mDAAmD,EAClG,GAAG,aAAa,IAAI,UAAU,EAAE,CACjC,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,IAAI,iBAAiB,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,yCAAyC,UAAU,GAAG,EACtD,GAAG,aAAa,IAAI,UAAU,EAAE,CACjC,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAE,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAyB,CAAC;QACzE,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,gBAAgB,EAChB,oCAAoC,QAAQ,mBAAmB,UAAU,GAAG,EAC5E,GAAG,aAAa,IAAI,UAAU,EAAE,CACjC,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAE,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,0BAA0B,EAC1B,qCAAqC,QAAQ,mBAAmB,UAAU,GAAG,EAC7E,GAAG,aAAa,IAAI,UAAU,EAAE,CACjC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,MAAM,oBAAoB,GAA2B,EAAE,CAAC;IACxD,KAAK,MAAM,QAAQ,IAAI,qBAAqB;QAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC5F,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;IAEvD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxD,IAAI,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QAC9C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAE,CAAC;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAqC,CAAC;QAC5D,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;gBAChD,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,mBAAmB,EACnB,gCAAgC,UAAU,wBAAwB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EACpG,GAAG,aAAa,IAAI,UAAU,EAAE,CACjC,CACF,CAAC;gBACJ,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,IAAI,iBAAiB,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,8BAA8B,UAAU,GAAG,EAC3C,GAAG,aAAa,IAAI,UAAU,EAAE,CACjC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,MAAM,SAAS,GAA2B,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACnE,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,GAAG,GAAI,oBAAoB,CAAC,UAAU,CAAE,CAAC,IAA2B,IAAI,EAAE,CAAC;QACjF,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACxE,IAAI,MAAM,CAAC,EAAE,GAAG,qBAAqB,CAAC,MAAM;YAAE,SAAS;QACvD,MAAM,cAAc,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAE,CAAC;QACxF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;QAChC,IAAI,GAAG,IAAI,cAAc;YAAE,SAAS,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,GAAG,CAAE,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,SAAS,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9F,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;IAClF,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;IAClF,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;IAE1E,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,kBAAkB,EAClB,yCAAyC,UAAU,EAAE,EACrD,GAAG,cAAc,IAAI,UAAU,EAAE,CAClC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAS,CAAC;QAC5D,MAAM,CAAC,IAAI,CACT,GAAG,qBAAqB,CACtB,WAAW,EACX,GAAG,EACH,GAAG,cAAc,IAAI,UAAU,EAAE,EACjC,CAAC,GAAG,qBAAqB,EAAE,iBAAiB,CAAC,CAC9C,CACF,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gCAAgC,CACvC,iBAAyC,EACzC,iBAAuC,EACvC,UAAkB;IAElB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAyB,CAAC;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,IAAI,GAAG,GAAG,UAAU,IAAI,UAAU,EAAE,CAAC;QAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAa,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;gBACrE,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,sBAAsB,EACtB,WAAW,UAAU,IAAI,QAAQ,2BAA2B,GAAG,GAAG,EAClE,IAAI,CACL,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAE,EAAE,CAAC;gBACrE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,WAAW,CAAC;gBAC3D,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,CACf,yBAAyB,EACzB,WAAW,UAAU,IAAI,QAAQ,eAAe,GAAG,cAAc,MAAM,GAAG,EAC1E,IAAI,CACL,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,YAAoB;IAEpB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/validation/semantic.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astra-spec/sdk",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "TypeScript SDK for ASTRA (Agentic Schema for Transparent Research Analysis): parse, validate, and inspect ASTRA analysis specifications.",
5
5
  "type": "module",
6
6
  "license": "BSD-3-Clause",
package/src/helpers.ts CHANGED
@@ -1,31 +1,33 @@
1
- // Dict-based helpers that operate on parsed YAML data structures. Mirrors
2
- // the Python `astra.helpers` module so semantic validation can resolve
3
- // `from:` paths, `when:` conditions, and tree lookups without requiring a
4
- // strongly-typed model.
5
-
6
1
  import { readFileSync } from "node:fs";
7
- import { dirname, isAbsolute, resolve as resolvePath } from "node:path";
2
+ import { isAbsolute, resolve as resolvePath } from "node:path";
8
3
  import { parse as parseYaml } from "yaml";
9
4
 
10
- import type { Analysis, Decision, Input, Output, Universe } from "./types.js";
5
+ import type { Decision, Input, Output } from "./types.js";
6
+
7
+ export type Dict = Record<string, unknown>;
8
+
9
+ export function asDict(v: unknown): Dict | undefined {
10
+ return v && typeof v === "object" && !Array.isArray(v) ? (v as Dict) : undefined;
11
+ }
12
+
13
+ export function asArray<T = unknown>(v: unknown): T[] {
14
+ return Array.isArray(v) ? (v as T[]) : [];
15
+ }
11
16
 
12
- /** Parse a YAML string into an unknown record. */
13
- export function parseYamlString(text: string): Record<string, unknown> {
17
+ export function parseYamlString(text: string): Dict {
14
18
  const data = parseYaml(text);
15
19
  if (data == null || typeof data !== "object" || Array.isArray(data)) {
16
20
  throw new Error("YAML root must be a mapping/object");
17
21
  }
18
- return data as Record<string, unknown>;
22
+ return data as Dict;
19
23
  }
20
24
 
21
- /** Read a YAML file from disk as a parsed object. */
22
- export function loadYaml(filePath: string): Record<string, unknown> {
23
- const text = readFileSync(filePath, "utf8");
24
- return parseYamlString(text);
25
+ export function loadYaml(filePath: string): Dict {
26
+ return parseYamlString(readFileSync(filePath, "utf8"));
25
27
  }
26
28
 
27
- /** Evaluate a `when` clause (string | string[] | undefined) against a
28
- * flat decision selection. AND across entries; `~` prefix negates. */
29
+ /** Evaluate a `when` clause against a flat decision selection. AND across
30
+ * entries; `~` prefix negates. */
29
31
  export function isConditionMet(
30
32
  when: string | string[] | undefined | null,
31
33
  selections: Record<string, string>,
@@ -47,10 +49,8 @@ export function isConditionMet(
47
49
  return true;
48
50
  }
49
51
 
50
- /** Locally-defined decisions on a node (skips `from:` aliases). */
51
- export function collectNodeDecisions(
52
- node: Record<string, unknown>,
53
- ): Record<string, Decision> {
52
+ /** Locally-defined decisions on a node `from:` aliases are skipped. */
53
+ export function collectNodeDecisions(node: Dict): Record<string, Decision> {
54
54
  const out: Record<string, Decision> = {};
55
55
  const decisions = (node.decisions ?? {}) as Record<string, Decision>;
56
56
  for (const [id, decision] of Object.entries(decisions)) {
@@ -60,37 +60,32 @@ export function collectNodeDecisions(
60
60
  return out;
61
61
  }
62
62
 
63
- export function getInputIds(node: Record<string, unknown>): Set<string> {
64
- const inputs = (node.inputs ?? []) as Input[];
63
+ export function getInputIds(node: Dict): Set<string> {
65
64
  const out = new Set<string>();
66
- for (const inp of inputs) if (inp?.id) out.add(inp.id);
65
+ for (const inp of asArray<Input>(node.inputs)) if (inp?.id) out.add(inp.id);
67
66
  return out;
68
67
  }
69
68
 
70
- export function getOutputIds(node: Record<string, unknown>): Set<string> {
71
- const outputs = (node.outputs ?? []) as Output[];
69
+ export function getOutputIds(node: Dict): Set<string> {
72
70
  const out = new Set<string>();
73
- for (const o of outputs) if (o?.id) out.add(o.id);
71
+ for (const o of asArray<Output>(node.outputs)) if (o?.id) out.add(o.id);
74
72
  return out;
75
73
  }
76
74
 
77
75
  /** Walk `analyses.*.path` references and inline external `astra.yaml`
78
76
  * files. Returns a new object only if at least one path was resolved. */
79
- export function resolveAnalysisTree(
80
- data: Record<string, unknown>,
81
- basePath: string,
82
- ): Record<string, unknown> {
77
+ export function resolveAnalysisTree(data: Dict, basePath: string): Dict {
83
78
  const analyses = data.analyses;
84
79
  if (!analyses || typeof analyses !== "object") return data;
85
80
 
86
- const resolved: Record<string, unknown> = {};
81
+ const resolved: Dict = {};
87
82
  let changed = false;
88
83
  for (const [id, raw] of Object.entries(analyses)) {
89
- if (!raw || typeof raw !== "object") {
84
+ const node = asDict(raw);
85
+ if (!node) {
90
86
  resolved[id] = raw;
91
87
  continue;
92
88
  }
93
- const node = raw as Record<string, unknown>;
94
89
  const subPath = node.path;
95
90
  if (typeof subPath === "string" && subPath) {
96
91
  const absDir = isAbsolute(subPath) ? subPath : resolvePath(basePath, subPath);
@@ -101,8 +96,7 @@ export function resolveAnalysisTree(
101
96
  resolved[id] = resolveAnalysisTree(subData, absDir);
102
97
  changed = true;
103
98
  } catch {
104
- // If the file doesn't exist, leave the stub in place — a
105
- // higher-layer warning surfaces the problem.
99
+ // Missing file is surfaced by a higher layer; leave the stub here.
106
100
  resolved[id] = node;
107
101
  }
108
102
  } else {
@@ -116,56 +110,34 @@ export function resolveAnalysisTree(
116
110
  return { ...data, analyses: resolved };
117
111
  }
118
112
 
119
- /** Inject mapping keys as `id` fields on each value, mirroring the
120
- * Python-side preprocessing. ASTRA YAML is keyed-dict, but the JSON
121
- * Schema requires `id` to be set. Mutates the supplied data in place. */
122
- export function injectAnalysisIdsInPlace(data: Record<string, unknown>): void {
123
- for (const field of ["decisions", "analyses", "prior_insights", "findings"]) {
124
- const mapping = data[field];
125
- if (!mapping || typeof mapping !== "object" || Array.isArray(mapping)) continue;
126
- for (const [key, value] of Object.entries(mapping as Record<string, unknown>)) {
127
- if (!value || typeof value !== "object" || Array.isArray(value)) continue;
128
- const obj = value as Record<string, unknown>;
129
- if (obj.id === undefined) obj.id = key;
130
- if (field === "decisions") {
131
- const opts = obj.options;
132
- if (opts && typeof opts === "object" && !Array.isArray(opts)) {
133
- for (const [okey, ovalue] of Object.entries(opts as Record<string, unknown>)) {
134
- if (ovalue && typeof ovalue === "object" && !Array.isArray(ovalue)) {
135
- const o = ovalue as Record<string, unknown>;
136
- if (o.id === undefined) o.id = okey;
137
- }
138
- }
139
- }
140
- }
141
- if (field === "analyses") {
142
- injectAnalysisIdsInPlace(obj);
143
- }
144
- }
113
+ function injectMapKeysAsIds(map: Dict, recurse?: (value: Dict) => void): void {
114
+ for (const [key, value] of Object.entries(map)) {
115
+ const obj = asDict(value);
116
+ if (!obj) continue;
117
+ if (obj.id === undefined) obj.id = key;
118
+ if (recurse) recurse(obj);
145
119
  }
146
120
  }
147
121
 
148
- export function injectUniverseIdsInPlace(node: Record<string, unknown>): void {
149
- const analyses = node.analyses;
150
- if (!analyses || typeof analyses !== "object" || Array.isArray(analyses)) return;
151
- for (const [key, value] of Object.entries(analyses as Record<string, unknown>)) {
152
- if (value && typeof value === "object" && !Array.isArray(value)) {
153
- const obj = value as Record<string, unknown>;
154
- if (obj.id === undefined) obj.id = key;
155
- injectUniverseIdsInPlace(obj);
156
- }
122
+ /** ASTRA YAML uses keyed dicts but the JSON Schema requires explicit `id`
123
+ * fields; this fills them in from the keys. Mutates `data` in place. */
124
+ export function injectAnalysisIdsInPlace(data: Dict): void {
125
+ for (const field of ["decisions", "analyses", "prior_insights", "findings"] as const) {
126
+ const mapping = asDict(data[field]);
127
+ if (!mapping) continue;
128
+ injectMapKeysAsIds(mapping, (value) => {
129
+ if (field === "decisions") {
130
+ const opts = asDict(value.options);
131
+ if (opts) injectMapKeysAsIds(opts);
132
+ } else if (field === "analyses") {
133
+ injectAnalysisIdsInPlace(value);
134
+ }
135
+ });
157
136
  }
158
137
  }
159
138
 
160
- /** Deep clone via JSON round-trip. ASTRA documents are pure data — no
161
- * cycles, no functions — so this is sufficient and avoids a dep. */
162
- export function deepClone<T>(value: T): T {
163
- return JSON.parse(JSON.stringify(value)) as T;
164
- }
165
-
166
- export function dirOf(filePath: string): string {
167
- return dirname(filePath);
139
+ export function injectUniverseIdsInPlace(node: Dict): void {
140
+ const analyses = asDict(node.analyses);
141
+ if (!analyses) return;
142
+ injectMapKeysAsIds(analyses, injectUniverseIdsInPlace);
168
143
  }
169
-
170
- // Re-export type utility for consumers that want strongly-typed outputs.
171
- export type { Analysis, Universe };
package/src/index.ts CHANGED
@@ -1,6 +1,3 @@
1
- // Public API for @astra-spec/sdk. The package focuses on parsing and
2
- // validating ASTRA analyses; downstream tools layer their own UX on top.
3
-
4
1
  export type {
5
2
  Analysis,
6
3
  Decision,
@@ -33,22 +30,17 @@ export {
33
30
  } from "./helpers.js";
34
31
 
35
32
  export {
36
- // Structural (JSON Schema)
37
33
  validateAnalysisData,
38
34
  validateUniverseData,
39
35
  validateAnalysisFile,
40
36
  validateUniverseFile,
41
37
  isValidAnalysis,
42
38
  isValidUniverse,
43
-
44
- // Semantic
45
39
  SemanticError,
46
40
  validateAnalysis,
47
41
  validateUniverse,
48
42
  semanticValidateAnalysisFile,
49
43
  semanticValidateUniverseFile,
50
-
51
- // Narrative
52
44
  NarrativeWarning,
53
45
  validateNarrativeAnchors,
54
46
  validateNarrativeAnchorsFile,
@@ -11,8 +11,8 @@ export {
11
11
  SemanticError,
12
12
  validateAnalysis,
13
13
  validateUniverse,
14
- validateAnalysisFile as semanticValidateAnalysisFile,
15
- validateUniverseFile as semanticValidateUniverseFile,
14
+ semanticValidateAnalysisFile,
15
+ semanticValidateUniverseFile,
16
16
  } from "./semantic.js";
17
17
 
18
18
  export {