@llumiverse/common 1.0.0-dev.20260224.234313Z → 1.0.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.
- package/lib/cjs/capability/openai.js +4 -1
- package/lib/cjs/capability/openai.js.map +1 -1
- package/lib/cjs/capability.js +28 -1
- package/lib/cjs/capability.js.map +1 -1
- package/lib/cjs/options/context-windows.js +2 -1
- package/lib/cjs/options/context-windows.js.map +1 -1
- package/lib/cjs/options/openai.js +101 -0
- package/lib/cjs/options/openai.js.map +1 -1
- package/lib/cjs/options/vertexai.js +219 -65
- package/lib/cjs/options/vertexai.js.map +1 -1
- package/lib/cjs/types.js +104 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/esm/capability/openai.js +4 -1
- package/lib/esm/capability/openai.js.map +1 -1
- package/lib/esm/capability.js +28 -1
- package/lib/esm/capability.js.map +1 -1
- package/lib/esm/options/context-windows.js +2 -1
- package/lib/esm/options/context-windows.js.map +1 -1
- package/lib/esm/options/openai.js +101 -0
- package/lib/esm/options/openai.js.map +1 -1
- package/lib/esm/options/vertexai.js +217 -65
- package/lib/esm/options/vertexai.js.map +1 -1
- package/lib/esm/types.js +102 -0
- package/lib/esm/types.js.map +1 -1
- package/lib/types/capability/openai.d.ts.map +1 -1
- package/lib/types/capability.d.ts.map +1 -1
- package/lib/types/options/context-windows.d.ts.map +1 -1
- package/lib/types/options/openai.d.ts +17 -2
- package/lib/types/options/openai.d.ts.map +1 -1
- package/lib/types/options/vertexai.d.ts +17 -1
- package/lib/types/options/vertexai.d.ts.map +1 -1
- package/lib/types/types.d.ts +95 -0
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/LlumiverseError.test.ts +265 -0
- package/src/capability/openai.ts +21 -18
- package/src/capability.ts +30 -1
- package/src/options/context-windows.ts +2 -1
- package/src/options/openai.ts +126 -3
- package/src/options/vertexai.ts +262 -77
- package/src/types.ts +139 -0
|
@@ -15,7 +15,10 @@ const RECORD_FAMILY_CAPABILITIES = {
|
|
|
15
15
|
"gpt-4o": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
|
|
16
16
|
"gpt-4.1": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
|
|
17
17
|
"gpt-4.5": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
|
|
18
|
+
"gpt-5": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
|
|
18
19
|
"gpt-image": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
|
|
20
|
+
"chatgpt-image": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
|
|
21
|
+
"dall-e": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: false, image: true, video: false, audio: false, embed: false }, tool_support: false },
|
|
19
22
|
"gpt-oss": { input: { text: true, image: false, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
|
|
20
23
|
"o": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: true },
|
|
21
24
|
"o1-mini": { input: { text: true, image: true, video: false, audio: false, embed: false }, output: { text: true, image: false, video: false, audio: false, embed: false }, tool_support: false },
|
|
@@ -36,7 +39,7 @@ const VIDEO_OUTPUT_MODELS = ["video"];
|
|
|
36
39
|
const AUDIO_OUTPUT_MODELS = ["audio"];
|
|
37
40
|
const TEXT_OUTPUT_MODELS = ["text"];
|
|
38
41
|
const EMBEDDING_OUTPUT_MODELS = ["embed"];
|
|
39
|
-
const TOOL_SUPPORT_MODELS = ["tool", "gpt", "o1", "o3", "o4"];
|
|
42
|
+
const TOOL_SUPPORT_MODELS = ["tool", "gpt", "gpt-5", "o1", "o3", "o4"];
|
|
40
43
|
function modelMatches(modelName, patterns) {
|
|
41
44
|
return patterns.some(pattern => modelName.includes(pattern));
|
|
42
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/capability/openai.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/capability/openai.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/capability.js
CHANGED
|
@@ -31,13 +31,19 @@ function _getModelCapabilities(model, provider) {
|
|
|
31
31
|
case types_js_1.Providers.vertexai:
|
|
32
32
|
return (0, vertexai_js_1.getModelCapabilitiesVertexAI)(model);
|
|
33
33
|
case types_js_1.Providers.openai:
|
|
34
|
-
case types_js_1.Providers.openai_compatible:
|
|
35
34
|
return (0, openai_js_1.getModelCapabilitiesOpenAI)(model);
|
|
35
|
+
case types_js_1.Providers.openai_compatible:
|
|
36
|
+
return getModelCapabilitiesOpenAICompatible(model);
|
|
36
37
|
case types_js_1.Providers.bedrock:
|
|
37
38
|
return (0, bedrock_js_1.getModelCapabilitiesBedrock)(model);
|
|
38
39
|
case types_js_1.Providers.azure_foundry:
|
|
39
40
|
// Azure Foundry uses OpenAI capabilities
|
|
40
41
|
return (0, azure_foundry_js_1.getModelCapabilitiesAzureFoundry)(model);
|
|
42
|
+
case types_js_1.Providers.groq:
|
|
43
|
+
case types_js_1.Providers.togetherai:
|
|
44
|
+
case types_js_1.Providers.mistralai:
|
|
45
|
+
// These providers host text models that generally support tool use
|
|
46
|
+
return getModelCapabilitiesOpenAICompatible(model);
|
|
41
47
|
case types_js_1.Providers.xai:
|
|
42
48
|
// xAI (Grok) models support tool use and are text-based
|
|
43
49
|
return {
|
|
@@ -70,6 +76,27 @@ function _getModelCapabilities(model, provider) {
|
|
|
70
76
|
return { input: {}, output: {} };
|
|
71
77
|
}
|
|
72
78
|
}
|
|
79
|
+
// Patterns for models known NOT to support tool use on OpenAI-compatible endpoints
|
|
80
|
+
const NO_TOOL_SUPPORT_PATTERNS = ['image', 'embed', 'moderation', 'whisper', 'sora', 'dall-e', 'tts'];
|
|
81
|
+
/**
|
|
82
|
+
* For OpenAI-compatible endpoints (e.g., OpenRouter), try OpenAI capability lookup first.
|
|
83
|
+
* If no explicit match is found, default to tool_support: true since most models
|
|
84
|
+
* on these platforms support tool use. Blacklist known non-tool-supporting patterns.
|
|
85
|
+
*/
|
|
86
|
+
function getModelCapabilitiesOpenAICompatible(model) {
|
|
87
|
+
const caps = (0, openai_js_1.getModelCapabilitiesOpenAI)(model);
|
|
88
|
+
if (caps.tool_support !== undefined) {
|
|
89
|
+
return caps;
|
|
90
|
+
}
|
|
91
|
+
const normalized = model.toLowerCase();
|
|
92
|
+
const isNonToolModel = NO_TOOL_SUPPORT_PATTERNS.some(p => normalized.includes(p));
|
|
93
|
+
return {
|
|
94
|
+
input: { text: true },
|
|
95
|
+
output: { text: true },
|
|
96
|
+
tool_support: !isNonToolModel,
|
|
97
|
+
tool_support_streaming: !isNonToolModel,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
73
100
|
function supportsToolUse(model, provider, streaming = false) {
|
|
74
101
|
const capabilities = getModelCapabilities(model, provider);
|
|
75
102
|
return streaming ? !!capabilities.tool_support_streaming : !!capabilities.tool_support;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/capability.ts"],"names":[],"mappings":";;AAMA,oDAiBC;
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,8 +78,9 @@ function getMaxInputTokens(model) {
|
|
|
78
78
|
* Returns the context window size (input + output) for a given model.
|
|
79
79
|
*/
|
|
80
80
|
function getContextWindowSize(model) {
|
|
81
|
-
// Claude models
|
|
81
|
+
// Claude models
|
|
82
82
|
if (model.includes('claude')) {
|
|
83
|
+
// All Claude models use 200K (1M requires beta header, handled separately later)
|
|
83
84
|
return 200_000;
|
|
84
85
|
}
|
|
85
86
|
// Gemini models
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-windows.js","sourceRoot":"","sources":["../../../src/options/context-windows.ts"],"names":[],"mappings":";;AAKA,gDAuCC;AAKD,8CAEC;AAKD,
|
|
1
|
+
{"version":3,"file":"context-windows.js","sourceRoot":"","sources":["../../../src/options/context-windows.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,104 @@ function getOpenAiOptions(model, _option) {
|
|
|
10
10
|
default: "auto", description: "Controls how the model processes an input image."
|
|
11
11
|
},
|
|
12
12
|
] : [];
|
|
13
|
+
// Image generation models
|
|
14
|
+
if (isImageModel(model)) {
|
|
15
|
+
const isGPTImage = model.includes("gpt-image") || model.includes("chatgpt-image");
|
|
16
|
+
const isDallE2 = model.includes("dall-e-2");
|
|
17
|
+
const isDallE3 = model.includes("dall-e-3");
|
|
18
|
+
const sizeOptions = {};
|
|
19
|
+
if (isGPTImage) {
|
|
20
|
+
sizeOptions["1024x1024"] = "1024x1024";
|
|
21
|
+
sizeOptions["1024x1536"] = "1024x1536";
|
|
22
|
+
sizeOptions["1536x1024"] = "1536x1024";
|
|
23
|
+
sizeOptions["Auto"] = "auto";
|
|
24
|
+
}
|
|
25
|
+
else if (isDallE2) {
|
|
26
|
+
sizeOptions["256x256"] = "256x256";
|
|
27
|
+
sizeOptions["512x512"] = "512x512";
|
|
28
|
+
sizeOptions["1024x1024"] = "1024x1024";
|
|
29
|
+
}
|
|
30
|
+
else if (isDallE3) {
|
|
31
|
+
sizeOptions["1024x1024"] = "1024x1024";
|
|
32
|
+
sizeOptions["1792x1024"] = "1792x1024";
|
|
33
|
+
sizeOptions["1024x1792"] = "1024x1792";
|
|
34
|
+
}
|
|
35
|
+
const baseImageOptions = [
|
|
36
|
+
{
|
|
37
|
+
name: "size",
|
|
38
|
+
type: types_js_1.OptionType.enum,
|
|
39
|
+
enum: sizeOptions,
|
|
40
|
+
default: "1024x1024",
|
|
41
|
+
description: "The size of the generated image"
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
const gptImageOptions = isGPTImage ? [
|
|
45
|
+
{
|
|
46
|
+
name: "image_quality",
|
|
47
|
+
type: types_js_1.OptionType.enum,
|
|
48
|
+
enum: { "Low": "low", "Medium": "medium", "High": "high", "Auto": "auto" },
|
|
49
|
+
default: "auto",
|
|
50
|
+
description: "The quality of the generated image"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "background",
|
|
54
|
+
type: types_js_1.OptionType.enum,
|
|
55
|
+
enum: { "Transparent": "transparent", "Opaque": "opaque", "Auto": "auto" },
|
|
56
|
+
default: "auto",
|
|
57
|
+
description: "The background setting for the image"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "output_format",
|
|
61
|
+
type: types_js_1.OptionType.enum,
|
|
62
|
+
enum: { "PNG": "png", "WebP": "webp", "JPEG": "jpeg" },
|
|
63
|
+
default: "png",
|
|
64
|
+
description: "The output format for the image"
|
|
65
|
+
}
|
|
66
|
+
] : [];
|
|
67
|
+
const dalleOptions = (isDallE2 || isDallE3) ? [
|
|
68
|
+
{
|
|
69
|
+
name: "image_quality",
|
|
70
|
+
type: types_js_1.OptionType.enum,
|
|
71
|
+
enum: isDallE3 ? { "Standard": "standard", "HD": "hd" } : { "Standard": "standard" },
|
|
72
|
+
default: "standard",
|
|
73
|
+
description: "The quality of the generated image"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "style",
|
|
77
|
+
type: types_js_1.OptionType.enum,
|
|
78
|
+
enum: { "Vivid": "vivid", "Natural": "natural" },
|
|
79
|
+
default: "vivid",
|
|
80
|
+
description: "The style of the generated image (DALL-E 3 only)"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "response_format",
|
|
84
|
+
type: types_js_1.OptionType.enum,
|
|
85
|
+
enum: { "URL": "url", "Base64 JSON": "b64_json" },
|
|
86
|
+
default: "b64_json",
|
|
87
|
+
description: "The format of the response"
|
|
88
|
+
}
|
|
89
|
+
] : [];
|
|
90
|
+
const nImagesOption = isDallE2 ? [
|
|
91
|
+
{
|
|
92
|
+
name: "n",
|
|
93
|
+
type: types_js_1.OptionType.numeric,
|
|
94
|
+
min: 1,
|
|
95
|
+
max: 10,
|
|
96
|
+
default: 1,
|
|
97
|
+
integer: true,
|
|
98
|
+
description: "Number of images to generate (DALL-E 2 only)"
|
|
99
|
+
}
|
|
100
|
+
] : [];
|
|
101
|
+
return {
|
|
102
|
+
_option_id: isGPTImage ? "openai-gpt-image" : "openai-dalle",
|
|
103
|
+
options: [
|
|
104
|
+
...baseImageOptions,
|
|
105
|
+
...gptImageOptions,
|
|
106
|
+
...dalleOptions,
|
|
107
|
+
...nImagesOption,
|
|
108
|
+
]
|
|
109
|
+
};
|
|
110
|
+
}
|
|
13
111
|
if (model.includes("o1") || model.includes("o3")) {
|
|
14
112
|
//Is thinking text model
|
|
15
113
|
let max_tokens_limit = 4096;
|
|
@@ -123,4 +221,7 @@ function isO1Full(model) {
|
|
|
123
221
|
function isVisionModel(model) {
|
|
124
222
|
return model.includes("gpt-4o") || isO1Full(model) || model.includes("gpt-4-turbo");
|
|
125
223
|
}
|
|
224
|
+
function isImageModel(model) {
|
|
225
|
+
return model.includes("dall-e") || model.includes("gpt-image") || model.includes("chatgpt-image");
|
|
226
|
+
}
|
|
126
227
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/options/openai.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/options/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ThinkingLevel = exports.ImagenMaskMode = exports.ImagenTaskType = void 0;
|
|
4
4
|
exports.getVertexAiOptions = getVertexAiOptions;
|
|
5
|
+
exports.getGeminiModelVersion = getGeminiModelVersion;
|
|
6
|
+
exports.isGeminiModelVersionGte = isGeminiModelVersionGte;
|
|
5
7
|
exports.getMaxTokensLimitVertexAi = getMaxTokensLimitVertexAi;
|
|
6
8
|
const types_js_1 = require("../types.js");
|
|
7
9
|
const context_windows_js_1 = require("./context-windows.js");
|
|
@@ -28,7 +30,9 @@ var ImagenMaskMode;
|
|
|
28
30
|
var ThinkingLevel;
|
|
29
31
|
(function (ThinkingLevel) {
|
|
30
32
|
ThinkingLevel["HIGH"] = "HIGH";
|
|
33
|
+
ThinkingLevel["MEDIUM"] = "MEDIUM";
|
|
31
34
|
ThinkingLevel["LOW"] = "LOW";
|
|
35
|
+
ThinkingLevel["MINIMAL"] = "MINIMAL";
|
|
32
36
|
ThinkingLevel["THINKING_LEVEL_UNSPECIFIED"] = "THINKING_LEVEL_UNSPECIFIED";
|
|
33
37
|
})(ThinkingLevel || (exports.ThinkingLevel = ThinkingLevel = {}));
|
|
34
38
|
function getVertexAiOptions(model, option) {
|
|
@@ -46,6 +50,125 @@ function getVertexAiOptions(model, option) {
|
|
|
46
50
|
}
|
|
47
51
|
return fallback_js_1.textOptionsFallback;
|
|
48
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Extract Gemini version from a model ID.
|
|
55
|
+
*
|
|
56
|
+
* Examples:
|
|
57
|
+
* - locations/global/publishers/google/models/gemini-2.5-flash -> 2.5
|
|
58
|
+
* - publishers/google/models/gemini-3-pro-image-preview -> 3
|
|
59
|
+
*/
|
|
60
|
+
function getGeminiModelVersion(modelId) {
|
|
61
|
+
const modelName = modelId.split('/').pop() ?? modelId;
|
|
62
|
+
const match = modelName.match(/^gemini-(\d+(?:\.\d+)?)/i);
|
|
63
|
+
return match?.[1];
|
|
64
|
+
}
|
|
65
|
+
function parseVersion(version) {
|
|
66
|
+
const match = version.match(/^(\d+)(?:\.(\d+))?$/);
|
|
67
|
+
if (!match) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
major: Number(match[1]),
|
|
72
|
+
minor: Number(match[2] ?? '0'),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function isGeminiModelVersionGte(modelId, minVersion) {
|
|
76
|
+
const modelVersion = getGeminiModelVersion(modelId);
|
|
77
|
+
if (!modelVersion) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const current = parseVersion(modelVersion);
|
|
81
|
+
const target = parseVersion(minVersion);
|
|
82
|
+
if (!current || !target) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
if (current.major > target.major) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
if (current.major < target.major) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return current.minor >= target.minor;
|
|
92
|
+
}
|
|
93
|
+
function getGeminiThinkingLevels(model) {
|
|
94
|
+
const normalized = model.toLowerCase();
|
|
95
|
+
const isGemini3OrLater = isGeminiModelVersionGte(model, "3.0");
|
|
96
|
+
const isGemini31OrLater = isGeminiModelVersionGte(model, "3.1");
|
|
97
|
+
const isFlashLite = normalized.includes("flash-lite");
|
|
98
|
+
const isFlash = normalized.includes("flash") && !isFlashLite;
|
|
99
|
+
const isPro = normalized.includes("pro");
|
|
100
|
+
// Gemini 3 / 3.1 thinking_level support summary:
|
|
101
|
+
// - MINIMAL: Gemini 3 Flash and Gemini 3.1 Flash-Lite only.
|
|
102
|
+
// Gemini 3.1 Flash-Lite defaults to MINIMAL.
|
|
103
|
+
// - LOW: Supported by Gemini 3+ models.
|
|
104
|
+
// - MEDIUM: Gemini 3 Flash, Gemini 3.1 Pro, Gemini 3.1 Flash-Lite.
|
|
105
|
+
// - HIGH: Supported by Gemini 3+ models.
|
|
106
|
+
// - Thinking cannot be turned off for Gemini 3 Pro and Gemini 3.1 Pro.
|
|
107
|
+
if (isFlashLite && isGemini31OrLater) {
|
|
108
|
+
return {
|
|
109
|
+
levels: {
|
|
110
|
+
"Minimal": ThinkingLevel.MINIMAL,
|
|
111
|
+
"Low": ThinkingLevel.LOW,
|
|
112
|
+
"Medium": ThinkingLevel.MEDIUM,
|
|
113
|
+
"High": ThinkingLevel.HIGH,
|
|
114
|
+
},
|
|
115
|
+
defaultLevel: ThinkingLevel.MINIMAL,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// Gemini 3+ Flash supports MINIMAL and MEDIUM in addition to LOW/HIGH.
|
|
119
|
+
if (isFlash) {
|
|
120
|
+
return {
|
|
121
|
+
levels: {
|
|
122
|
+
"Minimal": ThinkingLevel.MINIMAL,
|
|
123
|
+
"Low": ThinkingLevel.LOW,
|
|
124
|
+
"Medium": ThinkingLevel.MEDIUM,
|
|
125
|
+
"High": ThinkingLevel.HIGH,
|
|
126
|
+
},
|
|
127
|
+
defaultLevel: ThinkingLevel.MINIMAL,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
// Gemini 3.1 Pro adds MEDIUM, but does not support turning thinking off.
|
|
131
|
+
if (isPro && isGemini31OrLater) {
|
|
132
|
+
return {
|
|
133
|
+
levels: {
|
|
134
|
+
"Low": ThinkingLevel.LOW,
|
|
135
|
+
"Medium": ThinkingLevel.MEDIUM,
|
|
136
|
+
"High": ThinkingLevel.HIGH,
|
|
137
|
+
},
|
|
138
|
+
defaultLevel: ThinkingLevel.LOW,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Gemini 3 Pro supports LOW/HIGH. Thinking cannot be turned off.
|
|
142
|
+
if (isPro) {
|
|
143
|
+
return {
|
|
144
|
+
levels: {
|
|
145
|
+
"Low": ThinkingLevel.LOW,
|
|
146
|
+
"High": ThinkingLevel.HIGH,
|
|
147
|
+
},
|
|
148
|
+
defaultLevel: ThinkingLevel.LOW,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
// Fallback for unknown Gemini 3+/4+ families:
|
|
152
|
+
// prefer future-safe propagation by enabling the guaranteed baseline levels.
|
|
153
|
+
if (isGemini3OrLater) {
|
|
154
|
+
return {
|
|
155
|
+
levels: {
|
|
156
|
+
"Low": ThinkingLevel.LOW,
|
|
157
|
+
"Medium": ThinkingLevel.MEDIUM,
|
|
158
|
+
"High": ThinkingLevel.HIGH,
|
|
159
|
+
},
|
|
160
|
+
defaultLevel: ThinkingLevel.LOW,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// Non-3.x models should not reach this helper in normal flow.
|
|
164
|
+
return {
|
|
165
|
+
levels: {
|
|
166
|
+
"Low": ThinkingLevel.LOW,
|
|
167
|
+
"High": ThinkingLevel.HIGH,
|
|
168
|
+
},
|
|
169
|
+
defaultLevel: ThinkingLevel.LOW,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
49
172
|
function getImagenOptions(model, option) {
|
|
50
173
|
const commonOptions = [
|
|
51
174
|
{
|
|
@@ -185,57 +308,33 @@ function getImagenOptions(model, option) {
|
|
|
185
308
|
}
|
|
186
309
|
return fallback_js_1.textOptionsFallback;
|
|
187
310
|
}
|
|
188
|
-
function
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
min: 1,
|
|
213
|
-
max: 8,
|
|
214
|
-
default: 1,
|
|
215
|
-
integer: true,
|
|
216
|
-
description: "Number of candidates to generate"
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
name: types_js_1.SharedOptions.max_tokens,
|
|
220
|
-
type: types_js_1.OptionType.numeric,
|
|
221
|
-
min: 1,
|
|
222
|
-
max: 32768,
|
|
223
|
-
integer: true,
|
|
224
|
-
step: 200,
|
|
225
|
-
description: "Maximum output tokens"
|
|
226
|
-
}
|
|
227
|
-
];
|
|
228
|
-
return {
|
|
229
|
-
_option_id: "vertexai-gemini",
|
|
230
|
-
options
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
// Special handling for gemini-2.5-flash-image and gemini-3-pro-image
|
|
234
|
-
if (model.includes("gemini-2.5-flash-image") || model.includes("gemini-3-pro-image")) {
|
|
235
|
-
const max_tokens_limit = 32768;
|
|
311
|
+
function getGeminiThinkingOptionItems(model) {
|
|
312
|
+
const thinkingLevelConfig = getGeminiThinkingLevels(model);
|
|
313
|
+
return [
|
|
314
|
+
{
|
|
315
|
+
name: "include_thoughts",
|
|
316
|
+
type: types_js_1.OptionType.boolean,
|
|
317
|
+
default: false,
|
|
318
|
+
description: "Include the model's reasoning process in the response"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: "thinking_level",
|
|
322
|
+
type: types_js_1.OptionType.enum,
|
|
323
|
+
enum: thinkingLevelConfig.levels,
|
|
324
|
+
default: thinkingLevelConfig.defaultLevel,
|
|
325
|
+
description: "Higher thinking levels may improve quality, but increase response times and token costs"
|
|
326
|
+
}
|
|
327
|
+
];
|
|
328
|
+
}
|
|
329
|
+
function getGeminiOptions(model, option) {
|
|
330
|
+
// Special handling for gemini image / nano banana models
|
|
331
|
+
if (model.includes("image")) {
|
|
332
|
+
const isGemini25OrLater = isGeminiModelVersionGte(model, "2.5");
|
|
333
|
+
const isGemini3OrLater = isGeminiModelVersionGte(model, "3.0");
|
|
334
|
+
const max_tokens_limit = getGeminiMaxTokensLimit(model);
|
|
236
335
|
const excludeOptions = ["max_tokens", "presence_penalty", "frequency_penalty", "seed", "top_k"];
|
|
237
336
|
let commonOptions = fallback_js_1.textOptionsFallback.options.filter((option) => !excludeOptions.includes(option.name));
|
|
238
|
-
// Set max temperature to 2.0
|
|
337
|
+
// Set max temperature to 2.0
|
|
239
338
|
commonOptions = commonOptions.map((option) => {
|
|
240
339
|
if (option.name === types_js_1.SharedOptions.temperature &&
|
|
241
340
|
option.type === types_js_1.OptionType.numeric) {
|
|
@@ -255,7 +354,10 @@ function getGeminiOptions(model, _option) {
|
|
|
255
354
|
step: 200,
|
|
256
355
|
description: "Maximum output tokens"
|
|
257
356
|
}];
|
|
258
|
-
const
|
|
357
|
+
const imageOptions = [];
|
|
358
|
+
// Aspect ratio, person generation, prominent people: 2.5+
|
|
359
|
+
if (isGemini25OrLater) {
|
|
360
|
+
imageOptions.push({
|
|
259
361
|
name: "image_aspect_ratio",
|
|
260
362
|
type: types_js_1.OptionType.enum,
|
|
261
363
|
enum: {
|
|
@@ -268,14 +370,74 @@ function getGeminiOptions(model, _option) {
|
|
|
268
370
|
"16:9": "16:9",
|
|
269
371
|
"21:9": "21:9"
|
|
270
372
|
},
|
|
373
|
+
default: "1:1",
|
|
271
374
|
description: "Aspect ratio of the generated images"
|
|
272
|
-
}
|
|
375
|
+
}, {
|
|
376
|
+
name: "person_generation",
|
|
377
|
+
type: types_js_1.OptionType.enum,
|
|
378
|
+
enum: {
|
|
379
|
+
"Allow all people": "ALLOW_ALL",
|
|
380
|
+
"Allow adults only": "ALLOW_ADULT",
|
|
381
|
+
"Do not generate people": "ALLOW_NONE"
|
|
382
|
+
},
|
|
383
|
+
default: "ALLOW_ALL",
|
|
384
|
+
description: "Controls the generation of people in images"
|
|
385
|
+
}, {
|
|
386
|
+
name: "prominent_people",
|
|
387
|
+
type: types_js_1.OptionType.enum,
|
|
388
|
+
enum: {
|
|
389
|
+
"Allow prominent people": "ALLOW_PROMINENT_PEOPLE",
|
|
390
|
+
"Block prominent people": "BLOCK_PROMINENT_PEOPLE"
|
|
391
|
+
},
|
|
392
|
+
description: "Controls whether prominent people (celebrities) can be generated"
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
// Resolution settings: 3.0+
|
|
396
|
+
if (isGemini3OrLater) {
|
|
397
|
+
imageOptions.push({
|
|
398
|
+
name: "image_size",
|
|
399
|
+
type: types_js_1.OptionType.enum,
|
|
400
|
+
enum: {
|
|
401
|
+
"1K": "1K",
|
|
402
|
+
"2K": "2K",
|
|
403
|
+
"4K": "4K"
|
|
404
|
+
},
|
|
405
|
+
default: "1K",
|
|
406
|
+
description: "Size of generated images"
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
// Output format: all image models
|
|
410
|
+
imageOptions.push({
|
|
411
|
+
name: "output_mime_type",
|
|
412
|
+
type: types_js_1.OptionType.enum,
|
|
413
|
+
enum: {
|
|
414
|
+
"PNG": "image/png",
|
|
415
|
+
"JPEG": "image/jpeg",
|
|
416
|
+
},
|
|
417
|
+
default: "image/png",
|
|
418
|
+
description: "MIME type of the generated image",
|
|
419
|
+
refresh: true,
|
|
420
|
+
});
|
|
421
|
+
if (option?.output_mime_type === "image/jpeg") {
|
|
422
|
+
imageOptions.push({
|
|
423
|
+
name: "output_compression_quality",
|
|
424
|
+
type: types_js_1.OptionType.numeric,
|
|
425
|
+
min: 0,
|
|
426
|
+
max: 100,
|
|
427
|
+
default: 90,
|
|
428
|
+
integer: true,
|
|
429
|
+
description: "Compression quality for JPEG images (0-100)"
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
// Thinking options: 3.0+ (same as non-image counterparts)
|
|
433
|
+
const thinkingOptions = isGemini3OrLater ? getGeminiThinkingOptionItems(model) : [];
|
|
273
434
|
return {
|
|
274
435
|
_option_id: "vertexai-gemini",
|
|
275
436
|
options: [
|
|
276
437
|
...max_tokens,
|
|
277
438
|
...commonOptions,
|
|
278
|
-
...
|
|
439
|
+
...imageOptions,
|
|
440
|
+
...thinkingOptions,
|
|
279
441
|
]
|
|
280
442
|
};
|
|
281
443
|
}
|
|
@@ -289,22 +451,14 @@ function getGeminiOptions(model, _option) {
|
|
|
289
451
|
const seedOption = {
|
|
290
452
|
name: types_js_1.SharedOptions.seed, type: types_js_1.OptionType.numeric, integer: true, description: "The seed for the generation, useful for reproducibility"
|
|
291
453
|
};
|
|
292
|
-
if (model
|
|
293
|
-
const geminiThinkingOptions = [
|
|
294
|
-
{
|
|
295
|
-
name: "include_thoughts",
|
|
296
|
-
type: types_js_1.OptionType.boolean,
|
|
297
|
-
default: false,
|
|
298
|
-
description: "Include the model's reasoning process in the response"
|
|
299
|
-
}
|
|
300
|
-
];
|
|
454
|
+
if (isGeminiModelVersionGte(model, "3.0")) {
|
|
301
455
|
return {
|
|
302
456
|
_option_id: "vertexai-gemini",
|
|
303
457
|
options: [
|
|
304
458
|
...max_tokens,
|
|
305
459
|
...commonOptions,
|
|
306
460
|
seedOption,
|
|
307
|
-
...
|
|
461
|
+
...getGeminiThinkingOptionItems(model),
|
|
308
462
|
]
|
|
309
463
|
};
|
|
310
464
|
}
|
|
@@ -455,10 +609,10 @@ function getLlamaOptions(model) {
|
|
|
455
609
|
};
|
|
456
610
|
}
|
|
457
611
|
function getGeminiMaxTokensLimit(model) {
|
|
458
|
-
if (model.includes("
|
|
459
|
-
return 32768;
|
|
612
|
+
if (model.includes("image")) {
|
|
613
|
+
return isGeminiModelVersionGte(model, "2.5") ? 32768 : 8192;
|
|
460
614
|
}
|
|
461
|
-
if (model.includes("thinking") || model
|
|
615
|
+
if (model.includes("thinking") || isGeminiModelVersionGte(model, "2.5")) {
|
|
462
616
|
return 65535; // API upper bound is exclusive
|
|
463
617
|
}
|
|
464
618
|
if (model.includes("ultra") || model.includes("vision")) {
|