@ai-sdk/otel 1.0.0-canary.99 → 1.0.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,317 @@
1
1
  # @ai-sdk/otel
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - ai@7.0.1
8
+
9
+ ## 1.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - 6542d93: feat(ai): change naming nomenclature for `*TelemetryIntegration` to `*Telemetry`
14
+ - cf93359: feat(ai): remove/refactor event data sent via callbacks
15
+ - 8284dfa: feat(otel): rename OpenTelemetry to LegacyOpenTelemetry
16
+ - ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
17
+ - 116c89f: feat(ai): remove telemetry data from the user-facing event data
18
+ - b3c9f6a: feat(ai): create new opentelemetry package (@ai-sdk/otel)
19
+
20
+ ### Patch Changes
21
+
22
+ - b94d22f: Sanitize OpenTelemetry span array attributes so they no longer emit invalid OTLP values (arrays containing `undefined`/`null`/objects, or arrays mixing primitive types). Such values previously failed telemetry ingestion with `deserializing message invalid value: map, expected map with a single key` and flooded function logs with errors.
23
+ - 19736ee: feat(ai): rename onStepFinish to onStepEnd
24
+ - 4757690: feat(ai): rename onObjectStepFinish to onObjectStepEnd
25
+ - 382d53b: refactoring: rename context to runtimeContext
26
+ - 7bf7d7f: feat(ai): enable:true for telemetry by default
27
+ - c025d60: feat(otel): add option for custom span attributes
28
+ - 1db29c8: feat(ai): break `CallSettings` apart into `LanguageModelCallOptions` and `RequestOptions`
29
+ - eea8d98: refactoring: rename tool execution events
30
+ - 5d0f18e: feat(ai): move opentelemetry to new package
31
+ - 1582efa: chore(ai): remove the metadata field from the telemetry settings
32
+ - 98627e5: feat(ai): remove onChunk event from telemetry
33
+ - 9f0e36c: trigger release for all packages after provenance setup
34
+ - 1e200eb: fix(otel): ensure nested context object creates separate attribute
35
+ - 29d8cf4: feat(ai): rename the core-event types
36
+ - 18651f6: feat(otel): add opt-in options for supplemental AI SDK attributes on OpenTelemetry spans
37
+ - e4182bd: chore: rm export of OutputInterface
38
+ - 1043274: feat(ai): add a ModelCall start/end event
39
+ - 476e1ca: feat(ai): remove telemetry dependency on onChunk callback
40
+ - 7fc6bd6: Raise minimum supported Node.js version to 22. Supported versions: 22, 24, and 26.
41
+ - 594029e: feat(ai): wrap the model call in telemetry context
42
+ - eaf849f: Rename rerank telemetry finish callback to `onRerankEnd`.
43
+ - 0c4c275: trigger initial canary release
44
+ - fc15550: feat(otel): add the genAI semantic otel integration
45
+ - 9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
46
+ - 258c093: chore: ensure consistent import handling and avoid import duplicates or cycles
47
+ - 8565dcb: fix: rename onEmbedFinish to onEmbedEnd
48
+ - 152c67c: feat(otel): add a step level span
49
+ - e1bfb9c: feat(ai): remove unnecessary data from events
50
+ - 334ae5d: Update step performance metrics with explicit effective, input, output, and total token throughput fields.
51
+ - b8396f0: trigger initial beta release
52
+ - d5cac7c: feat(otel): emit performance metrics via gen ai semantics
53
+ - c3d4019: chore(ai): rename 'TelemetrySettings' to 'TelemetryOptions'
54
+ - e92fc45: feat(ai): introduce onAbort hook to close telemetry spans
55
+ - 083947b: feat(ai): separate toolsContext from context
56
+ - 64de016: feat(otel): rename GenAIOpenTelemetry to OpenTelemetry
57
+ - 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
58
+
59
+ ## 1.0.0-beta.133
60
+
61
+ ### Patch Changes
62
+
63
+ - ai@7.0.0-beta.187
64
+
65
+ ## 1.0.0-beta.132
66
+
67
+ ### Patch Changes
68
+
69
+ - ai@7.0.0-beta.186
70
+
71
+ ## 1.0.0-beta.131
72
+
73
+ ### Patch Changes
74
+
75
+ - Updated dependencies [75763b0]
76
+ - ai@7.0.0-beta.185
77
+
78
+ ## 1.0.0-beta.130
79
+
80
+ ### Patch Changes
81
+
82
+ - b94d22f: Sanitize OpenTelemetry span array attributes so they no longer emit invalid OTLP values (arrays containing `undefined`/`null`/objects, or arrays mixing primitive types). Such values previously failed telemetry ingestion with `deserializing message invalid value: map, expected map with a single key` and flooded function logs with errors.
83
+ - d5cac7c: feat(otel): emit performance metrics via gen ai semantics
84
+ - Updated dependencies [0416e3e]
85
+ - @ai-sdk/provider@4.0.0-beta.20
86
+ - ai@7.0.0-beta.184
87
+
88
+ ## 1.0.0-beta.129
89
+
90
+ ### Patch Changes
91
+
92
+ - ai@7.0.0-beta.183
93
+
94
+ ## 1.0.0-beta.128
95
+
96
+ ### Patch Changes
97
+
98
+ - Updated dependencies [cc6ab90]
99
+ - ai@7.0.0-beta.182
100
+
101
+ ## 1.0.0-beta.127
102
+
103
+ ### Patch Changes
104
+
105
+ - Updated dependencies [6a2caf9]
106
+ - ai@7.0.0-beta.181
107
+
108
+ ## 1.0.0-beta.126
109
+
110
+ ### Patch Changes
111
+
112
+ - Updated dependencies [81a284b]
113
+ - ai@7.0.0-beta.180
114
+
115
+ ## 1.0.0-beta.125
116
+
117
+ ### Patch Changes
118
+
119
+ - ai@7.0.0-beta.179
120
+
121
+ ## 1.0.0-beta.124
122
+
123
+ ### Patch Changes
124
+
125
+ - Updated dependencies [b097c52]
126
+ - ai@7.0.0-beta.178
127
+
128
+ ## 1.0.0-beta.123
129
+
130
+ ### Patch Changes
131
+
132
+ - b8396f0: trigger initial beta release
133
+ - Updated dependencies [b8396f0]
134
+ - @ai-sdk/provider@4.0.0-beta.19
135
+ - ai@7.0.0-beta.177
136
+
137
+ ## 1.0.0-canary.122
138
+
139
+ ### Patch Changes
140
+
141
+ - ai@7.0.0-canary.176
142
+
143
+ ## 1.0.0-canary.121
144
+
145
+ ### Patch Changes
146
+
147
+ - Updated dependencies [6ec57f5]
148
+ - ai@7.0.0-canary.175
149
+
150
+ ## 1.0.0-canary.120
151
+
152
+ ### Patch Changes
153
+
154
+ - ai@7.0.0-canary.174
155
+
156
+ ## 1.0.0-canary.119
157
+
158
+ ### Patch Changes
159
+
160
+ - ai@7.0.0-canary.173
161
+
162
+ ## 1.0.0-canary.118
163
+
164
+ ### Patch Changes
165
+
166
+ - Updated dependencies [25a64f8]
167
+ - Updated dependencies [375fdd7]
168
+ - Updated dependencies [f18b08f]
169
+ - Updated dependencies [b4507d5]
170
+ - ai@7.0.0-canary.172
171
+
172
+ ## 1.0.0-canary.117
173
+
174
+ ### Patch Changes
175
+
176
+ - Updated dependencies [89ad56f]
177
+ - Updated dependencies [f9a496f]
178
+ - Updated dependencies [3295831]
179
+ - ai@7.0.0-canary.171
180
+
181
+ ## 1.0.0-canary.116
182
+
183
+ ### Patch Changes
184
+
185
+ - Updated dependencies [bae5e2b]
186
+ - Updated dependencies [69d7128]
187
+ - ai@7.0.0-canary.170
188
+
189
+ ## 1.0.0-canary.115
190
+
191
+ ### Patch Changes
192
+
193
+ - Updated dependencies [a5018ab]
194
+ - Updated dependencies [21d3d60]
195
+ - Updated dependencies [426dbbb]
196
+ - Updated dependencies [7fd3360]
197
+ - ai@7.0.0-canary.169
198
+
199
+ ## 1.0.0-canary.114
200
+
201
+ ### Patch Changes
202
+
203
+ - Updated dependencies [1e4b350]
204
+ - ai@7.0.0-canary.168
205
+
206
+ ## 1.0.0-canary.113
207
+
208
+ ### Patch Changes
209
+
210
+ - 4757690: feat(ai): rename onObjectStepFinish to onObjectStepEnd
211
+ - Updated dependencies [4757690]
212
+ - Updated dependencies [eeefc3f]
213
+ - Updated dependencies [b79b6a8]
214
+ - ai@7.0.0-canary.167
215
+
216
+ ## 1.0.0-canary.112
217
+
218
+ ### Patch Changes
219
+
220
+ - 19736ee: feat(ai): rename onStepFinish to onStepEnd
221
+ - e4182bd: chore: rm export of OutputInterface
222
+ - Updated dependencies [19736ee]
223
+ - Updated dependencies [d66ae02]
224
+ - Updated dependencies [e4182bd]
225
+ - ai@7.0.0-canary.166
226
+
227
+ ## 1.0.0-canary.111
228
+
229
+ ### Patch Changes
230
+
231
+ - Updated dependencies [ce769dd]
232
+ - @ai-sdk/provider@4.0.0-canary.18
233
+ - ai@7.0.0-canary.165
234
+
235
+ ## 1.0.0-canary.110
236
+
237
+ ### Patch Changes
238
+
239
+ - ai@7.0.0-canary.164
240
+
241
+ ## 1.0.0-canary.109
242
+
243
+ ### Patch Changes
244
+
245
+ - Updated dependencies [ee798eb]
246
+ - Updated dependencies [c907622]
247
+ - ai@7.0.0-canary.163
248
+
249
+ ## 1.0.0-canary.108
250
+
251
+ ### Patch Changes
252
+
253
+ - ai@7.0.0-canary.162
254
+
255
+ ## 1.0.0-canary.107
256
+
257
+ ### Patch Changes
258
+
259
+ - ai@7.0.0-canary.161
260
+
261
+ ## 1.0.0-canary.106
262
+
263
+ ### Patch Changes
264
+
265
+ - ai@7.0.0-canary.160
266
+
267
+ ## 1.0.0-canary.105
268
+
269
+ ### Patch Changes
270
+
271
+ - Updated dependencies [b5092f5]
272
+ - ai@7.0.0-canary.159
273
+
274
+ ## 1.0.0-canary.104
275
+
276
+ ### Patch Changes
277
+
278
+ - Updated dependencies [bcce2dd]
279
+ - ai@7.0.0-canary.158
280
+
281
+ ## 1.0.0-canary.103
282
+
283
+ ### Patch Changes
284
+
285
+ - ai@7.0.0-canary.157
286
+
287
+ ## 1.0.0-canary.102
288
+
289
+ ### Patch Changes
290
+
291
+ - 1e200eb: fix(otel): ensure nested context object creates separate attribute
292
+ - e92fc45: feat(ai): introduce onAbort hook to close telemetry spans
293
+ - Updated dependencies [023550e]
294
+ - Updated dependencies [e92fc45]
295
+ - ai@7.0.0-canary.156
296
+
297
+ ## 1.0.0-canary.101
298
+
299
+ ### Patch Changes
300
+
301
+ - Updated dependencies [e67d80e]
302
+ - Updated dependencies [6cca112]
303
+ - Updated dependencies [82fc0ab]
304
+ - Updated dependencies [76fd58c]
305
+ - ai@7.0.0-canary.155
306
+
307
+ ## 1.0.0-canary.100
308
+
309
+ ### Patch Changes
310
+
311
+ - 594029e: feat(ai): wrap the model call in telemetry context
312
+ - Updated dependencies [594029e]
313
+ - ai@7.0.0-canary.154
314
+
3
315
  ## 1.0.0-canary.99
