ai-functions 2.1.1 → 2.3.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.
Files changed (286) hide show
  1. package/.turbo/turbo-build.log +1 -4
  2. package/CHANGELOG.md +68 -1
  3. package/README.md +397 -157
  4. package/dist/ai-promise.d.ts +50 -3
  5. package/dist/ai-promise.d.ts.map +1 -1
  6. package/dist/ai-promise.js +410 -51
  7. package/dist/ai-promise.js.map +1 -1
  8. package/dist/ai-schemas.d.ts +56 -0
  9. package/dist/ai-schemas.d.ts.map +1 -0
  10. package/dist/ai-schemas.js +53 -0
  11. package/dist/ai-schemas.js.map +1 -0
  12. package/dist/ai.d.ts +16 -242
  13. package/dist/ai.d.ts.map +1 -1
  14. package/dist/ai.js +54 -837
  15. package/dist/ai.js.map +1 -1
  16. package/dist/batch/anthropic.d.ts +6 -4
  17. package/dist/batch/anthropic.d.ts.map +1 -1
  18. package/dist/batch/anthropic.js +83 -145
  19. package/dist/batch/anthropic.js.map +1 -1
  20. package/dist/batch/bedrock.d.ts +8 -30
  21. package/dist/batch/bedrock.d.ts.map +1 -1
  22. package/dist/batch/bedrock.js +155 -338
  23. package/dist/batch/bedrock.js.map +1 -1
  24. package/dist/batch/cloudflare.d.ts +8 -20
  25. package/dist/batch/cloudflare.d.ts.map +1 -1
  26. package/dist/batch/cloudflare.js +68 -189
  27. package/dist/batch/cloudflare.js.map +1 -1
  28. package/dist/batch/google.d.ts +6 -20
  29. package/dist/batch/google.d.ts.map +1 -1
  30. package/dist/batch/google.js +70 -238
  31. package/dist/batch/google.js.map +1 -1
  32. package/dist/batch/index.d.ts +4 -1
  33. package/dist/batch/index.d.ts.map +1 -1
  34. package/dist/batch/index.js +4 -1
  35. package/dist/batch/index.js.map +1 -1
  36. package/dist/batch/memory.d.ts +1 -1
  37. package/dist/batch/memory.d.ts.map +1 -1
  38. package/dist/batch/memory.js +14 -10
  39. package/dist/batch/memory.js.map +1 -1
  40. package/dist/batch/openai.d.ts +11 -14
  41. package/dist/batch/openai.d.ts.map +1 -1
  42. package/dist/batch/openai.js +52 -156
  43. package/dist/batch/openai.js.map +1 -1
  44. package/dist/batch/provider.d.ts +111 -0
  45. package/dist/batch/provider.d.ts.map +1 -0
  46. package/dist/batch/provider.js +233 -0
  47. package/dist/batch/provider.js.map +1 -0
  48. package/dist/batch-map.d.ts.map +1 -1
  49. package/dist/batch-map.js +23 -17
  50. package/dist/batch-map.js.map +1 -1
  51. package/dist/batch-queue.d.ts +65 -0
  52. package/dist/batch-queue.d.ts.map +1 -1
  53. package/dist/batch-queue.js +169 -14
  54. package/dist/batch-queue.js.map +1 -1
  55. package/dist/budget.d.ts +272 -0
  56. package/dist/budget.d.ts.map +1 -0
  57. package/dist/budget.js +513 -0
  58. package/dist/budget.js.map +1 -0
  59. package/dist/cache.d.ts +295 -0
  60. package/dist/cache.d.ts.map +1 -0
  61. package/dist/cache.js +433 -0
  62. package/dist/cache.js.map +1 -0
  63. package/dist/context.d.ts +42 -8
  64. package/dist/context.d.ts.map +1 -1
  65. package/dist/context.js +64 -62
  66. package/dist/context.js.map +1 -1
  67. package/dist/digital-objects-registry.d.ts +229 -0
  68. package/dist/digital-objects-registry.d.ts.map +1 -0
  69. package/dist/digital-objects-registry.js +617 -0
  70. package/dist/digital-objects-registry.js.map +1 -0
  71. package/dist/embeddings.d.ts +2 -2
  72. package/dist/embeddings.d.ts.map +1 -1
  73. package/dist/errors.d.ts +22 -0
  74. package/dist/errors.d.ts.map +1 -0
  75. package/dist/errors.js +35 -0
  76. package/dist/errors.js.map +1 -0
  77. package/dist/eval/runner.d.ts +10 -1
  78. package/dist/eval/runner.d.ts.map +1 -1
  79. package/dist/eval/runner.js +41 -35
  80. package/dist/eval/runner.js.map +1 -1
  81. package/dist/eval-log/in-memory.d.ts +34 -0
  82. package/dist/eval-log/in-memory.d.ts.map +1 -0
  83. package/dist/eval-log/in-memory.js +84 -0
  84. package/dist/eval-log/in-memory.js.map +1 -0
  85. package/dist/eval-log/index.d.ts +29 -0
  86. package/dist/eval-log/index.d.ts.map +1 -0
  87. package/dist/eval-log/index.js +39 -0
  88. package/dist/eval-log/index.js.map +1 -0
  89. package/dist/eval-log/types.d.ts +101 -0
  90. package/dist/eval-log/types.d.ts.map +1 -0
  91. package/dist/eval-log/types.js +16 -0
  92. package/dist/eval-log/types.js.map +1 -0
  93. package/dist/function-registry.d.ts +116 -0
  94. package/dist/function-registry.d.ts.map +1 -0
  95. package/dist/function-registry.js +546 -0
  96. package/dist/function-registry.js.map +1 -0
  97. package/dist/generate.d.ts +9 -3
  98. package/dist/generate.d.ts.map +1 -1
  99. package/dist/generate.js +18 -22
  100. package/dist/generate.js.map +1 -1
  101. package/dist/index.d.ts +35 -20
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +89 -42
  104. package/dist/index.js.map +1 -1
  105. package/dist/logger.d.ts +118 -0
  106. package/dist/logger.d.ts.map +1 -0
  107. package/dist/logger.js +187 -0
  108. package/dist/logger.js.map +1 -0
  109. package/dist/middleware/budget.d.ts +84 -0
  110. package/dist/middleware/budget.d.ts.map +1 -0
  111. package/dist/middleware/budget.js +110 -0
  112. package/dist/middleware/budget.js.map +1 -0
  113. package/dist/middleware/cache.d.ts +103 -0
  114. package/dist/middleware/cache.d.ts.map +1 -0
  115. package/dist/middleware/cache.js +228 -0
  116. package/dist/middleware/cache.js.map +1 -0
  117. package/dist/middleware/embed-cache.d.ts +99 -0
  118. package/dist/middleware/embed-cache.d.ts.map +1 -0
  119. package/dist/middleware/embed-cache.js +128 -0
  120. package/dist/middleware/embed-cache.js.map +1 -0
  121. package/dist/middleware/index.d.ts +11 -0
  122. package/dist/middleware/index.d.ts.map +1 -0
  123. package/dist/middleware/index.js +11 -0
  124. package/dist/middleware/index.js.map +1 -0
  125. package/dist/middleware/trace.d.ts +103 -0
  126. package/dist/middleware/trace.d.ts.map +1 -0
  127. package/dist/middleware/trace.js +176 -0
  128. package/dist/middleware/trace.js.map +1 -0
  129. package/dist/primitives.d.ts +120 -1
  130. package/dist/primitives.d.ts.map +1 -1
  131. package/dist/primitives.js +398 -26
  132. package/dist/primitives.js.map +1 -1
  133. package/dist/retry.d.ts +368 -0
  134. package/dist/retry.d.ts.map +1 -0
  135. package/dist/retry.js +646 -0
  136. package/dist/retry.js.map +1 -0
  137. package/dist/schema.d.ts.map +1 -1
  138. package/dist/schema.js +2 -10
  139. package/dist/schema.js.map +1 -1
  140. package/dist/telemetry.d.ts +128 -0
  141. package/dist/telemetry.d.ts.map +1 -0
  142. package/dist/telemetry.js +285 -0
  143. package/dist/telemetry.js.map +1 -0
  144. package/dist/template.d.ts.map +1 -1
  145. package/dist/template.js +6 -1
  146. package/dist/template.js.map +1 -1
  147. package/dist/tool-orchestration.d.ts +453 -0
  148. package/dist/tool-orchestration.d.ts.map +1 -0
  149. package/dist/tool-orchestration.js +763 -0
  150. package/dist/tool-orchestration.js.map +1 -0
  151. package/dist/type-guards.d.ts +28 -0
  152. package/dist/type-guards.d.ts.map +1 -0
  153. package/dist/type-guards.js +29 -0
  154. package/dist/type-guards.js.map +1 -0
  155. package/dist/types.d.ts +135 -17
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +36 -1
  158. package/dist/types.js.map +1 -1
  159. package/dist/wrap-for-v3.d.ts +80 -0
  160. package/dist/wrap-for-v3.d.ts.map +1 -0
  161. package/dist/wrap-for-v3.js +89 -0
  162. package/dist/wrap-for-v3.js.map +1 -0
  163. package/examples/00-quickstart.ts +232 -0
  164. package/examples/01-rag-chatbot.ts +212 -0
  165. package/examples/02-multi-agent-research.ts +290 -0
  166. package/examples/03-email-classification.ts +379 -0
  167. package/examples/04-content-moderation.ts +400 -0
  168. package/examples/05-document-extraction.ts +455 -0
  169. package/examples/06-streaming-chat-nextjs.ts +437 -0
  170. package/examples/07-cloudflare-worker.ts +483 -0
  171. package/examples/08-batch-processing.ts +491 -0
  172. package/examples/09-budget-constrained.ts +527 -0
  173. package/examples/10-tool-orchestration.ts +565 -0
  174. package/examples/11-retry-resilience.ts +403 -0
  175. package/examples/12-caching-strategies.ts +422 -0
  176. package/examples/README.md +145 -0
  177. package/package.json +10 -6
  178. package/src/ai-promise.ts +528 -99
  179. package/src/ai-schemas.ts +122 -0
  180. package/src/ai.ts +69 -1153
  181. package/src/batch/anthropic.ts +96 -161
  182. package/src/batch/bedrock.ts +203 -454
  183. package/src/batch/cloudflare.ts +99 -282
  184. package/src/batch/google.ts +91 -297
  185. package/src/batch/index.ts +4 -1
  186. package/src/batch/memory.ts +15 -10
  187. package/src/batch/openai.ts +65 -193
  188. package/src/batch/provider.ts +336 -0
  189. package/src/batch-map.ts +29 -24
  190. package/src/batch-queue.ts +200 -11
  191. package/src/budget.ts +740 -0
  192. package/src/cache.ts +681 -0
  193. package/src/context.ts +122 -76
  194. package/src/digital-objects-registry.ts +750 -0
  195. package/src/errors.ts +37 -0
  196. package/src/eval/runner.ts +63 -38
  197. package/src/eval-log/in-memory.ts +90 -0
  198. package/src/eval-log/index.ts +46 -0
  199. package/src/eval-log/types.ts +110 -0
  200. package/src/function-registry.ts +671 -0
  201. package/src/generate.ts +33 -33
  202. package/src/index.ts +325 -49
  203. package/src/logger.ts +232 -0
  204. package/src/middleware/budget.ts +171 -0
  205. package/src/middleware/cache.ts +299 -0
  206. package/src/middleware/embed-cache.ts +195 -0
  207. package/src/middleware/index.ts +23 -0
  208. package/src/middleware/trace.ts +248 -0
  209. package/src/primitives.ts +589 -62
  210. package/src/retry.ts +902 -0
  211. package/src/schema.ts +8 -17
  212. package/src/telemetry.ts +403 -0
  213. package/src/template.ts +8 -4
  214. package/src/tool-orchestration.ts +1173 -0
  215. package/src/type-guards.ts +31 -0
  216. package/src/types.ts +164 -25
  217. package/src/wrap-for-v3.ts +105 -0
  218. package/test/ai-promise.test.ts +1080 -0
  219. package/test/ai-proxy.test.ts +1 -1
  220. package/test/backward-compat.test.ts +147 -0
  221. package/test/batch-autosubmit-errors.test.ts +610 -0
  222. package/test/batch-blog-posts.test.ts +87 -129
  223. package/test/budget-tracking.test.ts +800 -0
  224. package/test/cache.test.ts +712 -0
  225. package/test/context-isolation.test.ts +687 -0
  226. package/test/core-functions.test.ts +183 -579
  227. package/test/decide.test.ts +154 -322
  228. package/test/define.test.ts +211 -8
  229. package/test/digital-objects-registry.test.ts +760 -0
  230. package/test/embedding-cache-middleware.test.ts +140 -0
  231. package/test/evals/deterministic.eval.test.ts +376 -0
  232. package/test/generate-core.test.ts +140 -229
  233. package/test/implicit-batch.test.ts +22 -65
  234. package/test/json-parse-error-handling.test.ts +463 -0
  235. package/test/retry-policy-integration.test.ts +117 -0
  236. package/test/retry.test.ts +1016 -0
  237. package/test/schema.test.ts +55 -19
  238. package/test/streaming.test.ts +316 -0
  239. package/test/template.test.ts +1164 -0
  240. package/test/tool-orchestration.test.ts +1040 -0
  241. package/test/wrap-for-v3.test.ts +612 -0
  242. package/vitest.config.js +6 -0
  243. package/vitest.config.ts +20 -0
  244. package/dist/rpc/auth.d.ts +0 -69
  245. package/dist/rpc/auth.d.ts.map +0 -1
  246. package/dist/rpc/auth.js +0 -136
  247. package/dist/rpc/auth.js.map +0 -1
  248. package/dist/rpc/client.d.ts +0 -62
  249. package/dist/rpc/client.d.ts.map +0 -1
  250. package/dist/rpc/client.js +0 -103
  251. package/dist/rpc/client.js.map +0 -1
  252. package/dist/rpc/deferred.d.ts +0 -60
  253. package/dist/rpc/deferred.d.ts.map +0 -1
  254. package/dist/rpc/deferred.js +0 -96
  255. package/dist/rpc/deferred.js.map +0 -1
  256. package/dist/rpc/index.d.ts +0 -22
  257. package/dist/rpc/index.d.ts.map +0 -1
  258. package/dist/rpc/index.js +0 -38
  259. package/dist/rpc/index.js.map +0 -1
  260. package/dist/rpc/local.d.ts +0 -42
  261. package/dist/rpc/local.d.ts.map +0 -1
  262. package/dist/rpc/local.js +0 -50
  263. package/dist/rpc/local.js.map +0 -1
  264. package/dist/rpc/server.d.ts +0 -165
  265. package/dist/rpc/server.d.ts.map +0 -1
  266. package/dist/rpc/server.js +0 -405
  267. package/dist/rpc/server.js.map +0 -1
  268. package/dist/rpc/session.d.ts +0 -32
  269. package/dist/rpc/session.d.ts.map +0 -1
  270. package/dist/rpc/session.js +0 -43
  271. package/dist/rpc/session.js.map +0 -1
  272. package/dist/rpc/transport.d.ts +0 -306
  273. package/dist/rpc/transport.d.ts.map +0 -1
  274. package/dist/rpc/transport.js +0 -731
  275. package/dist/rpc/transport.js.map +0 -1
  276. package/src/batch/anthropic.js +0 -256
  277. package/src/batch/bedrock.js +0 -584
  278. package/src/batch/cloudflare.js +0 -287
  279. package/src/batch/google.js +0 -359
  280. package/src/batch/index.js +0 -30
  281. package/src/batch/memory.js +0 -187
  282. package/src/batch/openai.js +0 -402
  283. package/src/eval/index.js +0 -7
  284. package/src/eval/models.js +0 -119
  285. package/src/eval/runner.js +0 -147
  286. package/test/schema.test.js +0 -96
