@llumiverse/drivers 0.23.0 → 0.24.0-dev.20260203.164053Z

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 (230) hide show
  1. package/README.md +141 -218
  2. package/package.json +12 -12
  3. package/src/azure/azure_foundry.ts +56 -7
  4. package/src/bedrock/index.ts +188 -24
  5. package/src/groq/index.ts +120 -94
  6. package/src/index.ts +1 -0
  7. package/src/openai/index.ts +363 -136
  8. package/src/openai/openai_compatible.ts +74 -0
  9. package/src/openai/openai_format.ts +44 -54
  10. package/src/vertexai/index.ts +186 -0
  11. package/src/vertexai/models/claude.ts +97 -2
  12. package/src/vertexai/models/gemini.ts +78 -27
  13. package/src/xai/index.ts +10 -17
  14. package/lib/cjs/adobe/firefly.js +0 -120
  15. package/lib/cjs/adobe/firefly.js.map +0 -1
  16. package/lib/cjs/azure/azure_foundry.js +0 -388
  17. package/lib/cjs/azure/azure_foundry.js.map +0 -1
  18. package/lib/cjs/bedrock/converse.js +0 -285
  19. package/lib/cjs/bedrock/converse.js.map +0 -1
  20. package/lib/cjs/bedrock/index.js +0 -966
  21. package/lib/cjs/bedrock/index.js.map +0 -1
  22. package/lib/cjs/bedrock/nova-image-payload.js +0 -207
  23. package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
  24. package/lib/cjs/bedrock/payloads.js +0 -3
  25. package/lib/cjs/bedrock/payloads.js.map +0 -1
  26. package/lib/cjs/bedrock/s3.js +0 -107
  27. package/lib/cjs/bedrock/s3.js.map +0 -1
  28. package/lib/cjs/bedrock/twelvelabs.js +0 -87
  29. package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
  30. package/lib/cjs/groq/index.js +0 -293
  31. package/lib/cjs/groq/index.js.map +0 -1
  32. package/lib/cjs/huggingface_ie.js +0 -201
  33. package/lib/cjs/huggingface_ie.js.map +0 -1
  34. package/lib/cjs/index.js +0 -30
  35. package/lib/cjs/index.js.map +0 -1
  36. package/lib/cjs/mistral/index.js +0 -173
  37. package/lib/cjs/mistral/index.js.map +0 -1
  38. package/lib/cjs/mistral/types.js +0 -83
  39. package/lib/cjs/mistral/types.js.map +0 -1
  40. package/lib/cjs/openai/azure_openai.js +0 -72
  41. package/lib/cjs/openai/azure_openai.js.map +0 -1
  42. package/lib/cjs/openai/index.js +0 -469
  43. package/lib/cjs/openai/index.js.map +0 -1
  44. package/lib/cjs/openai/openai.js +0 -21
  45. package/lib/cjs/openai/openai.js.map +0 -1
  46. package/lib/cjs/openai/openai_format.js +0 -138
  47. package/lib/cjs/openai/openai_format.js.map +0 -1
  48. package/lib/cjs/package.json +0 -3
  49. package/lib/cjs/replicate.js +0 -275
  50. package/lib/cjs/replicate.js.map +0 -1
  51. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  52. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  53. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  54. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  55. package/lib/cjs/test-driver/index.js +0 -109
  56. package/lib/cjs/test-driver/index.js.map +0 -1
  57. package/lib/cjs/test-driver/utils.js +0 -30
  58. package/lib/cjs/test-driver/utils.js.map +0 -1
  59. package/lib/cjs/togetherai/index.js +0 -126
  60. package/lib/cjs/togetherai/index.js.map +0 -1
  61. package/lib/cjs/togetherai/interfaces.js +0 -3
  62. package/lib/cjs/togetherai/interfaces.js.map +0 -1
  63. package/lib/cjs/vertexai/debug.js +0 -12
  64. package/lib/cjs/vertexai/debug.js.map +0 -1
  65. package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
  66. package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
  67. package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
  68. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
  69. package/lib/cjs/vertexai/index.js +0 -429
  70. package/lib/cjs/vertexai/index.js.map +0 -1
  71. package/lib/cjs/vertexai/models/claude.js +0 -399
  72. package/lib/cjs/vertexai/models/claude.js.map +0 -1
  73. package/lib/cjs/vertexai/models/gemini.js +0 -832
  74. package/lib/cjs/vertexai/models/gemini.js.map +0 -1
  75. package/lib/cjs/vertexai/models/imagen.js +0 -303
  76. package/lib/cjs/vertexai/models/imagen.js.map +0 -1
  77. package/lib/cjs/vertexai/models/llama.js +0 -183
  78. package/lib/cjs/vertexai/models/llama.js.map +0 -1
  79. package/lib/cjs/vertexai/models.js +0 -35
  80. package/lib/cjs/vertexai/models.js.map +0 -1
  81. package/lib/cjs/watsonx/index.js +0 -161
  82. package/lib/cjs/watsonx/index.js.map +0 -1
  83. package/lib/cjs/watsonx/interfaces.js +0 -3
  84. package/lib/cjs/watsonx/interfaces.js.map +0 -1
  85. package/lib/cjs/xai/index.js +0 -71
  86. package/lib/cjs/xai/index.js.map +0 -1
  87. package/lib/esm/adobe/firefly.js +0 -116
  88. package/lib/esm/adobe/firefly.js.map +0 -1
  89. package/lib/esm/azure/azure_foundry.js +0 -382
  90. package/lib/esm/azure/azure_foundry.js.map +0 -1
  91. package/lib/esm/bedrock/converse.js +0 -278
  92. package/lib/esm/bedrock/converse.js.map +0 -1
  93. package/lib/esm/bedrock/index.js +0 -962
  94. package/lib/esm/bedrock/index.js.map +0 -1
  95. package/lib/esm/bedrock/nova-image-payload.js +0 -203
  96. package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
  97. package/lib/esm/bedrock/payloads.js +0 -2
  98. package/lib/esm/bedrock/payloads.js.map +0 -1
  99. package/lib/esm/bedrock/s3.js +0 -99
  100. package/lib/esm/bedrock/s3.js.map +0 -1
  101. package/lib/esm/bedrock/twelvelabs.js +0 -84
  102. package/lib/esm/bedrock/twelvelabs.js.map +0 -1
  103. package/lib/esm/groq/index.js +0 -286
  104. package/lib/esm/groq/index.js.map +0 -1
  105. package/lib/esm/huggingface_ie.js +0 -197
  106. package/lib/esm/huggingface_ie.js.map +0 -1
  107. package/lib/esm/index.js +0 -14
  108. package/lib/esm/index.js.map +0 -1
  109. package/lib/esm/mistral/index.js +0 -169
  110. package/lib/esm/mistral/index.js.map +0 -1
  111. package/lib/esm/mistral/types.js +0 -80
  112. package/lib/esm/mistral/types.js.map +0 -1
  113. package/lib/esm/openai/azure_openai.js +0 -68
  114. package/lib/esm/openai/azure_openai.js.map +0 -1
  115. package/lib/esm/openai/index.js +0 -464
  116. package/lib/esm/openai/index.js.map +0 -1
  117. package/lib/esm/openai/openai.js +0 -14
  118. package/lib/esm/openai/openai.js.map +0 -1
  119. package/lib/esm/openai/openai_format.js +0 -134
  120. package/lib/esm/openai/openai_format.js.map +0 -1
  121. package/lib/esm/replicate.js +0 -268
  122. package/lib/esm/replicate.js.map +0 -1
  123. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  124. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  125. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +0 -20
  126. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  127. package/lib/esm/test-driver/index.js +0 -91
  128. package/lib/esm/test-driver/index.js.map +0 -1
  129. package/lib/esm/test-driver/utils.js +0 -25
  130. package/lib/esm/test-driver/utils.js.map +0 -1
  131. package/lib/esm/togetherai/index.js +0 -122
  132. package/lib/esm/togetherai/index.js.map +0 -1
  133. package/lib/esm/togetherai/interfaces.js +0 -2
  134. package/lib/esm/togetherai/interfaces.js.map +0 -1
  135. package/lib/esm/vertexai/debug.js +0 -6
  136. package/lib/esm/vertexai/debug.js.map +0 -1
  137. package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
  138. package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
  139. package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
  140. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
  141. package/lib/esm/vertexai/index.js +0 -424
  142. package/lib/esm/vertexai/index.js.map +0 -1
  143. package/lib/esm/vertexai/models/claude.js +0 -394
  144. package/lib/esm/vertexai/models/claude.js.map +0 -1
  145. package/lib/esm/vertexai/models/gemini.js +0 -827
  146. package/lib/esm/vertexai/models/gemini.js.map +0 -1
  147. package/lib/esm/vertexai/models/imagen.js +0 -299
  148. package/lib/esm/vertexai/models/imagen.js.map +0 -1
  149. package/lib/esm/vertexai/models/llama.js +0 -179
  150. package/lib/esm/vertexai/models/llama.js.map +0 -1
  151. package/lib/esm/vertexai/models.js +0 -32
  152. package/lib/esm/vertexai/models.js.map +0 -1
  153. package/lib/esm/watsonx/index.js +0 -157
  154. package/lib/esm/watsonx/index.js.map +0 -1
  155. package/lib/esm/watsonx/interfaces.js +0 -2
  156. package/lib/esm/watsonx/interfaces.js.map +0 -1
  157. package/lib/esm/xai/index.js +0 -64
  158. package/lib/esm/xai/index.js.map +0 -1
  159. package/lib/types/adobe/firefly.d.ts +0 -30
  160. package/lib/types/adobe/firefly.d.ts.map +0 -1
  161. package/lib/types/azure/azure_foundry.d.ts +0 -50
  162. package/lib/types/azure/azure_foundry.d.ts.map +0 -1
  163. package/lib/types/bedrock/converse.d.ts +0 -9
  164. package/lib/types/bedrock/converse.d.ts.map +0 -1
  165. package/lib/types/bedrock/index.d.ts +0 -63
  166. package/lib/types/bedrock/index.d.ts.map +0 -1
  167. package/lib/types/bedrock/nova-image-payload.d.ts +0 -74
  168. package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
  169. package/lib/types/bedrock/payloads.d.ts +0 -12
  170. package/lib/types/bedrock/payloads.d.ts.map +0 -1
  171. package/lib/types/bedrock/s3.d.ts +0 -23
  172. package/lib/types/bedrock/s3.d.ts.map +0 -1
  173. package/lib/types/bedrock/twelvelabs.d.ts +0 -50
  174. package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
  175. package/lib/types/groq/index.d.ts +0 -27
  176. package/lib/types/groq/index.d.ts.map +0 -1
  177. package/lib/types/huggingface_ie.d.ts +0 -35
  178. package/lib/types/huggingface_ie.d.ts.map +0 -1
  179. package/lib/types/index.d.ts +0 -14
  180. package/lib/types/index.d.ts.map +0 -1
  181. package/lib/types/mistral/index.d.ts +0 -25
  182. package/lib/types/mistral/index.d.ts.map +0 -1
  183. package/lib/types/mistral/types.d.ts +0 -132
  184. package/lib/types/mistral/types.d.ts.map +0 -1
  185. package/lib/types/openai/azure_openai.d.ts +0 -25
  186. package/lib/types/openai/azure_openai.d.ts.map +0 -1
  187. package/lib/types/openai/index.d.ts +0 -25
  188. package/lib/types/openai/index.d.ts.map +0 -1
  189. package/lib/types/openai/openai.d.ts +0 -15
  190. package/lib/types/openai/openai.d.ts.map +0 -1
  191. package/lib/types/openai/openai_format.d.ts +0 -19
  192. package/lib/types/openai/openai_format.d.ts.map +0 -1
  193. package/lib/types/replicate.d.ts +0 -48
  194. package/lib/types/replicate.d.ts.map +0 -1
  195. package/lib/types/test-driver/TestErrorCompletionStream.d.ts +0 -9
  196. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  197. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +0 -9
  198. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  199. package/lib/types/test-driver/index.d.ts +0 -24
  200. package/lib/types/test-driver/index.d.ts.map +0 -1
  201. package/lib/types/test-driver/utils.d.ts +0 -5
  202. package/lib/types/test-driver/utils.d.ts.map +0 -1
  203. package/lib/types/togetherai/index.d.ts +0 -23
  204. package/lib/types/togetherai/index.d.ts.map +0 -1
  205. package/lib/types/togetherai/interfaces.d.ts +0 -96
  206. package/lib/types/togetherai/interfaces.d.ts.map +0 -1
  207. package/lib/types/vertexai/debug.d.ts +0 -2
  208. package/lib/types/vertexai/debug.d.ts.map +0 -1
  209. package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
  210. package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
  211. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
  212. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
  213. package/lib/types/vertexai/index.d.ts +0 -54
  214. package/lib/types/vertexai/index.d.ts.map +0 -1
  215. package/lib/types/vertexai/models/claude.d.ts +0 -20
  216. package/lib/types/vertexai/models/claude.d.ts.map +0 -1
  217. package/lib/types/vertexai/models/gemini.d.ts +0 -18
  218. package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
  219. package/lib/types/vertexai/models/imagen.d.ts +0 -75
  220. package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
  221. package/lib/types/vertexai/models/llama.d.ts +0 -20
  222. package/lib/types/vertexai/models/llama.d.ts.map +0 -1
  223. package/lib/types/vertexai/models.d.ts +0 -15
  224. package/lib/types/vertexai/models.d.ts.map +0 -1
  225. package/lib/types/watsonx/index.d.ts +0 -27
  226. package/lib/types/watsonx/index.d.ts.map +0 -1
  227. package/lib/types/watsonx/interfaces.d.ts +0 -65
  228. package/lib/types/watsonx/interfaces.d.ts.map +0 -1
  229. package/lib/types/xai/index.d.ts +0 -19
  230. package/lib/types/xai/index.d.ts.map +0 -1