4
316
 
5
317
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Telemetry, InferTelemetryEvent, GenerateTextStartEvent, GenerateObjectStartEvent, EmbedStartEvent, RerankStartEvent, GenerateObjectStepStartEvent, GenerateObjectStepEndEvent, GenerateTextStepStartEvent, ToolSet, LanguageModelCallStartEvent, LanguageModelCallEndEvent, ToolExecutionStartEvent, ToolExecutionEndEvent, GenerateTextStepEndEvent, GenerateTextEndEvent, GenerateObjectEndEvent, EmbedEndEvent, RerankEndEvent, EmbeddingModelCallStartEvent, EmbeddingModelCallEndEvent, RerankingModelCallStartEvent, RerankingModelCallEndEvent, OutputInterface } from 'ai';
1
+ import { Telemetry, InferTelemetryEvent, GenerateTextStartEvent, GenerateObjectStartEvent, EmbedStartEvent, RerankStartEvent, GenerateObjectStepStartEvent, GenerateObjectStepEndEvent, GenerateTextStepStartEvent, ToolSet, LanguageModelCallStartEvent, LanguageModelCallEndEvent, ToolExecutionStartEvent, ToolExecutionEndEvent, GenerateTextStepEndEvent, GenerateTextEndEvent, GenerateObjectEndEvent, EmbedEndEvent, RerankEndEvent, EmbeddingModelCallStartEvent, EmbeddingModelCallEndEvent, RerankingModelCallStartEvent, RerankingModelCallEndEvent, GenerateTextAbortEvent, Output } from 'ai';
2
2
  import { Attributes, Tracer } from '@opentelemetry/api';
