@cavelang/scenario 0.35.0 → 0.36.0

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,6 +1,9 @@
1
1
  import { Buffer } from 'node:buffer';
2
+ import { Validate } from '@cavelang/solver';
2
3
  import { Key } from '@cavelang/core';
3
4
  import { canonicalizeText } from '@cavelang/canonical';
5
+ import { inputDigest } from "./bind.js";
6
+ import { validateExplanationEntries } from "./explanation-entries.js";
4
7
  export const resultSchema = 'cave.scenario/result@1';
5
8
  export const evaluationSchema = 'cave.scenario/evaluation@1';
6
9
  export const recommendationSchema = 'cave.scenario/recommendation@1';
@@ -44,13 +47,14 @@ const source = {
44
47
  'external-effect': 'scenario/external-effect'
45
48
  };
46
49
  const entity = (kind, id) => {
47
- if (id === '')
48
- throw new TypeError(`${kind} id must not be empty`);
50
+ if (typeof id !== 'string' || id === '')
51
+ throw new TypeError(`${kind} id must be a non-empty string`);
49
52
  return `${prefix[kind]}/${id}`;
50
53
  };
51
54
  const compareText = (left, right) => left < right ? -1 : left > right ? 1 : 0;
52
55
  const canonicalJson = (value) => {
53
- const normalize = (item, path) => {
56
+ const ancestors = new Set();
57
+ const normalize = function* (item, path) {
54
58
  if (item === null || typeof item === 'string' || typeof item === 'boolean')
55
59
  return item;
56
60
  if (typeof item === 'number') {
@@ -58,23 +62,115 @@ const canonicalJson = (value) => {
58
62
  throw new TypeError(`${path} must be finite`);
59
63
  return item;
60
64
  }
61
- if (Array.isArray(item))
62
- return item.map((entry, index) => normalize(entry, `${path}[${index}]`));
63
65
  if (typeof item === 'object') {
64
- return Object.fromEntries(Object.entries(item)
65
- .filter(([, entry]) => entry !== undefined)
66
- .sort(([left], [right]) => compareText(left, right))
67
- .map(([key, entry]) => [key, normalize(entry, `${path}.${key}`)]));
66
+ if (ancestors.has(item))
67
+ throw new TypeError(`${path} contains a cycle`);
68
+ const prototype = Object.getPrototypeOf(item);
69
+ if (!Array.isArray(item) && prototype !== Object.prototype && prototype !== null) {
70
+ throw new TypeError(`${path} must be a plain JSON object`);
71
+ }
72
+ ancestors.add(item);
73
+ try {
74
+ // Read JSON's indexed array values, ignoring custom iterators, and visit
75
+ // holes so they fail instead of silently becoming null during stringify.
76
+ if (Array.isArray(item)) {
77
+ const length = item.length;
78
+ const values = [];
79
+ for (let index = 0; index < length; index++) {
80
+ values.push(yield { value: item[index], path: `${path}[${index}]` });
81
+ }
82
+ return values;
83
+ }
84
+ const entries = Object.entries(item)
85
+ .filter(([, entry]) => entry !== undefined)
86
+ .sort(([left], [right]) => compareText(left, right));
87
+ const values = [];
88
+ for (const [key, entry] of entries) {
89
+ values.push([key, yield { value: entry, path: `${path}.${key}` }]);
90
+ }
91
+ return Object.fromEntries(values);
92
+ }
93
+ finally {
94
+ ancestors.delete(item);
95
+ }
68
96
  }
69
97
  throw new TypeError(`${path} is not JSON`);
70
98
  };
71
- return JSON.stringify(normalize(value, 'artifact'));
99
+ const stack = [normalize(value, 'artifact')];
100
+ let step = stack[0].next();
101
+ while (true) {
102
+ if (step.done) {
103
+ stack.pop();
104
+ if (stack.length === 0)
105
+ break;
106
+ step = stack[stack.length - 1].next(step.value);
107
+ }
108
+ else {
109
+ const child = normalize(step.value.value, step.value.path);
110
+ stack.push(child);
111
+ step = child.next();
112
+ }
113
+ }
114
+ // Serialize the owned tree iteratively too: JSON.stringify recurses through
115
+ // containers. Retain its property order, including numeric-index keys.
116
+ const pending = [{ value: step.value }];
117
+ const output = [];
118
+ while (pending.length > 0) {
119
+ const frame = pending.pop();
120
+ if ('text' in frame) {
121
+ output.push(frame.text);
122
+ continue;
123
+ }
124
+ const item = frame.value;
125
+ if (item === null || typeof item !== 'object') {
126
+ output.push(JSON.stringify(item));
127
+ }
128
+ else if (Array.isArray(item)) {
129
+ output.push('[');
130
+ pending.push({ text: ']' });
131
+ for (let index = item.length - 1; index >= 0; index--) {
132
+ pending.push({ value: item[index] });
133
+ if (index > 0)
134
+ pending.push({ text: ',' });
135
+ }
136
+ }
137
+ else {
138
+ const entries = Object.entries(item);
139
+ output.push('{');
140
+ pending.push({ text: '}' });
141
+ for (let index = entries.length - 1; index >= 0; index--) {
142
+ const [key, child] = entries[index];
143
+ pending.push({ value: child }, { text: `${JSON.stringify(key)}:` });
144
+ if (index > 0)
145
+ pending.push({ text: ',' });
146
+ }
147
+ }
148
+ }
149
+ return output.join('');
72
150
  };
73
- const encode = (artifact) => Buffer.from(canonicalJson(artifact), 'utf8').toString('base64url');
74
151
  const decode = (payload) => {
75
152
  let parsed;
76
153
  try {
77
- parsed = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
154
+ // Buffer's decoder ignores non-alphabet characters and surplus padding.
155
+ // Accept URL-safe text with either no padding or exactly the required padding.
156
+ const bytes = Buffer.from(payload, 'base64url');
157
+ const unpadded = bytes.toString('base64url');
158
+ const padded = unpadded.padEnd(Math.ceil(unpadded.length / 4) * 4, '=');
159
+ if (payload !== unpadded && payload !== padded)
160
+ throw new TypeError('invalid base64url encoding');
161
+ parsed = JSON.parse(new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes));
162
+ // A JSON reviver recurses through the payload and rejects otherwise valid
163
+ // deeply nested imports when the JavaScript call stack is exhausted.
164
+ const pending = [parsed];
165
+ while (pending.length > 0) {
166
+ const value = pending.pop();
167
+ if (typeof value === 'number' && !Number.isFinite(value))
168
+ throw new TypeError('non-finite JSON number');
169
+ if (value !== null && typeof value === 'object') {
170
+ for (const child of Object.values(value))
171
+ pending.push(child);
172
+ }
173
+ }
78
174
  }
79
175
  catch {
80
176
  throw new TypeError('recorded scenario artifact is not valid base64url JSON');
@@ -92,12 +188,22 @@ const line = (kind, id, payload) => `${entity(kind, id)} HAS artifact: \`${paylo
92
188
  const claimOf = (store, kind, id, payload) => {
93
189
  const parsed = canonicalizeText(line(kind, id, payload), store.registry());
94
190
  const claim = parsed.claims[0]?.claim;
95
- if (parsed.problems.length > 0 || claim === undefined) {
191
+ if (parsed.problems.length > 0 || parsed.claims.length !== 1 || parsed.edges.length !== 0 ||
192
+ claim === undefined || claim.subject.kind !== 'entity' || claim.subject.text !== entity(kind, id) ||
193
+ claim.verb !== 'HAS' || claim.payload.kind !== 'attribute' ||
194
+ claim.payload.attribute !== 'artifact' || claim.payload.value.kind !== 'code' || claim.payload.value.raw !== payload) {
96
195
  const detail = parsed.problems.map(problem => `line ${problem.line}: ${problem.message}`).join('; ');
97
196
  throw new TypeError(`invalid ${kind} identity ${JSON.stringify(id)}${detail === '' ? '' : `: ${detail}`}`);
98
197
  }
99
198
  return { parsed, claim };
100
199
  };
200
+ const payloadOf = (store, kind, id, row) => {
201
+ const stored = store.toClaim(row);
202
+ if (stored.payload.kind !== 'attribute' || stored.payload.attribute !== 'artifact' || stored.payload.value.kind !== 'code') {
203
+ throw new TypeError(`${kind} ${JSON.stringify(id)} has an invalid stored representation`);
204
+ }
205
+ return stored.payload.value.raw;
206
+ };
101
207
  const currentPayload = (store, kind, id) => {
102
208
  // The payload is excluded from an attribute claim key, so an empty
103
209
  // placeholder locates the one append-only series for this artifact ID.
@@ -105,11 +211,7 @@ const currentPayload = (store, kind, id) => {
105
211
  const row = store.currentBelief(Key.of(claim));
106
212
  if (row === undefined || row.conf === 0)
107
213
  return undefined;
108
- const stored = store.toClaim(row);
109
- if (stored.payload.kind !== 'attribute' || stored.payload.attribute !== 'artifact' || stored.payload.value.kind !== 'code') {
110
- throw new TypeError(`${kind} ${JSON.stringify(id)} has an invalid stored representation`);
111
- }
112
- return { payload: stored.payload.value.raw, rowId: row.id };
214
+ return { payload: payloadOf(store, kind, id, row), rowId: row.id };
113
215
  };
114
216
  const requireRecord = (store, kind, id) => {
115
217
  const found = currentPayload(store, kind, id);
@@ -119,37 +221,158 @@ const requireRecord = (store, kind, id) => {
119
221
  if (kindOf(artifact) !== kind || artifact.id !== id) {
120
222
  throw new TypeError(`${kind} ${JSON.stringify(id)} has mismatched stored identity`);
121
223
  }
224
+ validateArtifact(artifact);
122
225
  return artifact;
123
226
  };
124
- const append = (store, artifact, validate) => store.transaction(() => {
125
- validate();
126
- const kind = kindOf(artifact);
127
- const payload = encode(artifact);
128
- const existing = currentPayload(store, kind, artifact.id);
129
- if (existing !== undefined) {
130
- if (existing.payload !== payload)
131
- throw new RecordConflictError(kind, artifact.id);
132
- return { status: 'existing', rowId: existing.rowId, artifact };
133
- }
134
- const { parsed } = claimOf(store, kind, artifact.id, payload);
135
- const inserted = store.insertResult(parsed);
136
- return { status: 'recorded', rowId: inserted.ids[0], artifact };
137
- });
138
- export const result = (store, artifact) => append(store, artifact, () => {
227
+ const append = (store, kind, supplied, validate) => {
228
+ if (typeof supplied !== 'object' || supplied === null) {
229
+ throw new TypeError(`unsupported ${kind} artifact schema — expected an object`);
230
+ }
231
+ // Validation, predecessor checks and storage must observe the same JSON.
232
+ const json = canonicalJson(supplied);
233
+ const artifact = JSON.parse(json);
234
+ if (kindOf(artifact) !== kind) {
235
+ throw new TypeError(`unsupported ${kind} artifact schema ${JSON.stringify(artifact.schema)}`);
236
+ }
237
+ return store.transaction(() => {
238
+ validateArtifact(artifact);
239
+ validate(artifact);
240
+ const payload = Buffer.from(json, 'utf8').toString('base64url');
241
+ const { parsed, claim } = claimOf(store, kind, artifact.id, payload);
242
+ // Retraction changes current belief, not ownership of an immutable ID.
243
+ // Inspect every event, even when the latest event matches or is retracted.
244
+ for (const row of store.history(Key.of(claim))) {
245
+ if (payloadOf(store, kind, artifact.id, row) !== payload)
246
+ throw new RecordConflictError(kind, artifact.id);
247
+ }
248
+ const existing = currentPayload(store, kind, artifact.id);
249
+ if (existing !== undefined) {
250
+ if (existing.payload !== payload)
251
+ throw new RecordConflictError(kind, artifact.id);
252
+ return { status: 'existing', rowId: existing.rowId, artifact };
253
+ }
254
+ const inserted = store.insertResult(parsed);
255
+ return { status: 'recorded', rowId: inserted.ids[0], artifact };
256
+ });
257
+ };
258
+ const validateResult = (artifact) => {
139
259
  if (artifact.schema === resultSchema && artifact.report.schema !== 'cave.solver/explanation@1') {
140
260
  throw new TypeError(`unsupported solver explanation schema ${JSON.stringify(artifact.report.schema)}`);
141
261
  }
262
+ if (artifact.schema === resultSchema) {
263
+ requiredText(artifact.report.run?.modelDigest, 'solver model digest');
264
+ requiredText(artifact.report.run?.backend?.name, 'solver backend name');
265
+ requiredText(artifact.report.run?.backend?.version, 'solver backend version');
266
+ const outcome = artifact.report.outcome;
267
+ requiredStatus(outcome?.status, ['satisfied', 'optimal', 'unsatisfied', 'unknown'], 'solver explanation status');
268
+ if (outcome.status === 'optimal' && outcome.optimalityProved !== true) {
269
+ throw new TypeError('optimal solver explanation requires optimalityProved: true');
270
+ }
271
+ if (outcome.status === 'unsatisfied' && outcome.infeasibilityProved !== true) {
272
+ throw new TypeError('unsatisfied solver explanation requires infeasibilityProved: true');
273
+ }
274
+ if (outcome.status === 'unsatisfied' && outcome.coreMinimal !== false) {
275
+ throw new TypeError('unsatisfied solver explanation requires coreMinimal: false; core minimality is not promised');
276
+ }
277
+ const collection = (value, field) => {
278
+ if (!Array.isArray(value))
279
+ throw new TypeError(`solver explanation ${field} must be an array`);
280
+ };
281
+ collection(artifact.report.run.inputs, 'inputs');
282
+ collection(artifact.report.run.diagnostics, 'diagnostics');
283
+ if (outcome.status === 'satisfied' || outcome.status === 'optimal') {
284
+ collection(outcome.assignments, 'assignments');
285
+ collection(outcome.hardConstraints, 'hardConstraints');
286
+ collection(outcome.softConstraints, 'softConstraints');
287
+ }
288
+ if (outcome.status === 'unknown')
289
+ Validate.unknownReason(outcome.reason);
290
+ if (outcome.status === 'optimal')
291
+ collection(outcome.objectives, 'objectives');
292
+ if (outcome.status === 'unsatisfied' && outcome.core !== undefined)
293
+ collection(outcome.core, 'core');
294
+ Validate.resultMetadata(artifact.report.run);
295
+ validateExplanationEntries(artifact.report);
296
+ Validate.explanationContext(artifact.report.run);
297
+ const limits = artifact.report.run.limits;
298
+ if (limits === null || typeof limits !== 'object' || Array.isArray(limits)) {
299
+ throw new TypeError('solver explanation limits must be an object');
300
+ }
301
+ // Validate declared limits, but do not rewrite historical metadata with
302
+ // defaults introduced after the recorded run.
303
+ Validate.mergeLimits(limits);
304
+ }
142
305
  if (artifact.schema === evaluationSchema) {
143
306
  if (artifact.inputs.schema !== 'cave.scenario/inputs@1') {
144
307
  throw new TypeError(`unsupported scenario input schema ${JSON.stringify(artifact.inputs.schema)}`);
145
308
  }
146
- if (artifact.evaluator.name === '' || artifact.evaluator.version === '') {
147
- throw new TypeError('scenario evaluator name and version must not be empty');
309
+ if (typeof artifact.evaluator?.name !== 'string' || artifact.evaluator.name === '' ||
310
+ typeof artifact.evaluator?.version !== 'string' || artifact.evaluator.version === '') {
311
+ throw new TypeError('scenario evaluator name and version must be non-empty strings');
148
312
  }
313
+ if (artifact.output === undefined)
314
+ throw new TypeError('scenario evaluation output is required; use null for no value');
315
+ const { digest, ...contents } = artifact.inputs;
316
+ if (digest !== inputDigest(contents))
317
+ throw new TypeError('scenario record input digest does not match its contents');
318
+ }
319
+ };
320
+ export const result = (store, artifact) => append(store, 'result', artifact, () => undefined);
321
+ const requiredText = (value, field) => {
322
+ if (typeof value !== 'string' || value === '')
323
+ throw new TypeError(`${field} must be a non-empty string`);
324
+ };
325
+ const optionalText = (value, field) => {
326
+ if (value !== undefined && typeof value !== 'string')
327
+ throw new TypeError(`${field} must be a string`);
328
+ };
329
+ const requiredValue = (value, field) => {
330
+ if (value === undefined)
331
+ throw new TypeError(`${field} is required; use null for no value`);
332
+ };
333
+ const requiredStatus = (value, choices, field) => {
334
+ if (typeof value !== 'string' || !choices.includes(value)) {
335
+ throw new TypeError(`${field} must be one of ${choices.join(', ')}`);
336
+ }
337
+ };
338
+ const validateArtifact = (artifact) => {
339
+ switch (artifact.schema) {
340
+ case resultSchema:
341
+ case evaluationSchema:
342
+ validateResult(artifact);
343
+ break;
344
+ case recommendationSchema:
345
+ requiredValue(artifact.value, 'recommendation value');
346
+ requiredText(artifact.resultId, 'result id');
347
+ optionalText(artifact.rationale, 'recommendation rationale');
348
+ optionalText(artifact.authoredBy, 'recommendation authoredBy');
349
+ break;
350
+ case decisionSchema:
351
+ requiredValue(artifact.selected, 'decision selected value');
352
+ optionalText(artifact.rationale, 'decision rationale');
353
+ requiredText(artifact.decidedBy, 'decision decidedBy');
354
+ requiredText(artifact.resultId, 'result id');
355
+ if (artifact.recommendationId !== undefined)
356
+ requiredText(artifact.recommendationId, 'recommendation id');
357
+ break;
358
+ case actionSchema:
359
+ requiredValue(artifact.parameters, 'action parameters');
360
+ requiredText(artifact.name, 'action name');
361
+ optionalText(artifact.message, 'action message');
362
+ requiredStatus(artifact.status, ['validated', 'executed', 'failed'], 'action status');
363
+ requiredText(artifact.decisionId, 'decision id');
364
+ break;
365
+ case externalEffectSchema:
366
+ requiredText(artifact.kind, 'external effect kind');
367
+ requiredStatus(artifact.status, ['succeeded', 'failed', 'unknown'], 'external effect status');
368
+ requiredText(artifact.actionId, 'action id');
369
+ break;
149
370
  }
371
+ };
372
+ export const recommendation = (store, artifact) => append(store, 'recommendation', artifact, artifact => {
373
+ requireRecord(store, 'result', artifact.resultId);
150
374
  });
151
- export const recommendation = (store, artifact) => append(store, artifact, () => { requireRecord(store, 'result', artifact.resultId); });
152
- export const decision = (store, artifact) => append(store, artifact, () => {
375
+ export const decision = (store, artifact) => append(store, 'decision', artifact, artifact => {
153
376
  requireRecord(store, 'result', artifact.resultId);
154
377
  if (artifact.recommendationId !== undefined) {
155
378
  const proposal = requireRecord(store, 'recommendation', artifact.recommendationId);
@@ -158,30 +381,47 @@ export const decision = (store, artifact) => append(store, artifact, () => {
158
381
  }
159
382
  }
160
383
  });
161
- export const action = (store, artifact) => append(store, artifact, () => { requireRecord(store, 'decision', artifact.decisionId); });
162
- export const externalEffect = (store, artifact) => append(store, artifact, () => { requireRecord(store, 'action', artifact.actionId); });
384
+ export const action = (store, artifact) => append(store, 'action', artifact, artifact => {
385
+ requireRecord(store, 'decision', artifact.decisionId);
386
+ });
387
+ export const externalEffect = (store, artifact) => append(store, 'external-effect', artifact, artifact => {
388
+ requireRecord(store, 'action', artifact.actionId);
389
+ });
163
390
  export const read = (store, kind, id) => requireRecord(store, kind, id);
164
391
  /**
165
392
  * Reads an immutable result without re-running it. Compatibility is explicit:
166
393
  * a different model or backend version is reported, never silently upgraded.
167
394
  */
168
395
  export const replay = (store, id, expected) => {
396
+ if (expected === null || typeof expected !== 'object' || Array.isArray(expected)) {
397
+ throw new TypeError('replay expectations must be an object');
398
+ }
399
+ const { modelDigest, backend } = expected;
400
+ requiredText(modelDigest, 'expected model digest');
401
+ if (backend !== undefined && (backend === null || typeof backend !== 'object' || Array.isArray(backend))) {
402
+ throw new TypeError('expected backend must be an object');
403
+ }
404
+ const expectedBackend = backend === undefined ? undefined : { name: backend.name, version: backend.version };
405
+ if (expectedBackend !== undefined) {
406
+ requiredText(expectedBackend.name, 'expected backend name');
407
+ requiredText(expectedBackend.version, 'expected backend version');
408
+ }
169
409
  const found = requireRecord(store, 'result', id);
170
410
  if (found.schema !== resultSchema) {
171
411
  throw new TypeError(`result ${JSON.stringify(id)} is an external evaluation, not a solver result`);
172
412
  }
173
413
  const artifact = found;
174
414
  const reasons = [];
175
- if (artifact.report.run.modelDigest !== expected.modelDigest) {
176
- reasons.push(`model digest ${artifact.report.run.modelDigest} does not match ${expected.modelDigest}`);
415
+ if (artifact.report.run.modelDigest !== modelDigest) {
416
+ reasons.push(`model digest ${artifact.report.run.modelDigest} does not match ${modelDigest}`);
177
417
  }
178
- if (expected.backend !== undefined) {
418
+ if (expectedBackend !== undefined) {
179
419
  const actual = artifact.report.run.backend;
180
- if (actual.name !== expected.backend.name) {
181
- reasons.push(`solver backend ${actual.name} does not match ${expected.backend.name}`);
420
+ if (actual.name !== expectedBackend.name) {
421
+ reasons.push(`solver backend ${actual.name} does not match ${expectedBackend.name}`);
182
422
  }
183
- if (actual.version !== expected.backend.version) {
184
- reasons.push(`solver version ${actual.version} does not match ${expected.backend.version}`);
423
+ if (actual.version !== expectedBackend.version) {
424
+ reasons.push(`solver version ${actual.version} does not match ${expectedBackend.version}`);
185
425
  }
186
426
  }
187
427
  return { artifact, compatible: reasons.length === 0, reasons };
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAgB,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAErE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAiC,CAAA;AAC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAAqC,CAAA;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gCAAyC,CAAA;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,0BAAmC,CAAA;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAiC,CAAA;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,iCAA0C,CAAA;AAsF9E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,IAAU,EAAE,EAAU;QAChC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,6CAA6C,CAAC,CAAA;QACjF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,IAAU,EAAE,EAAU;QAChC,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAQ,EAAE;IAC1C,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAA;QAClC,KAAK,gBAAgB,CAAC,CAAC,OAAO,QAAQ,CAAA;QACtC,KAAK,oBAAoB,CAAC,CAAC,OAAO,gBAAgB,CAAA;QAClD,KAAK,cAAc,CAAC,CAAC,OAAO,UAAU,CAAA;QACtC,KAAK,YAAY,CAAC,CAAC,OAAO,QAAQ,CAAA;QAClC,KAAK,oBAAoB,CAAC,CAAC,OAAO,iBAAiB,CAAA;IACrD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAmC;IAC7C,MAAM,EAAE,iBAAiB;IACzB,cAAc,EAAE,yBAAyB;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,iBAAiB;IACzB,iBAAiB,EAAE,iBAAiB;CACrC,CAAA;AAED,MAAM,MAAM,GAAmC;IAC7C,MAAM,EAAE,iBAAiB;IACzB,cAAc,EAAE,yBAAyB;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,iBAAiB;IACzB,iBAAiB,EAAE,0BAA0B;CAC9C,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,IAAU,EAAE,EAAU,EAAU,EAAE;IAChD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAA;IACrG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAErG,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAEnC,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,IAAa,EAAE,IAAY;QACtD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QACvF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAA;YACzE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAA;YACxE,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;YAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACjF,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAA;YAC5D,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACnB,IAAI,CAAC;gBACH,yEAAyE;gBACzE,yEAAyE;gBACzE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;oBAC1B,MAAM,MAAM,GAAc,EAAE,CAAA;oBAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;wBAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,CAAA;oBACtE,CAAC;oBACD,OAAO,MAAM,CAAA;gBACf,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC;qBAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;qBAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;gBACtD,MAAM,MAAM,GAAwB,EAAE,CAAA;gBACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;gBACpE,CAAC;gBACD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACnC,CAAC;oBAAS,CAAC;gBACT,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,cAAc,CAAC,CAAA;IAC5C,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;IAC5C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAA;IAC3B,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,GAAG,EAAE,CAAA;YACX,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAK;YAC7B,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IACD,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,OAAO,GAA8C,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAClF,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAG,CAAA;QAC5B,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAA;QACxB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YAC3B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACpC,IAAI,KAAK,GAAG,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YAC3B,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAE,CAAA;gBACpC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;gBACnE,IAAI,KAAK,GAAG,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAY,EAAE;IAC3C,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,wEAAwE;QACxE,+EAA+E;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;QACvE,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM;YAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAA;QACjG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7F,0EAA0E;QAC1E,qEAAqE;QACrE,MAAM,OAAO,GAAc,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAA;YACvG,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAQ,MAA+B,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjH,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,MAAM,GAAI,MAA6B,CAAC,MAAM,CAAA;IACpD,IAAI,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,MAAe,CAAC,EAAE,CAAC;QAC1I,MAAM,IAAI,SAAS,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,MAAkB,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,IAAU,EAAE,EAAU,EAAE,OAAe,EAAU,EAAE,CAC/D,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,OAAO,WAAW,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;AAEzE,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,IAAU,EAAE,EAAU,EAAE,OAAe,EAAE,EAAE;IACxE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;IACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACvF,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACjG,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;QAC1D,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;QACvH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpG,MAAM,IAAI,SAAS,CAAC,WAAW,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,CAAC,CAAA;IAC5G,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,IAAU,EAAE,EAAU,EAAE,GAAU,EAAU,EAAE;IAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3H,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,uCAAuC,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,IAAU,EAAE,EAAU,EAAkD,EAAE;IAC9G,mEAAmE;IACnE,uEAAuE;IACvE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACzD,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA;AACpE,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAqB,KAAY,EAAE,IAAU,EAAE,EAAU,EAAK,EAAE;IACpF,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAA;IACrF,CAAC;IACD,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAC1B,OAAO,QAAa,CAAA;AACtB,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAqB,KAAY,EAAE,IAAU,EAAE,QAAW,EAAE,QAA+B,EAAiB,EAAE;IAC3H,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,SAAS,CAAC,eAAe,IAAI,uCAAuC,CAAC,CAAA;IACjF,CAAC;IACD,yEAAyE;IACzE,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;IACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,eAAe,IAAI,oBAAoB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC/F,CAAC;IACD,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5B,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QAC1B,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC/D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACpE,uEAAuE;QACvE,2EAA2E;QAC3E,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,OAAO;gBAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5G,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO;gBAAE,MAAM,IAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YAClF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC3C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,QAAwB,EAAQ,EAAE;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,2BAA2B,EAAE,CAAC;QAC/F,MAAM,IAAI,SAAS,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACxG,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QACrC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAA;QACrE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAA;QACvE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAA;QAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAA;QACvC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,2BAA2B,CAAC,CAAA;QAChH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACtE,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAA;QACnF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YAC7E,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAA;QAC1F,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACtE,MAAM,IAAI,SAAS,CAAC,6FAA6F,CAAC,CAAA;QACpH,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,KAAa,EAAQ,EAAE;YACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,sBAAsB,KAAK,mBAAmB,CAAC,CAAA;QAChG,CAAC,CAAA;QACD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAChD,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnE,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;YAC9C,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;YACtD,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACxE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5C,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC3C,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAA;QACzC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;QACpE,CAAC;QACD,wEAAwE;QACxE,8CAA8C;QAC9C,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;YACxD,MAAM,IAAI,SAAS,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACpG,CAAC;QACD,IAAI,OAAO,QAAQ,CAAC,SAAS,EAAE,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE;YAC9E,OAAO,QAAQ,CAAC,SAAS,EAAE,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;YACzF,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAA;QACtF,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,+DAA+D,CAAC,CAAA;QACvH,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC/C,IAAI,MAAM,KAAK,WAAW,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;IACvH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,QAAwB,EAAiB,EAAE,CAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAEpD,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAa,EAAQ,EAAE;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAA;AAC3G,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAa,EAAQ,EAAE;IAC3D,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAA;AACxG,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,KAAa,EAAQ,EAAE;IAC5D,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAA;AAC7F,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,OAA0B,EAAE,KAAa,EAAQ,EAAE;IACzF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;AACH,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAQ,EAAE;IACpD,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,YAAY,CAAC;QAAC,KAAK,gBAAgB;YACtC,cAAc,CAAC,QAAQ,CAAC,CAAA;YACxB,MAAK;QACP,KAAK,oBAAoB;YACvB,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;YACrD,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAC5C,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAA;YAC5D,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAA;YAC9D,MAAK;QACP,KAAK,cAAc;YACjB,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAA;YAC3D,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;YACtD,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;YACtD,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAC5C,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS;gBAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAA;YACzG,MAAK;QACP,KAAK,YAAY;YACf,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;YACvD,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;YAC1C,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;YAChD,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAA;YACrF,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;YAChD,MAAK;QACP,KAAK,oBAAoB;YACvB,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;YACnD,cAAc,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,wBAAwB,CAAC,CAAA;YAC7F,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAC5C,MAAK;IACT,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,QAAwB,EAAiB,EAAE,CACtF,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACnD,aAAa,CAAiB,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACnE,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,QAAkB,EAAiB,EAAE,CAC1E,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IAC7C,aAAa,CAAiB,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACjE,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,aAAa,CAAiB,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAClG,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAA;QAC9G,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,QAAgB,EAAiB,EAAE,CACtE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IAC3C,aAAa,CAAW,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;AACjE,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,QAAwB,EAAiB,EAAE,CACtF,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACpD,aAAa,CAAS,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC3D,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,IAAI,GAAG,CAAqB,KAAY,EAAE,IAAU,EAAE,EAAU,EAAK,EAAE,CAClF,aAAa,CAAI,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAU,EAAE,QAA2B,EAAU,EAAE;IACtF,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAA;IAC9D,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;IACzC,YAAY,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAA;IAClD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,eAAe,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5G,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;QAC3D,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAA;IACnE,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAiB,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,iDAAiD,CAAC,CAAA;IACpG,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAA;IACtB,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,mBAAmB,WAAW,EAAE,CAAC,CAAA;IAC/F,CAAC;IACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAA;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,IAAI,mBAAmB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAA;QACtF,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,OAAO,mBAAmB,eAAe,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;AAChE,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavelang/scenario",
3
- "version": "0.35.0",
3
+ "version": "0.36.0",
4
4
  "type": "module",
5
5
  "description": "Typed, replayable CAVE snapshot and ephemeral-overlay bindings for decision and solver inputs.",
6
6
  "keywords": [
@@ -21,7 +21,7 @@
21
21
  "directory": "packages/scenario"
22
22
  },
23
23
  "engines": {
24
- "node": "^22.18.0 || ^24.0.0 || ^26.0.0"
24
+ "node": "^24.16.0 || ^26.1.0"
25
25
  },
26
26
  "exports": {
27
27
  ".": {
@@ -43,11 +43,11 @@
43
43
  "access": "public"
44
44
  },
45
45
  "dependencies": {
46
- "@cavelang/core": "0.35.0",
47
- "@cavelang/query": "0.35.0",
48
- "@cavelang/store": "0.35.0",
49
- "@cavelang/solver": "0.35.0",
50
- "@cavelang/canonical": "0.35.0"
46
+ "@cavelang/canonical": "0.36.0",
47
+ "@cavelang/solver": "0.36.0",
48
+ "@cavelang/query": "0.36.0",
49
+ "@cavelang/store": "0.36.0",
50
+ "@cavelang/core": "0.36.0"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "tsc -b",