braintrust 3.24.0 → 3.26.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 (80) hide show
  1. package/NOTICE +6 -0
  2. package/dev/dist/index.d.mts +135 -2
  3. package/dev/dist/index.d.ts +135 -2
  4. package/dev/dist/index.js +4426 -2040
  5. package/dev/dist/index.mjs +3594 -1208
  6. package/dist/apply-auto-instrumentation.js +445 -403
  7. package/dist/apply-auto-instrumentation.mjs +249 -207
  8. package/dist/auto-instrumentations/bundler/esbuild.cjs +1449 -799
  9. package/dist/auto-instrumentations/bundler/esbuild.d.mts +4 -4
  10. package/dist/auto-instrumentations/bundler/esbuild.d.ts +4 -4
  11. package/dist/auto-instrumentations/bundler/esbuild.mjs +5 -8
  12. package/dist/auto-instrumentations/bundler/next.cjs +1448 -818
  13. package/dist/auto-instrumentations/bundler/next.mjs +6 -29
  14. package/dist/auto-instrumentations/bundler/rollup.cjs +1449 -799
  15. package/dist/auto-instrumentations/bundler/rollup.d.mts +4 -4
  16. package/dist/auto-instrumentations/bundler/rollup.d.ts +4 -4
  17. package/dist/auto-instrumentations/bundler/rollup.mjs +5 -8
  18. package/dist/auto-instrumentations/bundler/vite.cjs +1449 -799
  19. package/dist/auto-instrumentations/bundler/vite.d.mts +4 -4
  20. package/dist/auto-instrumentations/bundler/vite.d.ts +4 -4
  21. package/dist/auto-instrumentations/bundler/vite.mjs +5 -8
  22. package/dist/auto-instrumentations/bundler/webpack-loader.cjs +1602 -728
  23. package/dist/auto-instrumentations/bundler/webpack-loader.d.ts +20 -12
  24. package/dist/auto-instrumentations/bundler/webpack.cjs +1449 -799
  25. package/dist/auto-instrumentations/bundler/webpack.d.mts +4 -4
  26. package/dist/auto-instrumentations/bundler/webpack.d.ts +4 -4
  27. package/dist/auto-instrumentations/bundler/webpack.mjs +5 -4
  28. package/dist/auto-instrumentations/{chunk-GSZHTAQW.mjs → chunk-6E22MYSW.mjs} +194 -93
  29. package/dist/auto-instrumentations/{chunk-VT6DDNKM.mjs → chunk-AKKPLXTP.mjs} +631 -194
  30. package/dist/auto-instrumentations/chunk-NRE4QUQR.mjs +509 -0
  31. package/dist/auto-instrumentations/{chunk-BURMPO7L.mjs → chunk-V5LEODRX.mjs} +2 -6
  32. package/dist/auto-instrumentations/{chunk-M6DLIJ2Z.mjs → chunk-XYN63IG5.mjs} +124 -194
  33. package/dist/auto-instrumentations/{chunk-F43DNLPD.mjs → chunk-XZHHE4Y3.mjs} +646 -510
  34. package/dist/auto-instrumentations/hook.mjs +894 -657
  35. package/dist/auto-instrumentations/index.cjs +1125 -490
  36. package/dist/auto-instrumentations/index.d.mts +6 -2
  37. package/dist/auto-instrumentations/index.d.ts +6 -2
  38. package/dist/auto-instrumentations/index.mjs +6 -1
  39. package/dist/auto-instrumentations/loader/cjs-patch.cjs +492 -195
  40. package/dist/auto-instrumentations/loader/cjs-patch.d.mts +2 -2
  41. package/dist/auto-instrumentations/loader/cjs-patch.d.ts +2 -2
  42. package/dist/auto-instrumentations/loader/cjs-patch.mjs +3 -2
  43. package/dist/auto-instrumentations/loader/esm-hook.mjs +1 -1
  44. package/dist/auto-instrumentations/plugin-B-aZh7EP.d.ts +30 -0
  45. package/dist/auto-instrumentations/plugin-Bnj4E_6B.d.mts +30 -0
  46. package/dist/auto-instrumentations/{types-RNPaKi9o.d.mts → types-C1fVeiCp.d.mts} +1 -1
  47. package/dist/auto-instrumentations/{types-RNPaKi9o.d.ts → types-C1fVeiCp.d.ts} +1 -1
  48. package/dist/browser.d.mts +824 -197
  49. package/dist/browser.d.ts +824 -197
  50. package/dist/browser.js +3897 -1228
  51. package/dist/browser.mjs +3897 -1228
  52. package/dist/chunk-PN7EWK66.mjs +1784 -0
  53. package/dist/{chunk-SU6EHKJV.js → chunk-VRZZQPAA.js} +3289 -1577
  54. package/dist/chunk-VYNNEKSA.js +1784 -0
  55. package/dist/{chunk-XE5FS7QY.mjs → chunk-XIZOM2HO.mjs} +2470 -758
  56. package/dist/cli.js +3596 -1211
  57. package/dist/edge-light.d.mts +1 -1
  58. package/dist/edge-light.d.ts +1 -1
  59. package/dist/edge-light.js +3897 -1231
  60. package/dist/edge-light.mjs +3897 -1231
  61. package/dist/index.d.mts +824 -197
  62. package/dist/index.d.ts +824 -197
  63. package/dist/index.js +750 -445
  64. package/dist/index.mjs +334 -29
  65. package/dist/instrumentation/index.d.mts +135 -6
  66. package/dist/instrumentation/index.d.ts +135 -6
  67. package/dist/instrumentation/index.js +3696 -1257
  68. package/dist/instrumentation/index.mjs +3696 -1257
  69. package/dist/vitest-evals-reporter.js +16 -16
  70. package/dist/vitest-evals-reporter.mjs +2 -2
  71. package/dist/workerd.d.mts +1 -1
  72. package/dist/workerd.d.ts +1 -1
  73. package/dist/workerd.js +3897 -1231
  74. package/dist/workerd.mjs +3897 -1231
  75. package/licenses/node-diagnostics-channel/LICENSE +19 -0
  76. package/package.json +34 -35
  77. package/dist/auto-instrumentations/plugin-D0KHwSJv.d.mts +0 -44
  78. package/dist/auto-instrumentations/plugin-G6fgxk1b.d.ts +0 -44
  79. package/dist/chunk-7AUY2XWX.js +0 -1090
  80. package/dist/chunk-7F6GCRHH.mjs +0 -1090
@@ -1,10 +1,13 @@
1
1
  import {
2
+ GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION,
2
3
  applySpecialCasePatch,
3
4
  create,
4
5
  getPackageName,
5
6
  getPackageVersion,
6
- installMastraExporterFactory
7
- } from "./chunk-VT6DDNKM.mjs";
7
+ installMastraExporterFactory,
8
+ newGlobalTracingChannel,
9
+ setGlobalHookErrorReporter
10
+ } from "./chunk-AKKPLXTP.mjs";
8
11
 
9
12
  // src/auto-instrumentations/hook.mts
10
13
  import { register } from "module";
