mcp-usage-control-cloudflare 1.0.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 +201 -0
- package/README.md +115 -0
- package/dist/auth.d.ts +16 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +42 -0
- package/dist/auth.js.map +1 -0
- package/dist/index.d.ts +384 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1487 -0
- package/dist/index.js.map +1 -0
- package/dist/maintenance-protocol.d.ts +22 -0
- package/dist/maintenance-protocol.d.ts.map +1 -0
- package/dist/maintenance-protocol.js +79 -0
- package/dist/maintenance-protocol.js.map +1 -0
- package/dist/maintenance.d.ts +35 -0
- package/dist/maintenance.d.ts.map +1 -0
- package/dist/maintenance.js +291 -0
- package/dist/maintenance.js.map +1 -0
- package/dist/reconciliation-protocol.d.ts +34 -0
- package/dist/reconciliation-protocol.d.ts.map +1 -0
- package/dist/reconciliation-protocol.js +97 -0
- package/dist/reconciliation-protocol.js.map +1 -0
- package/dist/reconciliation.d.ts +19 -0
- package/dist/reconciliation.d.ts.map +1 -0
- package/dist/reconciliation.js +402 -0
- package/dist/reconciliation.js.map +1 -0
- package/dist/schema.d.ts +12 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +265 -0
- package/dist/schema.js.map +1 -0
- package/dist/versioned-worker.d.ts +17 -0
- package/dist/versioned-worker.d.ts.map +1 -0
- package/dist/versioned-worker.js +24 -0
- package/dist/versioned-worker.js.map +1 -0
- package/dist/worker.d.ts +27 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +1152 -0
- package/dist/worker.js.map +1 -0
- package/package.json +108 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
import { type Budget, type GrowReservationInput, type MarkLiableInput, type ProgressiveUsageStore, type MarkLiableResult, type RenewInput, type RenewResult, type SettleInput, type SettlementResult, type StoreGrowResult, type StoreReserveResult, type UsageObserver, type UsageRequest, type VectorGrowReservationInput, type VectorReserveInput, type VectorSettleInput, type VectorSettlementResult, type VectorUsageStore, type StoreVectorGrowResult, type StoreVectorReserveResult } from 'mcp-usage-control';
|
|
2
|
+
export interface CloudflareRecoverySummary {
|
|
3
|
+
pendingCount: number;
|
|
4
|
+
pendingUnits: number;
|
|
5
|
+
liableCount: number;
|
|
6
|
+
liableUnits: number;
|
|
7
|
+
vectorPendingCount?: number;
|
|
8
|
+
vectorLiableCount?: number;
|
|
9
|
+
}
|
|
10
|
+
export type CloudflareDirectRecovery = {
|
|
11
|
+
reservationId: string;
|
|
12
|
+
state: 'pending' | 'liable';
|
|
13
|
+
reservedUnits: number;
|
|
14
|
+
} | {
|
|
15
|
+
reservationId: string;
|
|
16
|
+
state: 'pending' | 'liable';
|
|
17
|
+
vector: true;
|
|
18
|
+
dimensionCount: number;
|
|
19
|
+
budgetCount: number;
|
|
20
|
+
};
|
|
21
|
+
export interface CloudflareRecoveryReport {
|
|
22
|
+
aggregate: CloudflareRecoverySummary;
|
|
23
|
+
direct?: CloudflareDirectRecovery;
|
|
24
|
+
}
|
|
25
|
+
export type CloudflareStoreErrorCode = 'not_found_or_expired' | 'settlement_conflict' | 'actual_units_exceed_reserved' | 'growth_conflict' | 'growth_stale_cursor' | 'growth_budget_mismatch' | 'growth_not_supported' | 'vector_dimension_mismatch' | 'usage_mode_mismatch';
|
|
26
|
+
export type CloudflareStoreEnvelope<T> = {
|
|
27
|
+
ok: true;
|
|
28
|
+
result: T;
|
|
29
|
+
recovery: CloudflareRecoveryReport;
|
|
30
|
+
} | {
|
|
31
|
+
ok: false;
|
|
32
|
+
error: CloudflareStoreErrorCode;
|
|
33
|
+
recovery: CloudflareRecoveryReport;
|
|
34
|
+
};
|
|
35
|
+
export interface CloudflareHashedBudget {
|
|
36
|
+
id: string;
|
|
37
|
+
limit: number;
|
|
38
|
+
}
|
|
39
|
+
export interface CloudflareHashedDimension {
|
|
40
|
+
id: string;
|
|
41
|
+
units: number;
|
|
42
|
+
budgets: readonly CloudflareHashedBudget[];
|
|
43
|
+
}
|
|
44
|
+
export interface CloudflareVectorGrowthDimension {
|
|
45
|
+
id: string;
|
|
46
|
+
additionalUnits: number;
|
|
47
|
+
budgets: readonly CloudflareHashedBudget[];
|
|
48
|
+
}
|
|
49
|
+
export interface CloudflareVectorActualDimension {
|
|
50
|
+
id: string;
|
|
51
|
+
actualUnits: number;
|
|
52
|
+
}
|
|
53
|
+
export interface CloudflareReserveCommand {
|
|
54
|
+
reservationId: string;
|
|
55
|
+
units: number;
|
|
56
|
+
budgets: readonly CloudflareHashedBudget[];
|
|
57
|
+
ttlMs: number;
|
|
58
|
+
cleanupBatchSize: number;
|
|
59
|
+
idempotencyTtlMs: number;
|
|
60
|
+
initialGrowthCursor: string;
|
|
61
|
+
}
|
|
62
|
+
export type CloudflareReserveReply = {
|
|
63
|
+
accepted: true;
|
|
64
|
+
expiresAt: number;
|
|
65
|
+
remainingByBudget: readonly {
|
|
66
|
+
id: string;
|
|
67
|
+
remaining: number;
|
|
68
|
+
}[];
|
|
69
|
+
} | {
|
|
70
|
+
accepted: false;
|
|
71
|
+
reason: 'quota_exceeded' | 'duplicate_operation';
|
|
72
|
+
limitingBudgetId?: string;
|
|
73
|
+
remaining?: number;
|
|
74
|
+
};
|
|
75
|
+
export interface CloudflareVectorReserveCommand {
|
|
76
|
+
reservationId: string;
|
|
77
|
+
dimensions: readonly CloudflareHashedDimension[];
|
|
78
|
+
ttlMs: number;
|
|
79
|
+
cleanupBatchSize: number;
|
|
80
|
+
idempotencyTtlMs: number;
|
|
81
|
+
initialGrowthCursor: string;
|
|
82
|
+
}
|
|
83
|
+
export type CloudflareVectorReserveReply = {
|
|
84
|
+
accepted: true;
|
|
85
|
+
expiresAt: number;
|
|
86
|
+
remainingByBudget: readonly {
|
|
87
|
+
dimensionId: string;
|
|
88
|
+
budgetId: string;
|
|
89
|
+
remaining: number;
|
|
90
|
+
}[];
|
|
91
|
+
} | {
|
|
92
|
+
accepted: false;
|
|
93
|
+
reason: 'quota_exceeded' | 'duplicate_operation';
|
|
94
|
+
limitingDimensionId?: string;
|
|
95
|
+
limitingBudgetId?: string;
|
|
96
|
+
remaining?: number;
|
|
97
|
+
};
|
|
98
|
+
export interface CloudflareGrowCommand {
|
|
99
|
+
reservationId: string;
|
|
100
|
+
incrementHash: string;
|
|
101
|
+
expectedGrowthCursor: string;
|
|
102
|
+
additionalUnits: number;
|
|
103
|
+
budgets: readonly CloudflareHashedBudget[];
|
|
104
|
+
fingerprint: string;
|
|
105
|
+
nextGrowthCursor: string;
|
|
106
|
+
idempotencyTtlMs: number;
|
|
107
|
+
}
|
|
108
|
+
export type CloudflareGrowReply = {
|
|
109
|
+
accepted: true;
|
|
110
|
+
replayed: boolean;
|
|
111
|
+
previousReservedUnits: number;
|
|
112
|
+
reservedUnits: number;
|
|
113
|
+
growthCursor: string;
|
|
114
|
+
remainingByBudget: readonly {
|
|
115
|
+
id: string;
|
|
116
|
+
remaining: number;
|
|
117
|
+
}[];
|
|
118
|
+
} | {
|
|
119
|
+
accepted: false;
|
|
120
|
+
reason: 'quota_exceeded';
|
|
121
|
+
replayed: boolean;
|
|
122
|
+
growthCursor: string;
|
|
123
|
+
limitingBudgetId: string;
|
|
124
|
+
remaining: number;
|
|
125
|
+
};
|
|
126
|
+
export interface CloudflareVectorGrowCommand {
|
|
127
|
+
reservationId: string;
|
|
128
|
+
incrementHash: string;
|
|
129
|
+
expectedGrowthCursor: string;
|
|
130
|
+
dimensions: readonly CloudflareVectorGrowthDimension[];
|
|
131
|
+
fingerprint: string;
|
|
132
|
+
nextGrowthCursor: string;
|
|
133
|
+
idempotencyTtlMs: number;
|
|
134
|
+
}
|
|
135
|
+
export type CloudflareVectorGrowReply = {
|
|
136
|
+
accepted: true;
|
|
137
|
+
replayed: boolean;
|
|
138
|
+
previousReservedByDimension: readonly {
|
|
139
|
+
id: string;
|
|
140
|
+
reservedUnits: number;
|
|
141
|
+
}[];
|
|
142
|
+
reservedByDimension: readonly {
|
|
143
|
+
id: string;
|
|
144
|
+
reservedUnits: number;
|
|
145
|
+
}[];
|
|
146
|
+
growthCursor: string;
|
|
147
|
+
remainingByBudget: readonly {
|
|
148
|
+
dimensionId: string;
|
|
149
|
+
budgetId: string;
|
|
150
|
+
remaining: number;
|
|
151
|
+
}[];
|
|
152
|
+
} | {
|
|
153
|
+
accepted: false;
|
|
154
|
+
reason: 'quota_exceeded';
|
|
155
|
+
replayed: boolean;
|
|
156
|
+
growthCursor: string;
|
|
157
|
+
limitingDimensionId: string;
|
|
158
|
+
limitingBudgetId: string;
|
|
159
|
+
remaining: number;
|
|
160
|
+
};
|
|
161
|
+
export interface CloudflareMarkLiableCommand {
|
|
162
|
+
reservationId: string;
|
|
163
|
+
idempotencyTtlMs: number;
|
|
164
|
+
}
|
|
165
|
+
export interface CloudflareRenewCommand {
|
|
166
|
+
reservationId: string;
|
|
167
|
+
ttlMs: number;
|
|
168
|
+
idempotencyTtlMs: number;
|
|
169
|
+
}
|
|
170
|
+
export interface CloudflareSettleCommand {
|
|
171
|
+
reservationId: string;
|
|
172
|
+
actualUnits: number;
|
|
173
|
+
outcomeHash: string;
|
|
174
|
+
idempotencyTtlMs: number;
|
|
175
|
+
}
|
|
176
|
+
export interface CloudflareSettlementReply {
|
|
177
|
+
reservedUnits: number;
|
|
178
|
+
actualUnits: number;
|
|
179
|
+
releasedUnits: number;
|
|
180
|
+
replayed: boolean;
|
|
181
|
+
}
|
|
182
|
+
export interface CloudflareVectorSettleCommand {
|
|
183
|
+
reservationId: string;
|
|
184
|
+
actualByDimension: readonly CloudflareVectorActualDimension[];
|
|
185
|
+
outcomeHash: string;
|
|
186
|
+
idempotencyTtlMs: number;
|
|
187
|
+
}
|
|
188
|
+
export interface CloudflareVectorSettlementReply {
|
|
189
|
+
dimensions: readonly {
|
|
190
|
+
id: string;
|
|
191
|
+
reservedUnits: number;
|
|
192
|
+
actualUnits: number;
|
|
193
|
+
releasedUnits: number;
|
|
194
|
+
}[];
|
|
195
|
+
replayed: boolean;
|
|
196
|
+
}
|
|
197
|
+
/** Structural type for a Durable Object RPC stub. */
|
|
198
|
+
export interface CloudflareUsageDurableObjectStub {
|
|
199
|
+
reserve(command: CloudflareReserveCommand): Promise<CloudflareStoreEnvelope<CloudflareReserveReply>>;
|
|
200
|
+
reserveVector?(command: CloudflareVectorReserveCommand): Promise<CloudflareStoreEnvelope<CloudflareVectorReserveReply>>;
|
|
201
|
+
grow?(command: CloudflareGrowCommand): Promise<CloudflareStoreEnvelope<CloudflareGrowReply>>;
|
|
202
|
+
growVector?(command: CloudflareVectorGrowCommand): Promise<CloudflareStoreEnvelope<CloudflareVectorGrowReply>>;
|
|
203
|
+
markLiable(command: CloudflareMarkLiableCommand): Promise<CloudflareStoreEnvelope<{
|
|
204
|
+
expiresAt: number;
|
|
205
|
+
}>>;
|
|
206
|
+
renew(command: CloudflareRenewCommand): Promise<CloudflareStoreEnvelope<{
|
|
207
|
+
expiresAt: number;
|
|
208
|
+
}>>;
|
|
209
|
+
settle(command: CloudflareSettleCommand): Promise<CloudflareStoreEnvelope<CloudflareSettlementReply>>;
|
|
210
|
+
settleVector?(command: CloudflareVectorSettleCommand): Promise<CloudflareStoreEnvelope<CloudflareVectorSettlementReply>>;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Structural namespace type so this package does not force generated Cloudflare
|
|
214
|
+
* runtime types on Node-only remote clients.
|
|
215
|
+
*/
|
|
216
|
+
export interface CloudflareDurableObjectNamespace {
|
|
217
|
+
getByName?(name: string): CloudflareUsageDurableObjectStub;
|
|
218
|
+
idFromName?(name: string): unknown;
|
|
219
|
+
get?(id: unknown): CloudflareUsageDurableObjectStub;
|
|
220
|
+
}
|
|
221
|
+
export interface CloudflareUsageStoreOptions {
|
|
222
|
+
/** One Durable Object is one atomic usage-control transaction domain. */
|
|
223
|
+
domainName?: string;
|
|
224
|
+
/** Maximum expired reservations/tombstones reclaimed by one reserve call. */
|
|
225
|
+
cleanupBatchSize?: number;
|
|
226
|
+
/** Settled replay-protection period. Defaults to 24 hours. */
|
|
227
|
+
idempotencyTtlMs?: number;
|
|
228
|
+
/** Optional best-effort recovery observer. */
|
|
229
|
+
observer?: UsageObserver;
|
|
230
|
+
}
|
|
231
|
+
/** Worker-local UsageStore backed by a Durable Object namespace binding. */
|
|
232
|
+
export declare class CloudflareUsageStore implements ProgressiveUsageStore, VectorUsageStore {
|
|
233
|
+
private readonly namespace;
|
|
234
|
+
private readonly options;
|
|
235
|
+
constructor(namespace: CloudflareDurableObjectNamespace, options?: CloudflareUsageStoreOptions);
|
|
236
|
+
reserve(input: {
|
|
237
|
+
request: UsageRequest;
|
|
238
|
+
units: number;
|
|
239
|
+
budgets: readonly Budget[];
|
|
240
|
+
ttlMs: number;
|
|
241
|
+
}): Promise<StoreReserveResult>;
|
|
242
|
+
reserveVector(input: VectorReserveInput): Promise<StoreVectorReserveResult>;
|
|
243
|
+
growVectorReservation(input: VectorGrowReservationInput): Promise<StoreVectorGrowResult>;
|
|
244
|
+
settleVector(input: VectorSettleInput): Promise<VectorSettlementResult>;
|
|
245
|
+
growReservation(input: GrowReservationInput): Promise<StoreGrowResult>;
|
|
246
|
+
markLiable(input: MarkLiableInput): Promise<MarkLiableResult>;
|
|
247
|
+
renew(input: RenewInput): Promise<RenewResult>;
|
|
248
|
+
settle(input: SettleInput): Promise<SettlementResult>;
|
|
249
|
+
private stub;
|
|
250
|
+
private emitRecovery;
|
|
251
|
+
}
|
|
252
|
+
export interface RemoteCloudflareUsageStoreOptions {
|
|
253
|
+
/** HTTPS endpoint exposing createCloudflareUsageStoreGateway(). */
|
|
254
|
+
endpoint: string;
|
|
255
|
+
/** Authorization or other request headers. Prefer a callback for rotating credentials. */
|
|
256
|
+
headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
|
|
257
|
+
/** Override fetch for tests or custom transports. No automatic retry is performed. */
|
|
258
|
+
fetch?: typeof fetch;
|
|
259
|
+
/**
|
|
260
|
+
* Full-call timeout covering header resolution, fetch, and response decoding. Defaults to 10 seconds.
|
|
261
|
+
* Must not exceed 2,147,483,647ms, the portable setTimeout ceiling used by supported runtimes.
|
|
262
|
+
*/
|
|
263
|
+
timeoutMs?: number;
|
|
264
|
+
/** Optional best-effort recovery observer. */
|
|
265
|
+
observer?: UsageObserver;
|
|
266
|
+
}
|
|
267
|
+
export declare class CloudflareUsageTransportError extends Error {
|
|
268
|
+
readonly code: 'timeout' | 'network' | 'unauthorized' | 'remote' | 'protocol';
|
|
269
|
+
/** Bounded HTTP status metadata when a response was received. Response bodies are never exposed. */
|
|
270
|
+
readonly status?: number | undefined;
|
|
271
|
+
constructor(code: 'timeout' | 'network' | 'unauthorized' | 'remote' | 'protocol',
|
|
272
|
+
/** Bounded HTTP status metadata when a response was received. Response bodies are never exposed. */
|
|
273
|
+
status?: number | undefined);
|
|
274
|
+
}
|
|
275
|
+
/** Node/edge remote UsageStore for a separately deployed Cloudflare gateway Worker. */
|
|
276
|
+
export declare class RemoteCloudflareUsageStore implements ProgressiveUsageStore, VectorUsageStore {
|
|
277
|
+
private readonly options;
|
|
278
|
+
private readonly endpoint;
|
|
279
|
+
private readonly fetchImpl;
|
|
280
|
+
private readonly timeoutMs;
|
|
281
|
+
private readonly observer?;
|
|
282
|
+
constructor(options: RemoteCloudflareUsageStoreOptions);
|
|
283
|
+
reserve(input: {
|
|
284
|
+
request: UsageRequest;
|
|
285
|
+
units: number;
|
|
286
|
+
budgets: readonly Budget[];
|
|
287
|
+
ttlMs: number;
|
|
288
|
+
}): Promise<StoreReserveResult>;
|
|
289
|
+
reserveVector(input: VectorReserveInput): Promise<StoreVectorReserveResult>;
|
|
290
|
+
growVectorReservation(input: VectorGrowReservationInput): Promise<StoreVectorGrowResult>;
|
|
291
|
+
settleVector(input: VectorSettleInput): Promise<VectorSettlementResult>;
|
|
292
|
+
growReservation(input: GrowReservationInput): Promise<StoreGrowResult>;
|
|
293
|
+
markLiable(input: MarkLiableInput): Promise<MarkLiableResult>;
|
|
294
|
+
renew(input: RenewInput): Promise<RenewResult>;
|
|
295
|
+
settle(input: SettleInput): Promise<SettlementResult>;
|
|
296
|
+
private post;
|
|
297
|
+
private emitRecovery;
|
|
298
|
+
}
|
|
299
|
+
export type CloudflareGatewayAuthorize = (request: Request) => boolean | Promise<boolean>;
|
|
300
|
+
export interface CloudflareUsageStoreGatewayOptions extends CloudflareUsageStoreOptions {
|
|
301
|
+
namespace: CloudflareDurableObjectNamespace;
|
|
302
|
+
/** Required application-defined auth. There is intentionally no allow-all default. */
|
|
303
|
+
authorize: CloudflareGatewayAuthorize;
|
|
304
|
+
/** Defaults to /v1/usage-store. */
|
|
305
|
+
path?: string;
|
|
306
|
+
}
|
|
307
|
+
export type CloudflareHttpRequest = {
|
|
308
|
+
version: 1;
|
|
309
|
+
method: 'reserve';
|
|
310
|
+
input: {
|
|
311
|
+
reservationId: string;
|
|
312
|
+
units: number;
|
|
313
|
+
budgets: readonly CloudflareHashedBudget[];
|
|
314
|
+
ttlMs: number;
|
|
315
|
+
initialGrowthCursor: string;
|
|
316
|
+
};
|
|
317
|
+
} | {
|
|
318
|
+
version: 1;
|
|
319
|
+
method: 'reserve_vector';
|
|
320
|
+
input: {
|
|
321
|
+
reservationId: string;
|
|
322
|
+
dimensions: readonly CloudflareHashedDimension[];
|
|
323
|
+
ttlMs: number;
|
|
324
|
+
initialGrowthCursor: string;
|
|
325
|
+
};
|
|
326
|
+
} | {
|
|
327
|
+
version: 1;
|
|
328
|
+
method: 'grow';
|
|
329
|
+
input: {
|
|
330
|
+
reservationId: string;
|
|
331
|
+
incrementHash: string;
|
|
332
|
+
expectedGrowthCursor: string;
|
|
333
|
+
additionalUnits: number;
|
|
334
|
+
budgets: readonly CloudflareHashedBudget[];
|
|
335
|
+
fingerprint: string;
|
|
336
|
+
nextGrowthCursor: string;
|
|
337
|
+
};
|
|
338
|
+
} | {
|
|
339
|
+
version: 1;
|
|
340
|
+
method: 'grow_vector';
|
|
341
|
+
input: {
|
|
342
|
+
reservationId: string;
|
|
343
|
+
incrementHash: string;
|
|
344
|
+
expectedGrowthCursor: string;
|
|
345
|
+
dimensions: readonly CloudflareVectorGrowthDimension[];
|
|
346
|
+
fingerprint: string;
|
|
347
|
+
nextGrowthCursor: string;
|
|
348
|
+
};
|
|
349
|
+
} | {
|
|
350
|
+
version: 1;
|
|
351
|
+
method: 'mark_liable';
|
|
352
|
+
input: {
|
|
353
|
+
reservationId: string;
|
|
354
|
+
};
|
|
355
|
+
} | {
|
|
356
|
+
version: 1;
|
|
357
|
+
method: 'renew';
|
|
358
|
+
input: {
|
|
359
|
+
reservationId: string;
|
|
360
|
+
ttlMs: number;
|
|
361
|
+
};
|
|
362
|
+
} | {
|
|
363
|
+
version: 1;
|
|
364
|
+
method: 'settle';
|
|
365
|
+
input: {
|
|
366
|
+
reservationId: string;
|
|
367
|
+
actualUnits: number;
|
|
368
|
+
outcomeHash: string;
|
|
369
|
+
};
|
|
370
|
+
} | {
|
|
371
|
+
version: 1;
|
|
372
|
+
method: 'settle_vector';
|
|
373
|
+
input: {
|
|
374
|
+
reservationId: string;
|
|
375
|
+
actualByDimension: readonly CloudflareVectorActualDimension[];
|
|
376
|
+
outcomeHash: string;
|
|
377
|
+
};
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* Creates a public-HTTP-compatible Worker handler for non-Cloudflare callers.
|
|
381
|
+
* Authentication is mandatory and must be supplied by the application.
|
|
382
|
+
*/
|
|
383
|
+
export declare function createCloudflareUsageStoreGateway(options: CloudflareUsageStoreGatewayOptions): (request: Request) => Promise<Response>;
|
|
384
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|