@convex-dev/ai-budget 0.0.2-alpha.0 → 0.0.2-alpha.12

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.
@@ -20,22 +20,28 @@ import type { FunctionReference } from "convex/server";
20
20
  */
21
21
  export type ComponentApi<Name extends string | undefined = string | undefined> = {
22
22
  lib: {
23
- bumpAction: FunctionReference<"mutation", "internal", {
23
+ adjustBucket: FunctionReference<"mutation", "internal", {
24
+ deltaNanos: number;
25
+ dimension: string;
26
+ reason?: string;
27
+ tokens?: number;
28
+ value: string;
29
+ }, null, Name>;
30
+ bumpBucket: FunctionReference<"mutation", "internal", {
24
31
  dailyNanos?: number;
32
+ dimension: string;
25
33
  lifetimeNanos?: number;
26
- name: string;
34
+ monthlyNanos?: number;
35
+ value: string;
27
36
  }, null, Name>;
28
37
  bumpGlobal: FunctionReference<"mutation", "internal", {
29
38
  dailyNanos?: number;
30
39
  lifetimeNanos?: number;
40
+ monthlyNanos?: number;
31
41
  }, null, Name>;
32
- bumpUser: FunctionReference<"mutation", "internal", {
33
- dailyNanos?: number;
34
- lifetimeNanos?: number;
35
- userId: string;
36
- }, null, Name>;
37
- deleteUser: FunctionReference<"mutation", "internal", {
38
- userId: string;
42
+ deleteBucket: FunctionReference<"mutation", "internal", {
43
+ dimension: string;
44
+ value: string;
39
45
  }, {
40
46
  deletedThisBatch: number;
41
47
  done: boolean;
@@ -43,18 +49,26 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
43
49
  finishRequest: FunctionReference<"mutation", "internal", {
44
50
  cachedTokens?: number;
45
51
  completionTokens?: number;
52
+ costNanos?: number;
46
53
  error?: string;
47
54
  latencyMs?: number;
48
55
  promptTokens?: number;
49
56
  requestId: string;
50
57
  responseText?: string;
58
+ serverToolUses?: Record<string, number>;
51
59
  }, {
52
60
  costNanos: number;
53
61
  }, Name>;
62
+ getBucket: FunctionReference<"query", "internal", {
63
+ dimension: string;
64
+ value: string;
65
+ }, any, Name>;
54
66
  getGlobalStatus: FunctionReference<"query", "internal", {}, {
55
67
  dailySpendLimitNanos: number | null;
68
+ defaultWarnAtPct: number | null;
56
69
  enforcement: "hard" | "soft";
57
70
  lifetimeSpendLimitNanos: number | null;
71
+ retentionMs: number | null;
58
72
  spentTodayNanos: number;
59
73
  spentTotalNanos: number;
60
74
  }, Name>;
@@ -68,42 +82,51 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
68
82
  lineage: FunctionReference<"query", "internal", {
69
83
  requestId: string;
70
84
  }, any, Name>;
71
- listActions: FunctionReference<"query", "internal", {}, any, Name>;
85
+ listAdjustments: FunctionReference<"query", "internal", {
86
+ dimension: string;
87
+ limit?: number;
88
+ value: string;
89
+ }, any, Name>;
90
+ listBuckets: FunctionReference<"query", "internal", {
91
+ dimension?: string;
92
+ }, any, Name>;
72
93
  listPrices: FunctionReference<"query", "internal", {}, any, Name>;
73
94
  listRequests: FunctionReference<"query", "internal", {
95
+ dimension?: string;
74
96
  limit?: number;
75
97
  userId?: string;
98
+ value?: string;
76
99
  }, any, Name>;
77
- listUsers: FunctionReference<"query", "internal", {}, any, Name>;
78
- setActionLimits: FunctionReference<"mutation", "internal", {
100
+ listServerToolPrices: FunctionReference<"query", "internal", {}, any, Name>;
101
+ setAlertDefaults: FunctionReference<"mutation", "internal", {
102
+ warnAtPct?: number;
103
+ }, null, Name>;
104
+ setBucketLimits: FunctionReference<"mutation", "internal", {
105
+ blocked?: boolean;
79
106
  dailySpendLimitNanos?: number;
80
107
  dailyTokenLimit?: number;
81
- disabled?: boolean;
108
+ dimension: string;
82
109
  enforcement?: "hard" | "soft";
83
110
  lifetimeSpendLimitNanos?: number;
84
111
  lifetimeTokenLimit?: number;
85
- name: string;
112
+ maxConcurrent?: number;
113
+ monthlySpendLimitNanos?: number;
114
+ monthlyTokenLimit?: number;
115
+ requestsPerMinute?: number;
116
+ value: string;
117
+ warnAtPct?: number;
86
118
  }, null, Name>;
87
119
  setGlobalLimits: FunctionReference<"mutation", "internal", {
88
120
  dailySpendLimitNanos?: number;
89
121
  enforcement?: "hard" | "soft";
90
122
  lifetimeSpendLimitNanos?: number;
91
123
  }, null, Name>;
92
- setLimits: FunctionReference<"mutation", "internal", {
93
- blocked?: boolean;
94
- dailySpendLimitNanos?: number;
95
- dailyTokenLimit?: number;
96
- enforcement?: "hard" | "soft";
97
- lifetimeSpendLimitNanos?: number;
98
- lifetimeTokenLimit?: number;
99
- requestsPerMinute?: number;
100
- userId: string;
101
- }, null, Name>;
102
124
  setModelPolicy: FunctionReference<"mutation", "internal", {
103
125
  mode: "open" | "allowlist" | "denylist";
104
126
  models: Array<string>;
105
127
  }, null, Name>;
106
128
  setPrice: FunctionReference<"mutation", "internal", {
129
+ cachedNanosPerMTok?: number;
107
130
  inputNanosPerMTok: number;
108
131
  model: string;
109
132
  outputNanosPerMTok: number;
@@ -111,6 +134,10 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
111
134
  setRetention: FunctionReference<"mutation", "internal", {
112
135
  retentionMs: number;
113
136
  }, null, Name>;
137
+ setServerToolPrice: FunctionReference<"mutation", "internal", {
138
+ nanosPerCall: number;
139
+ tool: string;
140
+ }, null, Name>;
114
141
  startRequest: FunctionReference<"mutation", "internal", {
115
142
  actionName?: string;
116
143
  messages: Array<{
@@ -119,9 +146,14 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
119
146
  }>;
120
147
  model: string;
121
148
  rerunOf?: string;
149
+ tags?: Array<{
150
+ dimension: string;
151
+ value: string;
152
+ }>;
122
153
  userId: string;
123
154
  }, {
124
155
  allowed: true;
156
+ notices: Array<string>;
125
157
  requestId: string;
126
158
  warnings: Array<string>;
127
159
  } | {
@@ -129,5 +161,11 @@ export type ComponentApi<Name extends string | undefined = string | undefined> =
129
161
  code: string;
130
162
  reason: string;
131
163
  }, Name>;
164
+ usageHistory: FunctionReference<"query", "internal", {
165
+ dimension: string;
166
+ limit?: number;
167
+ period: "day" | "month";
168
+ value: string;
169
+ }, any, Name>;
132
170
  };
133
171
  };
@@ -1,5 +1,9 @@
1
1
  export declare const startRequest: import("convex/server").RegisteredMutation<"public", {
2
2
  actionName?: string | undefined;
3
+ tags?: {
4
+ dimension: string;
5
+ value: string;
6
+ }[] | undefined;
3
7
  rerunOf?: import("convex/values").GenericId<"requests"> | undefined;
4
8
  userId: string;
5
9
  model: string;
@@ -15,6 +19,7 @@ export declare const startRequest: import("convex/server").RegisteredMutation<"p
15
19
  allowed: true;
16
20
  requestId: import("convex/values").GenericId<"requests">;
17
21
  warnings: string[];
22
+ notices: string[];
18
23
  }>>;
19
24
  export declare const finishRequest: import("convex/server").RegisteredMutation<"public", {
20
25
  error?: string | undefined;
@@ -22,6 +27,8 @@ export declare const finishRequest: import("convex/server").RegisteredMutation<"
22
27
  promptTokens?: number | undefined;
23
28
  completionTokens?: number | undefined;
24
29
  cachedTokens?: number | undefined;
30
+ serverToolUses?: Record<string, number> | undefined;
31
+ costNanos?: number | undefined;
25
32
  latencyMs?: number | undefined;
26
33
  requestId: import("convex/values").GenericId<"requests">;
27
34
  }, Promise<{
@@ -45,6 +52,10 @@ export declare const lineage: import("convex/server").RegisteredQuery<"public",
45
52
  _id: import("convex/values").GenericId<"requests">;
46
53
  _creationTime: number;
47
54
  actionName?: string | undefined;
55
+ tags?: {
56
+ dimension: string;
57
+ value: string;
58
+ }[] | undefined;
48
59
  estimatedNanos?: number | undefined;
49
60
  estimatedTokens?: number | undefined;
50
61
  unpricedModel?: boolean | undefined;
@@ -55,6 +66,7 @@ export declare const lineage: import("convex/server").RegisteredQuery<"public",
55
66
  promptTokens?: number | undefined;
56
67
  completionTokens?: number | undefined;
57
68
  cachedTokens?: number | undefined;
69
+ serverToolUses?: Record<string, number> | undefined;
58
70
  costNanos?: number | undefined;
59
71
  latencyMs?: number | undefined;
60
72
  rerunOf?: import("convex/values").GenericId<"requests"> | undefined;
@@ -70,6 +82,10 @@ export declare const lineage: import("convex/server").RegisteredQuery<"public",
70
82
  _id: import("convex/values").GenericId<"requests">;
71
83
  _creationTime: number;
72
84
  actionName?: string | undefined;
85
+ tags?: {
86
+ dimension: string;
87
+ value: string;
88
+ }[] | undefined;
73
89
  estimatedNanos?: number | undefined;
74
90
  estimatedTokens?: number | undefined;
75
91
  unpricedModel?: boolean | undefined;
@@ -80,6 +96,7 @@ export declare const lineage: import("convex/server").RegisteredQuery<"public",
80
96
  promptTokens?: number | undefined;
81
97
  completionTokens?: number | undefined;
82
98
  cachedTokens?: number | undefined;
99
+ serverToolUses?: Record<string, number> | undefined;
83
100
  costNanos?: number | undefined;
84
101
  latencyMs?: number | undefined;
85
102
  rerunOf?: import("convex/values").GenericId<"requests"> | undefined;
@@ -98,6 +115,10 @@ export declare const getRequest: import("convex/server").RegisteredQuery<"public
98
115
  _id: import("convex/values").GenericId<"requests">;
99
116
  _creationTime: number;
100
117
  actionName?: string | undefined;
118
+ tags?: {
119
+ dimension: string;
120
+ value: string;
121
+ }[] | undefined;
101
122
  estimatedNanos?: number | undefined;
102
123
  estimatedTokens?: number | undefined;
103
124
  unpricedModel?: boolean | undefined;
@@ -108,6 +129,7 @@ export declare const getRequest: import("convex/server").RegisteredQuery<"public
108
129
  promptTokens?: number | undefined;
109
130
  completionTokens?: number | undefined;
110
131
  cachedTokens?: number | undefined;
132
+ serverToolUses?: Record<string, number> | undefined;
111
133
  costNanos?: number | undefined;
112
134
  latencyMs?: number | undefined;
113
135
  rerunOf?: import("convex/values").GenericId<"requests"> | undefined;
@@ -120,12 +142,18 @@ export declare const getRequest: import("convex/server").RegisteredQuery<"public
120
142
  status: "blocked" | "pending" | "success" | "error";
121
143
  } | null>>;
122
144
  export declare const listRequests: import("convex/server").RegisteredQuery<"public", {
145
+ dimension?: string | undefined;
146
+ value?: string | undefined;
123
147
  userId?: string | undefined;
124
148
  limit?: number | undefined;
125
149
  }, Promise<{
126
150
  _id: import("convex/values").GenericId<"requests">;
127
151
  _creationTime: number;
128
152
  actionName?: string | undefined;
153
+ tags?: {
154
+ dimension: string;
155
+ value: string;
156
+ }[] | undefined;
129
157
  estimatedNanos?: number | undefined;
130
158
  estimatedTokens?: number | undefined;
131
159
  unpricedModel?: boolean | undefined;
@@ -136,6 +164,7 @@ export declare const listRequests: import("convex/server").RegisteredQuery<"publ
136
164
  promptTokens?: number | undefined;
137
165
  completionTokens?: number | undefined;
138
166
  cachedTokens?: number | undefined;
167
+ serverToolUses?: Record<string, number> | undefined;
139
168
  costNanos?: number | undefined;
140
169
  latencyMs?: number | undefined;
141
170
  rerunOf?: import("convex/values").GenericId<"requests"> | undefined;
@@ -147,96 +176,155 @@ export declare const listRequests: import("convex/server").RegisteredQuery<"publ
147
176
  }[];
148
177
  status: "blocked" | "pending" | "success" | "error";
149
178
  }[]>>;
150
- export declare const listUsers: import("convex/server").RegisteredQuery<"public", {}, Promise<{
179
+ export declare const listBuckets: import("convex/server").RegisteredQuery<"public", {
180
+ dimension?: string | undefined;
181
+ }, Promise<{
151
182
  spendTodayNanos: number;
152
- _id: import("convex/values").GenericId<"users">;
183
+ spendThisMonthNanos: number;
184
+ _id: import("convex/values").GenericId<"buckets">;
153
185
  _creationTime: number;
154
186
  requestsPerMinute?: number | undefined;
187
+ maxConcurrent?: number | undefined;
155
188
  dailySpendLimitNanos?: number | undefined;
189
+ monthlySpendLimitNanos?: number | undefined;
156
190
  lifetimeSpendLimitNanos?: number | undefined;
157
191
  dailyTokenLimit?: number | undefined;
192
+ monthlyTokenLimit?: number | undefined;
158
193
  lifetimeTokenLimit?: number | undefined;
159
194
  blocked?: boolean | undefined;
195
+ warnAtPct?: number | undefined;
160
196
  enforcement?: "hard" | "soft" | undefined;
161
197
  dailyBumpNanos?: number | undefined;
198
+ monthlyBumpNanos?: number | undefined;
162
199
  lifetimeBumpNanos?: number | undefined;
163
200
  bumpDayStamp?: string | undefined;
201
+ bumpMonthStamp?: string | undefined;
164
202
  tokensToday?: number | undefined;
203
+ monthStamp?: string | undefined;
204
+ tokensThisMonth?: number | undefined;
165
205
  reservedTodayNanos?: number | undefined;
206
+ reservedMonthNanos?: number | undefined;
166
207
  reservedTotalNanos?: number | undefined;
167
208
  reservedTodayTokens?: number | undefined;
209
+ reservedMonthTokens?: number | undefined;
168
210
  reservedTotalTokens?: number | undefined;
169
211
  pendingCount?: number | undefined;
170
- userId: string;
212
+ dimension: string;
213
+ value: string;
171
214
  totalSpendNanos: number;
172
215
  totalRequests: number;
173
216
  totalTokens: number;
174
217
  dayStamp: string;
175
218
  }[]>>;
176
- export declare const setLimits: import("convex/server").RegisteredMutation<"public", {
177
- requestsPerMinute?: number | undefined;
178
- dailySpendLimitNanos?: number | undefined;
179
- lifetimeSpendLimitNanos?: number | undefined;
180
- dailyTokenLimit?: number | undefined;
181
- lifetimeTokenLimit?: number | undefined;
182
- blocked?: boolean | undefined;
183
- enforcement?: "hard" | "soft" | undefined;
184
- userId: string;
185
- }, Promise<null>>;
186
- export declare const deleteUser: import("convex/server").RegisteredMutation<"public", {
187
- userId: string;
219
+ export declare const getBucket: import("convex/server").RegisteredQuery<"public", {
220
+ dimension: string;
221
+ value: string;
188
222
  }, Promise<{
189
- deletedThisBatch: number;
190
- done: boolean;
191
- }>>;
192
- export declare const listActions: import("convex/server").RegisteredQuery<"public", {}, Promise<{
193
223
  spendTodayNanos: number;
194
- _id: import("convex/values").GenericId<"actions">;
224
+ spendThisMonthNanos: number;
225
+ _id: import("convex/values").GenericId<"buckets">;
195
226
  _creationTime: number;
227
+ requestsPerMinute?: number | undefined;
228
+ maxConcurrent?: number | undefined;
196
229
  dailySpendLimitNanos?: number | undefined;
230
+ monthlySpendLimitNanos?: number | undefined;
197
231
  lifetimeSpendLimitNanos?: number | undefined;
198
232
  dailyTokenLimit?: number | undefined;
233
+ monthlyTokenLimit?: number | undefined;
199
234
  lifetimeTokenLimit?: number | undefined;
235
+ blocked?: boolean | undefined;
236
+ warnAtPct?: number | undefined;
200
237
  enforcement?: "hard" | "soft" | undefined;
201
238
  dailyBumpNanos?: number | undefined;
239
+ monthlyBumpNanos?: number | undefined;
202
240
  lifetimeBumpNanos?: number | undefined;
203
241
  bumpDayStamp?: string | undefined;
242
+ bumpMonthStamp?: string | undefined;
204
243
  tokensToday?: number | undefined;
244
+ monthStamp?: string | undefined;
245
+ tokensThisMonth?: number | undefined;
205
246
  reservedTodayNanos?: number | undefined;
247
+ reservedMonthNanos?: number | undefined;
206
248
  reservedTotalNanos?: number | undefined;
207
249
  reservedTodayTokens?: number | undefined;
250
+ reservedMonthTokens?: number | undefined;
208
251
  reservedTotalTokens?: number | undefined;
209
252
  pendingCount?: number | undefined;
210
- disabled?: boolean | undefined;
253
+ dimension: string;
254
+ value: string;
211
255
  totalSpendNanos: number;
212
256
  totalRequests: number;
213
257
  totalTokens: number;
214
258
  dayStamp: string;
215
- name: string;
216
- }[]>>;
217
- export declare const bumpUser: import("convex/server").RegisteredMutation<"public", {
218
- dailyNanos?: number | undefined;
219
- lifetimeNanos?: number | undefined;
220
- userId: string;
221
- }, Promise<null>>;
222
- export declare const bumpAction: import("convex/server").RegisteredMutation<"public", {
223
- dailyNanos?: number | undefined;
224
- lifetimeNanos?: number | undefined;
225
- name: string;
226
- }, Promise<null>>;
227
- export declare const bumpGlobal: import("convex/server").RegisteredMutation<"public", {
228
- dailyNanos?: number | undefined;
229
- lifetimeNanos?: number | undefined;
230
- }, Promise<null>>;
231
- export declare const setActionLimits: import("convex/server").RegisteredMutation<"public", {
259
+ } | null>>;
260
+ export declare const setBucketLimits: import("convex/server").RegisteredMutation<"public", {
261
+ requestsPerMinute?: number | undefined;
262
+ maxConcurrent?: number | undefined;
232
263
  dailySpendLimitNanos?: number | undefined;
264
+ monthlySpendLimitNanos?: number | undefined;
233
265
  lifetimeSpendLimitNanos?: number | undefined;
234
266
  dailyTokenLimit?: number | undefined;
267
+ monthlyTokenLimit?: number | undefined;
235
268
  lifetimeTokenLimit?: number | undefined;
269
+ blocked?: boolean | undefined;
270
+ warnAtPct?: number | undefined;
236
271
  enforcement?: "hard" | "soft" | undefined;
237
- disabled?: boolean | undefined;
238
- name: string;
272
+ dimension: string;
273
+ value: string;
274
+ }, Promise<null>>;
275
+ export declare const bumpBucket: import("convex/server").RegisteredMutation<"public", {
276
+ dailyNanos?: number | undefined;
277
+ monthlyNanos?: number | undefined;
278
+ lifetimeNanos?: number | undefined;
279
+ dimension: string;
280
+ value: string;
281
+ }, Promise<null>>;
282
+ export declare const adjustBucket: import("convex/server").RegisteredMutation<"public", {
283
+ tokens?: number | undefined;
284
+ reason?: string | undefined;
285
+ dimension: string;
286
+ value: string;
287
+ deltaNanos: number;
288
+ }, Promise<null>>;
289
+ export declare const listAdjustments: import("convex/server").RegisteredQuery<"public", {
290
+ limit?: number | undefined;
291
+ dimension: string;
292
+ value: string;
293
+ }, Promise<{
294
+ _id: import("convex/values").GenericId<"adjustments">;
295
+ _creationTime: number;
296
+ tokens?: number | undefined;
297
+ reason?: string | undefined;
298
+ dimension: string;
299
+ value: string;
300
+ deltaNanos: number;
301
+ }[]>>;
302
+ export declare const usageHistory: import("convex/server").RegisteredQuery<"public", {
303
+ limit?: number | undefined;
304
+ dimension: string;
305
+ value: string;
306
+ period: "day" | "month";
307
+ }, Promise<{
308
+ _id: import("convex/values").GenericId<"usage">;
309
+ _creationTime: number;
310
+ dimension: string;
311
+ value: string;
312
+ period: "day" | "month";
313
+ stamp: string;
314
+ spendNanos: number;
315
+ tokens: number;
316
+ requests: number;
317
+ }[]>>;
318
+ export declare const setAlertDefaults: import("convex/server").RegisteredMutation<"public", {
319
+ warnAtPct?: number | undefined;
239
320
  }, Promise<null>>;
321
+ export declare const deleteBucket: import("convex/server").RegisteredMutation<"public", {
322
+ dimension: string;
323
+ value: string;
324
+ }, Promise<{
325
+ deletedThisBatch: number;
326
+ done: boolean;
327
+ }>>;
240
328
  export declare const getModelPolicy: import("convex/server").RegisteredQuery<"public", {}, Promise<{
241
329
  mode: "open" | "allowlist" | "denylist";
242
330
  models: string[];
@@ -247,17 +335,25 @@ export declare const getGlobalStatus: import("convex/server").RegisteredQuery<"p
247
335
  enforcement: "hard" | "soft";
248
336
  spentTodayNanos: number;
249
337
  spentTotalNanos: number;
338
+ retentionMs: number | null;
339
+ defaultWarnAtPct: number | null;
250
340
  }>>;
251
341
  export declare const setGlobalLimits: import("convex/server").RegisteredMutation<"public", {
252
342
  dailySpendLimitNanos?: number | undefined;
253
343
  lifetimeSpendLimitNanos?: number | undefined;
254
344
  enforcement?: "hard" | "soft" | undefined;
255
345
  }, Promise<null>>;
346
+ export declare const bumpGlobal: import("convex/server").RegisteredMutation<"public", {
347
+ dailyNanos?: number | undefined;
348
+ monthlyNanos?: number | undefined;
349
+ lifetimeNanos?: number | undefined;
350
+ }, Promise<null>>;
256
351
  export declare const setModelPolicy: import("convex/server").RegisteredMutation<"public", {
257
352
  models: string[];
258
353
  mode: "open" | "allowlist" | "denylist";
259
354
  }, Promise<null>>;
260
355
  export declare const setPrice: import("convex/server").RegisteredMutation<"public", {
356
+ cachedNanosPerMTok?: number | undefined;
261
357
  model: string;
262
358
  inputNanosPerMTok: number;
263
359
  outputNanosPerMTok: number;
@@ -265,5 +361,13 @@ export declare const setPrice: import("convex/server").RegisteredMutation<"publi
265
361
  export declare const listPrices: import("convex/server").RegisteredQuery<"public", {}, Promise<Record<string, {
266
362
  input: number;
267
363
  output: number;
364
+ cached?: number;
268
365
  overridden: boolean;
269
366
  }>>>;
367
+ export declare const listServerToolPrices: import("convex/server").RegisteredQuery<"public", {}, Promise<{
368
+ [x: string]: number;
369
+ }>>;
370
+ export declare const setServerToolPrice: import("convex/server").RegisteredMutation<"public", {
371
+ tool: string;
372
+ nanosPerCall: number;
373
+ }, Promise<null>>;