braintrust 3.11.0 → 3.13.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 (77) hide show
  1. package/README.md +8 -8
  2. package/dev/dist/index.d.mts +26 -7
  3. package/dev/dist/index.d.ts +26 -7
  4. package/dev/dist/index.js +2717 -335
  5. package/dev/dist/index.mjs +2499 -117
  6. package/dist/apply-auto-instrumentation.browser.d.mts +2 -0
  7. package/dist/apply-auto-instrumentation.browser.d.ts +2 -0
  8. package/dist/apply-auto-instrumentation.browser.js +18 -0
  9. package/dist/apply-auto-instrumentation.browser.mjs +0 -0
  10. package/dist/apply-auto-instrumentation.d.mts +2 -0
  11. package/dist/apply-auto-instrumentation.d.ts +2 -0
  12. package/dist/apply-auto-instrumentation.js +2534 -0
  13. package/dist/apply-auto-instrumentation.mjs +2534 -0
  14. package/dist/auto-instrumentations/bundler/esbuild.cjs +1803 -1283
  15. package/dist/auto-instrumentations/bundler/esbuild.d.mts +9 -5
  16. package/dist/auto-instrumentations/bundler/esbuild.d.ts +9 -5
  17. package/dist/auto-instrumentations/bundler/esbuild.mjs +10 -2
  18. package/dist/auto-instrumentations/bundler/next.cjs +3269 -0
  19. package/dist/auto-instrumentations/bundler/next.d.mts +3 -0
  20. package/dist/auto-instrumentations/bundler/next.d.ts +3 -0
  21. package/dist/auto-instrumentations/bundler/next.mjs +189 -0
  22. package/dist/auto-instrumentations/bundler/rollup.cjs +1803 -1283
  23. package/dist/auto-instrumentations/bundler/rollup.d.mts +9 -5
  24. package/dist/auto-instrumentations/bundler/rollup.d.ts +9 -5
  25. package/dist/auto-instrumentations/bundler/rollup.mjs +10 -2
  26. package/dist/auto-instrumentations/bundler/vite.cjs +1803 -1283
  27. package/dist/auto-instrumentations/bundler/vite.d.mts +9 -5
  28. package/dist/auto-instrumentations/bundler/vite.d.ts +9 -5
  29. package/dist/auto-instrumentations/bundler/vite.mjs +10 -2
  30. package/dist/auto-instrumentations/bundler/webpack-loader.cjs +1861 -1308
  31. package/dist/auto-instrumentations/bundler/webpack-loader.d.ts +3 -3
  32. package/dist/auto-instrumentations/bundler/webpack.cjs +1803 -1283
  33. package/dist/auto-instrumentations/bundler/webpack.d.mts +9 -5
  34. package/dist/auto-instrumentations/bundler/webpack.d.ts +9 -5
  35. package/dist/auto-instrumentations/bundler/webpack.mjs +6 -6
  36. package/dist/auto-instrumentations/{chunk-DIV5TO4S.mjs → chunk-E5DUYJWK.mjs} +338 -1
  37. package/dist/auto-instrumentations/chunk-GJOO4ESL.mjs +300 -0
  38. package/dist/auto-instrumentations/chunk-WFEUJACP.mjs +18 -0
  39. package/dist/auto-instrumentations/hook.mjs +1713 -1460
  40. package/dist/auto-instrumentations/index.cjs +94 -0
  41. package/dist/auto-instrumentations/index.d.mts +5 -1
  42. package/dist/auto-instrumentations/index.d.ts +5 -1
  43. package/dist/auto-instrumentations/index.mjs +6 -247
  44. package/dist/auto-instrumentations/loader/esm-hook.mjs +19 -2
  45. package/dist/auto-instrumentations/plugin-D7nDswtC.d.mts +44 -0
  46. package/dist/auto-instrumentations/plugin-D7nDswtC.d.ts +44 -0
  47. package/dist/browser.d.mts +264 -47
  48. package/dist/browser.d.ts +264 -47
  49. package/dist/browser.js +2521 -159
  50. package/dist/browser.mjs +2521 -159
  51. package/dist/chunk-26JGOELH.js +817 -0
  52. package/dist/chunk-75IQCUB2.mjs +817 -0
  53. package/dist/cli.js +2510 -122
  54. package/dist/edge-light.d.mts +1 -1
  55. package/dist/edge-light.d.ts +1 -1
  56. package/dist/edge-light.js +2521 -159
  57. package/dist/edge-light.mjs +2521 -159
  58. package/dist/index.d.mts +264 -47
  59. package/dist/index.d.ts +264 -47
  60. package/dist/index.js +3498 -1850
  61. package/dist/index.mjs +2635 -987
  62. package/dist/instrumentation/index.d.mts +7897 -48
  63. package/dist/instrumentation/index.d.ts +7897 -48
  64. package/dist/instrumentation/index.js +2408 -95
  65. package/dist/instrumentation/index.mjs +2407 -95
  66. package/dist/workerd.d.mts +1 -1
  67. package/dist/workerd.d.ts +1 -1
  68. package/dist/workerd.js +2521 -159
  69. package/dist/workerd.mjs +2521 -159
  70. package/package.json +23 -17
  71. package/util/dist/index.d.mts +3 -1
  72. package/util/dist/index.d.ts +3 -1
  73. package/util/dist/index.js +6 -0
  74. package/util/dist/index.mjs +6 -0
  75. package/dist/auto-instrumentations/chunk-G6ZWXGZB.mjs +0 -116
  76. package/dist/auto-instrumentations/plugin-Df3qKIl2.d.mts +0 -22
  77. package/dist/auto-instrumentations/plugin-Df3qKIl2.d.ts +0 -22
