@@ -19,6 +19,7 @@ import {
1919 GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ,
2020} from '../../../../../../packages/core/src/tracing/ai/gen-ai-attributes' ;
2121import { cleanupChildProcesses , createEsmAndCjsTests } from '../../../../utils/runner' ;
22+ import { isOrchestrionEnabled } from '../../../../utils' ;
2223
2324/**
2425 * Helper to match a typed attribute value in a SerializedStreamedSpan.
@@ -29,11 +30,13 @@ function attr(value: unknown) {
2930 return expect . objectContaining ( { value } ) ;
3031}
3132
32- describe ( 'Vercel AI integration (streaming, V6 )' , ( ) => {
33+ describe ( 'Vercel AI integration (streaming, v6 )' , ( ) => {
3334 afterAll ( ( ) => {
3435 cleanupChildProcesses ( ) ;
3536 } ) ;
3637
38+ const origin = isOrchestrionEnabled ( ) ? 'auto.vercelai.channel' : 'auto.vercelai.otel' ;
39+
3740 const EXPECTED_SPANS_DEFAULT_PII_FALSE = {
3841 items : expect . arrayContaining ( [
3942 // First span - invoke_agent for simple generateText
@@ -48,10 +51,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
4851 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 30 ) ,
4952 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
5053 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
51- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
52- 'vercel.ai.pipeline.name' : attr ( 'generateText' ) ,
53- 'vercel.ai.streaming' : attr ( false ) ,
54- 'vercel.ai.request.headers.user-agent' : expect . objectContaining ( { value : expect . any ( String ) } ) ,
54+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
5555 } ) ,
5656 } ) ,
5757 // Second span - generate_content for simple generateText
@@ -66,9 +66,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
6666 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 30 ) ,
6767 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'generate_content' ) ,
6868 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.generate_content' ) ,
69- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
70- 'vercel.ai.pipeline.name' : attr ( 'generateText.doGenerate' ) ,
71- 'vercel.ai.streaming' : attr ( false ) ,
69+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
7270 } ) ,
7371 } ) ,
7472 // Third span - invoke_agent for explicit telemetry generateText
@@ -82,7 +80,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
8280 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 30 ) ,
8381 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
8482 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
85- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
83+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
8684 } ) ,
8785 } ) ,
8886 // Fourth span - tool call invoke_agent
@@ -96,7 +94,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
9694 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 40 ) ,
9795 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
9896 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
99- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
97+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
10098 } ) ,
10199 } ) ,
102100 // Fifth span - tool call generate_content
@@ -110,7 +108,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
110108 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 40 ) ,
111109 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'generate_content' ) ,
112110 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.generate_content' ) ,
113- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
111+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
114112 } ) ,
115113 } ) ,
116114 // Sixth span - execute_tool
@@ -124,7 +122,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
124122 [ GEN_AI_TOOL_TYPE_ATTRIBUTE ] : attr ( 'function' ) ,
125123 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'execute_tool' ) ,
126124 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.execute_tool' ) ,
127- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
125+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
128126 } ) ,
129127 } ) ,
130128 ] ) ,
@@ -149,9 +147,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
149147 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 30 ) ,
150148 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
151149 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
152- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
153- 'vercel.ai.pipeline.name' : attr ( 'generateText' ) ,
154- 'vercel.ai.streaming' : attr ( false ) ,
150+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
155151 } ) ,
156152 } ) ,
157153 // Second span - generate_content with input/output messages
@@ -170,7 +166,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
170166 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 30 ) ,
171167 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'generate_content' ) ,
172168 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.generate_content' ) ,
173- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
169+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
174170 } ) ,
175171 } ) ,
176172 // Third span - explicit telemetry invoke_agent with messages
@@ -188,7 +184,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
188184 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 30 ) ,
189185 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
190186 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
191- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
187+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
192188 } ) ,
193189 } ) ,
194190 // Fourth span - tool call invoke_agent with messages (V6: no text part, only tool_call)
@@ -208,7 +204,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
208204 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 40 ) ,
209205 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
210206 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
211- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
207+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
212208 } ) ,
213209 } ) ,
214210 // Fifth span - tool call generate_content with available_tools
@@ -225,7 +221,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
225221 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 40 ) ,
226222 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'generate_content' ) ,
227223 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.generate_content' ) ,
228- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
224+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
229225 } ) ,
230226 } ) ,
231227 // Sixth span - execute_tool with description and input/output
@@ -241,7 +237,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
241237 [ GEN_AI_TOOL_TYPE_ATTRIBUTE ] : attr ( 'function' ) ,
242238 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'execute_tool' ) ,
243239 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.execute_tool' ) ,
244- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
240+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
245241 } ) ,
246242 } ) ,
247243 ] ) ,
@@ -254,7 +250,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
254250 attributes : expect . objectContaining ( {
255251 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'invoke_agent' ) ,
256252 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.invoke_agent' ) ,
257- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
253+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
258254 } ) ,
259255 } ) ,
260256 expect . objectContaining ( {
@@ -267,7 +263,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
267263 [ GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ] : attr ( 40 ) ,
268264 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'generate_content' ) ,
269265 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.generate_content' ) ,
270- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
266+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
271267 } ) ,
272268 } ) ,
273269 expect . objectContaining ( {
@@ -279,7 +275,7 @@ describe('Vercel AI integration (streaming, V6)', () => {
279275 [ GEN_AI_TOOL_TYPE_ATTRIBUTE ] : attr ( 'function' ) ,
280276 [ GEN_AI_OPERATION_NAME_ATTRIBUTE ] : attr ( 'execute_tool' ) ,
281277 [ SEMANTIC_ATTRIBUTE_SENTRY_OP ] : attr ( 'gen_ai.execute_tool' ) ,
282- [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( 'auto.vercelai.otel' ) ,
278+ [ SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN ] : attr ( origin ) ,
283279 } ) ,
284280 } ) ,
285281 ] ) ,
0 commit comments