ai 7.0.153 → 7.0.154

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 (41) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/index.d.ts +224 -9
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +399 -96
  5. package/dist/index.js.map +1 -1
  6. package/dist/internal/index.d.ts +52 -4
  7. package/dist/internal/index.d.ts.map +1 -1
  8. package/dist/internal/index.js +26 -20
  9. package/dist/internal/index.js.map +1 -1
  10. package/docs/02-getting-started/02-nextjs-app-router.mdx +2 -2
  11. package/docs/02-getting-started/08-angular.mdx +327 -0
  12. package/docs/02-getting-started/{03-nextjs-pages-router.mdx → 10-nextjs-pages-router.mdx} +12 -20
  13. package/docs/02-getting-started/index.mdx +2 -0
  14. package/docs/03-agents/01-overview.mdx +1 -0
  15. package/docs/03-agents/04-loop-control.mdx +117 -0
  16. package/docs/03-agents/06-tool-approvals.mdx +1 -0
  17. package/docs/03-agents/09-chat-platforms.mdx +164 -0
  18. package/docs/03-agents/index.mdx +6 -0
  19. package/docs/03-ai-sdk-core/60-telemetry.mdx +16 -3
  20. package/docs/03-ai-sdk-core/65-lifecycle-callbacks.mdx +10 -0
  21. package/docs/04-ai-sdk-ui/21-transport.mdx +86 -0
  22. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +46 -0
  23. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +46 -0
  24. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +35 -0
  25. package/package.json +11 -11
  26. package/src/agent/create-agent-ui-stream-response.ts +3 -0
  27. package/src/agent/create-agent-ui-stream.ts +16 -0
  28. package/src/agent/pipe-agent-ui-stream-to-response.ts +3 -0
  29. package/src/agent/tool-loop-agent-settings.ts +37 -1
  30. package/src/agent/tool-loop-agent.ts +43 -7
  31. package/src/generate-text/generate-text-events.ts +37 -0
  32. package/src/generate-text/generate-text.ts +521 -373
  33. package/src/generate-text/index.ts +8 -0
  34. package/src/generate-text/prepare-step.ts +12 -0
  35. package/src/generate-text/restricted-telemetry-dispatcher.ts +31 -18
  36. package/src/generate-text/steering.ts +293 -0
  37. package/src/generate-text/step-result.ts +18 -0
  38. package/src/generate-text/stream-text.ts +664 -473
  39. package/src/telemetry/create-telemetry-dispatcher.ts +3 -0
  40. package/src/telemetry/telemetry.ts +15 -1
  41. package/src/util/is-caused-by-abort.ts +20 -0
@@ -1,5 +1,6 @@
1
1
  import { asArray, type Context } from '@ai-sdk/provider-utils';
2
2
  import type { Callback } from '../util/callback';
3
+ import { VERSION } from '../version';
3
4
  import {
4
5
  filterIncludedContext,
5
6
  filterToolContext,
@@ -61,6 +62,7 @@ function augmentEvent<EVENT>(
61
62
  recordInputs: telemetry.recordInputs,
62
63
  recordOutputs: telemetry.recordOutputs,
63
64
  functionId: telemetry.functionId,
65
+ aiVersion: VERSION,
64
66
  },
65
67
  );
66
68
 
@@ -224,6 +226,7 @@ export function createTelemetryDispatcher({
224
226
  onStepEnd == null && onStepFinish == null
225
227
  ? undefined
226
228
  : mergeCallbacks(onStepEnd, onStepFinish),
229
+ onStepError: mergeTelemetryCallback('onStepError'),
227
230
  onObjectStepStart: mergeTelemetryCallback('onObjectStepStart'),
228
231
  onObjectStepEnd: mergeTelemetryCallback('onObjectStepEnd'),
229
232
  onEmbedStart: mergeTelemetryCallback('onEmbedStart'),
@@ -22,6 +22,7 @@ import type {
22
22
  GenerateTextEndEvent,
23
23
  GenerateTextStartEvent,
24
24
  GenerateTextStepEndEvent,
25
+ GenerateTextStepErrorEvent,
25
26
  GenerateTextStepStartEvent,
26
27
  } from '../generate-text/generate-text-events';
27
28
  import type {
@@ -59,7 +60,13 @@ export type InferTelemetryEvent<EVENT> = EVENT &
59
60
  Omit<
60
61
  TelemetryOptions,
61
62
  'integrations' | 'isEnabled' | 'includeRuntimeContext'
62
- >;
63
+ > & {
64
+ /**
65
+ * The version of the `ai` package that emitted this event.
66
+ * Absent in older releases.
67
+ */
68
+ readonly aiVersion?: string;
69
+ };
63
70
 
64
71
  type BivariantCallback<EVENT> = {
65
72
  bivarianceHack(event: EVENT): PromiseLike<void> | void;
@@ -110,6 +117,7 @@ export interface TelemetryDispatcher {
110
117
  onStepEnd?: Callback<GenerateTextStepEndEvent>;
111
118
  /** @deprecated Use `onStepEnd` instead. */
112
119
  onStepFinish?: Callback<GenerateTextStepEndEvent>;
120
+ onStepError?: Callback<GenerateTextStepErrorEvent>;
113
121
  onObjectStepStart?: Callback<GenerateObjectStepStartEvent>;
114
122
  onObjectStepEnd?: Callback<GenerateObjectStepEndEvent>;
115
123
  onEmbedStart?: Callback<EmbeddingModelCallStartEvent>;
@@ -202,6 +210,12 @@ export interface Telemetry {
202
210
  */
203
211
  onStepFinish?: Callback<InferTelemetryEvent<GenerateTextStepEndEvent>>;
204
212
 
213
+ /**
214
+ * Called when a step that started fails before it produces a step result.
215
+ * Use it to close step-level spans. The call then ends with `onError`.
216
+ */
217
+ onStepError?: Callback<InferTelemetryEvent<GenerateTextStepErrorEvent>>;
218
+
205
219
  /**
206
220
  * Called when an object generation step (single LLM invocation) begins.
207
221
  * For generateObject/streamObject there is always exactly one step.
@@ -0,0 +1,20 @@
1
+ import { isAbortError } from '@ai-sdk/provider-utils';
2
+
3
+ /**
4
+ * Checks if the error is an abort or timeout error, or is caused by one.
5
+ * Providers can wrap the abort or timeout error, e.g. as the cause of an
6
+ * API call error.
7
+ */
8
+ export function isCausedByAbort(error: unknown): boolean {
9
+ let current = error;
10
+
11
+ for (let depth = 0; current != null && depth < 5; depth++) {
12
+ if (isAbortError(current)) {
13
+ return true;
14
+ }
15
+
16
+ current = (current as { cause?: unknown }).cause;
17
+ }
18
+
19
+ return false;
20
+ }