3
3
  import { LanguageModelV4Prompt } from '@ai-sdk/provider';
4
4
  import { Context } from '@ai-sdk/provider-utils';
@@ -71,19 +71,29 @@ declare class OpenTelemetry implements Telemetry {
71
71
  toolCallId: string;
72
72
  execute: () => PromiseLike<T>;
73
73
  }): PromiseLike<T>;
74
+ /**
75
+ * Runs the provider `doGenerate`/`doStream` call with the active model-call
76
+ * context.
77
+ */
78
+ executeLanguageModelCall<T>({ callId, execute, }: {
79
+ callId: string;
80
+ execute: () => PromiseLike<T>;
81
+ }): PromiseLike<T>;
74
82
  onStart(event: InferTelemetryEvent<GenerateTextStartEvent> | InferTelemetryEvent<GenerateObjectStartEvent> | InferTelemetryEvent<EmbedStartEvent> | InferTelemetryEvent<RerankStartEvent>): void;
75
83
  private onGenerateStart;
76
84
  private onObjectOperationStart;
77
85
  /** @deprecated */
78
86
  onObjectStepStart(event: GenerateObjectStepStartEvent): void;
79
87
  /** @deprecated */
80
- onObjectStepFinish(event: GenerateObjectStepEndEvent): void;
88
+ onObjectStepEnd(event: GenerateObjectStepEndEvent): void;
81
89
  private onEmbedOperationStart;