@@ -0,0 +1,3269 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/auto-instrumentations/bundler/next.ts
31
+ var next_exports = {};
32
+ __export(next_exports, {
33
+ wrapNextjsConfigWithBraintrust: () => wrapNextjsConfigWithBraintrust
34
+ });
35
+ module.exports = __toCommonJS(next_exports);
36
+ var import_node_module = require("module");
37
+ var import_node_path = require("path");
38
+
39
+ // src/auto-instrumentations/bundler/plugin.ts
40
+ var import_unplugin = require("unplugin");
41
+ var import_code_transformer = require("@apm-js-collab/code-transformer");
42
+ var import_path = require("path");
43
+ var import_fs = require("fs");
44
+ var import_url = require("url");
45
+ var import_module_details_from_path = __toESM(require("module-details-from-path"));
46
+
47
+ // src/instrumentation/config.ts
48
+ var envIntegrationAliases = {
49
+ openai: "openai",
50
+ "openai-codex": "openaiCodexSDK",
51
+ "openai-codex-sdk": "openaiCodexSDK",
52
+ openaicodexsdk: "openaiCodexSDK",
53
+ codex: "openaiCodexSDK",
54
+ "codex-sdk": "openaiCodexSDK",
55
+ anthropic: "anthropic",
56
+ aisdk: "aisdk",
57
+ "ai-sdk": "aisdk",
58
+ "vercel-ai": "aisdk",
59
+ vercel: "vercel",
60
+ claudeagentsdk: "claudeAgentSDK",
61
+ "claude-agent-sdk": "claudeAgentSDK",
62
+ cursor: "cursor",
63
+ "cursor-sdk": "cursorSDK",
64
+ cursorsdk: "cursorSDK",
65
+ flue: "flue",
66
+ "flue-runtime": "flue",
67
+ "openai-agents": "openAIAgents",
68
+ openaiagents: "openAIAgents",
69
+ "openai-agents-core": "openAIAgents",
70
+ openaiagentscore: "openAIAgents",
71
+ google: "google",
72
+ "google-genai": "googleGenAI",
73
+ googlegenai: "googleGenAI",
74
+ huggingface: "huggingface",
75
+ openrouter: "openrouter",
76
+ openrouteragent: "openrouterAgent",
77
+ "openrouter-agent": "openrouterAgent",
78
+ mistral: "mistral",
79
+ googleadk: "googleADK",
80
+ "google-adk": "googleADK",
81
+ cohere: "cohere",
82
+ groq: "groq",
83
+ "groq-sdk": "groq",
84
+ genkit: "genkit",
85
+ "firebase-genkit": "genkit",
86
+ githubcopilot: "gitHubCopilot",
87
+ "github-copilot": "gitHubCopilot",
88
+ "copilot-sdk": "gitHubCopilot",
89
+ langchain: "langchain",
90
+ "langchain-js": "langchain",
91
+ "@langchain": "langchain",
92
+ langgraph: "langgraph"
93
+ };
94
+ function readDisabledInstrumentationEnvConfig(disabledList) {
95
+ const integrations = {};
96
+ if (disabledList) {
97
+ for (const value of disabledList.split(",")) {
98
+ const sdk = value.trim().toLowerCase();
99
+ if (sdk.length > 0) {
100
+ integrations[envIntegrationAliases[sdk] ?? sdk] = false;
101
+ }
102
+ }
103
+ }
104
+ return { integrations };
105
+ }
106
+ function isInstrumentationIntegrationDisabled(integrations, ...names) {
107
+ return names.some((name) => integrations?.[name] === false);
108
+ }
109
+
110
+ // src/isomorph.ts
111
+ var DefaultAsyncLocalStorage = class {
112
+ constructor() {
113
+ }
114
+ enterWith(_) {
115
+ }
116
+ run(_, callback) {
117
+ return callback();
118
+ }
119
+ getStore() {
120
+ return void 0;
121
+ }
122
+ };
123
+ var DefaultChannel = class {
124
+ constructor(name) {
125
+ this.name = name;
126
+ }
127
+ hasSubscribers = false;
128
+ subscribe(_subscription) {
129
+ }
130
+ unsubscribe(_subscription) {
131
+ return false;
132
+ }
133
+ bindStore(_store, _transform) {
134
+ }
135
+ unbindStore(_store) {
136
+ return false;
137
+ }
138
+ publish(_message) {
139
+ }
140
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
141
+ runStores(_message, fn, thisArg, ...args) {
142
+ return fn.apply(thisArg, args);
143
+ }
144
+ };
145
+ var DefaultTracingChannel = class {
146
+ start;
147
+ end;
148
+ asyncStart;
149
+ asyncEnd;
150
+ error;
151
+ constructor(nameOrChannels) {
152
+ if (typeof nameOrChannels === "string") {
153
+ this.start = new DefaultChannel(`tracing:${nameOrChannels}:start`);
154
+ this.end = new DefaultChannel(`tracing:${nameOrChannels}:end`);
155
+ this.asyncStart = new DefaultChannel(
156
+ `tracing:${nameOrChannels}:asyncStart`
157
+ );
158
+ this.asyncEnd = new DefaultChannel(`tracing:${nameOrChannels}:asyncEnd`);
159
+ this.error = new DefaultChannel(`tracing:${nameOrChannels}:error`);
160
+ return;
161
+ }
162
+ this.start = nameOrChannels.start ?? new DefaultChannel("tracing:start");
163
+ this.end = nameOrChannels.end ?? new DefaultChannel("tracing:end");
164
+ this.asyncStart = nameOrChannels.asyncStart ?? new DefaultChannel("tracing:asyncStart");
165
+ this.asyncEnd = nameOrChannels.asyncEnd ?? new DefaultChannel("tracing:asyncEnd");
166
+ this.error = nameOrChannels.error ?? new DefaultChannel("tracing:error");
167
+ }
168
+ get hasSubscribers() {
169
+ return this.start.hasSubscribers || this.end.hasSubscribers || this.asyncStart.hasSubscribers || this.asyncEnd.hasSubscribers || this.error.hasSubscribers;
170
+ }
171
+ subscribe(_handlers) {
172
+ }
173
+ unsubscribe(_handlers) {
174
+ return false;
175
+ }
176
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
+ traceSync(fn, _message, thisArg, ...args) {
178
+ return fn.apply(thisArg, args);
179
+ }
180
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
181
+ tracePromise(fn, _message, thisArg, ...args) {
182
+ return fn.apply(thisArg, args);
183
+ }
184
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
185
+ traceCallback(fn, _position, _message, thisArg, ...args) {
186
+ return fn.apply(thisArg, args);
187
+ }
188
+ };
189
+ var iso = {
190
+ buildType: "unknown",
191
+ // Will be set by configureBrowser() or configureNode()
192
+ getRepoInfo: async (_settings) => void 0,
193
+ getPastNAncestors: async () => [],
194
+ getEnv: (_name) => void 0,
195
+ getBraintrustApiKey: async () => void 0,
196
+ getCallerLocation: () => void 0,
197
+ newAsyncLocalStorage: () => new DefaultAsyncLocalStorage(),
198
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
199
+ newTracingChannel: (nameOrChannels) => new DefaultTracingChannel(nameOrChannels),
200
+ processOn: (_0, _1) => {
201
+ },
202
+ basename: (filepath) => filepath.split(/[\\/]/).pop() || filepath,
203
+ // eslint-disable-next-line no-restricted-properties -- preserving intentional console usage.
204
+ writeln: (text) => console.log(text)
205
+ };
206
+ var isomorph_default = iso;
207
+
208
+ // src/instrumentation/core/channel-definitions.ts
209
+ function channel(spec) {
210
+ return spec;
211
+ }
212
+ function defineChannels(pkg, channels) {
213
+ return Object.fromEntries(
214
+ Object.entries(channels).map(([key, spec]) => {
215
+ const fullChannelName = `orchestrion:${pkg}:${spec.channelName}`;
216
+ if (spec.kind === "async") {
217
+ const asyncSpec = spec;
218
+ const tracingChannel2 = () => isomorph_default.newTracingChannel(
219
+ fullChannelName
220
+ );
221
+ return [
222
+ key,
223
+ {
224
+ ...asyncSpec,
225
+ tracingChannel: tracingChannel2,
226
+ tracePromise: (fn, context) => tracingChannel2().tracePromise(
227
+ fn,
228
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
229
+ context
230
+ )
231
+ }
232
+ ];
233
+ }
234
+ const syncSpec = spec;
235
+ const tracingChannel = () => isomorph_default.newTracingChannel(
236
+ fullChannelName
237
+ );
238
+ return [
239
+ key,
240
+ {
241
+ ...syncSpec,
242
+ tracingChannel,
243
+ traceSync: (fn, context) => tracingChannel().traceSync(
244
+ fn,
245
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
246
+ context
247
+ )
248
+ }
249
+ ];
250
+ })
251
+ );
252
+ }
253
+
254
+ // src/instrumentation/plugins/ai-sdk-channels.ts
255
+ var aiSDKChannels = defineChannels("ai", {
256
+ generateText: channel({
257
+ channelName: "generateText",
258
+ kind: "async"
259
+ }),
260
+ streamText: channel({
261
+ channelName: "streamText",
262
+ kind: "async"
263
+ }),
264
+ streamTextSync: channel({
265
+ channelName: "streamText.sync",
266
+ kind: "sync-stream"
267
+ }),
268
+ generateObject: channel({
269
+ channelName: "generateObject",
270
+ kind: "async"
271
+ }),
272
+ streamObject: channel({
273
+ channelName: "streamObject",
274
+ kind: "async"
275
+ }),
276
+ streamObjectSync: channel({
277
+ channelName: "streamObject.sync",
278
+ kind: "sync-stream"
279
+ }),
280
+ embed: channel(
281
+ {
282
+ channelName: "embed",
283
+ kind: "async"
284
+ }
285
+ ),
286
+ embedMany: channel({
287
+ channelName: "embedMany",
288
+ kind: "async"
289
+ }),
290
+ rerank: channel({
291
+ channelName: "rerank",
292
+ kind: "async"
293
+ }),
294
+ agentGenerate: channel({
295
+ channelName: "Agent.generate",
296
+ kind: "async"
297
+ }),
298
+ agentStream: channel({
299
+ channelName: "Agent.stream",
300
+ kind: "async"
301
+ }),
302
+ agentStreamSync: channel({
303
+ channelName: "Agent.stream.sync",
304
+ kind: "sync-stream"
305
+ }),
306
+ toolLoopAgentGenerate: channel({
307
+ channelName: "ToolLoopAgent.generate",
308
+ kind: "async"
309
+ }),
310
+ toolLoopAgentStream: channel({
311
+ channelName: "ToolLoopAgent.stream",
312
+ kind: "async"
313
+ })
314
+ });
315
+
316
+ // src/auto-instrumentations/configs/ai-sdk.ts
317
+ var aiSDKConfigs = [
318
+ // generateText - async function
319
+ {
320
+ channelName: aiSDKChannels.generateText.channelName,
321
+ module: {
322
+ name: "ai",
323
+ versionRange: ">=3.0.0",
324
+ filePath: "dist/index.mjs"
325
+ },
326
+ functionQuery: {
327
+ functionName: "generateText",
328
+ kind: "Async"
329
+ }
330
+ },
331
+ {
332
+ channelName: aiSDKChannels.generateText.channelName,
333
+ module: {
334
+ name: "ai",
335
+ versionRange: ">=3.0.0",
336
+ filePath: "dist/index.js"
337
+ },
338
+ functionQuery: {
339
+ functionName: "generateText",
340
+ kind: "Async"
341
+ }
342
+ },
343
+ // streamText - async function (v3 only, before the sync refactor in v4)
344
+ {
345
+ channelName: aiSDKChannels.streamText.channelName,
346
+ module: {
347
+ name: "ai",
348
+ versionRange: ">=3.0.0 <4.0.0",
349
+ filePath: "dist/index.mjs"
350
+ },
351
+ functionQuery: {
352
+ functionName: "streamText",
353
+ kind: "Async"
354
+ }
355
+ },
356
+ // streamText - sync function returning stream (v4+)
357
+ {
358
+ channelName: aiSDKChannels.streamTextSync.channelName,
359
+ module: {
360
+ name: "ai",
361
+ versionRange: ">=4.0.0",
362
+ filePath: "dist/index.mjs"
363
+ },
364
+ functionQuery: {
365
+ functionName: "streamText",
366
+ kind: "Sync"
367
+ }
368
+ },
369
+ {
370
+ channelName: aiSDKChannels.streamText.channelName,
371
+ module: {
372
+ name: "ai",
373
+ versionRange: ">=3.0.0 <4.0.0",
374
+ filePath: "dist/index.js"
375
+ },
376
+ functionQuery: {
377
+ functionName: "streamText",
378
+ kind: "Async"
379
+ }
380
+ },
381
+ {
382
+ channelName: aiSDKChannels.streamTextSync.channelName,
383
+ module: {
384
+ name: "ai",
385
+ versionRange: ">=4.0.0",
386
+ filePath: "dist/index.js"
387
+ },
388
+ functionQuery: {
389
+ functionName: "streamText",
390
+ kind: "Sync"
391
+ }
392
+ },
393
+ // generateObject - async function
394
+ {
395
+ channelName: aiSDKChannels.generateObject.channelName,
396
+ module: {
397
+ name: "ai",
398
+ versionRange: ">=3.0.0",
399
+ filePath: "dist/index.mjs"
400
+ },
401
+ functionQuery: {
402
+ functionName: "generateObject",
403
+ kind: "Async"
404
+ }
405
+ },
406
+ {
407
+ channelName: aiSDKChannels.generateObject.channelName,
408
+ module: {
409
+ name: "ai",
410
+ versionRange: ">=3.0.0",
411
+ filePath: "dist/index.js"
412
+ },
413
+ functionQuery: {
414
+ functionName: "generateObject",
415
+ kind: "Async"
416
+ }
417
+ },
418
+ // embed - async function
419
+ {
420
+ channelName: aiSDKChannels.embed.channelName,
421
+ module: {
422
+ name: "ai",
423
+ versionRange: ">=3.0.0",
424
+ filePath: "dist/index.mjs"
425
+ },
426
+ functionQuery: {
427
+ functionName: "embed",
428
+ kind: "Async"
429
+ }
430
+ },
431
+ {
432
+ channelName: aiSDKChannels.embed.channelName,
433
+ module: {
434
+ name: "ai",
435
+ versionRange: ">=3.0.0",
436
+ filePath: "dist/index.js"
437
+ },
438
+ functionQuery: {
439
+ functionName: "embed",
440
+ kind: "Async"
441
+ }
442
+ },
443
+ // embedMany - async function
444
+ {
445
+ channelName: aiSDKChannels.embedMany.channelName,
446
+ module: {
447
+ name: "ai",
448
+ versionRange: ">=3.0.0",
449
+ filePath: "dist/index.mjs"
450
+ },
451
+ functionQuery: {
452
+ functionName: "embedMany",
453
+ kind: "Async"
454
+ }
455
+ },
456
+ {
457
+ channelName: aiSDKChannels.embedMany.channelName,
458
+ module: {
459
+ name: "ai",
460
+ versionRange: ">=3.0.0",
461
+ filePath: "dist/index.js"
462
+ },
463
+ functionQuery: {
464
+ functionName: "embedMany",
465
+ kind: "Async"
466
+ }
467
+ },
468
+ // rerank - async function
469
+ {
470
+ channelName: aiSDKChannels.rerank.channelName,
471
+ module: {
472
+ name: "ai",
473
+ versionRange: ">=5.0.0",
474
+ filePath: "dist/index.mjs"
475
+ },
476
+ functionQuery: {
477
+ functionName: "rerank",
478
+ kind: "Async"
479
+ }
480
+ },
481
+ {
482
+ channelName: aiSDKChannels.rerank.channelName,
483
+ module: {
484
+ name: "ai",
485
+ versionRange: ">=5.0.0",
486
+ filePath: "dist/index.js"
487
+ },
488
+ functionQuery: {
489
+ functionName: "rerank",
490
+ kind: "Async"
491
+ }
492
+ },
493
+ // streamObject - async function (v3 only, before the sync refactor in v4)
494
+ {
495
+ channelName: aiSDKChannels.streamObject.channelName,
496
+ module: {
497
+ name: "ai",
498
+ versionRange: ">=3.0.0 <4.0.0",
499
+ filePath: "dist/index.mjs"
500
+ },
501
+ functionQuery: {
502
+ functionName: "streamObject",
503
+ kind: "Async"
504
+ }
505
+ },
506
+ // streamObject - sync function returning stream (v4+)
507
+ {
508
+ channelName: aiSDKChannels.streamObjectSync.channelName,
509
+ module: {
510
+ name: "ai",
511
+ versionRange: ">=4.0.0",
512
+ filePath: "dist/index.mjs"
513
+ },
514
+ functionQuery: {
515
+ functionName: "streamObject",
516
+ kind: "Sync"
517
+ }
518
+ },
519
+ {
520
+ channelName: aiSDKChannels.streamObject.channelName,
521
+ module: {
522
+ name: "ai",
523
+ versionRange: ">=3.0.0 <4.0.0",
524
+ filePath: "dist/index.js"
525
+ },
526
+ functionQuery: {
527
+ functionName: "streamObject",
528
+ kind: "Async"
529
+ }
530
+ },
531
+ {
532
+ channelName: aiSDKChannels.streamObjectSync.channelName,
533
+ module: {
534
+ name: "ai",
535
+ versionRange: ">=4.0.0",
536
+ filePath: "dist/index.js"
537
+ },
538
+ functionQuery: {
539
+ functionName: "streamObject",
540
+ kind: "Sync"
541
+ }
542
+ },
543
+ // Agent.generate - async method (v5 only)
544
+ // The compiled AI SDK bundle emits this as an anonymous class method, so we
545
+ // target the first async `generate` method in the file instead of a class name.
546
+ {
547
+ channelName: aiSDKChannels.agentGenerate.channelName,
548
+ module: {
549
+ name: "ai",
550
+ versionRange: ">=5.0.0 <6.0.0",
551
+ filePath: "dist/index.mjs"
552
+ },
553
+ functionQuery: {
554
+ methodName: "generate",
555
+ kind: "Async",
556
+ index: 0
557
+ }
558
+ },
559
+ {
560
+ channelName: aiSDKChannels.agentGenerate.channelName,
561
+ module: {
562
+ name: "ai",
563
+ versionRange: ">=5.0.0 <6.0.0",
564
+ filePath: "dist/index.js"
565
+ },
566
+ functionQuery: {
567
+ methodName: "generate",
568
+ kind: "Async",
569
+ index: 0
570
+ }
571
+ },
572
+ // Agent.stream - sync method (v5 only)
573
+ // The compiled AI SDK bundle emits this as an anonymous class method, so we
574
+ // target the first sync `stream` method in the file instead of a class name.
575
+ {
576
+ channelName: aiSDKChannels.agentStreamSync.channelName,
577
+ module: {
578
+ name: "ai",
579
+ versionRange: ">=5.0.0 <6.0.0",
580
+ filePath: "dist/index.mjs"
581
+ },
582
+ functionQuery: {
583
+ methodName: "stream",
584
+ kind: "Sync",
585
+ index: 0
586
+ }
587
+ },
588
+ {
589
+ channelName: aiSDKChannels.agentStreamSync.channelName,
590
+ module: {
591
+ name: "ai",
592
+ versionRange: ">=5.0.0 <6.0.0",
593
+ filePath: "dist/index.js"
594
+ },
595
+ functionQuery: {
596
+ methodName: "stream",
597
+ kind: "Sync",
598
+ index: 0
599
+ }
600
+ },
601
+ // ToolLoopAgent.generate - async method (v6 only, Experimental_Agent is an alias)
602
+ // The compiled AI SDK bundle emits this as an anonymous class method, so we
603
+ // target the first async `generate` method in the file instead of a class name.
604
+ {
605
+ channelName: aiSDKChannels.toolLoopAgentGenerate.channelName,
606
+ module: {
607
+ name: "ai",
608
+ versionRange: ">=6.0.0 <7.0.0",
609
+ filePath: "dist/index.mjs"
610
+ },
611
+ functionQuery: {
612
+ methodName: "generate",
613
+ kind: "Async",
614
+ index: 0
615
+ }
616
+ },
617
+ {
618
+ channelName: aiSDKChannels.toolLoopAgentGenerate.channelName,
619
+ module: {
620
+ name: "ai",
621
+ versionRange: ">=6.0.0 <7.0.0",
622
+ filePath: "dist/index.js"
623
+ },
624
+ functionQuery: {
625
+ methodName: "generate",
626
+ kind: "Async",
627
+ index: 0
628
+ }
629
+ },
630
+ // ToolLoopAgent.stream - async method (v6 only, Experimental_Agent is an alias)
631
+ // The compiled AI SDK bundle emits this as an anonymous class method, so we
632
+ // target the first async `stream` method in the file instead of a class name.
633
+ {
634
+ channelName: aiSDKChannels.toolLoopAgentStream.channelName,
635
+ module: {
636
+ name: "ai",
637
+ versionRange: ">=6.0.0 <7.0.0",
638
+ filePath: "dist/index.mjs"
639
+ },
640
+ functionQuery: {
641
+ methodName: "stream",
642
+ kind: "Async",
643
+ index: 0
644
+ }
645
+ },
646
+ {
647
+ channelName: aiSDKChannels.toolLoopAgentStream.channelName,
648
+ module: {
649
+ name: "ai",
650
+ versionRange: ">=6.0.0 <7.0.0",
651
+ filePath: "dist/index.js"
652
+ },
653
+ functionQuery: {
654
+ methodName: "stream",
655
+ kind: "Async",
656
+ index: 0
657
+ }
658
+ }
659
+ ];
660
+
661
+ // src/instrumentation/plugins/anthropic-channels.ts
662
+ var anthropicChannels = defineChannels("@anthropic-ai/sdk", {
663
+ messagesCreate: channel({
664
+ channelName: "messages.create",
665
+ kind: "async"
666
+ }),
667
+ betaMessagesCreate: channel({
668
+ channelName: "beta.messages.create",
669
+ kind: "async"
670
+ }),
671
+ betaMessagesToolRunner: channel({
672
+ channelName: "beta.messages.toolRunner",
673
+ kind: "sync-stream"
674
+ })
675
+ });
676
+
677
+ // src/auto-instrumentations/configs/anthropic.ts
678
+ var anthropicConfigs = [
679
+ // Messages API - create in older SDK layouts (supports streaming via stream=true parameter)
680
+ {
681
+ channelName: anthropicChannels.messagesCreate.channelName,
682
+ module: {
683
+ name: "@anthropic-ai/sdk",
684
+ versionRange: ">=0.27.0 <0.39.0",
685
+ filePath: "resources/messages.mjs"
686
+ },
687
+ functionQuery: {
688
+ className: "Messages",
689
+ methodName: "create",
690
+ kind: "Async"
691
+ }
692
+ },
693
+ // Messages API - create (supports streaming via stream=true parameter)
694
+ {
695
+ channelName: anthropicChannels.messagesCreate.channelName,
696
+ module: {
697
+ name: "@anthropic-ai/sdk",
698
+ versionRange: ">=0.39.0",
699
+ filePath: "resources/messages/messages.mjs"
700
+ },
701
+ functionQuery: {
702
+ className: "Messages",
703
+ methodName: "create",
704
+ kind: "Async"
705
+ }
706
+ },
707
+ // Beta Messages API - create (supports streaming via stream=true parameter)
708
+ {
709
+ channelName: anthropicChannels.betaMessagesCreate.channelName,
710
+ module: {
711
+ name: "@anthropic-ai/sdk",
712
+ versionRange: ">=0.39.0",
713
+ filePath: "resources/beta/messages/messages.mjs"
714
+ },
715
+ functionQuery: {
716
+ className: "Messages",
717
+ methodName: "create",
718
+ kind: "Async"
719
+ }
720
+ },
721
+ // Beta Messages API - toolRunner (sync helper returning async iterable/thenable)
722
+ {
723
+ channelName: anthropicChannels.betaMessagesToolRunner.channelName,
724
+ module: {
725
+ name: "@anthropic-ai/sdk",
726
+ versionRange: ">=0.39.0",
727
+ filePath: "resources/beta/messages/messages.mjs"
728
+ },
729
+ functionQuery: {
730
+ className: "Messages",
731
+ methodName: "toolRunner",
732
+ kind: "Sync"
733
+ }
734
+ }
735
+ ];
736
+
737
+ // src/instrumentation/plugins/claude-agent-sdk-channels.ts
738
+ var claudeAgentSDKChannels = defineChannels(
739
+ "@anthropic-ai/claude-agent-sdk",
740
+ {
741
+ query: channel({
742
+ channelName: "query",
743
+ kind: "sync-stream"
744
+ })
745
+ }
746
+ );
747
+
748
+ // src/auto-instrumentations/configs/claude-agent-sdk.ts
749
+ var claudeAgentSDKConfigs = [
750
+ // query - Main entry point for agent interactions. The SDK returns an async
751
+ // iterable, but the exported query function itself is synchronous.
752
+ {
753
+ channelName: claudeAgentSDKChannels.query.channelName,
754
+ module: {
755
+ name: "@anthropic-ai/claude-agent-sdk",
756
+ versionRange: ">=0.1.0 <0.2.0",
757
+ filePath: "sdk.mjs"
758
+ },
759
+ functionQuery: {
760
+ functionName: "query",
761
+ kind: "Sync"
762
+ }
763
+ },
764
+ {
765
+ channelName: claudeAgentSDKChannels.query.channelName,
766
+ module: {
767
+ name: "@anthropic-ai/claude-agent-sdk",
768
+ versionRange: ">=0.2.0",
769
+ filePath: "sdk.mjs"
770
+ },
771
+ functionQuery: {
772
+ functionName: "query",
773
+ kind: "Sync",
774
+ isExportAlias: true
775
+ }
776
+ }
777
+ ];
778
+
779
+ // src/instrumentation/plugins/cohere-channels.ts
780
+ var cohereChannels = defineChannels("cohere-ai", {
781
+ chat: channel({
782
+ channelName: "chat",
783
+ kind: "async"
784
+ }),
785
+ chatStream: channel({
786
+ channelName: "chatStream",
787
+ kind: "async"
788
+ }),
789
+ embed: channel({
790
+ channelName: "embed",
791
+ kind: "async"
792
+ }),
793
+ rerank: channel({
794
+ channelName: "rerank",
795
+ kind: "async"
796
+ })
797
+ });
798
+
799
+ // src/auto-instrumentations/configs/cohere.ts
800
+ var cohereConfigs = [
801
+ {
802
+ channelName: cohereChannels.chat.channelName,
803
+ module: {
804
+ name: "cohere-ai",
805
+ versionRange: ">=7.0.0 <8.0.0",
806
+ filePath: "Client.js"
807
+ },
808
+ functionQuery: {
809
+ className: "CohereClient",
810
+ methodName: "chat",
811
+ kind: "Async"
812
+ }
813
+ },
814
+ {
815
+ channelName: cohereChannels.chat.channelName,
816
+ module: {
817
+ name: "cohere-ai",
818
+ versionRange: ">=7.0.0 <7.21.0",
819
+ filePath: "api/resources/v2/client/Client.js"
820
+ },
821
+ functionQuery: {
822
+ className: "V2",
823
+ methodName: "chat",
824
+ kind: "Async"
825
+ }
826
+ },
827
+ {
828
+ channelName: cohereChannels.chat.channelName,
829
+ module: {
830
+ name: "cohere-ai",
831
+ versionRange: ">=7.21.0 <8.0.0",
832
+ filePath: "api/resources/v2/client/Client.js"
833
+ },
834
+ functionQuery: {
835
+ className: "V2Client",
836
+ methodName: "chat",
837
+ kind: "Async"
838
+ }
839
+ },
840
+ {
841
+ channelName: cohereChannels.chat.channelName,
842
+ module: {
843
+ name: "cohere-ai",
844
+ versionRange: ">=8.0.0 <9.0.0",
845
+ filePath: "Client.js"
846
+ },
847
+ functionQuery: {
848
+ className: "CohereClient",
849
+ methodName: "chat",
850
+ kind: "Async"
851
+ }
852
+ },
853
+ {
854
+ channelName: cohereChannels.chat.channelName,
855
+ module: {
856
+ name: "cohere-ai",
857
+ versionRange: ">=8.0.0 <9.0.0",
858
+ filePath: "api/resources/v2/client/Client.js"
859
+ },
860
+ functionQuery: {
861
+ className: "V2Client",
862
+ methodName: "chat",
863
+ kind: "Async"
864
+ }
865
+ },
866
+ {
867
+ channelName: cohereChannels.chatStream.channelName,
868
+ module: {
869
+ name: "cohere-ai",
870
+ versionRange: ">=7.0.0 <8.0.0",
871
+ filePath: "Client.js"
872
+ },
873
+ functionQuery: {
874
+ className: "CohereClient",
875
+ methodName: "chatStream",
876
+ kind: "Async"
877
+ }
878
+ },
879
+ {
880
+ channelName: cohereChannels.chatStream.channelName,
881
+ module: {
882
+ name: "cohere-ai",
883
+ versionRange: ">=7.0.0 <7.21.0",
884
+ filePath: "api/resources/v2/client/Client.js"
885
+ },
886
+ functionQuery: {
887
+ className: "V2",
888
+ methodName: "chatStream",
889
+ kind: "Async"
890
+ }
891
+ },
892
+ {
893
+ channelName: cohereChannels.chatStream.channelName,
894
+ module: {
895
+ name: "cohere-ai",
896
+ versionRange: ">=7.21.0 <8.0.0",
897
+ filePath: "api/resources/v2/client/Client.js"
898
+ },
899
+ functionQuery: {
900
+ className: "V2Client",
901
+ methodName: "chatStream",
902
+ kind: "Async"
903
+ }
904
+ },
905
+ {
906
+ channelName: cohereChannels.chatStream.channelName,
907
+ module: {
908
+ name: "cohere-ai",
909
+ versionRange: ">=8.0.0 <9.0.0",
910
+ filePath: "Client.js"
911
+ },
912
+ functionQuery: {
913
+ className: "CohereClient",
914
+ methodName: "chatStream",
915
+ kind: "Async"
916
+ }
917
+ },
918
+ {
919
+ channelName: cohereChannels.chatStream.channelName,
920
+ module: {
921
+ name: "cohere-ai",
922
+ versionRange: ">=8.0.0 <9.0.0",
923
+ filePath: "api/resources/v2/client/Client.js"
924
+ },
925
+ functionQuery: {
926
+ className: "V2Client",
927
+ methodName: "chatStream",
928
+ kind: "Async"
929
+ }
930
+ },
931
+ {
932
+ channelName: cohereChannels.embed.channelName,
933
+ module: {
934
+ name: "cohere-ai",
935
+ versionRange: ">=7.0.0 <8.0.0",
936
+ filePath: "Client.js"
937
+ },
938
+ functionQuery: {
939
+ className: "CohereClient",
940
+ methodName: "embed",
941
+ kind: "Async"
942
+ }
943
+ },
944
+ {
945
+ channelName: cohereChannels.embed.channelName,
946
+ module: {
947
+ name: "cohere-ai",
948
+ versionRange: ">=7.0.0 <7.21.0",
949
+ filePath: "api/resources/v2/client/Client.js"
950
+ },
951
+ functionQuery: {
952
+ className: "V2",
953
+ methodName: "embed",
954
+ kind: "Async"
955
+ }
956
+ },
957
+ {
958
+ channelName: cohereChannels.embed.channelName,
959
+ module: {
960
+ name: "cohere-ai",
961
+ versionRange: ">=7.21.0 <8.0.0",
962
+ filePath: "api/resources/v2/client/Client.js"
963
+ },
964
+ functionQuery: {
965
+ className: "V2Client",
966
+ methodName: "embed",
967
+ kind: "Async"
968
+ }
969
+ },
970
+ {
971
+ channelName: cohereChannels.embed.channelName,
972
+ module: {
973
+ name: "cohere-ai",
974
+ versionRange: ">=8.0.0 <9.0.0",
975
+ filePath: "Client.js"
976
+ },
977
+ functionQuery: {
978
+ className: "CohereClient",
979
+ methodName: "embed",
980
+ kind: "Async"
981
+ }
982
+ },
983
+ {
984
+ channelName: cohereChannels.embed.channelName,
985
+ module: {
986
+ name: "cohere-ai",
987
+ versionRange: ">=8.0.0 <9.0.0",
988
+ filePath: "api/resources/v2/client/Client.js"
989
+ },
990
+ functionQuery: {
991
+ className: "V2Client",
992
+ methodName: "embed",
993
+ kind: "Async"
994
+ }
995
+ },
996
+ {
997
+ channelName: cohereChannels.rerank.channelName,
998
+ module: {
999
+ name: "cohere-ai",
1000
+ versionRange: ">=7.0.0 <8.0.0",
1001
+ filePath: "Client.js"
1002
+ },
1003
+ functionQuery: {
1004
+ className: "CohereClient",
1005
+ methodName: "rerank",
1006
+ kind: "Async"
1007
+ }
1008
+ },
1009
+ {
1010
+ channelName: cohereChannels.rerank.channelName,
1011
+ module: {
1012
+ name: "cohere-ai",
1013
+ versionRange: ">=7.0.0 <7.21.0",
1014
+ filePath: "api/resources/v2/client/Client.js"
1015
+ },
1016
+ functionQuery: {
1017
+ className: "V2",
1018
+ methodName: "rerank",
1019
+ kind: "Async"
1020
+ }
1021
+ },
1022
+ {
1023
+ channelName: cohereChannels.rerank.channelName,
1024
+ module: {
1025
+ name: "cohere-ai",
1026
+ versionRange: ">=7.21.0 <8.0.0",
1027
+ filePath: "api/resources/v2/client/Client.js"
1028
+ },
1029
+ functionQuery: {
1030
+ className: "V2Client",
1031
+ methodName: "rerank",
1032
+ kind: "Async"
1033
+ }
1034
+ },
1035
+ {
1036
+ channelName: cohereChannels.rerank.channelName,
1037
+ module: {
1038
+ name: "cohere-ai",
1039
+ versionRange: ">=8.0.0 <9.0.0",
1040
+ filePath: "Client.js"
1041
+ },
1042
+ functionQuery: {
1043
+ className: "CohereClient",
1044
+ methodName: "rerank",
1045
+ kind: "Async"
1046
+ }
1047
+ },
1048
+ {
1049
+ channelName: cohereChannels.rerank.channelName,
1050
+ module: {
1051
+ name: "cohere-ai",
1052
+ versionRange: ">=8.0.0 <9.0.0",
1053
+ filePath: "api/resources/v2/client/Client.js"
1054
+ },
1055
+ functionQuery: {
1056
+ className: "V2Client",
1057
+ methodName: "rerank",
1058
+ kind: "Async"
1059
+ }
1060
+ }
1061
+ ];
1062
+
1063
+ // src/instrumentation/plugins/cursor-sdk-channels.ts
1064
+ var cursorSDKChannels = defineChannels("@cursor/sdk", {
1065
+ create: channel({
1066
+ channelName: "Agent.create",
1067
+ kind: "async"
1068
+ }),
1069
+ resume: channel({
1070
+ channelName: "Agent.resume",
1071
+ kind: "async"
1072
+ }),
1073
+ prompt: channel({
1074
+ channelName: "Agent.prompt",
1075
+ kind: "async"
1076
+ }),
1077
+ send: channel({
1078
+ channelName: "agent.send",
1079
+ kind: "async"
1080
+ })
1081
+ });
1082
+
1083
+ // src/auto-instrumentations/configs/cursor-sdk.ts
1084
+ var cursorSDKVersionRange = ">=1.0.7 <2.0.0";
1085
+ var cursorSDKEntrypoints = ["dist/esm/index.js", "dist/cjs/index.js"];
1086
+ var cursorSDKConfigs = cursorSDKEntrypoints.flatMap((filePath) => [
1087
+ {
1088
+ channelName: cursorSDKChannels.create.channelName,
1089
+ module: {
1090
+ name: "@cursor/sdk",
1091
+ versionRange: cursorSDKVersionRange,
1092
+ filePath
1093
+ },
1094
+ functionQuery: {
1095
+ className: "Agent",
1096
+ methodName: "create",
1097
+ kind: "Async"
1098
+ }
1099
+ },
1100
+ {
1101
+ channelName: cursorSDKChannels.resume.channelName,
1102
+ module: {
1103
+ name: "@cursor/sdk",
1104
+ versionRange: cursorSDKVersionRange,
1105
+ filePath
1106
+ },
1107
+ functionQuery: {
1108
+ className: "Agent",
1109
+ methodName: "resume",
1110
+ kind: "Async"
1111
+ }
1112
+ },
1113
+ {
1114
+ channelName: cursorSDKChannels.prompt.channelName,
1115
+ module: {
1116
+ name: "@cursor/sdk",
1117
+ versionRange: cursorSDKVersionRange,
1118
+ filePath
1119
+ },
1120
+ functionQuery: {
1121
+ className: "Agent",
1122
+ methodName: "prompt",
1123
+ kind: "Async"
1124
+ }
1125
+ }
1126
+ ]);
1127
+
1128
+ // src/instrumentation/plugins/flue-channels.ts
1129
+ var flueChannels = defineChannels("@flue/runtime", {
1130
+ createContext: channel({
1131
+ channelName: "createFlueContext",
1132
+ kind: "sync-stream"
1133
+ }),
1134
+ openSession: channel({
1135
+ channelName: "Harness.openSession",
1136
+ kind: "async"
1137
+ }),
1138
+ contextEvent: channel({
1139
+ channelName: "context.event",
1140
+ kind: "sync-stream"
1141
+ }),
1142
+ prompt: channel({
1143
+ channelName: "session.prompt",
1144
+ kind: "async"
1145
+ }),
1146
+ skill: channel({
1147
+ channelName: "session.skill",
1148
+ kind: "async"
1149
+ }),
1150
+ task: channel({
1151
+ channelName: "session.task",
1152
+ kind: "async"
1153
+ }),
1154
+ compact: channel({
1155
+ channelName: "session.compact",
1156
+ kind: "async"
1157
+ })
1158
+ });
1159
+
1160
+ // src/auto-instrumentations/configs/flue.ts
1161
+ var flueVersionRange = ">=0.7.0 <0.8.0";
1162
+ var flueConfigs = [
1163
+ {
1164
+ channelName: flueChannels.createContext.channelName,
1165
+ module: {
1166
+ name: "@flue/runtime",
1167
+ versionRange: flueVersionRange,
1168
+ filePath: "dist/internal.mjs"
1169
+ },
1170
+ functionQuery: {
1171
+ functionName: "createFlueContext",
1172
+ kind: "Sync"
1173
+ }
1174
+ },
1175
+ {
1176
+ channelName: flueChannels.openSession.channelName,
1177
+ module: {
1178
+ name: "@flue/runtime",
1179
+ versionRange: flueVersionRange,
1180
+ filePath: "dist/internal.mjs"
1181
+ },
1182
+ functionQuery: {
1183
+ className: "Harness",
1184
+ methodName: "openSession",
1185
+ kind: "Async"
1186
+ }
1187
+ }
1188
+ ];
1189
+
1190
+ // src/instrumentation/plugins/genkit-channels.ts
1191
+ var genkitChannels = defineChannels("@genkit-ai/ai", {
1192
+ generate: channel({
1193
+ channelName: "generate",
1194
+ kind: "async"
1195
+ }),
1196
+ generateStream: channel({
1197
+ channelName: "generateStream",
1198
+ kind: "sync-stream"
1199
+ }),
1200
+ embed: channel({
1201
+ channelName: "embed",
1202
+ kind: "async"
1203
+ }),
1204
+ embedMany: channel({
1205
+ channelName: "embedMany",
1206
+ kind: "async"
1207
+ }),
1208
+ actionRun: channel({
1209
+ channelName: "action.run",
1210
+ kind: "async"
1211
+ }),
1212
+ actionStream: channel({
1213
+ channelName: "action.stream",
1214
+ kind: "sync-stream"
1215
+ })
1216
+ });
1217
+ var genkitCoreChannels = defineChannels("@genkit-ai/core", {
1218
+ actionSpan: channel({
1219
+ channelName: "action.span",
1220
+ kind: "async"
1221
+ })
1222
+ });
1223
+
1224
+ // src/auto-instrumentations/configs/genkit.ts
1225
+ var genkitVersionRange = ">=1.0.0 <2.0.0";
1226
+ var genkitConfigs = [
1227
+ {
1228
+ channelName: genkitChannels.generate.channelName,
1229
+ module: {
1230
+ name: "@genkit-ai/ai",
1231
+ versionRange: genkitVersionRange,
1232
+ filePath: "lib/genkit-ai.mjs"
1233
+ },
1234
+ functionQuery: {
1235
+ className: "GenkitAI",
1236
+ methodName: "generate",
1237
+ kind: "Async"
1238
+ }
1239
+ },
1240
+ {
1241
+ channelName: genkitChannels.generate.channelName,
1242
+ module: {
1243
+ name: "@genkit-ai/ai",
1244
+ versionRange: genkitVersionRange,
1245
+ filePath: "lib/genkit-ai.js"
1246
+ },
1247
+ functionQuery: {
1248
+ className: "GenkitAI",
1249
+ methodName: "generate",
1250
+ kind: "Async"
1251
+ }
1252
+ },
1253
+ {
1254
+ channelName: genkitChannels.generateStream.channelName,
1255
+ module: {
1256
+ name: "@genkit-ai/ai",
1257
+ versionRange: genkitVersionRange,
1258
+ filePath: "lib/genkit-ai.mjs"
1259
+ },
1260
+ functionQuery: {
1261
+ className: "GenkitAI",
1262
+ methodName: "generateStream",
1263
+ kind: "Sync"
1264
+ }
1265
+ },
1266
+ {
1267
+ channelName: genkitChannels.generateStream.channelName,
1268
+ module: {
1269
+ name: "@genkit-ai/ai",
1270
+ versionRange: genkitVersionRange,
1271
+ filePath: "lib/genkit-ai.js"
1272
+ },
1273
+ functionQuery: {
1274
+ className: "GenkitAI",
1275
+ methodName: "generateStream",
1276
+ kind: "Sync"
1277
+ }
1278
+ },
1279
+ {
1280
+ channelName: genkitChannels.embed.channelName,
1281
+ module: {
1282
+ name: "@genkit-ai/ai",
1283
+ versionRange: genkitVersionRange,
1284
+ filePath: "lib/genkit-ai.mjs"
1285
+ },
1286
+ functionQuery: {
1287
+ className: "GenkitAI",
1288
+ methodName: "embed",
1289
+ kind: "Async"
1290
+ }
1291
+ },
1292
+ {
1293
+ channelName: genkitChannels.embed.channelName,
1294
+ module: {
1295
+ name: "@genkit-ai/ai",
1296
+ versionRange: genkitVersionRange,
1297
+ filePath: "lib/genkit-ai.js"
1298
+ },
1299
+ functionQuery: {
1300
+ className: "GenkitAI",
1301
+ methodName: "embed",
1302
+ kind: "Async"
1303
+ }
1304
+ },
1305
+ {
1306
+ channelName: genkitChannels.embedMany.channelName,
1307
+ module: {
1308
+ name: "@genkit-ai/ai",
1309
+ versionRange: genkitVersionRange,
1310
+ filePath: "lib/genkit-ai.mjs"
1311
+ },
1312
+ functionQuery: {
1313
+ className: "GenkitAI",
1314
+ methodName: "embedMany",
1315
+ kind: "Async"
1316
+ }
1317
+ },
1318
+ {
1319
+ channelName: genkitChannels.embedMany.channelName,
1320
+ module: {
1321
+ name: "@genkit-ai/ai",
1322
+ versionRange: genkitVersionRange,
1323
+ filePath: "lib/genkit-ai.js"
1324
+ },
1325
+ functionQuery: {
1326
+ className: "GenkitAI",
1327
+ methodName: "embedMany",
1328
+ kind: "Async"
1329
+ }
1330
+ },
1331
+ {
1332
+ channelName: genkitChannels.actionRun.channelName,
1333
+ module: {
1334
+ name: "@genkit-ai/ai",
1335
+ versionRange: genkitVersionRange,
1336
+ filePath: "lib/genkit-ai.mjs"
1337
+ },
1338
+ functionQuery: {
1339
+ className: "GenkitAI",
1340
+ methodName: "run",
1341
+ kind: "Async"
1342
+ }
1343
+ },
1344
+ {
1345
+ channelName: genkitChannels.actionRun.channelName,
1346
+ module: {
1347
+ name: "@genkit-ai/ai",
1348
+ versionRange: genkitVersionRange,
1349
+ filePath: "lib/genkit-ai.js"
1350
+ },
1351
+ functionQuery: {
1352
+ className: "GenkitAI",
1353
+ methodName: "run",
1354
+ kind: "Async"
1355
+ }
1356
+ },
1357
+ {
1358
+ channelName: genkitCoreChannels.actionSpan.channelName,
1359
+ module: {
1360
+ name: "@genkit-ai/core",
1361
+ versionRange: genkitVersionRange,
1362
+ filePath: "lib/tracing/instrumentation.mjs"
1363
+ },
1364
+ functionQuery: {
1365
+ functionName: "runInNewSpan",
1366
+ kind: "Async"
1367
+ }
1368
+ },
1369
+ {
1370
+ channelName: genkitCoreChannels.actionSpan.channelName,
1371
+ module: {
1372
+ name: "@genkit-ai/core",
1373
+ versionRange: genkitVersionRange,
1374
+ filePath: "lib/tracing/instrumentation.js"
1375
+ },
1376
+ functionQuery: {
1377
+ functionName: "runInNewSpan",
1378
+ kind: "Async"
1379
+ }
1380
+ }
1381
+ ];
1382
+
1383
+ // src/instrumentation/plugins/github-copilot-channels.ts
1384
+ var gitHubCopilotChannels = defineChannels("@github/copilot-sdk", {
1385
+ createSession: channel({
1386
+ channelName: "client.createSession",
1387
+ kind: "async"
1388
+ }),
1389
+ resumeSession: channel({
1390
+ channelName: "client.resumeSession",
1391
+ kind: "async"
1392
+ }),
1393
+ sendAndWait: channel({
1394
+ channelName: "session.sendAndWait",
1395
+ kind: "async"
1396
+ })
1397
+ });
1398
+
1399
+ // src/auto-instrumentations/configs/github-copilot.ts
1400
+ var gitHubCopilotConfigs = [
1401
+ // ESM: CopilotClient.createSession
1402
+ {
1403
+ channelName: gitHubCopilotChannels.createSession.channelName,
1404
+ module: {
1405
+ name: "@github/copilot-sdk",
1406
+ versionRange: ">=0.3.0",
1407
+ filePath: "dist/client.js"
1408
+ },
1409
+ functionQuery: {
1410
+ className: "CopilotClient",
1411
+ methodName: "createSession",
1412
+ kind: "Async"
1413
+ }
1414
+ },
1415
+ // CJS: CopilotClient.createSession
1416
+ {
1417
+ channelName: gitHubCopilotChannels.createSession.channelName,
1418
+ module: {
1419
+ name: "@github/copilot-sdk",
1420
+ versionRange: ">=0.3.0",
1421
+ filePath: "dist/cjs/client.js"
1422
+ },
1423
+ functionQuery: {
1424
+ className: "CopilotClient",
1425
+ methodName: "createSession",
1426
+ kind: "Async"
1427
+ }
1428
+ },
1429
+ // ESM: CopilotClient.resumeSession
1430
+ {
1431
+ channelName: gitHubCopilotChannels.resumeSession.channelName,
1432
+ module: {
1433
+ name: "@github/copilot-sdk",
1434
+ versionRange: ">=0.3.0",
1435
+ filePath: "dist/client.js"
1436
+ },
1437
+ functionQuery: {
1438
+ className: "CopilotClient",
1439
+ methodName: "resumeSession",
1440
+ kind: "Async"
1441
+ }
1442
+ },
1443
+ // CJS: CopilotClient.resumeSession
1444
+ {
1445
+ channelName: gitHubCopilotChannels.resumeSession.channelName,
1446
+ module: {
1447
+ name: "@github/copilot-sdk",
1448
+ versionRange: ">=0.3.0",
1449
+ filePath: "dist/cjs/client.js"
1450
+ },
1451
+ functionQuery: {
1452
+ className: "CopilotClient",
1453
+ methodName: "resumeSession",
1454
+ kind: "Async"
1455
+ }
1456
+ },
1457
+ // ESM: CopilotSession.sendAndWait
1458
+ {
1459
+ channelName: gitHubCopilotChannels.sendAndWait.channelName,
1460
+ module: {
1461
+ name: "@github/copilot-sdk",
1462
+ versionRange: ">=0.3.0",
1463
+ filePath: "dist/session.js"
1464
+ },
1465
+ functionQuery: {
1466
+ className: "CopilotSession",
1467
+ methodName: "sendAndWait",
1468
+ kind: "Async"
1469
+ }
1470
+ },
1471
+ // CJS: CopilotSession.sendAndWait
1472
+ {
1473
+ channelName: gitHubCopilotChannels.sendAndWait.channelName,
1474
+ module: {
1475
+ name: "@github/copilot-sdk",
1476
+ versionRange: ">=0.3.0",
1477
+ filePath: "dist/cjs/session.js"
1478
+ },
1479
+ functionQuery: {
1480
+ className: "CopilotSession",
1481
+ methodName: "sendAndWait",
1482
+ kind: "Async"
1483
+ }
1484
+ }
1485
+ ];
1486
+
1487
+ // src/instrumentation/plugins/google-adk-channels.ts
1488
+ var googleADKChannels = defineChannels("@google/adk", {
1489
+ runnerRunAsync: channel({
1490
+ channelName: "runner.runAsync",
1491
+ kind: "sync-stream"
1492
+ }),
1493
+ agentRunAsync: channel({
1494
+ channelName: "agent.runAsync",
1495
+ kind: "sync-stream"
1496
+ }),
1497
+ toolRunAsync: channel({
1498
+ channelName: "tool.runAsync",
1499
+ kind: "async"
1500
+ })
1501
+ });
1502
+
1503
+ // src/auto-instrumentations/configs/google-adk.ts
1504
+ var googleADKVersionRange = ">=0.1.0";
1505
+ var googleADKBundledIndexV06VersionRange = ">=0.6.1 <0.7.0";
1506
+ var googleADKBundledIndexV1VersionRange = ">=1.0.0 <2.0.0";
1507
+ var googleADKConfigs = [
1508
+ // --- Runner.runAsync --- async generator, kind "Sync" + sync-stream channel
1509
+ // Runner.runAsync — ESM individual module file
1510
+ {
1511
+ channelName: googleADKChannels.runnerRunAsync.channelName,
1512
+ module: {
1513
+ name: "@google/adk",
1514
+ versionRange: googleADKVersionRange,
1515
+ filePath: "dist/esm/runner/runner.js"
1516
+ },
1517
+ functionQuery: {
1518
+ className: "Runner",
1519
+ methodName: "runAsync",
1520
+ kind: "Sync"
1521
+ }
1522
+ },
1523
+ // Runner.runAsync — bundled CJS/ESM indexes
1524
+ // The bundled entrypoints minify class names, so target the 12th sync
1525
+ // `runAsync` method in file order rather than a class name. This mapping is
1526
+ // only validated against the current 0.6.x bundle layout, so keep the range
1527
+ // tight until we verify newer bundled outputs.
1528
+ {
1529
+ channelName: googleADKChannels.runnerRunAsync.channelName,
1530
+ module: {
1531
+ name: "@google/adk",
1532
+ versionRange: googleADKBundledIndexV06VersionRange,
1533
+ filePath: "dist/cjs/index.js"
1534
+ },
1535
+ functionQuery: {
1536
+ methodName: "runAsync",
1537
+ kind: "Sync",
1538
+ index: 11
1539
+ }
1540
+ },
1541
+ {
1542
+ channelName: googleADKChannels.runnerRunAsync.channelName,
1543
+ module: {
1544
+ name: "@google/adk",
1545
+ versionRange: googleADKBundledIndexV06VersionRange,
1546
+ filePath: "dist/esm/index.js"
1547
+ },
1548
+ functionQuery: {
1549
+ methodName: "runAsync",
1550
+ kind: "Sync",
1551
+ index: 11
1552
+ }
1553
+ },
1554
+ // The 1.x bundled entrypoints still inline the runtime into index.js, but
1555
+ // the minified method order changed. These indices are verified against 1.0.0.
1556
+ {
1557
+ channelName: googleADKChannels.runnerRunAsync.channelName,
1558
+ module: {
1559
+ name: "@google/adk",
1560
+ versionRange: googleADKBundledIndexV1VersionRange,
1561
+ filePath: "dist/cjs/index.js"
1562
+ },
1563
+ functionQuery: {
1564
+ methodName: "runAsync",
1565
+ kind: "Sync",
1566
+ index: 12
1567
+ }
1568
+ },
1569
+ {
1570
+ channelName: googleADKChannels.runnerRunAsync.channelName,
1571
+ module: {
1572
+ name: "@google/adk",
1573
+ versionRange: googleADKBundledIndexV1VersionRange,
1574
+ filePath: "dist/esm/index.js"
1575
+ },
1576
+ functionQuery: {
1577
+ methodName: "runAsync",
1578
+ kind: "Sync",
1579
+ index: 12
1580
+ }
1581
+ },
1582
+ // --- BaseAgent.runAsync --- async generator, kind "Sync" + sync-stream channel
1583
+ // BaseAgent.runAsync — ESM individual module file
1584
+ {
1585
+ channelName: googleADKChannels.agentRunAsync.channelName,
1586
+ module: {
1587
+ name: "@google/adk",
1588
+ versionRange: googleADKVersionRange,
1589
+ filePath: "dist/esm/agents/base_agent.js"
1590
+ },
1591
+ functionQuery: {
1592
+ className: "BaseAgent",
1593
+ methodName: "runAsync",
1594
+ kind: "Sync"
1595
+ }
1596
+ },
1597
+ // BaseAgent.runAsync — bundled CJS/ESM indexes
1598
+ // The bundled entrypoints minify class names, so target the first sync
1599
+ // `runAsync` method in file order rather than a class name. This mapping is
1600
+ // only validated against the current 0.6.x bundle layout, so keep the range
1601
+ // tight until we verify newer bundled outputs.
1602
+ {
1603
+ channelName: googleADKChannels.agentRunAsync.channelName,
1604
+ module: {
1605
+ name: "@google/adk",
1606
+ versionRange: googleADKBundledIndexV06VersionRange,
1607
+ filePath: "dist/cjs/index.js"
1608
+ },
1609
+ functionQuery: {
1610
+ methodName: "runAsync",
1611
+ kind: "Sync",
1612
+ index: 0
1613
+ }
1614
+ },
1615
+ {
1616
+ channelName: googleADKChannels.agentRunAsync.channelName,
1617
+ module: {
1618
+ name: "@google/adk",
1619
+ versionRange: googleADKBundledIndexV06VersionRange,
1620
+ filePath: "dist/esm/index.js"
1621
+ },
1622
+ functionQuery: {
1623
+ methodName: "runAsync",
1624
+ kind: "Sync",
1625
+ index: 0
1626
+ }
1627
+ },
1628
+ // The 1.x bundled entrypoints keep BaseAgent.runAsync as the first bundled
1629
+ // async-generator runAsync method in file order.
1630
+ {
1631
+ channelName: googleADKChannels.agentRunAsync.channelName,
1632
+ module: {
1633
+ name: "@google/adk",
1634
+ versionRange: googleADKBundledIndexV1VersionRange,
1635
+ filePath: "dist/cjs/index.js"
1636
+ },
1637
+ functionQuery: {
1638
+ methodName: "runAsync",
1639
+ kind: "Sync",
1640
+ index: 0
1641
+ }
1642
+ },
1643
+ {
1644
+ channelName: googleADKChannels.agentRunAsync.channelName,
1645
+ module: {
1646
+ name: "@google/adk",
1647
+ versionRange: googleADKBundledIndexV1VersionRange,
1648
+ filePath: "dist/esm/index.js"
1649
+ },
1650
+ functionQuery: {
1651
+ methodName: "runAsync",
1652
+ kind: "Sync",
1653
+ index: 0
1654
+ }
1655
+ },
1656
+ // --- FunctionTool.runAsync --- regular async, kind "Async"
1657
+ // FunctionTool.runAsync — ESM individual module file
1658
+ {
1659
+ channelName: googleADKChannels.toolRunAsync.channelName,
1660
+ module: {
1661
+ name: "@google/adk",
1662
+ versionRange: googleADKVersionRange,
1663
+ filePath: "dist/esm/tools/function_tool.js"
1664
+ },
1665
+ functionQuery: {
1666
+ className: "FunctionTool",
1667
+ methodName: "runAsync",
1668
+ kind: "Async"
1669
+ }
1670
+ },
1671
+ // FunctionTool.runAsync — bundled CJS/ESM indexes
1672
+ // The bundled entrypoints minify class names, so target the first async
1673
+ // `runAsync` method in file order rather than a class name. This mapping is
1674
+ // only validated against the current 0.6.x bundle layout, so keep the range
1675
+ // tight until we verify newer bundled outputs.
1676
+ {
1677
+ channelName: googleADKChannels.toolRunAsync.channelName,
1678
+ module: {
1679
+ name: "@google/adk",
1680
+ versionRange: googleADKBundledIndexV06VersionRange,
1681
+ filePath: "dist/cjs/index.js"
1682
+ },
1683
+ functionQuery: {
1684
+ methodName: "runAsync",
1685
+ kind: "Async",
1686
+ index: 1
1687
+ }
1688
+ },
1689
+ {
1690
+ channelName: googleADKChannels.toolRunAsync.channelName,
1691
+ module: {
1692
+ name: "@google/adk",
1693
+ versionRange: googleADKBundledIndexV06VersionRange,
1694
+ filePath: "dist/esm/index.js"
1695
+ },
1696
+ functionQuery: {
1697
+ methodName: "runAsync",
1698
+ kind: "Async",
1699
+ index: 1
1700
+ }
1701
+ },
1702
+ // The 1.x bundle moves FunctionTool.runAsync behind one helper method.
1703
+ {
1704
+ channelName: googleADKChannels.toolRunAsync.channelName,
1705
+ module: {
1706
+ name: "@google/adk",
1707
+ versionRange: googleADKBundledIndexV1VersionRange,
1708
+ filePath: "dist/cjs/index.js"
1709
+ },
1710
+ functionQuery: {
1711
+ methodName: "runAsync",
1712
+ kind: "Async",
1713
+ index: 1
1714
+ }
1715
+ },
1716
+ {
1717
+ channelName: googleADKChannels.toolRunAsync.channelName,
1718
+ module: {
1719
+ name: "@google/adk",
1720
+ versionRange: googleADKBundledIndexV1VersionRange,
1721
+ filePath: "dist/esm/index.js"
1722
+ },
1723
+ functionQuery: {
1724
+ methodName: "runAsync",
1725
+ kind: "Async",
1726
+ index: 1
1727
+ }
1728
+ }
1729
+ ];
1730
+
1731
+ // src/instrumentation/plugins/google-genai-channels.ts
1732
+ var googleGenAIChannels = defineChannels("@google/genai", {
1733
+ generateContent: channel({
1734
+ channelName: "models.generateContent",
1735
+ kind: "async"
1736
+ }),
1737
+ generateContentStream: channel({
1738
+ channelName: "models.generateContentStream",
1739
+ kind: "async"
1740
+ }),
1741
+ embedContent: channel({
1742
+ channelName: "models.embedContent",
1743
+ kind: "async"
1744
+ })
1745
+ });
1746
+
1747
+ // src/auto-instrumentations/configs/google-genai.ts
1748
+ var googleGenAIConfigs = [
1749
+ // Models.generateContentInternal - The actual class method (Node.js entry point)
1750
+ // Note: generateContent is an arrow function property that calls this internal method
1751
+ {
1752
+ channelName: googleGenAIChannels.generateContent.channelName,
1753
+ module: {
1754
+ name: "@google/genai",
1755
+ versionRange: ">=1.0.0",
1756
+ filePath: "dist/node/index.mjs"
1757
+ },
1758
+ functionQuery: {
1759
+ className: "Models",
1760
+ methodName: "generateContentInternal",
1761
+ kind: "Async"
1762
+ }
1763
+ },
1764
+ // Models.generateContentStreamInternal - The actual class method (Node.js entry point)
1765
+ // Note: generateContentStream is an arrow function property that calls this internal method
1766
+ {
1767
+ channelName: googleGenAIChannels.generateContentStream.channelName,
1768
+ module: {
1769
+ name: "@google/genai",
1770
+ versionRange: ">=1.0.0",
1771
+ filePath: "dist/node/index.mjs"
1772
+ },
1773
+ functionQuery: {
1774
+ className: "Models",
1775
+ methodName: "generateContentStreamInternal",
1776
+ kind: "Async"
1777
+ }
1778
+ },
1779
+ // Models.embedContent - class method in older SDK versions
1780
+ {
1781
+ channelName: googleGenAIChannels.embedContent.channelName,
1782
+ module: {
1783
+ name: "@google/genai",
1784
+ versionRange: ">=1.0.0 <1.44.0",
1785
+ filePath: "dist/node/index.mjs"
1786
+ },
1787
+ functionQuery: {
1788
+ className: "Models",
1789
+ methodName: "embedContent",
1790
+ kind: "Async"
1791
+ }
1792
+ },
1793
+ // Models.embedContentInternal - class method in newer SDK versions
1794
+ // Note: embedContent is an arrow function property that calls this method
1795
+ {
1796
+ channelName: googleGenAIChannels.embedContent.channelName,
1797
+ module: {
1798
+ name: "@google/genai",
1799
+ versionRange: ">=1.44.0",
1800
+ filePath: "dist/node/index.mjs"
1801
+ },
1802
+ functionQuery: {
1803
+ className: "Models",
1804
+ methodName: "embedContentInternal",
1805
+ kind: "Async"
1806
+ }
1807
+ }
1808
+ ];
1809
+
1810
+ // src/instrumentation/plugins/groq-channels.ts
1811
+ var groqChannels = defineChannels("groq-sdk", {
1812
+ chatCompletionsCreate: channel({
1813
+ channelName: "chat.completions.create",
1814
+ kind: "async"
1815
+ }),
1816
+ embeddingsCreate: channel(
1817
+ {
1818
+ channelName: "embeddings.create",
1819
+ kind: "async"
1820
+ }
1821
+ )
1822
+ });
1823
+
1824
+ // src/auto-instrumentations/configs/groq.ts
1825
+ var groqConfigs = [
1826
+ {
1827
+ channelName: groqChannels.chatCompletionsCreate.channelName,
1828
+ module: {
1829
+ name: "groq-sdk",
1830
+ versionRange: ">=1.0.0",
1831
+ filePath: "resources/chat/completions.mjs"
1832
+ },
1833
+ functionQuery: {
1834
+ className: "Completions",
1835
+ methodName: "create",
1836
+ kind: "Async"
1837
+ }
1838
+ },
1839
+ {
1840
+ channelName: groqChannels.embeddingsCreate.channelName,
1841
+ module: {
1842
+ name: "groq-sdk",
1843
+ versionRange: ">=1.0.0",
1844
+ filePath: "resources/embeddings.mjs"
1845
+ },
1846
+ functionQuery: {
1847
+ className: "Embeddings",
1848
+ methodName: "create",
1849
+ kind: "Async"
1850
+ }
1851
+ }
1852
+ ];
1853
+
1854
+ // src/instrumentation/plugins/huggingface-channels.ts
1855
+ var huggingFaceChannels = defineChannels("@huggingface/inference", {
1856
+ chatCompletion: channel({
1857
+ channelName: "chatCompletion",
1858
+ kind: "async"
1859
+ }),
1860
+ chatCompletionStream: channel({
1861
+ channelName: "chatCompletionStream",
1862
+ kind: "sync-stream"
1863
+ }),
1864
+ textGeneration: channel({
1865
+ channelName: "textGeneration",
1866
+ kind: "async"
1867
+ }),
1868
+ textGenerationStream: channel({
1869
+ channelName: "textGenerationStream",
1870
+ kind: "sync-stream"
1871
+ }),
1872
+ featureExtraction: channel({
1873
+ channelName: "featureExtraction",
1874
+ kind: "async"
1875
+ })
1876
+ });
1877
+
1878
+ // src/auto-instrumentations/configs/huggingface.ts
1879
+ var huggingFaceConfigs = [
1880
+ {
1881
+ channelName: huggingFaceChannels.chatCompletion.channelName,
1882
+ module: {
1883
+ name: "@huggingface/inference",
1884
+ versionRange: ">=2.0.0 <3.0.0",
1885
+ filePath: "dist/index.js"
1886
+ },
1887
+ functionQuery: {
1888
+ functionName: "chatCompletion",
1889
+ kind: "Async"
1890
+ }
1891
+ },
1892
+ {
1893
+ channelName: huggingFaceChannels.chatCompletion.channelName,
1894
+ module: {
1895
+ name: "@huggingface/inference",
1896
+ versionRange: ">=2.0.0 <3.0.0",
1897
+ filePath: "dist/index.cjs"
1898
+ },
1899
+ functionQuery: {
1900
+ functionName: "chatCompletion",
1901
+ kind: "Async"
1902
+ }
1903
+ },
1904
+ {
1905
+ channelName: huggingFaceChannels.chatCompletionStream.channelName,
1906
+ module: {
1907
+ name: "@huggingface/inference",
1908
+ versionRange: ">=2.0.0 <3.0.0",
1909
+ filePath: "dist/index.js"
1910
+ },
1911
+ functionQuery: {
1912
+ functionName: "chatCompletionStream",
1913
+ kind: "Sync"
1914
+ }
1915
+ },
1916
+ {
1917
+ channelName: huggingFaceChannels.chatCompletionStream.channelName,
1918
+ module: {
1919
+ name: "@huggingface/inference",
1920
+ versionRange: ">=2.0.0 <3.0.0",
1921
+ filePath: "dist/index.cjs"
1922
+ },
1923
+ functionQuery: {
1924
+ functionName: "chatCompletionStream",
1925
+ kind: "Sync"
1926
+ }
1927
+ },
1928
+ {
1929
+ channelName: huggingFaceChannels.textGeneration.channelName,
1930
+ module: {
1931
+ name: "@huggingface/inference",
1932
+ versionRange: ">=2.0.0 <3.0.0",
1933
+ filePath: "dist/index.js"
1934
+ },
1935
+ functionQuery: {
1936
+ functionName: "textGeneration",
1937
+ kind: "Async"
1938
+ }
1939
+ },
1940
+ {
1941
+ channelName: huggingFaceChannels.textGeneration.channelName,
1942
+ module: {
1943
+ name: "@huggingface/inference",
1944
+ versionRange: ">=2.0.0 <3.0.0",
1945
+ filePath: "dist/index.cjs"
1946
+ },
1947
+ functionQuery: {
1948
+ functionName: "textGeneration",
1949
+ kind: "Async"
1950
+ }
1951
+ },
1952
+ {
1953
+ channelName: huggingFaceChannels.textGenerationStream.channelName,
1954
+ module: {
1955
+ name: "@huggingface/inference",
1956
+ versionRange: ">=2.0.0 <3.0.0",
1957
+ filePath: "dist/index.js"
1958
+ },
1959
+ functionQuery: {
1960
+ functionName: "textGenerationStream",
1961
+ kind: "Sync"
1962
+ }
1963
+ },
1964
+ {
1965
+ channelName: huggingFaceChannels.textGenerationStream.channelName,
1966
+ module: {
1967
+ name: "@huggingface/inference",
1968
+ versionRange: ">=2.0.0 <3.0.0",
1969
+ filePath: "dist/index.cjs"
1970
+ },
1971
+ functionQuery: {
1972
+ functionName: "textGenerationStream",
1973
+ kind: "Sync"
1974
+ }
1975
+ },
1976
+ {
1977
+ channelName: huggingFaceChannels.featureExtraction.channelName,
1978
+ module: {
1979
+ name: "@huggingface/inference",
1980
+ versionRange: ">=2.0.0 <3.0.0",
1981
+ filePath: "dist/index.js"
1982
+ },
1983
+ functionQuery: {
1984
+ functionName: "featureExtraction",
1985
+ kind: "Async"
1986
+ }
1987
+ },
1988
+ {
1989
+ channelName: huggingFaceChannels.featureExtraction.channelName,
1990
+ module: {
1991
+ name: "@huggingface/inference",
1992
+ versionRange: ">=2.0.0 <3.0.0",
1993
+ filePath: "dist/index.cjs"
1994
+ },
1995
+ functionQuery: {
1996
+ functionName: "featureExtraction",
1997
+ kind: "Async"
1998
+ }
1999
+ },
2000
+ {
2001
+ channelName: huggingFaceChannels.chatCompletion.channelName,
2002
+ module: {
2003
+ name: "@huggingface/inference",
2004
+ versionRange: ">=3.0.0 <5.0.0",
2005
+ filePath: "dist/esm/tasks/nlp/chatCompletion.js"
2006
+ },
2007
+ functionQuery: {
2008
+ functionName: "chatCompletion",
2009
+ kind: "Async"
2010
+ }
2011
+ },
2012
+ {
2013
+ channelName: huggingFaceChannels.chatCompletion.channelName,
2014
+ module: {
2015
+ name: "@huggingface/inference",
2016
+ versionRange: ">=3.0.0 <5.0.0",
2017
+ filePath: "dist/commonjs/tasks/nlp/chatCompletion.js"
2018
+ },
2019
+ functionQuery: {
2020
+ functionName: "chatCompletion",
2021
+ kind: "Async"
2022
+ }
2023
+ },
2024
+ {
2025
+ channelName: huggingFaceChannels.chatCompletionStream.channelName,
2026
+ module: {
2027
+ name: "@huggingface/inference",
2028
+ versionRange: ">=3.0.0 <5.0.0",
2029
+ filePath: "dist/esm/tasks/nlp/chatCompletionStream.js"
2030
+ },
2031
+ functionQuery: {
2032
+ functionName: "chatCompletionStream",
2033
+ kind: "Sync"
2034
+ }
2035
+ },
2036
+ {
2037
+ channelName: huggingFaceChannels.chatCompletionStream.channelName,
2038
+ module: {
2039
+ name: "@huggingface/inference",
2040
+ versionRange: ">=3.0.0 <5.0.0",
2041
+ filePath: "dist/commonjs/tasks/nlp/chatCompletionStream.js"
2042
+ },
2043
+ functionQuery: {
2044
+ functionName: "chatCompletionStream",
2045
+ kind: "Sync"
2046
+ }
2047
+ },
2048
+ {
2049
+ channelName: huggingFaceChannels.textGeneration.channelName,
2050
+ module: {
2051
+ name: "@huggingface/inference",
2052
+ versionRange: ">=3.0.0 <5.0.0",
2053
+ filePath: "dist/esm/tasks/nlp/textGeneration.js"
2054
+ },
2055
+ functionQuery: {
2056
+ functionName: "textGeneration",
2057
+ kind: "Async"
2058
+ }
2059
+ },
2060
+ {
2061
+ channelName: huggingFaceChannels.textGeneration.channelName,
2062
+ module: {
2063
+ name: "@huggingface/inference",
2064
+ versionRange: ">=3.0.0 <5.0.0",
2065
+ filePath: "dist/commonjs/tasks/nlp/textGeneration.js"
2066
+ },
2067
+ functionQuery: {
2068
+ functionName: "textGeneration",
2069
+ kind: "Async"
2070
+ }
2071
+ },
2072
+ {
2073
+ channelName: huggingFaceChannels.textGenerationStream.channelName,
2074
+ module: {
2075
+ name: "@huggingface/inference",
2076
+ versionRange: ">=3.0.0 <5.0.0",
2077
+ filePath: "dist/esm/tasks/nlp/textGenerationStream.js"
2078
+ },
2079
+ functionQuery: {
2080
+ functionName: "textGenerationStream",
2081
+ kind: "Sync"
2082
+ }
2083
+ },
2084
+ {
2085
+ channelName: huggingFaceChannels.textGenerationStream.channelName,
2086
+ module: {
2087
+ name: "@huggingface/inference",
2088
+ versionRange: ">=3.0.0 <5.0.0",
2089
+ filePath: "dist/commonjs/tasks/nlp/textGenerationStream.js"
2090
+ },
2091
+ functionQuery: {
2092
+ functionName: "textGenerationStream",
2093
+ kind: "Sync"
2094
+ }
2095
+ },
2096
+ {
2097
+ channelName: huggingFaceChannels.featureExtraction.channelName,
2098
+ module: {
2099
+ name: "@huggingface/inference",
2100
+ versionRange: ">=3.0.0 <5.0.0",
2101
+ filePath: "dist/esm/tasks/nlp/featureExtraction.js"
2102
+ },
2103
+ functionQuery: {
2104
+ functionName: "featureExtraction",
2105
+ kind: "Async"
2106
+ }
2107
+ },
2108
+ {
2109
+ channelName: huggingFaceChannels.featureExtraction.channelName,
2110
+ module: {
2111
+ name: "@huggingface/inference",
2112
+ versionRange: ">=3.0.0 <5.0.0",
2113
+ filePath: "dist/commonjs/tasks/nlp/featureExtraction.js"
2114
+ },
2115
+ functionQuery: {
2116
+ functionName: "featureExtraction",
2117
+ kind: "Async"
2118
+ }
2119
+ }
2120
+ ];
2121
+
2122
+ // src/instrumentation/plugins/langchain-channels.ts
2123
+ var langChainChannels = defineChannels("@langchain/core", {
2124
+ configure: channel({
2125
+ channelName: "CallbackManager.configure",
2126
+ kind: "sync-stream"
2127
+ }),
2128
+ configureSync: channel({
2129
+ channelName: "CallbackManager._configureSync",
2130
+ kind: "sync-stream"
2131
+ })
2132
+ });
2133
+
2134
+ // src/auto-instrumentations/configs/langchain.ts
2135
+ var langChainCoreVersionRange = ">=0.3.42";
2136
+ var langChainCallbackManagerFilePath = "dist/callbacks/manager.js";
2137
+ var langchainConfigs = [
2138
+ {
2139
+ channelName: langChainChannels.configure.channelName,
2140
+ module: {
2141
+ name: "@langchain/core",
2142
+ versionRange: langChainCoreVersionRange,
2143
+ filePath: langChainCallbackManagerFilePath
2144
+ },
2145
+ functionQuery: {
2146
+ className: "CallbackManager",
2147
+ methodName: "configure",
2148
+ kind: "Sync"
2149
+ }
2150
+ },
2151
+ {
2152
+ channelName: langChainChannels.configureSync.channelName,
2153
+ module: {
2154
+ name: "@langchain/core",
2155
+ versionRange: langChainCoreVersionRange,
2156
+ filePath: langChainCallbackManagerFilePath
2157
+ },
2158
+ functionQuery: {
2159
+ className: "CallbackManager",
2160
+ methodName: "_configureSync",
2161
+ kind: "Sync"
2162
+ }
2163
+ }
2164
+ ];
2165
+
2166
+ // src/instrumentation/plugins/mistral-channels.ts
2167
+ var mistralChannels = defineChannels("@mistralai/mistralai", {
2168
+ chatComplete: channel({
2169
+ channelName: "chat.complete",
2170
+ kind: "async"
2171
+ }),
2172
+ chatStream: channel({
2173
+ channelName: "chat.stream",
2174
+ kind: "async"
2175
+ }),
2176
+ embeddingsCreate: channel({
2177
+ channelName: "embeddings.create",
2178
+ kind: "async"
2179
+ }),
2180
+ classifiersModerate: channel({
2181
+ channelName: "classifiers.moderate",
2182
+ kind: "async"
2183
+ }),
2184
+ classifiersModerateChat: channel({
2185
+ channelName: "classifiers.moderateChat",
2186
+ kind: "async"
2187
+ }),
2188
+ classifiersClassify: channel({
2189
+ channelName: "classifiers.classify",
2190
+ kind: "async"
2191
+ }),
2192
+ classifiersClassifyChat: channel({
2193
+ channelName: "classifiers.classifyChat",
2194
+ kind: "async"
2195
+ }),
2196
+ fimComplete: channel({
2197
+ channelName: "fim.complete",
2198
+ kind: "async"
2199
+ }),
2200
+ fimStream: channel({
2201
+ channelName: "fim.stream",
2202
+ kind: "async"
2203
+ }),
2204
+ agentsComplete: channel({
2205
+ channelName: "agents.complete",
2206
+ kind: "async"
2207
+ }),
2208
+ agentsStream: channel({
2209
+ channelName: "agents.stream",
2210
+ kind: "async"
2211
+ })
2212
+ });
2213
+
2214
+ // src/auto-instrumentations/configs/mistral.ts
2215
+ var mistralConfigs = [
2216
+ {
2217
+ channelName: mistralChannels.chatComplete.channelName,
2218
+ module: {
2219
+ name: "@mistralai/mistralai",
2220
+ versionRange: ">=1.0.0 <2.0.0",
2221
+ filePath: "sdk/chat.js"
2222
+ },
2223
+ functionQuery: {
2224
+ className: "Chat",
2225
+ methodName: "complete",
2226
+ kind: "Async"
2227
+ }
2228
+ },
2229
+ {
2230
+ channelName: mistralChannels.chatComplete.channelName,
2231
+ module: {
2232
+ name: "@mistralai/mistralai",
2233
+ versionRange: ">=2.0.0 <3.0.0",
2234
+ filePath: "esm/sdk/chat.js"
2235
+ },
2236
+ functionQuery: {
2237
+ className: "Chat",
2238
+ methodName: "complete",
2239
+ kind: "Async"
2240
+ }
2241
+ },
2242
+ {
2243
+ channelName: mistralChannels.chatStream.channelName,
2244
+ module: {
2245
+ name: "@mistralai/mistralai",
2246
+ versionRange: ">=1.0.0 <2.0.0",
2247
+ filePath: "sdk/chat.js"
2248
+ },
2249
+ functionQuery: {
2250
+ className: "Chat",
2251
+ methodName: "stream",
2252
+ kind: "Async"
2253
+ }
2254
+ },
2255
+ {
2256
+ channelName: mistralChannels.chatStream.channelName,
2257
+ module: {
2258
+ name: "@mistralai/mistralai",
2259
+ versionRange: ">=2.0.0 <3.0.0",
2260
+ filePath: "esm/sdk/chat.js"
2261
+ },
2262
+ functionQuery: {
2263
+ className: "Chat",
2264
+ methodName: "stream",
2265
+ kind: "Async"
2266
+ }
2267
+ },
2268
+ {
2269
+ channelName: mistralChannels.embeddingsCreate.channelName,
2270
+ module: {
2271
+ name: "@mistralai/mistralai",
2272
+ versionRange: ">=1.0.0 <2.0.0",
2273
+ filePath: "sdk/embeddings.js"
2274
+ },
2275
+ functionQuery: {
2276
+ className: "Embeddings",
2277
+ methodName: "create",
2278
+ kind: "Async"
2279
+ }
2280
+ },
2281
+ {
2282
+ channelName: mistralChannels.embeddingsCreate.channelName,
2283
+ module: {
2284
+ name: "@mistralai/mistralai",
2285
+ versionRange: ">=2.0.0 <3.0.0",
2286
+ filePath: "esm/sdk/embeddings.js"
2287
+ },
2288
+ functionQuery: {
2289
+ className: "Embeddings",
2290
+ methodName: "create",
2291
+ kind: "Async"
2292
+ }
2293
+ },
2294
+ {
2295
+ channelName: mistralChannels.classifiersModerate.channelName,
2296
+ module: {
2297
+ name: "@mistralai/mistralai",
2298
+ versionRange: ">=1.0.0 <2.0.0",
2299
+ filePath: "sdk/classifiers.js"
2300
+ },
2301
+ functionQuery: {
2302
+ className: "Classifiers",
2303
+ methodName: "moderate",
2304
+ kind: "Async"
2305
+ }
2306
+ },
2307
+ {
2308
+ channelName: mistralChannels.classifiersModerate.channelName,
2309
+ module: {
2310
+ name: "@mistralai/mistralai",
2311
+ versionRange: ">=2.0.0 <3.0.0",
2312
+ filePath: "esm/sdk/classifiers.js"
2313
+ },
2314
+ functionQuery: {
2315
+ className: "Classifiers",
2316
+ methodName: "moderate",
2317
+ kind: "Async"
2318
+ }
2319
+ },
2320
+ {
2321
+ channelName: mistralChannels.classifiersModerateChat.channelName,
2322
+ module: {
2323
+ name: "@mistralai/mistralai",
2324
+ versionRange: ">=1.0.0 <2.0.0",
2325
+ filePath: "sdk/classifiers.js"
2326
+ },
2327
+ functionQuery: {
2328
+ className: "Classifiers",
2329
+ methodName: "moderateChat",
2330
+ kind: "Async"
2331
+ }
2332
+ },
2333
+ {
2334
+ channelName: mistralChannels.classifiersModerateChat.channelName,
2335
+ module: {
2336
+ name: "@mistralai/mistralai",
2337
+ versionRange: ">=2.0.0 <3.0.0",
2338
+ filePath: "esm/sdk/classifiers.js"
2339
+ },
2340
+ functionQuery: {
2341
+ className: "Classifiers",
2342
+ methodName: "moderateChat",
2343
+ kind: "Async"
2344
+ }
2345
+ },
2346
+ {
2347
+ channelName: mistralChannels.classifiersClassify.channelName,
2348
+ module: {
2349
+ name: "@mistralai/mistralai",
2350
+ versionRange: ">=1.10.0 <2.0.0",
2351
+ filePath: "sdk/classifiers.js"
2352
+ },
2353
+ functionQuery: {
2354
+ className: "Classifiers",
2355
+ methodName: "classify",
2356
+ kind: "Async"
2357
+ }
2358
+ },
2359
+ {
2360
+ channelName: mistralChannels.classifiersClassify.channelName,
2361
+ module: {
2362
+ name: "@mistralai/mistralai",
2363
+ versionRange: ">=2.0.0 <3.0.0",
2364
+ filePath: "esm/sdk/classifiers.js"
2365
+ },
2366
+ functionQuery: {
2367
+ className: "Classifiers",
2368
+ methodName: "classify",
2369
+ kind: "Async"
2370
+ }
2371
+ },
2372
+ {
2373
+ channelName: mistralChannels.classifiersClassifyChat.channelName,
2374
+ module: {
2375
+ name: "@mistralai/mistralai",
2376
+ versionRange: ">=1.10.0 <2.0.0",
2377
+ filePath: "sdk/classifiers.js"
2378
+ },
2379
+ functionQuery: {
2380
+ className: "Classifiers",
2381
+ methodName: "classifyChat",
2382
+ kind: "Async"
2383
+ }
2384
+ },
2385
+ {
2386
+ channelName: mistralChannels.classifiersClassifyChat.channelName,
2387
+ module: {
2388
+ name: "@mistralai/mistralai",
2389
+ versionRange: ">=2.0.0 <3.0.0",
2390
+ filePath: "esm/sdk/classifiers.js"
2391
+ },
2392
+ functionQuery: {
2393
+ className: "Classifiers",
2394
+ methodName: "classifyChat",
2395
+ kind: "Async"
2396
+ }
2397
+ },
2398
+ {
2399
+ channelName: mistralChannels.fimComplete.channelName,
2400
+ module: {
2401
+ name: "@mistralai/mistralai",
2402
+ versionRange: ">=1.0.0 <2.0.0",
2403
+ filePath: "sdk/fim.js"
2404
+ },
2405
+ functionQuery: {
2406
+ className: "Fim",
2407
+ methodName: "complete",
2408
+ kind: "Async"
2409
+ }
2410
+ },
2411
+ {
2412
+ channelName: mistralChannels.fimComplete.channelName,
2413
+ module: {
2414
+ name: "@mistralai/mistralai",
2415
+ versionRange: ">=2.0.0 <3.0.0",
2416
+ filePath: "esm/sdk/fim.js"
2417
+ },
2418
+ functionQuery: {
2419
+ className: "Fim",
2420
+ methodName: "complete",
2421
+ kind: "Async"
2422
+ }
2423
+ },
2424
+ {
2425
+ channelName: mistralChannels.fimStream.channelName,
2426
+ module: {
2427
+ name: "@mistralai/mistralai",
2428
+ versionRange: ">=1.0.0 <2.0.0",
2429
+ filePath: "sdk/fim.js"
2430
+ },
2431
+ functionQuery: {
2432
+ className: "Fim",
2433
+ methodName: "stream",
2434
+ kind: "Async"
2435
+ }
2436
+ },
2437
+ {
2438
+ channelName: mistralChannels.fimStream.channelName,
2439
+ module: {
2440
+ name: "@mistralai/mistralai",
2441
+ versionRange: ">=2.0.0 <3.0.0",
2442
+ filePath: "esm/sdk/fim.js"
2443
+ },
2444
+ functionQuery: {
2445
+ className: "Fim",
2446
+ methodName: "stream",
2447
+ kind: "Async"
2448
+ }
2449
+ },
2450
+ {
2451
+ channelName: mistralChannels.agentsComplete.channelName,
2452
+ module: {
2453
+ name: "@mistralai/mistralai",
2454
+ versionRange: ">=1.0.0 <2.0.0",
2455
+ filePath: "sdk/agents.js"
2456
+ },
2457
+ functionQuery: {
2458
+ className: "Agents",
2459
+ methodName: "complete",
2460
+ kind: "Async"
2461
+ }
2462
+ },
2463
+ {
2464
+ channelName: mistralChannels.agentsComplete.channelName,
2465
+ module: {
2466
+ name: "@mistralai/mistralai",
2467
+ versionRange: ">=2.0.0 <3.0.0",
2468
+ filePath: "esm/sdk/agents.js"
2469
+ },
2470
+ functionQuery: {
2471
+ className: "Agents",
2472
+ methodName: "complete",
2473
+ kind: "Async"
2474
+ }
2475
+ },
2476
+ {
2477
+ channelName: mistralChannels.agentsStream.channelName,
2478
+ module: {
2479
+ name: "@mistralai/mistralai",
2480
+ versionRange: ">=1.0.0 <2.0.0",
2481
+ filePath: "sdk/agents.js"
2482
+ },
2483
+ functionQuery: {
2484
+ className: "Agents",
2485
+ methodName: "stream",
2486
+ kind: "Async"
2487
+ }
2488
+ },
2489
+ {
2490
+ channelName: mistralChannels.agentsStream.channelName,
2491
+ module: {
2492
+ name: "@mistralai/mistralai",
2493
+ versionRange: ">=2.0.0 <3.0.0",
2494
+ filePath: "esm/sdk/agents.js"
2495
+ },
2496
+ functionQuery: {
2497
+ className: "Agents",
2498
+ methodName: "stream",
2499
+ kind: "Async"
2500
+ }
2501
+ }
2502
+ ];
2503
+
2504
+ // src/instrumentation/plugins/openai-agents-channels.ts
2505
+ var openAIAgentsCoreChannels = defineChannels("@openai/agents-core", {
2506
+ onTraceStart: channel({
2507
+ channelName: "tracing.processor.onTraceStart",
2508
+ kind: "async"
2509
+ }),
2510
+ onTraceEnd: channel({
2511
+ channelName: "tracing.processor.onTraceEnd",
2512
+ kind: "async"
2513
+ }),
2514
+ onSpanStart: channel({
2515
+ channelName: "tracing.processor.onSpanStart",
2516
+ kind: "async"
2517
+ }),
2518
+ onSpanEnd: channel({
2519
+ channelName: "tracing.processor.onSpanEnd",
2520
+ kind: "async"
2521
+ })
2522
+ });
2523
+
2524
+ // src/auto-instrumentations/configs/openai-agents.ts
2525
+ var lifecycleMethods = [
2526
+ ["onTraceStart", openAIAgentsCoreChannels.onTraceStart.channelName],
2527
+ ["onTraceEnd", openAIAgentsCoreChannels.onTraceEnd.channelName],
2528
+ ["onSpanStart", openAIAgentsCoreChannels.onSpanStart.channelName],
2529
+ ["onSpanEnd", openAIAgentsCoreChannels.onSpanEnd.channelName]
2530
+ ];
2531
+ var openAIAgentsCoreConfigs = lifecycleMethods.flatMap(
2532
+ ([methodName, channelName]) => ["dist/tracing/processor.mjs", "dist/tracing/processor.js"].map(
2533
+ (filePath) => ({
2534
+ channelName,
2535
+ module: {
2536
+ name: "@openai/agents-core",
2537
+ versionRange: ">=0.0.14",
2538
+ filePath
2539
+ },
2540
+ functionQuery: {
2541
+ className: "MultiTracingProcessor",
2542
+ methodName,
2543
+ kind: "Async"
2544
+ }
2545
+ })
2546
+ )
2547
+ );
2548
+
2549
+ // src/instrumentation/plugins/openai-channels.ts
2550
+ var openAIChannels = defineChannels("openai", {
2551
+ chatCompletionsCreate: channel({
2552
+ channelName: "chat.completions.create",
2553
+ kind: "async"
2554
+ }),
2555
+ embeddingsCreate: channel({
2556
+ channelName: "embeddings.create",
2557
+ kind: "async"
2558
+ }),
2559
+ betaChatCompletionsParse: channel({
2560
+ channelName: "beta.chat.completions.parse",
2561
+ kind: "async"
2562
+ }),
2563
+ betaChatCompletionsStream: channel({
2564
+ channelName: "beta.chat.completions.stream",
2565
+ kind: "sync-stream"
2566
+ }),
2567
+ moderationsCreate: channel({
2568
+ channelName: "moderations.create",
2569
+ kind: "async"
2570
+ }),
2571
+ responsesCreate: channel({
2572
+ channelName: "responses.create",
2573
+ kind: "async"
2574
+ }),
2575
+ responsesStream: channel({
2576
+ channelName: "responses.stream",
2577
+ kind: "sync-stream"
2578
+ }),
2579
+ responsesParse: channel({
2580
+ channelName: "responses.parse",
2581
+ kind: "async"
2582
+ }),
2583
+ responsesCompact: channel({
2584
+ channelName: "responses.compact",
2585
+ kind: "async"
2586
+ })
2587
+ });
2588
+
2589
+ // src/auto-instrumentations/configs/openai.ts
2590
+ var openaiConfigs = [
2591
+ // Chat Completions
2592
+ {
2593
+ channelName: openAIChannels.chatCompletionsCreate.channelName,
2594
+ module: {
2595
+ name: "openai",
2596
+ versionRange: ">=4.0.0 <5.0.0",
2597
+ filePath: "resources/chat/completions.mjs"
2598
+ },
2599
+ functionQuery: {
2600
+ className: "Completions",
2601
+ methodName: "create",
2602
+ kind: "Async"
2603
+ }
2604
+ },
2605
+ {
2606
+ channelName: openAIChannels.chatCompletionsCreate.channelName,
2607
+ module: {
2608
+ name: "openai",
2609
+ versionRange: ">=4.0.0 <5.0.0",
2610
+ filePath: "resources/chat/completions/completions.mjs"
2611
+ },
2612
+ functionQuery: {
2613
+ className: "Completions",
2614
+ methodName: "create",
2615
+ kind: "Async"
2616
+ }
2617
+ },
2618
+ {
2619
+ channelName: openAIChannels.chatCompletionsCreate.channelName,
2620
+ module: {
2621
+ name: "openai",
2622
+ versionRange: ">=5.0.0",
2623
+ filePath: "resources/chat/completions/completions.mjs"
2624
+ },
2625
+ functionQuery: {
2626
+ className: "Completions",
2627
+ methodName: "create",
2628
+ kind: "Async"
2629
+ }
2630
+ },
2631
+ // Embeddings
2632
+ {
2633
+ channelName: openAIChannels.embeddingsCreate.channelName,
2634
+ module: {
2635
+ name: "openai",
2636
+ versionRange: ">=4.0.0",
2637
+ filePath: "resources/embeddings.mjs"
2638
+ },
2639
+ functionQuery: {
2640
+ className: "Embeddings",
2641
+ methodName: "create",
2642
+ kind: "Async"
2643
+ }
2644
+ },
2645
+ // Beta Chat Completions Parse
2646
+ {
2647
+ channelName: openAIChannels.betaChatCompletionsParse.channelName,
2648
+ module: {
2649
+ name: "openai",
2650
+ versionRange: ">=4.0.0 <5.0.0",
2651
+ filePath: "resources/beta/chat/completions.mjs"
2652
+ },
2653
+ functionQuery: {
2654
+ className: "Completions",
2655
+ methodName: "parse",
2656
+ kind: "Async"
2657
+ }
2658
+ },
2659
+ {
2660
+ channelName: openAIChannels.betaChatCompletionsParse.channelName,
2661
+ module: {
2662
+ name: "openai",
2663
+ versionRange: ">=5.0.0",
2664
+ filePath: "resources/chat/completions/completions.mjs"
2665
+ },
2666
+ functionQuery: {
2667
+ className: "Completions",
2668
+ methodName: "parse",
2669
+ kind: "Async"
2670
+ }
2671
+ },
2672
+ // Moderations
2673
+ {
2674
+ channelName: openAIChannels.moderationsCreate.channelName,
2675
+ module: {
2676
+ name: "openai",
2677
+ versionRange: ">=4.0.0",
2678
+ filePath: "resources/moderations.mjs"
2679
+ },
2680
+ functionQuery: {
2681
+ className: "Moderations",
2682
+ methodName: "create",
2683
+ kind: "Async"
2684
+ }
2685
+ },
2686
+ // Beta Chat Completions Stream
2687
+ {
2688
+ channelName: openAIChannels.betaChatCompletionsStream.channelName,
2689
+ module: {
2690
+ name: "openai",
2691
+ versionRange: ">=4.0.0 <5.0.0",
2692
+ filePath: "resources/beta/chat/completions.mjs"
2693
+ },
2694
+ functionQuery: {
2695
+ className: "Completions",
2696
+ methodName: "stream",
2697
+ kind: "Sync"
2698
+ }
2699
+ },
2700
+ {
2701
+ channelName: openAIChannels.betaChatCompletionsStream.channelName,
2702
+ module: {
2703
+ name: "openai",
2704
+ versionRange: ">=5.0.0",
2705
+ filePath: "resources/chat/completions/completions.mjs"
2706
+ },
2707
+ functionQuery: {
2708
+ className: "Completions",
2709
+ methodName: "stream",
2710
+ kind: "Sync"
2711
+ }
2712
+ },
2713
+ // Responses API (v4.87.0+)
2714
+ {
2715
+ channelName: openAIChannels.responsesCreate.channelName,
2716
+ module: {
2717
+ name: "openai",
2718
+ versionRange: ">=4.87.0",
2719
+ filePath: "resources/responses/responses.mjs"
2720
+ },
2721
+ functionQuery: {
2722
+ className: "Responses",
2723
+ methodName: "create",
2724
+ kind: "Async"
2725
+ }
2726
+ },
2727
+ {
2728
+ channelName: openAIChannels.responsesStream.channelName,
2729
+ module: {
2730
+ name: "openai",
2731
+ versionRange: ">=4.87.0",
2732
+ filePath: "resources/responses/responses.mjs"
2733
+ },
2734
+ functionQuery: {
2735
+ className: "Responses",
2736
+ methodName: "stream",
2737
+ kind: "Sync"
2738
+ }
2739
+ },
2740
+ {
2741
+ channelName: openAIChannels.responsesParse.channelName,
2742
+ module: {
2743
+ name: "openai",
2744
+ versionRange: ">=4.87.0",
2745
+ filePath: "resources/responses/responses.mjs"
2746
+ },
2747
+ functionQuery: {
2748
+ className: "Responses",
2749
+ methodName: "parse",
2750
+ kind: "Async"
2751
+ }
2752
+ },
2753
+ {
2754
+ channelName: openAIChannels.responsesCompact.channelName,
2755
+ module: {
2756
+ name: "openai",
2757
+ versionRange: ">=6.10.0",
2758
+ filePath: "resources/responses/responses.mjs"
2759
+ },
2760
+ functionQuery: {
2761
+ className: "Responses",
2762
+ methodName: "compact",
2763
+ kind: "Async"
2764
+ }
2765
+ }
2766
+ ];
2767
+
2768
+ // src/instrumentation/plugins/openai-codex-channels.ts
2769
+ var openAICodexChannels = defineChannels("@openai/codex-sdk", {
2770
+ run: channel({
2771
+ channelName: "Thread.run",
2772
+ kind: "async"
2773
+ }),
2774
+ runStreamed: channel({
2775
+ channelName: "Thread.runStreamed",
2776
+ kind: "async"
2777
+ })
2778
+ });
2779
+
2780
+ // src/auto-instrumentations/configs/openai-codex.ts
2781
+ var openAICodexVersionRange = ">=0.128.0 <1.0.0";
2782
+ var openAICodexConfigs = [
2783
+ {
2784
+ channelName: openAICodexChannels.run.channelName,
2785
+ module: {
2786
+ name: "@openai/codex-sdk",
2787
+ versionRange: openAICodexVersionRange,
2788
+ filePath: "dist/index.js"
2789
+ },
2790
+ functionQuery: {
2791
+ className: "Thread",
2792
+ methodName: "run",
2793
+ kind: "Async"
2794
+ }
2795
+ },
2796
+ {
2797
+ channelName: openAICodexChannels.runStreamed.channelName,
2798
+ module: {
2799
+ name: "@openai/codex-sdk",
2800
+ versionRange: openAICodexVersionRange,
2801
+ filePath: "dist/index.js"
2802
+ },
2803
+ functionQuery: {
2804
+ className: "Thread",
2805
+ methodName: "runStreamed",
2806
+ kind: "Async"
2807
+ }
2808
+ }
2809
+ ];
2810
+
2811
+ // src/instrumentation/plugins/openrouter-channels.ts
2812
+ var openRouterChannels = defineChannels("@openrouter/sdk", {
2813
+ chatSend: channel({
2814
+ channelName: "chat.send",
2815
+ kind: "async"
2816
+ }),
2817
+ embeddingsGenerate: channel({
2818
+ channelName: "embeddings.generate",
2819
+ kind: "async"
2820
+ }),
2821
+ rerankRerank: channel(
2822
+ {
2823
+ channelName: "rerank.rerank",
2824
+ kind: "async"
2825
+ }
2826
+ ),
2827
+ betaResponsesSend: channel({
2828
+ channelName: "beta.responses.send",
2829
+ kind: "async"
2830
+ }),
2831
+ callModel: channel({
2832
+ channelName: "callModel",
2833
+ kind: "sync-stream"
2834
+ }),
2835
+ callModelTurn: channel({
2836
+ channelName: "callModel.turn",
2837
+ kind: "async"
2838
+ }),
2839
+ toolExecute: channel({
2840
+ channelName: "tool.execute",
2841
+ kind: "async"
2842
+ })
2843
+ });
2844
+
2845
+ // src/auto-instrumentations/configs/openrouter.ts
2846
+ var openRouterConfigs = [
2847
+ {
2848
+ channelName: openRouterChannels.chatSend.channelName,
2849
+ module: {
2850
+ name: "@openrouter/sdk",
2851
+ versionRange: ">=0.9.11 <1.0.0",
2852
+ filePath: "esm/sdk/chat.js"
2853
+ },
2854
+ functionQuery: {
2855
+ className: "Chat",
2856
+ methodName: "send",
2857
+ kind: "Async"
2858
+ }
2859
+ },
2860
+ {
2861
+ channelName: openRouterChannels.embeddingsGenerate.channelName,
2862
+ module: {
2863
+ name: "@openrouter/sdk",
2864
+ versionRange: ">=0.9.11 <1.0.0",
2865
+ filePath: "esm/sdk/embeddings.js"
2866
+ },
2867
+ functionQuery: {
2868
+ className: "Embeddings",
2869
+ methodName: "generate",
2870
+ kind: "Async"
2871
+ }
2872
+ },
2873
+ {
2874
+ channelName: openRouterChannels.rerankRerank.channelName,
2875
+ module: {
2876
+ name: "@openrouter/sdk",
2877
+ versionRange: ">=0.12.0 <1.0.0",
2878
+ filePath: "esm/sdk/rerank.js"
2879
+ },
2880
+ functionQuery: {
2881
+ className: "Rerank",
2882
+ methodName: "rerank",
2883
+ kind: "Async"
2884
+ }
2885
+ },
2886
+ {
2887
+ channelName: openRouterChannels.betaResponsesSend.channelName,
2888
+ module: {
2889
+ name: "@openrouter/sdk",
2890
+ versionRange: ">=0.9.11 <1.0.0",
2891
+ filePath: "esm/sdk/responses.js"
2892
+ },
2893
+ functionQuery: {
2894
+ className: "Responses",
2895
+ methodName: "send",
2896
+ kind: "Async"
2897
+ }
2898
+ },
2899
+ {
2900
+ channelName: openRouterChannels.callModel.channelName,
2901
+ module: {
2902
+ name: "@openrouter/sdk",
2903
+ versionRange: ">=0.9.11 <1.0.0",
2904
+ filePath: "esm/sdk/sdk.js"
2905
+ },
2906
+ functionQuery: {
2907
+ className: "OpenRouter",
2908
+ methodName: "callModel",
2909
+ kind: "Sync"
2910
+ }
2911
+ }
2912
+ ];
2913
+
2914
+ // src/instrumentation/plugins/openrouter-agent-channels.ts
2915
+ var openRouterAgentChannels = defineChannels("@openrouter/agent", {
2916
+ callModel: channel({
2917
+ channelName: "callModel",
2918
+ kind: "sync-stream"
2919
+ }),
2920
+ callModelTurn: channel({
2921
+ channelName: "callModel.turn",
2922
+ kind: "async"
2923
+ }),
2924
+ toolExecute: channel({
2925
+ channelName: "tool.execute",
2926
+ kind: "async"
2927
+ })
2928
+ });
2929
+
2930
+ // src/auto-instrumentations/configs/openrouter-agent.ts
2931
+ var openRouterAgentConfigs = [
2932
+ {
2933
+ channelName: openRouterAgentChannels.callModel.channelName,
2934
+ module: {
2935
+ name: "@openrouter/agent",
2936
+ versionRange: ">=0.1.2",
2937
+ filePath: "esm/inner-loop/call-model.js"
2938
+ },
2939
+ functionQuery: {
2940
+ functionName: "callModel",
2941
+ kind: "Sync"
2942
+ }
2943
+ }
2944
+ ];
2945
+
2946
+ // src/auto-instrumentations/configs/all.ts
2947
+ var defaultInstrumentationConfigGroups = [
2948
+ { integrations: ["openai"], configs: openaiConfigs },
2949
+ {
2950
+ integrations: ["openaiCodexSDK"],
2951
+ configs: openAICodexConfigs
2952
+ },
2953
+ { integrations: ["anthropic"], configs: anthropicConfigs },
2954
+ {
2955
+ integrations: ["aisdk", "vercel"],
2956
+ configs: aiSDKConfigs
2957
+ },
2958
+ {
2959
+ integrations: ["claudeAgentSDK"],
2960
+ configs: claudeAgentSDKConfigs
2961
+ },
2962
+ { integrations: ["cursor", "cursorSDK"], configs: cursorSDKConfigs },
2963
+ { integrations: ["flue"], configs: flueConfigs },
2964
+ {
2965
+ integrations: ["openAIAgents"],
2966
+ configs: openAIAgentsCoreConfigs
2967
+ },
2968
+ {
2969
+ integrations: ["google", "googleGenAI"],
2970
+ configs: googleGenAIConfigs
2971
+ },
2972
+ { integrations: ["huggingface"], configs: huggingFaceConfigs },
2973
+ {
2974
+ integrations: ["langchain", "langgraph"],
2975
+ configs: langchainConfigs
2976
+ },
2977
+ { integrations: ["openrouter"], configs: openRouterConfigs },
2978
+ {
2979
+ integrations: ["openrouterAgent"],
2980
+ configs: openRouterAgentConfigs
2981
+ },
2982
+ { integrations: ["mistral"], configs: mistralConfigs },
2983
+ { integrations: ["googleADK"], configs: googleADKConfigs },
2984
+ { integrations: ["cohere"], configs: cohereConfigs },
2985
+ { integrations: ["groq"], configs: groqConfigs },
2986
+ {
2987
+ integrations: ["genkit"],
2988
+ configs: genkitConfigs
2989
+ },
2990
+ {
2991
+ integrations: ["gitHubCopilot"],
2992
+ configs: gitHubCopilotConfigs
2993
+ }
2994
+ ];
2995
+ function getDefaultInstrumentationConfigs({
2996
+ additionalInstrumentations,
2997
+ disabledIntegrationConfig,
2998
+ disabledIntegrations
2999
+ } = {}) {
3000
+ const disabledConfig = disabledIntegrationConfig ?? (disabledIntegrations ? readDisabledInstrumentationEnvConfig(
3001
+ [...disabledIntegrations].join(",")
3002
+ ).integrations : void 0);
3003
+ return [
3004
+ ...defaultInstrumentationConfigGroups.flatMap(
3005
+ ({ configs, integrations }) => isInstrumentationIntegrationDisabled(disabledConfig, ...integrations) ? [] : configs
3006
+ ),
3007
+ ...additionalInstrumentations ?? []
3008
+ ];
3009
+ }
3010
+
3011
+ // src/auto-instrumentations/bundler/plugin.ts
3012
+ function getModuleVersion(basedir) {
3013
+ try {
3014
+ const packageJsonPath = (0, import_path.join)(basedir, "package.json");
3015
+ const packageJson = JSON.parse((0, import_fs.readFileSync)(packageJsonPath, "utf8"));
3016
+ if (packageJson.version) {
3017
+ return packageJson.version;
3018
+ }
3019
+ } catch (error) {
3020
+ }
3021
+ return void 0;
3022
+ }
3023
+ var unplugin = (0, import_unplugin.createUnplugin)(
3024
+ (options = {}) => {
3025
+ const allInstrumentations = getDefaultInstrumentationConfigs({
3026
+ additionalInstrumentations: options.instrumentations
3027
+ });
3028
+ const dcModule = options.browser === false ? void 0 : "dc-browser";
3029
+ const instrumentationMatcher = (0, import_code_transformer.create)(allInstrumentations, dcModule);
3030
+ return {
3031
+ name: "code-transformer",
3032
+ enforce: "pre",
3033
+ transform(code, id) {
3034
+ if (!id) {
3035
+ return null;
3036
+ }
3037
+ const filePath = id.startsWith("file:") ? (0, import_url.fileURLToPath)(id) : id;
3038
+ const ext = (0, import_path.extname)(filePath);
3039
+ let isModule = ext === ".mjs" || ext === ".ts" || ext === ".tsx";
3040
+ if (ext === ".js") {
3041
+ isModule = code.includes("export ") || code.includes("import ");
3042
+ }
3043
+ const normalizedForPlatform = filePath.split("/").join(import_path.sep);
3044
+ const moduleDetails = (0, import_module_details_from_path.default)(normalizedForPlatform);
3045
+ if (!moduleDetails) {
3046
+ return null;
3047
+ }
3048
+ const moduleName = moduleDetails.name;
3049
+ const moduleVersion = getModuleVersion(moduleDetails.basedir);
3050
+ if (!moduleVersion) {
3051
+ console.warn(
3052
+ `No 'package.json' version found for module ${moduleName} at ${moduleDetails.basedir}. Skipping transformation.`
3053
+ );
3054
+ return null;
3055
+ }
3056
+ const normalizedModulePath = moduleDetails.path.replace(/\\/g, "/");
3057
+ const transformer = instrumentationMatcher.getTransformer(
3058
+ moduleName,
3059
+ moduleVersion,
3060
+ normalizedModulePath
3061
+ );
3062
+ if (!transformer) {
3063
+ return null;
3064
+ }
3065
+ try {
3066
+ const moduleType = isModule ? "esm" : "cjs";
3067
+ const result = transformer.transform(code, moduleType);
3068
+ const transformedCode = result.code.replace(
3069
+ /const \{tracingChannel: ([A-Za-z_$][\w$]*)\} = ([A-Za-z_$][\w$]*);/g,
3070
+ "const $1 = $2.tracingChannel;"
3071
+ );
3072
+ return {
3073
+ code: transformedCode,
3074
+ map: result.map
3075
+ };
3076
+ } catch (error) {
3077
+ console.warn(`Code transformation failed for ${id}: ${error}`);
3078
+ return null;
3079
+ }
3080
+ }
3081
+ };
3082
+ }
3083
+ );
3084
+
3085
+ // src/auto-instrumentations/bundler/webpack.ts
3086
+ var webpackPlugin = unplugin.webpack;
3087
+
3088
+ // src/auto-instrumentations/bundler/next.ts
3089
+ var requireFromProject = (0, import_node_module.createRequire)((0, import_node_path.join)(process.cwd(), "package.json"));
3090
+ var TURBOPACK_RULE_MATCHER = "*.{js,mjs,cjs}";
3091
+ function wrapNextjsConfigWithBraintrust(nextConfig) {
3092
+ const castNextConfig = nextConfig ?? {};
3093
+ if (typeof castNextConfig === "function") {
3094
+ return function(...args) {
3095
+ const maybeConfig = castNextConfig.apply(this, args);
3096
+ if (isThenable(maybeConfig)) {
3097
+ return maybeConfig.then(
3098
+ (resolvedConfig) => createConfigObject(resolvedConfig)
3099
+ );
3100
+ }
3101
+ return createConfigObject(maybeConfig);
3102
+ };
3103
+ }
3104
+ return createConfigObject(castNextConfig);
3105
+ }
3106
+ function createConfigObject(nextConfig) {
3107
+ const config = { ...nextConfig ?? {} };
3108
+ const activeBundler = detectBundler();
3109
+ if (activeBundler === "turbopack") {
3110
+ if (config.turbopack || !config.experimental?.turbo) {
3111
+ return {
3112
+ ...config,
3113
+ turbopack: wrapTurbopackConfig(config.turbopack)
3114
+ };
3115
+ }
3116
+ return {
3117
+ ...config,
3118
+ experimental: {
3119
+ ...config.experimental,
3120
+ turbo: wrapTurbopackConfig(config.experimental.turbo)
3121
+ }
3122
+ };
3123
+ }
3124
+ return {
3125
+ ...config,
3126
+ webpack: wrapWebpackConfig(config.webpack)
3127
+ };
3128
+ }
3129
+ function detectBundler() {
3130
+ if (process.argv.includes("--webpack")) {
3131
+ return "webpack";
3132
+ }
3133
+ const turbopackEnv = process.env.TURBOPACK?.trim().toLowerCase();
3134
+ if (turbopackEnv && turbopackEnv !== "0" && turbopackEnv !== "false" || process.argv.includes("--turbo") || process.argv.includes("--turbopack")) {
3135
+ return "turbopack";
3136
+ }
3137
+ const nextMajorVersion = getNextMajorVersion();
3138
+ if (nextMajorVersion !== void 0 && nextMajorVersion >= 16) {
3139
+ return "turbopack";
3140
+ }
3141
+ return "webpack";
3142
+ }
3143
+ function wrapWebpackConfig(userWebpack) {
3144
+ return (incomingConfig, buildContext) => {
3145
+ const rawConfig = typeof userWebpack === "function" ? userWebpack(incomingConfig, buildContext) : incomingConfig;
3146
+ const config = rawConfig ?? incomingConfig;
3147
+ const existingPlugins = Array.isArray(config.plugins) ? config.plugins : [];
3148
+ const runtime = buildContext.isServer ? buildContext.nextRuntime === "edge" || buildContext.nextRuntime === "experimental-edge" ? "edge" : "server" : "client";
3149
+ const plugin = webpackPlugin({
3150
+ browser: runtime === "client" || runtime === "edge"
3151
+ });
3152
+ return {
3153
+ ...config,
3154
+ plugins: [...existingPlugins, plugin]
3155
+ };
3156
+ };
3157
+ }
3158
+ function wrapTurbopackConfig(turbopackConfig) {
3159
+ const config = { ...turbopackConfig ?? {} };
3160
+ const resolveAlias = config.resolveAlias && typeof config.resolveAlias === "object" && !Array.isArray(config.resolveAlias) ? config.resolveAlias : {};
3161
+ const rules = config.rules && typeof config.rules === "object" && !Array.isArray(config.rules) ? config.rules : {};
3162
+ let dcBrowserPath;
3163
+ try {
3164
+ dcBrowserPath = (0, import_node_module.createRequire)(
3165
+ requireFromProject.resolve("braintrust/package.json")
3166
+ ).resolve("dc-browser");
3167
+ } catch {
3168
+ try {
3169
+ dcBrowserPath = requireFromProject.resolve("dc-browser");
3170
+ } catch {
3171
+ dcBrowserPath = void 0;
3172
+ }
3173
+ }
3174
+ if (dcBrowserPath && (0, import_node_path.isAbsolute)(dcBrowserPath)) {
3175
+ const relativeDcBrowserPath = (0, import_node_path.relative)(
3176
+ process.cwd(),
3177
+ dcBrowserPath
3178
+ ).replace(/\\/g, "/");
3179
+ dcBrowserPath = relativeDcBrowserPath.startsWith(".") ? relativeDcBrowserPath : `./${relativeDcBrowserPath}`;
3180
+ }
3181
+ return {
3182
+ ...config,
3183
+ // Turbopack resolves modules emitted by our loader from the app graph. The
3184
+ // browser diagnostics-channel shim is Braintrust's dependency, so alias it
3185
+ // to the copy installed with Braintrust while still letting user aliases win.
3186
+ resolveAlias: dcBrowserPath && resolveAlias["dc-browser"] === void 0 ? { ...resolveAlias, "dc-browser": dcBrowserPath } : config.resolveAlias,
3187
+ rules: addBraintrustTurbopackRule(rules)
3188
+ };
3189
+ }
3190
+ function addBraintrustTurbopackRule(rules) {
3191
+ const loaderPath = getWebpackLoaderPath();
3192
+ const braintrustRules = [
3193
+ {
3194
+ condition: { all: ["foreign", "browser"] },
3195
+ loaders: [
3196
+ {
3197
+ loader: loaderPath,
3198
+ options: { browser: true }
3199
+ }
3200
+ ]
3201
+ },
3202
+ {
3203
+ condition: { all: ["foreign", "edge-light"] },
3204
+ loaders: [
3205
+ {
3206
+ loader: loaderPath,
3207
+ options: { browser: true }
3208
+ }
3209
+ ]
3210
+ },
3211
+ {
3212
+ condition: { all: ["foreign", "node"] },
3213
+ loaders: [
3214
+ {
3215
+ loader: loaderPath,
3216
+ options: { browser: false }
3217
+ }
3218
+ ]
3219
+ }
3220
+ ];
3221
+ const existingRule = rules[TURBOPACK_RULE_MATCHER];
3222
+ if (!existingRule) {
3223
+ return {
3224
+ ...rules,
3225
+ // Turbopack exposes the active runtime through rule conditions, so keep
3226
+ // client, edge, and node transforms separate instead of inferring later.
3227
+ [TURBOPACK_RULE_MATCHER]: braintrustRules
3228
+ };
3229
+ }
3230
+ if (Array.isArray(existingRule)) {
3231
+ return {
3232
+ ...rules,
3233
+ [TURBOPACK_RULE_MATCHER]: [...existingRule, ...braintrustRules]
3234
+ };
3235
+ }
3236
+ if (typeof existingRule === "object" && existingRule !== null) {
3237
+ return {
3238
+ ...rules,
3239
+ [TURBOPACK_RULE_MATCHER]: [existingRule, ...braintrustRules]
3240
+ };
3241
+ }
3242
+ return rules;
3243
+ }
3244
+ function getWebpackLoaderPath() {
3245
+ try {
3246
+ return requireFromProject.resolve("braintrust/webpack-loader");
3247
+ } catch {
3248
+ return "braintrust/webpack-loader";
3249
+ }
3250
+ }
3251
+ function getNextMajorVersion() {
3252
+ try {
3253
+ const nextPackageJson = requireFromProject("next/package.json");
3254
+ if (typeof nextPackageJson.version !== "string") {
3255
+ return void 0;
3256
+ }
3257
+ const major = Number.parseInt(nextPackageJson.version.split(".")[0] ?? "");
3258
+ return Number.isFinite(major) ? major : void 0;
3259
+ } catch {
3260
+ return void 0;
3261
+ }
3262
+ }
3263
+ function isThenable(value) {
3264
+ return value !== null && value !== void 0 && (typeof value === "object" || typeof value === "function") && "then" in value && typeof value.then === "function";
3265
+ }
3266
+ // Annotate the CommonJS export names for ESM import in node:
3267
+ 0 && (module.exports = {
3268
+ wrapNextjsConfigWithBraintrust
3269
+ });