@@ -1,399 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClaudeModelDefinition = exports.NON_GLOBAL_ANTHROPIC_MODELS = exports.ANTHROPIC_REGIONS = void 0;
4
- exports.collectTools = collectTools;
5
- const core_1 = require("@llumiverse/core");
6
- const async_1 = require("@llumiverse/core/async");
7
- exports.ANTHROPIC_REGIONS = {
8
- us: "us-east5",
9
- europe: "europe-west1",
10
- global: "global",
11
- };
12
- exports.NON_GLOBAL_ANTHROPIC_MODELS = [
13
- "claude-3-5",
14
- "claude-3",
15
- ];
16
- function claudeFinishReason(reason) {
17
- if (!reason)
18
- return undefined;
19
- switch (reason) {
20
- case 'end_turn': return "stop";
21
- case 'max_tokens': return "length";
22
- default: return reason; //stop_sequence
23
- }
24
- }
25
- function collectTools(content) {
26
- const out = [];
27
- for (const block of content) {
28
- if (block.type === "tool_use") {
29
- out.push({
30
- id: block.id,
31
- tool_name: block.name,
32
- tool_input: block.input,
33
- });
34
- }
35
- }
36
- return out.length > 0 ? out : undefined;
37
- }
38
- function collectAllTextContent(content, includeThoughts = false) {
39
- const textParts = [];
40
- // First pass: collect thinking blocks
41
- if (includeThoughts) {
42
- for (const block of content) {
43
- if (block.type === 'thinking' && block.thinking) {
44
- textParts.push(block.thinking);
45
- }
46
- else if (block.type === 'redacted_thinking' && block.data) {
47
- textParts.push(`[Redacted thinking: ${block.data}]`);
48
- }
49
- }
50
- if (textParts.length > 0) {
51
- textParts.push(''); // Create a new line after thinking blocks
52
- }
53
- }
54
- // Second pass: collect text blocks
55
- for (const block of content) {
56
- if (block.type === 'text' && block.text) {
57
- textParts.push(block.text);
58
- }
59
- }
60
- return textParts.join('\n');
61
- }
62
- //Used to get a max_token value when not specified in the model options. Claude requires it to be set.
63
- function maxToken(option) {
64
- const modelOptions = option.model_options;
65
- if (modelOptions && typeof modelOptions.max_tokens === "number") {
66
- return modelOptions.max_tokens;
67
- }
68
- else {
69
- const thinking_budget = modelOptions?.thinking_budget_tokens ?? 0;
70
- let maxSupportedTokens = (0, core_1.getMaxTokensLimitVertexAi)(option.model);
71
- // Fallback to the default max tokens limit for the model
72
- if (option.model.includes('claude-3-7-sonnet') && (modelOptions?.thinking_budget_tokens ?? 0) < 48000) {
73
- maxSupportedTokens = 64000; // Claude 3.7 can go up to 128k with a beta header, but when no max tokens is specified, we default to 64k.
74
- }
75
- return Math.min(16000 + thinking_budget, maxSupportedTokens); // Cap to 16k, to avoid taking up too much context window and quota.
76
- }
77
- }
78
- async function collectFileBlocks(segment, restrictedTypes = false) {
79
- const contentBlocks = [];
80
- for (const file of segment.files || []) {
81
- if (file.mime_type?.startsWith("image/")) {
82
- const allowedTypes = ["image/png", "image/jpeg", "image/gif", "image/webp"];
83
- if (!allowedTypes.includes(file.mime_type)) {
84
- throw new Error(`Unsupported image type: ${file.mime_type}`);
85
- }
86
- const mimeType = String(file.mime_type);
87
- contentBlocks.push({
88
- type: 'image',
89
- source: {
90
- type: 'base64',
91
- data: await (0, core_1.readStreamAsBase64)(await file.getStream()),
92
- media_type: mimeType
93
- }
94
- });
95
- }
96
- else if (!restrictedTypes) {
97
- if (file.mime_type === "application/pdf") {
98
- contentBlocks.push({
99
- title: file.name,
100
- type: 'document',
101
- source: {
102
- type: 'base64',
103
- data: await (0, core_1.readStreamAsBase64)(await file.getStream()),
104
- media_type: 'application/pdf'
105
- }
106
- });
107
- }
108
- else if (file.mime_type?.startsWith("text/")) {
109
- contentBlocks.push({
110
- title: file.name,
111
- type: 'document',
112
- source: {
113
- type: 'text',
114
- data: await (0, core_1.readStreamAsString)(await file.getStream()),
115
- media_type: 'text/plain'
116
- }
117
- });
118
- }
119
- }
120
- }
121
- return contentBlocks;
122
- }
123
- class ClaudeModelDefinition {
124
- model;
125
- constructor(modelId) {
126
- this.model = {
127
- id: modelId,
128
- name: modelId,
129
- provider: 'vertexai',
130
- type: core_1.ModelType.Text,
131
- can_stream: true,
132
- };
133
- }
134
- async createPrompt(_driver, segments, options) {
135
- // Convert the prompt to the format expected by the Claude API
136
- let system = segments
137
- .filter(segment => segment.role === core_1.PromptRole.system)
138
- .map(segment => ({
139
- text: segment.content,
140
- type: 'text'
141
- }));
142
- if (options.result_schema) {
143
- let schemaText = '';
144
- if (options.tools && options.tools.length > 0) {
145
- schemaText = "When not calling tools, the answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema);
146
- }
147
- else {
148
- schemaText = "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(options.result_schema);
149
- }
150
- const schemaSegments = {
151
- text: schemaText,
152
- type: 'text'
153
- };
154
- system.push(schemaSegments);
155
- }
156
- let messages = [];
157
- const safetyMessages = [];
158
- for (const segment of segments) {
159
- if (segment.role === core_1.PromptRole.system) {
160
- continue;
161
- }
162
- if (segment.role === core_1.PromptRole.tool) {
163
- if (!segment.tool_use_id) {
164
- throw new Error("Tool prompt segment must have a tool use ID");
165
- }
166
- // Build content blocks for tool results (restricted types)
167
- const contentBlocks = [];
168
- if (segment.content) {
169
- contentBlocks.push({
170
- type: 'text',
171
- text: segment.content
172
- });
173
- }
174
- // Collect file blocks with type safety
175
- const fileBlocks = await collectFileBlocks(segment, true);
176
- contentBlocks.push(...fileBlocks);
177
- messages.push({
178
- role: 'user',
179
- content: [{
180
- type: 'tool_result',
181
- tool_use_id: segment.tool_use_id,
182
- content: contentBlocks,
183
- }]
184
- });
185
- }
186
- else {
187
- // Build content blocks for regular messages (all types allowed)
188
- const contentBlocks = [];
189
- if (segment.content) {
190
- contentBlocks.push({
191
- type: 'text',
192
- text: segment.content
193
- });
194
- }
195
- // Collect file blocks without restrictions
196
- const fileBlocks = await collectFileBlocks(segment, false);
197
- contentBlocks.push(...fileBlocks);
198
- if (contentBlocks.length === 0) {
199
- continue; // skip empty segments
200
- }
201
- const messageParam = {
202
- role: segment.role === core_1.PromptRole.assistant ? 'assistant' : 'user',
203
- content: contentBlocks
204
- };
205
- if (segment.role === core_1.PromptRole.safety) {
206
- safetyMessages.push(messageParam);
207
- }
208
- else {
209
- messages.push(messageParam);
210
- }
211
- }
212
- }
213
- messages = messages.concat(safetyMessages);
214
- if (system && system.length === 0) {
215
- system = undefined; // If system is empty, set to undefined
216
- }
217
- return {
218
- messages: messages,
219
- system: system
220
- };
221
- }
222
- async requestTextCompletion(driver, prompt, options) {
223
- const splits = options.model.split("/");
224
- let region = undefined;
225
- if (splits[0] === "locations" && splits.length >= 2) {
226
- region = splits[1];
227
- }
228
- const modelName = splits[splits.length - 1];
229
- options = { ...options, model: modelName };
230
- const client = await driver.getAnthropicClient(region);
231
- options.model_options = options.model_options;
232
- if (options.model_options?._option_id !== "vertexai-claude") {
233
- driver.logger.warn({ options: options.model_options }, "Invalid model options");
234
- }
235
- let conversation = updateConversation(options.conversation, prompt);
236
- const { payload, requestOptions } = getClaudePayload(options, conversation);
237
- // disable streaming, the create function is overloaded so payload type matters.
238
- const nonStreamingPayload = { ...payload, stream: false };
239
- const result = await client.messages.create(nonStreamingPayload, requestOptions);
240
- // Use the new function to collect text content, including thinking if enabled
241
- const includeThoughts = options.model_options?.include_thoughts ?? false;
242
- const text = collectAllTextContent(result.content, includeThoughts);
243
- const tool_use = collectTools(result.content);
244
- conversation = updateConversation(conversation, createPromptFromResponse(result));
245
- return {
246
- result: text ? [{ type: "text", value: text }] : [{ type: "text", value: '' }],
247
- tool_use,
248
- token_usage: {
249
- prompt: result.usage.input_tokens,
250
- result: result.usage.output_tokens,
251
- total: result.usage.input_tokens + result.usage.output_tokens
252
- },
253
- // make sure we set finish_reason to the correct value (claude is normally setting this by itself)
254
- finish_reason: tool_use ? "tool_use" : claudeFinishReason(result?.stop_reason ?? ''),
255
- conversation
256
- };
257
- }
258
- async requestTextCompletionStream(driver, prompt, options) {
259
- const splits = options.model.split("/");
260
- let region = undefined;
261
- if (splits[0] === "locations" && splits.length >= 2) {
262
- region = splits[1];
263
- }
264
- const modelName = splits[splits.length - 1];
265
- options = { ...options, model: modelName };
266
- const client = await driver.getAnthropicClient(region);
267
- const model_options = options.model_options;
268
- if (model_options?._option_id !== "vertexai-claude") {
269
- driver.logger.warn({ options: options.model_options }, "Invalid model options");
270
- }
271
- const { payload, requestOptions } = getClaudePayload(options, prompt);
272
- const streamingPayload = { ...payload, stream: true };
273
- const response_stream = await client.messages.stream(streamingPayload, requestOptions);
274
- const stream = (0, async_1.asyncMap)(response_stream, async (streamEvent) => {
275
- switch (streamEvent.type) {
276
- case "message_start":
277
- return {
278
- result: [{ type: "text", value: '' }],
279
- token_usage: {
280
- prompt: streamEvent.message.usage.input_tokens,
281
- result: streamEvent.message.usage.output_tokens
282
- }
283
- };
284
- case "message_delta":
285
- return {
286
- result: [{ type: "text", value: '' }],
287
- token_usage: {
288
- result: streamEvent.usage.output_tokens
289
- },
290
- finish_reason: claudeFinishReason(streamEvent.delta.stop_reason ?? undefined),
291
- };
292
- case "content_block_start":
293
- // Handle redacted thinking blocks
294
- if (streamEvent.content_block.type === "redacted_thinking" && model_options?.include_thoughts) {
295
- return {
296
- result: [{ type: "text", value: `[Redacted thinking: ${streamEvent.content_block.data}]` }]
297
- };
298
- }
299
- break;
300
- case "content_block_delta":
301
- // Handle different delta types
302
- switch (streamEvent.delta.type) {
303
- case "text_delta":
304
- return {
305
- result: streamEvent.delta.text ? [{ type: "text", value: streamEvent.delta.text }] : []
306
- };
307
- case "thinking_delta":
308
- if (model_options?.include_thoughts) {
309
- return {
310
- result: streamEvent.delta.thinking ? [{ type: "text", value: streamEvent.delta.thinking }] : [],
311
- };
312
- }
313
- break;
314
- case "signature_delta":
315
- // Signature deltas, signify the end of the thoughts.
316
- if (model_options?.include_thoughts) {
317
- return {
318
- result: [{ type: "text", value: '\n\n' }], // Double newline for more spacing
319
- };
320
- }
321
- break;
322
- }
323
- break;
324
- case "content_block_stop":
325
- // Handle the end of content blocks, for redacted thinking blocks
326
- if (model_options?.include_thoughts) {
327
- return {
328
- result: [{ type: "text", value: '\n\n' }] // Add double newline for spacing
329
- };
330
- }
331
- break;
332
- }
333
- // Default case for all other event types
334
- return {
335
- result: []
336
- };
337
- });
338
- return stream;
339
- }
340
- }
341
- exports.ClaudeModelDefinition = ClaudeModelDefinition;
342
- function createPromptFromResponse(response) {
343
- return {
344
- messages: [{
345
- role: response.role,
346
- content: response.content,
347
- }],
348
- system: undefined
349
- };
350
- }
351
- /**
352
- * Update the conversation messages
353
- * @param prompt
354
- * @param response
355
- * @returns
356
- */
357
- function updateConversation(conversation, prompt) {
358
- const baseSystemMessages = conversation?.system || [];
359
- const baseMessages = conversation?.messages || [];
360
- const system = baseSystemMessages.concat(prompt.system || []);
361
- return {
362
- messages: baseMessages.concat(prompt.messages || []),
363
- system: system.length > 0 ? system : undefined // If system is empty, set to undefined
364
- };
365
- }
366
- function getClaudePayload(options, prompt) {
367
- const modelName = options.model; // Model name is already extracted in the calling methods
368
- const model_options = options.model_options;
369
- // Add beta header for Claude 3.7 models to enable 128k output tokens
370
- let requestOptions = undefined;
371
- if (modelName.includes('claude-3-7-sonnet') &&
372
- ((model_options?.max_tokens ?? 0) > 64000 || (model_options?.thinking_budget_tokens ?? 0) > 64000)) {
373
- requestOptions = {
374
- headers: {
375
- 'anthropic-beta': 'output-128k-2025-02-19'
376
- }
377
- };
378
- }
379
- const payload = {
380
- messages: prompt.messages,
381
- system: prompt.system,
382
- tools: options.tools, // we are using the same shape as claude for tools
383
- temperature: model_options?.temperature,
384
- model: modelName,
385
- max_tokens: maxToken(options),
386
- top_p: model_options?.top_p,
387
- top_k: model_options?.top_k,
388
- stop_sequences: model_options?.stop_sequence,
389
- thinking: model_options?.thinking_mode ?
390
- {
391
- budget_tokens: model_options?.thinking_budget_tokens ?? 1024,
392
- type: "enabled"
393
- } : {
394
- type: "disabled"
395
- }
396
- };
397
- return { payload, requestOptions };
398
- }
399
- //# sourceMappingURL=claude.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/vertexai/models/claude.ts"],"names":[],"mappings":"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"}