@trazum/core 1.48.0 → 1.49.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.
@@ -0,0 +1,148 @@
1
+ /**
2
+ * One measured number, wherever it is asked for.
3
+ *
4
+ * By 1.48 there are four ways to ask Trazum about money — a gate in CI, the
5
+ * terminal, the local endpoint an agent consults, the browser — and no
6
+ * guarantee any two of them agree about how much of a budget is left. Each
7
+ * computed its own answer from whatever it happened to be holding: a log, a
8
+ * store, a request body. Four right answers to four slightly different
9
+ * questions is how a CI failure and an agent's refusal come to disagree in
10
+ * front of somebody.
11
+ *
12
+ * This is that number. A budget becomes a **position**: a limit, a period, the
13
+ * measured spend inside it, and — the part that makes it honest — how much of
14
+ * that period was measured at all.
15
+ *
16
+ * **Nothing here forecasts.** "Sixty-one per cent of the budget, consumed over
17
+ * eleven of thirty days" is a measurement. "You will run out on the 24th" is a
18
+ * prediction, and this product has refused those since 1.27 at every scale it
19
+ * operates on. The burn-down below compares two shares that both already
20
+ * happened, and names the shape; it never produces a date.
21
+ *
22
+ * **A period nobody measured is not a period under budget.** The rule
23
+ * `fleetBudgetMissing` established for services in 1.37, applied to time: days
24
+ * inside the period with no measurement are counted and named, and a position
25
+ * standing on three measured days out of thirty says so rather than reporting
26
+ * a comfortable ninety per cent remaining.
27
+ */
28
+ import type { SpendConfig } from './config-schema.js';
29
+ import type { StoreRecord } from './store.js';
30
+ import type { PricingCatalogue } from './pricing.js';
31
+ /** The window a budget is spent over. Calendar months, UTC, like everything else. */
32
+ export interface BudgetPeriod {
33
+ kind: 'month';
34
+ /** `YYYY-MM`, UTC. */
35
+ id: string;
36
+ fromMs: number;
37
+ /** Half-open: the first instant of the next month. */
38
+ toMs: number;
39
+ days: number;
40
+ }
41
+ export type BudgetScope = {
42
+ kind: 'total';
43
+ } | {
44
+ kind: 'label';
45
+ label: string;
46
+ } | {
47
+ kind: 'source';
48
+ source: string;
49
+ };
50
+ /**
51
+ * How much of the period the measurement actually covers.
52
+ *
53
+ * Three values rather than a percentage, because the three lead to different
54
+ * decisions: act on it, act on it knowing it is a floor, or go and find out
55
+ * why nothing was measured.
56
+ */
57
+ export type BudgetCoverage = 'complete' | 'partial' | 'none';
58
+ /**
59
+ * The shape of the burn, named — never a date.
60
+ *
61
+ * A comparison of two shares that have both already happened: how much of the
62
+ * budget is gone against how much of the period is gone. `ahead` means the
63
+ * money is going faster than the calendar, which is a fact about the past
64
+ * eleven days and not a claim about the next nineteen.
65
+ */
66
+ export type BurnShape = 'ahead' | 'on-pace' | 'behind' | 'cannot-tell';
67
+ export interface BurnDown {
68
+ /** Share of the limit consumed, 0-1. Null when the limit is zero. */
69
+ consumedShare: number | null;
70
+ /** Share of the period elapsed at the instant this was computed, 0-1. */
71
+ elapsedShare: number;
72
+ shape: BurnShape;
73
+ /**
74
+ * Deliberately absent: any field naming a date the budget runs out.
75
+ *
76
+ * Stated here rather than left to be noticed, because it is the single most
77
+ * requested number this module will ever be asked for, and every future
78
+ * reader of this file will be tempted to add it. It cannot be measured; it
79
+ * can only be projected from a rate that the log has no reason to keep.
80
+ */
81
+ readonly forecast?: never;
82
+ }
83
+ export interface BudgetStanding {
84
+ schemaVersion: 1;
85
+ scope: BudgetScope;
86
+ limitUsd: number;
87
+ period: BudgetPeriod;
88
+ /** Measured spend inside the period. Never an estimate — see `provenance`. */
89
+ consumedUsd: number;
90
+ remainingUsd: number;
91
+ provenance: 'measured';
92
+ /** Distinct UTC days inside the period that carry any measurement. */
93
+ measuredDays: number;
94
+ /** Days of the period that have already elapsed at the instant asked. */
95
+ elapsedDays: number;
96
+ /**
97
+ * Elapsed days with no measurement at all, oldest first, capped for
98
+ * rendering. A day missing from a series is the thing a total cannot show.
99
+ */
100
+ unmeasuredDays: string[];
101
+ coverage: BudgetCoverage;
102
+ burn: BurnDown;
103
+ /**
104
+ * `cannot-tell` when nothing in the period was measured. A budget with no
105
+ * measurement behind it is not a budget under control, and reporting
106
+ * `within` would be the flattering direction — the one this repository
107
+ * refuses everywhere it can occur.
108
+ */
109
+ verdict: 'within' | 'over' | 'cannot-tell';
110
+ }
111
+ export interface BudgetReport {
112
+ schemaVersion: 1;
113
+ period: BudgetPeriod;
114
+ positions: BudgetStanding[];
115
+ /**
116
+ * Budgets configured with a scope nothing measured touches.
117
+ *
118
+ * Not a position of zero: a label that has no records may have been renamed,
119
+ * or may simply not have run. Both are worth knowing and neither is "under
120
+ * budget".
121
+ */
122
+ unmeasuredScopes: BudgetScope[];
123
+ }
124
+ /** The UTC month containing `at`, as a period. */
125
+ export declare function monthOf(at: Date): BudgetPeriod;
126
+ /** How many unmeasured days are worth naming before the list becomes noise. */
127
+ export declare const MAX_UNMEASURED_NAMED = 10;
128
+ export interface BudgetOptions {
129
+ catalogue: PricingCatalogue;
130
+ /** The instant the position is taken. Every share below is as of this moment. */
131
+ now?: Date;
132
+ /** Which period. Defaults to the month containing `now`. */
133
+ period?: BudgetPeriod;
134
+ }
135
+ /**
136
+ * The live position of every configured budget, from measured records alone.
137
+ *
138
+ * Per-label and per-source budgets are **not** computed here, and their
139
+ * absence is the honest answer rather than an omission: a store record carries
140
+ * a provider, a model and the account's own grouping, and it does not carry a
141
+ * workload label — labels live in a per-call usage log, which a bucketed
142
+ * provider API does not serve. Reporting a per-label position from records
143
+ * that cannot distinguish labels would be a number assembled from the wrong
144
+ * denominator. They appear in `unmeasuredScopes` instead, which says what is
145
+ * true: nothing measured here can answer for them.
146
+ */
147
+ export declare function budgetPositions(records: readonly StoreRecord[], spend: SpendConfig | undefined, options: BudgetOptions): BudgetReport;
148
+ //# sourceMappingURL=budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,qFAAqF;AACrF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf;;;;;OAKG;IACH,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,gBAAgB,EAAE,WAAW,EAAE,CAAC;CACjC;AAED,kDAAkD;AAClD,wBAAgB,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,YAAY,CAY9C;AAkFD,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,iFAAiF;IACjF,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,4DAA4D;IAC5D,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,KAAK,EAAE,WAAW,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,GACrB,YAAY,CAoEd"}
package/dist/budget.js ADDED
@@ -0,0 +1,200 @@
1
+ /**
2
+ * One measured number, wherever it is asked for.
3
+ *
4
+ * By 1.48 there are four ways to ask Trazum about money — a gate in CI, the
5
+ * terminal, the local endpoint an agent consults, the browser — and no
6
+ * guarantee any two of them agree about how much of a budget is left. Each
7
+ * computed its own answer from whatever it happened to be holding: a log, a
8
+ * store, a request body. Four right answers to four slightly different
9
+ * questions is how a CI failure and an agent's refusal come to disagree in
10
+ * front of somebody.
11
+ *
12
+ * This is that number. A budget becomes a **position**: a limit, a period, the
13
+ * measured spend inside it, and — the part that makes it honest — how much of
14
+ * that period was measured at all.
15
+ *
16
+ * **Nothing here forecasts.** "Sixty-one per cent of the budget, consumed over
17
+ * eleven of thirty days" is a measurement. "You will run out on the 24th" is a
18
+ * prediction, and this product has refused those since 1.27 at every scale it
19
+ * operates on. The burn-down below compares two shares that both already
20
+ * happened, and names the shape; it never produces a date.
21
+ *
22
+ * **A period nobody measured is not a period under budget.** The rule
23
+ * `fleetBudgetMissing` established for services in 1.37, applied to time: days
24
+ * inside the period with no measurement are counted and named, and a position
25
+ * standing on three measured days out of thirty says so rather than reporting
26
+ * a comfortable ninety per cent remaining.
27
+ */
28
+ import { effectivePricing } from './pricing.js';
29
+ const DAY_MS = 86_400_000;
30
+ /** The UTC month containing `at`, as a period. */
31
+ export function monthOf(at) {
32
+ const year = at.getUTCFullYear();
33
+ const month = at.getUTCMonth();
34
+ const fromMs = Date.UTC(year, month, 1);
35
+ const toMs = Date.UTC(year, month + 1, 1);
36
+ return {
37
+ kind: 'month',
38
+ id: `${year}-${String(month + 1).padStart(2, '0')}`,
39
+ fromMs,
40
+ toMs,
41
+ days: Math.round((toMs - fromMs) / DAY_MS),
42
+ };
43
+ }
44
+ /** What a store record's tokens cost, at the catalogue's rates for its window. */
45
+ function priceOf(record, catalogue) {
46
+ const model = catalogue.byId.get(record.model);
47
+ if (model === undefined)
48
+ return null;
49
+ const rates = effectivePricing(model, new Date(record.fromMs));
50
+ const write5m = record.write5m * rates.inputPerMTok * 1.25;
51
+ const write1h = record.write1h * rates.inputPerMTok * 2;
52
+ return ((record.input * rates.inputPerMTok +
53
+ record.cacheRead * rates.inputPerMTok * 0.1 +
54
+ write5m +
55
+ write1h +
56
+ record.output * rates.outputPerMTok) /
57
+ 1_000_000);
58
+ }
59
+ /**
60
+ * The share of a record's window that falls inside the period.
61
+ *
62
+ * A store record covers a bucket, and a bucket can straddle a month boundary.
63
+ * Counting it wholly in or wholly out would move real money between months by
64
+ * up to a day; apportioning by overlap is the only answer that keeps two
65
+ * adjacent months summing to the same total as the pair.
66
+ *
67
+ * This is arithmetic about a window, not an estimate of anything: the record
68
+ * says what the window cost, and the overlap is exact.
69
+ */
70
+ function overlapShare(record, period) {
71
+ const span = record.toMs - record.fromMs;
72
+ if (span <= 0)
73
+ return record.fromMs >= period.fromMs && record.fromMs < period.toMs ? 1 : 0;
74
+ const from = Math.max(record.fromMs, period.fromMs);
75
+ const to = Math.min(record.toMs, period.toMs);
76
+ return to <= from ? 0 : (to - from) / span;
77
+ }
78
+ /** Every UTC day a record touches inside the period, as `YYYY-MM-DD`. */
79
+ function daysTouched(record, period) {
80
+ const from = Math.max(record.fromMs, period.fromMs);
81
+ const to = Math.min(Math.max(record.toMs, record.fromMs + 1), period.toMs);
82
+ if (to <= from)
83
+ return [];
84
+ const days = [];
85
+ for (let ms = Math.floor(from / DAY_MS) * DAY_MS; ms < to; ms += DAY_MS) {
86
+ days.push(new Date(ms).toISOString().slice(0, 10));
87
+ }
88
+ return days;
89
+ }
90
+ function shapeOf(consumedShare, elapsedShare, coverage) {
91
+ // Nothing measured, or nothing to measure against: the comparison has no
92
+ // meaning, and inventing one from an elapsed share alone would be a shape
93
+ // drawn from the calendar rather than from the bill.
94
+ if (coverage === 'none' || consumedShare === null)
95
+ return 'cannot-tell';
96
+ // A five-point band, so a budget tracking the calendar to within a rounding
97
+ // error is not reported as drifting every time somebody looks.
98
+ const drift = consumedShare - elapsedShare;
99
+ const ahead = drift > 0.05;
100
+ /**
101
+ * **A floor can prove `ahead` and can never prove `behind`.**
102
+ *
103
+ * Partial coverage means the consumed figure is a floor on the period: the
104
+ * unmeasured days spent *something*, and nobody knows how much. A floor that
105
+ * has already outrun the calendar is unarguably ahead — the real figure is
106
+ * higher still. A floor that looks comfortable proves nothing at all, and
107
+ * reporting it as `behind` would turn missing measurement into good news,
108
+ * which is the flattering direction this repository refuses everywhere.
109
+ *
110
+ * The first version of this returned `behind` for three measured days out of
111
+ * twenty, beside a warning that the figure was a floor. Two sentences that
112
+ * contradicted each other, and the reassuring one came second.
113
+ */
114
+ if (coverage === 'partial')
115
+ return ahead ? 'ahead' : 'cannot-tell';
116
+ if (ahead)
117
+ return 'ahead';
118
+ if (drift < -0.05)
119
+ return 'behind';
120
+ return 'on-pace';
121
+ }
122
+ /** How many unmeasured days are worth naming before the list becomes noise. */
123
+ export const MAX_UNMEASURED_NAMED = 10;
124
+ /**
125
+ * The live position of every configured budget, from measured records alone.
126
+ *
127
+ * Per-label and per-source budgets are **not** computed here, and their
128
+ * absence is the honest answer rather than an omission: a store record carries
129
+ * a provider, a model and the account's own grouping, and it does not carry a
130
+ * workload label — labels live in a per-call usage log, which a bucketed
131
+ * provider API does not serve. Reporting a per-label position from records
132
+ * that cannot distinguish labels would be a number assembled from the wrong
133
+ * denominator. They appear in `unmeasuredScopes` instead, which says what is
134
+ * true: nothing measured here can answer for them.
135
+ */
136
+ export function budgetPositions(records, spend, options) {
137
+ const { catalogue, now = new Date() } = options;
138
+ const period = options.period ?? monthOf(now);
139
+ const positions = [];
140
+ const unmeasuredScopes = [];
141
+ const elapsedMs = Math.min(Math.max(0, now.getTime() - period.fromMs), period.toMs - period.fromMs);
142
+ const elapsedDays = Math.max(1, Math.ceil(elapsedMs / DAY_MS));
143
+ const elapsedShare = elapsedMs / (period.toMs - period.fromMs);
144
+ /**
145
+ * `monthlyUsd`, never `maxUsd`. The two are the same units over different
146
+ * denominators — one gates whatever period a log happens to cover, this
147
+ * gates a calendar month — and reading one for the other is exactly the
148
+ * disagreement this module exists to end.
149
+ */
150
+ if (spend?.monthlyUsd !== undefined) {
151
+ let consumedUsd = 0;
152
+ const measured = new Set();
153
+ for (const record of records) {
154
+ const share = overlapShare(record, period);
155
+ if (share === 0)
156
+ continue;
157
+ const usd = priceOf(record, catalogue);
158
+ // An unpriced model contributes no dollars **and no measured day**:
159
+ // counting the day would report the period as covered by money nobody
160
+ // can see, which is the same flattering omission in a different place.
161
+ if (usd === null)
162
+ continue;
163
+ consumedUsd += usd * share;
164
+ for (const day of daysTouched(record, period))
165
+ measured.add(day);
166
+ }
167
+ const unmeasured = [];
168
+ for (let d = 0; d < elapsedDays; d += 1) {
169
+ const day = new Date(period.fromMs + d * DAY_MS).toISOString().slice(0, 10);
170
+ if (!measured.has(day))
171
+ unmeasured.push(day);
172
+ }
173
+ const coverage = measured.size === 0 ? 'none' : unmeasured.length === 0 ? 'complete' : 'partial';
174
+ const limitUsd = spend.monthlyUsd;
175
+ const consumedShare = limitUsd > 0 ? consumedUsd / limitUsd : null;
176
+ positions.push({
177
+ schemaVersion: 1,
178
+ scope: { kind: 'total' },
179
+ limitUsd,
180
+ period,
181
+ consumedUsd,
182
+ remainingUsd: limitUsd - consumedUsd,
183
+ provenance: 'measured',
184
+ measuredDays: measured.size,
185
+ elapsedDays,
186
+ unmeasuredDays: unmeasured.slice(0, MAX_UNMEASURED_NAMED),
187
+ coverage,
188
+ burn: { consumedShare, elapsedShare, shape: shapeOf(consumedShare, elapsedShare, coverage) },
189
+ verdict: coverage === 'none' ? 'cannot-tell' : consumedUsd > limitUsd ? 'over' : 'within',
190
+ });
191
+ }
192
+ for (const label of Object.keys(spend?.byLabel ?? {})) {
193
+ unmeasuredScopes.push({ kind: 'label', label });
194
+ }
195
+ for (const source of Object.keys(spend?.bySource ?? {})) {
196
+ unmeasuredScopes.push({ kind: 'source', source });
197
+ }
198
+ return { schemaVersion: 1, period, positions, unmeasuredScopes };
199
+ }
200
+ //# sourceMappingURL=budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.js","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,23 @@ export interface WaiveEntry {
56
56
  export interface SpendConfig {
57
57
  /** Whole-log budget. `--max-usd` overrides it. */
58
58
  maxUsd?: number;
59
+ /**
60
+ * The calendar-month budget, spent against **measured** store records.
61
+ *
62
+ * A separate key from `maxUsd` on purpose, and the reason is worth stating
63
+ * because reusing one would have been so much less code. `maxUsd` gates
64
+ * *this log* — whatever period the file somebody passed happens to cover.
65
+ * This gates *this month*. Same units, different denominators, and one key
66
+ * carrying both is precisely how two surfaces of the same product come to
67
+ * disagree about how much is left: `serve` read `maxUsd` and compared it
68
+ * against the whole store, which could be a year, and reported the result as
69
+ * a budget position with a straight face.
70
+ *
71
+ * Nothing infers one from the other. A repository with a per-log gate and no
72
+ * monthly budget has no monthly position, and the tools say so rather than
73
+ * picking a number that is the right shape.
74
+ */
75
+ monthlyUsd?: number;
59
76
  /**
60
77
  * Per-day budget — the gate a whole-log total cannot arm. `--max-day-usd`
61
78
  * overrides it, and it inherits that flag's refusals: a log with no clock
@@ -188,7 +205,7 @@ export interface TrazumConfig {
188
205
  */
189
206
  export declare const CONFIG_KEYS: readonly ['level', 'locale', 'disable', 'usage', 'budgets', 'labels', 'spend', 'sources', 'store', 'waive', 'maxGrowth', 'baseline', 'extensions', 'pricing'];
190
207
  export declare const CONFIG_BASELINE_KEYS: readonly ['path', 'maxGrowthTokens', 'maxGrowthPct'];
191
- export declare const CONFIG_SPEND_KEYS: readonly ['maxUsd', 'maxDayUsd', 'maxSessionUsd', 'maxCacheLossUsd', 'byLabel', 'bySource'];
208
+ export declare const CONFIG_SPEND_KEYS: readonly ['maxUsd', 'monthlyUsd', 'maxDayUsd', 'maxSessionUsd', 'maxCacheLossUsd', 'byLabel', 'bySource'];
192
209
  export declare const CONFIG_WAIVE_KEYS: readonly ['gate', 'reason', 'until'];
193
210
  export declare const CONFIG_STORE_KEYS: readonly ['keepDays'];
194
211
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAE1C,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;;;;;;;;OAYG;IACH;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;;OASG;IACH;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,YACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,EACR,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,WAAW,EACX,UAAU,EACV,YAAY,EACZ,SAAS,CACD,CAAC;AAEX,eAAO,MAAM,oBAAoB,YAAI,MAAM,EAAE,iBAAiB,EAAE,cAAc,CAAU,CAAC;AAEzF,eAAO,MAAM,iBAAiB,YAAI,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAE7H,eAAO,MAAM,iBAAiB,YAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAEtE,eAAO,MAAM,iBAAiB,YAAI,UAAU,CAAU,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,cAAc,YACzB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,CACN,CAAC;AAEX,eAAO,MAAM,iBAAiB,YAC5B,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,CACP,CAAC;AAKX,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,UAAsC,CAAC;AAEtE,qBAAa,WAAY,SAAQ,KAAK;IAGlC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAFzB,YACE,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EAIxB;CACF;AAyWD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,GACb,IAAI,CAYN;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAkB,GAAG,YAAY,CA6F/E;AAED,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,cAAc,GAAG,IAAI,CAIvB"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export const CONFIG_KEYS = [
51
51
  'pricing',
52
52
  ];
