@llm4ts/flow 0.7.1 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"CostTracker.d.ts","sourceRoot":"","sources":["../src/CostTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAW9D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAChF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClE;AA2FD,eAAO,MAAM,eAAe,gDAgE3B,CAAA"}
1
+ {"version":3,"file":"CostTracker.d.ts","sourceRoot":"","sources":["../src/CostTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAW9D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAChF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClE;AAwGD,eAAO,MAAM,eAAe,gDAgE3B,CAAA"}
@@ -13,6 +13,7 @@ const emptyState = {
13
13
  };
14
14
  const mergeUsage = (previous, usage) => {
15
15
  const cachedValues = [previous?.cached, usage.cached].flatMap((value) => value === undefined ? [] : [value]);
16
+ const costValues = [previous?.costUsd, usage.costUsd].flatMap((value) => value === undefined ? [] : [value]);
16
17
  return TokenUsage.make({
17
18
  prompt: (previous?.prompt ?? 0) + usage.prompt,
18
19
  completion: (previous?.completion ?? 0) + usage.completion,
@@ -21,9 +22,17 @@ const mergeUsage = (previous, usage) => {
21
22
  ? {}
22
23
  : {
23
24
  cached: cachedValues.reduce((sum, value) => sum + value, 0)
25
+ }),
26
+ ...(costValues.length === 0
27
+ ? {}
28
+ : {
29
+ costUsd: costValues.reduce((sum, value) => sum + value, 0)
24
30
  })
25
31
  });
26
32
  };
33
+ // Backend-reported cost is authoritative; the pricing table only fills in
34
+ // when the backend said nothing.
35
+ const costOf = (model, usage) => usage.costUsd ?? (model === "(unknown)" ? undefined : estimateCostUsd(model, usage));
27
36
  const addUsage = (values, key, usage) => new Map(values).set(key, mergeUsage(values.get(key), usage));
28
37
  const updateCostState = (state, event) => {
29
38
  switch (event._tag) {
@@ -60,7 +69,7 @@ const renderSummary = (state) => {
60
69
  const models = [...state.byModel.entries()]
61
70
  .sort(([left], [right]) => left.localeCompare(right))
62
71
  .map(([model, usage]) => {
63
- const cost = model === "(unknown)" ? undefined : estimateCostUsd(model, usage);
72
+ const cost = costOf(model, usage);
64
73
  return { line: tokenLine(model, usage, cost), cost };
65
74
  });
66
75
  if (agents.length === 0 && models.length === 0) {
@@ -93,7 +102,7 @@ export const makeCostTracker = Effect.fn("@llm4ts/flow/CostTracker.make")(functi
93
102
  return [];
94
103
  }
95
104
  const [stage, agent, model] = parts;
96
- const costUsd = model === "(unknown)" ? undefined : estimateCostUsd(model, usage);
105
+ const costUsd = costOf(model, usage);
97
106
  return [
98
107
  CostCell.make({
99
108
  stage,
@@ -1 +1 @@
1
- {"version":3,"file":"CostTracker.js","sourceRoot":"","sources":["../src/CostTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CostTracker.js","sourceRoot":"","sources":["../src/CostTracker.ts"],"names":[],"mappings":"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"}
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":"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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) => 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":"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"}
package/dist/Flow.d.ts CHANGED
@@ -28,6 +28,15 @@ export interface ImplementPlanOptions {
28
28
  readonly maxRounds?: number;
29
29
  readonly lint?: Effect.Effect<ReviewResult, FlowError>;
30
30
  readonly format?: Effect.Effect<void, FlowError>;
31
+ /**
32
+ * What to do when a task produces no file changes and the coder does not
33
+ * confirm TASK_ALREADY_SATISFIED. "fail" (default) aborts the flow —
34
+ * the safe reading when nothing downstream re-checks the work. "complete"
35
+ * marks the task complete with an Info notice — for pipelines whose final
36
+ * state is judged downstream anyway (a CI gate, a fresh-context review),
37
+ * where one unconfirmed no-op should not sink otherwise-finished work.
38
+ */
39
+ readonly noopTaskPolicy?: "fail" | "complete";
31
40
  }
32
41
  export declare const implementPlanFlow: (context: FlowContextShape, options: ImplementPlanOptions) => Effect.Effect<Plan, import("./FlowError.ts").PersistenceError | import("./FlowError.ts").PlanParseError | import("./FlowError.ts").UnsupportedSchemaVersion | import("./FlowError.ts").WorkspacePathError | import("./FlowError.ts").WorkspaceLimitError | import("./FlowError.ts").WorkspaceIoError | FlowAborted | import("./FlowError.ts").ProcessError | FlowLlmError | import("./FlowError.ts").FlowCapabilityDenied | import("./FlowError.ts").BudgetExceeded, never>;
33
42
  //# sourceMappingURL=Flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAI9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB,KAAG,eACd,CAAA;AAE3C,eAAO,MAAM,kBAAkB,mHAmB7B,CAAA;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;CACjD;AAOD,eAAO,MAAM,iBAAiB,2gBAoG5B,CAAA"}
1
+ {"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAI9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE/D,eAAO,MAAM,YAAY,GAAI,SAAS,gBAAgB,KAAG,eACd,CAAA;AAE3C,eAAO,MAAM,kBAAkB,mHAmB7B,CAAA;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAChD;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CAC9C;AAOD,eAAO,MAAM,iBAAiB,2gBA4G5B,CAAA"}
package/dist/Flow.js CHANGED
@@ -75,6 +75,12 @@ export const implementPlanFlow = Effect.fn("@llm4ts/flow/Flow.implementPlan")(fu
75
75
  }));
76
76
  return;
77
77
  }
78
+ if (options.noopTaskPolicy === "complete") {
79
+ yield* context.events.publish(Info.make({
80
+ message: `task "${task.title}" produced no changes without confirming TASK_ALREADY_SATISFIED; marking complete per noopTaskPolicy`
81
+ }));
82
+ return;
83
+ }
78
84
  return yield* FlowAborted.make({
79
85
  message: `task "${task.title}" produced no changes and did not confirm TASK_ALREADY_SATISFIED; failing instead of marking it complete`
80
86
  });
package/dist/Flow.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Flow.js","sourceRoot":"","sources":["../src/Flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Flow.js","sourceRoot":"","sources":["../src/Flow.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.1",
3
+ "version": "0.7.3",
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.3"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "effect": "^4.0.0-beta.102"
@@ -35,6 +35,9 @@ const mergeUsage = (previous: TokenUsage | undefined, usage: TokenUsage): TokenU
35
35
  const cachedValues = [previous?.cached, usage.cached].flatMap((value) =>
36
36
  value === undefined ? [] : [value]
37
37
  )
38
+ const costValues = [previous?.costUsd, usage.costUsd].flatMap((value) =>
39
+ value === undefined ? [] : [value]
40
+ )
38
41
  return TokenUsage.make({
39
42
  prompt: (previous?.prompt ?? 0) + usage.prompt,
40
43
  completion: (previous?.completion ?? 0) + usage.completion,
@@ -43,10 +46,20 @@ const mergeUsage = (previous: TokenUsage | undefined, usage: TokenUsage): TokenU
43
46
  ? {}
44
47
  : {
45
48
  cached: cachedValues.reduce((sum, value) => sum + value, 0)
49
+ }),
50
+ ...(costValues.length === 0
51
+ ? {}
52
+ : {
53
+ costUsd: costValues.reduce((sum, value) => sum + value, 0)
46
54
  })
47
55
  })
48
56
  }
49
57
 
58
+ // Backend-reported cost is authoritative; the pricing table only fills in
59
+ // when the backend said nothing.
60
+ const costOf = (model: string, usage: TokenUsage): number | undefined =>
61
+ usage.costUsd ?? (model === "(unknown)" ? undefined : estimateCostUsd(model, usage))
62
+
50
63
  const addUsage = (
51
64
  values: ReadonlyMap<string, TokenUsage>,
52
65
  key: string,
@@ -90,7 +103,7 @@ const renderSummary = (state: CostState): string => {
90
103
  const models = [...state.byModel.entries()]
91
104
  .sort(([left], [right]) => left.localeCompare(right))
92
105
  .map(([model, usage]) => {
93
- const cost = model === "(unknown)" ? undefined : estimateCostUsd(model, usage)
106
+ const cost = costOf(model, usage)
94
107
  return { line: tokenLine(model, usage, cost), cost }
95
108
  })
96
109
  if (agents.length === 0 && models.length === 0) {
@@ -129,7 +142,7 @@ export const makeCostTracker = Effect.fn("@llm4ts/flow/CostTracker.make")(
129
142
  return []
130
143
  }
131
144
  const [stage, agent, model] = parts
132
- const costUsd = model === "(unknown)" ? undefined : estimateCostUsd(model, usage)
145
+ const costUsd = costOf(model, usage)
133
146
  return [
134
147
  CostCell.make({
135
148
  stage,
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 })
package/src/Flow.ts CHANGED
@@ -56,6 +56,15 @@ export interface ImplementPlanOptions {
56
56
  readonly maxRounds?: number
57
57
  readonly lint?: Effect.Effect<ReviewResult, FlowError>
58
58
  readonly format?: Effect.Effect<void, FlowError>
59
+ /**
60
+ * What to do when a task produces no file changes and the coder does not
61
+ * confirm TASK_ALREADY_SATISFIED. "fail" (default) aborts the flow —
62
+ * the safe reading when nothing downstream re-checks the work. "complete"
63
+ * marks the task complete with an Info notice — for pipelines whose final
64
+ * state is judged downstream anyway (a CI gate, a fresh-context review),
65
+ * where one unconfirmed no-op should not sink otherwise-finished work.
66
+ */
67
+ readonly noopTaskPolicy?: "fail" | "complete"
59
68
  }
60
69
 
61
70
  const defaultCommitMessage = (plan: Plan, task: Task): string => `${plan.epicId}: ${task.title}`
@@ -129,6 +138,14 @@ export const implementPlanFlow = Effect.fn("@llm4ts/flow/Flow.implementPlan")(fu
129
138
  )
130
139
  return
131
140
  }
141
+ if (options.noopTaskPolicy === "complete") {
142
+ yield* context.events.publish(
143
+ Info.make({
144
+ message: `task "${task.title}" produced no changes without confirming TASK_ALREADY_SATISFIED; marking complete per noopTaskPolicy`
145
+ })
146
+ )
147
+ return
148
+ }
132
149
  return yield* FlowAborted.make({
133
150
  message: `task "${task.title}" produced no changes and did not confirm TASK_ALREADY_SATISFIED; failing instead of marking it complete`
134
151
  })