ai-retry 0.10.0 → 1.0.0-beta.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.
package/README.md CHANGED
@@ -19,10 +19,13 @@ It supports two types of retries:
19
19
 
20
20
  ### Installation
21
21
 
22
- This library only supports AI SDK v5.
22
+ Install the beta version of `ai-retry` to support AI SDK v6.
23
+
24
+ > [!NOTE]
25
+ > AI SDK v6 is still in beta, so break changes are expected.
23
26
 
24
27
  ```bash
25
- npm install ai-retry
28
+ npm install ai-retry@beta
26
29
  ```
27
30
 
28
31
  ### Usage
@@ -0,0 +1,67 @@
1
+ import { _ as Retryable, a as LanguageModel, c as LanguageModelStream, d as Retries, f as Retry, g as RetryResultAttempt, h as RetryErrorAttempt, i as EmbeddingModelV3, l as LanguageModelStreamPart, m as RetryContext, n as EmbeddingModelCallOptions, o as LanguageModelCallOptions, p as RetryAttempt, r as EmbeddingModelEmbed, s as LanguageModelGenerate, t as EmbeddingModel, u as LanguageModelV3, v as RetryableModelOptions, y as RetryableOptions } from "./types-D7Pm83wM.mjs";
2
+ import * as _ai_sdk_provider0 from "@ai-sdk/provider";
3
+
4
+ //#region src/create-retryable-model.d.ts
5
+ declare function createRetryable<MODEL extends LanguageModel>(options: RetryableModelOptions<MODEL>): LanguageModel;
6
+ declare function createRetryable<MODEL extends EmbeddingModel>(options: RetryableModelOptions<MODEL>): EmbeddingModel;
7
+ //#endregion
8
+ //#region src/get-model-key.d.ts
9
+ /**
10
+ * Generate a unique key for a LanguageModel instance.
11
+ */
12
+ declare const getModelKey: (model: LanguageModel | EmbeddingModel) => string;
13
+ //#endregion
14
+ //#region src/utils.d.ts
15
+ declare const isObject: (value: unknown) => value is Record<string, unknown>;
16
+ declare const isString: (value: unknown) => value is string;
17
+ declare const isModel: (model: unknown) => model is LanguageModel | EmbeddingModel;
18
+ declare const isLanguageModel: (model: unknown) => model is LanguageModel;
19
+ declare const isEmbeddingModel: (model: unknown) => model is EmbeddingModel;
20
+ declare const isStreamResult: (result: LanguageModelGenerate | LanguageModelStream) => result is LanguageModelStream;
21
+ declare const isGenerateResult: (result: LanguageModelGenerate | LanguageModelStream) => result is LanguageModelGenerate;
22
+ /**
23
+ * Type guard to check if a retry attempt is an error attempt
24
+ */
25
+ declare function isErrorAttempt(attempt: RetryAttempt<any>): attempt is RetryErrorAttempt<any>;
26
+ /**
27
+ * Type guard to check if a retry attempt is a result attempt
28
+ */
29
+ declare function isResultAttempt(attempt: RetryAttempt<any>): attempt is RetryResultAttempt;
30
+ /**
31
+ * Check if a stream part is a content part (e.g., text delta, reasoning delta, source, tool call, tool result).
32
+ * These types are also emitted by `onChunk` callbacks.
33
+ * @see https://github.com/vercel/ai/blob/1fe4bd4144bff927f5319d9d206e782a73979ccb/packages/ai/src/generate-text/stream-text.ts#L686-L697
34
+ */
35
+ declare const isStreamContentPart: (part: LanguageModelStreamPart) => part is _ai_sdk_provider0.LanguageModelV3Source | _ai_sdk_provider0.LanguageModelV3ToolCall | _ai_sdk_provider0.LanguageModelV3ToolResult | {
36
+ type: "text-delta";
37
+ id: string;
38
+ providerMetadata?: _ai_sdk_provider0.SharedV3ProviderMetadata;
39
+ delta: string;
40
+ } | {
41
+ type: "reasoning-delta";
42
+ id: string;
43
+ providerMetadata?: _ai_sdk_provider0.SharedV3ProviderMetadata;
44
+ delta: string;
45
+ } | {
46
+ type: "tool-input-start";
47
+ id: string;
48
+ toolName: string;
49
+ providerMetadata?: _ai_sdk_provider0.SharedV3ProviderMetadata;
50
+ providerExecuted?: boolean;
51
+ dynamic?: boolean;
52
+ title?: string;
53
+ } | {
54
+ type: "tool-input-delta";
55
+ id: string;
56
+ delta: string;
57
+ providerMetadata?: _ai_sdk_provider0.SharedV3ProviderMetadata;
58
+ } | {
59
+ type: "raw";
60
+ rawValue: unknown;
61
+ };
62
+ /**
63
+ * Type guard to check if a value is a Retry object (has a model property with a MODEL)
64
+ */
65
+ declare const isRetry: <MODEL extends LanguageModel | EmbeddingModel>(value: unknown) => value is Retry<MODEL>;
66
+ //#endregion
67
+ export { EmbeddingModel, EmbeddingModelCallOptions, EmbeddingModelEmbed, EmbeddingModelV3, LanguageModel, LanguageModelCallOptions, LanguageModelGenerate, LanguageModelStream, LanguageModelStreamPart, LanguageModelV3, Retries, Retry, RetryAttempt, RetryContext, RetryErrorAttempt, RetryResultAttempt, Retryable, RetryableModelOptions, RetryableOptions, createRetryable, getModelKey, isEmbeddingModel, isErrorAttempt, isGenerateResult, isLanguageModel, isModel, isObject, isResultAttempt, isRetry, isStreamContentPart, isStreamResult, isString };
@@ -1,4 +1,4 @@
1
- import { a as isModelV2, c as isRetry, d as isString, i as isLanguageModelV2, l as isStreamContentPart, n as isErrorAttempt, o as isObject, r as isGenerateResult, s as isResultAttempt, t as isEmbeddingModelV2, u as isStreamResult } from "./utils-DsvLGk6a.js";
1
+ import { a as isModel, c as isRetry, d as isString, i as isLanguageModel, l as isStreamContentPart, n as isErrorAttempt, o as isObject, r as isGenerateResult, s as isResultAttempt, t as isEmbeddingModel, u as isStreamResult } from "./utils-BnNgdhF6.mjs";
2
2
  import { delay } from "@ai-sdk/provider-utils";
