@llm4ts/flow 2.45.0 → 2.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Approval.d.ts +2 -0
- package/dist/Approval.d.ts.map +1 -1
- package/dist/Approval.js +4 -0
- package/dist/Approval.js.map +1 -1
- package/dist/AutonomyContract.d.ts +2 -2
- package/dist/AutonomyContract.d.ts.map +1 -1
- package/dist/AutonomyContract.js +9 -3
- package/dist/AutonomyContract.js.map +1 -1
- package/dist/CostReport.d.ts +27 -0
- package/dist/CostReport.d.ts.map +1 -1
- package/dist/CostReport.js +103 -2
- package/dist/CostReport.js.map +1 -1
- package/dist/FlowEvents.d.ts +25 -1
- package/dist/FlowEvents.d.ts.map +1 -1
- package/dist/FlowEvents.js +25 -1
- package/dist/FlowEvents.js.map +1 -1
- package/dist/FlowRecorder.d.ts +8 -0
- package/dist/FlowRecorder.d.ts.map +1 -1
- package/dist/FlowRecorder.js +10 -3
- package/dist/FlowRecorder.js.map +1 -1
- package/dist/GateTriage.d.ts +26 -0
- package/dist/GateTriage.d.ts.map +1 -1
- package/dist/GateTriage.js +98 -5
- package/dist/GateTriage.js.map +1 -1
- package/dist/GitTool.d.ts +9 -5
- package/dist/GitTool.d.ts.map +1 -1
- package/dist/GitTool.js +44 -18
- package/dist/GitTool.js.map +1 -1
- package/dist/OperatorSchemas.d.ts +256 -0
- package/dist/OperatorSchemas.d.ts.map +1 -0
- package/dist/OperatorSchemas.js +204 -0
- package/dist/OperatorSchemas.js.map +1 -0
- package/dist/Retro.d.ts +2 -0
- package/dist/Retro.d.ts.map +1 -1
- package/dist/Retro.js +6 -0
- package/dist/Retro.js.map +1 -1
- package/dist/Review.d.ts +2 -0
- package/dist/Review.d.ts.map +1 -1
- package/dist/Review.js +17 -9
- package/dist/Review.js.map +1 -1
- package/dist/RunState.d.ts +26 -0
- package/dist/RunState.d.ts.map +1 -0
- package/dist/RunState.js +59 -0
- package/dist/RunState.js.map +1 -0
- package/dist/Stories.d.ts +30 -0
- package/dist/Stories.d.ts.map +1 -1
- package/dist/Stories.js +54 -1
- package/dist/Stories.js.map +1 -1
- package/dist/StoryPlan.d.ts +6 -0
- package/dist/StoryPlan.d.ts.map +1 -1
- package/dist/StoryPlan.js +7 -0
- package/dist/StoryPlan.js.map +1 -1
- package/dist/TestEvidence.d.ts +55 -0
- package/dist/TestEvidence.d.ts.map +1 -0
- package/dist/TestEvidence.js +90 -0
- package/dist/TestEvidence.js.map +1 -0
- package/package.json +5 -2
- package/src/Approval.ts +6 -0
- package/src/AutonomyContract.ts +10 -3
- package/src/CostReport.ts +152 -2
- package/src/FlowEvents.ts +25 -1
- package/src/FlowRecorder.ts +19 -3
- package/src/GateTriage.ts +113 -7
- package/src/GitTool.ts +46 -18
- package/src/OperatorSchemas.ts +221 -0
- package/src/Retro.ts +11 -0
- package/src/Review.ts +25 -11
- package/src/RunState.ts +72 -0
- package/src/Stories.ts +113 -3
- package/src/StoryPlan.ts +7 -0
- package/src/TestEvidence.ts +137 -0
package/dist/StoryPlan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryPlan.js","sourceRoot":"","sources":["../src/StoryPlan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StoryPlan.js","sourceRoot":"","sources":["../src/StoryPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import type { OracleRules } from "./OracleGuard.ts";
|
|
3
|
+
/** The tag tests of a criterion carry in their name: `[story-id#2]` for its second criterion. */
|
|
4
|
+
export declare const criterionTag: (storyId: string, index: number) => string;
|
|
5
|
+
/** The tags of a story's MVP criteria, in order. */
|
|
6
|
+
export declare const criterionTags: (storyId: string, acceptance: ReadonlyArray<string>) => ReadonlyArray<string>;
|
|
7
|
+
export declare const TestCaseStatus: Schema.Literals<readonly ["passed", "failed", "skipped"]>;
|
|
8
|
+
export type TestCaseStatus = typeof TestCaseStatus.Type;
|
|
9
|
+
export interface TestCase {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
readonly classname: string;
|
|
12
|
+
readonly file: string | undefined;
|
|
13
|
+
readonly status: TestCaseStatus;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The test cases of a JUnit XML report — the format vitest, jest, pytest,
|
|
17
|
+
* Surefire/Gradle and cargo-nextest all write. A case with a `<failure>` or
|
|
18
|
+
* `<error>` failed, one with `<skipped>` was skipped, any other passed.
|
|
19
|
+
*/
|
|
20
|
+
export declare const parseJUnit: (xml: string) => ReadonlyArray<TestCase>;
|
|
21
|
+
/**
|
|
22
|
+
* `missing`: no test names the criterion. `red`: one does and not all of
|
|
23
|
+
* them pass. `green`: some do and every one passes.
|
|
24
|
+
*/
|
|
25
|
+
export declare const CriterionStatus: Schema.Literals<readonly ["missing", "red", "green"]>;
|
|
26
|
+
export type CriterionStatus = typeof CriterionStatus.Type;
|
|
27
|
+
/**
|
|
28
|
+
* A criterion's status from a report. A tag the report does not show but
|
|
29
|
+
* the test sources carry (`written`) is red: a suite that cannot even load
|
|
30
|
+
* — the module under test does not exist yet — reports no case.
|
|
31
|
+
*/
|
|
32
|
+
export declare const statusFromReport: (tag: string, cases: ReadonlyArray<TestCase>, written: boolean) => CriterionStatus;
|
|
33
|
+
/**
|
|
34
|
+
* Where the evidence comes from: the JUnit report the test gate writes
|
|
35
|
+
* (`LLM4TS_TEST_REPORT`, relative to the app directory), or a command run
|
|
36
|
+
* once per criterion with `{tag}` replaced (`LLM4TS_TEST_ONE`), green when
|
|
37
|
+
* it exits 0.
|
|
38
|
+
*/
|
|
39
|
+
export type EvidenceSource = {
|
|
40
|
+
readonly _tag: "Report";
|
|
41
|
+
readonly path: string;
|
|
42
|
+
} | {
|
|
43
|
+
readonly _tag: "Command";
|
|
44
|
+
readonly argv: ReadonlyArray<string>;
|
|
45
|
+
};
|
|
46
|
+
export declare const evidenceSourceFromEnvironment: (environment: Readonly<Record<string, string | undefined>>) => EvidenceSource | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* The per-criterion command with its tag in place: `{tag}` verbatim,
|
|
49
|
+
* `{tagRegex}` escaped for runners whose name filter is a regex (vitest `-t`,
|
|
50
|
+
* jest `-t`, pytest `-k` takes neither — use `{tag}` there).
|
|
51
|
+
*/
|
|
52
|
+
export declare const commandFor: (argv: ReadonlyArray<string>, tag: string) => ReadonlyArray<string>;
|
|
53
|
+
/** The changed paths that are test files by the oracle's rules: what a red phase freezes. */
|
|
54
|
+
export declare const testPaths: (paths: ReadonlyArray<string>, rules?: OracleRules) => ReadonlyArray<string>;
|
|
55
|
+
//# sourceMappingURL=TestEvidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEvidence.d.ts","sourceRoot":"","sources":["../src/TestEvidence.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD,iGAAiG;AACjG,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG,MAAiC,CAAA;AAE/F,oDAAoD;AACpD,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,YAAY,aAAa,CAAC,MAAM,CAAC,KAChC,aAAa,CAAC,MAAM,CAAmE,CAAA;AAE1F,eAAO,MAAM,cAAc,2DAAmD,CAAA;AAC9E,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAChC;AAgBD;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,aAAa,CAAC,QAAQ,CAmB9D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,uDAA+C,CAAA;AAC3E,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAKzD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,MAAM,EACX,OAAO,aAAa,CAAC,QAAQ,CAAC,EAC9B,SAAS,OAAO,KACf,eAMF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,CAAA;AAEtE,eAAO,MAAM,6BAA6B,GACxC,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KACxD,cAAc,GAAG,SAUnB,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,KAAG,aAAa,CAAC,MAAM,CACI,CAAA;AAE9F,6FAA6F;AAC7F,eAAO,MAAM,SAAS,GACpB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,QAAO,WAAgC,KACtC,aAAa,CAAC,MAAM,CAGtB,CAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
// Per-criterion test evidence (ADR 0042): every MVP acceptance criterion is
|
|
2
|
+
// encoded by tests whose names carry its tag, `[<story-id>#<n>]`, and the
|
|
3
|
+
// criterion is green only when the test run says so — from a JUnit XML
|
|
4
|
+
// report, or from one filtered test command per criterion. Pass/fail counts
|
|
5
|
+
// alone (GateTriage, OracleGuard) cannot say WHICH criterion holds.
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import { defaultOracleRules } from "./OracleGuard.js";
|
|
8
|
+
/** The tag tests of a criterion carry in their name: `[story-id#2]` for its second criterion. */
|
|
9
|
+
export const criterionTag = (storyId, index) => `[${storyId}#${index}]`;
|
|
10
|
+
/** The tags of a story's MVP criteria, in order. */
|
|
11
|
+
export const criterionTags = (storyId, acceptance) => acceptance.map((_, index) => criterionTag(storyId, index + 1));
|
|
12
|
+
export const TestCaseStatus = Schema.Literals(["passed", "failed", "skipped"]);
|
|
13
|
+
const attribute = (attributes, name) => {
|
|
14
|
+
const match = new RegExp(`(?:^|\\s)${name}\\s*=\\s*"([^"]*)"`, "u").exec(attributes);
|
|
15
|
+
return match?.[1] === undefined ? undefined : unescapeXml(match[1]);
|
|
16
|
+
};
|
|
17
|
+
const unescapeXml = (text) => text
|
|
18
|
+
.replace(/</g, "<")
|
|
19
|
+
.replace(/>/g, ">")
|
|
20
|
+
.replace(/"/g, '"')
|
|
21
|
+
.replace(/'/g, "'")
|
|
22
|
+
.replace(/&#(\d+);/g, (_, code) => String.fromCodePoint(Number(code)))
|
|
23
|
+
.replace(/&/g, "&");
|
|
24
|
+
/**
|
|
25
|
+
* The test cases of a JUnit XML report — the format vitest, jest, pytest,
|
|
26
|
+
* Surefire/Gradle and cargo-nextest all write. A case with a `<failure>` or
|
|
27
|
+
* `<error>` failed, one with `<skipped>` was skipped, any other passed.
|
|
28
|
+
*/
|
|
29
|
+
export const parseJUnit = (xml) => {
|
|
30
|
+
const cases = [];
|
|
31
|
+
const pattern = /<testcase\b([^>]*?)(?:\/>|>([\s\S]*?)<\/testcase>)/gu;
|
|
32
|
+
for (const match of xml.matchAll(pattern)) {
|
|
33
|
+
const attributes = match[1] ?? "";
|
|
34
|
+
const body = match[2] ?? "";
|
|
35
|
+
const status = /<(?:failure|error)\b/u.test(body)
|
|
36
|
+
? "failed"
|
|
37
|
+
: /<skipped\b/u.test(body)
|
|
38
|
+
? "skipped"
|
|
39
|
+
: "passed";
|
|
40
|
+
cases.push({
|
|
41
|
+
name: attribute(attributes, "name") ?? "",
|
|
42
|
+
classname: attribute(attributes, "classname") ?? "",
|
|
43
|
+
file: attribute(attributes, "file"),
|
|
44
|
+
status
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return cases;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* `missing`: no test names the criterion. `red`: one does and not all of
|
|
51
|
+
* them pass. `green`: some do and every one passes.
|
|
52
|
+
*/
|
|
53
|
+
export const CriterionStatus = Schema.Literals(["missing", "red", "green"]);
|
|
54
|
+
const named = (testCase, tag) => testCase.name.includes(tag) || testCase.classname.includes(tag);
|
|
55
|
+
/**
|
|
56
|
+
* A criterion's status from a report. A tag the report does not show but
|
|
57
|
+
* the test sources carry (`written`) is red: a suite that cannot even load
|
|
58
|
+
* — the module under test does not exist yet — reports no case.
|
|
59
|
+
*/
|
|
60
|
+
export const statusFromReport = (tag, cases, written) => {
|
|
61
|
+
const mine = cases.filter((testCase) => named(testCase, tag));
|
|
62
|
+
if (mine.length === 0) {
|
|
63
|
+
return written ? "red" : "missing";
|
|
64
|
+
}
|
|
65
|
+
return mine.every((testCase) => testCase.status === "passed") ? "green" : "red";
|
|
66
|
+
};
|
|
67
|
+
export const evidenceSourceFromEnvironment = (environment) => {
|
|
68
|
+
const report = environment.LLM4TS_TEST_REPORT?.trim();
|
|
69
|
+
if (report !== undefined && report.length > 0) {
|
|
70
|
+
return { _tag: "Report", path: report };
|
|
71
|
+
}
|
|
72
|
+
const command = environment.LLM4TS_TEST_ONE?.trim();
|
|
73
|
+
if (command !== undefined && (command.includes("{tag}") || command.includes("{tagRegex}"))) {
|
|
74
|
+
return { _tag: "Command", argv: command.split(/\s+/u) };
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
};
|
|
78
|
+
const escapeRegex = (text) => text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
79
|
+
/**
|
|
80
|
+
* The per-criterion command with its tag in place: `{tag}` verbatim,
|
|
81
|
+
* `{tagRegex}` escaped for runners whose name filter is a regex (vitest `-t`,
|
|
82
|
+
* jest `-t`, pytest `-k` takes neither — use `{tag}` there).
|
|
83
|
+
*/
|
|
84
|
+
export const commandFor = (argv, tag) => argv.map((part) => part.split("{tagRegex}").join(escapeRegex(tag)).split("{tag}").join(tag));
|
|
85
|
+
/** The changed paths that are test files by the oracle's rules: what a red phase freezes. */
|
|
86
|
+
export const testPaths = (paths, rules = defaultOracleRules) => {
|
|
87
|
+
const pattern = new RegExp(rules.testFiles, "u");
|
|
88
|
+
return paths.filter((path) => pattern.test(path));
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=TestEvidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestEvidence.js","sourceRoot":"","sources":["../src/TestEvidence.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llm4ts/flow",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.47.0",
|
|
4
4
|
"description": "Effect-native LLM workflow, persistence, review, and repository automation",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"./Domains": "./dist/Domains.js",
|
|
39
39
|
"./EpicBrief": "./dist/EpicBrief.js",
|
|
40
40
|
"./EpicRuns": "./dist/EpicRuns.js",
|
|
41
|
+
"./OperatorSchemas": "./dist/OperatorSchemas.js",
|
|
41
42
|
"./Equiv": "./dist/Equiv.js",
|
|
42
43
|
"./EquivReport": "./dist/EquivReport.js",
|
|
43
44
|
"./EstimatedUsage": "./dist/EstimatedUsage.js",
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
"./OracleGuard": "./dist/OracleGuard.js",
|
|
72
73
|
"./Orientation": "./dist/Orientation.js",
|
|
73
74
|
"./Persistence": "./dist/Persistence.js",
|
|
75
|
+
"./RunState": "./dist/RunState.js",
|
|
74
76
|
"./Plan": "./dist/Plan.js",
|
|
75
77
|
"./PlanExecution": "./dist/PlanExecution.js",
|
|
76
78
|
"./Port": "./dist/Port.js",
|
|
@@ -93,6 +95,7 @@
|
|
|
93
95
|
"./Stories": "./dist/Stories.js",
|
|
94
96
|
"./StoryPlan": "./dist/StoryPlan.js",
|
|
95
97
|
"./Survey": "./dist/Survey.js",
|
|
98
|
+
"./TestEvidence": "./dist/TestEvidence.js",
|
|
96
99
|
"./Timing": "./dist/Timing.js",
|
|
97
100
|
"./Transcript": "./dist/Transcript.js",
|
|
98
101
|
"./TransientRetry": "./dist/TransientRetry.js",
|
|
@@ -127,7 +130,7 @@
|
|
|
127
130
|
"typescript"
|
|
128
131
|
],
|
|
129
132
|
"dependencies": {
|
|
130
|
-
"@llm4ts/core": "2.
|
|
133
|
+
"@llm4ts/core": "2.47.0"
|
|
131
134
|
},
|
|
132
135
|
"peerDependencies": {
|
|
133
136
|
"effect": "4.0.0"
|
package/src/Approval.ts
CHANGED
|
@@ -28,6 +28,12 @@ export class MissingModernizeArtifact extends Schema.TaggedError<MissingModerniz
|
|
|
28
28
|
export const ApprovedMarker = "- [x] Approved"
|
|
29
29
|
export const DraftApprovalMarker = "- [ ] Approved"
|
|
30
30
|
|
|
31
|
+
/** `- [ ] Approved` → `- [x] Approved` in a markdown document; unchanged when already approved. */
|
|
32
|
+
export const approveMarkdown = (markdown: string): string =>
|
|
33
|
+
markdown.includes(ApprovedMarker)
|
|
34
|
+
? markdown
|
|
35
|
+
: markdown.replace(DraftApprovalMarker, ApprovedMarker)
|
|
36
|
+
|
|
31
37
|
export const withDraftApproval = (markdown: string): string =>
|
|
32
38
|
`${markdown.trimEnd()}\n\n${DraftApprovalMarker}\n`
|
|
33
39
|
|
package/src/AutonomyContract.ts
CHANGED
|
@@ -17,6 +17,12 @@ const workspace = [
|
|
|
17
17
|
"files only where your instructions name them. What it expects of you is in your instructions."
|
|
18
18
|
]
|
|
19
19
|
|
|
20
|
+
const runState = [
|
|
21
|
+
"The directory `.llm4ts/` at the root of your working directory is the run's own state — traces,",
|
|
22
|
+
"plans, transcripts and costs that belong to the tool running you. Never read, modify, delete or",
|
|
23
|
+
"commit anything under it; the one exception is a path there that your instructions name as yours."
|
|
24
|
+
]
|
|
25
|
+
|
|
20
26
|
const noGaming = [
|
|
21
27
|
"Never edit, skip, delete or weaken a test to make a gate pass. A test you believe is wrong is a",
|
|
22
28
|
"finding to report, not a line to change; a pre-existing bug outside your task is a finding, not",
|
|
@@ -41,8 +47,8 @@ const evidence = [
|
|
|
41
47
|
|
|
42
48
|
/**
|
|
43
49
|
* The contract for a profile. `full` is the default; `minimal` keeps scope,
|
|
44
|
-
* the workspace rule and the no-gaming rule for a model
|
|
45
|
-
* under the full text;
|
|
50
|
+
* the workspace rule, the run-state rule and the no-gaming rule for a model
|
|
51
|
+
* that over-verifies under the full text;
|
|
46
52
|
* `off` is the empty string, for a flow that writes its own rules.
|
|
47
53
|
*/
|
|
48
54
|
export const autonomyContract = (profile: ContractProfile = "full"): string => {
|
|
@@ -50,12 +56,13 @@ export const autonomyContract = (profile: ContractProfile = "full"): string => {
|
|
|
50
56
|
case "off":
|
|
51
57
|
return ""
|
|
52
58
|
case "minimal":
|
|
53
|
-
return [...scope, ...workspace, ...noGaming].join("\n")
|
|
59
|
+
return [...scope, ...workspace, ...runState, ...noGaming].join("\n")
|
|
54
60
|
case "full":
|
|
55
61
|
return [
|
|
56
62
|
...unattended,
|
|
57
63
|
...scope,
|
|
58
64
|
...workspace,
|
|
65
|
+
...runState,
|
|
59
66
|
...minimalChange,
|
|
60
67
|
...noGaming,
|
|
61
68
|
...evidence
|
package/src/CostReport.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as DateTime from "effect/DateTime"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
2
3
|
import * as Option from "effect/Option"
|
|
3
4
|
import * as Schema from "effect/Schema"
|
|
4
5
|
import type { TokenUsage } from "@llm4ts/core/Models"
|
|
6
|
+
import type { CostRecord } from "./CostLedger.ts"
|
|
5
7
|
import { isEstimatedModel } from "./EstimatedUsage.ts"
|
|
6
8
|
import { TokensUsed, cloneName } from "./FlowEvents.ts"
|
|
7
9
|
import type { TraceLine } from "./FlowRecorder.ts"
|
|
@@ -16,10 +18,22 @@ import { estimateCostUsd, PricesAsOf } from "./PriceList.ts"
|
|
|
16
18
|
* backend's own token counts) and estimated usage (`EstimatedUsage`'s
|
|
17
19
|
* character-count fallback, labelled `estimated:<model>`) are kept in separate
|
|
18
20
|
* columns so a budget never mistakes one for the other.
|
|
21
|
+
*
|
|
22
|
+
* The trace is the source for timing, the cost ledger (`CostLedger`) for the
|
|
23
|
+
* run's total: both come from the same `TokensUsed` events, but the trace is
|
|
24
|
+
* a file in the target's working tree that a coder's shell, a `git clean`
|
|
25
|
+
* or a recorder that lost its disk can shorten, while the ledger line is
|
|
26
|
+
* written once from the run's own cost tracker, the same numbers the run
|
|
27
|
+
* printed. `reconcileWithLedger` tops a short trace up from its ledger line,
|
|
28
|
+
* so `llm4ts costs` and the run's summary agree.
|
|
19
29
|
*/
|
|
20
30
|
|
|
21
31
|
export const UnknownModel = "(unknown)"
|
|
22
32
|
|
|
33
|
+
/** Where a sample's numbers came from: a trace line, or the run's ledger line filling a short trace. */
|
|
34
|
+
export const UsageSource = Schema.Literals(["trace", "ledger"])
|
|
35
|
+
export type UsageSource = typeof UsageSource.Type
|
|
36
|
+
|
|
23
37
|
export class UsageSample extends Schema.Class<UsageSample>("UsageSample")({
|
|
24
38
|
/** Epoch milliseconds of the token report. */
|
|
25
39
|
at: Schema.Number,
|
|
@@ -34,7 +48,11 @@ export class UsageSample extends Schema.Class<UsageSample>("UsageSample")({
|
|
|
34
48
|
estimated: Schema.Boolean,
|
|
35
49
|
/** The lane's executor and clone, when the usage came from a roster lane (ADR 0033). */
|
|
36
50
|
executor: Schema.optionalKey(Schema.String),
|
|
37
|
-
clone: Schema.optionalKey(Schema.Int)
|
|
51
|
+
clone: Schema.optionalKey(Schema.Int),
|
|
52
|
+
source: UsageSource.pipe(
|
|
53
|
+
Schema.withConstructorDefault(Effect.succeed("trace" as const)),
|
|
54
|
+
Schema.withDecodingDefaultKey(Effect.succeed("trace" as const))
|
|
55
|
+
)
|
|
38
56
|
}) {}
|
|
39
57
|
|
|
40
58
|
export class UsageTotals extends Schema.Class<UsageTotals>("UsageTotals")({
|
|
@@ -173,7 +191,8 @@ const totalsOf = (samples: ReadonlyArray<UsageSample>): UsageTotals => {
|
|
|
173
191
|
const cached = sumOptional(samples.map((sample) => sample.cached))
|
|
174
192
|
const costUsd = sumOptional(samples.map((sample) => sample.costUsd))
|
|
175
193
|
return UsageTotals.make({
|
|
176
|
-
|
|
194
|
+
// A ledger sample is a remainder, not a call the trace saw.
|
|
195
|
+
requests: samples.filter((sample) => sample.source === "trace").length,
|
|
177
196
|
prompt: samples.reduce((sum, sample) => sum + sample.prompt, 0),
|
|
178
197
|
completion: samples.reduce((sum, sample) => sum + sample.completion, 0),
|
|
179
198
|
total: samples.reduce((sum, sample) => sum + sample.total, 0),
|
|
@@ -182,6 +201,137 @@ const totalsOf = (samples: ReadonlyArray<UsageSample>): UsageTotals => {
|
|
|
182
201
|
})
|
|
183
202
|
}
|
|
184
203
|
|
|
204
|
+
interface UsageSums {
|
|
205
|
+
prompt: number
|
|
206
|
+
completion: number
|
|
207
|
+
total: number
|
|
208
|
+
cached: number | undefined
|
|
209
|
+
costUsd: number | undefined
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
const emptySums = (): UsageSums => ({
|
|
213
|
+
prompt: 0,
|
|
214
|
+
completion: 0,
|
|
215
|
+
total: 0,
|
|
216
|
+
cached: undefined,
|
|
217
|
+
costUsd: undefined
|
|
218
|
+
})
|
|
219
|
+
|
|
220
|
+
const addSums = (into: UsageSums, usage: UsageSums): UsageSums => ({
|
|
221
|
+
prompt: into.prompt + usage.prompt,
|
|
222
|
+
completion: into.completion + usage.completion,
|
|
223
|
+
total: into.total + usage.total,
|
|
224
|
+
cached: sumOptional([into.cached, usage.cached]),
|
|
225
|
+
costUsd: sumOptional([into.costUsd, usage.costUsd])
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
const positive = (value: number): number => (value > 0 ? value : 0)
|
|
229
|
+
|
|
230
|
+
/** What `b` has beyond `a`, per field, never below zero. */
|
|
231
|
+
const remainderOf = (ledger: UsageSums, trace: UsageSums): UsageSums => ({
|
|
232
|
+
prompt: positive(ledger.prompt - trace.prompt),
|
|
233
|
+
completion: positive(ledger.completion - trace.completion),
|
|
234
|
+
total: positive(ledger.total - trace.total),
|
|
235
|
+
cached: ledger.cached === undefined ? undefined : positive(ledger.cached - (trace.cached ?? 0)),
|
|
236
|
+
costUsd:
|
|
237
|
+
ledger.costUsd === undefined ? undefined : positive(ledger.costUsd - (trace.costUsd ?? 0))
|
|
238
|
+
})
|
|
239
|
+
|
|
240
|
+
const hasRemainder = (sums: UsageSums): boolean =>
|
|
241
|
+
sums.prompt > 0 ||
|
|
242
|
+
sums.completion > 0 ||
|
|
243
|
+
sums.total > 0 ||
|
|
244
|
+
(sums.cached ?? 0) > 0 ||
|
|
245
|
+
(sums.costUsd ?? 0) > 1e-9
|
|
246
|
+
|
|
247
|
+
interface UsageRow {
|
|
248
|
+
readonly agent: string
|
|
249
|
+
readonly model: string
|
|
250
|
+
readonly prompt: number
|
|
251
|
+
readonly completion: number
|
|
252
|
+
readonly total: number
|
|
253
|
+
readonly cached?: number
|
|
254
|
+
readonly costUsd?: number
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/** A run's sums per agent and model, from its trace samples or its ledger cells. */
|
|
258
|
+
const sumsByAgentModel = (
|
|
259
|
+
rows: ReadonlyArray<UsageRow>
|
|
260
|
+
): ReadonlyMap<
|
|
261
|
+
string,
|
|
262
|
+
{ readonly agent: string; readonly model: string; readonly sums: UsageSums }
|
|
263
|
+
> => {
|
|
264
|
+
const groups = new Map<string, { agent: string; model: string; sums: UsageSums }>()
|
|
265
|
+
for (const row of rows) {
|
|
266
|
+
const key = JSON.stringify([row.agent, row.model])
|
|
267
|
+
const group = groups.get(key) ?? { agent: row.agent, model: row.model, sums: emptySums() }
|
|
268
|
+
groups.set(key, {
|
|
269
|
+
...group,
|
|
270
|
+
sums: addSums(group.sums, {
|
|
271
|
+
prompt: row.prompt,
|
|
272
|
+
completion: row.completion,
|
|
273
|
+
total: row.total,
|
|
274
|
+
cached: row.cached,
|
|
275
|
+
costUsd: row.costUsd
|
|
276
|
+
})
|
|
277
|
+
})
|
|
278
|
+
}
|
|
279
|
+
return groups
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
export interface LedgerReconciliation {
|
|
283
|
+
readonly samples: ReadonlyArray<UsageSample>
|
|
284
|
+
/** Runs whose ledger line carried usage the trace did not: filled, in ledger order. */
|
|
285
|
+
readonly filledRuns: ReadonlyArray<string>
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Tops the trace's samples up from the ledger: for every ledger record, what
|
|
290
|
+
* its cells hold beyond the trace's samples of that run, per agent and
|
|
291
|
+
* model, becomes one `ledger` sample at the run's start (the only time the
|
|
292
|
+
* ledger knows). A run with no trace at all is taken wholly from its line;
|
|
293
|
+
* a run whose trace matches its line adds nothing. The result's total
|
|
294
|
+
* therefore equals the ledger's, which is what the run itself printed.
|
|
295
|
+
*/
|
|
296
|
+
export const reconcileWithLedger = (
|
|
297
|
+
samples: ReadonlyArray<UsageSample>,
|
|
298
|
+
records: ReadonlyArray<CostRecord>
|
|
299
|
+
): LedgerReconciliation => {
|
|
300
|
+
const filled: Array<UsageSample> = []
|
|
301
|
+
const filledRuns: Array<string> = []
|
|
302
|
+
for (const record of records) {
|
|
303
|
+
const traced = sumsByAgentModel(samples.filter((sample) => sample.runId === record.runId))
|
|
304
|
+
const ledgered = sumsByAgentModel(record.cells)
|
|
305
|
+
let filledThisRun = false
|
|
306
|
+
for (const [key, { agent, model, sums }] of ledgered) {
|
|
307
|
+
const remainder = remainderOf(sums, traced.get(key)?.sums ?? emptySums())
|
|
308
|
+
if (!hasRemainder(remainder)) {
|
|
309
|
+
continue
|
|
310
|
+
}
|
|
311
|
+
filledThisRun = true
|
|
312
|
+
filled.push(
|
|
313
|
+
UsageSample.make({
|
|
314
|
+
at: Date.parse(record.at),
|
|
315
|
+
runId: record.runId,
|
|
316
|
+
agent,
|
|
317
|
+
model,
|
|
318
|
+
prompt: remainder.prompt,
|
|
319
|
+
completion: remainder.completion,
|
|
320
|
+
total: remainder.total,
|
|
321
|
+
...(remainder.cached === undefined ? {} : { cached: remainder.cached }),
|
|
322
|
+
...(remainder.costUsd === undefined ? {} : { costUsd: remainder.costUsd }),
|
|
323
|
+
estimated: isEstimatedModel(model),
|
|
324
|
+
source: "ledger"
|
|
325
|
+
})
|
|
326
|
+
)
|
|
327
|
+
}
|
|
328
|
+
if (filledThisRun) {
|
|
329
|
+
filledRuns.push(record.runId)
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return { samples: [...samples, ...filled], filledRuns }
|
|
333
|
+
}
|
|
334
|
+
|
|
185
335
|
const distinctRuns = (samples: ReadonlyArray<UsageSample>): number =>
|
|
186
336
|
new Set(samples.map((sample) => sample.runId)).size
|
|
187
337
|
|
package/src/FlowEvents.ts
CHANGED
|
@@ -312,6 +312,28 @@ export class TaskCompleted extends Schema.TaggedClass<TaskCompleted>()("TaskComp
|
|
|
312
312
|
executor: Schema.optionalKey(Schema.String)
|
|
313
313
|
}) {}
|
|
314
314
|
|
|
315
|
+
/**
|
|
316
|
+
* An MVP acceptance criterion's test evidence (ADR 0042): `red` after the
|
|
317
|
+
* story's red phase proved its tests fail, `green` once they all pass.
|
|
318
|
+
*/
|
|
319
|
+
export class CriterionChecked extends Schema.TaggedClass<CriterionChecked>()("CriterionChecked", {
|
|
320
|
+
story: Schema.String,
|
|
321
|
+
/** The criterion's tag, `[story-id#n]`. */
|
|
322
|
+
tag: Schema.String,
|
|
323
|
+
status: Schema.Literals(["missing", "red", "green"]),
|
|
324
|
+
lane: Schema.optionalKey(Schema.String)
|
|
325
|
+
}) {}
|
|
326
|
+
|
|
327
|
+
/** An outcome left for a later iteration, with why (ADR 0042): written to `parked.md`. */
|
|
328
|
+
export class Parked extends Schema.TaggedClass<Parked>()("Parked", {
|
|
329
|
+
story: Schema.String,
|
|
330
|
+
item: Schema.String,
|
|
331
|
+
reason: Schema.String,
|
|
332
|
+
/** It was part of the MVP: the run cannot call the MVP reached. */
|
|
333
|
+
mvp: Schema.Boolean,
|
|
334
|
+
lane: Schema.optionalKey(Schema.String)
|
|
335
|
+
}) {}
|
|
336
|
+
|
|
315
337
|
/** A story moved on the epic's board (ADR 0033); the statuses are `BoardSync`'s. */
|
|
316
338
|
export class StoryStatusChanged extends Schema.TaggedClass<StoryStatusChanged>()(
|
|
317
339
|
"StoryStatusChanged",
|
|
@@ -458,7 +480,9 @@ export const FlowEvent = Schema.Union([
|
|
|
458
480
|
TasksPlanned,
|
|
459
481
|
TaskStarted,
|
|
460
482
|
TaskCompleted,
|
|
461
|
-
StoryStatusChanged
|
|
483
|
+
StoryStatusChanged,
|
|
484
|
+
CriterionChecked,
|
|
485
|
+
Parked
|
|
462
486
|
])
|
|
463
487
|
export type FlowEvent = typeof FlowEvent.Type
|
|
464
488
|
|
package/src/FlowRecorder.ts
CHANGED
|
@@ -24,9 +24,18 @@ export class TraceLine extends Schema.Class<TraceLine>("TraceLine")({
|
|
|
24
24
|
export const RunOutcome = Schema.Literals(["completed", "failed", "interrupted"])
|
|
25
25
|
export type RunOutcome = typeof RunOutcome.Type
|
|
26
26
|
|
|
27
|
+
/** Lines the recorder could not write: the trace is short by this much, from the first failure on. */
|
|
28
|
+
export interface TraceShortfall {
|
|
29
|
+
readonly lines: number
|
|
30
|
+
/** The first write failure, as the file store described it. */
|
|
31
|
+
readonly reason: string
|
|
32
|
+
}
|
|
33
|
+
|
|
27
34
|
export interface FlowRecorderShape extends StreamRecorder {
|
|
28
35
|
readonly runId: string
|
|
29
36
|
readonly tracePath: string
|
|
37
|
+
/** What the trace is missing, once a write failed; `undefined` while every line landed. */
|
|
38
|
+
readonly shortfall: Effect.Effect<TraceShortfall | undefined>
|
|
30
39
|
readonly record: (event: FlowEvent) => Effect.Effect<void>
|
|
31
40
|
readonly consume: (hub: FlowEventHub) => Effect.Effect<void, never, Scope.Scope>
|
|
32
41
|
/** Appends the `RunEnded` line: a reader knows the run is over, not stalled. */
|
|
@@ -53,12 +62,18 @@ export const makeFlowRecorder = Effect.fn("@llm4ts/flow/FlowRecorder.make")(func
|
|
|
53
62
|
const sequence = yield* Ref.make(0)
|
|
54
63
|
const consumed = yield* Ref.make(0)
|
|
55
64
|
const lock = yield* Semaphore.make(1)
|
|
56
|
-
|
|
65
|
+
// Set by the first failed write and never cleared: a disk that refused one
|
|
66
|
+
// line is not asked again, but every line it then loses is counted, so
|
|
67
|
+
// the run can say how short its trace is (`llm4ts costs` reads the
|
|
68
|
+
// ledger for the rest).
|
|
69
|
+
const degraded = yield* Ref.make<TraceShortfall | undefined>(undefined)
|
|
57
70
|
|
|
58
71
|
const append = (kind: string, fields: Readonly<Record<string, JsonValue>>): Effect.Effect<void> =>
|
|
59
72
|
lock.withPermit(
|
|
60
73
|
Effect.gen(function* () {
|
|
61
|
-
|
|
74
|
+
const shortfall = yield* Ref.get(degraded)
|
|
75
|
+
if (shortfall !== undefined) {
|
|
76
|
+
yield* Ref.set(degraded, { ...shortfall, lines: shortfall.lines + 1 })
|
|
62
77
|
return
|
|
63
78
|
}
|
|
64
79
|
const seq = yield* Ref.getAndUpdate(sequence, (current) => current + 1)
|
|
@@ -73,7 +88,7 @@ export const makeFlowRecorder = Effect.fn("@llm4ts/flow/FlowRecorder.make")(func
|
|
|
73
88
|
})
|
|
74
89
|
yield* files
|
|
75
90
|
.append(tracePath, `${encode(line)}\n`)
|
|
76
|
-
.pipe(Effect.catch(() => Ref.set(degraded,
|
|
91
|
+
.pipe(Effect.catch((error) => Ref.set(degraded, { lines: 1, reason: error.message })))
|
|
77
92
|
})
|
|
78
93
|
)
|
|
79
94
|
|
|
@@ -83,6 +98,7 @@ export const makeFlowRecorder = Effect.fn("@llm4ts/flow/FlowRecorder.make")(func
|
|
|
83
98
|
const recorder: FlowRecorderShape = {
|
|
84
99
|
runId,
|
|
85
100
|
tracePath,
|
|
101
|
+
shortfall: Ref.get(degraded),
|
|
86
102
|
record,
|
|
87
103
|
rawLine: (provider, model, line) =>
|
|
88
104
|
append("RawLine", {
|