@llm4ts/flow 2.4.2 → 2.6.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/Classified.d.ts +2 -0
- package/dist/Classified.d.ts.map +1 -1
- package/dist/Classified.js +4 -0
- package/dist/Classified.js.map +1 -1
- package/dist/CostReport.d.ts +110 -0
- package/dist/CostReport.d.ts.map +1 -0
- package/dist/CostReport.js +313 -0
- package/dist/CostReport.js.map +1 -0
- package/dist/EstimatedUsage.d.ts.map +1 -1
- package/dist/EstimatedUsage.js +4 -0
- package/dist/EstimatedUsage.js.map +1 -1
- package/dist/Flow.d.ts +14 -0
- package/dist/Flow.d.ts.map +1 -1
- package/dist/Flow.js +45 -2
- package/dist/Flow.js.map +1 -1
- package/dist/FlowContext.d.ts +7 -0
- package/dist/FlowContext.d.ts.map +1 -1
- package/dist/FlowContext.js.map +1 -1
- package/dist/FlowEvents.d.ts +44 -1
- package/dist/FlowEvents.d.ts.map +1 -1
- package/dist/FlowEvents.js +35 -0
- package/dist/FlowEvents.js.map +1 -1
- package/dist/GitTool.d.ts +7 -0
- package/dist/GitTool.d.ts.map +1 -1
- package/dist/GitTool.js +15 -1
- package/dist/GitTool.js.map +1 -1
- package/dist/Judgment.d.ts +88 -0
- package/dist/Judgment.d.ts.map +1 -0
- package/dist/Judgment.js +281 -0
- package/dist/Judgment.js.map +1 -0
- package/dist/JudgmentDataset.d.ts +79 -0
- package/dist/JudgmentDataset.d.ts.map +1 -0
- package/dist/JudgmentDataset.js +164 -0
- package/dist/JudgmentDataset.js.map +1 -0
- package/dist/JudgmentEval.d.ts +143 -0
- package/dist/JudgmentEval.d.ts.map +1 -0
- package/dist/JudgmentEval.js +242 -0
- package/dist/JudgmentEval.js.map +1 -0
- package/dist/JudgmentLog.d.ts +46 -0
- package/dist/JudgmentLog.d.ts.map +1 -0
- package/dist/JudgmentLog.js +62 -0
- package/dist/JudgmentLog.js.map +1 -0
- package/dist/JudgmentTypes.d.ts +13 -0
- package/dist/JudgmentTypes.d.ts.map +1 -0
- package/dist/JudgmentTypes.js +11 -0
- package/dist/JudgmentTypes.js.map +1 -0
- package/dist/ProgramJudge.d.ts +15 -2
- package/dist/ProgramJudge.d.ts.map +1 -1
- package/dist/ProgramJudge.js +58 -3
- package/dist/ProgramJudge.js.map +1 -1
- package/dist/Replay.d.ts.map +1 -1
- package/dist/Replay.js +9 -4
- package/dist/Replay.js.map +1 -1
- package/dist/Review.d.ts +35 -0
- package/dist/Review.d.ts.map +1 -1
- package/dist/Review.js +92 -13
- package/dist/Review.js.map +1 -1
- package/dist/Reviewer.d.ts +8 -0
- package/dist/Reviewer.d.ts.map +1 -1
- package/dist/Reviewer.js +12 -1
- package/dist/Reviewer.js.map +1 -1
- package/dist/TransientRetry.d.ts.map +1 -1
- package/dist/TransientRetry.js +1 -0
- package/dist/TransientRetry.js.map +1 -1
- package/package.json +8 -3
- package/src/Classified.ts +5 -0
- package/src/CostReport.ts +402 -0
- package/src/EstimatedUsage.ts +15 -0
- package/src/Flow.ts +77 -2
- package/src/FlowContext.ts +7 -0
- package/src/FlowEvents.ts +42 -0
- package/src/GitTool.ts +19 -1
- package/src/Judgment.ts +418 -0
- package/src/JudgmentDataset.ts +254 -0
- package/src/JudgmentEval.ts +306 -0
- package/src/JudgmentLog.ts +96 -0
- package/src/JudgmentTypes.ts +15 -0
- package/src/ProgramJudge.ts +89 -4
- package/src/Replay.ts +23 -17
- package/src/Review.ts +163 -13
- package/src/Reviewer.ts +15 -1
- package/src/TransientRetry.ts +1 -0
package/dist/Classified.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export declare class Classified<A> {
|
|
|
9
9
|
static of<A>(value: A): Classified<A>;
|
|
10
10
|
map<B>(transform: (value: A) => B): Classified<B>;
|
|
11
11
|
declassify(label: string): Effect.Effect<A, FlowCapabilityDenied, FlowEvents>;
|
|
12
|
+
/** JSON boundaries must use the same sealed representation as text boundaries. */
|
|
13
|
+
toJSON(): string;
|
|
12
14
|
toString(): string;
|
|
13
15
|
}
|
|
14
16
|
//# sourceMappingURL=Classified.d.ts.map
|
package/dist/Classified.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classified.d.ts","sourceRoot":"","sources":["../src/Classified.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAgB,KAAK,UAAU,EAAyB,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAA0C,MAAM,iBAAiB,CAAA;AAiBpF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,YAAY,UAAU,EACtB,WAAW,MAAM,EACjB,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,UAAU,CAgBxD,CAAA;AAEJ,qBAAa,UAAU,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO;IAEP,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIrC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIjD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,oBAAoB,EAAE,UAAU,CAAC;IAU7E,QAAQ,IAAI,MAAM;CAGnB"}
|
|
1
|
+
{"version":3,"file":"Classified.d.ts","sourceRoot":"","sources":["../src/Classified.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAgB,KAAK,UAAU,EAAyB,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAA0C,MAAM,iBAAiB,CAAA;AAiBpF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,YAAY,UAAU,EACtB,WAAW,MAAM,EACjB,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,UAAU,CAgBxD,CAAA;AAEJ,qBAAa,UAAU,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO;IAEP,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIrC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIjD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,oBAAoB,EAAE,UAAU,CAAC;IAU7E,kFAAkF;IAClF,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;CAGnB"}
|
package/dist/Classified.js
CHANGED
|
@@ -41,6 +41,10 @@ export class Classified {
|
|
|
41
41
|
declassify(label) {
|
|
42
42
|
return guarded(Capabilities.Declassify, `declassify ${label}`, Effect.flatMap(FlowEvents, (events) => Effect.as(events.publish(FlowEventsValues.Declassified(label)), this.value)));
|
|
43
43
|
}
|
|
44
|
+
/** JSON boundaries must use the same sealed representation as text boundaries. */
|
|
45
|
+
toJSON() {
|
|
46
|
+
return this.toString();
|
|
47
|
+
}
|
|
44
48
|
toString() {
|
|
45
49
|
return "Classified(…)";
|
|
46
50
|
}
|
package/dist/Classified.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classified.js","sourceRoot":"","sources":["../src/Classified.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAmB,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAA;AAEpF,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAU,EAAE,CACxD,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAA;AAE9E,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAW,EAAE;IACzD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,IAAI,CAAA;QACb;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,UAAsB,EACtB,SAAiB,EACjB,IAA4B,EACgC,EAAE,CAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAoB,KAAK,CAAC,CAAC,UAAU,CAAA;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,CAAA;IACnC,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;IAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;QACzE,OAAO,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,IAAI,CAAA;AACpB,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,UAAU;IACgB;IAArC,YAAqC,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAEjD,MAAM,CAAC,EAAE,CAAI,KAAQ;QACnB,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,GAAG,CAAI,SAA0B;QAC/B,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,OAAO,CACZ,YAAY,CAAC,UAAU,EACvB,cAAc,KAAK,EAAE,EACrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAC5E,CACF,CAAA;IACH,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAA;IACxB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"Classified.js","sourceRoot":"","sources":["../src/Classified.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAmB,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAA;AAEpF,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAU,EAAE,CACxD,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAA;AAE9E,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAW,EAAE;IACzD,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,IAAI,CAAA;QACb;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,UAAsB,EACtB,SAAiB,EACjB,IAA4B,EACgC,EAAE,CAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAoB,KAAK,CAAC,CAAC,UAAU,CAAA;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,aAAa,CAAA;IACnC,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;IAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;QACzE,OAAO,KAAK,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,IAAI,CAAA;AACpB,CAAC,CAAC,CAAA;AAEJ,MAAM,OAAO,UAAU;IACgB;IAArC,YAAqC,KAAQ;QAAR,UAAK,GAAL,KAAK,CAAG;IAAG,CAAC;IAEjD,MAAM,CAAC,EAAE,CAAI,KAAQ;QACnB,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,GAAG,CAAI,SAA0B;QAC/B,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,OAAO,CACZ,YAAY,CAAC,UAAU,EACvB,cAAc,KAAK,EAAE,EACrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAC5E,CACF,CAAA;IACH,CAAC;IAED,kFAAkF;IAClF,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAA;IACxB,CAAC;CACF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import * as DateTime from "effect/DateTime";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import type { TraceLine } from "./FlowRecorder.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Cross-run usage report for budgeting.
|
|
6
|
+
*
|
|
7
|
+
* A run's cost summary (`CostTracker`) answers "what did this run cost"; this
|
|
8
|
+
* module answers "what do my runs cost per day, per hour, and per run" from
|
|
9
|
+
* the `TokensUsed` lines every trace already records. Measured usage (a
|
|
10
|
+
* backend's own token counts) and estimated usage (`EstimatedUsage`'s
|
|
11
|
+
* character-count fallback, labelled `estimated:<model>`) are kept in separate
|
|
12
|
+
* columns so a budget never mistakes one for the other.
|
|
13
|
+
*/
|
|
14
|
+
export declare const UnknownModel = "(unknown)";
|
|
15
|
+
declare const UsageSample_base: Schema.Class<UsageSample, Schema.Struct<{
|
|
16
|
+
/** Epoch milliseconds of the token report. */
|
|
17
|
+
readonly at: Schema.Number;
|
|
18
|
+
readonly runId: Schema.String;
|
|
19
|
+
readonly agent: Schema.String;
|
|
20
|
+
readonly model: Schema.String;
|
|
21
|
+
readonly prompt: Schema.Int;
|
|
22
|
+
readonly completion: Schema.Int;
|
|
23
|
+
readonly total: Schema.Int;
|
|
24
|
+
readonly cached: Schema.optionalKey<Schema.Int>;
|
|
25
|
+
readonly costUsd: Schema.optionalKey<Schema.Number>;
|
|
26
|
+
readonly estimated: Schema.Boolean;
|
|
27
|
+
}>, {}>;
|
|
28
|
+
export declare class UsageSample extends UsageSample_base {
|
|
29
|
+
}
|
|
30
|
+
declare const UsageTotals_base: Schema.Class<UsageTotals, Schema.Struct<{
|
|
31
|
+
readonly requests: Schema.Int;
|
|
32
|
+
readonly prompt: Schema.Int;
|
|
33
|
+
readonly completion: Schema.Int;
|
|
34
|
+
readonly total: Schema.Int;
|
|
35
|
+
readonly cached: Schema.optionalKey<Schema.Int>;
|
|
36
|
+
readonly costUsd: Schema.optionalKey<Schema.Number>;
|
|
37
|
+
}>, {}>;
|
|
38
|
+
export declare class UsageTotals extends UsageTotals_base {
|
|
39
|
+
}
|
|
40
|
+
declare const UsageBucket_base: Schema.Class<UsageBucket, Schema.Struct<{
|
|
41
|
+
/** `YYYY-MM-DD` for a day, `YYYY-MM-DD HH:00` for an hour, in the report's zone. */
|
|
42
|
+
readonly key: Schema.String;
|
|
43
|
+
readonly runs: Schema.Int;
|
|
44
|
+
readonly measured: typeof UsageTotals;
|
|
45
|
+
readonly estimated: typeof UsageTotals;
|
|
46
|
+
}>, {}>;
|
|
47
|
+
export declare class UsageBucket extends UsageBucket_base {
|
|
48
|
+
}
|
|
49
|
+
declare const ModelUsage_base: Schema.Class<ModelUsage, Schema.Struct<{
|
|
50
|
+
readonly model: Schema.String;
|
|
51
|
+
readonly estimated: Schema.Boolean;
|
|
52
|
+
readonly totals: typeof UsageTotals;
|
|
53
|
+
}>, {}>;
|
|
54
|
+
export declare class ModelUsage extends ModelUsage_base {
|
|
55
|
+
}
|
|
56
|
+
declare const UsageAverages_base: Schema.Class<UsageAverages, Schema.Struct<{
|
|
57
|
+
readonly activeDays: Schema.Int;
|
|
58
|
+
readonly calendarDays: Schema.Int;
|
|
59
|
+
readonly activeHours: Schema.Int;
|
|
60
|
+
readonly tokensPerActiveDay: Schema.Int;
|
|
61
|
+
readonly tokensPerCalendarDay: Schema.Int;
|
|
62
|
+
readonly tokensPerActiveHour: Schema.Int;
|
|
63
|
+
readonly tokensPerRun: Schema.Int;
|
|
64
|
+
readonly costUsdPerActiveDay: Schema.optionalKey<Schema.Number>;
|
|
65
|
+
readonly costUsdPerCalendarDay: Schema.optionalKey<Schema.Number>;
|
|
66
|
+
readonly costUsdPerActiveHour: Schema.optionalKey<Schema.Number>;
|
|
67
|
+
readonly costUsdPerRun: Schema.optionalKey<Schema.Number>;
|
|
68
|
+
readonly peakDay: Schema.optionalKey<Schema.String>;
|
|
69
|
+
readonly peakHour: Schema.optionalKey<Schema.String>;
|
|
70
|
+
}>, {}>;
|
|
71
|
+
export declare class UsageAverages extends UsageAverages_base {
|
|
72
|
+
}
|
|
73
|
+
declare const UsageProjection_base: Schema.Class<UsageProjection, Schema.Struct<{
|
|
74
|
+
readonly runsPerDay: Schema.Number;
|
|
75
|
+
readonly tokensPerDay: Schema.Int;
|
|
76
|
+
readonly costUsdPerDay: Schema.optionalKey<Schema.Number>;
|
|
77
|
+
}>, {}>;
|
|
78
|
+
export declare class UsageProjection extends UsageProjection_base {
|
|
79
|
+
}
|
|
80
|
+
declare const CostReport_base: Schema.Class<CostReport, Schema.Struct<{
|
|
81
|
+
readonly schemaVersion: Schema.Int;
|
|
82
|
+
readonly timeZone: Schema.String;
|
|
83
|
+
readonly pricesAsOf: Schema.String;
|
|
84
|
+
readonly from: Schema.optionalKey<Schema.String>;
|
|
85
|
+
readonly to: Schema.optionalKey<Schema.String>;
|
|
86
|
+
readonly runs: Schema.Int;
|
|
87
|
+
readonly requests: Schema.Int;
|
|
88
|
+
readonly measured: typeof UsageTotals;
|
|
89
|
+
readonly estimated: typeof UsageTotals;
|
|
90
|
+
readonly averages: typeof UsageAverages;
|
|
91
|
+
readonly projection: Schema.optionalKey<typeof UsageProjection>;
|
|
92
|
+
readonly byDay: Schema.$Array<typeof UsageBucket>;
|
|
93
|
+
readonly byHour: Schema.$Array<typeof UsageBucket>;
|
|
94
|
+
readonly byModel: Schema.$Array<typeof ModelUsage>;
|
|
95
|
+
}>, {}>;
|
|
96
|
+
export declare class CostReport extends CostReport_base {
|
|
97
|
+
}
|
|
98
|
+
export declare const CurrentCostReportSchema = 1;
|
|
99
|
+
/** The token reports of one trace, in trace order; malformed lines are skipped. */
|
|
100
|
+
export declare const usageSamplesFromTrace: (lines: ReadonlyArray<TraceLine>) => ReadonlyArray<UsageSample>;
|
|
101
|
+
export interface CostReportOptions {
|
|
102
|
+
/** Zone the day and hour buckets are cut in. Default UTC. */
|
|
103
|
+
readonly timeZone?: DateTime.TimeZone;
|
|
104
|
+
/** Assumed daily run count for the projection line; none when absent. */
|
|
105
|
+
readonly runsPerDay?: number;
|
|
106
|
+
}
|
|
107
|
+
export declare const buildCostReport: (samples: ReadonlyArray<UsageSample>, options?: CostReportOptions) => CostReport;
|
|
108
|
+
export declare const renderCostReport: (report: CostReport) => string;
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=CostReport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CostReport.d.ts","sourceRoot":"","sources":["../src/CostReport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD;;;;;;;;;GASG;AAEH,eAAO,MAAM,YAAY,cAAc,CAAA;;IAGrC,8CAA8C;;;;;;;;;;;;AADhD,qBAAa,WAAY,SAAQ,gBAY/B;CAAG;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAO/B;CAAG;;IAGH,oFAAoF;;;;;;AADtF,qBAAa,WAAY,SAAQ,gBAM/B;CAAG;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAI9B;CAAG;;;;;;;;;;;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAcjC;CAAG;;;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAInC;CAAG;;;;;;;;;;;;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAe9B;CAAG;AAEL,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAUxC,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,GAChC,OAAO,aAAa,CAAC,SAAS,CAAC,KAC9B,aAAa,CAAC,WAAW,CA8BxB,CAAA;AA8FJ,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACrC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,eAAe,GAC1B,SAAS,aAAa,CAAC,WAAW,CAAC,EACnC,UAAS,iBAAsB,KAC9B,UAgFF,CAAA;AAqBD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,UAAU,KAAG,MAuDrD,CAAA"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import * as DateTime from "effect/DateTime";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
import { isEstimatedModel } from "./EstimatedUsage.js";
|
|
5
|
+
import { TokensUsed } from "./FlowEvents.js";
|
|
6
|
+
import { estimateCostUsd, PricesAsOf } from "./PriceList.js";
|
|
7
|
+
/**
|
|
8
|
+
* Cross-run usage report for budgeting.
|
|
9
|
+
*
|
|
10
|
+
* A run's cost summary (`CostTracker`) answers "what did this run cost"; this
|
|
11
|
+
* module answers "what do my runs cost per day, per hour, and per run" from
|
|
12
|
+
* the `TokensUsed` lines every trace already records. Measured usage (a
|
|
13
|
+
* backend's own token counts) and estimated usage (`EstimatedUsage`'s
|
|
14
|
+
* character-count fallback, labelled `estimated:<model>`) are kept in separate
|
|
15
|
+
* columns so a budget never mistakes one for the other.
|
|
16
|
+
*/
|
|
17
|
+
export const UnknownModel = "(unknown)";
|
|
18
|
+
export class UsageSample extends Schema.Class("UsageSample")({
|
|
19
|
+
/** Epoch milliseconds of the token report. */
|
|
20
|
+
at: Schema.Number,
|
|
21
|
+
runId: Schema.String,
|
|
22
|
+
agent: Schema.String,
|
|
23
|
+
model: Schema.String,
|
|
24
|
+
prompt: Schema.Int,
|
|
25
|
+
completion: Schema.Int,
|
|
26
|
+
total: Schema.Int,
|
|
27
|
+
cached: Schema.optionalKey(Schema.Int),
|
|
28
|
+
costUsd: Schema.optionalKey(Schema.Number),
|
|
29
|
+
estimated: Schema.Boolean
|
|
30
|
+
}) {
|
|
31
|
+
}
|
|
32
|
+
export class UsageTotals extends Schema.Class("UsageTotals")({
|
|
33
|
+
requests: Schema.Int,
|
|
34
|
+
prompt: Schema.Int,
|
|
35
|
+
completion: Schema.Int,
|
|
36
|
+
total: Schema.Int,
|
|
37
|
+
cached: Schema.optionalKey(Schema.Int),
|
|
38
|
+
costUsd: Schema.optionalKey(Schema.Number)
|
|
39
|
+
}) {
|
|
40
|
+
}
|
|
41
|
+
export class UsageBucket extends Schema.Class("UsageBucket")({
|
|
42
|
+
/** `YYYY-MM-DD` for a day, `YYYY-MM-DD HH:00` for an hour, in the report's zone. */
|
|
43
|
+
key: Schema.String,
|
|
44
|
+
runs: Schema.Int,
|
|
45
|
+
measured: UsageTotals,
|
|
46
|
+
estimated: UsageTotals
|
|
47
|
+
}) {
|
|
48
|
+
}
|
|
49
|
+
export class ModelUsage extends Schema.Class("ModelUsage")({
|
|
50
|
+
model: Schema.String,
|
|
51
|
+
estimated: Schema.Boolean,
|
|
52
|
+
totals: UsageTotals
|
|
53
|
+
}) {
|
|
54
|
+
}
|
|
55
|
+
export class UsageAverages extends Schema.Class("UsageAverages")({
|
|
56
|
+
activeDays: Schema.Int,
|
|
57
|
+
calendarDays: Schema.Int,
|
|
58
|
+
activeHours: Schema.Int,
|
|
59
|
+
tokensPerActiveDay: Schema.Int,
|
|
60
|
+
tokensPerCalendarDay: Schema.Int,
|
|
61
|
+
tokensPerActiveHour: Schema.Int,
|
|
62
|
+
tokensPerRun: Schema.Int,
|
|
63
|
+
costUsdPerActiveDay: Schema.optionalKey(Schema.Number),
|
|
64
|
+
costUsdPerCalendarDay: Schema.optionalKey(Schema.Number),
|
|
65
|
+
costUsdPerActiveHour: Schema.optionalKey(Schema.Number),
|
|
66
|
+
costUsdPerRun: Schema.optionalKey(Schema.Number),
|
|
67
|
+
peakDay: Schema.optionalKey(Schema.String),
|
|
68
|
+
peakHour: Schema.optionalKey(Schema.String)
|
|
69
|
+
}) {
|
|
70
|
+
}
|
|
71
|
+
export class UsageProjection extends Schema.Class("UsageProjection")({
|
|
72
|
+
runsPerDay: Schema.Number,
|
|
73
|
+
tokensPerDay: Schema.Int,
|
|
74
|
+
costUsdPerDay: Schema.optionalKey(Schema.Number)
|
|
75
|
+
}) {
|
|
76
|
+
}
|
|
77
|
+
export class CostReport extends Schema.Class("CostReport")({
|
|
78
|
+
schemaVersion: Schema.Int,
|
|
79
|
+
timeZone: Schema.String,
|
|
80
|
+
pricesAsOf: Schema.String,
|
|
81
|
+
from: Schema.optionalKey(Schema.String),
|
|
82
|
+
to: Schema.optionalKey(Schema.String),
|
|
83
|
+
runs: Schema.Int,
|
|
84
|
+
requests: Schema.Int,
|
|
85
|
+
measured: UsageTotals,
|
|
86
|
+
estimated: UsageTotals,
|
|
87
|
+
averages: UsageAverages,
|
|
88
|
+
projection: Schema.optionalKey(UsageProjection),
|
|
89
|
+
byDay: Schema.Array(UsageBucket),
|
|
90
|
+
byHour: Schema.Array(UsageBucket),
|
|
91
|
+
byModel: Schema.Array(ModelUsage)
|
|
92
|
+
}) {
|
|
93
|
+
}
|
|
94
|
+
export const CurrentCostReportSchema = 1;
|
|
95
|
+
const tokensUsedCodec = Schema.fromJsonString(TokensUsed);
|
|
96
|
+
const decodeTokensUsed = Schema.decodeUnknownOption(tokensUsedCodec);
|
|
97
|
+
// Backend-reported cost is authoritative; the pricing table only fills in
|
|
98
|
+
// when the backend said nothing (the same rule as `CostTracker`).
|
|
99
|
+
const costOf = (model, usage) => usage.costUsd ?? (model === UnknownModel ? undefined : estimateCostUsd(model, usage));
|
|
100
|
+
/** The token reports of one trace, in trace order; malformed lines are skipped. */
|
|
101
|
+
export const usageSamplesFromTrace = (lines) => lines.flatMap((line) => {
|
|
102
|
+
if (line.kind !== "TokensUsed") {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
const raw = line.fields.event;
|
|
106
|
+
if (typeof raw !== "string") {
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
const decoded = decodeTokensUsed(raw);
|
|
110
|
+
if (Option.isNone(decoded)) {
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
const event = decoded.value;
|
|
114
|
+
const model = event.model ?? UnknownModel;
|
|
115
|
+
const costUsd = costOf(model, event.usage);
|
|
116
|
+
return [
|
|
117
|
+
UsageSample.make({
|
|
118
|
+
at: line.timestamp,
|
|
119
|
+
runId: line.runId,
|
|
120
|
+
agent: event.agent,
|
|
121
|
+
model,
|
|
122
|
+
prompt: event.usage.prompt,
|
|
123
|
+
completion: event.usage.completion,
|
|
124
|
+
total: event.usage.total,
|
|
125
|
+
...(event.usage.cached === undefined ? {} : { cached: event.usage.cached }),
|
|
126
|
+
...(costUsd === undefined ? {} : { costUsd }),
|
|
127
|
+
estimated: isEstimatedModel(model)
|
|
128
|
+
})
|
|
129
|
+
];
|
|
130
|
+
});
|
|
131
|
+
const sumOptional = (values) => {
|
|
132
|
+
const present = values.flatMap((value) => (value === undefined ? [] : [value]));
|
|
133
|
+
return present.length === 0 ? undefined : present.reduce((sum, value) => sum + value, 0);
|
|
134
|
+
};
|
|
135
|
+
const totalsOf = (samples) => {
|
|
136
|
+
const cached = sumOptional(samples.map((sample) => sample.cached));
|
|
137
|
+
const costUsd = sumOptional(samples.map((sample) => sample.costUsd));
|
|
138
|
+
return UsageTotals.make({
|
|
139
|
+
requests: samples.length,
|
|
140
|
+
prompt: samples.reduce((sum, sample) => sum + sample.prompt, 0),
|
|
141
|
+
completion: samples.reduce((sum, sample) => sum + sample.completion, 0),
|
|
142
|
+
total: samples.reduce((sum, sample) => sum + sample.total, 0),
|
|
143
|
+
...(cached === undefined ? {} : { cached }),
|
|
144
|
+
...(costUsd === undefined ? {} : { costUsd })
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
const distinctRuns = (samples) => new Set(samples.map((sample) => sample.runId)).size;
|
|
148
|
+
const pad = (value) => value.toString().padStart(2, "0");
|
|
149
|
+
const partsIn = (timeZone, at) => {
|
|
150
|
+
const parts = DateTime.toParts(DateTime.makeZonedUnsafe(at, { timeZone }));
|
|
151
|
+
return { year: parts.year, month: parts.month, day: parts.day, hour: parts.hour };
|
|
152
|
+
};
|
|
153
|
+
const dayKey = (parts) => `${parts.year}-${pad(parts.month)}-${pad(parts.day)}`;
|
|
154
|
+
const hourKey = (parts) => `${dayKey(parts)} ${pad(parts.hour)}:00`;
|
|
155
|
+
const zoneLabel = (timeZone) => timeZone._tag === "Named"
|
|
156
|
+
? timeZone.id
|
|
157
|
+
: timeZone.offset === 0
|
|
158
|
+
? "UTC"
|
|
159
|
+
: DateTime.zoneToString(timeZone);
|
|
160
|
+
const bucketsBy = (samples, keyOf) => {
|
|
161
|
+
const groups = new Map();
|
|
162
|
+
for (const sample of samples) {
|
|
163
|
+
const key = keyOf(sample);
|
|
164
|
+
groups.set(key, [...(groups.get(key) ?? []), sample]);
|
|
165
|
+
}
|
|
166
|
+
return [...groups.entries()]
|
|
167
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
168
|
+
.map(([key, members]) => UsageBucket.make({
|
|
169
|
+
key,
|
|
170
|
+
runs: distinctRuns(members),
|
|
171
|
+
measured: totalsOf(members.filter((sample) => !sample.estimated)),
|
|
172
|
+
estimated: totalsOf(members.filter((sample) => sample.estimated))
|
|
173
|
+
}));
|
|
174
|
+
};
|
|
175
|
+
const bucketTokens = (bucket) => bucket.measured.total + bucket.estimated.total;
|
|
176
|
+
const bucketCost = (bucket) => sumOptional([bucket.measured.costUsd, bucket.estimated.costUsd]);
|
|
177
|
+
/** The first bucket carrying the most tokens, in chronological order. */
|
|
178
|
+
const peakOf = (buckets) => buckets.reduce((best, bucket) => best === undefined || bucketTokens(bucket) > bucketTokens(best) ? bucket : best, undefined);
|
|
179
|
+
const calendarDaysBetween = (first, last) => Math.round((Date.UTC(last.year, last.month - 1, last.day) -
|
|
180
|
+
Date.UTC(first.year, first.month - 1, first.day)) /
|
|
181
|
+
86_400_000) + 1;
|
|
182
|
+
const ratio = (value, count) => (count === 0 ? 0 : value / count);
|
|
183
|
+
const costRatio = (cost, count) => cost === undefined || count === 0 ? undefined : cost / count;
|
|
184
|
+
export const buildCostReport = (samples, options = {}) => {
|
|
185
|
+
const timeZone = options.timeZone ?? DateTime.zoneMakeOffset(0);
|
|
186
|
+
const ordered = [...samples].sort((left, right) => left.at - right.at);
|
|
187
|
+
const byDay = bucketsBy(ordered, (sample) => dayKey(partsIn(timeZone, sample.at)));
|
|
188
|
+
const byHour = bucketsBy(ordered, (sample) => hourKey(partsIn(timeZone, sample.at)));
|
|
189
|
+
const measured = totalsOf(ordered.filter((sample) => !sample.estimated));
|
|
190
|
+
const estimated = totalsOf(ordered.filter((sample) => sample.estimated));
|
|
191
|
+
const tokens = measured.total + estimated.total;
|
|
192
|
+
const cost = sumOptional([measured.costUsd, estimated.costUsd]);
|
|
193
|
+
const runs = distinctRuns(ordered);
|
|
194
|
+
const first = ordered[0];
|
|
195
|
+
const last = ordered[ordered.length - 1];
|
|
196
|
+
const calendarDays = first === undefined || last === undefined
|
|
197
|
+
? 0
|
|
198
|
+
: calendarDaysBetween(partsIn(timeZone, first.at), partsIn(timeZone, last.at));
|
|
199
|
+
const tokensPerRun = ratio(tokens, runs);
|
|
200
|
+
const costUsdPerRun = costRatio(cost, runs);
|
|
201
|
+
const costUsdPerActiveDay = costRatio(cost, byDay.length);
|
|
202
|
+
const costUsdPerCalendarDay = costRatio(cost, calendarDays);
|
|
203
|
+
const costUsdPerActiveHour = costRatio(cost, byHour.length);
|
|
204
|
+
const peakDay = peakOf(byDay);
|
|
205
|
+
const peakHour = peakOf(byHour);
|
|
206
|
+
const projection = options.runsPerDay === undefined
|
|
207
|
+
? undefined
|
|
208
|
+
: UsageProjection.make({
|
|
209
|
+
runsPerDay: options.runsPerDay,
|
|
210
|
+
tokensPerDay: Math.round(tokensPerRun * options.runsPerDay),
|
|
211
|
+
...(costUsdPerRun === undefined
|
|
212
|
+
? {}
|
|
213
|
+
: { costUsdPerDay: costUsdPerRun * options.runsPerDay })
|
|
214
|
+
});
|
|
215
|
+
const byModelGroups = new Map();
|
|
216
|
+
for (const sample of ordered) {
|
|
217
|
+
byModelGroups.set(sample.model, [...(byModelGroups.get(sample.model) ?? []), sample]);
|
|
218
|
+
}
|
|
219
|
+
const byModel = [...byModelGroups.entries()]
|
|
220
|
+
.map(([model, members]) => ModelUsage.make({ model, estimated: isEstimatedModel(model), totals: totalsOf(members) }))
|
|
221
|
+
.sort((left, right) => left.estimated === right.estimated
|
|
222
|
+
? left.model.localeCompare(right.model)
|
|
223
|
+
: left.estimated
|
|
224
|
+
? 1
|
|
225
|
+
: -1);
|
|
226
|
+
return CostReport.make({
|
|
227
|
+
schemaVersion: CurrentCostReportSchema,
|
|
228
|
+
timeZone: zoneLabel(timeZone),
|
|
229
|
+
pricesAsOf: PricesAsOf,
|
|
230
|
+
...(first === undefined ? {} : { from: new Date(first.at).toISOString() }),
|
|
231
|
+
...(last === undefined ? {} : { to: new Date(last.at).toISOString() }),
|
|
232
|
+
runs,
|
|
233
|
+
requests: ordered.length,
|
|
234
|
+
measured,
|
|
235
|
+
estimated,
|
|
236
|
+
averages: UsageAverages.make({
|
|
237
|
+
activeDays: byDay.length,
|
|
238
|
+
calendarDays,
|
|
239
|
+
activeHours: byHour.length,
|
|
240
|
+
tokensPerActiveDay: Math.round(ratio(tokens, byDay.length)),
|
|
241
|
+
tokensPerCalendarDay: Math.round(ratio(tokens, calendarDays)),
|
|
242
|
+
tokensPerActiveHour: Math.round(ratio(tokens, byHour.length)),
|
|
243
|
+
tokensPerRun: Math.round(tokensPerRun),
|
|
244
|
+
...(costUsdPerActiveDay === undefined ? {} : { costUsdPerActiveDay }),
|
|
245
|
+
...(costUsdPerCalendarDay === undefined ? {} : { costUsdPerCalendarDay }),
|
|
246
|
+
...(costUsdPerActiveHour === undefined ? {} : { costUsdPerActiveHour }),
|
|
247
|
+
...(costUsdPerRun === undefined ? {} : { costUsdPerRun }),
|
|
248
|
+
...(peakDay === undefined ? {} : { peakDay: peakDay.key }),
|
|
249
|
+
...(peakHour === undefined ? {} : { peakHour: peakHour.key })
|
|
250
|
+
}),
|
|
251
|
+
...(projection === undefined ? {} : { projection }),
|
|
252
|
+
byDay,
|
|
253
|
+
byHour,
|
|
254
|
+
byModel
|
|
255
|
+
});
|
|
256
|
+
};
|
|
257
|
+
const thousands = (value) => Math.round(value)
|
|
258
|
+
.toString()
|
|
259
|
+
.replace(/\B(?=(\d{3})+(?!\d))/gu, ",");
|
|
260
|
+
const money = (cost) => cost === undefined ? "" : ` ($${cost.toFixed(4)})`;
|
|
261
|
+
const totalsLine = (label, totals) => {
|
|
262
|
+
const cached = totals.cached === undefined || totals.cached <= 0 ? "" : ` (${thousands(totals.cached)} cached)`;
|
|
263
|
+
return `${label}: ${thousands(totals.prompt)} in${cached}, ${thousands(totals.completion)} out, ${thousands(totals.total)} total${money(totals.costUsd)}`;
|
|
264
|
+
};
|
|
265
|
+
const runsLabel = (runs) => `${runs} run${runs === 1 ? "" : "s"}`;
|
|
266
|
+
const bucketLine = (bucket) => ` ${bucket.key} ${runsLabel(bucket.runs)} ${thousands(bucket.measured.total)} measured ${thousands(bucket.estimated.total)} estimated${money(bucketCost(bucket))}`;
|
|
267
|
+
export const renderCostReport = (report) => {
|
|
268
|
+
if (report.from === undefined || report.to === undefined) {
|
|
269
|
+
return "llm4ts costs\n\nno usage recorded — run a flow whose backend reports token counts, then try again";
|
|
270
|
+
}
|
|
271
|
+
const averages = report.averages;
|
|
272
|
+
const peakDay = peakOf(report.byDay);
|
|
273
|
+
const peakHour = peakOf(report.byHour);
|
|
274
|
+
const peaks = [
|
|
275
|
+
...(peakDay === undefined
|
|
276
|
+
? []
|
|
277
|
+
: [`peak day ${peakDay.key} (${thousands(bucketTokens(peakDay))})`]),
|
|
278
|
+
...(peakHour === undefined
|
|
279
|
+
? []
|
|
280
|
+
: [`peak hour ${peakHour.key} (${thousands(bucketTokens(peakHour))})`])
|
|
281
|
+
];
|
|
282
|
+
const sections = [
|
|
283
|
+
"llm4ts costs",
|
|
284
|
+
`window: ${report.from} → ${report.to} (${report.timeZone})`,
|
|
285
|
+
`runs: ${report.runs} · requests: ${report.requests}`,
|
|
286
|
+
totalsLine("measured", report.measured),
|
|
287
|
+
totalsLine("estimated", report.estimated),
|
|
288
|
+
"",
|
|
289
|
+
"averages (measured + estimated):",
|
|
290
|
+
` per active day: ${thousands(averages.tokensPerActiveDay)} tokens${money(averages.costUsdPerActiveDay)} over ${averages.activeDays} day${averages.activeDays === 1 ? "" : "s"}`,
|
|
291
|
+
` per calendar day: ${thousands(averages.tokensPerCalendarDay)} tokens${money(averages.costUsdPerCalendarDay)} over ${averages.calendarDays} day${averages.calendarDays === 1 ? "" : "s"}`,
|
|
292
|
+
` per active hour: ${thousands(averages.tokensPerActiveHour)} tokens${money(averages.costUsdPerActiveHour)} over ${averages.activeHours} hour${averages.activeHours === 1 ? "" : "s"}`,
|
|
293
|
+
` per run: ${thousands(averages.tokensPerRun)} tokens${money(averages.costUsdPerRun)}`,
|
|
294
|
+
...(peaks.length === 0 ? [] : [` ${peaks.join(", ")}`])
|
|
295
|
+
];
|
|
296
|
+
if (report.projection !== undefined) {
|
|
297
|
+
sections.push("projection:", ` at ${report.projection.runsPerDay} runs/day: ${thousands(report.projection.tokensPerDay)} tokens${money(report.projection.costUsdPerDay)} per day`);
|
|
298
|
+
}
|
|
299
|
+
sections.push("", "by day:", ...report.byDay.map(bucketLine));
|
|
300
|
+
sections.push("", "by hour:", ...report.byHour.map(bucketLine));
|
|
301
|
+
sections.push("", "by model:", ...report.byModel.map((entry) => ` ${entry.model} ${thousands(entry.totals.total)} tokens${money(entry.totals.costUsd)}`));
|
|
302
|
+
const notes = [
|
|
303
|
+
`costs are backend-reported where available, otherwise estimated from the pricing table (rates as of ${report.pricesAsOf} — may be stale)`,
|
|
304
|
+
...(report.estimated.requests === 0
|
|
305
|
+
? []
|
|
306
|
+
: [
|
|
307
|
+
"estimated:<model> rows come from character counts (LLM4TS_ESTIMATE_MODEL), not backend token counts"
|
|
308
|
+
])
|
|
309
|
+
];
|
|
310
|
+
sections.push("", ...notes.map((note) => `* ${note}`));
|
|
311
|
+
return sections.join("\n");
|
|
312
|
+
};
|
|
313
|
+
//# sourceMappingURL=CostReport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CostReport.js","sourceRoot":"","sources":["../src/CostReport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EstimatedUsage.d.ts","sourceRoot":"","sources":["../src/EstimatedUsage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAY,UAAU,EAAgB,MAAM,qBAAqB,CAAA;AAYxE,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,qBAAqB,oBAAoB,CAAA;AAEtD,eAAO,MAAM,4BAA4B,GACvC,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KACxD,qBAMF,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,MAAM,KAAG,MAAuC,CAAA;AAEpG,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,OACN,CAAA;AAKvD,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,SAAS,qBAAqB,KAC7B,UAOF,CAAA;AAqBD,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;CACvD;AA8CD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"EstimatedUsage.d.ts","sourceRoot":"","sources":["../src/EstimatedUsage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAY,UAAU,EAAgB,MAAM,qBAAqB,CAAA;AAYxE,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,eAAO,MAAM,qBAAqB,oBAAoB,CAAA;AAEtD,eAAO,MAAM,4BAA4B,GACvC,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,KACxD,qBAMF,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,MAAM,KAAG,MAAuC,CAAA;AAEpG,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,OACN,CAAA;AAKvD,eAAO,MAAM,aAAa,GACxB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,SAAS,qBAAqB,KAC7B,UAOF,CAAA;AAqBD,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;CACvD;AA8CD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gHA6DlC,CAAA"}
|
package/dist/EstimatedUsage.js
CHANGED
|
@@ -84,6 +84,10 @@ export const makeEstimatedUsageMeter = Effect.fn("@llm4ts/flow/EstimatedUsage.ma
|
|
|
84
84
|
const estimated = estimateUsage(prompt.length, (JSON.stringify(value) ?? "").length, options);
|
|
85
85
|
return record(estimated).pipe(Effect.as([value, estimated, estimatedModelLabel(options.referenceModel)]));
|
|
86
86
|
})),
|
|
87
|
+
scoreLabels: (prompt, labels) => service
|
|
88
|
+
.scoreLabels(prompt, labels)
|
|
89
|
+
.pipe(Effect.tap((distribution) => record(distribution.usage ??
|
|
90
|
+
estimateUsage(prompt.length, JSON.stringify(distribution.probabilities).length, options)))),
|
|
87
91
|
isAvailable: service.isAvailable
|
|
88
92
|
};
|
|
89
93
|
return { service: decorated, totals: Ref.get(totals) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EstimatedUsage.js","sourceRoot":"","sources":["../src/EstimatedUsage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EstimatedUsage.js","sourceRoot":"","sources":["../src/EstimatedUsage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAkBhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAA;AAEtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,WAAyD,EAClC,EAAE;IACzB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,+BAA+B,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACrF,OAAO;QACL,cAAc,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,qBAAqB;QAClF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;AACH,CAAC,CAAA;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAsB,EAAU,EAAE,CAAC,aAAa,cAAc,EAAE,CAAA;AAEpG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAyB,EAAW,EAAE,CACrE,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AAEvD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,aAAqB,EAAU,EAAE,CACjE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,CAAA;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,WAAmB,EACnB,eAAuB,EACvB,OAA8B,EAClB,EAAE;IACd,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;IAC7D,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAC7E,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,QAAgC,EAAU,EAAE,CACjE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAEpE,MAAM,WAAW,GAAG,CAAC,QAAgC,EAAE,KAAiB,EAAc,EAAE;IACtF,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAChE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACnC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAChE,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,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC,CAAA;AACJ,CAAC,CAAA;AASD,MAAM,eAAe,GAAG,CACtB,MAAyC,EACzC,WAAmB,EACnB,OAA8B,EAC9B,MAAkD,EACf,EAAE,CACrC,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACzE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC9B,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAA;IACD,mEAAmE;IACnE,qEAAqE;IACrE,iCAAiC;IACjC,MAAM,IAAI,GAAsC,MAAM,CAAC,MAAM,CAC3D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,KAAK,CAAA;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,CAAA;QAClF,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,MAAM,CAAC,OAAO,CACnB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,EAAE;YACT,KAAK;YACL,QAAQ,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;SACjE,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC,CAAC,CACH,CAAA;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,EAC5F,OAAwB,EACxB,OAA8B;IAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAyB,SAAS,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,CAAC,KAAiB,EAAuB,EAAE,CACxD,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAEhE,MAAM,SAAS,GAAoB;QACjC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACxB,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QAChF,wBAAwB,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrC,eAAe,CACb,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAC1C,aAAa,CAAC,QAAQ,CAAC,EACvB,OAAO,EACP,MAAM,CACP;QACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;QAC5E,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAChD,OAAO;aACJ,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;aAC7C,IAAI,CACH,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACpF,CACF;QACL,0BAA0B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CACzD,OAAO,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CACjE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;YACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC,CAAC,CAAA;YACtE,CAAC;YACD,MAAM,SAAS,GAAG,aAAa,CAC7B,MAAM,CAAC,MAAM,EACb,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EACpC,OAAO,CACR,CAAA;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAU,CAAC,CACpF,CAAA;QACH,CAAC,CAAC,CACH;QACH,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAC9B,OAAO;aACJ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;aAC3B,IAAI,CACH,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC1B,MAAM,CACJ,YAAY,CAAC,KAAK;YAChB,aAAa,CACX,MAAM,CAAC,MAAM,EACb,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,EACjD,OAAO,CACR,CACJ,CACF,CACF;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAA;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AACxD,CAAC,CAAC,CAAA"}
|
package/dist/Flow.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { FlowAborted, FlowLlmError, type FlowError } from "./FlowError.ts";
|
|
|
5
5
|
import { type FlowEventsShape } from "./FlowEvents.ts";
|
|
6
6
|
import type { Plan, Task } from "./Plan.ts";
|
|
7
7
|
import type { PlanStoreShape } from "./Persistence.ts";
|
|
8
|
+
import { type JudgmentMode } from "./Judgment.ts";
|
|
8
9
|
import { type ReviewResult } from "./Review.ts";
|
|
9
10
|
import type { Reviewer } from "./Reviewer.ts";
|
|
10
11
|
export { publishUsage, structuredAndPublish } from "./Usage.ts";
|
|
@@ -37,6 +38,19 @@ export interface ImplementPlanOptions {
|
|
|
37
38
|
* where one unconfirmed no-op should not sink otherwise-finished work.
|
|
38
39
|
*/
|
|
39
40
|
readonly noopTaskPolicy?: "fail" | "complete";
|
|
41
|
+
/**
|
|
42
|
+
* How the "already satisfied" confirmation is read (ADR 0017): "literal"
|
|
43
|
+
* (default) looks for TASK_ALREADY_SATISFIED without any judgment call.
|
|
44
|
+
* { mode } asks the run's judgment service, defaulting to observe: observe
|
|
45
|
+
* and advise publish the literal outcome and keep using it. Explicit act
|
|
46
|
+
* uses a confident judgment, falling back to the literal reading on doubt
|
|
47
|
+
* or failure. The legacy "judgment" string remains an alias for { mode: "act" }.
|
|
48
|
+
*/
|
|
49
|
+
readonly satisfiedProbe?: "literal" | "judgment" | {
|
|
50
|
+
readonly mode?: JudgmentMode;
|
|
51
|
+
};
|
|
40
52
|
}
|
|
53
|
+
/** The judgment form of the empty-diff probe: one Truth question over the coder's reply. */
|
|
54
|
+
export declare const satisfiedByJudgment: (context: FlowContextShape, taskTitle: string, reply: string, mode?: "observe" | "advise" | "act" | undefined) => Effect.Effect<boolean | undefined, never, never>;
|
|
41
55
|
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").ColumnNotFound | import("./FlowError.ts").BudgetExceeded | import("./FlowError.ts").StoryPlanInvalid | import("./FlowError.ts").PerimeterViolation | import("./FlowError.ts").MissingDependency | import("./FlowError.ts").MergeConflict | import("./FlowError.ts").StoryFailed | import("./FlowError.ts").DecisionsInvalid | import("./FlowError.ts").OpenPointsPending | import("./FlowError.ts").ContractConflict, never>;
|
|
42
56
|
//# 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,
|
|
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,EAML,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGtD,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAClF,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;IAC7C;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAE,CAAA;CACpF;AAED,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,oKA6C9B,CAAA;AAOF,eAAO,MAAM,iBAAiB,i5BAqH5B,CAAA"}
|