82
90
  onStepStart(event: OtelStepStartEvent$1): void;
83
91
  onLanguageModelCallStart(event: LanguageModelCallStartEvent): void;
84
92
  onLanguageModelCallEnd(event: LanguageModelCallEndEvent<ToolSet>): void;
85
93
  onToolExecutionStart(event: ToolExecutionStartEvent<ToolSet>): void;
86
94
  onToolExecutionEnd(event: ToolExecutionEndEvent<ToolSet>): void;
95
+ onStepEnd(event: GenerateTextStepEndEvent<ToolSet>): void;
96
+ /** @deprecated Use `onStepEnd` instead. */
87
97
  onStepFinish(event: GenerateTextStepEndEvent<ToolSet>): void;
88
98
  onEnd(event: GenerateTextEndEvent<ToolSet> | GenerateObjectEndEvent<unknown> | EmbedEndEvent | RerankEndEvent): void;
89
99
  private onGenerateEnd;
@@ -95,10 +105,11 @@ declare class OpenTelemetry implements Telemetry {
95
105
  private onRerankOperationEnd;
96
106
  onRerankStart(event: RerankingModelCallStartEvent): void;
97
107
  onRerankEnd(event: RerankingModelCallEndEvent): void;
108
+ onAbort(event: GenerateTextAbortEvent<ToolSet>): void;
98
109
  onError(error: unknown): void;
99
110
  }
