tokenmeter 0.9.0 → 0.9.11

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 (54) hide show
  1. package/README.md +220 -6
  2. package/dist/config.d.ts +7 -84
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +7 -158
  5. package/dist/config.js.map +1 -1
  6. package/dist/exporter/PostgresExporter.d.ts.map +1 -1
  7. package/dist/exporter/PostgresExporter.js +4 -2
  8. package/dist/exporter/PostgresExporter.js.map +1 -1
  9. package/dist/index.d.ts +3 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/instrumentation/proxy.d.ts.map +1 -1
  14. package/dist/instrumentation/proxy.js +279 -51
  15. package/dist/instrumentation/proxy.js.map +1 -1
  16. package/dist/instrumentation/strategies/index.d.ts +33 -0
  17. package/dist/instrumentation/strategies/index.d.ts.map +1 -1
  18. package/dist/instrumentation/strategies/index.js +146 -17
  19. package/dist/instrumentation/strategies/index.js.map +1 -1
  20. package/dist/integrations/inngest/index.d.ts +0 -38
  21. package/dist/integrations/inngest/index.d.ts.map +1 -1
  22. package/dist/integrations/inngest/index.js +0 -49
  23. package/dist/integrations/inngest/index.js.map +1 -1
  24. package/dist/integrations/vercel-ai/index.d.ts.map +1 -1
  25. package/dist/integrations/vercel-ai/index.js +2 -1
  26. package/dist/integrations/vercel-ai/index.js.map +1 -1
  27. package/dist/pricing/manifest.bundled.d.ts +24 -0
  28. package/dist/pricing/manifest.bundled.d.ts.map +1 -0
  29. package/dist/pricing/manifest.bundled.js +13347 -0
  30. package/dist/pricing/manifest.bundled.js.map +1 -0
  31. package/dist/pricing/manifest.d.ts +24 -10
  32. package/dist/pricing/manifest.d.ts.map +1 -1
  33. package/dist/pricing/manifest.js +189 -118
  34. package/dist/pricing/manifest.js.map +1 -1
  35. package/dist/pricing/schema.d.ts +22 -13
  36. package/dist/pricing/schema.d.ts.map +1 -1
  37. package/dist/pricing/schema.js +5 -2
  38. package/dist/pricing/schema.js.map +1 -1
  39. package/dist/processor/TokenMeterProcessor.d.ts +37 -7
  40. package/dist/processor/TokenMeterProcessor.d.ts.map +1 -1
  41. package/dist/processor/TokenMeterProcessor.js +45 -24
  42. package/dist/processor/TokenMeterProcessor.js.map +1 -1
  43. package/dist/query/client.d.ts +0 -24
  44. package/dist/query/client.d.ts.map +1 -1
  45. package/dist/query/client.js +42 -9
  46. package/dist/query/client.js.map +1 -1
  47. package/dist/registry.d.ts +127 -0
  48. package/dist/registry.d.ts.map +1 -0
  49. package/dist/registry.js +144 -0
  50. package/dist/registry.js.map +1 -0
  51. package/dist/types.d.ts +61 -5
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js.map +1 -1
  54. package/package.json +3 -2
@@ -5,42 +5,60 @@
5
5
  * Calculates costs and adds them to spans before export.
6
6
  */
7
7
  import { trace, context, propagation, SpanKind, SpanStatusCode, } from "@opentelemetry/api";
8
- import { extractUsage } from "./strategies/index.js";
8
+ import { extractUsage, setRegistryResolver } from "./strategies/index.js";
9
9
  import { getModelPricing, calculateCost, getCachedManifest, loadManifest, } from "../pricing/manifest.js";
10
10
  import { TM_ATTRIBUTES, GEN_AI_ATTRIBUTES } from "../types.js";
11
11
  import { logger } from "../logger.js";
12
- // The tracer instance
13
- let tracer = null;
14
- // Pricing manifest (loaded once)
15
- let pricingManifest = null;
16
- let manifestLoadPromise = null;
12
+ import { TOKENMETER_PROVIDER, detectProviderFromRegistry, getFactoryMethods, getRegisteredStrategy, } from "../registry.js";
13
+ import { VERSION, PACKAGE_NAME } from "../config.js";
17
14
  /**
18
- * Ensure pricing manifest is loaded
15
+ * Properties that should never be proxied (prototype pollution protection)
19
16
  */