@@ -26,6 +29,9 @@ var envIntegrationAliases = {
26
29
  strandsagentsdk: "strandsAgentSDK",
27
30
  "strands-agent-sdk": "strandsAgentSDK",
28
31
  "@strands-agents/sdk": "strandsAgentSDK",
32
+ agents: "cloudflareAgents",
33
+ "cloudflare-agents": "cloudflareAgents",
34
+ cloudflareagents: "cloudflareAgents",
29
35
  anthropic: "anthropic",
30
36
  aisdk: "aisdk",
31
37
  "ai-sdk": "aisdk",
@@ -33,6 +39,9 @@ var envIntegrationAliases = {
33
39
  vercel: "vercel",
34
40
  claudeagentsdk: "claudeAgentSDK",
35
41
  "claude-agent-sdk": "claudeAgentSDK",
42
+ cloudflareaichat: "cloudflareAIChat",
43
+ "cloudflare-ai-chat": "cloudflareAIChat",
44
+ "@cloudflare/ai-chat": "cloudflareAIChat",
36
45
  cursor: "cursor",
37
46
  "cursor-sdk": "cursorSDK",
38
47
  cursorsdk: "cursorSDK",
@@ -47,6 +56,8 @@ var envIntegrationAliases = {
47
56
  "google-genai": "googleGenAI",
48
57
  googlegenai: "googleGenAI",
49
58
  huggingface: "huggingface",
59
+ "@huggingface/transformers": "huggingface",
60
+ transformers: "huggingface",
50
61
  openrouter: "openrouter",
51
62
  openrouteragent: "openrouterAgent",
52
63
  "openrouter-agent": "openrouterAgent",
@@ -103,73 +114,6 @@ var DefaultAsyncLocalStorage = class {
103
114
  return void 0;
104
115
  }
105
116
  };
106
- var DefaultChannel = class {
107
- constructor(name) {
108
- this.name = name;
109
- }
110
- name;
111
- hasSubscribers = false;
112
- subscribe(_subscription) {
113
- }
114
- unsubscribe(_subscription) {
115
- return false;
116
- }
117
- bindStore(_store, _transform) {
118
- }
119
- unbindStore(_store) {
120
- return false;
121
- }
122
- publish(_message) {
123
- }
124
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
- runStores(_message, fn, thisArg, ...args) {
126
- return fn.apply(thisArg, args);
127
- }
128
- };
129
- var DefaultTracingChannel = class {
130
- start;
131
- end;
132
- asyncStart;
133
- asyncEnd;
134
- error;
135
- constructor(nameOrChannels) {
136
- if (typeof nameOrChannels === "string") {
137
- this.start = new DefaultChannel(`tracing:${nameOrChannels}:start`);
138
- this.end = new DefaultChannel(`tracing:${nameOrChannels}:end`);
139
- this.asyncStart = new DefaultChannel(
140
- `tracing:${nameOrChannels}:asyncStart`
141
- );
142
- this.asyncEnd = new DefaultChannel(`tracing:${nameOrChannels}:asyncEnd`);
143
- this.error = new DefaultChannel(`tracing:${nameOrChannels}:error`);
144
- return;
145
- }
146
- this.start = nameOrChannels.start ?? new DefaultChannel("tracing:start");
147
- this.end = nameOrChannels.end ?? new DefaultChannel("tracing:end");
148
- this.asyncStart = nameOrChannels.asyncStart ?? new DefaultChannel("tracing:asyncStart");
149
- this.asyncEnd = nameOrChannels.asyncEnd ?? new DefaultChannel("tracing:asyncEnd");
150
- this.error = nameOrChannels.error ?? new DefaultChannel("tracing:error");
151
- }
152
- get hasSubscribers() {
153
- return this.start.hasSubscribers || this.end.hasSubscribers || this.asyncStart.hasSubscribers || this.asyncEnd.hasSubscribers || this.error.hasSubscribers;
154
- }
155
- subscribe(_handlers) {
156
- }
157
- unsubscribe(_handlers) {
158
- return false;
159
- }
160
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
161
- traceSync(fn, _message, thisArg, ...args) {
162
- return fn.apply(thisArg, args);
163
- }
164
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
165
- tracePromise(fn, _message, thisArg, ...args) {
166
- return fn.apply(thisArg, args);
167
- }
168
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
169
- traceCallback(fn, _position, _message, thisArg, ...args) {
170
- return fn.apply(thisArg, args);
171
- }
172
- };
173
117
  var iso = {
174
118
  buildType: "unknown",
175
119
  // Will be set by configureBrowser() or configureNode()
@@ -180,7 +124,7 @@ var iso = {
180
124
  getCallerLocation: () => void 0,
181
125
  newAsyncLocalStorage: () => new DefaultAsyncLocalStorage(),
182
126
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
183
- newTracingChannel: (nameOrChannels) => new DefaultTracingChannel(nameOrChannels),
127
+ newTracingChannel: (nameOrChannels) => newGlobalTracingChannel(nameOrChannels),
184
128
  processOn: (_0, _1) => {
185
129
  },
186
130
  basename: (filepath) => filepath.split(/[\\/]/).pop() || filepath,
@@ -293,6 +237,9 @@ var debugLogger = {
293
237
  return createDebugLogger(state2);
294
238
  }
295
239
  };
240
+ setGlobalHookErrorReporter((error) => {
241
+ debugLogger.error("Global instrumentation hook error:", error);
242
+ });
296
243
 
297
244
  // src/logger.ts
298
245
  import { v4 as uuidv42 } from "uuid";
@@ -1935,7 +1882,8 @@ var ApiKey = z6.object({
1935
1882
  user_email: z6.union([z6.string(), z6.null()]).optional(),
1936
1883
  user_given_name: z6.union([z6.string(), z6.null()]).optional(),
1937
1884
  user_family_name: z6.union([z6.string(), z6.null()]).optional(),
1938
- org_id: z6.union([z6.string(), z6.null()]).optional()
1885
+ org_id: z6.union([z6.string(), z6.null()]).optional(),
1886
+ expires_at: z6.union([z6.string(), z6.null()]).optional()
1939
1887
  });
1940
1888
  var TriggeredFunctionState = z6.object({
1941
1889
  triggered_xact_id: z6.string(),
@@ -2055,6 +2003,7 @@ var TopicMapData = z6.object({
2055
2003
  topic_names: z6.record(z6.string()).optional(),
2056
2004
  generation_settings: TopicMapGenerationSettings.optional(),
2057
2005
  disable_reconciliation: z6.boolean().optional(),
2006
+ reconcile_mode: z6.enum(["evolve", "names_only"]).optional(),
2058
2007
  distance_threshold: z6.number().optional(),
2059
2008
  btql_filter: z6.string().optional(),
2060
2009
  automation_btql_filter: z6.string().optional()
@@ -2635,7 +2584,12 @@ var ModelParams = z6.union([
2635
2584
  }).partial().passthrough()
2636
2585
  ]);
2637
2586
  var PromptOptionsNullish = z6.union([
2638
- z6.object({ model: z6.string(), params: ModelParams, position: z6.string() }).partial(),
2587
+ z6.object({
2588
+ model: z6.string(),
2589
+ params: ModelParams,
2590
+ position: z6.string(),
2591
+ endpoint_name: z6.union([z6.string(), z6.null()])
2592
+ }).partial(),
2639
2593
  z6.null()
2640
2594
  ]);
2641
2595
  var PromptParserNullish = z6.union([
@@ -2649,11 +2603,25 @@ var PromptParserNullish = z6.union([
2649
2603
  }),
2650
2604
  z6.null()
2651
2605
  ]);
2606
+ var PreprocessorSavedFunctionId = z6.union([
2607
+ z6.object({
2608
+ type: z6.literal("function"),
2609
+ id: z6.string(),
2610
+ version: z6.string().optional()
2611
+ }),
2612
+ z6.object({
2613
+ type: z6.literal("global"),
2614
+ name: z6.string(),
2615
+ function_type: z6.literal("preprocessor").optional().default("preprocessor")
2616
+ }),
2617
+ z6.null()
2618
+ ]);
2652
2619
  var PromptDataNullish = z6.union([
2653
2620
  z6.object({
2654
2621
  prompt: PromptBlockDataNullish,
2655
2622
  options: PromptOptionsNullish,
2656
2623
  parser: PromptParserNullish,
2624
+ preprocessor: PreprocessorSavedFunctionId,
2657
2625
  tool_functions: z6.union([z6.array(SavedFunctionId), z6.null()]),
2658
2626
  template_format: z6.union([
2659
2627
  z6.enum(["mustache", "nunjucks", "none"]),
@@ -2855,6 +2823,7 @@ var PromptData = z6.object({
2855
2823
  prompt: PromptBlockDataNullish,
2856
2824
  options: PromptOptionsNullish,
2857
2825
  parser: PromptParserNullish,
2826
+ preprocessor: PreprocessorSavedFunctionId,
2858
2827
  tool_functions: z6.union([z6.array(SavedFunctionId), z6.null()]),
2859
2828
  template_format: z6.union([
2860
2829
  z6.enum(["mustache", "nunjucks", "none"]),
@@ -3017,7 +2986,8 @@ var InvokeFunction = FunctionId.and(
3017
2986
  mode: StreamingMode,
3018
2987
  strict: z6.union([z6.boolean(), z6.null()]),
3019
2988
  mcp_auth: z6.record(z6.object({ oauth_token: z6.string() }).partial()),
3020
- overrides: z6.union([z6.object({}).partial().passthrough(), z6.null()])
2989
+ overrides: z6.union([z6.object({}).partial().passthrough(), z6.null()]),
2990
+ endpoint_name: z6.union([z6.string(), z6.null()])
3021
2991
  }).partial()
3022
2992
  );
3023
2993
  var MCPServer = z6.object({
@@ -3081,6 +3051,24 @@ var Organization = z6.object({
3081
3051
  created: z6.union([z6.string(), z6.null()]).optional(),
3082
3052
  image_rendering_mode: ImageRenderingMode.optional()
3083
3053
  });
3054
+ var RetentionObjectType = z6.enum([
3055
+ "project_logs",
3056
+ "experiment",
3057
+ "dataset"
3058
+ ]);
3059
+ var OrgAutomation = z6.object({
3060
+ id: z6.string().uuid(),
3061
+ org_id: z6.string().uuid(),
3062
+ user_id: z6.union([z6.string(), z6.null()]).optional(),
3063
+ created: z6.union([z6.string(), z6.null()]).optional(),
3064
+ name: z6.string(),
3065
+ description: z6.union([z6.string(), z6.null()]).optional(),
3066
+ config: z6.object({
3067
+ event_type: z6.literal("retention"),
3068
+ object_type: RetentionObjectType,
3069
+ retention_days: z6.number().int().gte(0)
3070
+ })
3071
+ });
3084
3072
  var ProjectSettings = z6.union([
3085
3073
  z6.object({
3086
3074
  comparison_key: z6.union([z6.string(), z6.null()]),
@@ -3107,6 +3095,7 @@ var ProjectSettings = z6.union([
3107
3095
  z6.null()
3108
3096
  ]),
3109
3097
  disable_realtime_queries: z6.union([z6.boolean(), z6.null()]),
3098
+ monitor_charts_use_metrics_start: z6.union([z6.boolean(), z6.null()]),
3110
3099
  default_preprocessor: NullableSavedFunctionId
3111
3100
  }).partial(),
3112
3101
  z6.null()
@@ -3121,11 +3110,6 @@ var Project = z6.object({
3121
3110
  user_id: z6.union([z6.string(), z6.null()]).optional(),
3122
3111
  settings: ProjectSettings.optional()
3123
3112
  });
3124
- var RetentionObjectType = z6.enum([
3125
- "project_logs",
3126
- "experiment",
3127
- "dataset"
3128
- ]);
3129
3113
  var TopicAutomationFacetModel = z6.union([
3130
3114
  z6.enum(["brain-facet-latest", "brain-facet-1", "brain-facet-2"]),
3131
3115
  z6.null()
@@ -3236,7 +3220,7 @@ var ProjectAutomation = z6.object({
3236
3220
  z6.object({
3237
3221
  event_type: z6.literal("retention"),
3238
3222
  object_type: RetentionObjectType,
3239
- retention_days: z6.number().gte(0)
3223
+ retention_days: z6.number().int().gte(0)
3240
3224
  }),
3241
3225
  z6.object({
3242
3226
  event_type: z6.literal("environment_update"),
@@ -3408,7 +3392,12 @@ var Prompt = z6.object({
3408
3392
  metadata: z6.union([z6.object({}).partial().passthrough(), z6.null()]).optional(),
3409
3393
  function_type: FunctionTypeEnumNullish.optional()
3410
3394
  });
3411
- var PromptOptions = z6.object({ model: z6.string(), params: ModelParams, position: z6.string() }).partial();
3395
+ var PromptOptions = z6.object({
3396
+ model: z6.string(),
3397
+ params: ModelParams,
3398
+ position: z6.string(),
3399
+ endpoint_name: z6.union([z6.string(), z6.null()])
3400
+ }).partial();
3412
3401
  var PromptSessionEvent = z6.object({
3413
3402
  id: z6.string(),
3414
3403
  _xact_id: z6.string(),
@@ -3491,7 +3480,8 @@ var RunEval = z6.object({
3491
3480
  stop_token: z6.union([z6.string(), z6.null()]).optional(),
3492
3481
  extra_messages: z6.string().optional(),
3493
3482
  tags: z6.array(z6.string()).optional(),
3494
- mcp_auth: z6.record(z6.object({ oauth_token: z6.string() }).partial()).optional()
3483
+ mcp_auth: z6.record(z6.object({ oauth_token: z6.string() }).partial()).optional(),
3484
+ endpoint_name: z6.union([z6.string(), z6.null()]).optional()
3495
3485
  });
3496
3486
  var ServiceToken = z6.object({
3497
3487
  id: z6.string().uuid(),
@@ -3501,7 +3491,8 @@ var ServiceToken = z6.object({
3501
3491
  service_account_id: z6.union([z6.string(), z6.null()]).optional(),
3502
3492
  service_account_email: z6.union([z6.string(), z6.null()]).optional(),
3503
3493
  service_account_name: z6.union([z6.string(), z6.null()]).optional(),
3504
- org_id: z6.union([z6.string(), z6.null()]).optional()
3494
+ org_id: z6.union([z6.string(), z6.null()]).optional(),
3495
+ expires_at: z6.union([z6.string(), z6.null()]).optional()
3505
3496
  });
3506
3497
  var SpanIFrame = z6.object({
3507
3498
  id: z6.string().uuid(),
@@ -3623,6 +3614,13 @@ var ViewOptions = z6.union([
3623
3614
  }),
3624
3615
  z6.null()
3625
3616
  ]),
3617
+ pointSizeMetric: z6.union([
3618
+ z6.object({
3619
+ type: z6.enum(["none", "score", "metric", "metadata"]),
3620
+ value: z6.string()
3621
+ }),
3622
+ z6.null()
3623
+ ]),
3626
3624
  xAxisAggregation: z6.union([z6.string(), z6.null()]),
3627
3625
  chartAnnotations: z6.union([
3628
3626
  z6.array(z6.object({ id: z6.string(), text: z6.string() })),
@@ -4732,7 +4730,53 @@ var SpanCache = class {
4732
4730
  };
4733
4731
 
4734
4732
  // src/span-origin.ts
4735
- var SDK_VERSION = true ? "3.24.0" : "0.0.0";
4733
+ var INSTRUMENTATION_NAMES = {
4734
+ AI_SDK: "ai-sdk",
4735
+ ANTHROPIC: "anthropic",
4736
+ BEDROCK_RUNTIME: "bedrock-runtime",
4737
+ BRAINTRUST_JS_LOGGER: "braintrust-js-logger",
4738
+ CLAUDE_AGENT_SDK: "claude-agent-sdk",
4739
+ CLOUDFLARE_AI_CHAT: "cloudflare-ai-chat",
4740
+ CLOUDFLARE_AGENTS: "cloudflare-agents",
4741
+ COHERE: "cohere",
4742
+ CURSOR_SDK: "cursor-sdk",
4743
+ EVE: "eve",
4744
+ FLUE: "flue",
4745
+ GENKIT: "genkit",
4746
+ GITHUB_COPILOT: "github-copilot",
4747
+ GOOGLE_ADK: "google-adk",
4748
+ GOOGLE_GENAI: "google-genai",
4749
+ GROQ: "groq",
4750
+ HUGGINGFACE: "huggingface",
4751
+ LANGCHAIN: "langchain",
4752
+ LANGSMITH: "langsmith",
4753
+ MASTRA: "mastra",
4754
+ MISTRAL: "mistral",
4755
+ OPENAI: "openai",
4756
+ OPENAI_AGENTS: "openai-agents",
4757
+ OPENAI_CODEX: "openai-codex",
4758
+ OPENROUTER: "openrouter",
4759
+ OPENROUTER_AGENT: "openrouter-agent",
4760
+ PI_CODING_AGENT: "pi-coding-agent",
4761
+ STRANDS_AGENT_SDK: "strands-agent-sdk"
4762
+ };
4763
+ var INTERNAL_SPAN_INSTRUMENTATION_NAME = /* @__PURE__ */ Symbol.for(
4764
+ "braintrust.spanInstrumentationName"
4765
+ );
4766
+ var SDK_VERSION = true ? "3.26.0" : "0.0.0";
4767
+ function withSpanInstrumentationName(args, instrumentationName) {
4768
+ return {
4769
+ ...args,
4770
+ [INTERNAL_SPAN_INSTRUMENTATION_NAME]: instrumentationName
4771
+ };
4772
+ }
4773
+ function getSpanInstrumentationName(args) {
4774
+ if (typeof args !== "object" || args === null) {
4775
+ return void 0;
4776
+ }
4777
+ const value = args[INTERNAL_SPAN_INSTRUMENTATION_NAME];
4778
+ return isSpanInstrumentationName(value) ? value : void 0;
4779
+ }
4736
4780
  function detectSpanOriginEnvironment(explicit) {
4737
4781
  if (explicit) return explicit;
4738
4782
  const envType = isomorph_default.getEnv("BRAINTRUST_ENVIRONMENT_TYPE");
@@ -4804,6 +4848,9 @@ function mergeSpanOriginContext(context, instrumentationName, environment) {
4804
4848
  };
4805
4849
  return next;
4806
4850
  }
4851
+ function isSpanInstrumentationName(value) {
4852
+ return Object.values(INSTRUMENTATION_NAMES).some((name) => name === value);
4853
+ }
4807
4854
  function firstPresent(entries) {
4808
4855
  return entries.find(([key]) => Boolean(isomorph_default.getEnv(key)))?.[1];
4809
4856
  }
@@ -4911,12 +4958,13 @@ function applyMaskingToField(maskingFunction, data, fieldName) {
4911
4958
  var INITIAL_SPAN_WRITE_AS_MERGE = /* @__PURE__ */ Symbol(
4912
4959
  "braintrust.initial-span-write-as-merge"
4913
4960
  );
4961
+ var INTERNAL_SPAN_CONTEXT = /* @__PURE__ */ Symbol("braintrust.internal-span-context");
4914
4962
  var BRAINTRUST_CURRENT_SPAN_STORE = /* @__PURE__ */ Symbol.for(
4915
4963
  "braintrust.currentSpanStore"
4916
4964
  );
4917
4965
  var ContextManager = class {
4918
4966
  /**
4919
- * Returns the value to store in the ALS bound to a TracingChannel's start event.
4967
+ * Returns the value to store in the ALS bound to a global hook's start event.
4920
4968
  * In default mode this is the Span itself; in OTEL mode it is the OTEL Context
4921
4969
  * containing the span so that OTEL's own ALS stores a proper Context object.
4922
4970
  */
@@ -5098,6 +5146,7 @@ var BraintrustState = class _BraintrustState {
5098
5146
  });
5099
5147
  this.spanCache = new SpanCache({ disabled: loginParams.disableSpanCache });
5100
5148
  this.spanOriginEnvironment = detectSpanOriginEnvironment();
5149
+ this._internalSetTraceContextSigningSecret(loginParams.apiKey);
5101
5150
  }
5102
5151
  loginParams;
5103
5152
  id;
@@ -5135,6 +5184,18 @@ var BraintrustState = class _BraintrustState {
5135
5184
  _contextManager = null;
5136
5185
  _otelFlushCallback = null;
5137
5186
  spanOriginEnvironment;
5187
+ traceContextSigningSecret;
5188
+ /** @internal */
5189
+ _internalSetTraceContextSigningSecret(secret) {
5190
+ const normalizedSecret = secret?.trim();
5191
+ if (normalizedSecret) {
5192
+ this.traceContextSigningSecret = normalizedSecret;
5193
+ }
5194
+ }
5195
+ /** @internal */
5196
+ _internalGetTraceContextSigningSecret() {
5197
+ return (this.traceContextSigningSecret ?? this.loginToken ?? isomorph_default.getEnv("BRAINTRUST_API_KEY"))?.trim();
5198
+ }
5138
5199
  resetLoginInfo() {
5139
5200
  this.appUrl = null;
5140
5201
  this.appPublicUrl = null;
@@ -5195,6 +5256,7 @@ var BraintrustState = class _BraintrustState {
5195
5256
  this.gitMetadataSettings = other.gitMetadataSettings;
5196
5257
  this.debugLogLevel = other.debugLogLevel;
5197
5258
  this.debugLogLevelConfigured = other.debugLogLevelConfigured;
5259
+ this.traceContextSigningSecret = other.traceContextSigningSecret;
5198
5260
  setGlobalDebugLogLevel(
5199
5261
  this.debugLogLevelConfigured ? this.debugLogLevel ?? false : void 0
5200
5262
  );
@@ -5282,6 +5344,7 @@ var BraintrustState = class _BraintrustState {
5282
5344
  return this.debugLogLevelConfigured;
5283
5345
  }
5284
5346
  async login(loginParams) {
5347
+ this._internalSetTraceContextSigningSecret(loginParams.apiKey);
5285
5348
  this.setDebugLogLevel(loginParams.debugLogLevel);
5286
5349
  if (this.apiUrl && !loginParams.forceLogin) {
5287
5350
  return;
@@ -7522,7 +7585,9 @@ function deepCopyEvent(event) {
7522
7585
  const ATTACHMENT_MARKER_KEY = "_bt_internal_saved_attachment_marker";
7523
7586
  const attachmentMarker = ++deepCopyEventMarkerCounter;
7524
7587
  const serialized = JSON.stringify(event, (_k, v) => {
7525
- if (v instanceof SpanImpl || v instanceof NoopSpan) {
7588
+ if (v instanceof Error) {
7589
+ return v.message;
7590
+ } else if (v instanceof SpanImpl || v instanceof NoopSpan) {
7526
7591
  return `<span>`;
7527
7592
  } else if (v instanceof Experiment2) {
7528
7593
  return `<experiment>`;
@@ -8134,6 +8199,7 @@ var SpanImpl = class _SpanImpl {
8134
8199
  constructor(args) {
8135
8200
  this._state = args.state;
8136
8201
  this._propagatedState = args.propagatedState;
8202
+ const instrumentationName = getSpanInstrumentationName(args) ?? INSTRUMENTATION_NAMES.BRAINTRUST_JS_LOGGER;
8137
8203
  const spanAttributes = args.spanAttributes ?? {};
8138
8204
  const rawEvent = args.event ?? {};
8139
8205
  const type = args.type ?? (args.parentSpanIds ? void 0 : args.defaultRootType);
@@ -8164,8 +8230,8 @@ var SpanImpl = class _SpanImpl {
8164
8230
  start: args.startTime ?? getCurrentUnixTimestamp()
8165
8231
  },
8166
8232
  context: mergeSpanOriginContext(
8167
- { ...callerLocation },
8168
- "braintrust-js-logger",
8233
+ { ...callerLocation, ...args[INTERNAL_SPAN_CONTEXT] },
8234
+ instrumentationName,
8169
8235
  this._state.spanOriginEnvironment
8170
8236
  ),
8171
8237
  span_attributes: {
@@ -9022,17 +9088,20 @@ var BraintrustObservabilityExporter = class {
9022
9088
  }
9023
9089
  onStart(exported) {
9024
9090
  if (this.spans.has(exported.id)) return;
9025
- const args = {
9026
- name: exported.name,
9027
- spanAttributes: { type: spanTypeFor(exported.type) },
9028
- startTime: epochSeconds(exported.startTime),
9029
- // Use the Mastra span id as the Braintrust row id so that
9030
- // `logFeedback({ id: <mastra span id> })` (and Mastra's score events)
9031
- // attach to the right row. Without this, `SpanImpl` auto-generates a
9032
- // row id (`this._id = eventId ?? idGenerator.getSpanId()`) that no
9033
- // external caller could know.
9034
- event: { id: exported.id }
9035
- };
9091
+ const args = withSpanInstrumentationName(
9092
+ {
9093
+ name: exported.name,
9094
+ spanAttributes: { type: spanTypeFor(exported.type) },
9095
+ startTime: epochSeconds(exported.startTime),
9096
+ // Use the Mastra span id as the Braintrust row id so that
9097
+ // `logFeedback({ id: <mastra span id> })` (and Mastra's score events)
9098
+ // attach to the right row. Without this, `SpanImpl` auto-generates a
9099
+ // row id (`this._id = eventId ?? idGenerator.getSpanId()`) that no
9100
+ // external caller could know.
9101
+ event: { id: exported.id }
9102
+ },
9103
+ INSTRUMENTATION_NAMES.MASTRA
9104
+ );
9036
9105
  const parentRecord = exported.parentSpanId ? this.spans.get(exported.parentSpanId) : void 0;
9037
9106
  if (!this.capturedParent) {
9038
9107
  const probe = currentSpan();
@@ -9103,7 +9172,8 @@ function logExporterError(err) {
9103
9172
  function channel(spec) {
9104
9173
  return spec;
9105
9174
  }
9106
- function defineChannels(pkg, channels) {
9175
+ function defineChannels(pkg, channels, options) {
9176
+ const { instrumentationName } = options;
9107
9177
  return Object.fromEntries(
9108
9178
  Object.entries(channels).map(([key, spec]) => {
9109
9179
  const fullChannelName = `orchestrion:${pkg}:${spec.channelName}`;
@@ -9116,6 +9186,7 @@ function defineChannels(pkg, channels) {
9116
9186
  key,
9117
9187
  {
9118
9188
  ...asyncSpec,
9189
+ instrumentationName,
9119
9190
  tracingChannel: tracingChannel2,
9120
9191
  tracePromise: (fn, context) => tracingChannel2().tracePromise(
9121
9192
  fn,
@@ -9133,6 +9204,7 @@ function defineChannels(pkg, channels) {
9133
9204
  key,
9134
9205
  {
9135
9206
  ...syncSpec,
9207
+ instrumentationName,
9136
9208
  tracingChannel,
9137
9209
  traceSync: (fn, context) => tracingChannel().traceSync(
9138
9210
  fn,
@@ -9146,92 +9218,102 @@ function defineChannels(pkg, channels) {
9146
9218
  }
9147
9219
 
9148
9220
  // src/instrumentation/plugins/ai-sdk-channels.ts
9149
- var aiSDKChannels = defineChannels("ai", {
9150
- generateText: channel({
9151
- channelName: "generateText",
9152
- kind: "async"
9153
- }),
9154
- streamText: channel({
9155
- channelName: "streamText",
9156
- kind: "async"
9157
- }),
9158
- streamTextSync: channel({
9159
- channelName: "streamText.sync",
9160
- kind: "sync-stream"
9161
- }),
9162
- generateObject: channel({
9163
- channelName: "generateObject",
9164
- kind: "async"
9165
- }),
9166
- streamObject: channel({
9167
- channelName: "streamObject",
9168
- kind: "async"
9169
- }),
9170
- streamObjectSync: channel({
9171
- channelName: "streamObject.sync",
9172
- kind: "sync-stream"
9173
- }),
9174
- embed: channel(
9175
- {
9221
+ var aiSDKChannels = defineChannels(
9222
+ "ai",
9223
+ {
9224
+ generateText: channel({
9225
+ channelName: "generateText",
9226
+ kind: "async"
9227
+ }),
9228
+ streamText: channel({
9229
+ channelName: "streamText",
9230
+ kind: "async"
9231
+ }),
9232
+ streamTextSync: channel({
9233
+ channelName: "streamText.sync",
9234
+ kind: "sync-stream"
9235
+ }),
9236
+ generateObject: channel({
9237
+ channelName: "generateObject",
9238
+ kind: "async"
9239
+ }),
9240
+ streamObject: channel({
9241
+ channelName: "streamObject",
9242
+ kind: "async"
9243
+ }),
9244
+ streamObjectSync: channel({
9245
+ channelName: "streamObject.sync",
9246
+ kind: "sync-stream"
9247
+ }),
9248
+ embed: channel({
9176
9249
  channelName: "embed",
9177
9250
  kind: "async"
9178
- }
9179
- ),
9180
- embedMany: channel({
9181
- channelName: "embedMany",
9182
- kind: "async"
9183
- }),
9184
- rerank: channel({
9185
- channelName: "rerank",
9186
- kind: "async"
9187
- }),
9188
- agentGenerate: channel({
9189
- channelName: "Agent.generate",
9190
- kind: "async"
9191
- }),
9192
- agentStream: channel({
9193
- channelName: "Agent.stream",
9194
- kind: "async"
9195
- }),
9196
- agentStreamSync: channel({
9197
- channelName: "Agent.stream.sync",
9198
- kind: "sync-stream"
9199
- }),
9200
- toolLoopAgentGenerate: channel({
9201
- channelName: "ToolLoopAgent.generate",
9202
- kind: "async"
9203
- }),
9204
- toolLoopAgentStream: channel({
9205
- channelName: "ToolLoopAgent.stream",
9206
- kind: "async"
9207
- }),
9208
- workflowAgentStream: channel({
9209
- channelName: "WorkflowAgent.stream",
9210
- kind: "async"
9211
- }),
9212
- v7CreateTelemetryDispatcher: channel({
9213
- channelName: "createTelemetryDispatcher",
9214
- kind: "sync-stream"
9215
- })
9216
- });
9217
- var harnessAgentChannels = defineChannels("@ai-sdk/harness", {
9218
- generate: channel({
9219
- channelName: "HarnessAgent.generate",
9220
- kind: "async"
9221
- }),
9222
- stream: channel({
9223
- channelName: "HarnessAgent.stream",
9224
- kind: "async"
9225
- }),
9226
- continueGenerate: channel({
9227
- channelName: "HarnessAgent.continueGenerate",
9228
- kind: "async"
9229
- }),
9230
- continueStream: channel({
9231
- channelName: "HarnessAgent.continueStream",
9232
- kind: "async"
9233
- })
9234
- });
9251
+ }),
9252
+ embedMany: channel({
9253
+ channelName: "embedMany",
9254
+ kind: "async"
9255
+ }),
9256
+ rerank: channel({
9257
+ channelName: "rerank",
9258
+ kind: "async"
9259
+ }),
9260
+ agentGenerate: channel({
9261
+ channelName: "Agent.generate",
9262
+ kind: "async"
9263
+ }),
9264
+ agentStream: channel({
9265
+ channelName: "Agent.stream",
9266
+ kind: "async"
9267
+ }),
9268
+ agentStreamSync: channel({
9269
+ channelName: "Agent.stream.sync",
9270
+ kind: "sync-stream"
9271
+ }),
9272
+ toolLoopAgentGenerate: channel({
9273
+ channelName: "ToolLoopAgent.generate",
9274
+ kind: "async"
9275
+ }),
9276
+ toolLoopAgentStream: channel({
9277
+ channelName: "ToolLoopAgent.stream",
9278
+ kind: "async"
9279
+ }),
9280
+ workflowAgentStream: channel({
9281
+ channelName: "WorkflowAgent.stream",
9282
+ kind: "async"
9283
+ }),
9284
+ v7CreateTelemetryDispatcher: channel({
9285
+ channelName: "createTelemetryDispatcher",
9286
+ kind: "sync-stream"
9287
+ })
9288
+ },
9289
+ { instrumentationName: INSTRUMENTATION_NAMES.AI_SDK }
9290
+ );
9291
+ var harnessAgentChannels = defineChannels(
9292
+ "@ai-sdk/harness",
9293
+ {
9294
+ createSession: channel({
9295
+ channelName: "HarnessAgent.createSession",
9296
+ kind: "async"
9297
+ }),
9298
+ generate: channel({
9299
+ channelName: "HarnessAgent.generate",
9300
+ kind: "async"
9301
+ }),
9302
+ stream: channel({
9303
+ channelName: "HarnessAgent.stream",
9304
+ kind: "async"
9305
+ }),
9306
+ continueGenerate: channel({
9307
+ channelName: "HarnessAgent.continueGenerate",
9308
+ kind: "async"
9309
+ }),
9310
+ continueStream: channel({
9311
+ channelName: "HarnessAgent.continueStream",
9312
+ kind: "async"
9313
+ })
9314
+ },
9315
+ { instrumentationName: INSTRUMENTATION_NAMES.AI_SDK }
9316
+ );
9235
9317
 
9236
9318
  // src/auto-instrumentations/configs/ai-sdk.ts
9237
9319
  var aiSDKConfigs = [
@@ -9239,6 +9321,7 @@ var aiSDKConfigs = [
9239
9321
  // `./agent` entrypoint. The compiled class expression is anonymous, so match
9240
9322
  // the first async method with each public name instead of a class name.
9241
9323
  ...[
9324
+ ["createSession", harnessAgentChannels.createSession.channelName],
9242
9325
  ["generate", harnessAgentChannels.generate.channelName],
9243
9326
  ["stream", harnessAgentChannels.stream.channelName],
9244
9327
  ["continueGenerate", harnessAgentChannels.continueGenerate.channelName],
@@ -9627,20 +9710,24 @@ var aiSDKConfigs = [
9627
9710
  ];
9628
9711
 
9629
9712
  // src/instrumentation/plugins/anthropic-channels.ts
9630
- var anthropicChannels = defineChannels("@anthropic-ai/sdk", {
9631
- messagesCreate: channel({
9632
- channelName: "messages.create",
9633
- kind: "async"
9634
- }),
9635
- betaMessagesCreate: channel({
9636
- channelName: "beta.messages.create",
9637
- kind: "async"
9638
- }),
9639
- betaMessagesToolRunner: channel({
9640
- channelName: "beta.messages.toolRunner",
9641
- kind: "sync-stream"
9642
- })
9643
- });
9713
+ var anthropicChannels = defineChannels(
9714
+ "@anthropic-ai/sdk",
9715
+ {
9716
+ messagesCreate: channel({
9717
+ channelName: "messages.create",
9718
+ kind: "async"
9719
+ }),
9720
+ betaMessagesCreate: channel({
9721
+ channelName: "beta.messages.create",
9722
+ kind: "async"
9723
+ }),
9724
+ betaMessagesToolRunner: channel({
9725
+ channelName: "beta.messages.toolRunner",
9726
+ kind: "sync-stream"
9727
+ })
9728
+ },
9729
+ { instrumentationName: INSTRUMENTATION_NAMES.ANTHROPIC }
9730
+ );
9644
9731
 
9645
9732
  // src/auto-instrumentations/configs/anthropic.ts
9646
9733
  var anthropicConfigs = [
@@ -9763,15 +9850,27 @@ var clientSendChannel = channel({
9763
9850
  channelName: "client.send",
9764
9851
  kind: "async"
9765
9852
  });
9766
- var bedrockRuntimeChannels = defineChannels("aws-bedrock-runtime", {
9767
- clientSend: clientSendChannel
9768
- });
9769
- var smithyCoreChannels = defineChannels("@smithy/core", {
9770
- clientSend: clientSendChannel
9771
- });
9772
- var smithyClientChannels = defineChannels("@smithy/smithy-client", {
9773
- clientSend: clientSendChannel
9774
- });
9853
+ var bedrockRuntimeChannels = defineChannels(
9854
+ "aws-bedrock-runtime",
9855
+ {
9856
+ clientSend: clientSendChannel
9857
+ },
9858
+ { instrumentationName: INSTRUMENTATION_NAMES.BEDROCK_RUNTIME }
9859
+ );
9860
+ var smithyCoreChannels = defineChannels(
9861
+ "@smithy/core",
9862
+ {
9863
+ clientSend: clientSendChannel
9864
+ },
9865
+ { instrumentationName: INSTRUMENTATION_NAMES.BEDROCK_RUNTIME }
9866
+ );
9867
+ var smithyClientChannels = defineChannels(
9868
+ "@smithy/smithy-client",
9869
+ {
9870
+ clientSend: clientSendChannel
9871
+ },
9872
+ { instrumentationName: INSTRUMENTATION_NAMES.BEDROCK_RUNTIME }
9873
+ );
9775
9874
 
9776
9875
  // src/auto-instrumentations/configs/bedrock-runtime.ts
9777
9876
  var bedrockRuntimeConfigs = [
@@ -9837,7 +9936,8 @@ var claudeAgentSDKChannels = defineChannels(
9837
9936
  channelName: "query",
9838
9937
  kind: "sync-stream"
9839
9938
  })
9840
- }
9939
+ },
9940
+ { instrumentationName: INSTRUMENTATION_NAMES.CLAUDE_AGENT_SDK }
9841
9941
  );
9842
9942
 
9843
9943
  // src/auto-instrumentations/configs/claude-agent-sdk.ts
@@ -9871,25 +9971,97 @@ var claudeAgentSDKConfigs = [
9871
9971
  }
9872
9972
  ];
9873
9973
 
9974
+ // src/instrumentation/plugins/cloudflare-ai-chat-channels.ts
9975
+ var cloudflareAIChatChannels = defineChannels(
9976
+ "@cloudflare/ai-chat",
9977
+ {
9978
+ runExclusiveChatTurn: channel({
9979
+ channelName: "AIChatAgent._runExclusiveChatTurn",
9980
+ kind: "async"
9981
+ }),
9982
+ onChatResponse: channel({
9983
+ channelName: "AIChatAgent.onChatResponse",
9984
+ kind: "sync-stream"
9985
+ })
9986
+ },
9987
+ { instrumentationName: INSTRUMENTATION_NAMES.CLOUDFLARE_AI_CHAT }
9988
+ );
9989
+
9990
+ // src/auto-instrumentations/configs/cloudflare-ai-chat.ts
9991
+ var cloudflareAIChatVersionRange = ">=0.9.0 <0.10.0";
9992
+ var cloudflareAIChatConfigs = [
9993
+ {
9994
+ // AIChatAgent subclasses replace onChatMessage, so there is no stable
9995
+ // public implementation for the transformer to target. This runner is
9996
+ // the narrowest shared boundary around every chat turn; keep the version
9997
+ // range tight because it is an internal method.
9998
+ channelName: cloudflareAIChatChannels.runExclusiveChatTurn.channelName,
9999
+ module: {
10000
+ name: "@cloudflare/ai-chat",
10001
+ versionRange: cloudflareAIChatVersionRange,
10002
+ filePath: "dist/index.js"
10003
+ },
10004
+ functionQuery: {
10005
+ className: "AIChatAgent",
10006
+ methodName: "_runExclusiveChatTurn",
10007
+ kind: "Async"
10008
+ }
10009
+ }
10010
+ ];
10011
+
10012
+ // src/instrumentation/plugins/cloudflare-agents-channels.ts
10013
+ var cloudflareAgentsChannels = defineChannels(
10014
+ "agents",
10015
+ {
10016
+ runAgentTool: channel({
10017
+ channelName: "Agent.runAgentTool",
10018
+ kind: "async"
10019
+ })
10020
+ },
10021
+ { instrumentationName: INSTRUMENTATION_NAMES.CLOUDFLARE_AGENTS }
10022
+ );
10023
+
10024
+ // src/auto-instrumentations/configs/cloudflare-agents.ts
10025
+ var cloudflareAgentsVersionRange = ">=0.17.0 <0.18.0";
10026
+ var cloudflareAgentsConfigs = [
10027
+ {
10028
+ channelName: cloudflareAgentsChannels.runAgentTool.channelName,
10029
+ module: {
10030
+ name: "agents",
10031
+ versionRange: cloudflareAgentsVersionRange,
10032
+ filePath: "dist/index.js"
10033
+ },
10034
+ functionQuery: {
10035
+ className: "Agent",
10036
+ methodName: "runAgentTool",
10037
+ kind: "Async"
10038
+ }
10039
+ }
10040
+ ];
10041
+
9874
10042
  // src/instrumentation/plugins/cohere-channels.ts
9875
- var cohereChannels = defineChannels("cohere-ai", {
9876
- chat: channel({
9877
- channelName: "chat",
9878
- kind: "async"
9879
- }),
9880
- chatStream: channel({
9881
- channelName: "chatStream",
9882
- kind: "async"
9883
- }),
9884
- embed: channel({
9885
- channelName: "embed",
9886
- kind: "async"
9887
- }),
9888
- rerank: channel({
9889
- channelName: "rerank",
9890
- kind: "async"
9891
- })
9892
- });
10043
+ var cohereChannels = defineChannels(
10044
+ "cohere-ai",
10045
+ {
10046
+ chat: channel({
10047
+ channelName: "chat",
10048
+ kind: "async"
10049
+ }),
10050
+ chatStream: channel({
10051
+ channelName: "chatStream",
10052
+ kind: "async"
10053
+ }),
10054
+ embed: channel({
10055
+ channelName: "embed",
10056
+ kind: "async"
10057
+ }),
10058
+ rerank: channel({
10059
+ channelName: "rerank",
10060
+ kind: "async"
10061
+ })
10062
+ },
10063
+ { instrumentationName: INSTRUMENTATION_NAMES.COHERE }
10064
+ );
9893
10065
 
9894
10066
  // src/auto-instrumentations/configs/cohere.ts
9895
10067
  var cohereConfigs = [
@@ -10156,24 +10328,28 @@ var cohereConfigs = [
10156
10328
  ];
10157
10329
 
10158
10330
  // src/instrumentation/plugins/cursor-sdk-channels.ts
10159
- var cursorSDKChannels = defineChannels("@cursor/sdk", {
10160
- create: channel({
10161
- channelName: "Agent.create",
10162
- kind: "async"
10163
- }),
10164
- resume: channel({
10165
- channelName: "Agent.resume",
10166
- kind: "async"
10167
- }),
10168
- prompt: channel({
10169
- channelName: "Agent.prompt",
10170
- kind: "async"
10171
- }),
10172
- send: channel({
10173
- channelName: "agent.send",
10174
- kind: "async"
10175
- })
10176
- });
10331
+ var cursorSDKChannels = defineChannels(
10332
+ "@cursor/sdk",
10333
+ {
10334
+ create: channel({
10335
+ channelName: "Agent.create",
10336
+ kind: "async"
10337
+ }),
10338
+ resume: channel({
10339
+ channelName: "Agent.resume",
10340
+ kind: "async"
10341
+ }),
10342
+ prompt: channel({
10343
+ channelName: "Agent.prompt",
10344
+ kind: "async"
10345
+ }),
10346
+ send: channel({
10347
+ channelName: "agent.send",
10348
+ kind: "async"
10349
+ })
10350
+ },
10351
+ { instrumentationName: INSTRUMENTATION_NAMES.CURSOR_SDK }
10352
+ );
10177
10353
 
10178
10354
  // src/auto-instrumentations/configs/cursor-sdk.ts
10179
10355
  var cursorSDKVersionRange = ">=1.0.7 <2.0.0";
@@ -10221,12 +10397,16 @@ var cursorSDKConfigs = cursorSDKEntrypoints.flatMap((filePath) => [
10221
10397
  ]);
10222
10398
 
10223
10399
  // src/instrumentation/plugins/flue-channels.ts
10224
- var flueChannels = defineChannels("@flue/runtime", {
10225
- createContext: channel({
10226
- channelName: "createFlueContext",
10227
- kind: "sync-stream"
10228
- })
10229
- });
10400
+ var flueChannels = defineChannels(
10401
+ "@flue/runtime",
10402
+ {
10403
+ createContext: channel({
10404
+ channelName: "createFlueContext",
10405
+ kind: "sync-stream"
10406
+ })
10407
+ },
10408
+ { instrumentationName: INSTRUMENTATION_NAMES.FLUE }
10409
+ );
10230
10410
 
10231
10411
  // src/auto-instrumentations/configs/flue.ts
10232
10412
  var flueVersionRange = ">=0.8.0 <1.0.0";
@@ -10246,38 +10426,46 @@ var flueConfigs = [
10246
10426
  ];
10247
10427
 
10248
10428
  // src/instrumentation/plugins/genkit-channels.ts
10249
- var genkitChannels = defineChannels("@genkit-ai/ai", {
10250
- generate: channel({
10251
- channelName: "generate",
10252
- kind: "async"
10253
- }),
10254
- generateStream: channel({
10255
- channelName: "generateStream",
10256
- kind: "sync-stream"
10257
- }),
10258
- embed: channel({
10259
- channelName: "embed",
10260
- kind: "async"
10261
- }),
10262
- embedMany: channel({
10263
- channelName: "embedMany",
10264
- kind: "async"
10265
- }),
10266
- actionRun: channel({
10267
- channelName: "action.run",
10268
- kind: "async"
10269
- }),
10270
- actionStream: channel({
10271
- channelName: "action.stream",
10272
- kind: "sync-stream"
10273
- })
10274
- });
10275
- var genkitCoreChannels = defineChannels("@genkit-ai/core", {
10276
- actionSpan: channel({
10277
- channelName: "action.span",
10278
- kind: "async"
10279
- })
10280
- });
10429
+ var genkitChannels = defineChannels(
10430
+ "@genkit-ai/ai",
10431
+ {
10432
+ generate: channel({
10433
+ channelName: "generate",
10434
+ kind: "async"
10435
+ }),
10436
+ generateStream: channel({
10437
+ channelName: "generateStream",
10438
+ kind: "sync-stream"
10439
+ }),
10440
+ embed: channel({
10441
+ channelName: "embed",
10442
+ kind: "async"
10443
+ }),
10444
+ embedMany: channel({
10445
+ channelName: "embedMany",
10446
+ kind: "async"
10447
+ }),
10448
+ actionRun: channel({
10449
+ channelName: "action.run",
10450
+ kind: "async"
10451
+ }),
10452
+ actionStream: channel({
10453
+ channelName: "action.stream",
10454
+ kind: "sync-stream"
10455
+ })
10456
+ },
10457
+ { instrumentationName: INSTRUMENTATION_NAMES.GENKIT }
10458
+ );
10459
+ var genkitCoreChannels = defineChannels(
10460
+ "@genkit-ai/core",
10461
+ {
10462
+ actionSpan: channel({
10463
+ channelName: "action.span",
10464
+ kind: "async"
10465
+ })
10466
+ },
10467
+ { instrumentationName: INSTRUMENTATION_NAMES.GENKIT }
10468
+ );
10281
10469
 
10282
10470
  // src/auto-instrumentations/configs/genkit.ts
10283
10471
  var genkitVersionRange = ">=1.0.0 <2.0.0";
@@ -10439,20 +10627,24 @@ var genkitConfigs = [
10439
10627
  ];
10440
10628
 
10441
10629
  // src/instrumentation/plugins/github-copilot-channels.ts
10442
- var gitHubCopilotChannels = defineChannels("@github/copilot-sdk", {
10443
- createSession: channel({
10444
- channelName: "client.createSession",
10445
- kind: "async"
10446
- }),
10447
- resumeSession: channel({
10448
- channelName: "client.resumeSession",
10449
- kind: "async"
10450
- }),
10451
- sendAndWait: channel({
10452
- channelName: "session.sendAndWait",
10453
- kind: "async"
10454
- })
10455
- });
10630
+ var gitHubCopilotChannels = defineChannels(
10631
+ "@github/copilot-sdk",
10632
+ {
10633
+ createSession: channel({
10634
+ channelName: "client.createSession",
10635
+ kind: "async"
10636
+ }),
10637
+ resumeSession: channel({
10638
+ channelName: "client.resumeSession",
10639
+ kind: "async"
10640
+ }),
10641
+ sendAndWait: channel({
10642
+ channelName: "session.sendAndWait",
10643
+ kind: "async"
10644
+ })
10645
+ },
10646
+ { instrumentationName: INSTRUMENTATION_NAMES.GITHUB_COPILOT }
10647
+ );
10456
10648
 
10457
10649
  // src/auto-instrumentations/configs/github-copilot.ts
10458
10650
  var gitHubCopilotConfigs = [
@@ -10543,20 +10735,24 @@ var gitHubCopilotConfigs = [
10543
10735
  ];
10544
10736
 
10545
10737
  // src/instrumentation/plugins/google-adk-channels.ts
10546
- var googleADKChannels = defineChannels("@google/adk", {
10547
- runnerRunAsync: channel({
10548
- channelName: "runner.runAsync",
10549
- kind: "sync-stream"
10550
- }),
10551
- agentRunAsync: channel({
10552
- channelName: "agent.runAsync",
10553
- kind: "sync-stream"
10554
- }),
10555
- toolRunAsync: channel({
10556
- channelName: "tool.runAsync",
10557
- kind: "async"
10558
- })
10559
- });
10738
+ var googleADKChannels = defineChannels(
10739
+ "@google/adk",
10740
+ {
10741
+ runnerRunAsync: channel({
10742
+ channelName: "runner.runAsync",
10743
+ kind: "sync-stream"
10744
+ }),
10745
+ agentRunAsync: channel({
10746
+ channelName: "agent.runAsync",
10747
+ kind: "sync-stream"
10748
+ }),
10749
+ toolRunAsync: channel({
10750
+ channelName: "tool.runAsync",
10751
+ kind: "async"
10752
+ })
10753
+ },
10754
+ { instrumentationName: INSTRUMENTATION_NAMES.GOOGLE_ADK }
10755
+ );
10560
10756
 
10561
10757
  // src/auto-instrumentations/configs/google-adk.ts
10562
10758
  var googleADKVersionRange = ">=0.1.0";
@@ -10787,24 +10983,28 @@ var googleADKConfigs = [
10787
10983
  ];
10788
10984
 
10789
10985
  // src/instrumentation/plugins/google-genai-channels.ts
10790
- var googleGenAIChannels = defineChannels("@google/genai", {
10791
- generateContent: channel({
10792
- channelName: "models.generateContent",
10793
- kind: "async"
10794
- }),
10795
- generateContentStream: channel({
10796
- channelName: "models.generateContentStream",
10797
- kind: "async"
10798
- }),
10799
- embedContent: channel({
10800
- channelName: "models.embedContent",
10801
- kind: "async"
10802
- }),
10803
- interactionsCreate: channel({
10804
- channelName: "interactions.create",
10805
- kind: "async"
10806
- })
10807
- });
10986
+ var googleGenAIChannels = defineChannels(
10987
+ "@google/genai",
10988
+ {
10989
+ generateContent: channel({
10990
+ channelName: "models.generateContent",
10991
+ kind: "async"
10992
+ }),
10993
+ generateContentStream: channel({
10994
+ channelName: "models.generateContentStream",
10995
+ kind: "async"
10996
+ }),
10997
+ embedContent: channel({
10998
+ channelName: "models.embedContent",
10999
+ kind: "async"
11000
+ }),
11001
+ interactionsCreate: channel({
11002
+ channelName: "interactions.create",
11003
+ kind: "async"
11004
+ })
11005
+ },
11006
+ { instrumentationName: INSTRUMENTATION_NAMES.GOOGLE_GENAI }
11007
+ );
10808
11008
 
10809
11009
  // src/auto-instrumentations/configs/google-genai.ts
10810
11010
  var googleGenAIConfigs = [
@@ -10884,18 +11084,20 @@ var googleGenAIConfigs = [
10884
11084
  ];
10885
11085
 
10886
11086
  // src/instrumentation/plugins/groq-channels.ts
10887
- var groqChannels = defineChannels("groq-sdk", {
10888
- chatCompletionsCreate: channel({
10889
- channelName: "chat.completions.create",
10890
- kind: "async"
10891
- }),
10892
- embeddingsCreate: channel(
10893
- {
11087
+ var groqChannels = defineChannels(
11088
+ "groq-sdk",
11089
+ {
11090
+ chatCompletionsCreate: channel({
11091
+ channelName: "chat.completions.create",
11092
+ kind: "async"
11093
+ }),
11094
+ embeddingsCreate: channel({
10894
11095
  channelName: "embeddings.create",
10895
11096
  kind: "async"
10896
- }
10897
- )
10898
- });
11097
+ })
11098
+ },
11099
+ { instrumentationName: INSTRUMENTATION_NAMES.GROQ }
11100
+ );
10899
11101
 
10900
11102
  // src/auto-instrumentations/configs/groq.ts
10901
11103
  var groqConfigs = [
@@ -10928,28 +11130,32 @@ var groqConfigs = [
10928
11130
  ];
10929
11131
 
10930
11132
  // src/instrumentation/plugins/huggingface-channels.ts
10931
- var huggingFaceChannels = defineChannels("@huggingface/inference", {
10932
- chatCompletion: channel({
10933
- channelName: "chatCompletion",
10934
- kind: "async"
10935
- }),
10936
- chatCompletionStream: channel({
10937
- channelName: "chatCompletionStream",
10938
- kind: "sync-stream"
10939
- }),
10940
- textGeneration: channel({
10941
- channelName: "textGeneration",
10942
- kind: "async"
10943
- }),
10944
- textGenerationStream: channel({
10945
- channelName: "textGenerationStream",
10946
- kind: "sync-stream"
10947
- }),
10948
- featureExtraction: channel({
10949
- channelName: "featureExtraction",
10950
- kind: "async"
10951
- })
10952
- });
11133
+ var huggingFaceChannels = defineChannels(
11134
+ "@huggingface/inference",
11135
+ {
11136
+ chatCompletion: channel({
11137
+ channelName: "chatCompletion",
11138
+ kind: "async"
11139
+ }),
11140
+ chatCompletionStream: channel({
11141
+ channelName: "chatCompletionStream",
11142
+ kind: "sync-stream"
11143
+ }),
11144
+ textGeneration: channel({
11145
+ channelName: "textGeneration",
11146
+ kind: "async"
11147
+ }),
11148
+ textGenerationStream: channel({
11149
+ channelName: "textGenerationStream",
11150
+ kind: "sync-stream"
11151
+ }),
11152
+ featureExtraction: channel({
11153
+ channelName: "featureExtraction",
11154
+ kind: "async"
11155
+ })
11156
+ },
11157
+ { instrumentationName: INSTRUMENTATION_NAMES.HUGGINGFACE }
11158
+ );
10953
11159
 
10954
11160
  // src/auto-instrumentations/configs/huggingface.ts
10955
11161
  var huggingFaceConfigs = [
@@ -11195,17 +11401,98 @@ var huggingFaceConfigs = [
11195
11401
  }
11196
11402
  ];
11197
11403
 
11404
+ // src/instrumentation/plugins/huggingface-transformers-channels.ts
11405
+ var huggingFaceTransformersChannels = defineChannels(
11406
+ "@huggingface/transformers",
11407
+ {
11408
+ pipeline: channel({
11409
+ channelName: "pipeline",
11410
+ kind: "async"
11411
+ }),
11412
+ pipelineCall: channel({
11413
+ channelName: "pipeline.call",
11414
+ kind: "async"
11415
+ })
11416
+ },
11417
+ { instrumentationName: INSTRUMENTATION_NAMES.HUGGINGFACE }
11418
+ );
11419
+
11420
+ // src/auto-instrumentations/configs/huggingface-transformers.ts
11421
+ var moduleFiles = [
11422
+ {
11423
+ filePath: "dist/transformers.mjs",
11424
+ versionRange: ">=3.0.0 <3.4.0"
11425
+ },
11426
+ {
11427
+ filePath: "dist/transformers.cjs",
11428
+ versionRange: ">=3.0.0 <3.4.0"
11429
+ },
11430
+ {
11431
+ filePath: "dist/transformers.js",
11432
+ versionRange: ">=3.0.0 <3.4.0"
11433
+ },
11434
+ {
11435
+ filePath: "dist/transformers.node.mjs",
11436
+ versionRange: ">=3.4.0 <5.0.0"
11437
+ },
11438
+ {
11439
+ filePath: "dist/transformers.node.cjs",
11440
+ versionRange: ">=3.4.0 <5.0.0"
11441
+ },
11442
+ {
11443
+ filePath: "dist/transformers.web.js",
11444
+ versionRange: ">=3.4.0 <5.0.0"
11445
+ }
11446
+ ];
11447
+ var pipelineClasses = [
11448
+ "TextGenerationPipeline",
11449
+ "Text2TextGenerationPipeline",
11450
+ "FeatureExtractionPipeline",
11451
+ "QuestionAnsweringPipeline"
11452
+ ];
11453
+ var huggingFaceTransformersConfigs = moduleFiles.flatMap(({ filePath, versionRange: versionRange2 }) => [
11454
+ {
11455
+ channelName: huggingFaceTransformersChannels.pipeline.channelName,
11456
+ module: {
11457
+ name: "@huggingface/transformers",
11458
+ versionRange: versionRange2,
11459
+ filePath
11460
+ },
11461
+ functionQuery: {
11462
+ functionName: "pipeline",
11463
+ kind: "Async"
11464
+ }
11465
+ },
11466
+ ...pipelineClasses.map((className) => ({
11467
+ channelName: huggingFaceTransformersChannels.pipelineCall.channelName,
11468
+ module: {
11469
+ name: "@huggingface/transformers",
11470
+ versionRange: versionRange2,
11471
+ filePath
11472
+ },
11473
+ functionQuery: {
11474
+ className,
11475
+ methodName: "_call",
11476
+ kind: "Async"
11477
+ }
11478
+ }))
11479
+ ]);
11480
+
11198
11481
  // src/instrumentation/plugins/langchain-channels.ts
11199
- var langChainChannels = defineChannels("@langchain/core", {
11200
- configure: channel({
11201
- channelName: "CallbackManager.configure",
11202
- kind: "sync-stream"
11203
- }),
11204
- configureSync: channel({
11205
- channelName: "CallbackManager._configureSync",
11206
- kind: "sync-stream"
11207
- })
11208
- });
11482
+ var langChainChannels = defineChannels(
11483
+ "@langchain/core",
11484
+ {
11485
+ configure: channel({
11486
+ channelName: "CallbackManager.configure",
11487
+ kind: "sync-stream"
11488
+ }),
11489
+ configureSync: channel({
11490
+ channelName: "CallbackManager._configureSync",
11491
+ kind: "sync-stream"
11492
+ })
11493
+ },
11494
+ { instrumentationName: INSTRUMENTATION_NAMES.LANGCHAIN }
11495
+ );
11209
11496
 
11210
11497
  // src/auto-instrumentations/configs/langchain.ts
11211
11498
  var langChainCoreVersionRange = ">=0.3.42";
@@ -11240,20 +11527,24 @@ var langchainConfigs = [
11240
11527
  ];
11241
11528
 
11242
11529
  // src/instrumentation/plugins/langsmith-channels.ts
11243
- var langSmithChannels = defineChannels("langsmith", {
11244
- createRun: channel({
11245
- channelName: "Client.createRun",
11246
- kind: "async"
11247
- }),
11248
- updateRun: channel({
11249
- channelName: "Client.updateRun",
11250
- kind: "async"
11251
- }),
11252
- batchIngestRuns: channel({
11253
- channelName: "Client.batchIngestRuns",
11254
- kind: "async"
11255
- })
11256
- });
11530
+ var langSmithChannels = defineChannels(
11531
+ "langsmith",
11532
+ {
11533
+ createRun: channel({
11534
+ channelName: "Client.createRun",
11535
+ kind: "async"
11536
+ }),
11537
+ updateRun: channel({
11538
+ channelName: "Client.updateRun",
11539
+ kind: "async"
11540
+ }),
11541
+ batchIngestRuns: channel({
11542
+ channelName: "Client.batchIngestRuns",
11543
+ kind: "async"
11544
+ })
11545
+ },
11546
+ { instrumentationName: INSTRUMENTATION_NAMES.LANGSMITH }
11547
+ );
11257
11548
 
11258
11549
  // src/auto-instrumentations/configs/langsmith.ts
11259
11550
  var versionRange = ">=0.3.30 <1.0.0";
@@ -11290,52 +11581,56 @@ var langSmithConfigs = [
11290
11581
  ];
11291
11582
 
11292
11583
  // src/instrumentation/plugins/mistral-channels.ts
11293
- var mistralChannels = defineChannels("@mistralai/mistralai", {
11294
- chatComplete: channel({
11295
- channelName: "chat.complete",
11296
- kind: "async"
11297
- }),
11298
- chatStream: channel({
11299
- channelName: "chat.stream",
11300
- kind: "async"
11301
- }),
11302
- embeddingsCreate: channel({
11303
- channelName: "embeddings.create",
11304
- kind: "async"
11305
- }),
11306
- classifiersModerate: channel({
11307
- channelName: "classifiers.moderate",
11308
- kind: "async"
11309
- }),
11310
- classifiersModerateChat: channel({
11311
- channelName: "classifiers.moderateChat",
11312
- kind: "async"
11313
- }),
11314
- classifiersClassify: channel({
11315
- channelName: "classifiers.classify",
11316
- kind: "async"
11317
- }),
11318
- classifiersClassifyChat: channel({
11319
- channelName: "classifiers.classifyChat",
11320
- kind: "async"
11321
- }),
11322
- fimComplete: channel({
11323
- channelName: "fim.complete",
11324
- kind: "async"
11325
- }),
11326
- fimStream: channel({
11327
- channelName: "fim.stream",
11328
- kind: "async"
11329
- }),
11330
- agentsComplete: channel({
11331
- channelName: "agents.complete",
11332
- kind: "async"
11333
- }),
11334
- agentsStream: channel({
11335
- channelName: "agents.stream",
11336
- kind: "async"
11337
- })
11338
- });
11584
+ var mistralChannels = defineChannels(
11585
+ "@mistralai/mistralai",
11586
+ {
11587
+ chatComplete: channel({
11588
+ channelName: "chat.complete",
11589
+ kind: "async"
11590
+ }),
11591
+ chatStream: channel({
11592
+ channelName: "chat.stream",
11593
+ kind: "async"
11594
+ }),
11595
+ embeddingsCreate: channel({
11596
+ channelName: "embeddings.create",
11597
+ kind: "async"
11598
+ }),
11599
+ classifiersModerate: channel({
11600
+ channelName: "classifiers.moderate",
11601
+ kind: "async"
11602
+ }),
11603
+ classifiersModerateChat: channel({
11604
+ channelName: "classifiers.moderateChat",
11605
+ kind: "async"
11606
+ }),
11607
+ classifiersClassify: channel({
11608
+ channelName: "classifiers.classify",
11609
+ kind: "async"
11610
+ }),
11611
+ classifiersClassifyChat: channel({
11612
+ channelName: "classifiers.classifyChat",
11613
+ kind: "async"
11614
+ }),
11615
+ fimComplete: channel({
11616
+ channelName: "fim.complete",
11617
+ kind: "async"
11618
+ }),
11619
+ fimStream: channel({
11620
+ channelName: "fim.stream",
11621
+ kind: "async"
11622
+ }),
11623
+ agentsComplete: channel({
11624
+ channelName: "agents.complete",
11625
+ kind: "async"
11626
+ }),
11627
+ agentsStream: channel({
11628
+ channelName: "agents.stream",
11629
+ kind: "async"
11630
+ })
11631
+ },
11632
+ { instrumentationName: INSTRUMENTATION_NAMES.MISTRAL }
11633
+ );
11339
11634
 
11340
11635
  // src/auto-instrumentations/configs/mistral.ts
11341
11636
  var mistralConfigs = [
@@ -11628,24 +11923,28 @@ var mistralConfigs = [
11628
11923
  ];
11629
11924
 
11630
11925
  // src/instrumentation/plugins/openai-agents-channels.ts
11631
- var openAIAgentsCoreChannels = defineChannels("@openai/agents-core", {
11632
- onTraceStart: channel({
11633
- channelName: "tracing.processor.onTraceStart",
11634
- kind: "async"
11635
- }),
11636
- onTraceEnd: channel({
11637
- channelName: "tracing.processor.onTraceEnd",
11638
- kind: "async"
11639
- }),
11640
- onSpanStart: channel({
11641
- channelName: "tracing.processor.onSpanStart",
11642
- kind: "async"
11643
- }),
11644
- onSpanEnd: channel({
11645
- channelName: "tracing.processor.onSpanEnd",
11646
- kind: "async"
11647
- })
11648
- });
11926
+ var openAIAgentsCoreChannels = defineChannels(
11927
+ "@openai/agents-core",
11928
+ {
11929
+ onTraceStart: channel({
11930
+ channelName: "tracing.processor.onTraceStart",
11931
+ kind: "async"
11932
+ }),
11933
+ onTraceEnd: channel({
11934
+ channelName: "tracing.processor.onTraceEnd",
11935
+ kind: "async"
11936
+ }),
11937
+ onSpanStart: channel({
11938
+ channelName: "tracing.processor.onSpanStart",
11939
+ kind: "async"
11940
+ }),
11941
+ onSpanEnd: channel({
11942
+ channelName: "tracing.processor.onSpanEnd",
11943
+ kind: "async"
11944
+ })
11945
+ },
11946
+ { instrumentationName: INSTRUMENTATION_NAMES.OPENAI_AGENTS }
11947
+ );
11649
11948
 
11650
11949
  // src/auto-instrumentations/configs/openai-agents.ts
11651
11950
  var lifecycleMethods = [
@@ -11673,44 +11972,48 @@ var openAIAgentsCoreConfigs = lifecycleMethods.flatMap(
11673
11972
  );
11674
11973
 
11675
11974
  // src/instrumentation/plugins/openai-channels.ts
11676
- var openAIChannels = defineChannels("openai", {
11677
- chatCompletionsCreate: channel({
11678
- channelName: "chat.completions.create",
11679
- kind: "async"
11680
- }),
11681
- embeddingsCreate: channel({
11682
- channelName: "embeddings.create",
11683
- kind: "async"
11684
- }),
11685
- betaChatCompletionsParse: channel({
11686
- channelName: "beta.chat.completions.parse",
11687
- kind: "async"
11688
- }),
11689
- betaChatCompletionsStream: channel({
11690
- channelName: "beta.chat.completions.stream",
11691
- kind: "sync-stream"
11692
- }),
11693
- moderationsCreate: channel({
11694
- channelName: "moderations.create",
11695
- kind: "async"
11696
- }),
11697
- responsesCreate: channel({
11698
- channelName: "responses.create",
11699
- kind: "async"
11700
- }),
11701
- responsesStream: channel({
11702
- channelName: "responses.stream",
11703
- kind: "sync-stream"
11704
- }),
11705
- responsesParse: channel({
11706
- channelName: "responses.parse",
11707
- kind: "async"
11708
- }),
11709
- responsesCompact: channel({
11710
- channelName: "responses.compact",
11711
- kind: "async"
11712
- })
11713
- });
11975
+ var openAIChannels = defineChannels(
11976
+ "openai",
11977
+ {
11978
+ chatCompletionsCreate: channel({
11979
+ channelName: "chat.completions.create",
11980
+ kind: "async"
11981
+ }),
11982
+ embeddingsCreate: channel({
11983
+ channelName: "embeddings.create",
11984
+ kind: "async"
11985
+ }),
11986
+ betaChatCompletionsParse: channel({
11987
+ channelName: "beta.chat.completions.parse",
11988
+ kind: "async"
11989
+ }),
11990
+ betaChatCompletionsStream: channel({
11991
+ channelName: "beta.chat.completions.stream",
11992
+ kind: "sync-stream"
11993
+ }),
11994
+ moderationsCreate: channel({
11995
+ channelName: "moderations.create",
11996
+ kind: "async"
11997
+ }),
11998
+ responsesCreate: channel({
11999
+ channelName: "responses.create",
12000
+ kind: "async"
12001
+ }),
12002
+ responsesStream: channel({
12003
+ channelName: "responses.stream",
12004
+ kind: "sync-stream"
12005
+ }),
12006
+ responsesParse: channel({
12007
+ channelName: "responses.parse",
12008
+ kind: "async"
12009
+ }),
12010
+ responsesCompact: channel({
12011
+ channelName: "responses.compact",
12012
+ kind: "async"
12013
+ })
12014
+ },
12015
+ { instrumentationName: INSTRUMENTATION_NAMES.OPENAI }
12016
+ );
11714
12017
 
11715
12018
  // src/auto-instrumentations/configs/openai.ts
11716
12019
  var openaiConfigs = [
@@ -11892,16 +12195,20 @@ var openaiConfigs = [
11892
12195
  ];
11893
12196
 
11894
12197
  // src/instrumentation/plugins/openai-codex-channels.ts
11895
- var openAICodexChannels = defineChannels("@openai/codex-sdk", {
11896
- run: channel({
11897
- channelName: "Thread.run",
11898
- kind: "async"
11899
- }),
11900
- runStreamed: channel({
11901
- channelName: "Thread.runStreamed",
11902
- kind: "async"
11903
- })
11904
- });
12198
+ var openAICodexChannels = defineChannels(
12199
+ "@openai/codex-sdk",
12200
+ {
12201
+ run: channel({
12202
+ channelName: "Thread.run",
12203
+ kind: "async"
12204
+ }),
12205
+ runStreamed: channel({
12206
+ channelName: "Thread.runStreamed",
12207
+ kind: "async"
12208
+ })
12209
+ },
12210
+ { instrumentationName: INSTRUMENTATION_NAMES.OPENAI_CODEX }
12211
+ );
11905
12212
 
11906
12213
  // src/auto-instrumentations/configs/openai-codex.ts
11907
12214
  var openAICodexVersionRange = ">=0.128.0 <1.0.0";
@@ -11935,38 +12242,40 @@ var openAICodexConfigs = [
11935
12242
  ];
11936
12243
 
11937
12244
  // src/instrumentation/plugins/openrouter-channels.ts
11938
- var openRouterChannels = defineChannels("@openrouter/sdk", {
11939
- chatSend: channel({
11940
- channelName: "chat.send",
11941
- kind: "async"
11942
- }),
11943
- embeddingsGenerate: channel({
11944
- channelName: "embeddings.generate",
11945
- kind: "async"
11946
- }),
11947
- rerankRerank: channel(
11948
- {
12245
+ var openRouterChannels = defineChannels(
12246
+ "@openrouter/sdk",
12247
+ {
12248
+ chatSend: channel({
12249
+ channelName: "chat.send",
12250
+ kind: "async"
12251
+ }),
12252
+ embeddingsGenerate: channel({
12253
+ channelName: "embeddings.generate",
12254
+ kind: "async"
12255
+ }),
12256
+ rerankRerank: channel({
11949
12257
  channelName: "rerank.rerank",
11950
12258
  kind: "async"
11951
- }
11952
- ),
11953
- betaResponsesSend: channel({
11954
- channelName: "beta.responses.send",
11955
- kind: "async"
11956
- }),
11957
- callModel: channel({
11958
- channelName: "callModel",
11959
- kind: "sync-stream"
11960
- }),
11961
- callModelTurn: channel({
11962
- channelName: "callModel.turn",
11963
- kind: "async"
11964
- }),
11965
- toolExecute: channel({
11966
- channelName: "tool.execute",
11967
- kind: "async"
11968
- })
11969
- });
12259
+ }),
12260
+ betaResponsesSend: channel({
12261
+ channelName: "beta.responses.send",
12262
+ kind: "async"
12263
+ }),
12264
+ callModel: channel({
12265
+ channelName: "callModel",
12266
+ kind: "sync-stream"
12267
+ }),
12268
+ callModelTurn: channel({
12269
+ channelName: "callModel.turn",
12270
+ kind: "async"
12271
+ }),
12272
+ toolExecute: channel({
12273
+ channelName: "tool.execute",
12274
+ kind: "async"
12275
+ })
12276
+ },
12277
+ { instrumentationName: INSTRUMENTATION_NAMES.OPENROUTER }
12278
+ );
11970
12279
 
11971
12280
  // src/auto-instrumentations/configs/openrouter.ts
11972
12281
  var openRouterConfigs = [
@@ -11974,7 +12283,7 @@ var openRouterConfigs = [
11974
12283
  channelName: openRouterChannels.chatSend.channelName,
11975
12284
  module: {
11976
12285
  name: "@openrouter/sdk",
11977
- versionRange: ">=0.9.11 <1.0.0",
12286
+ versionRange: ">=0.9.11 <2.0.0",
11978
12287
  filePath: "esm/sdk/chat.js"
11979
12288
  },
11980
12289
  functionQuery: {
@@ -11987,7 +12296,7 @@ var openRouterConfigs = [
11987
12296
  channelName: openRouterChannels.embeddingsGenerate.channelName,
11988
12297
  module: {
11989
12298
  name: "@openrouter/sdk",
11990
- versionRange: ">=0.9.11 <1.0.0",
12299
+ versionRange: ">=0.9.11 <2.0.0",
11991
12300
  filePath: "esm/sdk/embeddings.js"
11992
12301
  },
11993
12302
  functionQuery: {
@@ -12000,7 +12309,7 @@ var openRouterConfigs = [
12000
12309
  channelName: openRouterChannels.rerankRerank.channelName,
12001
12310
  module: {
12002
12311
  name: "@openrouter/sdk",
12003
- versionRange: ">=0.12.0 <1.0.0",
12312
+ versionRange: ">=0.12.0 <2.0.0",
12004
12313
  filePath: "esm/sdk/rerank.js"
12005
12314
  },
12006
12315
  functionQuery: {
@@ -12013,7 +12322,7 @@ var openRouterConfigs = [
12013
12322
  channelName: openRouterChannels.betaResponsesSend.channelName,
12014
12323
  module: {
12015
12324
  name: "@openrouter/sdk",
12016
- versionRange: ">=0.9.11 <1.0.0",
12325
+ versionRange: ">=0.9.11 <2.0.0",
12017
12326
  filePath: "esm/sdk/responses.js"
12018
12327
  },
12019
12328
  functionQuery: {
@@ -12026,7 +12335,7 @@ var openRouterConfigs = [
12026
12335
  channelName: openRouterChannels.callModel.channelName,
12027
12336
  module: {
12028
12337
  name: "@openrouter/sdk",
12029
- versionRange: ">=0.9.11 <1.0.0",
12338
+ versionRange: ">=0.9.11 <2.0.0",
12030
12339
  filePath: "esm/sdk/sdk.js"
12031
12340
  },
12032
12341
  functionQuery: {
@@ -12038,20 +12347,24 @@ var openRouterConfigs = [
12038
12347
  ];
12039
12348
 
12040
12349
  // src/instrumentation/plugins/openrouter-agent-channels.ts
12041
- var openRouterAgentChannels = defineChannels("@openrouter/agent", {
12042
- callModel: channel({
12043
- channelName: "callModel",
12044
- kind: "sync-stream"
12045
- }),
12046
- callModelTurn: channel({
12047
- channelName: "callModel.turn",
12048
- kind: "async"
12049
- }),
12050
- toolExecute: channel({
12051
- channelName: "tool.execute",
12052
- kind: "async"
12053
- })
12054
- });
12350
+ var openRouterAgentChannels = defineChannels(
12351
+ "@openrouter/agent",
12352
+ {
12353
+ callModel: channel({
12354
+ channelName: "callModel",
12355
+ kind: "sync-stream"
12356
+ }),
12357
+ callModelTurn: channel({
12358
+ channelName: "callModel.turn",
12359
+ kind: "async"
12360
+ }),
12361
+ toolExecute: channel({
12362
+ channelName: "tool.execute",
12363
+ kind: "async"
12364
+ })
12365
+ },
12366
+ { instrumentationName: INSTRUMENTATION_NAMES.OPENROUTER_AGENT }
12367
+ );
12055
12368
 
12056
12369
  // src/auto-instrumentations/configs/openrouter-agent.ts
12057
12370
  var openRouterAgentConfigs = [
@@ -12077,11 +12390,12 @@ var piCodingAgentChannels = defineChannels(
12077
12390
  channelName: "AgentSession.prompt",
12078
12391
  kind: "async"
12079
12392
  })
12080
- }
12393
+ },
12394
+ { instrumentationName: INSTRUMENTATION_NAMES.PI_CODING_AGENT }
12081
12395
  );
12082
12396
 
12083
12397
  // src/auto-instrumentations/configs/pi-coding-agent.ts
12084
- var piCodingAgentVersionRange = ">=0.79.0 <0.80.0";
12398
+ var piCodingAgentVersionRange = ">=0.79.0 <0.82.0";
12085
12399
  var piCodingAgentConfigs = [
12086
12400
  {
12087
12401
  channelName: piCodingAgentChannels.prompt.channelName,
@@ -12099,20 +12413,24 @@ var piCodingAgentConfigs = [
12099
12413
  ];
12100
12414
 
12101
12415
  // src/instrumentation/plugins/strands-agent-sdk-channels.ts
12102
- var strandsAgentSDKChannels = defineChannels("@strands-agents/sdk", {
12103
- agentStream: channel({
12104
- channelName: "Agent.stream",
12105
- kind: "sync-stream"
12106
- }),
12107
- graphStream: channel({
12108
- channelName: "Graph.stream",
12109
- kind: "sync-stream"
12110
- }),
12111
- swarmStream: channel({
12112
- channelName: "Swarm.stream",
12113
- kind: "sync-stream"
12114
- })
12115
- });
12416
+ var strandsAgentSDKChannels = defineChannels(
12417
+ "@strands-agents/sdk",
12418
+ {
12419
+ agentStream: channel({
12420
+ channelName: "Agent.stream",
12421
+ kind: "sync-stream"
12422
+ }),
12423
+ graphStream: channel({
12424
+ channelName: "Graph.stream",
12425
+ kind: "sync-stream"
12426
+ }),
12427
+ swarmStream: channel({
12428
+ channelName: "Swarm.stream",
12429
+ kind: "sync-stream"
12430
+ })
12431
+ },
12432
+ { instrumentationName: INSTRUMENTATION_NAMES.STRANDS_AGENT_SDK }
12433
+ );
12116
12434
 
12117
12435
  // src/auto-instrumentations/configs/strands-agent-sdk.ts
12118
12436
  var strandsAgentSDKVersionRange = ">=1.0.0 <2.0.0";
@@ -12178,6 +12496,14 @@ var defaultInstrumentationConfigGroups = [
12178
12496
  integrations: ["claudeAgentSDK"],
12179
12497
  configs: claudeAgentSDKConfigs
12180
12498
  },
12499
+ {
12500
+ integrations: ["cloudflareAIChat"],
12501
+ configs: cloudflareAIChatConfigs
12502
+ },
12503
+ {
12504
+ integrations: ["cloudflareAgents"],
12505
+ configs: cloudflareAgentsConfigs
12506
+ },
12181
12507
  { integrations: ["cursor", "cursorSDK"], configs: cursorSDKConfigs },
12182
12508
  {
12183
12509
  integrations: ["openAIAgents"],
@@ -12187,7 +12513,10 @@ var defaultInstrumentationConfigGroups = [
12187
12513
  integrations: ["google", "googleGenAI"],
12188
12514
  configs: googleGenAIConfigs
12189
12515
  },
12190
- { integrations: ["huggingface"], configs: huggingFaceConfigs },
12516
+ {
12517
+ integrations: ["huggingface"],
12518
+ configs: [...huggingFaceConfigs, ...huggingFaceTransformersConfigs]
12519
+ },
12191
12520
  {
12192
12521
  integrations: ["langchain", "langgraph"],
12193
12522
  configs: langchainConfigs
@@ -12274,7 +12603,7 @@ var ModulePatch = class {
12274
12603
  /**
12275
12604
  * Patches the Node.js module class method that is responsible for compiling code.
12276
12605
  * If a module is found that has an instrumentator, it will transform the code before compiling it
12277
- * with tracing channel methods.
12606
+ * with global hook calls.
12278
12607
  */
12279
12608
  patch() {
12280
12609
  const self = this;
@@ -12332,103 +12661,11 @@ function resolveModulePrototype() {
12332
12661
  return NodeModule.prototype;
12333
12662
  }
12334
12663
 
12335
- // src/auto-instrumentations/patch-tracing-channel.ts
12336
- function patchTracingChannel(tracingChannelFn) {
12337
- const dummyChannel = tracingChannelFn("__braintrust_probe__");
12338
- const TracingChannel = dummyChannel?.constructor;
12339
- if (!TracingChannel?.prototype) {
12340
- return;
12341
- }
12342
- if (!Object.getOwnPropertyDescriptor(TracingChannel.prototype, "hasSubscribers")) {
12343
- Object.defineProperty(TracingChannel.prototype, "hasSubscribers", {
12344
- configurable: true,
12345
- enumerable: false,
12346
- get() {
12347
- return Boolean(
12348
- this.start?.hasSubscribers || this.end?.hasSubscribers || this.asyncStart?.hasSubscribers || this.asyncEnd?.hasSubscribers || this.error?.hasSubscribers
12349
- );
12350
- }
12351
- });
12352
- }
12353
- if (TracingChannel.prototype.tracePromise) {
12354
- TracingChannel.prototype.tracePromise = function(fn, context = {}, thisArg, ...args) {
12355
- const start = this.start;
12356
- const end = this.end;
12357
- const asyncStart = this.asyncStart;
12358
- const asyncEnd = this.asyncEnd;
12359
- const error = this.error;
12360
- function publishRejected(err) {
12361
- context.error = err;
12362
- error?.publish(context);
12363
- asyncStart?.publish(context);
12364
- asyncEnd?.publish(context);
12365
- }
12366
- function publishResolved(result) {
12367
- context.result = result;
12368
- asyncStart?.publish(context);
12369
- asyncEnd?.publish(context);
12370
- }
12371
- return start.runStores(context, () => {
12372
- try {
12373
- const result = Reflect.apply(fn, thisArg, args);
12374
- end?.publish(context);
12375
- if (result && (typeof result === "object" || typeof result === "function") && typeof result.then === "function") {
12376
- if (result.constructor === Promise) {
12377
- return result.then(
12378
- (res) => {
12379
- publishResolved(res);
12380
- return res;
12381
- },
12382
- (err) => {
12383
- publishRejected(err);
12384
- return Promise.reject(err);
12385
- }
12386
- );
12387
- }
12388
- void result.then(
12389
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12390
- (resolved) => {
12391
- try {
12392
- publishResolved(resolved);
12393
- } catch {
12394
- }
12395
- },
12396
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12397
- (err) => {
12398
- try {
12399
- publishRejected(err);
12400
- } catch {
12401
- }
12402
- }
12403
- );
12404
- return result;
12405
- }
12406
- context.result = result;
12407
- asyncStart?.publish(context);
12408
- asyncEnd?.publish(context);
12409
- return result;
12410
- } catch (err) {
12411
- context.error = err;
12412
- error?.publish(context);
12413
- end?.publish(context);
12414
- throw err;
12415
- }
12416
- });
12417
- };
12418
- }
12419
- }
12420
-
12421
12664
  // src/auto-instrumentations/hook.mts
12422
- var state = globalThis[/* @__PURE__ */ Symbol.for("braintrust.applyAutoInstrumentation")] ??= {};
12665
+ var state = globalThis[/* @__PURE__ */ Symbol.for(
12666
+ `braintrust.applyAutoInstrumentation.global-hooks.v${GLOBAL_INSTRUMENTATION_HOOKS_PROTOCOL_VERSION}`
12667
+ )] ??= {};
12423
12668
  var alreadyApplied = state.applied;
12424
- if (!alreadyApplied) {
12425
- const dcPath = ["node", "diagnostics_channel"].join(":");
12426
- const dc = await import(
12427
- /* @vite-ignore */
12428
- dcPath
12429
- );
12430
- patchTracingChannel(dc.tracingChannel);
12431
- }
12432
12669
  if (!alreadyApplied) {
12433
12670
  const allConfigs = getDefaultAutoInstrumentationConfigs();
12434
12671
  const disabled = readDisabledInstrumentationEnvConfig(