@llm4ts/flow 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Equiv.d.ts CHANGED
@@ -45,6 +45,24 @@ export declare const EquivObservation: Schema.Union<readonly [Schema.Struct<{
45
45
  readonly fields: Schema.$Record<Schema.String, Schema.String>;
46
46
  }>]>;
47
47
  export type EquivObservation = typeof EquivObservation.Type;
48
+ /**
49
+ * Canonicalises the field maps of parsed observation JSON so a replay harness
50
+ * can emit natural JSON types.
51
+ *
52
+ * Observations compare field values as strings, and the schema accordingly
53
+ * required strings — but a harness dumping a COBOL record emits numerics as
54
+ * JSON numbers (`"ZSTC": 0`), which failed the whole replay stage with a
55
+ * schema error rather than a diff. Scalars are rendered here, on both the
56
+ * expected and the actual side, so the comparison stays string-based and
57
+ * symmetric. Note that JSON numbers carry no trailing zeros: a harness that
58
+ * needs fixed precision (money, `PIC 9(5)V99`) should emit those fields as
59
+ * strings.
60
+ */
61
+ export declare const canonicaliseObservations: (parsed: unknown) => unknown;
62
+ /** One field map rendered to the strings observations compare as. */
63
+ export declare const canonicaliseFieldMap: (map: Readonly<Record<string, unknown>>) => Readonly<Record<string, string>>;
64
+ /** `canonicaliseObservations` applied to a parsed vector's observations. */
65
+ export declare const canonicaliseVector: (parsed: unknown) => unknown;
48
66
  export declare const Observations: Readonly<{
49
67
  record: (kind: string, fields: Readonly<Record<string, string>>) => RecordObservation;
50
68
  dbMutation: (table: string, op: string, key: Readonly<Record<string, string>>, set: Readonly<Record<string, string>>) => DbMutationObservation;
@@ -1 +1 @@
1
- {"version":3,"file":"Equiv.d.ts","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EAEzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,eAAO,MAAM,SAAS,qDAA6C,CAAA;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,kBAAkB;;;;;EAK7B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;AAE/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;IAI3B,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,YAAY;mBACR,MAAM,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,iBAAiB;wBAM1E,MAAM,MACT,MAAM,OACL,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KACpC,qBAAqB;qBAEf,MAAM,OACR,MAAM,UACH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KACvC,kBAAkB;EACrB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,qBAAa,WAAY,SAAQ,gBAQ/B;CAAG;AAEL,eAAO,MAAM,kBAAkB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;AAEnC,qBAAa,kBAAmB,SAAQ,uBAEtC;CAAG;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,qBAAsB,SAAQ,0BAK1C;CAAG;;;;;;;AAEJ,qBAAa,oBAAqB,SAAQ,yBAKxC;CAAG;AAEL,eAAO,MAAM,aAAa,+GAIxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAsGrD,eAAO,MAAM,gBAAgB,GAC3B,UAAU,aAAa,CAAC,gBAAgB,CAAC,EACzC,QAAQ,aAAa,CAAC,gBAAgB,CAAC,EACvC,QAAQ,gBAAgB,KACvB,aAAa,CAAC,aAAa,CA+C7B,CAAA;;;;;;;;;;;;;;;;;;;AAED,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAGnC;CAAG;AAEL,eAAO,MAAM,QAAQ,0EAAoD,CAAA;AACzE,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAK3C,eAAO,MAAM,iBAAiB,mgBAkB5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,ofAiC3B,CAAA;AAEF,eAAO,MAAM,iBAAiB,6kBAiD5B,CAAA"}
1
+ {"version":3,"file":"Equiv.d.ts","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EAEzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,eAAO,MAAM,SAAS,qDAA6C,CAAA;AACnE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,iBAAiB;;;;EAI5B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE7D,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,IAAI,CAAA;AAErE,eAAO,MAAM,kBAAkB;;;;;EAK7B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;AAE/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;IAI3B,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AA2B3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,GAAI,QAAQ,OAAO,KAAG,OAmB1D,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,GAC/B,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACrC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAC6D,CAAA;AAE/F,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,GAAI,QAAQ,OAAO,KAAG,OAGzC,CAAA;AAEZ,eAAO,MAAM,YAAY;mBACR,MAAM,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,iBAAiB;wBAM1E,MAAM,MACT,MAAM,OACL,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KACpC,qBAAqB;qBAEf,MAAM,OACR,MAAM,UACH,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KACvC,kBAAkB;EACrB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,qBAAa,WAAY,SAAQ,gBAQ/B;CAAG;AAEL,eAAO,MAAM,kBAAkB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;AAEnC,qBAAa,kBAAmB,SAAQ,uBAEtC;CAAG;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,qBAAsB,SAAQ,0BAK1C;CAAG;;;;;;;AAEJ,qBAAa,oBAAqB,SAAQ,yBAKxC;CAAG;AAEL,eAAO,MAAM,aAAa,+GAIxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAsGrD,eAAO,MAAM,gBAAgB,GAC3B,UAAU,aAAa,CAAC,gBAAgB,CAAC,EACzC,QAAQ,aAAa,CAAC,gBAAgB,CAAC,EACvC,QAAQ,gBAAgB,KACvB,aAAa,CAAC,aAAa,CA+C7B,CAAA;;;;;;;;;;;;;;;;;;;AAED,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAGnC;CAAG;AAEL,eAAO,MAAM,QAAQ,0EAAoD,CAAA;AACzE,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAI3C,eAAO,MAAM,iBAAiB,mgBAkB5B,CAAA;AAEF,eAAO,MAAM,gBAAgB,ofA2C3B,CAAA;AAEF,eAAO,MAAM,iBAAiB,6kBA6D5B,CAAA"}
package/dist/Equiv.js CHANGED
@@ -27,6 +27,64 @@ export const EquivObservation = Schema.Union([
27
27
  DbMutationObservation,
28
28
  MessageObservation
29
29
  ]);
30
+ /**
31
+ * The observation properties that carry a field map, whose values a replay
32
+ * harness may legitimately emit as JSON scalars.
33
+ */
34
+ const fieldMapKeys = ["fields", "key", "set"];
35
+ const canonicalValue = (value) => {
36
+ switch (typeof value) {
37
+ case "string":
38
+ return value;
39
+ case "number":
40
+ return Number.isFinite(value) ? String(value) : "";
41
+ case "boolean":
42
+ return String(value);
43
+ case "object":
44
+ // null reads as "no value", which the legacy side renders as empty.
45
+ return value === null ? "" : JSON.stringify(value);
46
+ default:
47
+ return "";
48
+ }
49
+ };
50
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
51
+ /**
52
+ * Canonicalises the field maps of parsed observation JSON so a replay harness
53
+ * can emit natural JSON types.
54
+ *
55
+ * Observations compare field values as strings, and the schema accordingly
56
+ * required strings — but a harness dumping a COBOL record emits numerics as
57
+ * JSON numbers (`"ZSTC": 0`), which failed the whole replay stage with a
58
+ * schema error rather than a diff. Scalars are rendered here, on both the
59
+ * expected and the actual side, so the comparison stays string-based and
60
+ * symmetric. Note that JSON numbers carry no trailing zeros: a harness that
61
+ * needs fixed precision (money, `PIC 9(5)V99`) should emit those fields as
62
+ * strings.
63
+ */
64
+ export const canonicaliseObservations = (parsed) => {
65
+ if (!Array.isArray(parsed)) {
66
+ return parsed;
67
+ }
68
+ return parsed.map((observation) => {
69
+ if (!isPlainObject(observation)) {
70
+ return observation;
71
+ }
72
+ const canonicalised = { ...observation };
73
+ for (const key of fieldMapKeys) {
74
+ const map = canonicalised[key];
75
+ if (isPlainObject(map)) {
76
+ canonicalised[key] = Object.fromEntries(Object.entries(map).map(([name, value]) => [name, canonicalValue(value)]));
77
+ }
78
+ }
79
+ return canonicalised;
80
+ });
81
+ };
82
+ /** One field map rendered to the strings observations compare as. */
83
+ export const canonicaliseFieldMap = (map) => Object.fromEntries(Object.entries(map).map(([name, value]) => [name, canonicalValue(value)]));
84
+ /** `canonicaliseObservations` applied to a parsed vector's observations. */
85
+ export const canonicaliseVector = (parsed) => isPlainObject(parsed) && Array.isArray(parsed.observations)
86
+ ? { ...parsed, observations: canonicaliseObservations(parsed.observations) }
87
+ : parsed;
30
88
  export const Observations = Object.freeze({
31
89
  record: (kind, fields) => ({
32
90
  type: "record",
@@ -197,7 +255,6 @@ export class ReplayedCrashed extends Schema.TaggedClass()("Crashed", {
197
255
  }
198
256
  export const Replayed = Schema.Union([ReplayedObserved, ReplayedCrashed]);
199
257
  const vectorCodec = Schema.fromJsonString(EquivVector);
200
- const observationsCodec = Schema.fromJsonString(Schema.Array(EquivObservation));
201
258
  export const writeEquivVectors = Effect.fn("@llm4ts/flow/Equiv.writeVectors")(function* (files, path, vectors) {
202
259
  const lines = yield* Effect.forEach(vectors, (vector) => Schema.encodeEffect(vectorCodec)(vector).pipe(Effect.mapError((error) => PlanParseError.make({
203
260
  message: `failed to encode equivalence vector: ${String(error)}`
@@ -212,9 +269,14 @@ export const readEquivVectors = Effect.fn("@llm4ts/flow/Equiv.readVectors")(func
212
269
  const vectors = yield* Effect.forEach(contents
213
270
  .split(/\r?\n/u)
214
271
  .map((line) => line.trim())
215
- .filter((line) => line.length > 0), (line, index) => Schema.decodeUnknownEffect(vectorCodec)(line).pipe(Effect.mapError((error) => PlanParseError.make({
272
+ .filter((line) => line.length > 0), (line, index) => Effect.try({
273
+ try: () => canonicaliseVector(JSON.parse(line)),
274
+ catch: () => PlanParseError.make({
275
+ message: `malformed vector at ${path}:${index + 1}: not JSON`
276
+ })
277
+ }).pipe(Effect.flatMap((parsed) => Schema.decodeUnknownEffect(EquivVector)(parsed).pipe(Effect.mapError((error) => PlanParseError.make({
216
278
  message: `malformed vector at ${path}:${index + 1}: ${String(error)}`
217
- }))), { concurrency: 1 });
279
+ }))))), { concurrency: 1 });
218
280
  for (const vector of vectors) {
219
281
  if (vector.schemaVersion !== CurrentEquivSchema) {
220
282
  return yield* UnsupportedSchemaVersion.make({
@@ -248,9 +310,15 @@ export const replayEquivVector = Effect.fn("@llm4ts/flow/Equiv.replayVector")(fu
248
310
  });
249
311
  }
250
312
  const output = result.stdout.join("\n");
251
- const actual = yield* Schema.decodeUnknownEffect(observationsCodec)(output).pipe(Effect.mapError((error) => PlanParseError.make({
313
+ const actual = yield* Effect.try({
314
+ try: () => canonicaliseObservations(JSON.parse(output)),
315
+ catch: () => PlanParseError.make({
316
+ message: `replay output for ${vector.program}/${vector.id} is not JSON: ` +
317
+ `${output.slice(0, 200)}`
318
+ })
319
+ }).pipe(Effect.flatMap((parsed) => Schema.decodeUnknownEffect(Schema.Array(EquivObservation))(parsed).pipe(Effect.mapError((error) => PlanParseError.make({
252
320
  message: `replay output for ${vector.program}/${vector.id} is not an observation array: ${String(error)}`
253
- })));
321
+ })))));
254
322
  return ReplayedObserved.make({ actual });
255
323
  });
256
324
  //# sourceMappingURL=Equiv.js.map
package/dist/Equiv.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Equiv.js","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Equiv.js","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EAEzB,MAAM,gBAAgB,CAAA;AAKvB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;AAGnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CACpD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAChD,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CACjD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CACpD,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3C,iBAAiB;IACjB,qBAAqB;IACrB,kBAAkB;CACnB,CAAC,CAAA;AAGF;;;GAGG;AACH,MAAM,YAAY,GAA0B,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAEpE,MAAM,cAAc,GAAG,CAAC,KAAc,EAAU,EAAE;IAChD,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAA;QACd,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACpD,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACtB,KAAK,QAAQ;YACX,oEAAoE;YACpE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACpD;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,KAAc,EAAoC,EAAE,CACzE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAEtE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAe,EAAW,EAAE;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAA;IACf,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAChC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,MAAM,aAAa,GAA4B,EAAE,GAAG,WAAW,EAAE,CAAA;QACjE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAC1E,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,GAAsC,EACJ,EAAE,CACpC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/F,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAW,EAAE,CAC7D,aAAa,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IACzD,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;IAC5E,CAAC,CAAC,MAAM,CAAA;AAEZ,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,IAAY,EAAE,MAAwC,EAAqB,EAAE,CAAC,CAAC;QACtF,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,MAAM;KACP,CAAC;IACF,UAAU,EAAE,CACV,KAAa,EACb,EAAU,EACV,GAAqC,EACrC,GAAqC,EACd,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACjE,OAAO,EAAE,CACP,KAAa,EACb,GAAW,EACX,MAAwC,EACpB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;CACnE,CAAC,CAAA;AAEF,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,KAAK,CAAc,aAAa,CAAC,CAAC;IACxE,aAAa,EAAE,MAAM,CAAC,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC,IAAI;IACnB,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAC7C,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAAC,SAAS,EAAE;IAC1F,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;CAAG;AAEL,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,WAAW,EAAyB,CACpF,YAAY,EACZ;IACE,MAAM,EAAE,gBAAgB;CACzB,CACF;CAAG;AAEJ,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,WAAW,EAAwB,CAAC,WAAW,EAAE;IAChG,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IACxC,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;CACrB,CAAC,CAAA;AAGF,MAAM,aAAa,GAAG,CACpB,MAAwC,EACE,EAAE,CAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAE7E,MAAM,UAAU,GAAG,CAAC,WAA6B,EAAU,EAAE;IAC3D,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,UAAU,WAAW,CAAC,IAAI,EAAE,CAAA;QACrC,KAAK,SAAS;YACZ,OAAO,WAAW,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,CAAA;QAC1D,KAAK,IAAI;YACP,OAAO,MAAM,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,EAAE,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC;iBAC/E,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;iBACxC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,WAA6B,EAAoC,EAAE,CACnF,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAA;AAElE,MAAM,SAAS,GAAG,CAAC,WAA6B,EAAU,EAAE,CAC1D,IAAI,CAAC,SAAS,CAAC;IACb,GAAG,WAAW;IACd,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI;QAC3B,CAAC,CAAC;YACE,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACvD,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SACxD;QACH,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;CACvE,CAAC,CAAA;AAEJ,MAAM,KAAK,GAAG,CAAC,WAA6B,EAAE,MAA2B,EAAoB,EAAE;IAC7F,MAAM,IAAI,GAAG,CAAC,MAAwC,EAAoC,EAAE,CAC1F,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAChF,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QACxE,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QAC3F,KAAK,IAAI;YACP,OAAO,YAAY,CAAC,UAAU,CAC5B,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,EAAE,EACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CACtB,CAAA;IACL,CAAC;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CACjB,QAA0B,EAC1B,MAAwB,EACM,EAAE;IAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAChF,IAAI,EAAE;SACN,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,cAAc,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC;QAC3C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE,oBAAoB,CAAC,IAAI,CAAC;gBACxB,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;gBACxB,KAAK;gBACL,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,UAAU;gBAC7C,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,UAAU;aAC1C,CAAC;SACH,CACN,CAAA;AACL,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,QAAyC,EACzC,MAAuC,EACT,EAAE;IAChC,MAAM,MAAM,GAAyB,EAAE,CAAA;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;QACjE,CAAC;aAAM,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QAClE,CAAC;aAAM,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAClE,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtD,SAAQ;YACV,CAAC;YACD,IAAI,UAAU,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;gBAChE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAAyC,EACzC,MAAuC,EACvC,MAAwB,EACM,EAAE;IAChC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACvE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG;YACX,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;SACrF,CAAC,IAAI,EAAE,CAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1B,cAAc,CACZ,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAC3D,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAC1D,CACF,CAAA;IACH,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAG,cAAc,CAAC,CAAA;IAC3C,MAAM,iBAAiB,GAA4B,EAAE,CAAA;IACrD,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAChG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAyB,EAAE,CAAA;IAC3C,MAAM,OAAO,GAA4B,EAAE,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CACrC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAC1D,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC/D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;YAC9C,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IACD,OAAO;QACL,GAAG,UAAU;QACb,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QACrF,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;KAC3F,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAAC,UAAU,EAAE;IACvF,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACvC,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CAAC,SAAS,EAAE;IACpF,QAAQ,EAAE,MAAM,CAAC,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAA;AAGzE,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EACrF,KAA0B,EAC1B,IAAY,EACZ,OAAmC;IAEnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACjC,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,cAAc,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,wCAAwC,MAAM,CAAC,KAAK,CAAC,EAAE;KACjE,CAAC,CACH,CACF,EACH,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAA;IACD,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzD,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,EACnF,KAA0B,EAC1B,IAAY;IAEZ,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnC,QAAQ;SACL,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EACpC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,EAAE,GAAG,EAAE,CACV,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,uBAAuB,IAAI,IAAI,KAAK,GAAG,CAAC,YAAY;SAC9D,CAAC;KACL,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAClD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,cAAc,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,uBAAuB,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;KACtE,CAAC,CACH,CACF,CACF,CACF,EACH,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,aAAa,KAAK,kBAAkB,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBAC1C,IAAI;gBACJ,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE,MAAM,CAAC,aAAa;aAC7B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EACrF,OAA6B,EAC7B,MAAuB,EACvB,OAA8B,EAC9B,IAAY,EACZ,MAAmB;IAEnB,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAC9B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,sBAAsB;SAC/B,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAChE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,cAAc,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,2BAA2B,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE;KACpF,CAAC,CACH,CACF,CAAA;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAC3B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,oBAAoB,EACpB,MAAM,EACN,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,YAAY,CAAC,IAAI,CAAC;QAChB,OAAO,EAAE,oBAAoB;QAC7B,MAAM,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC,CACH,CACF,CACF,CAAA;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACzD,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvD,KAAK,EAAE,GAAG,EAAE,CACV,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EACL,qBAAqB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,gBAAgB;gBAChE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;SAC5B,CAAC;KACL,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,cAAc,CAAC,IAAI,CAAC;QAClB,OAAO,EAAE,qBAAqB,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,iCAAiC,MAAM,CAAC,KAAK,CAAC,EAAE;KAC1G,CAAC,CACH,CACF,CACF,CACF,CAAA;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAC1C,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/flow",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "Effect-native LLM workflow, persistence, review, and repository automation",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -80,7 +80,7 @@
80
80
  "typescript"
81
81
  ],
82
82
  "dependencies": {
83
- "@llm4ts/core": "0.7.1"
83
+ "@llm4ts/core": "0.7.2"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "effect": "^4.0.0-beta.102"
package/src/Equiv.ts CHANGED
@@ -47,6 +47,77 @@ export const EquivObservation = Schema.Union([
47
47
  ])
48
48
  export type EquivObservation = typeof EquivObservation.Type
49
49
 
50
+ /**
51
+ * The observation properties that carry a field map, whose values a replay
52
+ * harness may legitimately emit as JSON scalars.
53
+ */
54
+ const fieldMapKeys: ReadonlyArray<string> = ["fields", "key", "set"]
55
+
56
+ const canonicalValue = (value: unknown): string => {
57
+ switch (typeof value) {
58
+ case "string":
59
+ return value
60
+ case "number":
61
+ return Number.isFinite(value) ? String(value) : ""
62
+ case "boolean":
63
+ return String(value)
64
+ case "object":
65
+ // null reads as "no value", which the legacy side renders as empty.
66
+ return value === null ? "" : JSON.stringify(value)
67
+ default:
68
+ return ""
69
+ }
70
+ }
71
+
72
+ const isPlainObject = (value: unknown): value is Record<string, unknown> =>
73
+ typeof value === "object" && value !== null && !Array.isArray(value)
74
+
75
+ /**
76
+ * Canonicalises the field maps of parsed observation JSON so a replay harness
77
+ * can emit natural JSON types.
78
+ *
79
+ * Observations compare field values as strings, and the schema accordingly
80
+ * required strings — but a harness dumping a COBOL record emits numerics as
81
+ * JSON numbers (`"ZSTC": 0`), which failed the whole replay stage with a
82
+ * schema error rather than a diff. Scalars are rendered here, on both the
83
+ * expected and the actual side, so the comparison stays string-based and
84
+ * symmetric. Note that JSON numbers carry no trailing zeros: a harness that
85
+ * needs fixed precision (money, `PIC 9(5)V99`) should emit those fields as
86
+ * strings.
87
+ */
88
+ export const canonicaliseObservations = (parsed: unknown): unknown => {
89
+ if (!Array.isArray(parsed)) {
90
+ return parsed
91
+ }
92
+ return parsed.map((observation) => {
93
+ if (!isPlainObject(observation)) {
94
+ return observation
95
+ }
96
+ const canonicalised: Record<string, unknown> = { ...observation }
97
+ for (const key of fieldMapKeys) {
98
+ const map = canonicalised[key]
99
+ if (isPlainObject(map)) {
100
+ canonicalised[key] = Object.fromEntries(
101
+ Object.entries(map).map(([name, value]) => [name, canonicalValue(value)])
102
+ )
103
+ }
104
+ }
105
+ return canonicalised
106
+ })
107
+ }
108
+
109
+ /** One field map rendered to the strings observations compare as. */
110
+ export const canonicaliseFieldMap = (
111
+ map: Readonly<Record<string, unknown>>
112
+ ): Readonly<Record<string, string>> =>
113
+ Object.fromEntries(Object.entries(map).map(([name, value]) => [name, canonicalValue(value)]))
114
+
115
+ /** `canonicaliseObservations` applied to a parsed vector's observations. */
116
+ export const canonicaliseVector = (parsed: unknown): unknown =>
117
+ isPlainObject(parsed) && Array.isArray(parsed.observations)
118
+ ? { ...parsed, observations: canonicaliseObservations(parsed.observations) }
119
+ : parsed
120
+
50
121
  export const Observations = Object.freeze({
51
122
  record: (kind: string, fields: Readonly<Record<string, string>>): RecordObservation => ({
52
123
  type: "record",
@@ -269,7 +340,6 @@ export const Replayed = Schema.Union([ReplayedObserved, ReplayedCrashed])
269
340
  export type Replayed = typeof Replayed.Type
270
341
 
271
342
  const vectorCodec = Schema.fromJsonString(EquivVector)
272
- const observationsCodec = Schema.fromJsonString(Schema.Array(EquivObservation))
273
343
 
274
344
  export const writeEquivVectors = Effect.fn("@llm4ts/flow/Equiv.writeVectors")(function* (
275
345
  files: PlainFileStoreShape,
@@ -305,11 +375,21 @@ export const readEquivVectors = Effect.fn("@llm4ts/flow/Equiv.readVectors")(func
305
375
  .map((line) => line.trim())
306
376
  .filter((line) => line.length > 0),
307
377
  (line, index) =>
308
- Schema.decodeUnknownEffect(vectorCodec)(line).pipe(
309
- Effect.mapError((error) =>
378
+ Effect.try({
379
+ try: () => canonicaliseVector(JSON.parse(line)),
380
+ catch: () =>
310
381
  PlanParseError.make({
311
- message: `malformed vector at ${path}:${index + 1}: ${String(error)}`
382
+ message: `malformed vector at ${path}:${index + 1}: not JSON`
312
383
  })
384
+ }).pipe(
385
+ Effect.flatMap((parsed) =>
386
+ Schema.decodeUnknownEffect(EquivVector)(parsed).pipe(
387
+ Effect.mapError((error) =>
388
+ PlanParseError.make({
389
+ message: `malformed vector at ${path}:${index + 1}: ${String(error)}`
390
+ })
391
+ )
392
+ )
313
393
  )
314
394
  ),
315
395
  { concurrency: 1 }
@@ -367,11 +447,23 @@ export const replayEquivVector = Effect.fn("@llm4ts/flow/Equiv.replayVector")(fu
367
447
  })
368
448
  }
369
449
  const output = result.stdout.join("\n")
370
- const actual = yield* Schema.decodeUnknownEffect(observationsCodec)(output).pipe(
371
- Effect.mapError((error) =>
450
+ const actual = yield* Effect.try({
451
+ try: () => canonicaliseObservations(JSON.parse(output)),
452
+ catch: () =>
372
453
  PlanParseError.make({
373
- message: `replay output for ${vector.program}/${vector.id} is not an observation array: ${String(error)}`
454
+ message:
455
+ `replay output for ${vector.program}/${vector.id} is not JSON: ` +
456
+ `${output.slice(0, 200)}`
374
457
  })
458
+ }).pipe(
459
+ Effect.flatMap((parsed) =>
460
+ Schema.decodeUnknownEffect(Schema.Array(EquivObservation))(parsed).pipe(
461
+ Effect.mapError((error) =>
462
+ PlanParseError.make({
463
+ message: `replay output for ${vector.program}/${vector.id} is not an observation array: ${String(error)}`
464
+ })
465
+ )
466
+ )
375
467
  )
376
468
  )
377
469
  return ReplayedObserved.make({ actual })