@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.
Files changed (110) hide show
  1. package/CHANGELOG.md +284 -0
  2. package/dist/index.d.ts +1339 -813
  3. package/dist/index.js +837 -288
  4. package/dist/index.js.map +1 -1
  5. package/dist/test/index.d.ts +2 -1
  6. package/dist/test/index.js +18 -37
  7. package/dist/test/index.js.map +1 -1
  8. package/package.json +13 -13
  9. package/src/add-additional-properties-to-json-schema.ts +1 -1
  10. package/src/as-array.ts +12 -0
  11. package/src/convert-image-model-file-to-data-uri.ts +3 -3
  12. package/src/convert-inline-file-data-to-uint8-array.ts +30 -0
  13. package/src/create-tool-name-mapping.ts +6 -22
  14. package/src/detect-media-type.ts +312 -0
  15. package/src/filter-nullable.ts +11 -0
  16. package/src/get-error-message.ts +1 -15
  17. package/src/get-from-api.ts +2 -2
  18. package/src/has-required-key.ts +6 -0
  19. package/src/index.ts +42 -12
  20. package/src/inject-json-instruction.ts +6 -6
  21. package/src/is-buffer.ts +9 -0
  22. package/src/is-json-serializable.ts +29 -0
  23. package/src/is-provider-reference.ts +21 -0
  24. package/src/is-url-supported.ts +17 -2
  25. package/src/load-api-key.ts +1 -1
  26. package/src/load-setting.ts +1 -1
  27. package/src/map-reasoning-to-provider.ts +108 -0
  28. package/src/maybe-promise-like.ts +3 -0
  29. package/src/parse-json-event-stream.ts +3 -3
  30. package/src/parse-json.ts +3 -3
  31. package/src/parse-provider-options.ts +1 -1
  32. package/src/post-to-api.ts +4 -4
  33. package/src/provider-defined-tool-factory.ts +129 -0
  34. package/src/provider-executed-tool-factory.ts +69 -0
  35. package/src/resolve-full-media-type.ts +49 -0
  36. package/src/resolve-provider-reference.ts +26 -0
  37. package/src/resolve.ts +16 -1
  38. package/src/response-handler.ts +3 -3
  39. package/src/schema.ts +6 -3
  40. package/src/secure-json-parse.ts +1 -1
  41. package/src/serialize-model-options.ts +63 -0
  42. package/src/streaming-tool-call-tracker.ts +241 -0
  43. package/src/test/convert-response-stream-to-array.ts +1 -1
  44. package/src/test/is-node-version.ts +22 -1
  45. package/src/to-json-schema/zod3-to-json-schema/options.ts +3 -3
  46. package/src/to-json-schema/zod3-to-json-schema/parse-def.ts +3 -3
  47. package/src/to-json-schema/zod3-to-json-schema/parse-types.ts +22 -22
  48. package/src/to-json-schema/zod3-to-json-schema/parsers/array.ts +3 -3
  49. package/src/to-json-schema/zod3-to-json-schema/parsers/bigint.ts +1 -1
  50. package/src/to-json-schema/zod3-to-json-schema/parsers/branded.ts +2 -2
  51. package/src/to-json-schema/zod3-to-json-schema/parsers/catch.ts +2 -2
  52. package/src/to-json-schema/zod3-to-json-schema/parsers/date.ts +4 -4
  53. package/src/to-json-schema/zod3-to-json-schema/parsers/default.ts +3 -3
  54. package/src/to-json-schema/zod3-to-json-schema/parsers/effects.ts +3 -3
  55. package/src/to-json-schema/zod3-to-json-schema/parsers/enum.ts +1 -1
  56. package/src/to-json-schema/zod3-to-json-schema/parsers/intersection.ts +5 -5
  57. package/src/to-json-schema/zod3-to-json-schema/parsers/literal.ts +1 -1
  58. package/src/to-json-schema/zod3-to-json-schema/parsers/map.ts +4 -5
  59. package/src/to-json-schema/zod3-to-json-schema/parsers/native-enum.ts +1 -1
  60. package/src/to-json-schema/zod3-to-json-schema/parsers/never.ts +1 -2
  61. package/src/to-json-schema/zod3-to-json-schema/parsers/nullable.ts +4 -4
  62. package/src/to-json-schema/zod3-to-json-schema/parsers/number.ts +1 -1
  63. package/src/to-json-schema/zod3-to-json-schema/parsers/object.ts +3 -3
  64. package/src/to-json-schema/zod3-to-json-schema/parsers/optional.ts +3 -3
  65. package/src/to-json-schema/zod3-to-json-schema/parsers/pipeline.ts +4 -4
  66. package/src/to-json-schema/zod3-to-json-schema/parsers/promise.ts +3 -3
  67. package/src/to-json-schema/zod3-to-json-schema/parsers/readonly.ts +2 -2
  68. package/src/to-json-schema/zod3-to-json-schema/parsers/record.ts +9 -10
  69. package/src/to-json-schema/zod3-to-json-schema/parsers/set.ts +3 -3
  70. package/src/to-json-schema/zod3-to-json-schema/parsers/string.ts +2 -2
  71. package/src/to-json-schema/zod3-to-json-schema/parsers/tuple.ts +3 -3
  72. package/src/to-json-schema/zod3-to-json-schema/parsers/undefined.ts +1 -2
  73. package/src/to-json-schema/zod3-to-json-schema/parsers/union.ts +3 -3
  74. package/src/to-json-schema/zod3-to-json-schema/parsers/unknown.ts +1 -2
  75. package/src/to-json-schema/zod3-to-json-schema/refs.ts +3 -3
  76. package/src/to-json-schema/zod3-to-json-schema/select-parser.ts +2 -2
  77. package/src/to-json-schema/zod3-to-json-schema/zod3-to-json-schema.ts +3 -3
  78. package/src/types/assistant-model-message.ts +5 -3
  79. package/src/types/content-part.ts +102 -24
  80. package/src/types/context.ts +4 -0
  81. package/src/types/executable-tool.ts +17 -0
  82. package/src/types/execute-tool.ts +29 -9
  83. package/src/types/file-data.ts +48 -0
  84. package/src/types/index.ts +26 -11
  85. package/src/types/infer-tool-context.ts +12 -0
  86. package/src/types/infer-tool-input.ts +7 -0
  87. package/src/types/infer-tool-output.ts +7 -0
  88. package/src/types/infer-tool-set-context.ts +15 -0
  89. package/src/types/model-message.ts +4 -4
  90. package/src/types/never-optional.ts +7 -0
  91. package/src/types/provider-options.ts +2 -2
  92. package/src/types/provider-reference.ts +10 -0
  93. package/src/types/sensitive-context.ts +9 -0
  94. package/src/types/system-model-message.ts +1 -1
  95. package/src/types/tool-approval-request.ts +7 -0
  96. package/src/types/tool-execute-function.ts +50 -0
  97. package/src/types/tool-model-message.ts +3 -3
  98. package/src/types/tool-needs-approval-function.ts +39 -0
  99. package/src/types/tool-set.ts +22 -0
  100. package/src/types/tool.ts +251 -222
  101. package/src/types/user-model-message.ts +2 -2
  102. package/src/validate-download-url.ts +7 -2
  103. package/src/validate-types.ts +5 -3
  104. package/dist/index.d.mts +0 -1458
  105. package/dist/index.mjs +0 -2759
  106. package/dist/index.mjs.map +0 -1
  107. package/dist/test/index.d.mts +0 -17
  108. package/dist/test/index.mjs +0 -77
  109. package/dist/test/index.mjs.map +0 -1
  110. 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
- }