53
53
  export const CONFIG_BASELINE_KEYS = ['path', 'maxGrowthTokens', 'maxGrowthPct'];
54
- export const CONFIG_SPEND_KEYS = ['maxUsd', 'maxDayUsd', 'maxSessionUsd', 'maxCacheLossUsd', 'byLabel', 'bySource'];
54
+ export const CONFIG_SPEND_KEYS = ['maxUsd', 'monthlyUsd', 'maxDayUsd', 'maxSessionUsd', 'maxCacheLossUsd', 'byLabel', 'bySource'];
55
55
  export const CONFIG_WAIVE_KEYS = ['gate', 'reason', 'until'];
56
56
  export const CONFIG_STORE_KEYS = ['keepDays'];
57
57
  /**
@@ -218,6 +218,9 @@ function parseSpend(raw, source) {
218
218
  if (raw.maxUsd !== undefined) {
219
219
  spend.maxUsd = requireNonNegativeNumber(raw.maxUsd, 'spend.maxUsd', source);
220
220
  }
221
+ if (raw.monthlyUsd !== undefined) {
222
+ spend.monthlyUsd = requireNonNegativeNumber(raw.monthlyUsd, 'spend.monthlyUsd', source);
223
+ }
221
224
  if (raw.maxCacheLossUsd !== undefined) {
222
225
  spend.maxCacheLossUsd = requireNonNegativeNumber(raw.maxCacheLossUsd, 'spend.maxCacheLossUsd', source);
223
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,8 @@ export type { PlanParseFailure, PlanParseResult } from './plan.js';
18
18
  export type { PlanAction, PlanActionKind, PlanAssumption, PlanDocument } from './plan.js';
19
19
  export { verifyPlan } from './verify.js';
20
20
  export { buildHistory, storedReportFrom, MIN_RUN } from './history.js';
21
+ export { budgetPositions, monthOf, MAX_UNMEASURED_NAMED } from './budget.js';
22
+ export type { BudgetCoverage, BudgetOptions, BudgetPeriod, BudgetStanding, BudgetReport, BudgetScope, BurnDown, BurnShape, } from './budget.js';
21
23
  export { waiverHistory, waiverDay, isWaiverUse } from './waivers.js';
22
24
  export type { WaiverHabit, WaiverHistory, WaiverUse, WaiverVerdict } from './waivers.js';
23
25
  export { answerCost } from './answer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ export { assignSources, fleetRollup } from './fleet.js';
21
21
  export { buildPlan, planLabelName, parsePlanDocument, PLAN_ACTION_KINDS } from './plan.js';
22
22
  export { verifyPlan } from './verify.js';
23
23
  export { buildHistory, storedReportFrom, MIN_RUN } from './history.js';
24
+ export { budgetPositions, monthOf, MAX_UNMEASURED_NAMED } from './budget.js';
24
25
  export { waiverHistory, waiverDay, isWaiverUse } from './waivers.js';
25
26
  export { answerCost } from './answer.js';
26
27
  export { guardSpend } from './guard.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trazum/core",
3
- "version": "1.48.0",
3
+ "version": "1.49.0",
4
4
  "description": "Trazum core: priced advisories for LLM prompts (caching, model tier, batching, schemas), plus deterministic trimming, token counting and pricing.",
5
5
  "license": "MIT",
6
6
  "author": "David Mu\u00f1oz Rey",
package/src/budget.ts ADDED
@@ -0,0 +1,321 @@
1
+ /**
2
+ * One measured number, wherever it is asked for.
3
+ *
4
+ * By 1.48 there are four ways to ask Trazum about money — a gate in CI, the
5
+ * terminal, the local endpoint an agent consults, the browser — and no
6
+ * guarantee any two of them agree about how much of a budget is left. Each
7
+ * computed its own answer from whatever it happened to be holding: a log, a
8
+ * store, a request body. Four right answers to four slightly different
9
+ * questions is how a CI failure and an agent's refusal come to disagree in
10
+ * front of somebody.
11
+ *
12
+ * This is that number. A budget becomes a **position**: a limit, a period, the
13
+ * measured spend inside it, and — the part that makes it honest — how much of
14
+ * that period was measured at all.
15
+ *
16
+ * **Nothing here forecasts.** "Sixty-one per cent of the budget, consumed over
17
+ * eleven of thirty days" is a measurement. "You will run out on the 24th" is a
18
+ * prediction, and this product has refused those since 1.27 at every scale it
19
+ * operates on. The burn-down below compares two shares that both already
20
+ * happened, and names the shape; it never produces a date.
21
+ *
22
+ * **A period nobody measured is not a period under budget.** The rule
23
+ * `fleetBudgetMissing` established for services in 1.37, applied to time: days
24
+ * inside the period with no measurement are counted and named, and a position
25
+ * standing on three measured days out of thirty says so rather than reporting
26
+ * a comfortable ninety per cent remaining.
27
+ */
28
+
29
+ import type { SpendConfig } from './config-schema.js';
30
+ import type { StoreRecord } from './store.js';
31
+ import { effectivePricing } from './pricing.js';
32
+ import type { PricingCatalogue } from './pricing.js';
33
+
34
+ const DAY_MS = 86_400_000;
35
+
36
+ /** The window a budget is spent over. Calendar months, UTC, like everything else. */
37
+ export interface BudgetPeriod {
38
+ kind: 'month';
39
+ /** `YYYY-MM`, UTC. */
40
+ id: string;
41
+ fromMs: number;
42
+ /** Half-open: the first instant of the next month. */
43
+ toMs: number;
44
+ days: number;
45
+ }
46
+
47
+ export type BudgetScope =
48
+ | { kind: 'total' }
49
+ | { kind: 'label'; label: string }
50
+ | { kind: 'source'; source: string };
51
+
52
+ /**
53
+ * How much of the period the measurement actually covers.
54
+ *
55
+ * Three values rather than a percentage, because the three lead to different
56
+ * decisions: act on it, act on it knowing it is a floor, or go and find out
57
+ * why nothing was measured.
58
+ */
59
+ export type BudgetCoverage = 'complete' | 'partial' | 'none';
60
+
61
+ /**
62
+ * The shape of the burn, named — never a date.
63
+ *
64
+ * A comparison of two shares that have both already happened: how much of the
65
+ * budget is gone against how much of the period is gone. `ahead` means the
66
+ * money is going faster than the calendar, which is a fact about the past
67
+ * eleven days and not a claim about the next nineteen.
68
+ */
69
+ export type BurnShape = 'ahead' | 'on-pace' | 'behind' | 'cannot-tell';
70
+
71
+ export interface BurnDown {
72
+ /** Share of the limit consumed, 0-1. Null when the limit is zero. */
73
+ consumedShare: number | null;
74
+ /** Share of the period elapsed at the instant this was computed, 0-1. */
75
+ elapsedShare: number;
76
+ shape: BurnShape;
77
+ /**
78
+ * Deliberately absent: any field naming a date the budget runs out.
79
+ *
80
+ * Stated here rather than left to be noticed, because it is the single most
81
+ * requested number this module will ever be asked for, and every future
82
+ * reader of this file will be tempted to add it. It cannot be measured; it
83
+ * can only be projected from a rate that the log has no reason to keep.
84
+ */
85
+ readonly forecast?: never;
86
+ }
87
+
88
+ export interface BudgetStanding {
89
+ schemaVersion: 1;
90
+ scope: BudgetScope;
91
+ limitUsd: number;
92
+ period: BudgetPeriod;
93
+ /** Measured spend inside the period. Never an estimate — see `provenance`. */
94
+ consumedUsd: number;
95
+ remainingUsd: number;
96
+ provenance: 'measured';
97
+ /** Distinct UTC days inside the period that carry any measurement. */
98
+ measuredDays: number;
99
+ /** Days of the period that have already elapsed at the instant asked. */
100
+ elapsedDays: number;
101
+ /**
102
+ * Elapsed days with no measurement at all, oldest first, capped for
103
+ * rendering. A day missing from a series is the thing a total cannot show.
104
+ */
105
+ unmeasuredDays: string[];
106
+ coverage: BudgetCoverage;
107
+ burn: BurnDown;
108
+ /**
109
+ * `cannot-tell` when nothing in the period was measured. A budget with no
110
+ * measurement behind it is not a budget under control, and reporting
111
+ * `within` would be the flattering direction — the one this repository
112
+ * refuses everywhere it can occur.
113
+ */
114
+ verdict: 'within' | 'over' | 'cannot-tell';
115
+ }
116
+
117
+ export interface BudgetReport {
118
+ schemaVersion: 1;
119
+ period: BudgetPeriod;
120
+ positions: BudgetStanding[];
121
+ /**
122
+ * Budgets configured with a scope nothing measured touches.
123
+ *
124
+ * Not a position of zero: a label that has no records may have been renamed,
125
+ * or may simply not have run. Both are worth knowing and neither is "under
126
+ * budget".
127
+ */
128
+ unmeasuredScopes: BudgetScope[];
129
+ }
130
+
131
+ /** The UTC month containing `at`, as a period. */
132
+ export function monthOf(at: Date): BudgetPeriod {
133
+ const year = at.getUTCFullYear();
134
+ const month = at.getUTCMonth();
135
+ const fromMs = Date.UTC(year, month, 1);
136
+ const toMs = Date.UTC(year, month + 1, 1);
137
+ return {
138
+ kind: 'month',
139
+ id: `${year}-${String(month + 1).padStart(2, '0')}`,
140
+ fromMs,
141
+ toMs,
142
+ days: Math.round((toMs - fromMs) / DAY_MS),
143
+ };
144
+ }
145
+
146
+ /** What a store record's tokens cost, at the catalogue's rates for its window. */
147
+ function priceOf(record: StoreRecord, catalogue: PricingCatalogue): number | null {
148
+ const model = catalogue.byId.get(record.model);
149
+ if (model === undefined) return null;
150
+ const rates = effectivePricing(model, new Date(record.fromMs));
151
+ const write5m = record.write5m * rates.inputPerMTok * 1.25;
152
+ const write1h = record.write1h * rates.inputPerMTok * 2;
153
+ return (
154
+ (record.input * rates.inputPerMTok +
155
+ record.cacheRead * rates.inputPerMTok * 0.1 +
156
+ write5m +
157
+ write1h +
158
+ record.output * rates.outputPerMTok) /
159
+ 1_000_000
160
+ );
161
+ }
162
+
163
+ /**
164
+ * The share of a record's window that falls inside the period.
165
+ *
166
+ * A store record covers a bucket, and a bucket can straddle a month boundary.
167
+ * Counting it wholly in or wholly out would move real money between months by
168
+ * up to a day; apportioning by overlap is the only answer that keeps two
169
+ * adjacent months summing to the same total as the pair.
170
+ *
171
+ * This is arithmetic about a window, not an estimate of anything: the record
172
+ * says what the window cost, and the overlap is exact.
173
+ */
174
+ function overlapShare(record: StoreRecord, period: BudgetPeriod): number {
175
+ const span = record.toMs - record.fromMs;
176
+ if (span <= 0) return record.fromMs >= period.fromMs && record.fromMs < period.toMs ? 1 : 0;
177
+ const from = Math.max(record.fromMs, period.fromMs);
178
+ const to = Math.min(record.toMs, period.toMs);
179
+ return to <= from ? 0 : (to - from) / span;
180
+ }
181
+
182
+ /** Every UTC day a record touches inside the period, as `YYYY-MM-DD`. */
183
+ function daysTouched(record: StoreRecord, period: BudgetPeriod): string[] {
184
+ const from = Math.max(record.fromMs, period.fromMs);
185
+ const to = Math.min(Math.max(record.toMs, record.fromMs + 1), period.toMs);
186
+ if (to <= from) return [];
187
+ const days: string[] = [];
188
+ for (let ms = Math.floor(from / DAY_MS) * DAY_MS; ms < to; ms += DAY_MS) {
189
+ days.push(new Date(ms).toISOString().slice(0, 10));
190
+ }
191
+ return days;
192
+ }
193
+
194
+ function shapeOf(consumedShare: number | null, elapsedShare: number, coverage: BudgetCoverage): BurnShape {
195
+ // Nothing measured, or nothing to measure against: the comparison has no
196
+ // meaning, and inventing one from an elapsed share alone would be a shape
197
+ // drawn from the calendar rather than from the bill.
198
+ if (coverage === 'none' || consumedShare === null) return 'cannot-tell';
199
+
200
+ // A five-point band, so a budget tracking the calendar to within a rounding
201
+ // error is not reported as drifting every time somebody looks.
202
+ const drift = consumedShare - elapsedShare;
203
+ const ahead = drift > 0.05;
204
+
205
+ /**
206
+ * **A floor can prove `ahead` and can never prove `behind`.**
207
+ *
208
+ * Partial coverage means the consumed figure is a floor on the period: the
209
+ * unmeasured days spent *something*, and nobody knows how much. A floor that
210
+ * has already outrun the calendar is unarguably ahead — the real figure is
211
+ * higher still. A floor that looks comfortable proves nothing at all, and
212
+ * reporting it as `behind` would turn missing measurement into good news,
213
+ * which is the flattering direction this repository refuses everywhere.
214
+ *
215
+ * The first version of this returned `behind` for three measured days out of
216
+ * twenty, beside a warning that the figure was a floor. Two sentences that
217
+ * contradicted each other, and the reassuring one came second.
218
+ */
219
+ if (coverage === 'partial') return ahead ? 'ahead' : 'cannot-tell';
220
+
221
+ if (ahead) return 'ahead';
222
+ if (drift < -0.05) return 'behind';
223
+ return 'on-pace';
224
+ }
225
+
226
+ /** How many unmeasured days are worth naming before the list becomes noise. */
227
+ export const MAX_UNMEASURED_NAMED = 10;
228
+
229
+ export interface BudgetOptions {
230
+ catalogue: PricingCatalogue;
231
+ /** The instant the position is taken. Every share below is as of this moment. */
232
+ now?: Date;
233
+ /** Which period. Defaults to the month containing `now`. */
234
+ period?: BudgetPeriod;
235
+ }
236
+
237
+ /**
238
+ * The live position of every configured budget, from measured records alone.
239
+ *
240
+ * Per-label and per-source budgets are **not** computed here, and their
241
+ * absence is the honest answer rather than an omission: a store record carries
242
+ * a provider, a model and the account's own grouping, and it does not carry a
243
+ * workload label — labels live in a per-call usage log, which a bucketed
244
+ * provider API does not serve. Reporting a per-label position from records
245
+ * that cannot distinguish labels would be a number assembled from the wrong
246
+ * denominator. They appear in `unmeasuredScopes` instead, which says what is
247
+ * true: nothing measured here can answer for them.
248
+ */
249
+ export function budgetPositions(
250
+ records: readonly StoreRecord[],
251
+ spend: SpendConfig | undefined,
252
+ options: BudgetOptions,
253
+ ): BudgetReport {
254
+ const { catalogue, now = new Date() } = options;
255
+ const period = options.period ?? monthOf(now);
256
+
257
+ const positions: BudgetStanding[] = [];
258
+ const unmeasuredScopes: BudgetScope[] = [];
259
+
260
+ const elapsedMs = Math.min(Math.max(0, now.getTime() - period.fromMs), period.toMs - period.fromMs);
261
+ const elapsedDays = Math.max(1, Math.ceil(elapsedMs / DAY_MS));
262
+ const elapsedShare = elapsedMs / (period.toMs - period.fromMs);
263
+
264
+ /**
265
+ * `monthlyUsd`, never `maxUsd`. The two are the same units over different
266
+ * denominators — one gates whatever period a log happens to cover, this
267
+ * gates a calendar month — and reading one for the other is exactly the
268
+ * disagreement this module exists to end.
269
+ */
270
+ if (spend?.monthlyUsd !== undefined) {
271
+ let consumedUsd = 0;
272
+ const measured = new Set<string>();
273
+ for (const record of records) {
274
+ const share = overlapShare(record, period);
275
+ if (share === 0) continue;
276
+ const usd = priceOf(record, catalogue);
277
+ // An unpriced model contributes no dollars **and no measured day**:
278
+ // counting the day would report the period as covered by money nobody
279
+ // can see, which is the same flattering omission in a different place.
280
+ if (usd === null) continue;
281
+ consumedUsd += usd * share;
282
+ for (const day of daysTouched(record, period)) measured.add(day);
283
+ }
284
+
285
+ const unmeasured: string[] = [];
286
+ for (let d = 0; d < elapsedDays; d += 1) {
287
+ const day = new Date(period.fromMs + d * DAY_MS).toISOString().slice(0, 10);
288
+ if (!measured.has(day)) unmeasured.push(day);
289
+ }
290
+
291
+ const coverage: BudgetCoverage =
292
+ measured.size === 0 ? 'none' : unmeasured.length === 0 ? 'complete' : 'partial';
293
+ const limitUsd = spend.monthlyUsd;
294
+ const consumedShare = limitUsd > 0 ? consumedUsd / limitUsd : null;
295
+
296
+ positions.push({
297
+ schemaVersion: 1,
298
+ scope: { kind: 'total' },
299
+ limitUsd,
300
+ period,
301
+ consumedUsd,
302
+ remainingUsd: limitUsd - consumedUsd,
303
+ provenance: 'measured',
304
+ measuredDays: measured.size,
305
+ elapsedDays,
306
+ unmeasuredDays: unmeasured.slice(0, MAX_UNMEASURED_NAMED),
307
+ coverage,
308
+ burn: { consumedShare, elapsedShare, shape: shapeOf(consumedShare, elapsedShare, coverage) },
309
+ verdict: coverage === 'none' ? 'cannot-tell' : consumedUsd > limitUsd ? 'over' : 'within',
310
+ });
311
+ }
312
+
313
+ for (const label of Object.keys(spend?.byLabel ?? {})) {
314
+ unmeasuredScopes.push({ kind: 'label', label });
315
+ }
316
+ for (const source of Object.keys(spend?.bySource ?? {})) {
317
+ unmeasuredScopes.push({ kind: 'source', source });
318
+ }
319
+
320
+ return { schemaVersion: 1, period, positions, unmeasuredScopes };
321
+ }
@@ -68,6 +68,23 @@ export interface WaiveEntry {
68
68
  export interface SpendConfig {
69
69
  /** Whole-log budget. `--max-usd` overrides it. */
70
70
  maxUsd?: number;
71
+ /**
72
+ * The calendar-month budget, spent against **measured** store records.
73
+ *
74
+ * A separate key from `maxUsd` on purpose, and the reason is worth stating
75
+ * because reusing one would have been so much less code. `maxUsd` gates
76
+ * *this log* — whatever period the file somebody passed happens to cover.
77
+ * This gates *this month*. Same units, different denominators, and one key
78
+ * carrying both is precisely how two surfaces of the same product come to
79
+ * disagree about how much is left: `serve` read `maxUsd` and compared it
80
+ * against the whole store, which could be a year, and reported the result as
81
+ * a budget position with a straight face.
82
+ *
83
+ * Nothing infers one from the other. A repository with a per-log gate and no
84
+ * monthly budget has no monthly position, and the tools say so rather than
85
+ * picking a number that is the right shape.
86
+ */
87
+ monthlyUsd?: number;
71
88
  /**
72
89
  * Per-day budget — the gate a whole-log total cannot arm. `--max-day-usd`
73
90
  * overrides it, and it inherits that flag's refusals: a log with no clock
@@ -217,7 +234,7 @@ export const CONFIG_KEYS = [
217
234
 
218
235
  export const CONFIG_BASELINE_KEYS = ['path', 'maxGrowthTokens', 'maxGrowthPct'] as const;
219
236
 
220
- export const CONFIG_SPEND_KEYS = ['maxUsd', 'maxDayUsd', 'maxSessionUsd', 'maxCacheLossUsd', 'byLabel', 'bySource'] as const;
237
+ export const CONFIG_SPEND_KEYS = ['maxUsd', 'monthlyUsd', 'maxDayUsd', 'maxSessionUsd', 'maxCacheLossUsd', 'byLabel', 'bySource'] as const;
221
238
 
222
239
  export const CONFIG_WAIVE_KEYS = ['gate', 'reason', 'until'] as const;
223
240
 
@@ -420,6 +437,9 @@ function parseSpend(raw: unknown, source: string): SpendConfig {
420
437
  if (raw.maxUsd !== undefined) {
421
438
  spend.maxUsd = requireNonNegativeNumber(raw.maxUsd, 'spend.maxUsd', source);
422
439
  }
440
+ if (raw.monthlyUsd !== undefined) {
441
+ spend.monthlyUsd = requireNonNegativeNumber(raw.monthlyUsd, 'spend.monthlyUsd', source);
442
+ }
423
443
  if (raw.maxCacheLossUsd !== undefined) {
424
444
  spend.maxCacheLossUsd = requireNonNegativeNumber(raw.maxCacheLossUsd, 'spend.maxCacheLossUsd', source);
425
445
  }
package/src/index.ts CHANGED
@@ -49,6 +49,17 @@ export type { PlanParseFailure, PlanParseResult } from './plan.js';
49
49
  export type { PlanAction, PlanActionKind, PlanAssumption, PlanDocument } from './plan.js';
50
50
  export { verifyPlan } from './verify.js';
51
51
  export { buildHistory, storedReportFrom, MIN_RUN } from './history.js';
52
+ export { budgetPositions, monthOf, MAX_UNMEASURED_NAMED } from './budget.js';
53
+ export type {
54
+ BudgetCoverage,
55
+ BudgetOptions,
56
+ BudgetPeriod,
57
+ BudgetStanding,
58
+ BudgetReport,
59
+ BudgetScope,
60
+ BurnDown,
61
+ BurnShape,
62
+ } from './budget.js';
52
63
  export { waiverHistory, waiverDay, isWaiverUse } from './waivers.js';
53
64
  export type { WaiverHabit, WaiverHistory, WaiverUse, WaiverVerdict } from './waivers.js';
54
65
  export { answerCost } from './answer.js';