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 +5 -2
- package/dist/index.d.mts +67 -0
- package/dist/{index.js → index.mjs} +5 -5
- package/dist/retryables/{index.d.ts → index.d.mts} +7 -7
- package/dist/retryables/{index.js → index.mjs} +1 -1
- package/dist/types-D7Pm83wM.d.mts +77 -0
- package/dist/{utils-DsvLGk6a.js → utils-BnNgdhF6.mjs} +5 -5
- package/package.json +24 -23
- package/dist/index.d.ts +0 -74
- package/dist/types-BuPozWMn.d.ts +0 -72
package/README.md
CHANGED
|
@@ -19,10 +19,13 @@ It supports two types of retries:
|
|
|
19
19
|
|
|
20
20
|
### Installation
|
|
21
21
|
|
|
22
|
-
|
|
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
|
package/dist/index.d.mts
ADDED
|
@@ -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
|
|
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
|
|
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 = "
|
|
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 = "
|
|
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,
|
|
521
|
+
export { createRetryable, getModelKey, isEmbeddingModel, isErrorAttempt, isGenerateResult, isLanguageModel, isModel, isObject, isResultAttempt, isRetry, isStreamContentPart, isStreamResult, isString };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
5
|
-
const
|
|
6
|
-
const
|
|
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 &&
|
|
32
|
+
const isRetry = (value) => isObject(value) && "model" in value && isModel(value.model);
|
|
33
33
|
|
|
34
34
|
//#endregion
|
|
35
|
-
export {
|
|
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.
|
|
3
|
+
"version": "1.0.0-beta.0",
|
|
4
4
|
"description": "AI SDK Retry",
|
|
5
|
-
"main": "./dist/index.
|
|
6
|
-
"module": "./dist/index.
|
|
7
|
-
"types": "./dist/index.d.
|
|
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.
|
|
14
|
-
"./retryables": "./dist/retryables/index.
|
|
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": "
|
|
33
|
+
"ai": "6.x"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@ai-sdk/anthropic": "
|
|
37
|
-
"@ai-sdk/azure": "
|
|
38
|
-
"@ai-sdk/groq": "
|
|
39
|
-
"@ai-sdk/openai": "
|
|
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.
|
|
42
|
+
"@biomejs/biome": "^2.3.7",
|
|
42
43
|
"@total-typescript/tsconfig": "^1.0.4",
|
|
43
|
-
"@types/node": "^24.
|
|
44
|
-
"ai": "
|
|
44
|
+
"@types/node": "^24.10.1",
|
|
45
|
+
"ai": "6.0.0-beta.116",
|
|
45
46
|
"husky": "^9.1.7",
|
|
46
|
-
"msw": "^2.
|
|
47
|
+
"msw": "^2.12.3",
|
|
47
48
|
"pkg-pr-new": "^0.0.60",
|
|
48
|
-
"publint": "^0.3.
|
|
49
|
-
"tsdown": "^0.
|
|
50
|
-
"tsx": "^4.20.
|
|
51
|
-
"typescript": "^5.9.
|
|
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": "^
|
|
54
|
-
"zod": "^4.1.
|
|
54
|
+
"vitest": "^4.0.14",
|
|
55
|
+
"zod": "^4.1.13"
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
57
|
-
"@ai-sdk/provider": "
|
|
58
|
-
"@ai-sdk/provider-utils": "
|
|
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 };
|
package/dist/types-BuPozWMn.d.ts
DELETED
|
@@ -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 };
|