@mastra/server 0.0.0-update-scorers-api-20250801170445 → 0.0.0-usechat-duplicate-20251016110554

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 (234) hide show
  1. package/CHANGELOG.md +4048 -0
  2. package/README.md +0 -5
  3. package/dist/chunk-2PLXW4ZX.cjs +2777 -0
  4. package/dist/chunk-2PLXW4ZX.cjs.map +1 -0
  5. package/dist/chunk-2S4IMB6E.cjs +130 -0
  6. package/dist/chunk-2S4IMB6E.cjs.map +1 -0
  7. package/dist/{chunk-X5SDJOY6.cjs → chunk-3LTO44EP.cjs} +66 -53
  8. package/dist/chunk-3LTO44EP.cjs.map +1 -0
  9. package/dist/{chunk-4US5W7PH.cjs → chunk-3SNGNFUJ.cjs} +23 -15
  10. package/dist/chunk-3SNGNFUJ.cjs.map +1 -0
  11. package/dist/{chunk-OW4FX5TS.js → chunk-4QCXUEAT.js} +10 -3
  12. package/dist/chunk-4QCXUEAT.js.map +1 -0
  13. package/dist/{chunk-SQ7KKIH3.js → chunk-67GYDFSB.js} +22 -5
  14. package/dist/chunk-67GYDFSB.js.map +1 -0
  15. package/dist/{chunk-ILCWPBYQ.cjs → chunk-6ZR275MD.cjs} +23 -5
  16. package/dist/chunk-6ZR275MD.cjs.map +1 -0
  17. package/dist/chunk-7HDOBOGG.cjs +17517 -0
  18. package/dist/chunk-7HDOBOGG.cjs.map +1 -0
  19. package/dist/{chunk-4MQU6AJN.js → chunk-ABRFV4XP.js} +4 -4
  20. package/dist/{chunk-4MQU6AJN.js.map → chunk-ABRFV4XP.js.map} +1 -1
  21. package/dist/{chunk-YS66MFDY.js → chunk-AHB4JCIQ.js} +48 -12
  22. package/dist/chunk-AHB4JCIQ.js.map +1 -0
  23. package/dist/{chunk-TXAQU2XN.js → chunk-AW5BU3RQ.js} +63 -22
  24. package/dist/chunk-AW5BU3RQ.js.map +1 -0
  25. package/dist/chunk-BATEJLED.js +124 -0
  26. package/dist/chunk-BATEJLED.js.map +1 -0
  27. package/dist/chunk-BZLZFHAT.cjs +682 -0
  28. package/dist/chunk-BZLZFHAT.cjs.map +1 -0
  29. package/dist/{chunk-BUOJL3MN.js → chunk-DB63UMTV.js} +220 -89
  30. package/dist/chunk-DB63UMTV.js.map +1 -0
  31. package/dist/{chunk-NCS2OXX6.cjs → chunk-EP3JQDPD.cjs} +4 -4
  32. package/dist/{chunk-NCS2OXX6.cjs.map → chunk-EP3JQDPD.cjs.map} +1 -1
  33. package/dist/chunk-FWO7VQDC.js +17481 -0
  34. package/dist/chunk-FWO7VQDC.js.map +1 -0
  35. package/dist/chunk-FZNS32WJ.js +46 -0
  36. package/dist/chunk-FZNS32WJ.js.map +1 -0
  37. package/dist/{chunk-4QSNRCOT.cjs → chunk-G4PUALCE.cjs} +10 -2
  38. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  39. package/dist/chunk-GU4EWMZB.cjs +769 -0
  40. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  41. package/dist/{chunk-TRWPUPGD.js → chunk-HPXAM2PG.js} +109 -138
  42. package/dist/chunk-HPXAM2PG.js.map +1 -0
  43. package/dist/{chunk-JGVY3KWV.cjs → chunk-I3C4ODGV.cjs} +12 -11
  44. package/dist/chunk-I3C4ODGV.cjs.map +1 -0
  45. package/dist/chunk-JSLAYFEW.js +662 -0
  46. package/dist/chunk-JSLAYFEW.js.map +1 -0
  47. package/dist/chunk-LF2ZLOFP.js +767 -0
  48. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  49. package/dist/{chunk-UVOSITKU.js → chunk-LLUOPR3J.js} +11 -10
  50. package/dist/chunk-LLUOPR3J.js.map +1 -0
  51. package/dist/chunk-LPM6BBAX.cjs +1043 -0
  52. package/dist/chunk-LPM6BBAX.cjs.map +1 -0
  53. package/dist/{chunk-S37KCGOR.cjs → chunk-MQDBNHBT.cjs} +222 -88
  54. package/dist/chunk-MQDBNHBT.cjs.map +1 -0
  55. package/dist/{chunk-G7NVCO5M.js → chunk-MYR4PVGN.js} +3 -3
  56. package/dist/{chunk-G7NVCO5M.js.map → chunk-MYR4PVGN.js.map} +1 -1
  57. package/dist/chunk-O7I5CWRX.cjs +44 -0
  58. package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
  59. package/dist/{chunk-HXIOPAHT.js → chunk-OEOGYAQC.js} +54 -42
  60. package/dist/chunk-OEOGYAQC.js.map +1 -0
  61. package/dist/chunk-OYL5TBJW.cjs +48 -0
  62. package/dist/chunk-OYL5TBJW.cjs.map +1 -0
  63. package/dist/chunk-PR4QN5HX.js +39 -0
  64. package/dist/{chunk-PZ5AY32C.js.map → chunk-PR4QN5HX.js.map} +1 -1
  65. package/dist/{chunk-HWHKM67I.js → chunk-QQXMIP6C.js} +21 -13
  66. package/dist/chunk-QQXMIP6C.js.map +1 -0
  67. package/dist/chunk-RQK4FQUD.js +1012 -0
  68. package/dist/chunk-RQK4FQUD.js.map +1 -0
  69. package/dist/chunk-SIW6CYO3.js +254 -0
  70. package/dist/chunk-SIW6CYO3.js.map +1 -0
  71. package/dist/{chunk-VIGPWTDA.cjs → chunk-SPRRK3P7.cjs} +64 -23
  72. package/dist/chunk-SPRRK3P7.cjs.map +1 -0
  73. package/dist/{chunk-GASWM5HJ.cjs → chunk-TOP25AIO.cjs} +110 -139
  74. package/dist/chunk-TOP25AIO.cjs.map +1 -0
  75. package/dist/{chunk-O4I563YW.cjs → chunk-TRGAMKHX.cjs} +50 -13
  76. package/dist/chunk-TRGAMKHX.cjs.map +1 -0
  77. package/dist/chunk-VY4ENABS.cjs +135 -0
  78. package/dist/chunk-VY4ENABS.cjs.map +1 -0
  79. package/dist/{chunk-BED2O446.cjs → chunk-XN74I6VW.cjs} +7 -7
  80. package/dist/{chunk-BED2O446.cjs.map → chunk-XN74I6VW.cjs.map} +1 -1
  81. package/dist/chunk-XVPBGW6Y.cjs +256 -0
  82. package/dist/chunk-XVPBGW6Y.cjs.map +1 -0
  83. package/dist/chunk-YWOK4F5A.js +131 -0
  84. package/dist/chunk-YWOK4F5A.js.map +1 -0
  85. package/dist/chunk-ZULZ2752.js +2774 -0
  86. package/dist/chunk-ZULZ2752.js.map +1 -0
  87. package/dist/dist-4MVGNSRL.cjs +1150 -0
  88. package/dist/dist-4MVGNSRL.cjs.map +1 -0
  89. package/dist/dist-FZYCV3VB.cjs +940 -0
  90. package/dist/dist-FZYCV3VB.cjs.map +1 -0
  91. package/dist/dist-G2BYZJOC.cjs +928 -0
  92. package/dist/dist-G2BYZJOC.cjs.map +1 -0
  93. package/dist/dist-P4MXBQ3U.cjs +16 -0
  94. package/dist/dist-P4MXBQ3U.cjs.map +1 -0
  95. package/dist/dist-PQZUVLPC.js +937 -0
  96. package/dist/dist-PQZUVLPC.js.map +1 -0
  97. package/dist/dist-R7WYX6LC.js +925 -0
  98. package/dist/dist-R7WYX6LC.js.map +1 -0
  99. package/dist/dist-RFMYFILX.cjs +764 -0
  100. package/dist/dist-RFMYFILX.cjs.map +1 -0
  101. package/dist/dist-X7XR3M3Z.js +1147 -0
  102. package/dist/dist-X7XR3M3Z.js.map +1 -0
  103. package/dist/dist-XVBSOGFK.js +761 -0
  104. package/dist/dist-XVBSOGFK.js.map +1 -0
  105. package/dist/dist-YREX2TJT.js +3 -0
  106. package/dist/dist-YREX2TJT.js.map +1 -0
  107. package/dist/index.cjs +4 -0
  108. package/dist/index.cjs.map +1 -1
  109. package/dist/index.js +3 -0
  110. package/dist/index.js.map +1 -1
  111. package/dist/server/a2a/store.cjs +25 -0
  112. package/dist/server/a2a/store.cjs.map +1 -0
  113. package/dist/server/a2a/store.d.ts +3 -3
  114. package/dist/server/a2a/store.d.ts.map +1 -1
  115. package/dist/server/a2a/store.js +23 -0
  116. package/dist/server/a2a/store.js.map +1 -0
  117. package/dist/server/a2a/tasks.d.ts +7 -7
  118. package/dist/server/a2a/tasks.d.ts.map +1 -1
  119. package/dist/server/handlers/a2a.cjs +11 -11
  120. package/dist/server/handlers/a2a.d.ts +17 -15
  121. package/dist/server/handlers/a2a.d.ts.map +1 -1
  122. package/dist/server/handlers/a2a.js +1 -1
  123. package/dist/server/handlers/agent-builder.cjs +68 -0
  124. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  125. package/dist/server/handlers/agent-builder.d.ts +94 -0
  126. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  127. package/dist/server/handlers/agent-builder.js +3 -0
  128. package/dist/server/handlers/agent-builder.js.map +1 -0
  129. package/dist/server/handlers/agents.cjs +53 -9
  130. package/dist/server/handlers/agents.d.ts +156 -33
  131. package/dist/server/handlers/agents.d.ts.map +1 -1
  132. package/dist/server/handlers/agents.js +1 -1
  133. package/dist/server/handlers/legacyWorkflows.cjs +11 -11
  134. package/dist/server/handlers/legacyWorkflows.d.ts +1 -1
  135. package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -1
  136. package/dist/server/handlers/legacyWorkflows.js +1 -1
  137. package/dist/server/handlers/logs.cjs +4 -4
  138. package/dist/server/handlers/logs.js +1 -1
  139. package/dist/server/handlers/memory.cjs +19 -15
  140. package/dist/server/handlers/memory.d.ts +24 -19
  141. package/dist/server/handlers/memory.d.ts.map +1 -1
  142. package/dist/server/handlers/memory.js +1 -1
  143. package/dist/server/handlers/observability.cjs +24 -0
  144. package/dist/server/handlers/observability.cjs.map +1 -0
  145. package/dist/server/handlers/observability.d.ts +49 -0
  146. package/dist/server/handlers/observability.d.ts.map +1 -0
  147. package/dist/server/handlers/observability.js +3 -0
  148. package/dist/server/handlers/observability.js.map +1 -0
  149. package/dist/server/handlers/scores.cjs +7 -7
  150. package/dist/server/handlers/scores.d.ts +110 -7
  151. package/dist/server/handlers/scores.d.ts.map +1 -1
  152. package/dist/server/handlers/scores.js +1 -1
  153. package/dist/server/handlers/telemetry.cjs +7 -3
  154. package/dist/server/handlers/telemetry.d.ts +2 -1
  155. package/dist/server/handlers/telemetry.d.ts.map +1 -1
  156. package/dist/server/handlers/telemetry.js +1 -1
  157. package/dist/server/handlers/tools.cjs +9 -5
  158. package/dist/server/handlers/tools.d.ts +5 -1
  159. package/dist/server/handlers/tools.d.ts.map +1 -1
  160. package/dist/server/handlers/tools.js +1 -1
  161. package/dist/server/handlers/utils.cjs +6 -2
  162. package/dist/server/handlers/utils.d.ts +6 -0
  163. package/dist/server/handlers/utils.d.ts.map +1 -1
  164. package/dist/server/handlers/utils.js +1 -1
  165. package/dist/server/handlers/vector.cjs +7 -7
  166. package/dist/server/handlers/vector.d.ts +1 -1
  167. package/dist/server/handlers/vector.js +1 -1
  168. package/dist/server/handlers/voice.cjs +5 -5
  169. package/dist/server/handlers/voice.d.ts +7 -5
  170. package/dist/server/handlers/voice.d.ts.map +1 -1
  171. package/dist/server/handlers/voice.js +1 -1
  172. package/dist/server/handlers/workflows.cjs +28 -16
  173. package/dist/server/handlers/workflows.d.ts +37 -34
  174. package/dist/server/handlers/workflows.d.ts.map +1 -1
  175. package/dist/server/handlers/workflows.js +1 -1
  176. package/dist/server/handlers.cjs +38 -33
  177. package/dist/server/handlers.d.ts +13 -12
  178. package/dist/server/handlers.d.ts.map +1 -1
  179. package/dist/server/handlers.js +13 -12
  180. package/dist/server/utils.d.ts +44 -0
  181. package/dist/server/utils.d.ts.map +1 -0
  182. package/dist/token-53CFGXUO.cjs +64 -0
  183. package/dist/token-53CFGXUO.cjs.map +1 -0
  184. package/dist/token-WAEKDUVY.js +62 -0
  185. package/dist/token-WAEKDUVY.js.map +1 -0
  186. package/dist/token-util-LY37VCIN.js +7 -0
  187. package/dist/token-util-LY37VCIN.js.map +1 -0
  188. package/dist/token-util-S4A355II.cjs +9 -0
  189. package/dist/token-util-S4A355II.cjs.map +1 -0
  190. package/package.json +36 -14
  191. package/dist/chunk-2XIJW7SV.cjs +0 -310
  192. package/dist/chunk-2XIJW7SV.cjs.map +0 -1
  193. package/dist/chunk-4CEZIJWJ.cjs +0 -150
  194. package/dist/chunk-4CEZIJWJ.cjs.map +0 -1
  195. package/dist/chunk-4QSNRCOT.cjs.map +0 -1
  196. package/dist/chunk-4US5W7PH.cjs.map +0 -1
  197. package/dist/chunk-7FHF55WA.js +0 -2041
  198. package/dist/chunk-7FHF55WA.js.map +0 -1
  199. package/dist/chunk-BUOJL3MN.js.map +0 -1
  200. package/dist/chunk-GASWM5HJ.cjs.map +0 -1
  201. package/dist/chunk-HWHKM67I.js.map +0 -1
  202. package/dist/chunk-HXIOPAHT.js.map +0 -1
  203. package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
  204. package/dist/chunk-JGVY3KWV.cjs.map +0 -1
  205. package/dist/chunk-LRUH33B4.cjs +0 -2044
  206. package/dist/chunk-LRUH33B4.cjs.map +0 -1
  207. package/dist/chunk-O4I563YW.cjs.map +0 -1
  208. package/dist/chunk-OW4FX5TS.js.map +0 -1
  209. package/dist/chunk-PZ5AY32C.js +0 -9
  210. package/dist/chunk-Q7SFCCGT.cjs +0 -11
  211. package/dist/chunk-S37KCGOR.cjs.map +0 -1
  212. package/dist/chunk-SQ7KKIH3.js.map +0 -1
  213. package/dist/chunk-TRWPUPGD.js.map +0 -1
  214. package/dist/chunk-TXAQU2XN.js.map +0 -1
  215. package/dist/chunk-UVOSITKU.js.map +0 -1
  216. package/dist/chunk-VIGPWTDA.cjs.map +0 -1
  217. package/dist/chunk-VOY6MGKA.js +0 -301
  218. package/dist/chunk-VOY6MGKA.js.map +0 -1
  219. package/dist/chunk-X5SDJOY6.cjs.map +0 -1
  220. package/dist/chunk-Y3J45CVZ.js +0 -144
  221. package/dist/chunk-Y3J45CVZ.js.map +0 -1
  222. package/dist/chunk-YS66MFDY.js.map +0 -1
  223. package/dist/server/handlers/network.cjs +0 -24
  224. package/dist/server/handlers/network.cjs.map +0 -1
  225. package/dist/server/handlers/network.d.ts +0 -50
  226. package/dist/server/handlers/network.d.ts.map +0 -1
  227. package/dist/server/handlers/network.js +0 -3
  228. package/dist/server/handlers/network.js.map +0 -1
  229. package/dist/server/handlers/vNextNetwork.cjs +0 -220
  230. package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
  231. package/dist/server/handlers/vNextNetwork.d.ts +0 -179
  232. package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
  233. package/dist/server/handlers/vNextNetwork.js +0 -213
  234. package/dist/server/handlers/vNextNetwork.js.map +0 -1
