@llumiverse/drivers 0.24.0 → 0.25.0-dev.20260204.110528Z

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 (224) hide show
  1. package/package.json +3 -3
  2. package/lib/cjs/adobe/firefly.js +0 -120
  3. package/lib/cjs/adobe/firefly.js.map +0 -1
  4. package/lib/cjs/azure/azure_foundry.js +0 -432
  5. package/lib/cjs/azure/azure_foundry.js.map +0 -1
  6. package/lib/cjs/bedrock/converse.js +0 -285
  7. package/lib/cjs/bedrock/converse.js.map +0 -1
  8. package/lib/cjs/bedrock/index.js +0 -1091
  9. package/lib/cjs/bedrock/index.js.map +0 -1
  10. package/lib/cjs/bedrock/nova-image-payload.js +0 -207
  11. package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
  12. package/lib/cjs/bedrock/payloads.js +0 -3
  13. package/lib/cjs/bedrock/payloads.js.map +0 -1
  14. package/lib/cjs/bedrock/s3.js +0 -107
  15. package/lib/cjs/bedrock/s3.js.map +0 -1
  16. package/lib/cjs/bedrock/twelvelabs.js +0 -87
  17. package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
  18. package/lib/cjs/groq/index.js +0 -323
  19. package/lib/cjs/groq/index.js.map +0 -1
  20. package/lib/cjs/huggingface_ie.js +0 -201
  21. package/lib/cjs/huggingface_ie.js.map +0 -1
  22. package/lib/cjs/index.js +0 -31
  23. package/lib/cjs/index.js.map +0 -1
  24. package/lib/cjs/mistral/index.js +0 -173
  25. package/lib/cjs/mistral/index.js.map +0 -1
  26. package/lib/cjs/mistral/types.js +0 -83
  27. package/lib/cjs/mistral/types.js.map +0 -1
  28. package/lib/cjs/openai/azure_openai.js +0 -72
  29. package/lib/cjs/openai/azure_openai.js.map +0 -1
  30. package/lib/cjs/openai/index.js +0 -665
  31. package/lib/cjs/openai/index.js.map +0 -1
  32. package/lib/cjs/openai/openai.js +0 -21
  33. package/lib/cjs/openai/openai.js.map +0 -1
  34. package/lib/cjs/openai/openai_compatible.js +0 -62
  35. package/lib/cjs/openai/openai_compatible.js.map +0 -1
  36. package/lib/cjs/openai/openai_format.js +0 -131
  37. package/lib/cjs/openai/openai_format.js.map +0 -1
  38. package/lib/cjs/package.json +0 -3
  39. package/lib/cjs/replicate.js +0 -275
  40. package/lib/cjs/replicate.js.map +0 -1
  41. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  42. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  43. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  44. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  45. package/lib/cjs/test-driver/index.js +0 -109
  46. package/lib/cjs/test-driver/index.js.map +0 -1
  47. package/lib/cjs/test-driver/utils.js +0 -30
  48. package/lib/cjs/test-driver/utils.js.map +0 -1
  49. package/lib/cjs/togetherai/index.js +0 -126
  50. package/lib/cjs/togetherai/index.js.map +0 -1
  51. package/lib/cjs/togetherai/interfaces.js +0 -3
  52. package/lib/cjs/togetherai/interfaces.js.map +0 -1
  53. package/lib/cjs/vertexai/debug.js +0 -12
  54. package/lib/cjs/vertexai/debug.js.map +0 -1
  55. package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
  56. package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
  57. package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
  58. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
  59. package/lib/cjs/vertexai/index.js +0 -576
  60. package/lib/cjs/vertexai/index.js.map +0 -1
  61. package/lib/cjs/vertexai/models/claude.js +0 -485
  62. package/lib/cjs/vertexai/models/claude.js.map +0 -1
  63. package/lib/cjs/vertexai/models/gemini.js +0 -871
  64. package/lib/cjs/vertexai/models/gemini.js.map +0 -1
  65. package/lib/cjs/vertexai/models/imagen.js +0 -303
  66. package/lib/cjs/vertexai/models/imagen.js.map +0 -1
  67. package/lib/cjs/vertexai/models/llama.js +0 -183
  68. package/lib/cjs/vertexai/models/llama.js.map +0 -1
  69. package/lib/cjs/vertexai/models.js +0 -35
  70. package/lib/cjs/vertexai/models.js.map +0 -1
  71. package/lib/cjs/watsonx/index.js +0 -161
  72. package/lib/cjs/watsonx/index.js.map +0 -1
  73. package/lib/cjs/watsonx/interfaces.js +0 -3
  74. package/lib/cjs/watsonx/interfaces.js.map +0 -1
  75. package/lib/cjs/xai/index.js +0 -65
  76. package/lib/cjs/xai/index.js.map +0 -1
  77. package/lib/esm/adobe/firefly.js +0 -116
  78. package/lib/esm/adobe/firefly.js.map +0 -1
  79. package/lib/esm/azure/azure_foundry.js +0 -426
  80. package/lib/esm/azure/azure_foundry.js.map +0 -1
  81. package/lib/esm/bedrock/converse.js +0 -278
  82. package/lib/esm/bedrock/converse.js.map +0 -1
  83. package/lib/esm/bedrock/index.js +0 -1087
  84. package/lib/esm/bedrock/index.js.map +0 -1
  85. package/lib/esm/bedrock/nova-image-payload.js +0 -203
  86. package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
  87. package/lib/esm/bedrock/payloads.js +0 -2
  88. package/lib/esm/bedrock/payloads.js.map +0 -1
  89. package/lib/esm/bedrock/s3.js +0 -99
  90. package/lib/esm/bedrock/s3.js.map +0 -1
  91. package/lib/esm/bedrock/twelvelabs.js +0 -84
  92. package/lib/esm/bedrock/twelvelabs.js.map +0 -1
  93. package/lib/esm/groq/index.js +0 -316
  94. package/lib/esm/groq/index.js.map +0 -1
  95. package/lib/esm/huggingface_ie.js +0 -197
  96. package/lib/esm/huggingface_ie.js.map +0 -1
  97. package/lib/esm/index.js +0 -15
  98. package/lib/esm/index.js.map +0 -1
  99. package/lib/esm/mistral/index.js +0 -169
  100. package/lib/esm/mistral/index.js.map +0 -1
  101. package/lib/esm/mistral/types.js +0 -80
  102. package/lib/esm/mistral/types.js.map +0 -1
  103. package/lib/esm/openai/azure_openai.js +0 -68
  104. package/lib/esm/openai/azure_openai.js.map +0 -1
  105. package/lib/esm/openai/index.js +0 -660
  106. package/lib/esm/openai/index.js.map +0 -1
  107. package/lib/esm/openai/openai.js +0 -14
  108. package/lib/esm/openai/openai.js.map +0 -1
  109. package/lib/esm/openai/openai_compatible.js +0 -55
  110. package/lib/esm/openai/openai_compatible.js.map +0 -1
  111. package/lib/esm/openai/openai_format.js +0 -127
  112. package/lib/esm/openai/openai_format.js.map +0 -1
  113. package/lib/esm/replicate.js +0 -268
  114. package/lib/esm/replicate.js.map +0 -1
  115. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  116. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  117. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +0 -20
  118. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  119. package/lib/esm/test-driver/index.js +0 -91
  120. package/lib/esm/test-driver/index.js.map +0 -1
  121. package/lib/esm/test-driver/utils.js +0 -25
  122. package/lib/esm/test-driver/utils.js.map +0 -1
  123. package/lib/esm/togetherai/index.js +0 -122
  124. package/lib/esm/togetherai/index.js.map +0 -1
  125. package/lib/esm/togetherai/interfaces.js +0 -2
  126. package/lib/esm/togetherai/interfaces.js.map +0 -1
  127. package/lib/esm/vertexai/debug.js +0 -6
  128. package/lib/esm/vertexai/debug.js.map +0 -1
  129. package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
  130. package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
  131. package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
  132. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
  133. package/lib/esm/vertexai/index.js +0 -571
  134. package/lib/esm/vertexai/index.js.map +0 -1
  135. package/lib/esm/vertexai/models/claude.js +0 -479
  136. package/lib/esm/vertexai/models/claude.js.map +0 -1
  137. package/lib/esm/vertexai/models/gemini.js +0 -866
  138. package/lib/esm/vertexai/models/gemini.js.map +0 -1
  139. package/lib/esm/vertexai/models/imagen.js +0 -299
  140. package/lib/esm/vertexai/models/imagen.js.map +0 -1
  141. package/lib/esm/vertexai/models/llama.js +0 -179
  142. package/lib/esm/vertexai/models/llama.js.map +0 -1
  143. package/lib/esm/vertexai/models.js +0 -32
  144. package/lib/esm/vertexai/models.js.map +0 -1
  145. package/lib/esm/watsonx/index.js +0 -157
  146. package/lib/esm/watsonx/index.js.map +0 -1
  147. package/lib/esm/watsonx/interfaces.js +0 -2
  148. package/lib/esm/watsonx/interfaces.js.map +0 -1
  149. package/lib/esm/xai/index.js +0 -58
  150. package/lib/esm/xai/index.js.map +0 -1
  151. package/lib/types/adobe/firefly.d.ts +0 -30
  152. package/lib/types/adobe/firefly.d.ts.map +0 -1
  153. package/lib/types/azure/azure_foundry.d.ts +0 -52
  154. package/lib/types/azure/azure_foundry.d.ts.map +0 -1
  155. package/lib/types/bedrock/converse.d.ts +0 -9
  156. package/lib/types/bedrock/converse.d.ts.map +0 -1
  157. package/lib/types/bedrock/index.d.ts +0 -68
  158. package/lib/types/bedrock/index.d.ts.map +0 -1
  159. package/lib/types/bedrock/nova-image-payload.d.ts +0 -74
  160. package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
  161. package/lib/types/bedrock/payloads.d.ts +0 -12
  162. package/lib/types/bedrock/payloads.d.ts.map +0 -1
  163. package/lib/types/bedrock/s3.d.ts +0 -23
  164. package/lib/types/bedrock/s3.d.ts.map +0 -1
  165. package/lib/types/bedrock/twelvelabs.d.ts +0 -50
  166. package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
  167. package/lib/types/groq/index.d.ts +0 -27
  168. package/lib/types/groq/index.d.ts.map +0 -1
  169. package/lib/types/huggingface_ie.d.ts +0 -35
  170. package/lib/types/huggingface_ie.d.ts.map +0 -1
  171. package/lib/types/index.d.ts +0 -15
  172. package/lib/types/index.d.ts.map +0 -1
  173. package/lib/types/mistral/index.d.ts +0 -25
  174. package/lib/types/mistral/index.d.ts.map +0 -1
  175. package/lib/types/mistral/types.d.ts +0 -132
  176. package/lib/types/mistral/types.d.ts.map +0 -1
  177. package/lib/types/openai/azure_openai.d.ts +0 -25
  178. package/lib/types/openai/azure_openai.d.ts.map +0 -1
  179. package/lib/types/openai/index.d.ts +0 -31
  180. package/lib/types/openai/index.d.ts.map +0 -1
  181. package/lib/types/openai/openai.d.ts +0 -15
  182. package/lib/types/openai/openai.d.ts.map +0 -1
  183. package/lib/types/openai/openai_compatible.d.ts +0 -26
  184. package/lib/types/openai/openai_compatible.d.ts.map +0 -1
  185. package/lib/types/openai/openai_format.d.ts +0 -21
  186. package/lib/types/openai/openai_format.d.ts.map +0 -1
  187. package/lib/types/replicate.d.ts +0 -48
  188. package/lib/types/replicate.d.ts.map +0 -1
  189. package/lib/types/test-driver/TestErrorCompletionStream.d.ts +0 -9
  190. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  191. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +0 -9
  192. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  193. package/lib/types/test-driver/index.d.ts +0 -24
  194. package/lib/types/test-driver/index.d.ts.map +0 -1
  195. package/lib/types/test-driver/utils.d.ts +0 -5
  196. package/lib/types/test-driver/utils.d.ts.map +0 -1
  197. package/lib/types/togetherai/index.d.ts +0 -23
  198. package/lib/types/togetherai/index.d.ts.map +0 -1
  199. package/lib/types/togetherai/interfaces.d.ts +0 -96
  200. package/lib/types/togetherai/interfaces.d.ts.map +0 -1
  201. package/lib/types/vertexai/debug.d.ts +0 -2
  202. package/lib/types/vertexai/debug.d.ts.map +0 -1
  203. package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
  204. package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
  205. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
  206. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
  207. package/lib/types/vertexai/index.d.ts +0 -65
  208. package/lib/types/vertexai/index.d.ts.map +0 -1
  209. package/lib/types/vertexai/models/claude.d.ts +0 -28
  210. package/lib/types/vertexai/models/claude.d.ts.map +0 -1
  211. package/lib/types/vertexai/models/gemini.d.ts +0 -18
  212. package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
  213. package/lib/types/vertexai/models/imagen.d.ts +0 -75
  214. package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
  215. package/lib/types/vertexai/models/llama.d.ts +0 -20
  216. package/lib/types/vertexai/models/llama.d.ts.map +0 -1
  217. package/lib/types/vertexai/models.d.ts +0 -15
  218. package/lib/types/vertexai/models.d.ts.map +0 -1
  219. package/lib/types/watsonx/index.d.ts +0 -27
  220. package/lib/types/watsonx/index.d.ts.map +0 -1
  221. package/lib/types/watsonx/interfaces.d.ts +0 -65
  222. package/lib/types/watsonx/interfaces.d.ts.map +0 -1
  223. package/lib/types/xai/index.d.ts +0 -18
  224. package/lib/types/xai/index.d.ts.map +0 -1
