@llumiverse/drivers 1.0.0 → 1.1.0

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 (38) hide show
  1. package/lib/cjs/bedrock/index.js +90 -10
  2. package/lib/cjs/bedrock/index.js.map +1 -1
  3. package/lib/cjs/openai/index.js +2 -0
  4. package/lib/cjs/openai/index.js.map +1 -1
  5. package/lib/cjs/vertexai/index.js +31 -22
  6. package/lib/cjs/vertexai/index.js.map +1 -1
  7. package/lib/cjs/vertexai/models/claude.js +99 -26
  8. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  9. package/lib/cjs/vertexai/models/gemini.js +35 -335
  10. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  11. package/lib/esm/bedrock/index.js +90 -10
  12. package/lib/esm/bedrock/index.js.map +1 -1
  13. package/lib/esm/openai/index.js +2 -0
  14. package/lib/esm/openai/index.js.map +1 -1
  15. package/lib/esm/vertexai/index.js +31 -22
  16. package/lib/esm/vertexai/index.js.map +1 -1
  17. package/lib/esm/vertexai/models/claude.js +99 -28
  18. package/lib/esm/vertexai/models/claude.js.map +1 -1
  19. package/lib/esm/vertexai/models/gemini.js +36 -336
  20. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  21. package/lib/types/bedrock/index.d.ts +5 -2
  22. package/lib/types/bedrock/index.d.ts.map +1 -1
  23. package/lib/types/openai/index.d.ts.map +1 -1
  24. package/lib/types/vertexai/index.d.ts +4 -1
  25. package/lib/types/vertexai/index.d.ts.map +1 -1
  26. package/lib/types/vertexai/models/claude.d.ts +16 -0
  27. package/lib/types/vertexai/models/claude.d.ts.map +1 -1
  28. package/lib/types/vertexai/models/gemini.d.ts +4 -8
  29. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  30. package/package.json +8 -8
  31. package/src/bedrock/index.ts +104 -12
  32. package/src/bedrock/streaming-tool-use.test.ts +250 -0
  33. package/src/openai/index.ts +2 -0
  34. package/src/vertexai/index.ts +32 -22
  35. package/src/vertexai/models/claude-streaming-spacing.test.ts +174 -0
  36. package/src/vertexai/models/claude.ts +120 -29
  37. package/src/vertexai/models/gemini-conversation-mutation.test.ts +174 -0
  38. package/src/vertexai/models/gemini.ts +48 -391