3
3
  import { getErrorMessage } from "@ai-sdk/provider";
4
4
  import { RetryError } from "ai";
@@ -14,7 +14,7 @@ function calculateExponentialBackoff(baseDelay, backoffFactor = 1, attempts) {
14
14
  //#endregion
15
15
  //#region src/get-model-key.ts
16
16
  /**
17
- * Generate a unique key for a LanguageModelV2 instance.
17
+ * Generate a unique key for a LanguageModel instance.
18
18
  */
19
19
  const getModelKey = (model) => {
20
20
  return `${model.provider}/${model.modelId}`;
@@ -83,7 +83,7 @@ function prepareRetryError(error, attempts) {
83
83
  //#endregion
84
84
  //#region src/retryable-embedding-model.ts
85
85
  var RetryableEmbeddingModel = class {
86
- specificationVersion = "v2";
86
+ specificationVersion = "v3";
87
87
  baseModel;
88
88
  currentModel;
89
89
  options;
@@ -226,7 +226,7 @@ var RetryableEmbeddingModel = class {
226
226
  //#endregion
227
227
  //#region src/retryable-language-model.ts
228
228
  var RetryableLanguageModel = class {
229
- specificationVersion = "v2";
229
+ specificationVersion = "v3";
230
230
  baseModel;
231
231
  currentModel;
232
232
  options;
@@ -518,4 +518,4 @@ function createRetryable(options) {
518
518
  }
519
519
 
520
520
  //#endregion
521
- export { createRetryable, getModelKey, isEmbeddingModelV2, isErrorAttempt, isGenerateResult, isLanguageModelV2, isModelV2, isObject, isResultAttempt, isRetry, isStreamContentPart, isStreamResult, isString };
521
+ export { createRetryable, getModelKey, isEmbeddingModel, isErrorAttempt, isGenerateResult, isLanguageModel, isModel, isObject, isResultAttempt, isRetry, isStreamContentPart, isStreamResult, isString };
@@ -1,17 +1,17 @@
1
- import { h as RetryableOptions, i as LanguageModelV2, p as Retryable, t as EmbeddingModelV2 } from "../types-BuPozWMn.js";
1
+ import { _ as Retryable, a as LanguageModel, t as EmbeddingModel, y as RetryableOptions } from "../types-D7Pm83wM.mjs";
2
2
 
3
3
  //#region src/retryables/content-filter-triggered.d.ts
4
4
 
5
5
  /**
6
6
  * Fallback to a different model if the content filter was triggered.
7
7
  */
8
- declare function contentFilterTriggered<MODEL extends LanguageModelV2>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
8
+ declare function contentFilterTriggered<MODEL extends LanguageModel>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
9
9
  //#endregion
10
10
  //#region src/retryables/request-not-retryable.d.ts
11
11
  /**
12
12
  * Fallback to a different model if the error is non-retryable.
13
13
  */
14
- declare function requestNotRetryable<MODEL extends LanguageModelV2 | EmbeddingModelV2>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
14
+ declare function requestNotRetryable<MODEL extends LanguageModel | EmbeddingModel>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
15
15
  //#endregion
16
16
  //#region src/retryables/request-timeout.d.ts
17
17
  /**
@@ -19,7 +19,7 @@ declare function requestNotRetryable<MODEL extends LanguageModelV2 | EmbeddingMo
19
19
  * Use in combination with the `abortSignal` option.
20
20
  * If no timeout is specified, a default of 60 seconds is used.
21
21
  */
22
- declare function requestTimeout<MODEL extends LanguageModelV2 | EmbeddingModelV2>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
22
+ declare function requestTimeout<MODEL extends LanguageModel | EmbeddingModel>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
23
23
  //#endregion
24
24
  //#region src/retryables/retry-after-delay.d.ts
25
25
  /**
@@ -27,7 +27,7 @@ declare function requestTimeout<MODEL extends LanguageModelV2 | EmbeddingModelV2
27
27
  * Uses the `Retry-After` or `Retry-After-Ms` headers if present.
28
28
  * Otherwise uses the specified `delay` and `backoffFactor` if provided.
29
29
  */
30
- declare function retryAfterDelay<MODEL extends LanguageModelV2 | EmbeddingModelV2>(options: RetryableOptions<MODEL>): Retryable<MODEL>;
30
+ declare function retryAfterDelay<MODEL extends LanguageModel | EmbeddingModel>(options: RetryableOptions<MODEL>): Retryable<MODEL>;
31
31
  //#endregion
32
32
  //#region src/retryables/service-overloaded.d.ts
33
33
  /**
@@ -37,13 +37,13 @@ declare function retryAfterDelay<MODEL extends LanguageModelV2 | EmbeddingModelV
37
37
  * - Response with `type: "overloaded_error"`
38
38
  * - Response with a `message` containing "overloaded"
39
39
  */
40
- declare function serviceOverloaded<MODEL extends LanguageModelV2 | EmbeddingModelV2>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
40
+ declare function serviceOverloaded<MODEL extends LanguageModel | EmbeddingModel>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
41
41
  //#endregion
42
42
  //#region src/retryables/service-unavailable.d.ts
43
43
  /**
44
44
  * Fallback to a different model if the provider returns a service unavailable error.
45
45
  * This retryable handles HTTP status code 503 (Service Unavailable).
46
46
  */
47
- declare function serviceUnavailable<MODEL extends LanguageModelV2 | EmbeddingModelV2>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
47
+ declare function serviceUnavailable<MODEL extends LanguageModel | EmbeddingModel>(model: MODEL, options?: RetryableOptions<MODEL>): Retryable<MODEL>;
48
48
  //#endregion
49
49
  export { contentFilterTriggered, requestNotRetryable, requestTimeout, retryAfterDelay, serviceOverloaded, serviceUnavailable };
@@ -1,4 +1,4 @@
1
- import { d as isString, n as isErrorAttempt, o as isObject, s as isResultAttempt } from "../utils-DsvLGk6a.js";
1
+ import { d as isString, n as isErrorAttempt, o as isObject, s as isResultAttempt } from "../utils-BnNgdhF6.mjs";
2
2
  import { isAbortError } from "@ai-sdk/provider-utils";
3
3
  import { APICallError } from "ai";
4
4
 
@@ -0,0 +1,77 @@
1
+ import { ProviderOptions } from "@ai-sdk/provider-utils";
2
+ import { EmbeddingModelV3, LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3StreamPart } from "@ai-sdk/provider";
3
+
4
+ //#region src/types.d.ts
5
+ type EmbeddingModelV3$1<VALUE = any> = EmbeddingModelV3<VALUE>;
6
+ type EmbeddingModel<VALUE = any> = EmbeddingModelV3<VALUE>;
7
+ type LanguageModel = LanguageModelV3;
8
+ type LanguageModelCallOptions = LanguageModelV3CallOptions;
9
+ type LanguageModelStreamPart = LanguageModelV3StreamPart;
10
+ /**
11
+ * Options for creating a retryable model.
12
+ */
13
+ interface RetryableModelOptions<MODEL extends LanguageModel | EmbeddingModel<any>> {
14
+ model: MODEL;
15
+ retries: Retries<MODEL>;
16
+ disabled?: boolean | (() => boolean);
17
+ onError?: (context: RetryContext<MODEL>) => void;
18
+ onRetry?: (context: RetryContext<MODEL>) => void;
19
+ }
20
+ /**
21
+ * The context provided to Retryables with the current attempt and all previous attempts.
22
+ */
23
+ type RetryContext<MODEL extends LanguageModel | EmbeddingModel<any>> = {
24
+ /**
25
+ * Current attempt that caused the retry
26
+ */
27
+ current: RetryAttempt<MODEL>;
28
+ /**
29
+ * All attempts made so far, including the current one
30
+ */
31
+ attempts: Array<RetryAttempt<MODEL>>;
32
+ };
33
+ /**
34
+ * A retry attempt with an error
35
+ */
36
+ type RetryErrorAttempt<MODEL extends LanguageModel | EmbeddingModel<any>> = {
37
+ type: 'error';
38
+ error: unknown;
39
+ result?: undefined;
40
+ model: MODEL;
41
+ };
42
+ /**
43
+ * A retry attempt with a successful result
44
+ */
45
+ type RetryResultAttempt = {
46
+ type: 'result';
47
+ result: LanguageModelGenerate;
48
+ error?: undefined;
49
+ model: LanguageModel;
50
+ };
51
+ /**
52
+ * A retry attempt with either an error or a result and the model used
53
+ */
54
+ type RetryAttempt<MODEL extends LanguageModel | EmbeddingModel<any>> = RetryErrorAttempt<MODEL> | RetryResultAttempt;
55
+ /**
56
+ * A model to retry with and the maximum number of attempts for that model.
57
+ */
58
+ type Retry<MODEL extends LanguageModel | EmbeddingModel<any>> = {
59
+ model: MODEL;
60
+ maxAttempts?: number;
61
+ delay?: number;
62
+ backoffFactor?: number;
63
+ providerOptions?: ProviderOptions;
64
+ timeout?: number;
65
+ };
66
+ /**
67
+ * A function that determines whether to retry with a different model based on the current attempt and all previous attempts.
68
+ */
69
+ type Retryable<MODEL extends LanguageModel | EmbeddingModel<any>> = (context: RetryContext<MODEL>) => Retry<MODEL> | Promise<Retry<MODEL>> | undefined;
70
+ type Retries<MODEL extends LanguageModel | EmbeddingModel<any>> = Array<Retryable<MODEL> | Retry<MODEL> | MODEL>;
71
+ type RetryableOptions<MODEL extends LanguageModel | EmbeddingModel<any>> = Partial<Omit<Retry<MODEL>, 'model'>>;
72
+ type LanguageModelGenerate = Awaited<ReturnType<LanguageModel['doGenerate']>>;
73
+ type LanguageModelStream = Awaited<ReturnType<LanguageModel['doStream']>>;
74
+ type EmbeddingModelCallOptions<VALUE> = Parameters<EmbeddingModel<VALUE>['doEmbed']>[0];
75
+ type EmbeddingModelEmbed<VALUE> = Awaited<ReturnType<EmbeddingModel<VALUE>['doEmbed']>>;
76
+ //#endregion
77
+ export { Retryable as _, LanguageModel as a, LanguageModelStream as c, Retries as d, Retry as f, RetryResultAttempt as g, RetryErrorAttempt as h, EmbeddingModelV3$1 as i, LanguageModelStreamPart as l, RetryContext as m, EmbeddingModelCallOptions as n, LanguageModelCallOptions as o, RetryAttempt as p, EmbeddingModelEmbed as r, LanguageModelGenerate as s, EmbeddingModel as t, LanguageModelV3 as u, RetryableModelOptions as v, RetryableOptions as y };
@@ -1,9 +1,9 @@
1
1
  //#region src/utils.ts
2
2
  const isObject = (value) => typeof value === "object" && value !== null;
3
3
  const isString = (value) => typeof value === "string";
4
- const isModelV2 = (model) => isLanguageModelV2(model) || isEmbeddingModelV2(model);
5
- const isLanguageModelV2 = (model) => isObject(model) && "provider" in model && "modelId" in model && "specificationVersion" in model && model.specificationVersion === "v2";
6
- const isEmbeddingModelV2 = (model) => isObject(model) && "provider" in model && "modelId" in model && "specificationVersion" in model && model.specificationVersion === "v2";
4
+ const isModel = (model) => isLanguageModel(model) || isEmbeddingModel(model);
5
+ const isLanguageModel = (model) => isObject(model) && "provider" in model && "modelId" in model && "specificationVersion" in model && model.specificationVersion === "v3";
6
+ const isEmbeddingModel = (model) => isObject(model) && "provider" in model && "modelId" in model && "specificationVersion" in model && model.specificationVersion === "v3";
7
7
  const isStreamResult = (result) => "stream" in result;
8
8
  const isGenerateResult = (result) => "content" in result;
9
9
  /**
@@ -29,7 +29,7 @@ const isStreamContentPart = (part) => {
29
29
  /**
30
30
  * Type guard to check if a value is a Retry object (has a model property with a MODEL)
31
31
  */
32
- const isRetry = (value) => isObject(value) && "model" in value && isModelV2(value.model);
32
+ const isRetry = (value) => isObject(value) && "model" in value && isModel(value.model);
33
33
 
34
34
  //#endregion
35
- export { isModelV2 as a, isRetry as c, isString as d, isLanguageModelV2 as i, isStreamContentPart as l, isErrorAttempt as n, isObject as o, isGenerateResult as r, isResultAttempt as s, isEmbeddingModelV2 as t, isStreamResult as u };
35
+ export { isModel as a, isRetry as c, isString as d, isLanguageModel as i, isStreamContentPart as l, isErrorAttempt as n, isObject as o, isGenerateResult as r, isResultAttempt as s, isEmbeddingModel as t, isStreamResult as u };
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "ai-retry",
3
- "version": "0.10.0",
3
+ "version": "1.0.0-beta.0",
4
4
  "description": "AI SDK Retry",
5
- "main": "./dist/index.js",
6
- "module": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
5
+ "main": "./dist/index.mjs",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.mts",
8
8
  "type": "module",
9
9
  "files": [
10
10
  "dist"
11
11
  ],
12
12
  "exports": {
13
- ".": "./dist/index.js",
14
- "./retryables": "./dist/retryables/index.js",
13
+ ".": "./dist/index.mjs",
14
+ "./retryables": "./dist/retryables/index.mjs",
15
15
  "./package.json": "./package.json"
16
16
  },
17
17
  "publishConfig": {
@@ -30,32 +30,33 @@
30
30
  "url": "git+https://github.com/zirkelc/ai-retry.git"
31
31
  },
32
32
  "peerDependencies": {
33
- "ai": "5.x"
33
+ "ai": "6.x"
34
34
  },
35
35
  "devDependencies": {
36
- "@ai-sdk/anthropic": "^2.0.18",
37
- "@ai-sdk/azure": "^2.0.30",
38
- "@ai-sdk/groq": "^2.0.24",
39
- "@ai-sdk/openai": "^2.0.53",
36
+ "@ai-sdk/anthropic": "3.0.0-beta.59",
37
+ "@ai-sdk/azure": "3.0.0-beta.68",
38
+ "@ai-sdk/groq": "3.0.0-beta.36",
39
+ "@ai-sdk/openai": "3.0.0-beta.66",
40
+ "@ai-sdk/test-server": "1.0.0-beta.1",
40
41
  "@arethetypeswrong/cli": "^0.18.2",
41
- "@biomejs/biome": "^2.2.4",
42
+ "@biomejs/biome": "^2.3.7",
42
43
  "@total-typescript/tsconfig": "^1.0.4",
43
- "@types/node": "^24.3.3",
44
- "ai": "^5.0.44",
44
+ "@types/node": "^24.10.1",
45
+ "ai": "6.0.0-beta.116",
45
46
  "husky": "^9.1.7",
46
- "msw": "^2.11.2",
47
+ "msw": "^2.12.3",
47
48
  "pkg-pr-new": "^0.0.60",
48
- "publint": "^0.3.13",
49
- "tsdown": "^0.15.9",
50
- "tsx": "^4.20.5",
51
- "typescript": "^5.9.2",
49
+ "publint": "^0.3.15",
50
+ "tsdown": "^0.16.7",
51
+ "tsx": "^4.20.6",
52
+ "typescript": "^5.9.3",
52
53
  "unbuild": "^3.6.1",
53
- "vitest": "^3.2.4",
54
- "zod": "^4.1.8"
54
+ "vitest": "^4.0.14",
55
+ "zod": "^4.1.13"
55
56
  },
56
57
  "dependencies": {
57
- "@ai-sdk/provider": "^2.0.0",
58
- "@ai-sdk/provider-utils": "^3.0.9"
58
+ "@ai-sdk/provider": "3.0.0-beta.17",
59
+ "@ai-sdk/provider-utils": "4.0.0-beta.34"
59
60
  },
60
61
  "scripts": {
61
62
  "publish:alpha": "pnpm version prerelease --preid alpha && pnpm publish --tag alpha",
package/dist/index.d.ts DELETED
@@ -1,74 +0,0 @@
1
- import { a as LanguageModelV2Generate, c as Retry, d as RetryErrorAttempt, f as RetryResultAttempt, h as RetryableOptions, i as LanguageModelV2, l as RetryAttempt, m as RetryableModelOptions, n as EmbeddingModelV2CallOptions, o as LanguageModelV2Stream, p as Retryable, r as EmbeddingModelV2Embed, s as Retries, t as EmbeddingModelV2, u as RetryContext } from "./types-BuPozWMn.js";
2
- import * as _ai_sdk_provider0 from "@ai-sdk/provider";
3
- import { LanguageModelV2 as LanguageModelV2$1, LanguageModelV2StreamPart } from "@ai-sdk/provider";
4
-
5
- //#region src/create-retryable-model.d.ts
6
- declare function createRetryable<MODEL$1 extends LanguageModelV2>(options: RetryableModelOptions<MODEL$1>): LanguageModelV2;
7
- declare function createRetryable<MODEL$1 extends EmbeddingModelV2>(options: RetryableModelOptions<MODEL$1>): EmbeddingModelV2;
8
- //#endregion
9
- //#region src/get-model-key.d.ts
10
- /**
11
- * Generate a unique key for a LanguageModelV2 instance.
12
- */
13
- declare const getModelKey: (model: LanguageModelV2 | EmbeddingModelV2) => string;
14
- //#endregion
15
- //#region src/utils.d.ts
16
- declare const isObject: (value: unknown) => value is Record<string, unknown>;
17
- declare const isString: (value: unknown) => value is string;
18
- declare const isModelV2: (model: unknown) => model is LanguageModelV2$1 | EmbeddingModelV2;
19
- declare const isLanguageModelV2: (model: unknown) => model is LanguageModelV2$1;
20
- declare const isEmbeddingModelV2: (model: unknown) => model is EmbeddingModelV2;
21
- declare const isStreamResult: (result: LanguageModelV2Generate | LanguageModelV2Stream) => result is LanguageModelV2Stream;
22
- declare const isGenerateResult: (result: LanguageModelV2Generate | LanguageModelV2Stream) => result is LanguageModelV2Generate;
23
- /**
24
- * Type guard to check if a retry attempt is an error attempt
25
- */
26
- declare function isErrorAttempt(attempt: RetryAttempt<any>): attempt is RetryErrorAttempt<any>;
27
- /**
28
- * Type guard to check if a retry attempt is a result attempt
29
- */
30
- declare function isResultAttempt(attempt: RetryAttempt<any>): attempt is RetryResultAttempt;
31
- /**
32
- * Check if a stream part is a content part (e.g., text delta, reasoning delta, source, tool call, tool result).
33
- * These types are also emitted by `onChunk` callbacks.
34
- * @see https://github.com/vercel/ai/blob/1fe4bd4144bff927f5319d9d206e782a73979ccb/packages/ai/src/generate-text/stream-text.ts#L686-L697
35
- */
36
- declare const isStreamContentPart: (part: LanguageModelV2StreamPart) => part is _ai_sdk_provider0.LanguageModelV2Source | _ai_sdk_provider0.LanguageModelV2ToolCall | {
37
- type: "tool-result";
38
- toolCallId: string;
39
- toolName: string;
40
- result: unknown;
41
- isError?: boolean;
42
- providerExecuted?: boolean;
43
- providerMetadata?: _ai_sdk_provider0.SharedV2ProviderMetadata;
44
- } | {
45
- type: "text-delta";
46
- id: string;
47
- providerMetadata?: _ai_sdk_provider0.SharedV2ProviderMetadata;
48
- delta: string;
49
- } | {
50
- type: "reasoning-delta";
51
- id: string;
52
- providerMetadata?: _ai_sdk_provider0.SharedV2ProviderMetadata;
53
- delta: string;
54
- } | {
55
- type: "tool-input-start";
56
- id: string;
57
- toolName: string;
58
- providerMetadata?: _ai_sdk_provider0.SharedV2ProviderMetadata;
59
- providerExecuted?: boolean;
60
- } | {
61
- type: "tool-input-delta";
62
- id: string;
63
- delta: string;
64
- providerMetadata?: _ai_sdk_provider0.SharedV2ProviderMetadata;
65
- } | {
66
- type: "raw";
67
- rawValue: unknown;
68
- };
69
- /**
70
- * Type guard to check if a value is a Retry object (has a model property with a MODEL)
71
- */
72
- declare const isRetry: <MODEL extends LanguageModelV2$1 | EmbeddingModelV2>(value: unknown) => value is Retry<MODEL>;
73
- //#endregion
74
- export { EmbeddingModelV2, EmbeddingModelV2CallOptions, EmbeddingModelV2Embed, LanguageModelV2, LanguageModelV2Generate, LanguageModelV2Stream, Retries, Retry, RetryAttempt, RetryContext, RetryErrorAttempt, RetryResultAttempt, Retryable, RetryableModelOptions, RetryableOptions, createRetryable, getModelKey, isEmbeddingModelV2, isErrorAttempt, isGenerateResult, isLanguageModelV2, isModelV2, isObject, isResultAttempt, isRetry, isStreamContentPart, isStreamResult, isString };
@@ -1,72 +0,0 @@
1
- import { ProviderOptions } from "@ai-sdk/provider-utils";
2
- import { EmbeddingModelV2, LanguageModelV2 as LanguageModelV2$1 } from "@ai-sdk/provider";
3
-
4
- //#region src/types.d.ts
5
- type EmbeddingModelV2$1<VALUE = any> = EmbeddingModelV2<VALUE>;
6
- /**
7
- * Options for creating a retryable model.
8
- */
9
- interface RetryableModelOptions<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> {
10
- model: MODEL;
11
- retries: Retries<MODEL>;
12
- onError?: (context: RetryContext<MODEL>) => void;
13
- onRetry?: (context: RetryContext<MODEL>) => void;
14
- }
15
- /**
16
- * The context provided to Retryables with the current attempt and all previous attempts.
17
- */
18
- type RetryContext<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = {
19
- /**
20
- * Current attempt that caused the retry
21
- */
22
- current: RetryAttempt<MODEL>;
23
- /**
24
- * All attempts made so far, including the current one
25
- */
26
- attempts: Array<RetryAttempt<MODEL>>;
27
- };
28
- /**
29
- * A retry attempt with an error
30
- */
31
- type RetryErrorAttempt<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = {
32
- type: 'error';
33
- error: unknown;
34
- result?: undefined;
35
- model: MODEL;
36
- };
37
- /**
38
- * A retry attempt with a successful result
39
- */
40
- type RetryResultAttempt = {
41
- type: 'result';
42
- result: LanguageModelV2Generate;
43
- error?: undefined;
44
- model: LanguageModelV2$1;
45
- };
46
- /**
47
- * A retry attempt with either an error or a result and the model used
48
- */
49
- type RetryAttempt<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = RetryErrorAttempt<MODEL> | RetryResultAttempt;
50
- /**
51
- * A model to retry with and the maximum number of attempts for that model.
52
- */
53
- type Retry<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = {
54
- model: MODEL;
55
- maxAttempts?: number;
56
- delay?: number;
57
- backoffFactor?: number;
58
- providerOptions?: ProviderOptions;
59
- timeout?: number;
60
- };
61
- /**
62
- * A function that determines whether to retry with a different model based on the current attempt and all previous attempts.
63
- */
64
- type Retryable<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = (context: RetryContext<MODEL>) => Retry<MODEL> | Promise<Retry<MODEL>> | undefined;
65
- type Retries<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = Array<Retryable<MODEL> | Retry<MODEL> | MODEL>;
66
- type RetryableOptions<MODEL extends LanguageModelV2$1 | EmbeddingModelV2$1> = Partial<Omit<Retry<MODEL>, 'model'>>;
67
- type LanguageModelV2Generate = Awaited<ReturnType<LanguageModelV2$1['doGenerate']>>;
68
- type LanguageModelV2Stream = Awaited<ReturnType<LanguageModelV2$1['doStream']>>;
69
- type EmbeddingModelV2CallOptions<VALUE> = Parameters<EmbeddingModelV2$1<VALUE>['doEmbed']>[0];
70
- type EmbeddingModelV2Embed<VALUE> = Awaited<ReturnType<EmbeddingModelV2$1<VALUE>['doEmbed']>>;
71
- //#endregion
72
- export { LanguageModelV2Generate as a, Retry as c, RetryErrorAttempt as d, RetryResultAttempt as f, RetryableOptions as h, LanguageModelV2$1 as i, RetryAttempt as l, RetryableModelOptions as m, EmbeddingModelV2CallOptions as n, LanguageModelV2Stream as o, Retryable as p, EmbeddingModelV2Embed as r, Retries as s, EmbeddingModelV2$1 as t, RetryContext as u };