20
- async function ensureManifestLoaded() {
21
- if (pricingManifest)
22
- return;
23
- if (manifestLoadPromise) {
24
- await manifestLoadPromise;
25
- return;
17
+ const BLOCKED_PROPERTIES = new Set([
18
+ "__proto__",
19
+ "constructor",
20
+ "prototype",
21
+ "__defineGetter__",
22
+ "__defineSetter__",
23
+ "__lookupGetter__",
24
+ "__lookupSetter__",
25
+ ]);
26
+ /**
27
+ * Sanitize error messages to prevent leaking sensitive information
28
+ */
29
+ function sanitizeErrorMessage(error) {
30
+ if (!(error instanceof Error)) {
31
+ return "Unknown error";
26
32
  }
27
- manifestLoadPromise = loadManifest()
28
- .then((manifest) => {
29
- pricingManifest = manifest;
30
- })
31
- .catch((err) => {
32
- logger.warn("Failed to load pricing manifest:", err);
33
- });
34
- await manifestLoadPromise;
33
+ let message = error.message;
34
+ // Redact common API key patterns
35
+ message = message.replace(/sk-[a-zA-Z0-9]{20,}/g, "sk-***"); // OpenAI
36
+ message = message.replace(/sk-ant-[a-zA-Z0-9-]{20,}/g, "sk-ant-***"); // Anthropic
37
+ message = message.replace(/AIza[a-zA-Z0-9_-]{35}/g, "AIza***"); // Google
38
+ message = message.replace(/xai-[a-zA-Z0-9]{20,}/g, "xai-***"); // xAI
39
+ // Redact Bearer tokens
40
+ message = message.replace(/Bearer\s+[a-zA-Z0-9._-]+/gi, "Bearer ***");
41
+ // Redact api_key parameters
42
+ message = message.replace(/api[_-]?key[:=]\s*[^\s&"']+/gi, "api_key=***");
43
+ // Redact authorization headers
44
+ message = message.replace(/authorization[:=]\s*[^\s&"']+/gi, "authorization=***");
45
+ return message;
35
46
  }
36
- // Start loading manifest immediately
37
- ensureManifestLoaded();
47
+ // The tracer instance
48
+ let tracer = null;
49
+ // Connect strategies to registry (avoids circular dependency)
50
+ setRegistryResolver(getRegisteredStrategy);
51
+ // Try to fetch updated pricing manifest on module load (fire-and-forget)
52
+ // Bundled pricing is always available, this just refreshes with latest data
53
+ loadManifest().catch((err) => {
54
+ logger.debug("Failed to fetch updated pricing manifest:", err);
55
+ });
38
56
  /**
39
57
  * Get or create the TokenMeter tracer
40
58
  */
41
59
  function getTracer() {
42
60
  if (!tracer) {
43
- tracer = trace.getTracer("tokenmeter", "5.0.0");
61
+ tracer = trace.getTracer(PACKAGE_NAME, VERSION);
44
62
  }
45
63
  return tracer;
46
64
  }
@@ -60,11 +78,29 @@ function getBaggageAttributes() {
60
78
  return attributes;
61
79
  }
62
80
  /**
63
- * Detect the provider from the client instance
81
+ * Detect the provider from the client instance.
82
+ *
83
+ * Detection order:
84
+ * 1. Symbol-based identification (TOKENMETER_PROVIDER)
85
+ * 2. Custom registered providers
86
+ * 3. Built-in provider detection (duck-typing)
64
87
  */
65
88
  function detectProvider(client) {
66
89
  if (!client || typeof client !== "object")
67
90
  return "unknown";
91
+ // 1. Check for Symbol-based provider identification
92
+ if (TOKENMETER_PROVIDER in client) {
93
+ const symbolProvider = client[TOKENMETER_PROVIDER];
94
+ if (typeof symbolProvider === "string") {
95
+ return symbolProvider;
96
+ }
97
+ }
98
+ // 2. Check registered providers from registry
99
+ const registeredProvider = detectProviderFromRegistry(client);
100
+ if (registeredProvider) {
101
+ return registeredProvider;
102
+ }
103
+ // 3. Built-in provider detection (duck-typing fallback)
68
104
  const c = client;
69
105
  // OpenAI: has chat.completions
70
106
  if ("chat" in c &&
@@ -85,6 +121,23 @@ function detectProvider(client) {
85
121
  if ("textToSpeech" in c && typeof c.textToSpeech === "object") {
86
122
  return "elevenlabs";
87
123
  }
124
+ // @google/generative-ai: GoogleGenerativeAI has getGenerativeModel method
125
+ if ("getGenerativeModel" in c && typeof c.getGenerativeModel === "function") {
126
+ return "google";
127
+ }
128
+ // @google/generative-ai: GenerativeModel has generateContent method
129
+ if ("generateContent" in c &&
130
+ typeof c.generateContent === "function" &&
131
+ "model" in c) {
132
+ return "google";
133
+ }
134
+ // @google/genai: GoogleGenAI has models property with generateContent
135
+ if ("models" in c &&
136
+ typeof c.models === "object" &&
137
+ c.models !== null &&
138
+ "generateContent" in c.models) {
139
+ return "google";
140
+ }
88
141
  return "unknown";
89
142
  }
90
143
  /**
@@ -96,6 +149,68 @@ function isPromise(value) {
96
149
  "then" in value &&
97
150
  typeof value.then === "function");
98
151
  }
152
+ /**
153
+ * Check if a value should be recursively proxied
154
+ * We proxy plain objects and class instances, but not primitives,
155
+ * arrays, built-in types, or API response objects.
156
+ */
157
+ function shouldProxyReturnValue(value, methodPath) {
158
+ if (value === null || typeof value !== "object") {
159
+ return false;
160
+ }
161
+ // Don't proxy arrays
162
+ if (Array.isArray(value)) {
163
+ return false;
164
+ }
165
+ // Don't proxy built-in types
166
+ if (value instanceof Date ||
167
+ value instanceof RegExp ||
168
+ value instanceof Error ||
169
+ value instanceof Map ||
170
+ value instanceof Set ||
171
+ value instanceof WeakMap ||
172
+ value instanceof WeakSet ||
173
+ value instanceof ArrayBuffer ||
174
+ value instanceof DataView) {
175
+ return false;
176
+ }
177
+ // Don't proxy Buffer or typed arrays
178
+ if (ArrayBuffer.isView(value)) {
179
+ return false;
180
+ }
181
+ // Don't proxy if it looks like an API response (has usage data or common response fields)
182
+ const v = value;
183
+ if ("usage" in v ||
184
+ "usageMetadata" in v ||
185
+ "choices" in v ||
186
+ "content" in v ||
187
+ "candidates" in v ||
188
+ "response" in v ||
189
+ "id" in v) {
190
+ return false;
191
+ }
192
+ // Proxy objects that look like SDK clients/models (have methods we want to intercept)
193
+ // This catches things like GenerativeModel returned from getGenerativeModel()
194
+ if ("generateContent" in v ||
195
+ "generateContentStream" in v ||
196
+ "chat" in v ||
197
+ "create" in v ||
198
+ "messages" in v ||
199
+ "embedContent" in v ||
200
+ "countTokens" in v ||
201
+ "startChat" in v) {
202
+ return true;
203
+ }
204
+ // For factory methods (like getGenerativeModel), proxy the returned object
205
+ const methodName = methodPath[methodPath.length - 1];
206
+ if (methodName?.startsWith("get") ||
207
+ methodName?.startsWith("create") ||
208
+ methodName === "model" ||
209
+ methodName === "models") {
210
+ return true;
211
+ }
212
+ return false;
213
+ }
99
214
  /**
100
215
  * Check if a value is an async iterator (stream)
101
216
  */
@@ -103,14 +218,11 @@ function isAsyncIterable(value) {
103
218
  return (value !== null && typeof value === "object" && Symbol.asyncIterator in value);
104
219
  }
105
220
  /**
106
- * Calculate cost for usage data
221
+ * Calculate cost for usage data.
222
+ * Pricing data is always available via bundled manifest.
107
223
  */
108
224
  function calculateUsageCost(usage) {
109
- const manifest = pricingManifest || getCachedManifest();
110
- if (!manifest) {
111
- logger.warn("Pricing manifest not loaded, cost will be 0");
112
- return 0;
113
- }
225
+ const manifest = getCachedManifest();
114
226
  const pricing = getModelPricing(usage.provider, usage.model, manifest);
115
227
  if (!pricing) {
116
228
  logger.warn(`Missing pricing for ${usage.provider}/${usage.model}`);
@@ -145,10 +257,31 @@ function addUsageToSpan(span, usage) {
145
257
  attributes[TM_ATTRIBUTES.COST_USD] = costUsd;
146
258
  span.setAttributes(attributes);
147
259
  }
260
+ /**
261
+ * Invoke the streaming cost callback with current usage data
262
+ */
263
+ function invokeStreamingCallback(callback, usage, isComplete) {
264
+ if (!callback)
265
+ return;
266
+ try {
267
+ const estimatedCost = usage ? calculateUsageCost(usage) : 0;
268
+ callback({
269
+ estimatedCost,
270
+ inputTokens: usage?.inputUnits ?? 0,
271
+ outputTokens: usage?.outputUnits ?? 0,
272
+ provider: usage?.provider ?? "unknown",
273
+ model: usage?.model ?? "unknown",
274
+ isComplete,
275
+ });
276
+ }
277
+ catch (err) {
278
+ logger.warn("Streaming cost callback error:", err);
279
+ }
280
+ }
148
281
  /**
149
282
  * Wrap an async iterator to track usage from streamed responses
150
283
  */
151
- function wrapAsyncIterator(iterator, span, provider, methodPath, args) {
284
+ function wrapAsyncIterator(iterator, span, provider, methodPath, args, onStreamingCost) {
152
285
  const originalIterator = iterator[Symbol.asyncIterator]();
153
286
  let accumulatedUsage = null;
154
287
  const wrappedIterator = {
@@ -160,6 +293,8 @@ function wrapAsyncIterator(iterator, span, provider, methodPath, args) {
160
293
  if (accumulatedUsage) {
161
294
  addUsageToSpan(span, accumulatedUsage);
162
295
  }
296
+ // Notify callback with final (complete) update
297
+ invokeStreamingCallback(onStreamingCost, accumulatedUsage, true);
163
298
  span.setStatus({ code: SpanStatusCode.OK });
164
299
  span.end();
165
300
  }
@@ -170,16 +305,29 @@ function wrapAsyncIterator(iterator, span, provider, methodPath, args) {
170
305
  const usage = extractUsage(methodPath, chunk, args, provider);
171
306
  if (usage) {
172
307
  accumulatedUsage = usage;
308
+ // Notify callback with intermediate update
309
+ invokeStreamingCallback(onStreamingCost, accumulatedUsage, false);
173
310
  }
174
311
  }
175
312
  }
176
313
  return result;
177
314
  }
178
315
  catch (error) {
316
+ // Capture partial usage before recording error
317
+ if (accumulatedUsage) {
318
+ try {
319
+ addUsageToSpan(span, accumulatedUsage);
320
+ }
321
+ catch (usageError) {
322
+ logger.warn("Failed to add partial usage to span:", usageError);
323
+ }
324
+ }
325
+ // Notify callback of completion on error
326
+ invokeStreamingCallback(onStreamingCost, accumulatedUsage, true);
179
327
  span.recordException(error);
180
328
  span.setStatus({
181
329
  code: SpanStatusCode.ERROR,
182
- message: error instanceof Error ? error.message : String(error),
330
+ message: sanitizeErrorMessage(error),
183
331
  });
184
332
  span.end();
185
333
  throw error;
@@ -187,25 +335,42 @@ function wrapAsyncIterator(iterator, span, provider, methodPath, args) {
187
335
  },
188
336
  async return(value) {
189
337
  // Stream was cancelled - still calculate cost for what we consumed
190
- if (accumulatedUsage) {
191
- addUsageToSpan(span, accumulatedUsage);
338
+ try {
339
+ if (accumulatedUsage) {
340
+ addUsageToSpan(span, accumulatedUsage);
341
+ }
342
+ // Notify callback of completion on cancellation
343
+ invokeStreamingCallback(onStreamingCost, accumulatedUsage, true);
344
+ span.setStatus({ code: SpanStatusCode.OK });
345
+ }
346
+ catch (error) {
347
+ logger.warn("Failed to finalize stream span:", error);
348
+ span.setStatus({ code: SpanStatusCode.ERROR });
349
+ }
350
+ finally {
351
+ span.end();
192
352
  }
193
- span.setStatus({ code: SpanStatusCode.OK });
194
- span.end();
195
353
  if (originalIterator.return) {
196
354
  return originalIterator.return(value);
197
355
  }
198
- return { done: true, value: undefined };
356
+ return { done: true, value: value };
199
357
  },
200
358
  async throw(error) {
201
359
  // Stream errored - still calculate cost for what we consumed
202
- if (accumulatedUsage) {
203
- addUsageToSpan(span, accumulatedUsage);
360
+ try {
361
+ if (accumulatedUsage) {
362
+ addUsageToSpan(span, accumulatedUsage);
363
+ }
204
364
  }
365
+ catch (usageError) {
366
+ logger.warn("Failed to add usage on stream error:", usageError);
367
+ }
368
+ // Notify callback of completion on error
369
+ invokeStreamingCallback(onStreamingCost, accumulatedUsage, true);
205
370
  span.recordException(error);
206
371
  span.setStatus({
207
372
  code: SpanStatusCode.ERROR,
208
- message: error instanceof Error ? error.message : String(error),
373
+ message: sanitizeErrorMessage(error),
209
374
  });
210
375
  span.end();
211
376
  if (originalIterator.throw) {
@@ -238,15 +403,38 @@ export function monitor(client, options = {}) {
238
403
  const provider = options.provider || detectProvider(client);
239
404
  const clientName = options.name || provider;
240
405
  const baseAttributes = options.attributes || {};
406
+ const onStreamingCost = options.onStreamingCost;
407
+ // WeakSet to track already-proxied objects and prevent double-wrapping
408
+ const proxiedObjects = new WeakSet();
409
+ /**
410
+ * Wrap a value in a proxy if it should be monitored
411
+ */
412
+ function wrapIfNeeded(value, path) {
413
+ // Don't double-wrap
414
+ if (proxiedObjects.has(value)) {
415
+ return value;
416
+ }
417
+ const proxy = new Proxy(value, createProxyHandler(path));
418
+ proxiedObjects.add(proxy);
419
+ return proxy;
420
+ }
241
421
  /**
242
422
  * Create a recursive proxy handler
243
423
  */
244
424
  function createProxyHandler(path = []) {
245
425
  return {
246
426
  get(target, prop, receiver) {
427
+ // Skip symbols
428
+ if (typeof prop === "symbol") {
429
+ return Reflect.get(target, prop, receiver);
430
+ }
431
+ // Prototype pollution protection
432
+ if (BLOCKED_PROPERTIES.has(prop)) {
433
+ return Reflect.get(target, prop, receiver);
434
+ }
247
435
  const value = Reflect.get(target, prop, receiver);
248
- // Skip symbols and internal properties
249
- if (typeof prop === "symbol" || prop.startsWith("_")) {
436
+ // Skip internal properties
437
+ if (prop.startsWith("_")) {
250
438
  return value;
251
439
  }
252
440
  // If it's a function, wrap it
@@ -254,6 +442,34 @@ export function monitor(client, options = {}) {
254
442
  return function (...args) {
255
443
  const methodPath = [...path, prop];
256
444
  const spanName = `${clientName}.${methodPath.join(".")}`;
445
+ // Check if this is a factory method that returns an object we should proxy
446
+ // For these, we don't create spans but do wrap the returned object
447
+ const registeredFactoryMethods = getFactoryMethods(provider);
448
+ const isFactoryMethod = prop === "getGenerativeModel" ||
449
+ prop === "getModel" ||
450
+ prop === "startChat" ||
451
+ registeredFactoryMethods.includes(prop);
452
+ if (isFactoryMethod) {
453
+ const result = value.apply(this === receiver ? target : this, args);
454
+ // Handle async factory methods
455
+ if (isPromise(result)) {
456
+ return result.then((resolved) => {
457
+ if (resolved !== null &&
458
+ typeof resolved === "object" &&
459
+ shouldProxyReturnValue(resolved, methodPath)) {
460
+ return wrapIfNeeded(resolved, methodPath);
461
+ }
462
+ return resolved;
463
+ });
464
+ }
465
+ // Handle sync factory methods (like getGenerativeModel)
466
+ if (result !== null &&
467
+ typeof result === "object" &&
468
+ shouldProxyReturnValue(result, methodPath)) {
469
+ return wrapIfNeeded(result, methodPath);
470
+ }
471
+ return result;
472
+ }
257
473
  // Get baggage attributes from context (set by withAttributes)
258
474
  const baggageAttrs = getBaggageAttributes();
259
475
  // Start span with base + baggage attributes
@@ -277,7 +493,7 @@ export function monitor(client, options = {}) {
277
493
  return result.then((resolved) => {
278
494
  // Check if result is a stream
279
495
  if (isAsyncIterable(resolved)) {
280
- return wrapAsyncIterator(resolved, span, provider, methodPath, args);
496
+ return wrapAsyncIterator(resolved, span, provider, methodPath, args, onStreamingCost);
281
497
  }
282
498
  // Extract usage from result
283
499
  const usage = extractUsage(methodPath, resolved, args, provider);
@@ -286,14 +502,18 @@ export function monitor(client, options = {}) {
286
502
  }
287
503
  span.setStatus({ code: SpanStatusCode.OK });
288
504
  span.end();
505
+ // Wrap returned objects that should be monitored (e.g., chat sessions)
506
+ if (resolved !== null &&
507
+ typeof resolved === "object" &&
508
+ shouldProxyReturnValue(resolved, methodPath)) {
509
+ return wrapIfNeeded(resolved, methodPath);
510
+ }
289
511
  return resolved;
290
512
  }, (error) => {
291
513
  span.recordException(error);
292
514
  span.setStatus({
293
515
  code: SpanStatusCode.ERROR,
294
- message: error instanceof Error
295
- ? error.message
296
- : String(error),
516
+ message: sanitizeErrorMessage(error),
297
517
  });
298
518
  span.end();
299
519
  throw error;
@@ -301,7 +521,7 @@ export function monitor(client, options = {}) {
301
521
  }
302
522
  // Handle sync results (rare for API calls)
303
523
  if (isAsyncIterable(result)) {
304
- return wrapAsyncIterator(result, span, provider, methodPath, args);
524
+ return wrapAsyncIterator(result, span, provider, methodPath, args, onStreamingCost);
305
525
  }
306
526
  const usage = extractUsage(methodPath, result, args, provider);
307
527
  if (usage) {
@@ -309,13 +529,19 @@ export function monitor(client, options = {}) {
309
529
  }
310
530
  span.setStatus({ code: SpanStatusCode.OK });
311
531
  span.end();
532
+ // Wrap returned objects that should be monitored
533
+ if (result !== null &&
534
+ typeof result === "object" &&
535
+ shouldProxyReturnValue(result, methodPath)) {
536
+ return wrapIfNeeded(result, methodPath);
537
+ }
312
538
  return result;
313
539
  }
314
540
  catch (error) {
315
541
  span.recordException(error);
316
542
  span.setStatus({
317
543
  code: SpanStatusCode.ERROR,
318
- message: error instanceof Error ? error.message : String(error),
544
+ message: sanitizeErrorMessage(error),
319
545
  });
320
546
  span.end();
321
547
  throw error;
@@ -325,13 +551,15 @@ export function monitor(client, options = {}) {
325
551
  }
326
552
  // If it's an object, recursively proxy it
327
553
  if (value !== null && typeof value === "object") {
328
- return new Proxy(value, createProxyHandler([...path, prop]));
554
+ return wrapIfNeeded(value, [...path, prop]);
329
555
  }
330
556
  return value;
331
557
  },
332
558
  };
333
559
  }
334
- return new Proxy(client, createProxyHandler());
560
+ const proxy = new Proxy(client, createProxyHandler());
561
+ proxiedObjects.add(proxy);
562
+ return proxy;
335
563
  }
336
564
  export default monitor;
337
565
  //# sourceMappingURL=proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/instrumentation/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/instrumentation/proxy.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,25 @@ export declare const elevenlabsStrategy: ExtractionStrategy;
26
26
  export declare const bedrockStrategy: ExtractionStrategy;
27
27
  /**
28
28
  * Google Vertex AI / Gemini extraction strategy
29
+ *
30
+ * Handles responses from:
31
+ * - Google Vertex AI SDK
32
+ * - @google/genai (new unified SDK)
33
+ *
34
+ * Response structure: { usageMetadata: { promptTokenCount, candidatesTokenCount, ... } }
29
35
  */
30
36
  export declare const vertexAIStrategy: ExtractionStrategy;
37
+ /**
38
+ * Google Generative AI SDK extraction strategy
39
+ *
40
+ * Handles responses from @google/generative-ai (deprecated SDK)
41
+ * where the response is wrapped: result.response.usageMetadata
42
+ *
43
+ * This strategy specifically handles the wrapped response format used by:
44
+ * - GoogleGenerativeAI.getGenerativeModel().generateContent()
45
+ * - GoogleGenerativeAI.getGenerativeModel().generateContentStream()
46
+ */
47
+ export declare const googleGenerativeAIStrategy: ExtractionStrategy;
31
48
  /**
32
49
  * BFL (Black Forest Labs) extraction strategy
33
50
  *
@@ -42,12 +59,28 @@ export declare const bflStrategy: ExtractionStrategy;
42
59
  export declare const vercelAIStrategy: ExtractionStrategy;
43
60
  /**
44
61
  * All registered strategies
62
+ *
63
+ * Note: Order matters! More specific strategies should come before general ones.
64
+ * googleGenerativeAIStrategy checks for wrapped response format and must come
65
+ * before vertexAIStrategy which handles the unwrapped format.
45
66
  */
46
67
  export declare const strategies: ExtractionStrategy[];
47
68
  /**
48
69
  * Find the appropriate strategy for a given result
49
70
  */
50
71
  export declare function findStrategy(methodPath: string[], result: unknown): ExtractionStrategy | null;
72
+ /**
73
+ * Registry strategy resolver type.
74
+ * Allows the caller to provide a function to look up registered strategies
75
+ * without creating a circular dependency.
76
+ */
77
+ export type RegistryStrategyResolver = (provider: string) => ExtractionStrategy | undefined;
78
+ /**
79
+ * Set the registry strategy resolver.
80
+ * Called by proxy.ts at initialization to provide access to registered strategies.
81
+ * @internal
82
+ */
83
+ export declare function setRegistryResolver(resolver: RegistryStrategyResolver): void;
51
84
  /**
52
85
  * Extract usage data using the appropriate strategy
53
86
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/strategies/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,kBAwD5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAqD/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,kBA4DzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAyDhC,CAAC;AAsBF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,kBA8D7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAwD9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,kBAgEzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBA0E9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,kBAAkB,EAS1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,OAAO,GACd,kBAAkB,GAAG,IAAI,CAO3B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,SAAS,GAAG,IAAI,CAgBlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/strategies/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,kBAwD5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAqD/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,kBA4DzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAyDhC,CAAC;AAsBF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,kBA8D7B,CAAC;AAwEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBAiC9B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,kBA6ExC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,kBAgEzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,kBA0E9B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,kBAAkB,EAU1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,OAAO,GACd,kBAAkB,GAAG,IAAI,CAO3B;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,QAAQ,EAAE,MAAM,KACb,kBAAkB,GAAG,SAAS,CAAC;AAKpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAE5E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,SAAS,GAAG,IAAI,CAyBlB"}