@stackbilt/llm-providers 1.1.0 → 1.2.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/LICENSE +0 -0
- package/README.md +112 -85
- package/dist/errors.d.ts +18 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +12 -4
- package/dist/errors.js.map +1 -1
- package/dist/factory.d.ts +62 -4
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +630 -92
- package/dist/factory.js.map +1 -1
- package/dist/image/index.d.ts +0 -0
- package/dist/image/index.d.ts.map +0 -0
- package/dist/image/index.js +0 -0
- package/dist/image/index.js.map +0 -0
- package/dist/image/provider.d.ts +0 -0
- package/dist/image/provider.d.ts.map +0 -0
- package/dist/image/provider.js +0 -0
- package/dist/image/provider.js.map +0 -0
- package/dist/image/types.d.ts +0 -0
- package/dist/image/types.d.ts.map +0 -0
- package/dist/image/types.js +0 -0
- package/dist/image/types.js.map +0 -0
- package/dist/index.d.ts +43 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -14
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic.d.ts +5 -2
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +118 -43
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/base.d.ts +18 -2
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +107 -5
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/cerebras.d.ts +0 -0
- package/dist/providers/cerebras.d.ts.map +1 -1
- package/dist/providers/cerebras.js +21 -13
- package/dist/providers/cerebras.js.map +1 -1
- package/dist/providers/cloudflare.d.ts +0 -0
- package/dist/providers/cloudflare.d.ts.map +1 -1
- package/dist/providers/cloudflare.js +12 -8
- package/dist/providers/cloudflare.js.map +1 -1
- package/dist/providers/groq.d.ts +2 -1
- package/dist/providers/groq.d.ts.map +1 -1
- package/dist/providers/groq.js +95 -15
- package/dist/providers/groq.js.map +1 -1
- package/dist/providers/openai.d.ts +2 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +56 -24
- package/dist/providers/openai.js.map +1 -1
- package/dist/types.d.ts +114 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/dist/utils/circuit-breaker.d.ts +5 -2
- package/dist/utils/circuit-breaker.d.ts.map +1 -1
- package/dist/utils/circuit-breaker.js +18 -13
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/dist/utils/cost-tracker.d.ts +9 -2
- package/dist/utils/cost-tracker.d.ts.map +1 -1
- package/dist/utils/cost-tracker.js +20 -9
- package/dist/utils/cost-tracker.js.map +1 -1
- package/dist/utils/credit-ledger.d.ts +3 -0
- package/dist/utils/credit-ledger.d.ts.map +1 -1
- package/dist/utils/credit-ledger.js +5 -2
- package/dist/utils/credit-ledger.js.map +1 -1
- package/dist/utils/exhaustion.d.ts +38 -0
- package/dist/utils/exhaustion.d.ts.map +1 -0
- package/dist/utils/exhaustion.js +74 -0
- package/dist/utils/exhaustion.js.map +1 -0
- package/dist/utils/hooks.d.ts +113 -0
- package/dist/utils/hooks.d.ts.map +1 -0
- package/dist/utils/hooks.js +44 -0
- package/dist/utils/hooks.js.map +1 -0
- package/dist/utils/latency-histogram.d.ts +38 -0
- package/dist/utils/latency-histogram.d.ts.map +1 -0
- package/dist/utils/latency-histogram.js +81 -0
- package/dist/utils/latency-histogram.js.map +1 -0
- package/dist/utils/logger.d.ts +18 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +22 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +4 -2
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +12 -8
- package/dist/utils/retry.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Graduated Circuit Breaker
|
|
3
3
|
* Routes traffic away from failing providers with confidence-weighted degradation.
|
|
4
4
|
*/
|
|
5
|
+
import { noopLogger } from './logger';
|
|
5
6
|
import { CircuitBreakerOpenError } from '../errors';
|
|
6
7
|
const DEFAULT_DEGRADATION_CURVE = [1.0, 0.9, 0.7, 0.4, 0.1];
|
|
7
8
|
const DEFAULT_CONFIG = {
|
|
@@ -31,6 +32,7 @@ function normalizeConfig(config) {
|
|
|
31
32
|
export class CircuitBreaker {
|
|
32
33
|
name;
|
|
33
34
|
config;
|
|
35
|
+
logger;
|
|
34
36
|
consecutiveFailures = 0;
|
|
35
37
|
totalFailures = 0;
|
|
36
38
|
totalSuccesses = 0;
|
|
@@ -40,9 +42,10 @@ export class CircuitBreaker {
|
|
|
40
42
|
lastRequestAt;
|
|
41
43
|
lastDecayAt = 0;
|
|
42
44
|
windowStart = Date.now();
|
|
43
|
-
constructor(name, config = {}) {
|
|
45
|
+
constructor(name, config = {}, logger) {
|
|
44
46
|
this.name = name;
|
|
45
47
|
this.config = normalizeConfig(config);
|
|
48
|
+
this.logger = logger ?? noopLogger;
|
|
46
49
|
}
|
|
47
50
|
/**
|
|
48
51
|
* Backwards-compatible execute alias.
|
|
@@ -63,7 +66,7 @@ export class CircuitBreaker {
|
|
|
63
66
|
throw this.buildOpenError(now);
|
|
64
67
|
}
|
|
65
68
|
if (primaryPct < 1 && Math.random() > primaryPct) {
|
|
66
|
-
|
|
69
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: degraded (${(primaryPct * 100).toFixed(0)}% primary), rejecting request for fallback`);
|
|
67
70
|
throw new CircuitBreakerOpenError(this.name, 0, this.consecutiveFailures);
|
|
68
71
|
}
|
|
69
72
|
try {
|
|
@@ -86,11 +89,11 @@ export class CircuitBreaker {
|
|
|
86
89
|
this.markTraffic(now);
|
|
87
90
|
const primaryPct = this.currentPrimaryTrafficPct();
|
|
88
91
|
if (primaryPct <= 0) {
|
|
89
|
-
|
|
92
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: fully degraded (${this.consecutiveFailures} failures), using fallback`);
|
|
90
93
|
return fallback();
|
|
91
94
|
}
|
|
92
95
|
if (primaryPct < 1 && Math.random() > primaryPct) {
|
|
93
|
-
|
|
96
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: degraded (${(primaryPct * 100).toFixed(0)}% primary), routing to fallback`);
|
|
94
97
|
return fallback();
|
|
95
98
|
}
|
|
96
99
|
try {
|
|
@@ -100,7 +103,7 @@ export class CircuitBreaker {
|
|
|
100
103
|
}
|
|
101
104
|
catch (error) {
|
|
102
105
|
this.onFailure();
|
|
103
|
-
|
|
106
|
+
this.logger.warn(`[CircuitBreaker] ${this.name}: primary failed (${this.consecutiveFailures} consecutive), trying fallback`);
|
|
104
107
|
return fallback();
|
|
105
108
|
}
|
|
106
109
|
}
|
|
@@ -146,7 +149,7 @@ export class CircuitBreaker {
|
|
|
146
149
|
this.lastRequestAt = undefined;
|
|
147
150
|
this.lastDecayAt = 0;
|
|
148
151
|
this.windowStart = Date.now();
|
|
149
|
-
|
|
152
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: circuit breaker reset`);
|
|
150
153
|
}
|
|
151
154
|
/**
|
|
152
155
|
* Force the breaker into the fully open state.
|
|
@@ -157,7 +160,7 @@ export class CircuitBreaker {
|
|
|
157
160
|
this.lastFailureAt = now;
|
|
158
161
|
this.lastRequestAt = now;
|
|
159
162
|
this.lastDecayAt = now;
|
|
160
|
-
|
|
163
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: circuit breaker force opened`);
|
|
161
164
|
}
|
|
162
165
|
isOpen() {
|
|
163
166
|
return this.getState().state === 'OPEN';
|
|
@@ -260,7 +263,7 @@ export class CircuitBreaker {
|
|
|
260
263
|
this.lastSuccessAt = Date.now();
|
|
261
264
|
if (this.consecutiveFailures > 0) {
|
|
262
265
|
this.consecutiveFailures--;
|
|
263
|
-
|
|
266
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: success -> recovering (${this.consecutiveFailures} failures, ${(this.currentPrimaryTrafficPct() * 100).toFixed(0)}% primary)`);
|
|
264
267
|
}
|
|
265
268
|
}
|
|
266
269
|
onFailure() {
|
|
@@ -270,11 +273,11 @@ export class CircuitBreaker {
|
|
|
270
273
|
this.lastFailureAt = Date.now();
|
|
271
274
|
const primaryPct = this.currentPrimaryTrafficPct();
|
|
272
275
|
if (primaryPct <= 0) {
|
|
273
|
-
|
|
276
|
+
this.logger.warn(`[CircuitBreaker] ${this.name}: OPEN (${this.consecutiveFailures} consecutive failures)`);
|
|
274
277
|
return;
|
|
275
278
|
}
|
|
276
279
|
if (primaryPct < 1) {
|
|
277
|
-
|
|
280
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: degraded -> ${(primaryPct * 100).toFixed(0)}% primary (${this.consecutiveFailures} failures)`);
|
|
278
281
|
}
|
|
279
282
|
}
|
|
280
283
|
maybeDecayFailures(now) {
|
|
@@ -290,7 +293,7 @@ export class CircuitBreaker {
|
|
|
290
293
|
this.consecutiveFailures = Math.max(0, this.consecutiveFailures - steps);
|
|
291
294
|
this.lastDecayAt += steps * this.config.resetTimeout;
|
|
292
295
|
if (before !== this.consecutiveFailures) {
|
|
293
|
-
|
|
296
|
+
this.logger.info(`[CircuitBreaker] ${this.name}: time-decay ${before} -> ${this.consecutiveFailures} failures (${(this.currentPrimaryTrafficPct() * 100).toFixed(0)}% primary)`);
|
|
294
297
|
}
|
|
295
298
|
}
|
|
296
299
|
maybeRotateWindow(now) {
|
|
@@ -305,7 +308,9 @@ export class CircuitBreaker {
|
|
|
305
308
|
export class CircuitBreakerManager {
|
|
306
309
|
breakers = new Map();
|
|
307
310
|
defaultConfig;
|
|
308
|
-
|
|
311
|
+
logger;
|
|
312
|
+
constructor(defaultConfig, logger) {
|
|
313
|
+
this.logger = logger ?? noopLogger;
|
|
309
314
|
this.defaultConfig = {
|
|
310
315
|
failureThreshold: defaultConfig?.failureThreshold ?? DEFAULT_CONFIG.failureThreshold,
|
|
311
316
|
resetTimeout: defaultConfig?.resetTimeout ?? DEFAULT_CONFIG.resetTimeout,
|
|
@@ -325,7 +330,7 @@ export class CircuitBreakerManager {
|
|
|
325
330
|
? [...config.degradationCurve]
|
|
326
331
|
: [...(this.defaultConfig.degradationCurve ?? DEFAULT_DEGRADATION_CURVE)]
|
|
327
332
|
};
|
|
328
|
-
this.breakers.set(name, new CircuitBreaker(name, breakerConfig));
|
|
333
|
+
this.breakers.set(name, new CircuitBreaker(name, breakerConfig, this.logger));
|
|
329
334
|
}
|
|
330
335
|
return this.breakers.get(name);
|
|
331
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/utils/circuit-breaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Tracks and optimizes LLM usage costs across providers
|
|
4
4
|
*/
|
|
5
5
|
import type { LLMRequest, LLMResponse, CostConfig, ModelCapabilities } from '../types';
|
|
6
|
+
import type { Logger } from './logger';
|
|
6
7
|
import type { CreditLedger } from './credit-ledger';
|
|
7
8
|
export interface ProviderCostEntry {
|
|
8
9
|
totalCost: number;
|
|
@@ -24,7 +25,8 @@ export declare class CostTracker {
|
|
|
24
25
|
private providers;
|
|
25
26
|
private config;
|
|
26
27
|
private ledger?;
|
|
27
|
-
|
|
28
|
+
private logger;
|
|
29
|
+
constructor(config?: Partial<CostConfig>, ledger?: CreditLedger, logger?: Logger);
|
|
28
30
|
/**
|
|
29
31
|
* Calculate cost for a request
|
|
30
32
|
*/
|
|
@@ -33,6 +35,11 @@ export declare class CostTracker {
|
|
|
33
35
|
* Track actual cost from response
|
|
34
36
|
*/
|
|
35
37
|
trackCost(provider: string, response: LLMResponse): void;
|
|
38
|
+
/**
|
|
39
|
+
* Record cost directly without requiring a full LLMResponse.
|
|
40
|
+
* This is the simplified API — callers pass provider + cost + tokens.
|
|
41
|
+
*/
|
|
42
|
+
record(provider: string, cost: number, inputTokens?: number, outputTokens?: number, model?: string): void;
|
|
36
43
|
/**
|
|
37
44
|
* Get the attached CreditLedger (if any)
|
|
38
45
|
*/
|
|
@@ -125,6 +132,6 @@ export declare class CostOptimizer {
|
|
|
125
132
|
/**
|
|
126
133
|
* Suggest cost reduction strategies
|
|
127
134
|
*/
|
|
128
|
-
static suggestOptimizations(costBreakdown: Record<string,
|
|
135
|
+
static suggestOptimizations(costBreakdown: Record<string, ProviderCostBreakdownEntry>): string[];
|
|
129
136
|
}
|
|
130
137
|
//# sourceMappingURL=cost-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/cost-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAe;
|
|
1
|
+
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/cost-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
* Cost Tracker
|
|
3
3
|
* Tracks and optimizes LLM usage costs across providers
|
|
4
4
|
*/
|
|
5
|
+
import { noopLogger } from './logger';
|
|
5
6
|
export class CostTracker {
|
|
6
7
|
providers = new Map();
|
|
7
8
|
config;
|
|
8
9
|
ledger;
|
|
9
|
-
|
|
10
|
+
logger;
|
|
11
|
+
constructor(config = {}, ledger, logger) {
|
|
10
12
|
this.config = {
|
|
11
13
|
inputTokenCost: config.inputTokenCost ?? 0.001, // $0.001 per 1k tokens default
|
|
12
14
|
outputTokenCost: config.outputTokenCost ?? 0.002, // $0.002 per 1k tokens default
|
|
@@ -14,6 +16,7 @@ export class CostTracker {
|
|
|
14
16
|
alertThreshold: config.alertThreshold ?? 0.8 // 80% of max cost
|
|
15
17
|
};
|
|
16
18
|
this.ledger = ledger;
|
|
19
|
+
this.logger = logger ?? noopLogger;
|
|
17
20
|
}
|
|
18
21
|
/**
|
|
19
22
|
* Calculate cost for a request
|
|
@@ -31,15 +34,22 @@ export class CostTracker {
|
|
|
31
34
|
trackCost(provider, response) {
|
|
32
35
|
if (!response.usage)
|
|
33
36
|
return;
|
|
37
|
+
this.record(provider, response.usage.cost || 0, response.usage.inputTokens, response.usage.outputTokens, response.model || 'unknown');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Record cost directly without requiring a full LLMResponse.
|
|
41
|
+
* This is the simplified API — callers pass provider + cost + tokens.
|
|
42
|
+
*/
|
|
43
|
+
record(provider, cost, inputTokens = 0, outputTokens = 0, model = 'unknown') {
|
|
34
44
|
// Delegate to CreditLedger when present
|
|
35
45
|
if (this.ledger) {
|
|
36
|
-
this.ledger.record(provider,
|
|
46
|
+
this.ledger.record(provider, model, cost, inputTokens, outputTokens);
|
|
37
47
|
}
|
|
38
48
|
const entry = this.providers.get(provider) || this.createProviderEntry();
|
|
39
|
-
entry.totalCost +=
|
|
49
|
+
entry.totalCost += cost;
|
|
40
50
|
entry.requestCount++;
|
|
41
|
-
entry.inputTokens +=
|
|
42
|
-
entry.outputTokens +=
|
|
51
|
+
entry.inputTokens += inputTokens;
|
|
52
|
+
entry.outputTokens += outputTokens;
|
|
43
53
|
entry.lastRecordedAt = Date.now();
|
|
44
54
|
this.providers.set(provider, entry);
|
|
45
55
|
// Check cost alerts
|
|
@@ -186,7 +196,7 @@ export class CostTracker {
|
|
|
186
196
|
const currentCost = this.getProviderCost(provider);
|
|
187
197
|
const alertThreshold = this.config.maxMonthlyCost * this.config.alertThreshold;
|
|
188
198
|
if (currentCost >= alertThreshold) {
|
|
189
|
-
|
|
199
|
+
this.logger.warn(`[CostTracker] Cost alert for ${provider}: $${currentCost.toFixed(4)} (${((currentCost / this.config.maxMonthlyCost) * 100).toFixed(1)}% of limit)`);
|
|
190
200
|
}
|
|
191
201
|
}
|
|
192
202
|
/**
|
|
@@ -248,7 +258,8 @@ export class CostOptimizer {
|
|
|
248
258
|
*/
|
|
249
259
|
static suggestOptimizations(costBreakdown) {
|
|
250
260
|
const suggestions = [];
|
|
251
|
-
const
|
|
261
|
+
const entries = Object.values(costBreakdown);
|
|
262
|
+
const totalCost = entries.reduce((sum, p) => sum + p.cost, 0);
|
|
252
263
|
// Find most expensive provider
|
|
253
264
|
const mostExpensive = Object.entries(costBreakdown)
|
|
254
265
|
.sort(([, a], [, b]) => b.cost - a.cost)[0];
|
|
@@ -258,11 +269,11 @@ export class CostOptimizer {
|
|
|
258
269
|
// Check for high per-request costs
|
|
259
270
|
for (const [provider, data] of Object.entries(costBreakdown)) {
|
|
260
271
|
if (data.averageCostPerRequest > 0.01) { // $0.01 per request
|
|
261
|
-
suggestions.push(`${provider} has high per-request cost ($${
|
|
272
|
+
suggestions.push(`${provider} has high per-request cost ($${data.averageCostPerRequest.toFixed(4)}). Consider using smaller models or reducing max_tokens.`);
|
|
262
273
|
}
|
|
263
274
|
}
|
|
264
275
|
// Suggest batch processing if many small requests
|
|
265
|
-
const totalRequests =
|
|
276
|
+
const totalRequests = entries.reduce((sum, p) => sum + p.requests, 0);
|
|
266
277
|
if (totalRequests > 1000 && totalCost / totalRequests < 0.001) {
|
|
267
278
|
suggestions.push('Consider batch processing for small requests to reduce overhead costs.');
|
|
268
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/utils/cost-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../src/utils/cost-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* threshold events. Persistence-agnostic: holds state in memory, serializes
|
|
6
6
|
* via snapshot()/restore() for any storage backend (D1, KV, R2, etc.).
|
|
7
7
|
*/
|
|
8
|
+
import type { Logger } from './logger';
|
|
8
9
|
export type ThresholdTier = 'warning' | 'critical' | 'emergency';
|
|
9
10
|
export type DepletionTier = 'depletion_warning' | 'depletion_critical' | 'depletion_emergency';
|
|
10
11
|
/** Timestamped spend entry for burn rate calculation. */
|
|
@@ -118,10 +119,12 @@ export declare class CreditLedger {
|
|
|
118
119
|
private lastFiredDepletionTier;
|
|
119
120
|
private spendHistory;
|
|
120
121
|
private ringBufferSize;
|
|
122
|
+
private logger;
|
|
121
123
|
constructor(config?: {
|
|
122
124
|
thresholds?: Partial<ThresholdConfig>;
|
|
123
125
|
budgets?: BudgetConfig[];
|
|
124
126
|
ringBufferSize?: number;
|
|
127
|
+
logger?: Logger;
|
|
125
128
|
});
|
|
126
129
|
record(provider: string, model: string, cost: number, inputTokens: number, outputTokens: number): void;
|
|
127
130
|
setBudget(config: BudgetConfig): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credit-ledger.d.ts","sourceRoot":"","sources":["../../src/utils/credit-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"credit-ledger.d.ts","sourceRoot":"","sources":["../../src/utils/credit-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* threshold events. Persistence-agnostic: holds state in memory, serializes
|
|
6
6
|
* via snapshot()/restore() for any storage backend (D1, KV, R2, etc.).
|
|
7
7
|
*/
|
|
8
|
+
import { noopLogger } from './logger';
|
|
8
9
|
// ─── Constants ──────────────────────────────────────────────
|
|
9
10
|
const DEFAULT_THRESHOLDS = {
|
|
10
11
|
warning: 0.80,
|
|
@@ -66,10 +67,12 @@ export class CreditLedger {
|
|
|
66
67
|
lastFiredDepletionTier = new Map();
|
|
67
68
|
spendHistory = [];
|
|
68
69
|
ringBufferSize;
|
|
70
|
+
logger;
|
|
69
71
|
constructor(config) {
|
|
70
72
|
this.thresholds = { ...DEFAULT_THRESHOLDS, ...config?.thresholds };
|
|
71
73
|
this.periodStart = Date.now();
|
|
72
74
|
this.ringBufferSize = config?.ringBufferSize ?? DEFAULT_RING_BUFFER_SIZE;
|
|
75
|
+
this.logger = config?.logger ?? noopLogger;
|
|
73
76
|
if (config?.budgets) {
|
|
74
77
|
for (const b of config.budgets)
|
|
75
78
|
this.setBudget(b);
|
|
@@ -370,7 +373,7 @@ export class CreditLedger {
|
|
|
370
373
|
}
|
|
371
374
|
restore(snapshot) {
|
|
372
375
|
if (snapshot.version !== 1) {
|
|
373
|
-
|
|
376
|
+
this.logger.warn(`[CreditLedger] Unknown snapshot version ${snapshot.version}, skipping restore`);
|
|
374
377
|
return;
|
|
375
378
|
}
|
|
376
379
|
this.periodStart = snapshot.periodStart;
|
|
@@ -455,7 +458,7 @@ export class CreditLedger {
|
|
|
455
458
|
listener(event);
|
|
456
459
|
}
|
|
457
460
|
catch (err) {
|
|
458
|
-
|
|
461
|
+
this.logger.warn('[CreditLedger] Listener error:', err instanceof Error ? err.message : String(err));
|
|
459
462
|
}
|
|
460
463
|
}
|
|
461
464
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credit-ledger.js","sourceRoot":"","sources":["../../src/utils/credit-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8HH,+DAA+D;AAE/D,MAAM,kBAAkB,GAAoB;IAC1C,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC;AACzB,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,8EAA8E;AAC9E,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC,0CAA0C;AAC1C,MAAM,2BAA2B,GAAG,EAAE,GAAG,OAAO,CAAC;AAEjD,wDAAwD;AACxD,MAAM,oBAAoB,GAAG;IAC3B,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;CACd,CAAC;AAEX,MAAM,kBAAkB,GAAkC;IACxD,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,gBAAgB,GAAuC;IAC3D,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,MAAM;CACZ,CAAC;AAEF,+DAA+D;AAE/D,SAAS,sBAAsB;IAC7B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,SAAS,yBAAyB,CAAC,SAAwB,IAAI;IAC7D,OAAO,EAAE,GAAG,sBAAsB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,UAA2B;IAC9E,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7B,IAAI,KAAK,IAAI,UAAU,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC;IACtD,IAAI,KAAK,IAAI,UAAU,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;IACpD,IAAI,KAAK,IAAI,UAAU,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,aAAa,GAAkC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAE/F,+DAA+D;AAE/D,MAAM,OAAO,YAAY;IACf,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACnD,UAAU,CAAkB;IAC5B,OAAO,GAAmB,EAAE,CAAC;IAC7B,SAAS,GAAqB,EAAE,CAAC;IACjC,WAAW,CAAS;IACpB,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC,CAAC,6BAA6B;IAC/E,sBAAsB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC1D,YAAY,GAAiB,EAAE,CAAC;IAChC,cAAc,CAAS;IAE/B,YAAY,MAIX;QACC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC;QACnE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,cAAc,IAAI,wBAAwB,CAAC;QACzE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,2DAA2D;IAE3D,MAAM,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAY,EAAE,WAAmB,EAAE,YAAoB;QAC7F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;QAE/C,qCAAqC;QACrC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC;QAClB,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC;QAC/B,GAAG,CAAC,YAAY,IAAI,YAAY,CAAC;QACjC,GAAG,CAAC,YAAY,EAAE,CAAC;QACnB,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;QAEzB,kCAAkC;QAClC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,sBAAsB,EAAE,CAAC;QACrE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;QACjB,EAAE,CAAC,WAAW,IAAI,WAAW,CAAC;QAC9B,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC;QAChC,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,cAAc,GAAG,GAAG,CAAC;QAExB,gDAAgD;QAChD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAiD,EAAE,CAAC;YAC3G,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;gBAChB,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;YAC3B,CAAC;YACD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,0BAA0B;QAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAClE,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClD,mDAAmD;gBACnD,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,IAAI,CAAC;wBACR,IAAI,EAAE,mBAAmB;wBACzB,QAAQ;wBACR,KAAK;wBACL,IAAI;wBACJ,KAAK,EAAE,GAAG,CAAC,KAAK;wBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,cAAc,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM;qBACvC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,QAAQ,EAAE,aAAa,KAAK,IAAI,IAAI,QAAQ,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9E,IAAI,aAAa,GAAyB,IAAI,CAAC;gBAC/C,IAAI,QAAQ,CAAC,aAAa,IAAI,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;oBACvE,aAAa,GAAG,qBAAqB,CAAC;gBACxC,CAAC;qBAAM,IAAI,QAAQ,CAAC,aAAa,IAAI,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;oBAC7E,aAAa,GAAG,oBAAoB,CAAC;gBACvC,CAAC;qBAAM,IAAI,QAAQ,CAAC,aAAa,IAAI,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;oBAC5E,aAAa,GAAG,mBAAmB,CAAC;gBACtC,CAAC;gBAED,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC1D,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAC,aAAa,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;wBACzD,IAAI,CAAC,IAAI,CAAC;4BACR,IAAI,EAAE,qBAAqB;4BAC3B,QAAQ;4BACR,IAAI,EAAE,aAAa;4BACnB,aAAa,EAAE,QAAQ,CAAC,aAAa;4BACrC,sBAAsB,EAAE,QAAQ,CAAC,sBAAuB;4BACxD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;yBAC5B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,2DAA2D;IAE3D,SAAS,CAAC,MAAoB;QAC5B,uDAAuD;QACvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAC9D,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtD,wBAAwB;QACxB,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;QACpC,CAAC;QAED,cAAc;QACd,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwC,EAAE,CAAC;gBACpG,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAClC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,UAAU,CAAC,GAAG,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,QAAgB,EAAE,KAAc;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAChD,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,2DAA2D;IAE3D,gBAAgB,CAAC,QAAgB,EAAE,KAAc;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,IAAI,KAAK,EAAE,CAAC;YACV,sCAAsC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;YACzF,IAAI,CAAC,WAAW,EAAE,aAAa;gBAAE,OAAO,IAAI,CAAC;YAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,WAAW,CAAC,aAAa,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,KAAc;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QAEnB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;YACzF,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,WAAW,CAAC,aAAa,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,mBAAmB,CAAC,QAAgB,EAAE,KAAa;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAAE,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS;QACP,MAAM,MAAM,GAAwC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;QAC1F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2DAA2D;IAE3D;;;OAGG;IACH,WAAW,CAAC,QAAgB,EAAE,QAAQ,GAAG,2BAA2B;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;QACvC,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;QAErC,OAAO;YACL,WAAW,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1D,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACvD,QAAQ;YACR,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,QAAgB,EAAE,QAAiB;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;QACzC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO;gBACL,eAAe,EAAE,CAAC;gBAClB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC9C,sBAAsB,EAAE,IAAI,IAAI,EAAE;gBAClC,aAAa,EAAE,CAAC;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,eAAe,EAAE,SAAS;gBAC1B,QAAQ;gBACR,sBAAsB,EAAE,IAAI;gBAC5B,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtD,MAAM,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC;QAC3C,OAAO;YACL,eAAe,EAAE,SAAS;YAC1B,QAAQ;YACR,sBAAsB,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;YAC1D,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB,EAAE,QAAgB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;QAEhG,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,WAAW,EAAE,CAAC,EAAG,mEAAmE;YACpF,YAAY,EAAE,CAAC;YACf,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAgB;QAChC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,2DAA2D;IAE3D,cAAc,CAAC,QAAgB,EAAE,SAA6B;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEtD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEzD,2BAA2B;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAChB,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK;YACnC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,2DAA2D;IAE3D,QAAQ;QACN,MAAM,SAAS,GAAsC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,SAAS,CAAC,IAAI,CAAC,GAAG;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE;gBACzB,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE;aAClC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS;YACT,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAA8B;QACpC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,2CAA2C,QAAQ,CAAC,OAAO,oBAAoB,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACrC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YACzC,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE9B,iEAAiE;YACjE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAClE,IAAI,IAAI;oBAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,2DAA2D;IAE3D,WAAW;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;YACpB,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,sBAAsB,EAAE,CAAC;YAC/C,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;oBAChB,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,2DAA2D;IAE3D,EAAE,CAAC,QAAwB;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC;IAED,2DAA2D;IAEnD,mBAAmB,CAAC,IAAY;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7E,GAAG,GAAG,yBAAyB,CAAC,YAAY,EAAE,aAAa,IAAI,IAAI,CAAC,CAAC;YAErE,mDAAmD;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;YAChF,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC,UAAU;oBAAE,SAAS;gBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAwC,EAAE,CAAC;oBAChG,IAAI,KAAK,KAAK,SAAS;wBAAE,SAAS;oBAClC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,IAAI,CAAC,KAAkB;QAC7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"credit-ledger.js","sourceRoot":"","sources":["../../src/utils/credit-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exhaustion Registry
|
|
3
|
+
*
|
|
4
|
+
* Tracks which providers are currently quota-exhausted and auto-resets
|
|
5
|
+
* after a configurable cooldown period. Eliminates the need for callers
|
|
6
|
+
* to maintain their own exhaustion maps.
|
|
7
|
+
*/
|
|
8
|
+
export interface ExhaustionEntry {
|
|
9
|
+
provider: string;
|
|
10
|
+
exhaustedAt: number;
|
|
11
|
+
resetAt: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class ExhaustionRegistry {
|
|
14
|
+
private entries;
|
|
15
|
+
readonly defaultResetMs: number;
|
|
16
|
+
constructor(defaultResetMs?: number);
|
|
17
|
+
/**
|
|
18
|
+
* Mark a provider as quota-exhausted.
|
|
19
|
+
* Automatically clears after `resetAfterMs` (default: 5 min).
|
|
20
|
+
*/
|
|
21
|
+
markExhausted(provider: string, resetAfterMs?: number): void;
|
|
22
|
+
/**
|
|
23
|
+
* Check if a provider is currently exhausted.
|
|
24
|
+
* Automatically clears expired entries.
|
|
25
|
+
*/
|
|
26
|
+
isExhausted(provider: string): boolean;
|
|
27
|
+
/** Manually clear exhaustion for a provider. */
|
|
28
|
+
clearExhaustion(provider: string): void;
|
|
29
|
+
/** Get list of currently exhausted providers. */
|
|
30
|
+
getExhaustedProviders(): string[];
|
|
31
|
+
/** Get the entry for a specific provider (if exhausted). */
|
|
32
|
+
getEntry(provider: string): ExhaustionEntry | undefined;
|
|
33
|
+
/** Clear all exhaustion state. */
|
|
34
|
+
reset(): void;
|
|
35
|
+
}
|
|
36
|
+
/** Shared singleton — same pattern as defaultCircuitBreakerManager. */
|
|
37
|
+
export declare const defaultExhaustionRegistry: ExhaustionRegistry;
|
|
38
|
+
//# sourceMappingURL=exhaustion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exhaustion.d.ts","sourceRoot":"","sources":["../../src/utils/exhaustion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA2C;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,cAAc,GAAE,MAAyB;IAIrD;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAU5D;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAYtC,gDAAgD;IAChD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIvC,iDAAiD;IACjD,qBAAqB,IAAI,MAAM,EAAE;IAejC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAKvD,kCAAkC;IAClC,KAAK,IAAI,IAAI;CAGd;AAED,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,oBAA2B,CAAC"}
|