@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.
- package/dist/CostTracker.d.ts.map +1 -1
- package/dist/CostTracker.js +11 -2
- package/dist/CostTracker.js.map +1 -1
- 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/dist/Flow.d.ts +9 -0
- package/dist/Flow.d.ts.map +1 -1
- package/dist/Flow.js +6 -0
- package/dist/Flow.js.map +1 -1
- package/package.json +2 -2
- package/src/CostTracker.ts +15 -2
- package/src/Equiv.ts +99 -7
- package/src/Flow.ts +17 -0
|
@@ -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;
|
|
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"}
|
package/dist/CostTracker.js
CHANGED
|
@@ -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 =
|
|
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 =
|
|
105
|
+
const costUsd = costOf(model, usage);
|
|
97
106
|
return [
|
|
98
107
|
CostCell.make({
|
|
99
108
|
stage,
|
package/dist/CostTracker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CostTracker.js","sourceRoot":"","sources":["../src/CostTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AAEjC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAkB5D,MAAM,UAAU,GAAc;IAC5B,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,UAAU,EAAE,EAAE;CACf,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,QAAgC,EAAE,KAAiB,EAAc,EAAE;IACrF,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACtE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACnC,CAAA;IACD,OAAO,UAAU,CAAC,IAAI,CAAC;QACrB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM;QAC9C,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU;QAC1D,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;QAC3C,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;aAC5D,CAAC;KACP,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CACf,MAAuC,EACvC,GAAW,EACX,KAAiB,EACgB,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAElG,MAAM,eAAe,GAAG,CAAC,KAAgB,EAAE,KAAgB,EAAa,EAAE;IACxE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,WAAW,CAAA;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,YAAY,CAAA;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;YAC3D,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;gBAC1D,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;gBACpD,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;gBACpD,QAAQ,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aAC5E,CAAA;QACH,CAAC;QACD,KAAK,cAAc;YACjB,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAA;QACrE,KAAK,gBAAgB,CAAC;QACtB,KAAK,aAAa;YAChB,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5D;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAiB,EAAE,IAAwB,EAAU,EAAE;IACvF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,UAAU,CAAA;IACjG,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,OAAO,KAAK,KAAK,KAAK,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,KAAK,CAAC,UAAU,OAAO,KAAK,EAAE,CAAA;AACnF,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAU,EAAE;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,
|
|
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;
|
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":"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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
|
package/dist/Flow.d.ts.map
CHANGED
|
@@ -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;
|
|
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":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAG1F,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAqB,MAAM,aAAa,CAAA;AAGnF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAyB,EAAmB,EAAE,CACzE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,EAC3F,OAAwB,EACxB,MAAuB,EACvB,MAAc;IAEd,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3F,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CACnC,CAAA;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACrF,CAAC,CACH,CAAA;IACH,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IACxE,OAAO,QAAQ,CAAC,OAAO,CAAA;AACzB,CAAC,CAAC,CAAA;
|
|
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.
|
|
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.
|
|
83
|
+
"@llm4ts/core": "0.7.3"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"effect": "^4.0.0-beta.102"
|
package/src/CostTracker.ts
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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
|
-
|
|
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 })
|
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
|
})
|