@@ -1,576 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VertexAIDriver = void 0;
4
- exports.trimModelName = trimModelName;
5
- const vertex_sdk_1 = require("@anthropic-ai/vertex-sdk");
6
- const aiplatform_1 = require("@google-cloud/aiplatform");
7
- const genai_1 = require("@google/genai");
8
- const core_1 = require("@llumiverse/core");
9
- const api_fetch_client_1 = require("@vertesia/api-fetch-client");
10
- const google_auth_library_1 = require("google-auth-library");
11
- const embeddings_image_js_1 = require("./embeddings/embeddings-image.js");
12
- const embeddings_text_js_1 = require("./embeddings/embeddings-text.js");
13
- const models_js_1 = require("./models.js");
14
- const claude_js_1 = require("./models/claude.js");
15
- const imagen_js_1 = require("./models/imagen.js");
16
- function trimModelName(model) {
17
- const i = model.lastIndexOf("@");
18
- return i > -1 ? model.substring(0, i) : model;
19
- }
20
- class VertexAIDriver extends core_1.AbstractDriver {
21
- static PROVIDER = "vertexai";
22
- provider = VertexAIDriver.PROVIDER;
23
- aiplatform;
24
- anthropicClient;
25
- fetchClient;
26
- googleGenAI;
27
- llamaClient;
28
- modelGarden;
29
- imagenClient;
30
- googleAuth;
31
- authClientPromise;
32
- constructor(options) {
33
- super(options);
34
- this.aiplatform = undefined;
35
- this.anthropicClient = undefined;
36
- this.fetchClient = undefined;
37
- this.googleGenAI = undefined;
38
- this.modelGarden = undefined;
39
- this.llamaClient = undefined;
40
- this.imagenClient = undefined;
41
- this.googleAuth = new google_auth_library_1.GoogleAuth(options.googleAuthOptions);
42
- this.authClientPromise = undefined;
43
- }
44
- async getAuthClient() {
45
- if (!this.authClientPromise) {
46
- this.authClientPromise = this.googleAuth.getClient();
47
- }
48
- return this.authClientPromise;
49
- }
50
- getGoogleGenAIClient(region = this.options.region) {
51
- //Lazy initialization
52
- if (region !== this.options.region) {
53
- //Get one off client for different region
54
- return new genai_1.GoogleGenAI({
55
- project: this.options.project,
56
- location: region,
57
- vertexai: true,
58
- googleAuthOptions: this.options.googleAuthOptions || {
59
- scopes: ["https://www.googleapis.com/auth/cloud-platform"],
60
- }
61
- });
62
- }
63
- if (!this.googleGenAI) {
64
- this.googleGenAI = new genai_1.GoogleGenAI({
65
- project: this.options.project,
66
- location: region,
67
- vertexai: true,
68
- googleAuthOptions: this.options.googleAuthOptions || {
69
- scopes: ["https://www.googleapis.com/auth/cloud-platform"],
70
- }
71
- });
72
- }
73
- return this.googleGenAI;
74
- }
75
- getFetchClient() {
76
- //Lazy initialization
77
- if (!this.fetchClient) {
78
- this.fetchClient = createFetchClient({
79
- region: this.options.region,
80
- project: this.options.project,
81
- }).withAuthCallback(async () => {
82
- const token = await this.googleAuth.getAccessToken();
83
- return `Bearer ${token}`;
84
- });
85
- }
86
- return this.fetchClient;
87
- }
88
- getLLamaClient(region = "us-central1") {
89
- //Lazy initialization
90
- if (!this.llamaClient || this.llamaClient["region"] !== region) {
91
- this.llamaClient = createFetchClient({
92
- region: region,
93
- project: this.options.project,
94
- apiVersion: "v1beta1",
95
- }).withAuthCallback(async () => {
96
- const token = await this.googleAuth.getAccessToken();
97
- return `Bearer ${token}`;
98
- });
99
- // Store the region for potential client reuse
100
- this.llamaClient["region"] = region;
101
- }
102
- return this.llamaClient;
103
- }
104
- async getAnthropicClient(region = this.options.region) {
105
- // Extract region prefix and map if it exists in ANTHROPIC_REGIONS, otherwise use as-is
106
- const getRegionPrefix = (r) => r.split('-')[0];
107
- const regionPrefix = getRegionPrefix(region);
108
- const mappedRegion = claude_js_1.ANTHROPIC_REGIONS[regionPrefix] || region;
109
- const defaultRegionPrefix = getRegionPrefix(this.options.region);
110
- const defaultMappedRegion = claude_js_1.ANTHROPIC_REGIONS[defaultRegionPrefix] || this.options.region;
111
- // Get auth client to avoid version mismatch with GoogleAuth generic types
112
- const authClient = await this.getAuthClient();
113
- // If mapped region is different from default mapped region, create one-off client
114
- if (mappedRegion !== defaultMappedRegion) {
115
- return new vertex_sdk_1.AnthropicVertex({
116
- timeout: 20 * 60 * 10000, // Set to 20 minutes, 10 minute default, setting this disables long request error: https://github.com/anthropics/anthropic-sdk-typescript?#long-requests
117
- region: mappedRegion,
118
- projectId: this.options.project,
119
- authClient: authClient,
120
- });
121
- }
122
- //Lazy initialization for default region
123
- if (!this.anthropicClient) {
124
- this.anthropicClient = new vertex_sdk_1.AnthropicVertex({
125
- timeout: 20 * 60 * 10000, // Set to 20 minutes, 10 minute default, setting this disables long request error: https://github.com/anthropics/anthropic-sdk-typescript?#long-requests
126
- region: mappedRegion,
127
- projectId: this.options.project,
128
- authClient: authClient,
129
- });
130
- }
131
- return this.anthropicClient;
132
- }
133
- async getAIPlatformClient() {
134
- //Lazy initialization
135
- if (!this.aiplatform) {
136
- const authClient = await this.getAuthClient();
137
- this.aiplatform = new aiplatform_1.v1beta1.ModelServiceClient({
138
- projectId: this.options.project,
139
- apiEndpoint: `${this.options.region}-${API_BASE_PATH}`,
140
- authClient,
141
- });
142
- }
143
- return this.aiplatform;
144
- }
145
- async getModelGardenClient() {
146
- //Lazy initialization
147
- if (!this.modelGarden) {
148
- const authClient = await this.getAuthClient();
149
- this.modelGarden = new aiplatform_1.v1beta1.ModelGardenServiceClient({
150
- projectId: this.options.project,
151
- apiEndpoint: `${this.options.region}-${API_BASE_PATH}`,
152
- authClient,
153
- });
154
- }
155
- return this.modelGarden;
156
- }
157
- async getImagenClient() {
158
- //Lazy initialization
159
- if (!this.imagenClient) {
160
- // TODO: make location configurable, fixed to us-central1 for now
161
- const authClient = await this.getAuthClient();
162
- this.imagenClient = new aiplatform_1.PredictionServiceClient({
163
- projectId: this.options.project,
164
- apiEndpoint: `us-central1-${API_BASE_PATH}`,
165
- authClient,
166
- });
167
- }
168
- return this.imagenClient;
169
- }
170
- validateResult(result, options) {
171
- // Optionally preprocess the result before validation
172
- const modelDef = (0, models_js_1.getModelDefinition)(options.model);
173
- if (typeof modelDef.preValidationProcessing === "function") {
174
- const processed = modelDef.preValidationProcessing(result, options);
175
- result = processed.result;
176
- options = processed.options;
177
- }
178
- super.validateResult(result, options);
179
- }
180
- canStream(options) {
181
- if (this.isImageModel(options.model)) {
182
- return Promise.resolve(false);
183
- }
184
- return Promise.resolve((0, models_js_1.getModelDefinition)(options.model).model.can_stream === true);
185
- }
186
- isImageModel(model) {
187
- return model.includes("imagen");
188
- }
189
- createPrompt(segments, options) {
190
- if (this.isImageModel(options.model)) {
191
- return new imagen_js_1.ImagenModelDefinition(options.model).createPrompt(this, segments, options);
192
- }
193
- return (0, models_js_1.getModelDefinition)(options.model).createPrompt(this, segments, options);
194
- }
195
- async requestTextCompletion(prompt, options) {
196
- return (0, models_js_1.getModelDefinition)(options.model).requestTextCompletion(this, prompt, options);
197
- }
198
- async requestTextCompletionStream(prompt, options) {
199
- return (0, models_js_1.getModelDefinition)(options.model).requestTextCompletionStream(this, prompt, options);
200
- }
201
- /**
202
- * Build conversation context after streaming completion.
203
- * Reconstructs the assistant message from accumulated results and applies stripping.
204
- * Handles both Gemini (Content[]) and Claude (ClaudePrompt) formats.
205
- */
206
- buildStreamingConversation(prompt, result, toolUse, options) {
207
- // Handle Claude-style prompts (has 'messages' array)
208
- if ('messages' in prompt && Array.isArray(prompt.messages)) {
209
- return this.buildClaudeStreamingConversation(prompt, result, toolUse, options);
210
- }
211
- // Only handle Gemini-style prompts with contents array
212
- if (!('contents' in prompt) || !Array.isArray(prompt.contents)) {
213
- return undefined;
214
- }
215
- const completionResults = result;
216
- // Convert accumulated results to text content for assistant message
217
- const textContent = completionResults
218
- .map(r => {
219
- switch (r.type) {
220
- case 'text':
221
- return r.value;
222
- case 'json':
223
- return typeof r.value === 'string' ? r.value : JSON.stringify(r.value);
224
- case 'image':
225
- // Skip images in conversation - they're in the result
226
- return '';
227
- default:
228
- return String(r.value || '');
229
- }
230
- })
231
- .join('');
232
- // Build parts array for assistant message
233
- const parts = [];
234
- if (textContent) {
235
- parts.push({ text: textContent });
236
- }
237
- // Add function calls if present (Gemini format)
238
- if (toolUse && toolUse.length > 0) {
239
- for (const tool of toolUse) {
240
- parts.push({
241
- functionCall: {
242
- name: tool.tool_name,
243
- args: tool.tool_input,
244
- }
245
- });
246
- }
247
- }
248
- // Build assistant message in Gemini Content format
249
- const assistantContent = {
250
- role: 'model',
251
- parts: parts.length > 0 ? parts : [{ text: '' }]
252
- };
253
- // Unwrap array if wrapped, otherwise treat as array
254
- const unwrapped = (0, core_1.unwrapConversationArray)(options.conversation);
255
- const existingConversation = unwrapped ?? (options.conversation || []);
256
- // Combine existing conversation + prompt contents + assistant response
257
- let conversation = [
258
- ...existingConversation,
259
- ...prompt.contents,
260
- assistantContent
261
- ];
262
- // Increment turn counter
263
- conversation = (0, core_1.incrementConversationTurn)(conversation);
264
- // Apply stripping based on options
265
- const currentTurn = (0, core_1.getConversationMeta)(conversation).turnNumber;
266
- const stripOptions = {
267
- keepForTurns: options.stripImagesAfterTurns ?? Infinity,
268
- currentTurn,
269
- textMaxTokens: options.stripTextMaxTokens
270
- };
271
- let processedConversation = (0, core_1.stripBase64ImagesFromConversation)(conversation, stripOptions);
272
- processedConversation = (0, core_1.truncateLargeTextInConversation)(processedConversation, stripOptions);
273
- return processedConversation;
274
- }
275
- /**
276
- * Build conversation for Claude streaming.
277
- * Creates assistant message with tool_use blocks in Claude's ContentBlock format.
278
- */
279
- buildClaudeStreamingConversation(prompt, result, toolUse, options) {
280
- const completionResults = result;
281
- // Convert accumulated results to text content
282
- const textContent = completionResults
283
- .map(r => {
284
- switch (r.type) {
285
- case 'text':
286
- return r.value;
287
- case 'json':
288
- return typeof r.value === 'string' ? r.value : JSON.stringify(r.value);
289
- case 'image':
290
- return '';
291
- default:
292
- return String(r.value || '');
293
- }
294
- })
295
- .join('');
296
- // Build Claude-style ContentBlock array for assistant message
297
- const content = [];
298
- // Add text block if there's text content
299
- if (textContent) {
300
- content.push({
301
- type: 'text',
302
- text: textContent
303
- });
304
- }
305
- // Add tool_use blocks in Claude format
306
- if (toolUse && toolUse.length > 0) {
307
- for (const tool of toolUse) {
308
- content.push({
309
- type: 'tool_use',
310
- id: tool.id,
311
- name: tool.tool_name,
312
- input: tool.tool_input ?? {}
313
- });
314
- }
315
- }
316
- // Build assistant message
317
- const assistantMessage = {
318
- role: 'assistant',
319
- content: content.length > 0 ? content : [{ type: 'text', text: '' }]
320
- };
321
- // Get existing conversation or start fresh
322
- const existingMessages = options.conversation?.messages ?? [];
323
- const existingSystem = options.conversation?.system ?? prompt.system;
324
- // Combine: existing conversation + new prompt messages + assistant response
325
- const newMessages = [
326
- ...existingMessages,
327
- ...prompt.messages,
328
- assistantMessage
329
- ];
330
- // Build the new conversation in ClaudePrompt format
331
- const conversation = {
332
- messages: newMessages,
333
- system: existingSystem
334
- };
335
- // Increment turn counter
336
- const withTurn = (0, core_1.incrementConversationTurn)(conversation);
337
- // Apply stripping based on options
338
- const currentTurn = (0, core_1.getConversationMeta)(withTurn).turnNumber;
339
- const stripOptions = {
340
- keepForTurns: options.stripImagesAfterTurns ?? Infinity,
341
- currentTurn,
342
- textMaxTokens: options.stripTextMaxTokens
343
- };
344
- let processedConversation = (0, core_1.stripBase64ImagesFromConversation)(withTurn, stripOptions);
345
- processedConversation = (0, core_1.truncateLargeTextInConversation)(processedConversation, stripOptions);
346
- return processedConversation;
347
- }
348
- async requestImageGeneration(_prompt, _options) {
349
- const splits = _options.model.split("/");
350
- const modelName = trimModelName(splits[splits.length - 1]);
351
- return new imagen_js_1.ImagenModelDefinition(modelName).requestImageGeneration(this, _prompt, _options);
352
- }
353
- async getGenAIModelsArray(client) {
354
- const models = [];
355
- const pager = await client.models.list();
356
- for await (const item of pager) {
357
- models.push(item);
358
- }
359
- return models;
360
- }
361
- async listModels(_params) {
362
- // Get clients
363
- const modelGarden = await this.getModelGardenClient();
364
- const aiplatform = await this.getAIPlatformClient();
365
- const globalGenAiClient = this.getGoogleGenAIClient("global");
366
- let models = [];
367
- //Model Garden Publisher models - Pretrained models
368
- const publishers = ["google", "anthropic", "meta"];
369
- // Meta "maas" models are LLama Models-As-A-Service. Non-maas models are not pre-deployed.
370
- const supportedModels = { google: ["gemini", "imagen"], anthropic: ["claude"], meta: ["maas"] };
371
- // Additional models not in the listings, but we want to include
372
- // TODO: Remove once the models are available in the listing API, or no longer needed
373
- const additionalModels = {
374
- google: [
375
- "imagen-3.0-fast-generate-001",
376
- ],
377
- anthropic: [],
378
- meta: [
379
- "llama-4-maverick-17b-128e-instruct-maas",
380
- "llama-4-scout-17b-16e-instruct-maas",
381
- "llama-3.3-70b-instruct-maas",
382
- "llama-3.2-90b-vision-instruct-maas",
383
- "llama-3.1-405b-instruct-maas",
384
- "llama-3.1-70b-instruct-maas",
385
- "llama-3.1-8b-instruct-maas",
386
- ],
387
- };
388
- //Used to exclude retired models that are still in the listing API but not available for use.
389
- //Or models we do not support yet
390
- const unsupportedModelsByPublisher = {
391
- google: ["gemini-pro", "gemini-ultra", "imagen-product-recontext-preview", "embedding", "gemini-live-2.5-flash-preview-native-audio", "computer-use-preview"],
392
- anthropic: [],
393
- meta: [],
394
- };
395
- // Start all network requests in parallel
396
- const aiplatformPromise = aiplatform.listModels({
397
- parent: `projects/${this.options.project}/locations/${this.options.region}`,
398
- });
399
- const publisherPromises = publishers.map(async (publisher) => {
400
- const [response] = await modelGarden.listPublisherModels({
401
- parent: `publishers/${publisher}`,
402
- orderBy: "name",
403
- listAllVersions: true,
404
- });
405
- return { publisher, response };
406
- });
407
- const globalGooglePromise = this.getGenAIModelsArray(globalGenAiClient);
408
- // Await all network requests
409
- const [aiplatformResult, globalGoogleResult, ...publisherResults] = await Promise.all([
410
- aiplatformPromise,
411
- globalGooglePromise,
412
- ...publisherPromises,
413
- ]);
414
- // Process aiplatform models, project specific models
415
- const [response] = aiplatformResult;
416
- models = models.concat(response.map((model) => ({
417
- id: model.name?.split("/").pop() ?? "",
418
- name: model.displayName ?? "",
419
- provider: "vertexai"
420
- })));
421
- // Process global google models from GenAI
422
- models = models.concat(globalGoogleResult.map((model) => {
423
- const modelCapability = (0, core_1.getModelCapabilities)(model.name ?? '', "vertexai");
424
- return {
425
- id: "locations/global/" + model.name,
426
- name: "Global " + model.name?.split('/').pop(),
427
- provider: "vertexai",
428
- owner: "google",
429
- input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
430
- output_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.output),
431
- tool_support: modelCapability.tool_support,
432
- };
433
- }));
434
- // Process publisher models
435
- for (const result of publisherResults) {
436
- const { publisher, response } = result;
437
- const modelFamily = supportedModels[publisher];
438
- const retiredModels = unsupportedModelsByPublisher[publisher];
439
- models = models.concat(response.filter((model) => {
440
- const modelName = model.name ?? "";
441
- // Exclude retired models
442
- if (retiredModels.some(retiredModel => modelName.includes(retiredModel))) {
443
- return false;
444
- }
445
- // Check if the model belongs to the supported model families
446
- if (modelFamily.some(family => modelName.includes(family))) {
447
- return true;
448
- }
449
- return false;
450
- }).map(model => {
451
- const modelCapability = (0, core_1.getModelCapabilities)(model.name ?? '', "vertexai");
452
- return {
453
- id: model.name ?? '',
454
- name: model.name?.split('/').pop() ?? '',
455
- provider: 'vertexai',
456
- owner: publisher,
457
- input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
458
- output_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.output),
459
- tool_support: modelCapability.tool_support,
460
- };
461
- }));
462
- // Create global google gemini models for Gemini 2.5 and later, if missing from GenAI listing
463
- if (publisher === 'google') {
464
- const globalGeminiModels = response.filter((model) => {
465
- const modelName = model.name ?? "";
466
- if (retiredModels.some(retiredModel => modelName.includes(retiredModel))) {
467
- return false;
468
- }
469
- if (modelFamily.some(family => modelName.includes(family))) {
470
- const versionMatch = modelName.match(/gemini-(\d+(?:\.\d+)?)/);
471
- if (versionMatch) {
472
- const version = parseFloat(versionMatch[1]);
473
- if (version >= 2.5) {
474
- // Check if already present
475
- const shortName = modelName.split('/').pop();
476
- const globalName = "Global " + shortName;
477
- if (models.some(m => m.name === globalName)) {
478
- return false;
479
- }
480
- return true;
481
- }
482
- }
483
- return false;
484
- }
485
- return false;
486
- }).map(model => {
487
- const modelCapability = (0, core_1.getModelCapabilities)(model.name ?? '', "vertexai");
488
- return {
489
- id: "locations/global/" + model.name,
490
- name: "Global " + model.name?.split('/').pop(),
491
- provider: 'vertexai',
492
- owner: publisher,
493
- input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
494
- output_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.output),
495
- tool_support: modelCapability.tool_support,
496
- };
497
- });
498
- models = models.concat(globalGeminiModels);
499
- }
500
- // Create global anthropic models for those not in NON_GLOBAL_ANTHROPIC_MODELS
501
- if (publisher === 'anthropic') {
502
- const globalAnthropicModels = response.filter((model) => {
503
- const modelName = model.name ?? "";
504
- if (retiredModels.some(retiredModel => modelName.includes(retiredModel))) {
505
- return false;
506
- }
507
- if (modelFamily.some(family => modelName.includes(family))) {
508
- if (modelName.includes("claude-3-7")) {
509
- return true;
510
- }
511
- return !claude_js_1.NON_GLOBAL_ANTHROPIC_MODELS.some(nonGlobalModel => modelName.includes(nonGlobalModel));
512
- }
513
- return false;
514
- }).map(model => {
515
- const modelCapability = (0, core_1.getModelCapabilities)(model.name ?? '', "vertexai");
516
- return {
517
- id: "locations/global/" + model.name,
518
- name: "Global " + model.name?.split('/').pop(),
519
- provider: 'vertexai',
520
- owner: publisher,
521
- input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
522
- output_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.output),
523
- tool_support: modelCapability.tool_support,
524
- };
525
- });
526
- models = models.concat(globalAnthropicModels);
527
- }
528
- // Add additional models that are not in the listing
529
- for (const additionalModel of additionalModels[publisher]) {
530
- const publisherModelName = `publishers/${publisher}/models/${additionalModel}`;
531
- const modelCapability = (0, core_1.getModelCapabilities)(additionalModel, "vertexai");
532
- models.push({
533
- id: publisherModelName,
534
- name: additionalModel,
535
- provider: 'vertexai',
536
- owner: publisher,
537
- input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
538
- output_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.output),
539
- tool_support: modelCapability.tool_support,
540
- });
541
- }
542
- }
543
- //Remove duplicates
544
- const uniqueModels = Array.from(new Set(models.map(a => a.id)))
545
- .map(id => {
546
- return models.find(a => a.id === id) ?? {};
547
- }).sort((a, b) => a.id.localeCompare(b.id));
548
- return uniqueModels;
549
- }
550
- validateConnection() {
551
- throw new Error("Method not implemented.");
552
- }
553
- async generateEmbeddings(options) {
554
- if (options.image || options.model?.includes("multimodal")) {
555
- if (options.text && options.image) {
556
- throw new Error("Text and Image simultaneous embedding not implemented. Submit separately");
557
- }
558
- return (0, embeddings_image_js_1.getEmbeddingsForImages)(this, options);
559
- }
560
- const text_options = {
561
- content: options.text ?? "",
562
- model: options.model,
563
- };
564
- return (0, embeddings_text_js_1.getEmbeddingsForText)(this, text_options);
565
- }
566
- }
567
- exports.VertexAIDriver = VertexAIDriver;
568
- //'us-central1-aiplatform.googleapis.com',
569
- const API_BASE_PATH = "aiplatform.googleapis.com";
570
- function createFetchClient({ region, project, apiEndpoint, apiVersion = "v1", }) {
571
- const vertexBaseEndpoint = apiEndpoint ?? `${region}-${API_BASE_PATH}`;
572
- return new api_fetch_client_1.FetchClient(`https://${vertexBaseEndpoint}/${apiVersion}/projects/${project}/locations/${region}`).withHeaders({
573
- "Content-Type": "application/json",
574
- });
575
- }
576
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vertexai/index.ts"],"names":[],"mappings":"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"}