@@ -53,11 +53,13 @@ function getGeminiPayload(options, prompt) {
53
53
  const model_options = options.model_options;
54
54
  const tools = getToolDefinitions(options.tools);
55
55
  // When no tools are provided but conversation contains functionCall/functionResponse parts
56
- // (e.g. checkpoint summary calls), convert them to text to avoid API errors
57
- if (!tools && prompt.contents) {
58
- const hasToolParts = prompt.contents.some(c => c.parts?.some(p => p.functionCall || p.functionResponse));
56
+ // (e.g. checkpoint summary calls), convert them to text to avoid API errors.
57
+ // Use a local variable to avoid mutating the caller's conversation object.
58
+ let payloadContents = prompt.contents;
59
+ if (!tools && payloadContents) {
60
+ const hasToolParts = payloadContents.some(c => c.parts?.some(p => p.functionCall || p.functionResponse));
59
61
  if (hasToolParts) {
60
- prompt.contents = convertGeminiFunctionPartsToText(prompt.contents);
62
+ payloadContents = convertGeminiFunctionPartsToText(payloadContents);
61
63
  }
62
64
  }
63
65
  const useStructuredOutput = supportsStructuredOutput(options) && !tools;
@@ -72,6 +74,7 @@ function getGeminiPayload(options, prompt) {
72
74
  maxOutputTokens: model_options?.max_tokens,
73
75
  stopSequences: model_options?.stop_sequence,
74
76
  thinkingConfig: geminiThinkingConfig(options),
77
+ labels: options.labels,
75
78
  imageConfig: {
76
79
  imageSize: model_options?.image_size,
77
80
  aspectRatio: model_options?.image_aspect_ratio,
@@ -93,7 +96,7 @@ function getGeminiPayload(options, prompt) {
93
96
  candidateCount: 1,
94
97
  //JSON/Structured output
95
98
  responseMimeType: useStructuredOutput ? "application/json" : undefined,
96
- responseSchema: useStructuredOutput ? parseJSONtoSchema(options.result_schema, true) : undefined,
99
+ responseJsonSchema: useStructuredOutput ? options.result_schema : undefined,
97
100
  //Model options
98
101
  temperature: model_options?.temperature,
99
102
  topP: model_options?.top_p,
@@ -104,299 +107,14 @@ function getGeminiPayload(options, prompt) {
104
107
  frequencyPenalty: model_options?.frequency_penalty,
105
108
  seed: model_options?.seed,
106
109
  thinkingConfig: geminiThinkingConfig(options),
110
+ labels: options.labels,
107
111
  };
108
112
  return {
109
113
  model: options.model,
110
- contents: prompt.contents,
114
+ contents: payloadContents,
111
115
  config: options.model.toLowerCase().includes("image") ? configNanoBanana : config,
112
116
  };
113
117
  }
114
- /**
115
- * Convert JSONSchema to Gemini Schema,
116
- * Make all properties required by default
117
- * Properties previously marked as optional will be marked as nullable.
118
- */
119
- function parseJSONtoSchema(schema, requiredAll = false) {
120
- if (!schema) {
121
- return {};
122
- }
123
- return convertSchema(schema, 0, requiredAll);
124
- }
125
- /**
126
- * Convert JSONSchema type to Gemini Schema Type
127
- */
128
- function convertType(type) {
129
- if (!type)
130
- return undefined;
131
- // Handle single type
132
- if (typeof type === 'string') {
133
- switch (type) {
134
- case 'string': return genai_1.Type.STRING;
135
- case 'number': return genai_1.Type.NUMBER;
136
- case 'integer': return genai_1.Type.INTEGER;
137
- case 'boolean': return genai_1.Type.BOOLEAN;
138
- case 'object': return genai_1.Type.OBJECT;
139
- case 'array': return genai_1.Type.ARRAY;
140
- default: return type; // For unsupported types, return as is
141
- }
142
- }
143
- // For array of types, take the first valid one as the primary type
144
- // The full set of types will be handled with anyOf
145
- for (const t of type) {
146
- const converted = convertType(t);
147
- if (converted)
148
- return converted;
149
- }
150
- return undefined;
151
- }
152
- /**
153
- * Deep clone and convert the schema from JSONSchema to Gemini Schema
154
- * @throws {Error} If circular references are detected (max depth exceeded)
155
- */
156
- function convertSchema(jsSchema, depth = 0, requiredAll = false) {
157
- // Prevent circular references
158
- if (depth > 20) {
159
- throw new Error("Maximum schema depth (20) exceeded. Possible circular reference detected.");
160
- }
161
- if (!jsSchema)
162
- return {};
163
- // Create new schema object rather than mutating
164
- const result = {};
165
- // Handle types
166
- result.type = convertSchemaType(jsSchema);
167
- // Handle description
168
- if (jsSchema.description) {
169
- result.description = jsSchema.description;
170
- }
171
- // Handle properties and required fields
172
- if (jsSchema.properties) {
173
- const propertyResult = convertSchemaProperties(jsSchema, depth + 1, requiredAll);
174
- Object.assign(result, propertyResult);
175
- }
176
- // Handle items for arrays
177
- if (jsSchema.items) {
178
- result.items = convertSchema(jsSchema.items, depth + 1);
179
- }
180
- // Handle enum values
181
- if (jsSchema.enum) {
182
- result.enum = [...jsSchema.enum]; // Create a copy instead of reference
183
- }
184
- // Copy constraints
185
- Object.assign(result, extractConstraints(jsSchema));
186
- return result;
187
- }
188
- /**
189
- * Convert schema type information, handling anyOf for multiple types
190
- */
191
- function convertSchemaType(jsSchema) {
192
- // Handle multiple types using anyOf
193
- if (jsSchema.type && Array.isArray(jsSchema.type) && jsSchema.type.length > 1) {
194
- // Since anyOf is an advanced type, we'll return the first valid type
195
- // and handle the multi-type case separately in the schema
196
- return convertType(jsSchema.type[0]);
197
- }
198
- // Handle single type
199
- else if (jsSchema.type) {
200
- return convertType(jsSchema.type);
201
- }
202
- return undefined;
203
- }
204
- /**
205
- * Handle properties conversion and required fields
206
- */
207
- function convertSchemaProperties(jsSchema, depth, requiredAll) {
208
- const result = { properties: {} };
209
- if (jsSchema.required) {
210
- result.required = [...jsSchema.required]; // Create a copy
211
- }
212
- // Extract property ordering from the object keys
213
- const propertyNames = Object.keys(jsSchema.properties || {});
214
- // Set property ordering based on the existing order in the schema
215
- if (propertyNames.length > 0) {
216
- result.propertyOrdering = propertyNames;
217
- if (requiredAll) {
218
- // Mark all properties as required by default
219
- // This ensures the model fills all fields
220
- result.required = propertyNames;
221
- // Get the original required properties
222
- const originalRequired = jsSchema.required || [];
223
- // Make previously optional properties nullable since we're marking them as required
224
- for (const key of propertyNames) {
225
- const propSchema = jsSchema.properties?.[key];
226
- if (propSchema && !originalRequired.includes(key)) {
227
- // Initialize the property if needed
228
- if (!result.properties[key]) {
229
- result.properties[key] = {};
230
- }
231
- // Mark as nullable
232
- result.properties[key].nullable = true;
233
- }
234
- }
235
- }
236
- }
237
- // Convert each property schema
238
- for (const [key, value] of Object.entries(jsSchema.properties || {})) {
239
- if (!result.properties[key]) {
240
- result.properties[key] = {};
241
- }
242
- // Merge with converted schema
243
- result.properties[key] = {
244
- ...result.properties[key],
245
- ...convertSchema(value, depth)
246
- };
247
- }
248
- // Override with explicit propertyOrdering if present
249
- if (jsSchema.propertyOrdering) {
250
- result.propertyOrdering = [...jsSchema.propertyOrdering]; // Create a copy
251
- }
252
- return result;
253
- }
254
- /**
255
- * Extract schema constraints (min/max values, formats, etc.)
256
- */
257
- function extractConstraints(jsSchema) {
258
- const constraints = {};
259
- if (jsSchema.minimum !== undefined)
260
- constraints.minimum = jsSchema.minimum;
261
- if (jsSchema.maximum !== undefined)
262
- constraints.maximum = jsSchema.maximum;
263
- if (jsSchema.minLength !== undefined)
264
- constraints.minLength = jsSchema.minLength;
265
- if (jsSchema.maxLength !== undefined)
266
- constraints.maxLength = jsSchema.maxLength;
267
- if (jsSchema.minItems !== undefined)
268
- constraints.minItems = jsSchema.minItems;
269
- if (jsSchema.maxItems !== undefined)
270
- constraints.maxItems = jsSchema.maxItems;
271
- if (jsSchema.nullable !== undefined)
272
- constraints.nullable = jsSchema.nullable;
273
- if (jsSchema.pattern)
274
- constraints.pattern = jsSchema.pattern;
275
- if (jsSchema.format)
276
- constraints.format = jsSchema.format;
277
- if (jsSchema.default !== undefined)
278
- constraints.default = jsSchema.default;
279
- if (jsSchema.example !== undefined)
280
- constraints.example = jsSchema.example;
281
- return constraints;
282
- }
283
- /**
284
- * Check if a value is empty (null, undefined, empty string, empty array, empty object)
285
- * @param value The value to check
286
- * @returns True if the value is considered empty
287
- */
288
- function isEmpty(value) {
289
- if (value === null || value === undefined) {
290
- return true;
291
- }
292
- if (typeof value === 'string' && value.trim() === '') {
293
- return true;
294
- }
295
- if (Array.isArray(value) && value.length === 0) {
296
- return true;
297
- }
298
- // Check for empty object (no own enumerable properties)
299
- if (typeof value === 'object' && Object.keys(value).length === 0) {
300
- return true;
301
- }
302
- // Check for array of empty objects
303
- if (Array.isArray(value) && value.every(item => isEmpty(item))) {
304
- return true;
305
- }
306
- return false;
307
- }
308
- // No array cleaning function needed as we're only working with JSONObjects
309
- /**
310
- * Clean up the JSON result by removing empty values for optional fields
311
- * Uses immutable patterns to create a new Content object rather than modifying the original
312
- * @param content The original content from Gemini
313
- * @param result_schema The JSON schema to use for cleaning
314
- * @returns A new Content object with cleaned JSON text
315
- */
316
- function cleanEmptyFieldsContent(content, result_schema) {
317
- // If no schema provided, return original content
318
- if (!result_schema) {
319
- return content;
320
- }
321
- // Create a new content object (shallow copy)
322
- const cleanedContent = { ...content };
323
- // Create a new parts array if it exists
324
- if (cleanedContent.parts) {
325
- cleanedContent.parts = cleanedContent.parts.map(part => {
326
- // Only process parts with text
327
- if (!part.text) {
328
- return part; // Return unchanged if no text
329
- }
330
- // Create a new part object
331
- const newPart = { ...part };
332
- try {
333
- // Parse JSON, clean it based on schema, then stringify
334
- const jsonText = JSON.parse(part.text);
335
- // Skip cleaning if not an object
336
- if (typeof jsonText === 'object' && jsonText !== null && !Array.isArray(jsonText)) {
337
- const cleanedJson = removeEmptyFields(jsonText, result_schema);
338
- newPart.text = JSON.stringify(cleanedJson);
339
- }
340
- else {
341
- // Keep original if not an object (string, number, array, etc.)
342
- newPart.text = part.text;
343
- }
344
- }
345
- catch (e) {
346
- // On error, keep the original text
347
- console.warn("Error parsing Gemini output to JSON in part:", e);
348
- }
349
- return newPart;
350
- });
351
- }
352
- return cleanedContent;
353
- }
354
- /**
355
- * Removes empty optional fields from the JSON result based on the provided schema
356
- * @param object The object to clean
357
- * @param schema The JSON schema to use for cleaning
358
- * @returns A new object with empty optional fields removed
359
- */
360
- function removeEmptyFields(object, schema) {
361
- if (!object) {
362
- return object;
363
- }
364
- if (Array.isArray(object)) {
365
- return removeEmptyJSONArray(object, schema);
366
- }
367
- if (typeof object == 'object' || object === null) {
368
- return removeEmptyJSONObject(object, schema);
369
- }
370
- return object;
371
- }
372
- function removeEmptyJSONObject(object, schema) {
373
- // Get the original required properties from schema
374
- const requiredProps = schema.required || [];
375
- const cleanedResult = { ...object };
376
- // Process each property
377
- for (const [key, value] of Object.entries(object)) {
378
- const isRequired = requiredProps.includes(key);
379
- const propSchema = schema.properties?.[key];
380
- // Recursively clean nested objects based on their schema
381
- cleanedResult[key] = removeEmptyFields(value, propSchema ?? {});
382
- if (isEmpty(value)) {
383
- if (isRequired) {
384
- continue; // Keep required fields even if empty
385
- }
386
- else {
387
- delete cleanedResult[key]; // Remove empty optional fields
388
- }
389
- }
390
- }
391
- return cleanedResult;
392
- }
393
- function removeEmptyJSONArray(array, schema) {
394
- const cleanedArray = array.map(item => {
395
- return removeEmptyFields(item, schema);
396
- });
397
- // Filter out empty objects from the array
398
- return cleanedArray.filter(item => !isEmpty(item));
399
- }
400
118
  /**
401
119
  * Collect all parts (text and images) from content in order.
402
120
  * This preserves the original ordering of text and image parts.
@@ -488,7 +206,7 @@ function geminiThinkingBudget(option) {
488
206
  }
489
207
  // Set minimum thinking level by default.
490
208
  // Docs: https://ai.google.dev/gemini-api/docs/thinking#set-budget
491
- if ((0, core_1.getGeminiModelVersion)(option.model) == '2.5') {
209
+ if ((0, core_1.getGeminiModelVersion)(option.model) === '2.5') {
492
210
  if (option.model.includes("pro")) {
493
211
  return 128;
494
212
  }
@@ -511,6 +229,13 @@ function geminiThinkingConfig(option) {
511
229
  // Docs: https://ai.google.dev/gemini-api/docs/thinking#set-budget
512
230
  // https://docs.cloud.google.com/vertex-ai/generative-ai/docs/thinking
513
231
  if ((0, core_1.isGeminiModelVersionGte)(option.model, '3.0')) {
232
+ if (option.model.includes("gemini-3-pro-image")) {
233
+ // Does not support thinking level.
234
+ return {
235
+ includeThoughts: include_thoughts,
236
+ thinkingBudget: -1
237
+ };
238
+ }
514
239
  return {
515
240
  includeThoughts: include_thoughts,
516
241
  thinkingLevel: genai_1.ThinkingLevel.LOW
@@ -535,29 +260,6 @@ class GeminiModelDefinition {
535
260
  can_stream: true
536
261
  };
537
262
  }
538
- preValidationProcessing(result, options) {
539
- // Guard clause, if no result_schema, error, or tool use, skip processing
540
- if (!options.result_schema || !result.result || result.tool_use || result.error) {
541
- return { result, options };
542
- }
543
- try {
544
- // Extract text content for JSON processing - only process first text result
545
- const textResult = result.result.find(r => r.type === 'text')?.value;
546
- if (textResult) {
547
- const jsonResult = JSON.parse(textResult);
548
- const cleanedJson = JSON.stringify(removeEmptyFields(jsonResult, options.result_schema));
549
- // Replace the text result with cleaned version
550
- result.result = result.result.map(r => r.type === 'text' ? { ...r, value: cleanedJson } : r);
551
- }
552
- return { result, options };
553
- }
554
- catch (error) {
555
- // Log error during processing but don't fail the completion
556
- console.warn('Error during Gemini JSON pre-validation: ', error);
557
- // Return original result if cleanup fails
558
- return { result, options };
559
- }
560
- }
561
263
  async createPrompt(_driver, segments, options) {
562
264
  const splits = options.model.split("/");
563
265
  const modelName = splits[splits.length - 1];
@@ -682,12 +384,17 @@ class GeminiModelDefinition {
682
384
  if (!usageMetadata || !usageMetadata.totalTokenCount) {
683
385
  return {};
684
386
  }
685
- const tokenUsage = { total: usageMetadata.totalTokenCount, prompt: usageMetadata.promptTokenCount };
387
+ const tokenUsage = {
388
+ total: usageMetadata.totalTokenCount,
389
+ prompt: usageMetadata.promptTokenCount,
390
+ prompt_cached: usageMetadata.cachedContentTokenCount ?? undefined,
391
+ prompt_new: (usageMetadata.promptTokenCount ?? 0) - (usageMetadata.cachedContentTokenCount ?? 0),
392
+ };
686
393
  //Output/Response side
687
394
  tokenUsage.result = (usageMetadata.candidatesTokenCount ?? 0)
688
395
  + (usageMetadata.thoughtsTokenCount ?? 0)
689
396
  + (usageMetadata.toolUsePromptTokenCount ?? 0);
690
- if ((tokenUsage.total ?? 0) != (tokenUsage.prompt ?? 0) + tokenUsage.result) {
397
+ if ((tokenUsage.total ?? 0) !== (tokenUsage.prompt ?? 0) + tokenUsage.result) {
691
398
  console.warn("[VertexAI] Gemini token usage mismatch: total does not equal prompt + result", {
692
399
  total: tokenUsage.total,
693
400
  prompt: tokenUsage.prompt,
@@ -721,7 +428,8 @@ class GeminiModelDefinition {
721
428
  if (options.model.includes("gemini-2.5-flash-image")) {
722
429
  region = "global"; // Gemini Flash Image only available in global region, this is for nano-banana model
723
430
  }
724
- const client = driver.getGoogleGenAIClient(region);
431
+ const model_options = options.model_options;
432
+ const client = driver.getGoogleGenAIClient(region, model_options?.flex ?? false);
725
433
  const payload = getGeminiPayload(options, prompt);
726
434
  const response = await client.models.generateContent(payload);
727
435
  const token_usage = this.usageMetadataToTokenUsage(response.usageMetadata);
@@ -754,11 +462,8 @@ class GeminiModelDefinition {
754
462
  console.warn(`[Gemini] Recoverable tool call issue (${candidate.finishReason}): ` +
755
463
  `Model tried to call undeclared tool(s): ${tool_use.map(t => t.tool_name).join(', ')}`);
756
464
  }
757
- // We clean the content before validation, so we can update the conversation.
758
- const cleanedContent = cleanEmptyFieldsContent(content, options.result_schema);
759
- // Collect all parts in order (text and images)
760
- result = extractCompletionResults(cleanedContent);
761
- conversation = updateConversation(conversation, [cleanedContent]);
465
+ result = extractCompletionResults(content);
466
+ conversation = updateConversation(conversation, [content]);
762
467
  }
763
468
  }
764
469
  if (tool_use) {
@@ -814,7 +519,8 @@ class GeminiModelDefinition {
814
519
  if (options.model.includes("gemini-2.5-flash-image")) {
815
520
  region = "global"; // Gemini Flash Image only available in global region, this is for nano-banana model
816
521
  }
817
- const client = driver.getGoogleGenAIClient(region);
522
+ const model_options = options.model_options;
523
+ const client = driver.getGoogleGenAIClient(region, model_options?.flex ?? false);
818
524
  const payload = getGeminiPayload(options, prompt);
819
525
  const response = await client.models.generateContentStream(payload);
820
526
  const stream = (0, async_1.asyncMap)(response, async (item) => {
@@ -1027,19 +733,13 @@ function getToolDefinitions(tools) {
1027
733
  };
1028
734
  }
1029
735
  function getToolFunction(tool) {
1030
- // If input_schema is a string, parse it; if it's already an object, use it directly
1031
- let toolSchema;
1032
- // Using a try-catch for safety, as the input_schema might not be a valid JSONSchema
1033
- try {
1034
- toolSchema = parseJSONtoSchema(tool.input_schema, false);
1035
- }
1036
- catch (e) {
1037
- toolSchema = { ...tool.input_schema, type: genai_1.Type.OBJECT };
1038
- }
1039
736
  return {
1040
737
  name: tool.name,
1041
738
  description: tool.description,
1042
- parameters: toolSchema,
739
+ // Pass the input_schema directly as a JSON Schema object.
740
+ // parametersJsonSchema accepts standard JSON Schema and is mutually exclusive
741
+ // with the legacy parameters field (which required a proprietary Gemini Schema type).
742
+ parametersJsonSchema: tool.input_schema,
1043
743
  };
1044
744
  }
1045
745
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/vertexai/models/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../../src/vertexai/models/gemini.ts"],"names":[],"mappings":"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"}