@@ -23,9 +23,8 @@
23
23
  *
24
24
  * @packageDocumentation
25
25
  */
26
- // ============================================================================
27
- // BatchQueue Implementation
28
- // ============================================================================
26
+ import { getLogger } from './logger.js';
27
+ import { policyFor } from 'language-models';
29
28
  /**
30
29
  * BatchQueue collects AI operations for deferred batch execution
31
30
  */
@@ -35,6 +34,10 @@ export class BatchQueue {
35
34
  idCounter = 0;
36
35
  submitted = false;
37
36
  job = null;
37
+ // Error handling properties
38
+ _autoSubmitPromise = null;
39
+ _submissionError = null;
40
+ _eventHandlers = new Map();
38
41
  constructor(options = {}) {
39
42
  this.options = {
40
43
  provider: 'openai',
@@ -43,6 +46,83 @@ export class BatchQueue {
43
46
  ...options,
44
47
  };
45
48
  }
49
+ /**
50
+ * Subscribe to batch events
51
+ * @param event - Event name ('error', 'partial-failure', 'complete')
52
+ * @param handler - Event handler function
53
+ */
54
+ on(event, handler) {
55
+ if (!this._eventHandlers.has(event)) {
56
+ this._eventHandlers.set(event, new Set());
57
+ }
58
+ this._eventHandlers.get(event).add(handler);
59
+ }
60
+ /**
61
+ * Unsubscribe from batch events
62
+ */
63
+ off(event, handler) {
64
+ this._eventHandlers.get(event)?.delete(handler);
65
+ }
66
+ /**
67
+ * Emit an event to all subscribed handlers
68
+ */
69
+ emit(event, data) {
70
+ this._eventHandlers.get(event)?.forEach((handler) => handler(data));
71
+ }
72
+ /**
73
+ * Get the auto-submit promise (if auto-submit was triggered)
74
+ */
75
+ get autoSubmitPromise() {
76
+ return this._autoSubmitPromise ?? undefined;
77
+ }
78
+ /**
79
+ * Get the last submission error (if any)
80
+ */
81
+ get submissionError() {
82
+ return this._submissionError ?? undefined;
83
+ }
84
+ /**
85
+ * Check if there was a submission error
86
+ */
87
+ get hasSubmissionError() {
88
+ return this._submissionError !== null;
89
+ }
90
+ /**
91
+ * Await auto-submit completion or failure
92
+ * Returns a promise that resolves when auto-submit completes or rejects on error
93
+ */
94
+ awaitAutoSubmit() {
95
+ if (!this._autoSubmitPromise) {
96
+ return Promise.resolve();
97
+ }
98
+ return this._autoSubmitPromise;
99
+ }
100
+ /**
101
+ * Get items that failed during batch processing
102
+ */
103
+ getFailedItems() {
104
+ return this.items.filter((item) => item.status === 'failed');
105
+ }
106
+ /**
107
+ * Retry a failed submission
108
+ * Only available after a failed auto-submit
109
+ */
110
+ async retry() {
111
+ if (!this._submissionError) {
112
+ throw new Error('No failed submission to retry');
113
+ }
114
+ // Reset error state and submitted flag
115
+ this._submissionError = null;
116
+ this.submitted = false;
117
+ // Reset item statuses
118
+ for (const item of this.items) {
119
+ if (item.status === 'failed') {
120
+ item.status = 'pending';
121
+ delete item.error;
122
+ }
123
+ }
124
+ return this.submit();
125
+ }
46
126
  /**
47
127
  * Add an item to the batch queue
48
128
  * Returns a placeholder that will be resolved after batch completion
@@ -54,16 +134,51 @@ export class BatchQueue {
54
134
  const item = {
55
135
  id: options?.customId || `item_${++this.idCounter}`,
56
136
  prompt,
57
- schema: options?.schema,
58
- options: options?.options,
59
- metadata: options?.metadata,
137
+ ...(options?.schema !== undefined && { schema: options.schema }),
138
+ ...(options?.options !== undefined && { options: options.options }),
139
+ ...(options?.metadata !== undefined && { metadata: options.metadata }),
60
140
  status: 'pending',
61
141
  };
62
142
  this.items.push(item);
63
143
  // Auto-submit if we hit the limit
64
144
  if (this.options.autoSubmit && this.items.length >= (this.options.maxItems || 50000)) {
65
- // Fire and forget - user can await the completion promise
66
- this.submit().catch(console.error);
145
+ // Create a trackable promise for auto-submit
146
+ this._autoSubmitPromise = this.submit()
147
+ .then(() => {
148
+ // Success - promise is resolved
149
+ })
150
+ .catch((error) => {
151
+ // Store error and update item statuses
152
+ this._submissionError = error;
153
+ this.submitted = false; // Reset to allow retry
154
+ // Update all items to failed status
155
+ for (const item of this.items) {
156
+ if (item.status === 'pending') {
157
+ item.status = 'failed';
158
+ item.error = error.message;
159
+ }
160
+ }
161
+ // Create a synthetic failed job to store error info
162
+ const errorWithMeta = error;
163
+ this.job = {
164
+ id: `failed_${Date.now()}`,
165
+ provider: this.options.provider || 'openai',
166
+ status: 'failed',
167
+ totalItems: this.items.length,
168
+ completedItems: 0,
169
+ failedItems: this.items.length,
170
+ createdAt: new Date(),
171
+ // Add rate limit retry info if available
172
+ ...(errorWithMeta.headers?.['retry-after'] && {
173
+ retryAfter: parseInt(errorWithMeta.headers['retry-after'], 10),
174
+ }),
175
+ };
176
+ // Emit error event
177
+ this.emit('error', error);
178
+ // Log error and re-throw
179
+ getLogger().error('Batch auto-submit failed:', error);
180
+ throw error;
181
+ });
67
182
  }
68
183
  return item;
69
184
  }
@@ -107,16 +222,32 @@ export class BatchQueue {
107
222
  // Submit the batch
108
223
  const result = await adapter.submit(this.items, this.options);
109
224
  this.job = result.job;
110
- // When completion resolves, update item statuses
225
+ // When completion resolves, update item statuses and check for partial failures
111
226
  result.completion.then((results) => {
227
+ const failedResults = [];
112
228
  for (const r of results) {
113
229
  const item = this.items.find((i) => i.id === r.id);
114
230
  if (item) {
115
231
  item.status = r.status;
116
- item.result = r.result;
117
- item.error = r.error;
232
+ if (r.result !== undefined)
233
+ item.result = r.result;
234
+ if (r.error !== undefined)
235
+ item.error = r.error;
236
+ if (r.status === 'failed') {
237
+ failedResults.push(r);
238
+ }
118
239
  }
119
240
  }
241
+ // Emit partial-failure event if some items failed
242
+ if (failedResults.length > 0 && failedResults.length < results.length) {
243
+ this.emit('partial-failure', failedResults);
244
+ }
245
+ // Emit error event if there were any failures
246
+ if (failedResults.length > 0) {
247
+ this.emit('error', new Error(`${failedResults.length} items failed in batch`));
248
+ }
249
+ // Emit complete event
250
+ this.emit('complete', results);
120
251
  });
121
252
  return result;
122
253
  }
@@ -241,6 +372,30 @@ export function hasFlexAdapter(provider) {
241
372
  return flexAdapters[provider] !== null;
242
373
  }
243
374
  // ============================================================================
375
+ // Tier eligibility (per-model policy)
376
+ // ============================================================================
377
+ /**
378
+ * List the batch tiers a model is eligible for.
379
+ *
380
+ * Reads `ModelPolicy.batchTier` from `language-models` — this is the per-model
381
+ * policy data, distinct from the runtime adapter registration above.
382
+ *
383
+ * @example
384
+ * ```ts
385
+ * tiersForModel('sonnet') // ['immediate', 'batch']
386
+ * tiersForModel('gpt-4o') // ['immediate', 'flex', 'batch']
387
+ * ```
388
+ */
389
+ export function tiersForModel(alias) {
390
+ return policyFor(alias).batchTier;
391
+ }
392
+ /**
393
+ * Check whether a model is eligible for a given tier.
394
+ */
395
+ export function modelSupportsTier(alias, tier) {
396
+ return tiersForModel(alias).includes(tier);
397
+ }
398
+ // ============================================================================
244
399
  // Factory Functions
245
400
  // ============================================================================
246
401
  /**
@@ -308,9 +463,9 @@ export function isBatchMode(options) {
308
463
  */
309
464
  export function deferToBatch(batch, prompt, schema, options) {
310
465
  return batch.add(prompt, {
311
- schema,
312
- options,
313
- customId: options?.customId,
466
+ ...(schema !== undefined && { schema }),
467
+ ...(options !== undefined && { options }),
468
+ ...(options?.customId !== undefined && { customId: options.customId }),
314
469
  });
315
470
  }
316
471
  //# sourceMappingURL=batch-queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-queue.js","sourceRoot":"","sources":["../src/batch-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-queue.js","sourceRoot":"","sources":["../src/batch-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,272 @@
1
+ /**
2
+ * Budget Tracking and Request Tracing for AI Functions
3
+ *
4
+ * Provides:
5
+ * - Token counting and estimation
6
+ * - Cost tracking by model
7
+ * - Budget limits with alerts
8
+ * - Request ID generation and tracing
9
+ * - User/tenant context isolation
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ /** Token usage for a single request */
14
+ export interface TokenUsage {
15
+ inputTokens: number;
16
+ outputTokens: number;
17
+ model?: string;
18
+ }
19
+ /** Model pricing per million tokens */
20
+ export interface ModelPricing {
21
+ inputPricePerMillion: number;
22
+ outputPricePerMillion: number;
23
+ }
24
+ /** Budget configuration */
25
+ export interface BudgetConfig {
26
+ /** Maximum total tokens allowed */
27
+ maxTokens?: number;
28
+ /** Maximum cost in USD */
29
+ maxCost?: number;
30
+ /** Alert thresholds as fractions (e.g., [0.5, 0.8, 1.0]) */
31
+ alertThresholds?: number[];
32
+ /** Callback when threshold is reached */
33
+ onAlert?: (alert: BudgetAlert) => void;
34
+ /** Custom pricing for models not in default pricing table */
35
+ customPricing?: Record<string, ModelPricing>;
36
+ /** Maximum number of requests to keep in history */
37
+ maxRequestHistory?: number;
38
+ }
39
+ /** Budget alert payload */
40
+ export interface BudgetAlert {
41
+ threshold: number;
42
+ currentUsage: number;
43
+ limit: number;
44
+ type: 'tokens' | 'cost';
45
+ }
46
+ /** Check budget options */
47
+ export interface CheckBudgetOptions {
48
+ estimatedTokens?: number;
49
+ model?: string;
50
+ }
51
+ /** Remaining budget info */
52
+ export interface RemainingBudget {
53
+ tokens?: number;
54
+ cost?: number;
55
+ }
56
+ /** Request info for tracking */
57
+ export interface RequestInfo {
58
+ requestId: string;
59
+ model: string;
60
+ startTime: number;
61
+ endTime: number;
62
+ inputTokens: number;
63
+ outputTokens: number;
64
+ duration?: number;
65
+ }
66
+ /** Stored request with computed duration */
67
+ interface StoredRequest extends RequestInfo {
68
+ duration: number;
69
+ }
70
+ /** Budget snapshot for export/import */
71
+ export interface BudgetSnapshot {
72
+ totalInputTokens: number;
73
+ totalOutputTokens: number;
74
+ totalCost: number;
75
+ usageByModel: Record<string, {
76
+ inputTokens: number;
77
+ outputTokens: number;
78
+ cost: number;
79
+ }>;
80
+ triggeredThresholds: number[];
81
+ }
82
+ /** Request context options */
83
+ export interface RequestContextOptions {
84
+ requestId?: string;
85
+ userId?: string;
86
+ tenantId?: string;
87
+ parentRequestId?: string;
88
+ metadata?: Record<string, unknown>;
89
+ }
90
+ /** Request context with tracing */
91
+ export interface IRequestContext {
92
+ requestId: string;
93
+ userId?: string;
94
+ tenantId?: string;
95
+ parentRequestId?: string;
96
+ depth: number;
97
+ metadata?: Record<string, unknown>;
98
+ createChild(options?: Partial<RequestContextOptions>): IRequestContext;
99
+ toTraceHeaders(): Record<string, string>;
100
+ toTraceparent(): string;
101
+ }
102
+ /** Message format for token counting */
103
+ interface Message {
104
+ role: string;
105
+ content: string;
106
+ }
107
+ /**
108
+ * Token counter for estimating token usage
109
+ *
110
+ * Uses a simple character-based estimation that works across models.
111
+ * For production, consider integrating tiktoken for more accurate counts.
112
+ */
113
+ export declare class TokenCounter {
114
+ /** Average characters per token (rough estimate) */
115
+ private readonly charsPerToken;
116
+ /** Overhead tokens per message for formatting */
117
+ private readonly messageOverhead;
118
+ /**
119
+ * Estimate tokens for a text string
120
+ */
121
+ estimateTokens(text: string, _model?: string): number;
122
+ /**
123
+ * Count tokens in a message array including formatting overhead
124
+ */
125
+ countMessageTokens(messages: Message[], model?: string): number;
126
+ }
127
+ /**
128
+ * Error thrown when budget is exceeded
129
+ */
130
+ export declare class BudgetExceededError extends Error {
131
+ readonly type: 'tokens' | 'cost';
132
+ readonly limit: number;
133
+ readonly current: number;
134
+ readonly requested?: number | undefined;
135
+ constructor(message: string, type: 'tokens' | 'cost', limit: number, current: number, requested?: number | undefined);
136
+ }
137
+ /**
138
+ * Tracks token usage and costs with budget limits
139
+ */
140
+ export declare class BudgetTracker {
141
+ private totalInputTokens;
142
+ private totalOutputTokens;
143
+ private usageByModel;
144
+ private triggeredThresholds;
145
+ private requests;
146
+ private readonly config;
147
+ constructor(config?: BudgetConfig);
148
+ /**
149
+ * Record token usage from a request
150
+ */
151
+ recordUsage(usage: TokenUsage): void;
152
+ /**
153
+ * Record a complete request with timing info
154
+ */
155
+ recordRequest(info: RequestInfo): void;
156
+ /**
157
+ * Get all recorded requests
158
+ */
159
+ getRequests(): StoredRequest[];
160
+ /**
161
+ * Check if a proposed request would exceed budget
162
+ */
163
+ checkBudget(options: CheckBudgetOptions): void;
164
+ /**
165
+ * Check limits after recording and throw if exceeded
166
+ */
167
+ private checkLimitsAfterRecording;
168
+ /**
169
+ * Check and trigger alerts
170
+ */
171
+ private checkAlerts;
172
+ /**
173
+ * Get total input tokens
174
+ */
175
+ getTotalInputTokens(): number;
176
+ /**
177
+ * Get total output tokens
178
+ */
179
+ getTotalOutputTokens(): number;
180
+ /**
181
+ * Get total tokens (input + output)
182
+ */
183
+ getTotalTokens(): number;
184
+ /**
185
+ * Get total cost in USD
186
+ */
187
+ getTotalCost(): number;
188
+ /**
189
+ * Get cost breakdown by model
190
+ */
191
+ getCostByModel(): Record<string, number>;
192
+ /**
193
+ * Get remaining budget
194
+ */
195
+ getRemainingBudget(): RemainingBudget;
196
+ /**
197
+ * Reset all tracking
198
+ */
199
+ reset(): void;
200
+ /**
201
+ * Export current state for persistence
202
+ */
203
+ export(): BudgetSnapshot;
204
+ /**
205
+ * Import previously exported state
206
+ */
207
+ import(snapshot: BudgetSnapshot): void;
208
+ /**
209
+ * Get pricing for a model
210
+ */
211
+ private getPricing;
212
+ /**
213
+ * Calculate cost for token usage
214
+ */
215
+ private calculateCost;
216
+ }
217
+ /**
218
+ * Request context for tracing and user isolation
219
+ */
220
+ export declare class RequestContext implements IRequestContext {
221
+ readonly requestId: string;
222
+ readonly userId?: string;
223
+ readonly tenantId?: string;
224
+ readonly parentRequestId?: string;
225
+ readonly depth: number;
226
+ readonly metadata?: Record<string, unknown>;
227
+ private readonly traceId;
228
+ private readonly spanId;
229
+ constructor(options?: RequestContextOptions & {
230
+ depth?: number;
231
+ });
232
+ /**
233
+ * Create a child context that inherits from this one
234
+ */
235
+ createChild(options?: Partial<RequestContextOptions>): RequestContext;
236
+ /**
237
+ * Serialize to trace headers
238
+ */
239
+ toTraceHeaders(): Record<string, string>;
240
+ /**
241
+ * Generate W3C traceparent header
242
+ * Format: version-trace_id-parent_id-flags
243
+ */
244
+ toTraceparent(): string;
245
+ /**
246
+ * Create a RequestContext from trace headers
247
+ */
248
+ static fromHeaders(headers: Record<string, string>): RequestContext;
249
+ }
250
+ /**
251
+ * Create a new request context
252
+ */
253
+ export declare function createRequestContext(options?: RequestContextOptions): RequestContext;
254
+ /** Options for withBudget */
255
+ export interface WithBudgetOptions extends BudgetConfig {
256
+ userId?: string;
257
+ tenantId?: string;
258
+ }
259
+ /**
260
+ * Execute a function with budget tracking
261
+ *
262
+ * @example
263
+ * ```ts
264
+ * const result = await withBudget({ maxTokens: 1000 }, async (tracker) => {
265
+ * tracker.recordUsage({ inputTokens: 100, outputTokens: 50 })
266
+ * return 'success'
267
+ * })
268
+ * ```
269
+ */
270
+ export declare function withBudget<T>(options: WithBudgetOptions, fn: (tracker: BudgetTracker, ctx?: RequestContext) => Promise<T>): Promise<T>;
271
+ export {};
272
+ //# sourceMappingURL=budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"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"}