@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 +18 -0
- package/dist/Equiv.d.ts.map +1 -1
- package/dist/Equiv.js +73 -5
- package/dist/Equiv.js.map +1 -1
- package/package.json +2 -2
- package/src/Equiv.ts +99 -7
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;
|
package/dist/Equiv.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Equiv.d.ts","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"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"}
|
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) =>
|
|
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*
|
|
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":"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,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;AACtD,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAE/E,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,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAChD,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,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,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9E,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,CAAA;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAC1C,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Equiv.js","sourceRoot":"","sources":["../src/Equiv.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llm4ts/flow",
|
|
3
|
-
"version": "0.7.
|
|
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.
|
|
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
|
-
|
|
309
|
-
|
|
378
|
+
Effect.try({
|
|
379
|
+
try: () => canonicaliseVector(JSON.parse(line)),
|
|
380
|
+
catch: () =>
|
|
310
381
|
PlanParseError.make({
|
|
311
|
-
message: `malformed vector at ${path}:${index + 1}:
|
|
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*
|
|
371
|
-
|
|
450
|
+
const actual = yield* Effect.try({
|
|
451
|
+
try: () => canonicaliseObservations(JSON.parse(output)),
|
|
452
|
+
catch: () =>
|
|
372
453
|
PlanParseError.make({
|
|
373
|
-
message:
|
|
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 })
|