100
111
 
101
- interface OtelStepStartEvent<TOOLS extends ToolSet = ToolSet, RUNTIME_CONTEXT extends Context = Context, OUTPUT extends OutputInterface = OutputInterface> extends GenerateTextStepStartEvent<TOOLS, RUNTIME_CONTEXT, OUTPUT> {
112
+ interface OtelStepStartEvent<TOOLS extends ToolSet = ToolSet, RUNTIME_CONTEXT extends Context = Context, OUTPUT extends Output.Output = Output.Output> extends GenerateTextStepStartEvent<TOOLS, RUNTIME_CONTEXT, OUTPUT> {
102
113
  readonly promptMessages?: LanguageModelV4Prompt;
103
114
  readonly stepTools?: ReadonlyArray<Record<string, unknown>>;
104
115
  readonly stepToolChoice?: unknown;
@@ -119,17 +130,27 @@ declare class LegacyOpenTelemetry implements Telemetry {
119
130
  toolCallId: string;
120
131
  execute: () => PromiseLike<T>;
121
132
  }): PromiseLike<T>;
133
+ /**
134
+ * Runs the provider `doGenerate`/`doStream` call with the active legacy
135
+ * model-call context.
136
+ */
137
+ executeLanguageModelCall<T>({ callId, execute, }: {
138
+ callId: string;
139
+ execute: () => PromiseLike<T>;
140
+ }): PromiseLike<T>;
122
141
  onStart(event: InferTelemetryEvent<GenerateTextStartEvent> | InferTelemetryEvent<GenerateObjectStartEvent> | InferTelemetryEvent<EmbedStartEvent> | InferTelemetryEvent<RerankStartEvent>): void;
123
142
  private onGenerateStart;
124
143
  private onObjectOperationStart;
125
144
  /** @deprecated */
126
145
  onObjectStepStart(event: GenerateObjectStepStartEvent): void;
127
146
  /** @deprecated */
128
- onObjectStepFinish(event: GenerateObjectStepEndEvent): void;
147
+ onObjectStepEnd(event: GenerateObjectStepEndEvent): void;
129
148
  private onEmbedOperationStart;
130
149
  onStepStart(event: OtelStepStartEvent): void;
131
150
  onToolExecutionStart(event: ToolExecutionStartEvent<ToolSet>): void;
132
151
  onToolExecutionEnd(event: ToolExecutionEndEvent<ToolSet>): void;
152
+ onStepEnd(event: GenerateTextStepEndEvent<ToolSet>): void;
153
+ /** @deprecated Use `onStepEnd` instead. */
133
154
  onStepFinish(event: GenerateTextStepEndEvent<ToolSet>): void;
134
155
  onEnd(event: GenerateTextEndEvent<ToolSet> | GenerateObjectEndEvent<unknown> | EmbedEndEvent | RerankEndEvent): void;
135
156
  private onGenerateEnd;
@@ -141,6 +162,7 @@ declare class LegacyOpenTelemetry implements Telemetry {
141
162
  private onRerankOperationEnd;
142
163
  onRerankStart(event: RerankingModelCallStartEvent): void;
143
164
  onRerankEnd(event: RerankingModelCallEndEvent): void;
165
+ onAbort(event: GenerateTextAbortEvent<ToolSet>): void;
144
166
  onError(error: unknown): void;
145
167
  }
146
168