@ai-sdk/provider-utils 5.0.0-beta.3 → 5.0.0-beta.30
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 +284 -0
- package/dist/index.d.ts +1339 -813
- package/dist/index.js +837 -288
- package/dist/index.js.map +1 -1
- package/dist/test/index.d.ts +2 -1
- package/dist/test/index.js +18 -37
- package/dist/test/index.js.map +1 -1
- package/package.json +13 -13
- package/src/add-additional-properties-to-json-schema.ts +1 -1
- package/src/as-array.ts +12 -0
- package/src/convert-image-model-file-to-data-uri.ts +3 -3
- package/src/convert-inline-file-data-to-uint8-array.ts +30 -0
- package/src/create-tool-name-mapping.ts +6 -22
- package/src/detect-media-type.ts +312 -0
- package/src/filter-nullable.ts +11 -0
- package/src/get-error-message.ts +1 -15
- package/src/get-from-api.ts +2 -2
- package/src/has-required-key.ts +6 -0
- package/src/index.ts +42 -12
- package/src/inject-json-instruction.ts +6 -6
- package/src/is-buffer.ts +9 -0
- package/src/is-json-serializable.ts +29 -0
- package/src/is-provider-reference.ts +21 -0
- package/src/is-url-supported.ts +17 -2
- package/src/load-api-key.ts +1 -1
- package/src/load-setting.ts +1 -1
- package/src/map-reasoning-to-provider.ts +108 -0
- package/src/maybe-promise-like.ts +3 -0
- package/src/parse-json-event-stream.ts +3 -3
- package/src/parse-json.ts +3 -3
- package/src/parse-provider-options.ts +1 -1
- package/src/post-to-api.ts +4 -4
- package/src/provider-defined-tool-factory.ts +129 -0
- package/src/provider-executed-tool-factory.ts +69 -0
- package/src/resolve-full-media-type.ts +49 -0
- package/src/resolve-provider-reference.ts +26 -0
- package/src/resolve.ts +16 -1
- package/src/response-handler.ts +3 -3
- package/src/schema.ts +6 -3
- package/src/secure-json-parse.ts +1 -1
- package/src/serialize-model-options.ts +63 -0
- package/src/streaming-tool-call-tracker.ts +241 -0
- package/src/test/convert-response-stream-to-array.ts +1 -1
- package/src/test/is-node-version.ts +22 -1
- package/src/to-json-schema/zod3-to-json-schema/options.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parse-def.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parse-types.ts +22 -22
- package/src/to-json-schema/zod3-to-json-schema/parsers/array.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/bigint.ts +1 -1
- package/src/to-json-schema/zod3-to-json-schema/parsers/branded.ts +2 -2
- package/src/to-json-schema/zod3-to-json-schema/parsers/catch.ts +2 -2
- package/src/to-json-schema/zod3-to-json-schema/parsers/date.ts +4 -4
- package/src/to-json-schema/zod3-to-json-schema/parsers/default.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/effects.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/enum.ts +1 -1
- package/src/to-json-schema/zod3-to-json-schema/parsers/intersection.ts +5 -5
- package/src/to-json-schema/zod3-to-json-schema/parsers/literal.ts +1 -1
- package/src/to-json-schema/zod3-to-json-schema/parsers/map.ts +4 -5
- package/src/to-json-schema/zod3-to-json-schema/parsers/native-enum.ts +1 -1
- package/src/to-json-schema/zod3-to-json-schema/parsers/never.ts +1 -2
- package/src/to-json-schema/zod3-to-json-schema/parsers/nullable.ts +4 -4
- package/src/to-json-schema/zod3-to-json-schema/parsers/number.ts +1 -1
- package/src/to-json-schema/zod3-to-json-schema/parsers/object.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/optional.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/pipeline.ts +4 -4
- package/src/to-json-schema/zod3-to-json-schema/parsers/promise.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/readonly.ts +2 -2
- package/src/to-json-schema/zod3-to-json-schema/parsers/record.ts +9 -10
- package/src/to-json-schema/zod3-to-json-schema/parsers/set.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/string.ts +2 -2
- package/src/to-json-schema/zod3-to-json-schema/parsers/tuple.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/undefined.ts +1 -2
- package/src/to-json-schema/zod3-to-json-schema/parsers/union.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/parsers/unknown.ts +1 -2
- package/src/to-json-schema/zod3-to-json-schema/refs.ts +3 -3
- package/src/to-json-schema/zod3-to-json-schema/select-parser.ts +2 -2
- package/src/to-json-schema/zod3-to-json-schema/zod3-to-json-schema.ts +3 -3
- package/src/types/assistant-model-message.ts +5 -3
- package/src/types/content-part.ts +102 -24
- package/src/types/context.ts +4 -0
- package/src/types/executable-tool.ts +17 -0
- package/src/types/execute-tool.ts +29 -9
- package/src/types/file-data.ts +48 -0
- package/src/types/index.ts +26 -11
- package/src/types/infer-tool-context.ts +12 -0
- package/src/types/infer-tool-input.ts +7 -0
- package/src/types/infer-tool-output.ts +7 -0
- package/src/types/infer-tool-set-context.ts +15 -0
- package/src/types/model-message.ts +4 -4
- package/src/types/never-optional.ts +7 -0
- package/src/types/provider-options.ts +2 -2
- package/src/types/provider-reference.ts +10 -0
- package/src/types/sensitive-context.ts +9 -0
- package/src/types/system-model-message.ts +1 -1
- package/src/types/tool-approval-request.ts +7 -0
- package/src/types/tool-execute-function.ts +50 -0
- package/src/types/tool-model-message.ts +3 -3
- package/src/types/tool-needs-approval-function.ts +39 -0
- package/src/types/tool-set.ts +22 -0
- package/src/types/tool.ts +251 -222
- package/src/types/user-model-message.ts +2 -2
- package/src/validate-download-url.ts +7 -2
- package/src/validate-types.ts +5 -3
- package/dist/index.d.mts +0 -1458
- package/dist/index.mjs +0 -2759
- package/dist/index.mjs.map +0 -1
- package/dist/test/index.d.mts +0 -17
- package/dist/test/index.mjs +0 -77
- package/dist/test/index.mjs.map +0 -1
- package/src/provider-tool-factory.ts +0 -125
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { tool, Tool, ToolExecuteFunction } from './types/tool';
|
|
2
|
-
import { FlexibleSchema } from './schema';
|
|
3
|
-
|
|
4
|
-
export type ProviderToolFactory<INPUT, ARGS extends object> = <OUTPUT>(
|
|
5
|
-
options: ARGS & {
|
|
6
|
-
execute?: ToolExecuteFunction<INPUT, OUTPUT>;
|
|
7
|
-
needsApproval?: Tool<INPUT, OUTPUT>['needsApproval'];
|
|
8
|
-
toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];
|
|
9
|
-
onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];
|
|
10
|
-
onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];
|
|
11
|
-
onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];
|
|
12
|
-
},
|
|
13
|
-
) => Tool<INPUT, OUTPUT>;
|
|
14
|
-
|
|
15
|
-
export function createProviderToolFactory<INPUT, ARGS extends object>({
|
|
16
|
-
id,
|
|
17
|
-
inputSchema,
|
|
18
|
-
}: {
|
|
19
|
-
id: `${string}.${string}`;
|
|
20
|
-
inputSchema: FlexibleSchema<INPUT>;
|
|
21
|
-
}): ProviderToolFactory<INPUT, ARGS> {
|
|
22
|
-
return <OUTPUT>({
|
|
23
|
-
execute,
|
|
24
|
-
outputSchema,
|
|
25
|
-
needsApproval,
|
|
26
|
-
toModelOutput,
|
|
27
|
-
onInputStart,
|
|
28
|
-
onInputDelta,
|
|
29
|
-
onInputAvailable,
|
|
30
|
-
...args
|
|
31
|
-
}: ARGS & {
|
|
32
|
-
execute?: ToolExecuteFunction<INPUT, OUTPUT>;
|
|
33
|
-
outputSchema?: FlexibleSchema<OUTPUT>;
|
|
34
|
-
needsApproval?: Tool<INPUT, OUTPUT>['needsApproval'];
|
|
35
|
-
toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];
|
|
36
|
-
onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];
|
|
37
|
-
onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];
|
|
38
|
-
onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];
|
|
39
|
-
}): Tool<INPUT, OUTPUT> =>
|
|
40
|
-
tool({
|
|
41
|
-
type: 'provider',
|
|
42
|
-
id,
|
|
43
|
-
args,
|
|
44
|
-
inputSchema,
|
|
45
|
-
outputSchema,
|
|
46
|
-
execute,
|
|
47
|
-
needsApproval,
|
|
48
|
-
toModelOutput,
|
|
49
|
-
onInputStart,
|
|
50
|
-
onInputDelta,
|
|
51
|
-
onInputAvailable,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export type ProviderToolFactoryWithOutputSchema<
|
|
56
|
-
INPUT,
|
|
57
|
-
OUTPUT,
|
|
58
|
-
ARGS extends object,
|
|
59
|
-
> = (
|
|
60
|
-
options: ARGS & {
|
|
61
|
-
execute?: ToolExecuteFunction<INPUT, OUTPUT>;
|
|
62
|
-
needsApproval?: Tool<INPUT, OUTPUT>['needsApproval'];
|
|
63
|
-
toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];
|
|
64
|
-
onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];
|
|
65
|
-
onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];
|
|
66
|
-
onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];
|
|
67
|
-
},
|
|
68
|
-
) => Tool<INPUT, OUTPUT>;
|
|
69
|
-
|
|
70
|
-
export function createProviderToolFactoryWithOutputSchema<
|
|
71
|
-
INPUT,
|
|
72
|
-
OUTPUT,
|
|
73
|
-
ARGS extends object,
|
|
74
|
-
>({
|
|
75
|
-
id,
|
|
76
|
-
inputSchema,
|
|
77
|
-
outputSchema,
|
|
78
|
-
supportsDeferredResults,
|
|
79
|
-
}: {
|
|
80
|
-
id: `${string}.${string}`;
|
|
81
|
-
inputSchema: FlexibleSchema<INPUT>;
|
|
82
|
-
outputSchema: FlexibleSchema<OUTPUT>;
|
|
83
|
-
/**
|
|
84
|
-
* Whether this provider-executed tool supports deferred results.
|
|
85
|
-
*
|
|
86
|
-
* When true, the tool result may not be returned in the same turn as the
|
|
87
|
-
* tool call (e.g., when using programmatic tool calling where a server tool
|
|
88
|
-
* triggers a client-executed tool, and the server tool's result is deferred
|
|
89
|
-
* until the client tool is resolved).
|
|
90
|
-
*
|
|
91
|
-
* @default false
|
|
92
|
-
*/
|
|
93
|
-
supportsDeferredResults?: boolean;
|
|
94
|
-
}): ProviderToolFactoryWithOutputSchema<INPUT, OUTPUT, ARGS> {
|
|
95
|
-
return ({
|
|
96
|
-
execute,
|
|
97
|
-
needsApproval,
|
|
98
|
-
toModelOutput,
|
|
99
|
-
onInputStart,
|
|
100
|
-
onInputDelta,
|
|
101
|
-
onInputAvailable,
|
|
102
|
-
...args
|
|
103
|
-
}: ARGS & {
|
|
104
|
-
execute?: ToolExecuteFunction<INPUT, OUTPUT>;
|
|
105
|
-
needsApproval?: Tool<INPUT, OUTPUT>['needsApproval'];
|
|
106
|
-
toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];
|
|
107
|
-
onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];
|
|
108
|
-
onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];
|
|
109
|
-
onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];
|
|
110
|
-
}): Tool<INPUT, OUTPUT> =>
|
|
111
|
-
tool({
|
|
112
|
-
type: 'provider',
|
|
113
|
-
id,
|
|
114
|
-
args,
|
|
115
|
-
inputSchema,
|
|
116
|
-
outputSchema,
|
|
117
|
-
execute,
|
|
118
|
-
needsApproval,
|
|
119
|
-
toModelOutput,
|
|
120
|
-
onInputStart,
|
|
121
|
-
onInputDelta,
|
|
122
|
-
onInputAvailable,
|
|
123
|
-
supportsDeferredResults,
|
|
124
|
-
});
|
|
125
|
-
}
|