@@ -0,0 +1,1147 @@
1
+ import { createJsonErrorResponseHandler, withoutTrailingSlash, loadApiKey, parseProviderOptions, UnsupportedFunctionalityError, combineHeaders, resolve, postJsonToApi, createJsonResponseHandler, createEventSourceResponseHandler, convertUint8ArrayToBase64, NoSuchModelError } from './chunk-RQK4FQUD.js';
2
+ import { z } from 'zod';
3
+
4
+ var anthropicErrorDataSchema = z.object({
5
+ type: z.literal("error"),
6
+ error: z.object({
7
+ type: z.string(),
8
+ message: z.string()
9
+ })
10
+ });
11
+ var anthropicFailedResponseHandler = createJsonErrorResponseHandler({
12
+ errorSchema: anthropicErrorDataSchema,
13
+ errorToMessage: (data) => data.error.message
14
+ });
15
+ function prepareTools(mode) {
16
+ var _a;
17
+ const tools = ((_a = mode.tools) == null ? void 0 : _a.length) ? mode.tools : void 0;
18
+ const toolWarnings = [];
19
+ const betas = /* @__PURE__ */ new Set();
20
+ if (tools == null) {
21
+ return { tools: void 0, tool_choice: void 0, toolWarnings, betas };
22
+ }
23
+ const anthropicTools2 = [];
24
+ for (const tool of tools) {
25
+ switch (tool.type) {
26
+ case "function":
27
+ anthropicTools2.push({
28
+ name: tool.name,
29
+ description: tool.description,
30
+ input_schema: tool.parameters
31
+ });
32
+ break;
33
+ case "provider-defined":
34
+ switch (tool.id) {
35
+ case "anthropic.computer_20250124":
36
+ betas.add("computer-use-2025-01-24");
37
+ anthropicTools2.push({
38
+ name: tool.name,
39
+ type: "computer_20250124",
40
+ display_width_px: tool.args.displayWidthPx,
41
+ display_height_px: tool.args.displayHeightPx,
42
+ display_number: tool.args.displayNumber
43
+ });
44
+ break;
45
+ case "anthropic.computer_20241022":
46
+ betas.add("computer-use-2024-10-22");
47
+ anthropicTools2.push({
48
+ name: tool.name,
49
+ type: "computer_20241022",
50
+ display_width_px: tool.args.displayWidthPx,
51
+ display_height_px: tool.args.displayHeightPx,
52
+ display_number: tool.args.displayNumber
53
+ });
54
+ break;
55
+ case "anthropic.text_editor_20250124":
56
+ betas.add("computer-use-2025-01-24");
57
+ anthropicTools2.push({
58
+ name: tool.name,
59
+ type: "text_editor_20250124"
60
+ });
61
+ break;
62
+ case "anthropic.text_editor_20241022":
63
+ betas.add("computer-use-2024-10-22");
64
+ anthropicTools2.push({
65
+ name: tool.name,
66
+ type: "text_editor_20241022"
67
+ });
68
+ break;
69
+ case "anthropic.bash_20250124":
70
+ betas.add("computer-use-2025-01-24");
71
+ anthropicTools2.push({
72
+ name: tool.name,
73
+ type: "bash_20250124"
74
+ });
75
+ break;
76
+ case "anthropic.bash_20241022":
77
+ betas.add("computer-use-2024-10-22");
78
+ anthropicTools2.push({
79
+ name: tool.name,
80
+ type: "bash_20241022"
81
+ });
82
+ break;
83
+ default:
84
+ toolWarnings.push({ type: "unsupported-tool", tool });
85
+ break;
86
+ }
87
+ break;
88
+ default:
89
+ toolWarnings.push({ type: "unsupported-tool", tool });
90
+ break;
91
+ }
92
+ }
93
+ const toolChoice = mode.toolChoice;
94
+ if (toolChoice == null) {
95
+ return {
96
+ tools: anthropicTools2,
97
+ tool_choice: void 0,
98
+ toolWarnings,
99
+ betas
100
+ };
101
+ }
102
+ const type = toolChoice.type;
103
+ switch (type) {
104
+ case "auto":
105
+ return {
106
+ tools: anthropicTools2,
107
+ tool_choice: { type: "auto" },
108
+ toolWarnings,
109
+ betas
110
+ };
111
+ case "required":
112
+ return {
113
+ tools: anthropicTools2,
114
+ tool_choice: { type: "any" },
115
+ toolWarnings,
116
+ betas
117
+ };
118
+ case "none":
119
+ return { tools: void 0, tool_choice: void 0, toolWarnings, betas };
120
+ case "tool":
121
+ return {
122
+ tools: anthropicTools2,
123
+ tool_choice: { type: "tool", name: toolChoice.toolName },
124
+ toolWarnings,
125
+ betas
126
+ };
127
+ default: {
128
+ const _exhaustiveCheck = type;
129
+ throw new UnsupportedFunctionalityError({
130
+ functionality: `Unsupported tool choice type: ${_exhaustiveCheck}`
131
+ });
132
+ }
133
+ }
134
+ }
135
+ function convertToAnthropicMessagesPrompt({
136
+ prompt,
137
+ sendReasoning,
138
+ warnings
139
+ }) {
140
+ var _a, _b, _c, _d;
141
+ const betas = /* @__PURE__ */ new Set();
142
+ const blocks = groupIntoBlocks(prompt);
143
+ let system = void 0;
144
+ const messages = [];
145
+ function getCacheControl(providerMetadata) {
146
+ var _a2;
147
+ const anthropic2 = providerMetadata == null ? void 0 : providerMetadata.anthropic;
148
+ const cacheControlValue = (_a2 = anthropic2 == null ? void 0 : anthropic2.cacheControl) != null ? _a2 : anthropic2 == null ? void 0 : anthropic2.cache_control;
149
+ return cacheControlValue;
150
+ }
151
+ for (let i = 0; i < blocks.length; i++) {
152
+ const block = blocks[i];
153
+ const isLastBlock = i === blocks.length - 1;
154
+ const type = block.type;
155
+ switch (type) {
156
+ case "system": {
157
+ if (system != null) {
158
+ throw new UnsupportedFunctionalityError({
159
+ functionality: "Multiple system messages that are separated by user/assistant messages"
160
+ });
161
+ }
162
+ system = block.messages.map(({ content, providerMetadata }) => ({
163
+ type: "text",
164
+ text: content,
165
+ cache_control: getCacheControl(providerMetadata)
166
+ }));
167
+ break;
168
+ }
169
+ case "user": {
170
+ const anthropicContent = [];
171
+ for (const message of block.messages) {
172
+ const { role, content } = message;
173
+ switch (role) {
174
+ case "user": {
175
+ for (let j = 0; j < content.length; j++) {
176
+ const part = content[j];
177
+ const isLastPart = j === content.length - 1;
178
+ const cacheControl = (_a = getCacheControl(part.providerMetadata)) != null ? _a : isLastPart ? getCacheControl(message.providerMetadata) : void 0;
179
+ switch (part.type) {
180
+ case "text": {
181
+ anthropicContent.push({
182
+ type: "text",
183
+ text: part.text,
184
+ cache_control: cacheControl
185
+ });
186
+ break;
187
+ }
188
+ case "image": {
189
+ anthropicContent.push({
190
+ type: "image",
191
+ source: part.image instanceof URL ? {
192
+ type: "url",
193
+ url: part.image.toString()
194
+ } : {
195
+ type: "base64",
196
+ media_type: (_b = part.mimeType) != null ? _b : "image/jpeg",
197
+ data: convertUint8ArrayToBase64(part.image)
198
+ },
199
+ cache_control: cacheControl
200
+ });
201
+ break;
202
+ }
203
+ case "file": {
204
+ if (part.mimeType !== "application/pdf") {
205
+ throw new UnsupportedFunctionalityError({
206
+ functionality: "Non-PDF files in user messages"
207
+ });
208
+ }
209
+ betas.add("pdfs-2024-09-25");
210
+ anthropicContent.push({
211
+ type: "document",
212
+ source: part.data instanceof URL ? {
213
+ type: "url",
214
+ url: part.data.toString()
215
+ } : {
216
+ type: "base64",
217
+ media_type: "application/pdf",
218
+ data: part.data
219
+ },
220
+ cache_control: cacheControl
221
+ });
222
+ break;
223
+ }
224
+ }
225
+ }
226
+ break;
227
+ }
228
+ case "tool": {
229
+ for (let i2 = 0; i2 < content.length; i2++) {
230
+ const part = content[i2];
231
+ const isLastPart = i2 === content.length - 1;
232
+ const cacheControl = (_c = getCacheControl(part.providerMetadata)) != null ? _c : isLastPart ? getCacheControl(message.providerMetadata) : void 0;
233
+ const toolResultContent = part.content != null ? part.content.map((part2) => {
234
+ var _a2;
235
+ switch (part2.type) {
236
+ case "text":
237
+ return {
238
+ type: "text",
239
+ text: part2.text,
240
+ cache_control: void 0
241
+ };
242
+ case "image":
243
+ return {
244
+ type: "image",
245
+ source: {
246
+ type: "base64",
247
+ media_type: (_a2 = part2.mimeType) != null ? _a2 : "image/jpeg",
248
+ data: part2.data
249
+ },
250
+ cache_control: void 0
251
+ };
252
+ }
253
+ }) : JSON.stringify(part.result);
254
+ anthropicContent.push({
255
+ type: "tool_result",
256
+ tool_use_id: part.toolCallId,
257
+ content: toolResultContent,
258
+ is_error: part.isError,
259
+ cache_control: cacheControl
260
+ });
261
+ }
262
+ break;
263
+ }
264
+ default: {
265
+ const _exhaustiveCheck = role;
266
+ throw new Error(`Unsupported role: ${_exhaustiveCheck}`);
267
+ }
268
+ }
269
+ }
270
+ messages.push({ role: "user", content: anthropicContent });
271
+ break;
272
+ }
273
+ case "assistant": {
274
+ const anthropicContent = [];
275
+ for (let j = 0; j < block.messages.length; j++) {
276
+ const message = block.messages[j];
277
+ const isLastMessage = j === block.messages.length - 1;
278
+ const { content } = message;
279
+ for (let k = 0; k < content.length; k++) {
280
+ const part = content[k];
281
+ const isLastContentPart = k === content.length - 1;
282
+ const cacheControl = (_d = getCacheControl(part.providerMetadata)) != null ? _d : isLastContentPart ? getCacheControl(message.providerMetadata) : void 0;
283
+ switch (part.type) {
284
+ case "text": {
285
+ anthropicContent.push({
286
+ type: "text",
287
+ text: (
288
+ // trim the last text part if it's the last message in the block
289
+ // because Anthropic does not allow trailing whitespace
290
+ // in pre-filled assistant responses
291
+ isLastBlock && isLastMessage && isLastContentPart ? part.text.trim() : part.text
292
+ ),
293
+ cache_control: cacheControl
294
+ });
295
+ break;
296
+ }
297
+ case "reasoning": {
298
+ if (sendReasoning) {
299
+ anthropicContent.push({
300
+ type: "thinking",
301
+ thinking: part.text,
302
+ signature: part.signature,
303
+ cache_control: cacheControl
304
+ });
305
+ } else {
306
+ warnings.push({
307
+ type: "other",
308
+ message: "sending reasoning content is disabled for this model"
309
+ });
310
+ }
311
+ break;
312
+ }
313
+ case "redacted-reasoning": {
314
+ anthropicContent.push({
315
+ type: "redacted_thinking",
316
+ data: part.data,
317
+ cache_control: cacheControl
318
+ });
319
+ break;
320
+ }
321
+ case "tool-call": {
322
+ anthropicContent.push({
323
+ type: "tool_use",
324
+ id: part.toolCallId,
325
+ name: part.toolName,
326
+ input: part.args,
327
+ cache_control: cacheControl
328
+ });
329
+ break;
330
+ }
331
+ }
332
+ }
333
+ }
334
+ messages.push({ role: "assistant", content: anthropicContent });
335
+ break;
336
+ }
337
+ default: {
338
+ const _exhaustiveCheck = type;
339
+ throw new Error(`Unsupported type: ${_exhaustiveCheck}`);
340
+ }
341
+ }
342
+ }
343
+ return {
344
+ prompt: { system, messages },
345
+ betas
346
+ };
347
+ }
348
+ function groupIntoBlocks(prompt) {
349
+ const blocks = [];
350
+ let currentBlock = void 0;
351
+ for (const message of prompt) {
352
+ const { role } = message;
353
+ switch (role) {
354
+ case "system": {
355
+ if ((currentBlock == null ? void 0 : currentBlock.type) !== "system") {
356
+ currentBlock = { type: "system", messages: [] };
357
+ blocks.push(currentBlock);
358
+ }
359
+ currentBlock.messages.push(message);
360
+ break;
361
+ }
362
+ case "assistant": {
363
+ if ((currentBlock == null ? void 0 : currentBlock.type) !== "assistant") {
364
+ currentBlock = { type: "assistant", messages: [] };
365
+ blocks.push(currentBlock);
366
+ }
367
+ currentBlock.messages.push(message);
368
+ break;
369
+ }
370
+ case "user": {
371
+ if ((currentBlock == null ? void 0 : currentBlock.type) !== "user") {
372
+ currentBlock = { type: "user", messages: [] };
373
+ blocks.push(currentBlock);
374
+ }
375
+ currentBlock.messages.push(message);
376
+ break;
377
+ }
378
+ case "tool": {
379
+ if ((currentBlock == null ? void 0 : currentBlock.type) !== "user") {
380
+ currentBlock = { type: "user", messages: [] };
381
+ blocks.push(currentBlock);
382
+ }
383
+ currentBlock.messages.push(message);
384
+ break;
385
+ }
386
+ default: {
387
+ const _exhaustiveCheck = role;
388
+ throw new Error(`Unsupported role: ${_exhaustiveCheck}`);
389
+ }
390
+ }
391
+ }
392
+ return blocks;
393
+ }
394
+ function mapAnthropicStopReason(finishReason) {
395
+ switch (finishReason) {
396
+ case "end_turn":
397
+ case "stop_sequence":
398
+ return "stop";
399
+ case "tool_use":
400
+ return "tool-calls";
401
+ case "max_tokens":
402
+ return "length";
403
+ default:
404
+ return "unknown";
405
+ }
406
+ }
407
+ var AnthropicMessagesLanguageModel = class {
408
+ constructor(modelId, settings, config) {
409
+ this.specificationVersion = "v1";
410
+ this.defaultObjectGenerationMode = "tool";
411
+ this.modelId = modelId;
412
+ this.settings = settings;
413
+ this.config = config;
414
+ }
415
+ supportsUrl(url) {
416
+ return url.protocol === "https:";
417
+ }
418
+ get provider() {
419
+ return this.config.provider;
420
+ }
421
+ get supportsImageUrls() {
422
+ return this.config.supportsImageUrls;
423
+ }
424
+ async getArgs({
425
+ mode,
426
+ prompt,
427
+ maxTokens = 4096,
428
+ // 4096: max model output tokens TODO update default in v5
429
+ temperature,
430
+ topP,
431
+ topK,
432
+ frequencyPenalty,
433
+ presencePenalty,
434
+ stopSequences,
435
+ responseFormat,
436
+ seed,
437
+ providerMetadata: providerOptions
438
+ }) {
439
+ var _a, _b, _c;
440
+ const type = mode.type;
441
+ const warnings = [];
442
+ if (frequencyPenalty != null) {
443
+ warnings.push({
444
+ type: "unsupported-setting",
445
+ setting: "frequencyPenalty"
446
+ });
447
+ }
448
+ if (presencePenalty != null) {
449
+ warnings.push({
450
+ type: "unsupported-setting",
451
+ setting: "presencePenalty"
452
+ });
453
+ }
454
+ if (seed != null) {
455
+ warnings.push({
456
+ type: "unsupported-setting",
457
+ setting: "seed"
458
+ });
459
+ }
460
+ if (responseFormat != null && responseFormat.type !== "text") {
461
+ warnings.push({
462
+ type: "unsupported-setting",
463
+ setting: "responseFormat",
464
+ details: "JSON response format is not supported."
465
+ });
466
+ }
467
+ const { prompt: messagesPrompt, betas: messagesBetas } = convertToAnthropicMessagesPrompt({
468
+ prompt,
469
+ sendReasoning: (_a = this.settings.sendReasoning) != null ? _a : true,
470
+ warnings
471
+ });
472
+ const anthropicOptions = parseProviderOptions({
473
+ provider: "anthropic",
474
+ providerOptions,
475
+ schema: anthropicProviderOptionsSchema
476
+ });
477
+ const isThinking = ((_b = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _b.type) === "enabled";
478
+ const thinkingBudget = (_c = anthropicOptions == null ? void 0 : anthropicOptions.thinking) == null ? void 0 : _c.budgetTokens;
479
+ const baseArgs = {
480
+ // model id:
481
+ model: this.modelId,
482
+ // standardized settings:
483
+ max_tokens: maxTokens,
484
+ temperature,
485
+ top_k: topK,
486
+ top_p: topP,
487
+ stop_sequences: stopSequences,
488
+ // provider specific settings:
489
+ ...isThinking && {
490
+ thinking: { type: "enabled", budget_tokens: thinkingBudget }
491
+ },
492
+ // prompt:
493
+ system: messagesPrompt.system,
494
+ messages: messagesPrompt.messages
495
+ };
496
+ if (isThinking) {
497
+ if (thinkingBudget == null) {
498
+ throw new UnsupportedFunctionalityError({
499
+ functionality: "thinking requires a budget"
500
+ });
501
+ }
502
+ if (baseArgs.temperature != null) {
503
+ baseArgs.temperature = void 0;
504
+ warnings.push({
505
+ type: "unsupported-setting",
506
+ setting: "temperature",
507
+ details: "temperature is not supported when thinking is enabled"
508
+ });
509
+ }
510
+ if (topK != null) {
511
+ baseArgs.top_k = void 0;
512
+ warnings.push({
513
+ type: "unsupported-setting",
514
+ setting: "topK",
515
+ details: "topK is not supported when thinking is enabled"
516
+ });
517
+ }
518
+ if (topP != null) {
519
+ baseArgs.top_p = void 0;
520
+ warnings.push({
521
+ type: "unsupported-setting",
522
+ setting: "topP",
523
+ details: "topP is not supported when thinking is enabled"
524
+ });
525
+ }
526
+ baseArgs.max_tokens = maxTokens + thinkingBudget;
527
+ }
528
+ switch (type) {
529
+ case "regular": {
530
+ const {
531
+ tools,
532
+ tool_choice,
533
+ toolWarnings,
534
+ betas: toolsBetas
535
+ } = prepareTools(mode);
536
+ return {
537
+ args: { ...baseArgs, tools, tool_choice },
538
+ warnings: [...warnings, ...toolWarnings],
539
+ betas: /* @__PURE__ */ new Set([...messagesBetas, ...toolsBetas])
540
+ };
541
+ }
542
+ case "object-json": {
543
+ throw new UnsupportedFunctionalityError({
544
+ functionality: "json-mode object generation"
545
+ });
546
+ }
547
+ case "object-tool": {
548
+ const { name, description, parameters } = mode.tool;
549
+ return {
550
+ args: {
551
+ ...baseArgs,
552
+ tools: [{ name, description, input_schema: parameters }],
553
+ tool_choice: { type: "tool", name }
554
+ },
555
+ warnings,
556
+ betas: messagesBetas
557
+ };
558
+ }
559
+ default: {
560
+ const _exhaustiveCheck = type;
561
+ throw new Error(`Unsupported type: ${_exhaustiveCheck}`);
562
+ }
563
+ }
564
+ }
565
+ async getHeaders({
566
+ betas,
567
+ headers
568
+ }) {
569
+ return combineHeaders(
570
+ await resolve(this.config.headers),
571
+ betas.size > 0 ? { "anthropic-beta": Array.from(betas).join(",") } : {},
572
+ headers
573
+ );
574
+ }
575
+ buildRequestUrl(isStreaming) {
576
+ var _a, _b, _c;
577
+ return (_c = (_b = (_a = this.config).buildRequestUrl) == null ? void 0 : _b.call(_a, this.config.baseURL, isStreaming)) != null ? _c : `${this.config.baseURL}/messages`;
578
+ }
579
+ transformRequestBody(args) {
580
+ var _a, _b, _c;
581
+ return (_c = (_b = (_a = this.config).transformRequestBody) == null ? void 0 : _b.call(_a, args)) != null ? _c : args;
582
+ }
583
+ async doGenerate(options) {
584
+ var _a, _b, _c, _d;
585
+ const { args, warnings, betas } = await this.getArgs(options);
586
+ const {
587
+ responseHeaders,
588
+ value: response,
589
+ rawValue: rawResponse
590
+ } = await postJsonToApi({
591
+ url: this.buildRequestUrl(false),
592
+ headers: await this.getHeaders({ betas, headers: options.headers }),
593
+ body: this.transformRequestBody(args),
594
+ failedResponseHandler: anthropicFailedResponseHandler,
595
+ successfulResponseHandler: createJsonResponseHandler(
596
+ anthropicMessagesResponseSchema
597
+ ),
598
+ abortSignal: options.abortSignal,
599
+ fetch: this.config.fetch
600
+ });
601
+ const { messages: rawPrompt, ...rawSettings } = args;
602
+ let text = "";
603
+ for (const content of response.content) {
604
+ if (content.type === "text") {
605
+ text += content.text;
606
+ }
607
+ }
608
+ let toolCalls = void 0;
609
+ if (response.content.some((content) => content.type === "tool_use")) {
610
+ toolCalls = [];
611
+ for (const content of response.content) {
612
+ if (content.type === "tool_use") {
613
+ toolCalls.push({
614
+ toolCallType: "function",
615
+ toolCallId: content.id,
616
+ toolName: content.name,
617
+ args: JSON.stringify(content.input)
618
+ });
619
+ }
620
+ }
621
+ }
622
+ const reasoning = response.content.filter(
623
+ (content) => content.type === "redacted_thinking" || content.type === "thinking"
624
+ ).map(
625
+ (content) => content.type === "thinking" ? {
626
+ type: "text",
627
+ text: content.thinking,
628
+ signature: content.signature
629
+ } : {
630
+ type: "redacted",
631
+ data: content.data
632
+ }
633
+ );
634
+ return {
635
+ text,
636
+ reasoning: reasoning.length > 0 ? reasoning : void 0,
637
+ toolCalls,
638
+ finishReason: mapAnthropicStopReason(response.stop_reason),
639
+ usage: {
640
+ promptTokens: response.usage.input_tokens,
641
+ completionTokens: response.usage.output_tokens
642
+ },
643
+ rawCall: { rawPrompt, rawSettings },
644
+ rawResponse: {
645
+ headers: responseHeaders,
646
+ body: rawResponse
647
+ },
648
+ response: {
649
+ id: (_a = response.id) != null ? _a : void 0,
650
+ modelId: (_b = response.model) != null ? _b : void 0
651
+ },
652
+ warnings,
653
+ providerMetadata: {
654
+ anthropic: {
655
+ cacheCreationInputTokens: (_c = response.usage.cache_creation_input_tokens) != null ? _c : null,
656
+ cacheReadInputTokens: (_d = response.usage.cache_read_input_tokens) != null ? _d : null
657
+ }
658
+ },
659
+ request: { body: JSON.stringify(args) }
660
+ };
661
+ }
662
+ async doStream(options) {
663
+ const { args, warnings, betas } = await this.getArgs(options);
664
+ const body = { ...args, stream: true };
665
+ const { responseHeaders, value: response } = await postJsonToApi({
666
+ url: this.buildRequestUrl(true),
667
+ headers: await this.getHeaders({ betas, headers: options.headers }),
668
+ body: this.transformRequestBody(body),
669
+ failedResponseHandler: anthropicFailedResponseHandler,
670
+ successfulResponseHandler: createEventSourceResponseHandler(
671
+ anthropicMessagesChunkSchema
672
+ ),
673
+ abortSignal: options.abortSignal,
674
+ fetch: this.config.fetch
675
+ });
676
+ const { messages: rawPrompt, ...rawSettings } = args;
677
+ let finishReason = "unknown";
678
+ const usage = {
679
+ promptTokens: Number.NaN,
680
+ completionTokens: Number.NaN
681
+ };
682
+ const toolCallContentBlocks = {};
683
+ let providerMetadata = void 0;
684
+ let blockType = void 0;
685
+ return {
686
+ stream: response.pipeThrough(
687
+ new TransformStream({
688
+ transform(chunk, controller) {
689
+ var _a, _b, _c, _d;
690
+ if (!chunk.success) {
691
+ controller.enqueue({ type: "error", error: chunk.error });
692
+ return;
693
+ }
694
+ const value = chunk.value;
695
+ switch (value.type) {
696
+ case "ping": {
697
+ return;
698
+ }
699
+ case "content_block_start": {
700
+ const contentBlockType = value.content_block.type;
701
+ blockType = contentBlockType;
702
+ switch (contentBlockType) {
703
+ case "text":
704
+ case "thinking": {
705
+ return;
706
+ }
707
+ case "redacted_thinking": {
708
+ controller.enqueue({
709
+ type: "redacted-reasoning",
710
+ data: value.content_block.data
711
+ });
712
+ return;
713
+ }
714
+ case "tool_use": {
715
+ toolCallContentBlocks[value.index] = {
716
+ toolCallId: value.content_block.id,
717
+ toolName: value.content_block.name,
718
+ jsonText: ""
719
+ };
720
+ return;
721
+ }
722
+ default: {
723
+ const _exhaustiveCheck = contentBlockType;
724
+ throw new Error(
725
+ `Unsupported content block type: ${_exhaustiveCheck}`
726
+ );
727
+ }
728
+ }
729
+ }
730
+ case "content_block_stop": {
731
+ if (toolCallContentBlocks[value.index] != null) {
732
+ const contentBlock = toolCallContentBlocks[value.index];
733
+ controller.enqueue({
734
+ type: "tool-call",
735
+ toolCallType: "function",
736
+ toolCallId: contentBlock.toolCallId,
737
+ toolName: contentBlock.toolName,
738
+ args: contentBlock.jsonText
739
+ });
740
+ delete toolCallContentBlocks[value.index];
741
+ }
742
+ blockType = void 0;
743
+ return;
744
+ }
745
+ case "content_block_delta": {
746
+ const deltaType = value.delta.type;
747
+ switch (deltaType) {
748
+ case "text_delta": {
749
+ controller.enqueue({
750
+ type: "text-delta",
751
+ textDelta: value.delta.text
752
+ });
753
+ return;
754
+ }
755
+ case "thinking_delta": {
756
+ controller.enqueue({
757
+ type: "reasoning",
758
+ textDelta: value.delta.thinking
759
+ });
760
+ return;
761
+ }
762
+ case "signature_delta": {
763
+ if (blockType === "thinking") {
764
+ controller.enqueue({
765
+ type: "reasoning-signature",
766
+ signature: value.delta.signature
767
+ });
768
+ }
769
+ return;
770
+ }
771
+ case "input_json_delta": {
772
+ const contentBlock = toolCallContentBlocks[value.index];
773
+ controller.enqueue({
774
+ type: "tool-call-delta",
775
+ toolCallType: "function",
776
+ toolCallId: contentBlock.toolCallId,
777
+ toolName: contentBlock.toolName,
778
+ argsTextDelta: value.delta.partial_json
779
+ });
780
+ contentBlock.jsonText += value.delta.partial_json;
781
+ return;
782
+ }
783
+ default: {
784
+ const _exhaustiveCheck = deltaType;
785
+ throw new Error(
786
+ `Unsupported delta type: ${_exhaustiveCheck}`
787
+ );
788
+ }
789
+ }
790
+ }
791
+ case "message_start": {
792
+ usage.promptTokens = value.message.usage.input_tokens;
793
+ usage.completionTokens = value.message.usage.output_tokens;
794
+ providerMetadata = {
795
+ anthropic: {
796
+ cacheCreationInputTokens: (_a = value.message.usage.cache_creation_input_tokens) != null ? _a : null,
797
+ cacheReadInputTokens: (_b = value.message.usage.cache_read_input_tokens) != null ? _b : null
798
+ }
799
+ };
800
+ controller.enqueue({
801
+ type: "response-metadata",
802
+ id: (_c = value.message.id) != null ? _c : void 0,
803
+ modelId: (_d = value.message.model) != null ? _d : void 0
804
+ });
805
+ return;
806
+ }
807
+ case "message_delta": {
808
+ usage.completionTokens = value.usage.output_tokens;
809
+ finishReason = mapAnthropicStopReason(value.delta.stop_reason);
810
+ return;
811
+ }
812
+ case "message_stop": {
813
+ controller.enqueue({
814
+ type: "finish",
815
+ finishReason,
816
+ usage,
817
+ providerMetadata
818
+ });
819
+ return;
820
+ }
821
+ case "error": {
822
+ controller.enqueue({ type: "error", error: value.error });
823
+ return;
824
+ }
825
+ default: {
826
+ const _exhaustiveCheck = value;
827
+ throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);
828
+ }
829
+ }
830
+ }
831
+ })
832
+ ),
833
+ rawCall: { rawPrompt, rawSettings },
834
+ rawResponse: { headers: responseHeaders },
835
+ warnings,
836
+ request: { body: JSON.stringify(body) }
837
+ };
838
+ }
839
+ };
840
+ var anthropicMessagesResponseSchema = z.object({
841
+ type: z.literal("message"),
842
+ id: z.string().nullish(),
843
+ model: z.string().nullish(),
844
+ content: z.array(
845
+ z.discriminatedUnion("type", [
846
+ z.object({
847
+ type: z.literal("text"),
848
+ text: z.string()
849
+ }),
850
+ z.object({
851
+ type: z.literal("thinking"),
852
+ thinking: z.string(),
853
+ signature: z.string()
854
+ }),
855
+ z.object({
856
+ type: z.literal("redacted_thinking"),
857
+ data: z.string()
858
+ }),
859
+ z.object({
860
+ type: z.literal("tool_use"),
861
+ id: z.string(),
862
+ name: z.string(),
863
+ input: z.unknown()
864
+ })
865
+ ])
866
+ ),
867
+ stop_reason: z.string().nullish(),
868
+ usage: z.object({
869
+ input_tokens: z.number(),
870
+ output_tokens: z.number(),
871
+ cache_creation_input_tokens: z.number().nullish(),
872
+ cache_read_input_tokens: z.number().nullish()
873
+ })
874
+ });
875
+ var anthropicMessagesChunkSchema = z.discriminatedUnion("type", [
876
+ z.object({
877
+ type: z.literal("message_start"),
878
+ message: z.object({
879
+ id: z.string().nullish(),
880
+ model: z.string().nullish(),
881
+ usage: z.object({
882
+ input_tokens: z.number(),
883
+ output_tokens: z.number(),
884
+ cache_creation_input_tokens: z.number().nullish(),
885
+ cache_read_input_tokens: z.number().nullish()
886
+ })
887
+ })
888
+ }),
889
+ z.object({
890
+ type: z.literal("content_block_start"),
891
+ index: z.number(),
892
+ content_block: z.discriminatedUnion("type", [
893
+ z.object({
894
+ type: z.literal("text"),
895
+ text: z.string()
896
+ }),
897
+ z.object({
898
+ type: z.literal("thinking"),
899
+ thinking: z.string()
900
+ }),
901
+ z.object({
902
+ type: z.literal("tool_use"),
903
+ id: z.string(),
904
+ name: z.string()
905
+ }),
906
+ z.object({
907
+ type: z.literal("redacted_thinking"),
908
+ data: z.string()
909
+ })
910
+ ])
911
+ }),
912
+ z.object({
913
+ type: z.literal("content_block_delta"),
914
+ index: z.number(),
915
+ delta: z.discriminatedUnion("type", [
916
+ z.object({
917
+ type: z.literal("input_json_delta"),
918
+ partial_json: z.string()
919
+ }),
920
+ z.object({
921
+ type: z.literal("text_delta"),
922
+ text: z.string()
923
+ }),
924
+ z.object({
925
+ type: z.literal("thinking_delta"),
926
+ thinking: z.string()
927
+ }),
928
+ z.object({
929
+ type: z.literal("signature_delta"),
930
+ signature: z.string()
931
+ })
932
+ ])
933
+ }),
934
+ z.object({
935
+ type: z.literal("content_block_stop"),
936
+ index: z.number()
937
+ }),
938
+ z.object({
939
+ type: z.literal("error"),
940
+ error: z.object({
941
+ type: z.string(),
942
+ message: z.string()
943
+ })
944
+ }),
945
+ z.object({
946
+ type: z.literal("message_delta"),
947
+ delta: z.object({ stop_reason: z.string().nullish() }),
948
+ usage: z.object({ output_tokens: z.number() })
949
+ }),
950
+ z.object({
951
+ type: z.literal("message_stop")
952
+ }),
953
+ z.object({
954
+ type: z.literal("ping")
955
+ })
956
+ ]);
957
+ var anthropicProviderOptionsSchema = z.object({
958
+ thinking: z.object({
959
+ type: z.union([z.literal("enabled"), z.literal("disabled")]),
960
+ budgetTokens: z.number().optional()
961
+ }).optional()
962
+ });
963
+ var Bash20241022Parameters = z.object({
964
+ command: z.string(),
965
+ restart: z.boolean().optional()
966
+ });
967
+ function bashTool_20241022(options = {}) {
968
+ return {
969
+ type: "provider-defined",
970
+ id: "anthropic.bash_20241022",
971
+ args: {},
972
+ parameters: Bash20241022Parameters,
973
+ execute: options.execute,
974
+ experimental_toToolResultContent: options.experimental_toToolResultContent
975
+ };
976
+ }
977
+ var Bash20250124Parameters = z.object({
978
+ command: z.string(),
979
+ restart: z.boolean().optional()
980
+ });
981
+ function bashTool_20250124(options = {}) {
982
+ return {
983
+ type: "provider-defined",
984
+ id: "anthropic.bash_20250124",
985
+ args: {},
986
+ parameters: Bash20250124Parameters,
987
+ execute: options.execute,
988
+ experimental_toToolResultContent: options.experimental_toToolResultContent
989
+ };
990
+ }
991
+ var TextEditor20241022Parameters = z.object({
992
+ command: z.enum(["view", "create", "str_replace", "insert", "undo_edit"]),
993
+ path: z.string(),
994
+ file_text: z.string().optional(),
995
+ insert_line: z.number().int().optional(),
996
+ new_str: z.string().optional(),
997
+ old_str: z.string().optional(),
998
+ view_range: z.array(z.number().int()).optional()
999
+ });
1000
+ function textEditorTool_20241022(options = {}) {
1001
+ return {
1002
+ type: "provider-defined",
1003
+ id: "anthropic.text_editor_20241022",
1004
+ args: {},
1005
+ parameters: TextEditor20241022Parameters,
1006
+ execute: options.execute,
1007
+ experimental_toToolResultContent: options.experimental_toToolResultContent
1008
+ };
1009
+ }
1010
+ var TextEditor20250124Parameters = z.object({
1011
+ command: z.enum(["view", "create", "str_replace", "insert", "undo_edit"]),
1012
+ path: z.string(),
1013
+ file_text: z.string().optional(),
1014
+ insert_line: z.number().int().optional(),
1015
+ new_str: z.string().optional(),
1016
+ old_str: z.string().optional(),
1017
+ view_range: z.array(z.number().int()).optional()
1018
+ });
1019
+ function textEditorTool_20250124(options = {}) {
1020
+ return {
1021
+ type: "provider-defined",
1022
+ id: "anthropic.text_editor_20250124",
1023
+ args: {},
1024
+ parameters: TextEditor20250124Parameters,
1025
+ execute: options.execute,
1026
+ experimental_toToolResultContent: options.experimental_toToolResultContent
1027
+ };
1028
+ }
1029
+ var Computer20241022Parameters = z.object({
1030
+ action: z.enum([
1031
+ "key",
1032
+ "type",
1033
+ "mouse_move",
1034
+ "left_click",
1035
+ "left_click_drag",
1036
+ "right_click",
1037
+ "middle_click",
1038
+ "double_click",
1039
+ "screenshot",
1040
+ "cursor_position"
1041
+ ]),
1042
+ coordinate: z.array(z.number().int()).optional(),
1043
+ text: z.string().optional()
1044
+ });
1045
+ function computerTool_20241022(options) {
1046
+ return {
1047
+ type: "provider-defined",
1048
+ id: "anthropic.computer_20241022",
1049
+ args: {
1050
+ displayWidthPx: options.displayWidthPx,
1051
+ displayHeightPx: options.displayHeightPx,
1052
+ displayNumber: options.displayNumber
1053
+ },
1054
+ parameters: Computer20241022Parameters,
1055
+ execute: options.execute,
1056
+ experimental_toToolResultContent: options.experimental_toToolResultContent
1057
+ };
1058
+ }
1059
+ var Computer20250124Parameters = z.object({
1060
+ action: z.enum([
1061
+ "key",
1062
+ "hold_key",
1063
+ "type",
1064
+ "cursor_position",
1065
+ "mouse_move",
1066
+ "left_mouse_down",
1067
+ "left_mouse_up",
1068
+ "left_click",
1069
+ "left_click_drag",
1070
+ "right_click",
1071
+ "middle_click",
1072
+ "double_click",
1073
+ "triple_click",
1074
+ "scroll",
1075
+ "wait",
1076
+ "screenshot"
1077
+ ]),
1078
+ coordinate: z.tuple([z.number().int(), z.number().int()]).optional(),
1079
+ duration: z.number().optional(),
1080
+ scroll_amount: z.number().optional(),
1081
+ scroll_direction: z.enum(["up", "down", "left", "right"]).optional(),
1082
+ start_coordinate: z.tuple([z.number().int(), z.number().int()]).optional(),
1083
+ text: z.string().optional()
1084
+ });
1085
+ function computerTool_20250124(options) {
1086
+ return {
1087
+ type: "provider-defined",
1088
+ id: "anthropic.computer_20250124",
1089
+ args: {
1090
+ displayWidthPx: options.displayWidthPx,
1091
+ displayHeightPx: options.displayHeightPx,
1092
+ displayNumber: options.displayNumber
1093
+ },
1094
+ parameters: Computer20250124Parameters,
1095
+ execute: options.execute,
1096
+ experimental_toToolResultContent: options.experimental_toToolResultContent
1097
+ };
1098
+ }
1099
+ var anthropicTools = {
1100
+ bash_20241022: bashTool_20241022,
1101
+ bash_20250124: bashTool_20250124,
1102
+ textEditor_20241022: textEditorTool_20241022,
1103
+ textEditor_20250124: textEditorTool_20250124,
1104
+ computer_20241022: computerTool_20241022,
1105
+ computer_20250124: computerTool_20250124
1106
+ };
1107
+ function createAnthropic(options = {}) {
1108
+ var _a;
1109
+ const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : "https://api.anthropic.com/v1";
1110
+ const getHeaders = () => ({
1111
+ "anthropic-version": "2023-06-01",
1112
+ "x-api-key": loadApiKey({
1113
+ apiKey: options.apiKey,
1114
+ environmentVariableName: "ANTHROPIC_API_KEY",
1115
+ description: "Anthropic"
1116
+ }),
1117
+ ...options.headers
1118
+ });
1119
+ const createChatModel = (modelId, settings = {}) => new AnthropicMessagesLanguageModel(modelId, settings, {
1120
+ provider: "anthropic.messages",
1121
+ baseURL,
1122
+ headers: getHeaders,
1123
+ fetch: options.fetch,
1124
+ supportsImageUrls: true
1125
+ });
1126
+ const provider = function(modelId, settings) {
1127
+ if (new.target) {
1128
+ throw new Error(
1129
+ "The Anthropic model function cannot be called with the new keyword."
1130
+ );
1131
+ }
1132
+ return createChatModel(modelId, settings);
1133
+ };
1134
+ provider.languageModel = createChatModel;
1135
+ provider.chat = createChatModel;
1136
+ provider.messages = createChatModel;
1137
+ provider.textEmbeddingModel = (modelId) => {
1138
+ throw new NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
1139
+ };
1140
+ provider.tools = anthropicTools;
1141
+ return provider;
1142
+ }
1143
+ var anthropic = createAnthropic();
1144
+
1145
+ export { anthropic, createAnthropic };
1146
+ //# sourceMappingURL=dist-X7XR3M3Z.js.map
1147
+ //# sourceMappingURL=dist-X7XR3M3Z.js.map