@llumiverse/common 1.3.0 → 1.4.0-dev.20260629.090753Z

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 (192) hide show
  1. package/lib/capability/anthropic.d.ts +3 -0
  2. package/lib/capability/anthropic.d.ts.map +1 -0
  3. package/lib/capability/anthropic.js +92 -0
  4. package/lib/capability/anthropic.js.map +1 -0
  5. package/lib/{types/capability → capability}/azure_foundry.d.ts +1 -1
  6. package/lib/capability/azure_foundry.d.ts.map +1 -0
  7. package/lib/capability/azure_foundry.js +394 -0
  8. package/lib/capability/azure_foundry.js.map +1 -0
  9. package/lib/{types/capability → capability}/bedrock.d.ts +1 -1
  10. package/lib/capability/bedrock.d.ts.map +1 -0
  11. package/lib/capability/bedrock.js +300 -0
  12. package/lib/capability/bedrock.js.map +1 -0
  13. package/lib/{types/capability → capability}/openai.d.ts +1 -1
  14. package/lib/capability/openai.d.ts.map +1 -0
  15. package/lib/capability/openai.js +179 -0
  16. package/lib/capability/openai.js.map +1 -0
  17. package/lib/{types/capability → capability}/vertexai.d.ts +1 -1
  18. package/lib/capability/vertexai.d.ts.map +1 -0
  19. package/lib/capability/vertexai.js +137 -0
  20. package/lib/capability/vertexai.js.map +1 -0
  21. package/lib/{types/capability.d.ts → capability.d.ts} +1 -1
  22. package/lib/capability.d.ts.map +1 -0
  23. package/lib/{esm/capability.js → capability.js} +17 -17
  24. package/lib/capability.js.map +1 -0
  25. package/lib/index.d.ts +14 -0
  26. package/lib/index.d.ts.map +1 -0
  27. package/lib/index.js +14 -0
  28. package/lib/index.js.map +1 -0
  29. package/lib/{types/options → options}/anthropic.d.ts +2 -2
  30. package/lib/options/anthropic.d.ts.map +1 -0
  31. package/lib/{esm/options → options}/anthropic.js +14 -11
  32. package/lib/options/anthropic.js.map +1 -0
  33. package/lib/{types/options → options}/azure_foundry.d.ts +14 -14
  34. package/lib/options/azure_foundry.d.ts.map +1 -0
  35. package/lib/{esm/options → options}/azure_foundry.js +126 -126
  36. package/lib/options/azure_foundry.js.map +1 -0
  37. package/lib/{types/options → options}/bedrock.d.ts +16 -16
  38. package/lib/{types/options → options}/bedrock.d.ts.map +1 -1
  39. package/lib/options/bedrock.js +489 -0
  40. package/lib/options/bedrock.js.map +1 -0
  41. package/lib/options/context-windows.d.ts.map +1 -0
  42. package/lib/options/context-windows.js.map +1 -0
  43. package/lib/options/embedding.d.ts +38 -0
  44. package/lib/options/embedding.d.ts.map +1 -0
  45. package/lib/options/embedding.js +77 -0
  46. package/lib/options/embedding.js.map +1 -0
  47. package/lib/{types/options → options}/fallback.d.ts +2 -2
  48. package/lib/options/fallback.d.ts.map +1 -0
  49. package/lib/options/fallback.js +65 -0
  50. package/lib/options/fallback.js.map +1 -0
  51. package/lib/{types/options → options}/groq.d.ts +2 -2
  52. package/lib/options/groq.d.ts.map +1 -0
  53. package/lib/options/groq.js +54 -0
  54. package/lib/options/groq.js.map +1 -0
  55. package/lib/options/openai.d.ts +40 -0
  56. package/lib/options/openai.d.ts.map +1 -0
  57. package/lib/options/openai.js +284 -0
  58. package/lib/options/openai.js.map +1 -0
  59. package/lib/{types/options → options}/shared-parsing.d.ts +1 -1
  60. package/lib/options/shared-parsing.d.ts.map +1 -0
  61. package/lib/{esm/options → options}/shared-parsing.js +14 -17
  62. package/lib/options/shared-parsing.js.map +1 -0
  63. package/lib/options/version-parsing.d.ts.map +1 -0
  64. package/lib/{esm/options → options}/version-parsing.js +15 -15
  65. package/lib/options/version-parsing.js.map +1 -0
  66. package/lib/{types/options → options}/vertexai.d.ts +15 -15
  67. package/lib/options/vertexai.d.ts.map +1 -0
  68. package/lib/options/vertexai.js +606 -0
  69. package/lib/options/vertexai.js.map +1 -0
  70. package/lib/{types/options.d.ts → options.d.ts} +1 -1
  71. package/lib/options.d.ts.map +1 -0
  72. package/lib/{esm/options.js → options.js} +8 -8
  73. package/lib/options.js.map +1 -0
  74. package/lib/{types/types.d.ts → types.d.ts} +143 -35
  75. package/lib/types.d.ts.map +1 -0
  76. package/lib/{esm/types.js → types.js} +21 -23
  77. package/lib/types.js.map +1 -0
  78. package/package.json +11 -34
  79. package/src/LlumiverseError.test.ts +18 -72
  80. package/src/capability/anthropic.ts +61 -11
  81. package/src/capability/azure_foundry.ts +303 -65
  82. package/src/capability/bedrock.ts +201 -56
  83. package/src/capability/openai.ts +135 -41
  84. package/src/capability/vertexai.ts +105 -35
  85. package/src/capability.ts +18 -18
  86. package/src/index.ts +13 -12
  87. package/src/options/anthropic.ts +16 -13
  88. package/src/options/azure_foundry.ts +157 -143
  89. package/src/options/bedrock.ts +247 -185
  90. package/src/options/context-windows.ts +2 -2
  91. package/src/options/embedding.ts +92 -0
  92. package/src/options/fallback.ts +50 -17
  93. package/src/options/groq.ts +48 -21
  94. package/src/options/openai.ts +228 -183
  95. package/src/options/shared-parsing.ts +16 -21
  96. package/src/options/version-parsing.ts +17 -17
  97. package/src/options/vertexai.ts +382 -288
  98. package/src/options.ts +8 -8
  99. package/src/types.ts +260 -155
  100. package/lib/cjs/capability/anthropic.js +0 -45
  101. package/lib/cjs/capability/anthropic.js.map +0 -1
  102. package/lib/cjs/capability/azure_foundry.js +0 -160
  103. package/lib/cjs/capability/azure_foundry.js.map +0 -1
  104. package/lib/cjs/capability/bedrock.js +0 -158
  105. package/lib/cjs/capability/bedrock.js.map +0 -1
  106. package/lib/cjs/capability/openai.js +0 -98
  107. package/lib/cjs/capability/openai.js.map +0 -1
  108. package/lib/cjs/capability/vertexai.js +0 -80
  109. package/lib/cjs/capability/vertexai.js.map +0 -1
  110. package/lib/cjs/capability.js +0 -115
  111. package/lib/cjs/capability.js.map +0 -1
  112. package/lib/cjs/index.js +0 -29
  113. package/lib/cjs/index.js.map +0 -1
  114. package/lib/cjs/options/anthropic.js +0 -34
  115. package/lib/cjs/options/anthropic.js.map +0 -1
  116. package/lib/cjs/options/azure_foundry.js +0 -423
  117. package/lib/cjs/options/azure_foundry.js.map +0 -1
  118. package/lib/cjs/options/bedrock.js +0 -427
  119. package/lib/cjs/options/bedrock.js.map +0 -1
  120. package/lib/cjs/options/context-windows.js +0 -138
  121. package/lib/cjs/options/context-windows.js.map +0 -1
  122. package/lib/cjs/options/fallback.js +0 -35
  123. package/lib/cjs/options/fallback.js.map +0 -1
  124. package/lib/cjs/options/groq.js +0 -37
  125. package/lib/cjs/options/groq.js.map +0 -1
  126. package/lib/cjs/options/openai.js +0 -246
  127. package/lib/cjs/options/openai.js.map +0 -1
  128. package/lib/cjs/options/shared-parsing.js +0 -144
  129. package/lib/cjs/options/shared-parsing.js.map +0 -1
  130. package/lib/cjs/options/version-parsing.js +0 -326
  131. package/lib/cjs/options/version-parsing.js.map +0 -1
  132. package/lib/cjs/options/vertexai.js +0 -525
  133. package/lib/cjs/options/vertexai.js.map +0 -1
  134. package/lib/cjs/options.js +0 -33
  135. package/lib/cjs/options.js.map +0 -1
  136. package/lib/cjs/package.json +0 -3
  137. package/lib/cjs/types.js +0 -307
  138. package/lib/cjs/types.js.map +0 -1
  139. package/lib/esm/capability/anthropic.js +0 -42
  140. package/lib/esm/capability/anthropic.js.map +0 -1
  141. package/lib/esm/capability/azure_foundry.js +0 -157
  142. package/lib/esm/capability/azure_foundry.js.map +0 -1
  143. package/lib/esm/capability/bedrock.js +0 -155
  144. package/lib/esm/capability/bedrock.js.map +0 -1
  145. package/lib/esm/capability/openai.js +0 -95
  146. package/lib/esm/capability/openai.js.map +0 -1
  147. package/lib/esm/capability/vertexai.js +0 -77
  148. package/lib/esm/capability/vertexai.js.map +0 -1
  149. package/lib/esm/capability.js.map +0 -1
  150. package/lib/esm/index.js +0 -13
  151. package/lib/esm/index.js.map +0 -1
  152. package/lib/esm/options/anthropic.js.map +0 -1
  153. package/lib/esm/options/azure_foundry.js.map +0 -1
  154. package/lib/esm/options/bedrock.js +0 -423
  155. package/lib/esm/options/bedrock.js.map +0 -1
  156. package/lib/esm/options/context-windows.js.map +0 -1
  157. package/lib/esm/options/fallback.js +0 -32
  158. package/lib/esm/options/fallback.js.map +0 -1
  159. package/lib/esm/options/groq.js +0 -34
  160. package/lib/esm/options/groq.js.map +0 -1
  161. package/lib/esm/options/openai.js +0 -243
  162. package/lib/esm/options/openai.js.map +0 -1
  163. package/lib/esm/options/shared-parsing.js.map +0 -1
  164. package/lib/esm/options/version-parsing.js.map +0 -1
  165. package/lib/esm/options/vertexai.js +0 -519
  166. package/lib/esm/options/vertexai.js.map +0 -1
  167. package/lib/esm/options.js.map +0 -1
  168. package/lib/esm/types.js.map +0 -1
  169. package/lib/types/capability/anthropic.d.ts +0 -3
  170. package/lib/types/capability/anthropic.d.ts.map +0 -1
  171. package/lib/types/capability/azure_foundry.d.ts.map +0 -1
  172. package/lib/types/capability/bedrock.d.ts.map +0 -1
  173. package/lib/types/capability/openai.d.ts.map +0 -1
  174. package/lib/types/capability/vertexai.d.ts.map +0 -1
  175. package/lib/types/capability.d.ts.map +0 -1
  176. package/lib/types/index.d.ts +0 -13
  177. package/lib/types/index.d.ts.map +0 -1
  178. package/lib/types/options/anthropic.d.ts.map +0 -1
  179. package/lib/types/options/azure_foundry.d.ts.map +0 -1
  180. package/lib/types/options/context-windows.d.ts.map +0 -1
  181. package/lib/types/options/fallback.d.ts.map +0 -1
  182. package/lib/types/options/groq.d.ts.map +0 -1
  183. package/lib/types/options/openai.d.ts +0 -40
  184. package/lib/types/options/openai.d.ts.map +0 -1
  185. package/lib/types/options/shared-parsing.d.ts.map +0 -1
  186. package/lib/types/options/version-parsing.d.ts.map +0 -1
  187. package/lib/types/options/vertexai.d.ts.map +0 -1
  188. package/lib/types/options.d.ts.map +0 -1
  189. package/lib/types/types.d.ts.map +0 -1
  190. /package/lib/{types/options → options}/context-windows.d.ts +0 -0
  191. /package/lib/{esm/options → options}/context-windows.js +0 -0
  192. /package/lib/{types/options → options}/version-parsing.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { type ModelOptionInfoItem, type ModelOptions, type ModelOptionsInfo, OptionType } from "../types.js";
1
+ import { type ModelOptionInfoItem, type ModelOptions, type ModelOptionsInfo, OptionType } from '../types.js';
2
2
  import {
3
3
  buildClaudeCacheOptions,
4
4
  buildClaudeCacheTtlOptions,
@@ -6,8 +6,8 @@ import {
6
6
  buildClaudeIncludeThoughtsOption,
7
7
  buildClaudeThinkingBudgetOption,
8
8
  getClaudeMaxTokensLimit,
9
- } from "./shared-parsing.js";
10
- import { hasSamplingParameterRestriction } from "./version-parsing.js";
9
+ } from './shared-parsing.js';
10
+ import { hasSamplingParameterRestriction } from './version-parsing.js';
11
11
 
12
12
  /**
13
13
  * Union type of all Bedrock options
@@ -27,19 +27,26 @@ export type BedrockOptions =
27
27
  | TwelvelabsPegasusOptions;
28
28
 
29
29
  export interface NovaCanvasOptions {
30
- _option_id: "bedrock-nova-canvas"
31
- taskType: "TEXT_IMAGE" | "TEXT_IMAGE_WITH_IMAGE_CONDITIONING" | "COLOR_GUIDED_GENERATION" | "IMAGE_VARIATION" | "INPAINTING" | "OUTPAINTING" | "BACKGROUND_REMOVAL";
30
+ _option_id: 'bedrock-nova-canvas';
31
+ taskType:
32
+ | 'TEXT_IMAGE'
33
+ | 'TEXT_IMAGE_WITH_IMAGE_CONDITIONING'
34
+ | 'COLOR_GUIDED_GENERATION'
35
+ | 'IMAGE_VARIATION'
36
+ | 'INPAINTING'
37
+ | 'OUTPAINTING'
38
+ | 'BACKGROUND_REMOVAL';
32
39
  width?: number;
33
40
  height?: number;
34
- quality?: "standard" | "premium";
41
+ quality?: 'standard' | 'premium';
35
42
  cfgScale?: number;
36
43
  seed?: number;
37
44
  numberOfImages?: number;
38
- controlMode?: "CANNY_EDGE" | "SEGMENTATION";
45
+ controlMode?: 'CANNY_EDGE' | 'SEGMENTATION';
39
46
  controlStrength?: number;
40
47
  colors?: string[];
41
48
  similarityStrength?: number;
42
- outPaintingMode?: "DEFAULT" | "PRECISE";
49
+ outPaintingMode?: 'DEFAULT' | 'PRECISE';
43
50
  }
44
51
 
45
52
  export interface BaseConverseOptions<TOptionId extends string = string> {
@@ -50,13 +57,13 @@ export interface BaseConverseOptions<TOptionId extends string = string> {
50
57
  stop_sequence?: string[];
51
58
  }
52
59
 
53
- export type BedrockConverseOptions = BaseConverseOptions<"bedrock-converse">;
54
- export type BedrockNovaOptions = BaseConverseOptions<"bedrock-nova">;
55
- export type BedrockMistralOptions = BaseConverseOptions<"bedrock-mistral">;
56
- export type BedrockAI21Options = BaseConverseOptions<"bedrock-ai21">;
57
- export type BedrockCohereCommandOptions = BaseConverseOptions<"bedrock-cohere-command">;
60
+ export type BedrockConverseOptions = BaseConverseOptions<'bedrock-converse'>;
61
+ export type BedrockNovaOptions = BaseConverseOptions<'bedrock-nova'>;
62
+ export type BedrockMistralOptions = BaseConverseOptions<'bedrock-mistral'>;
63
+ export type BedrockAI21Options = BaseConverseOptions<'bedrock-ai21'>;
64
+ export type BedrockCohereCommandOptions = BaseConverseOptions<'bedrock-cohere-command'>;
58
65
 
59
- export interface BedrockClaudeOptions extends BaseConverseOptions<"bedrock-claude"> {
66
+ export interface BedrockClaudeOptions extends BaseConverseOptions<'bedrock-claude'> {
60
67
  top_k?: number;
61
68
  thinking_budget_tokens?: number;
62
69
  include_thoughts?: boolean;
@@ -65,98 +72,95 @@ export interface BedrockClaudeOptions extends BaseConverseOptions<"bedrock-claud
65
72
  cache_ttl?: '5m' | '1h';
66
73
  }
67
74
 
68
- export interface BedrockPalmyraOptions extends BaseConverseOptions<"bedrock-palmyra"> {
75
+ export interface BedrockPalmyraOptions extends BaseConverseOptions<'bedrock-palmyra'> {
69
76
  min_tokens?: number;
70
77
  seed?: number;
71
78
  frequency_penalty?: number;
72
79
  presence_penalty?: number;
73
80
  }
74
81
 
75
- export interface BedrockGptOssOptions extends BaseConverseOptions<"bedrock-gpt-oss"> {
76
- reasoning_effort?: "low" | "medium" | "high";
82
+ export interface BedrockGptOssOptions extends BaseConverseOptions<'bedrock-gpt-oss'> {
83
+ reasoning_effort?: 'low' | 'medium' | 'high';
77
84
  frequency_penalty?: number;
78
85
  presence_penalty?: number;
79
86
  }
80
87
 
81
88
  export interface TwelvelabsPegasusOptions {
82
- _option_id: "bedrock-twelvelabs-pegasus";
89
+ _option_id: 'bedrock-twelvelabs-pegasus';
83
90
  temperature?: number;
84
91
  max_tokens?: number;
85
92
  }
86
93
 
87
94
  export function getMaxTokensLimitBedrock(model: string): number | undefined {
88
95
  // Claude models — delegate to shared limit logic (128K for 3.7 and Opus 4.7+)
89
- if (model.includes("claude")) {
96
+ if (model.includes('claude')) {
90
97
  return getClaudeMaxTokensLimit(model);
91
98
  }
92
99
  // Amazon models
93
- else if (model.includes("amazon")) {
94
- if (model.includes("titan")) {
95
- if (model.includes("lite")) {
100
+ else if (model.includes('amazon')) {
101
+ if (model.includes('titan')) {
102
+ if (model.includes('lite')) {
96
103
  return 4096;
97
- } else if (model.includes("express")) {
104
+ } else if (model.includes('express')) {
98
105
  return 8192;
99
- } else if (model.includes("premier")) {
106
+ } else if (model.includes('premier')) {
100
107
  return 3072;
101
108
  }
102
-
103
- }
104
- else if (model.includes("nova")) {
109
+ } else if (model.includes('nova')) {
105
110
  return 10000;
106
111
  }
107
112
  }
108
113
  // Mistral models
109
- else if (model.includes("mistral")) {
110
- if (model.includes("8x7b")) {
114
+ else if (model.includes('mistral')) {
115
+ if (model.includes('8x7b')) {
111
116
  return 4096;
112
117
  }
113
- if (model.includes("pixtral-large")) {
118
+ if (model.includes('pixtral-large')) {
114
119
  return 4096;
115
120
  }
116
121
  return 8192;
117
122
  }
118
123
  // AI21 models
119
- else if (model.includes("ai21")) {
120
- if (model.includes("j2")) {
121
- if (model.includes("large") || model.includes("mid") || model.includes("ultra")) {
124
+ else if (model.includes('ai21')) {
125
+ if (model.includes('j2')) {
126
+ if (model.includes('large') || model.includes('mid') || model.includes('ultra')) {
122
127
  return 8191;
123
128
  }
124
129
  return 2048;
125
130
  }
126
- if (model.includes("jamba")) {
131
+ if (model.includes('jamba')) {
127
132
  return 4096;
128
133
  }
129
134
  }
130
135
  // Cohere models
131
- else if (model.includes("cohere.command")) {
132
- if (model.includes("command-a")) {
136
+ else if (model.includes('cohere.command')) {
137
+ if (model.includes('command-a')) {
133
138
  return 8000;
134
139
  }
135
140
  return 4096;
136
141
  }
137
142
  // Meta models
138
- else if (model.includes("llama")) {
139
- if (model.includes("3-70b") || model.includes("3-8b")) {
143
+ else if (model.includes('llama')) {
144
+ if (model.includes('3-70b') || model.includes('3-8b')) {
140
145
  return 2048;
141
146
  }
142
147
  return 8192;
143
148
  }
144
149
  //Writer models
145
- else if (model.includes("writer")) {
146
- if (model.includes("palmyra-x5")) {
150
+ else if (model.includes('writer')) {
151
+ if (model.includes('palmyra-x5')) {
147
152
  return 8192;
148
- }
149
- else if (model.includes("palmyra-x4")) {
153
+ } else if (model.includes('palmyra-x4')) {
150
154
  return 8192;
151
155
  }
152
156
  }
153
157
  // OpenAI gpt-oss models
154
- if (model.includes("gpt-oss")) {
158
+ if (model.includes('gpt-oss')) {
155
159
  return 8192;
156
160
  }
157
161
  // TwelveLabs models
158
- else if (model.includes("twelvelabs")) {
159
- if (model.includes("pegasus")) {
162
+ else if (model.includes('twelvelabs')) {
163
+ if (model.includes('pegasus')) {
160
164
  return 4096; // Max output tokens for Pegasus
161
165
  }
162
166
  // Marengo is an embedding model, doesn't generate text
@@ -168,85 +172,143 @@ export function getMaxTokensLimitBedrock(model: string): number | undefined {
168
172
  }
169
173
 
170
174
  export function getBedrockOptions(model: string, option?: ModelOptions): ModelOptionsInfo {
171
- if (model.includes("canvas")) {
175
+ if (model.includes('canvas')) {
172
176
  const taskTypeList: ModelOptionInfoItem = {
173
- name: "taskType",
177
+ name: 'taskType',
174
178
  type: OptionType.enum,
175
179
  enum: {
176
- "Text-To-Image": "TEXT_IMAGE",
177
- "Text-To-Image-with-Image-Conditioning": "TEXT_IMAGE_WITH_IMAGE_CONDITIONING",
178
- "Color-Guided-Generation": "COLOR_GUIDED_GENERATION",
179
- "Image-Variation": "IMAGE_VARIATION",
180
- "Inpainting": "INPAINTING",
181
- "Outpainting": "OUTPAINTING",
182
- "Background-Removal": "BACKGROUND_REMOVAL",
180
+ 'Text-To-Image': 'TEXT_IMAGE',
181
+ 'Text-To-Image-with-Image-Conditioning': 'TEXT_IMAGE_WITH_IMAGE_CONDITIONING',
182
+ 'Color-Guided-Generation': 'COLOR_GUIDED_GENERATION',
183
+ 'Image-Variation': 'IMAGE_VARIATION',
184
+ Inpainting: 'INPAINTING',
185
+ Outpainting: 'OUTPAINTING',
186
+ 'Background-Removal': 'BACKGROUND_REMOVAL',
183
187
  },
184
- default: "TEXT_IMAGE",
185
- description: "The type of task to perform",
188
+ default: 'TEXT_IMAGE',
189
+ description: 'The type of task to perform',
186
190
  refresh: true,
187
191
  };
188
192
 
189
193
  let otherOptions: ModelOptionInfoItem[] = [
190
- { name: "width", type: OptionType.numeric, min: 320, max: 4096, default: 512, step: 16, integer: true, description: "The width of the generated image" },
191
- { name: "height", type: OptionType.numeric, min: 320, max: 4096, default: 512, step: 16, integer: true, description: "The height of the generated image" },
192
194
  {
193
- name: "quality",
195
+ name: 'width',
196
+ type: OptionType.numeric,
197
+ min: 320,
198
+ max: 4096,
199
+ default: 512,
200
+ step: 16,
201
+ integer: true,
202
+ description: 'The width of the generated image',
203
+ },
204
+ {
205
+ name: 'height',
206
+ type: OptionType.numeric,
207
+ min: 320,
208
+ max: 4096,
209
+ default: 512,
210
+ step: 16,
211
+ integer: true,
212
+ description: 'The height of the generated image',
213
+ },
214
+ {
215
+ name: 'quality',
194
216
  type: OptionType.enum,
195
- enum: { "standard": "standard", "premium": "premium" },
196
- default: "standard",
197
- description: "The quality of the generated image"
217
+ enum: { standard: 'standard', premium: 'premium' },
218
+ default: 'standard',
219
+ description: 'The quality of the generated image',
220
+ },
221
+ {
222
+ name: 'cfgScale',
223
+ type: OptionType.numeric,
224
+ min: 1.1,
225
+ max: 10.0,
226
+ default: 6.5,
227
+ step: 0.1,
228
+ integer: false,
229
+ description: 'The scale of the generated image',
230
+ },
231
+ {
232
+ name: 'seed',
233
+ type: OptionType.numeric,
234
+ min: 0,
235
+ max: 858993459,
236
+ default: 12,
237
+ integer: true,
238
+ description: 'The seed of the generated image',
239
+ },
240
+ {
241
+ name: 'numberOfImages',
242
+ type: OptionType.numeric,
243
+ min: 1,
244
+ max: 5,
245
+ default: 1,
246
+ integer: true,
247
+ description: 'The number of images to generate',
198
248
  },
199
- { name: "cfgScale", type: OptionType.numeric, min: 1.1, max: 10.0, default: 6.5, step: 0.1, integer: false, description: "The scale of the generated image" },
200
- { name: "seed", type: OptionType.numeric, min: 0, max: 858993459, default: 12, integer: true, description: "The seed of the generated image" },
201
- { name: "numberOfImages", type: OptionType.numeric, min: 1, max: 5, default: 1, integer: true, description: "The number of images to generate" },
202
249
  ];
203
250
 
204
251
  let dependentOptions: ModelOptionInfoItem[] = [];
205
252
 
206
- switch ((option as NovaCanvasOptions)?.taskType ?? "TEXT_IMAGE") {
207
- case "TEXT_IMAGE_WITH_IMAGE_CONDITIONING":
253
+ switch ((option as NovaCanvasOptions)?.taskType ?? 'TEXT_IMAGE') {
254
+ case 'TEXT_IMAGE_WITH_IMAGE_CONDITIONING':
208
255
  dependentOptions.push(
209
256
  {
210
- name: "controlMode", type: OptionType.enum, enum: { "CANNY_EDGE": "CANNY_EDGE", "SEGMENTATION": "SEGMENTATION" },
211
- default: "CANNY_EDGE", description: "The control mode of the generated image"
257
+ name: 'controlMode',
258
+ type: OptionType.enum,
259
+ enum: { CANNY_EDGE: 'CANNY_EDGE', SEGMENTATION: 'SEGMENTATION' },
260
+ default: 'CANNY_EDGE',
261
+ description: 'The control mode of the generated image',
262
+ },
263
+ {
264
+ name: 'controlStrength',
265
+ type: OptionType.numeric,
266
+ min: 0,
267
+ max: 1,
268
+ default: 0.7,
269
+ description: 'The control strength of the generated image',
212
270
  },
213
- { name: "controlStrength", type: OptionType.numeric, min: 0, max: 1, default: 0.7, description: "The control strength of the generated image" },
214
271
  );
215
272
  break;
216
- case "COLOR_GUIDED_GENERATION":
217
- dependentOptions.push(
218
- { name: "colors", type: OptionType.string_list, value: [], description: "Hexadecimal color values to guide generation" },
219
- )
273
+ case 'COLOR_GUIDED_GENERATION':
274
+ dependentOptions.push({
275
+ name: 'colors',
276
+ type: OptionType.string_list,
277
+ value: [],
278
+ description: 'Hexadecimal color values to guide generation',
279
+ });
220
280
  break;
221
- case "IMAGE_VARIATION":
222
- dependentOptions.push(
223
- { name: "similarityStrength", type: OptionType.numeric, min: 0.2, max: 1, default: 0.7, description: "The similarity strength of the generated image" },
224
- )
281
+ case 'IMAGE_VARIATION':
282
+ dependentOptions.push({
283
+ name: 'similarityStrength',
284
+ type: OptionType.numeric,
285
+ min: 0.2,
286
+ max: 1,
287
+ default: 0.7,
288
+ description: 'The similarity strength of the generated image',
289
+ });
225
290
  break;
226
- case "INPAINTING":
291
+ case 'INPAINTING':
227
292
  //No changes
228
293
  break;
229
- case "OUTPAINTING":
230
- dependentOptions.push(
231
- {
232
- name: "outPaintingMode", type: OptionType.enum, enum: { "DEFAULT": "DEFAULT", "PRECISE": "PRECISE" },
233
- default: "default", description: "The outpainting mode of the generated image"
234
- },
235
- )
294
+ case 'OUTPAINTING':
295
+ dependentOptions.push({
296
+ name: 'outPaintingMode',
297
+ type: OptionType.enum,
298
+ enum: { DEFAULT: 'DEFAULT', PRECISE: 'PRECISE' },
299
+ default: 'default',
300
+ description: 'The outpainting mode of the generated image',
301
+ });
236
302
  break;
237
- case "BACKGROUND_REMOVAL":
303
+ case 'BACKGROUND_REMOVAL':
238
304
  dependentOptions = [];
239
305
  otherOptions = [];
240
306
  break;
241
307
  }
242
308
 
243
309
  return {
244
- _option_id: "bedrock-nova-canvas",
245
- options: [
246
- taskTypeList,
247
- ...otherOptions,
248
- ...dependentOptions,
249
- ]
310
+ _option_id: 'bedrock-nova-canvas',
311
+ options: [taskTypeList, ...otherOptions, ...dependentOptions],
250
312
  };
251
313
  } else {
252
314
  const max_tokens_limit = getMaxTokensLimitBedrock(model);
@@ -256,57 +318,59 @@ export function getBedrockOptions(model: string, option?: ModelOptions): ModelOp
256
318
  const hasSamplingRestriction = hasSamplingParameterRestriction(model);
257
319
  const baseConverseOptions: ModelOptionInfoItem[] = [
258
320
  {
259
- name: "max_tokens",
321
+ name: 'max_tokens',
260
322
  type: OptionType.numeric,
261
323
  min: 1,
262
324
  max: max_tokens_limit,
263
325
  integer: true,
264
326
  step: 200,
265
- description: "The maximum number of tokens to generate",
327
+ description: 'The maximum number of tokens to generate',
266
328
  },
267
329
  ];
268
330
 
269
331
  // Opus 4.7+ models don't support temperature, top_p
270
332
  if (!hasSamplingRestriction) {
271
333
  baseConverseOptions.push({
272
- name: "temperature",
334
+ name: 'temperature',
273
335
  type: OptionType.numeric,
274
336
  min: 0.0,
275
337
  default: 0.7,
276
338
  step: 0.1,
277
- description: "A higher temperature biases toward less likely tokens, making the model more creative"
339
+ description: 'A higher temperature biases toward less likely tokens, making the model more creative',
278
340
  });
279
341
  baseConverseOptions.push({
280
- name: "top_p",
342
+ name: 'top_p',
281
343
  type: OptionType.numeric,
282
344
  min: 0,
283
345
  max: 1,
284
346
  step: 0.1,
285
- description: "Limits token sampling to the cumulative probability of the top p tokens"
347
+ description: 'Limits token sampling to the cumulative probability of the top p tokens',
286
348
  });
287
349
  }
288
350
 
289
351
  baseConverseOptions.push({
290
- name: "stop_sequence",
352
+ name: 'stop_sequence',
291
353
  type: OptionType.string_list,
292
354
  value: [],
293
- description: "The generation will halt if one of the stop sequences is output"
355
+ description: 'The generation will halt if one of the stop sequences is output',
294
356
  });
295
357
 
296
- if (model.includes("claude")) {
358
+ if (model.includes('claude')) {
297
359
  // Opus 4.7+ models don't support top_k
298
- const claudeConverseOptions: ModelOptionInfoItem[] = hasSamplingRestriction ? [] : [
299
- {
300
- name: "top_k",
301
- type: OptionType.numeric,
302
- min: 1,
303
- integer: true,
304
- step: 1,
305
- description: "Limits token sampling to the top k tokens"
306
- },
307
- ];
360
+ const claudeConverseOptions: ModelOptionInfoItem[] = hasSamplingRestriction
361
+ ? []
362
+ : [
363
+ {
364
+ name: 'top_k',
365
+ type: OptionType.numeric,
366
+ min: 1,
367
+ integer: true,
368
+ step: 1,
369
+ description: 'Limits token sampling to the top k tokens',
370
+ },
371
+ ];
308
372
  return {
309
- _option_id: "bedrock-claude",
373
+ _option_id: 'bedrock-claude',
310
374
  options: [
311
375
  ...baseConverseOptions,
312
376
  ...claudeConverseOptions,
@@ -317,115 +381,111 @@ export function getBedrockOptions(model: string, option?: ModelOptions): ModelOp
317
381
  ...buildClaudeCacheTtlOptions((option as BedrockClaudeOptions)?.cache_enabled),
318
382
  ],
319
383
  };
320
- }
321
- else if (model.includes("amazon")) {
384
+ } else if (model.includes('amazon')) {
322
385
  //Titan models also exists but does not support any additional options
323
- if (model.includes("nova")) {
386
+ if (model.includes('nova')) {
324
387
  const novaConverseOptions: ModelOptionInfoItem[] = [
325
388
  {
326
- name: "top_k",
389
+ name: 'top_k',
327
390
  type: OptionType.numeric,
328
391
  min: 1,
329
392
  integer: true,
330
393
  step: 1,
331
- description: "Limits token sampling to the top k tokens"
394
+ description: 'Limits token sampling to the top k tokens',
332
395
  },
333
396
  ];
334
397
  return {
335
- _option_id: "bedrock-nova",
336
- options: [...baseConverseOptions, ...novaConverseOptions]
337
- }
398
+ _option_id: 'bedrock-nova',
399
+ options: [...baseConverseOptions, ...novaConverseOptions],
400
+ };
338
401
  }
339
- }
340
- else if (model.includes("mistral")) {
402
+ } else if (model.includes('mistral')) {
341
403
  //7b and 8x7b instruct
342
- if (model.includes("7b")) {
404
+ if (model.includes('7b')) {
343
405
  const mistralConverseOptions: ModelOptionInfoItem[] = [
344
406
  {
345
- name: "top_k",
407
+ name: 'top_k',
346
408
  type: OptionType.numeric,
347
409
  min: 1,
348
410
  integer: true,
349
411
  step: 1,
350
- description: "Limits token sampling to the top k tokens"
412
+ description: 'Limits token sampling to the top k tokens',
351
413
  },
352
414
  ];
353
415
  return {
354
- _option_id: "bedrock-mistral",
355
- options: [...baseConverseOptions, ...mistralConverseOptions]
356
- }
416
+ _option_id: 'bedrock-mistral',
417
+ options: [...baseConverseOptions, ...mistralConverseOptions],
418
+ };
357
419
  }
358
420
  //Other models such as Mistral Small, Large and Large 2
359
421
  //Support no additional options
360
- }
361
- else if (model.includes("ai21")) {
422
+ } else if (model.includes('ai21')) {
362
423
  const ai21ConverseOptions: ModelOptionInfoItem[] = [
363
424
  {
364
- name: "presence_penalty",
425
+ name: 'presence_penalty',
365
426
  type: OptionType.numeric,
366
427
  min: -2,
367
428
  max: 2,
368
429
  default: 0,
369
430
  step: 0.1,
370
- description: "A higher presence penalty encourages the model to talk about new topics"
431
+ description: 'A higher presence penalty encourages the model to talk about new topics',
371
432
  },
372
433
  {
373
- name: "frequency_penalty",
434
+ name: 'frequency_penalty',
374
435
  type: OptionType.numeric,
375
436
  min: -2,
376
437
  max: 2,
377
438
  default: 0,
378
439
  step: 0.1,
379
- description: "A higher frequency penalty encourages the model to use less common words"
440
+ description: 'A higher frequency penalty encourages the model to use less common words',
380
441
  },
381
442
  ];
382
443
 
383
444
  return {
384
- _option_id: "bedrock-ai21",
385
- options: [...baseConverseOptions, ...ai21ConverseOptions]
386
- }
387
- }
388
- else if (model.includes("cohere.command")) {
445
+ _option_id: 'bedrock-ai21',
446
+ options: [...baseConverseOptions, ...ai21ConverseOptions],
447
+ };
448
+ } else if (model.includes('cohere.command')) {
389
449
  const cohereCommandOptions: ModelOptionInfoItem[] = [
390
450
  {
391
- name: "top_k",
451
+ name: 'top_k',
392
452
  type: OptionType.numeric,
393
453
  min: 1,
394
454
  integer: true,
395
455
  step: 1,
396
- description: "Limits token sampling to the top k tokens"
456
+ description: 'Limits token sampling to the top k tokens',
397
457
  },
398
458
  ];
399
- if (model.includes("command-r")) {
459
+ if (model.includes('command-r')) {
400
460
  const cohereCommandROptions: ModelOptionInfoItem[] = [
401
461
  {
402
- name: "frequency_penalty",
462
+ name: 'frequency_penalty',
403
463
  type: OptionType.numeric,
404
464
  min: -2,
405
465
  max: 2,
406
466
  default: 0,
407
467
  step: 0.1,
408
- description: "A higher frequency penalty encourages the model to use less common words"
468
+ description: 'A higher frequency penalty encourages the model to use less common words',
409
469
  },
410
470
  {
411
- name: "presence_penalty",
471
+ name: 'presence_penalty',
412
472
  type: OptionType.numeric,
413
473
  min: -2,
414
474
  max: 2,
415
475
  default: 0,
416
476
  step: 0.1,
417
- description: "A higher presence penalty encourages the model to talk about new topics"
477
+ description: 'A higher presence penalty encourages the model to talk about new topics',
418
478
  },
419
479
  ];
420
480
  return {
421
- _option_id: "bedrock-cohere-command",
422
- options: [...baseConverseOptions, ...cohereCommandOptions, ...cohereCommandROptions]
423
- }
481
+ _option_id: 'bedrock-cohere-command',
482
+ options: [...baseConverseOptions, ...cohereCommandOptions, ...cohereCommandROptions],
483
+ };
424
484
  }
425
- } else if (model.includes("writer")) {
485
+ } else if (model.includes('writer')) {
426
486
  const palmyraConverseOptions: ModelOptionInfoItem[] = [
427
487
  {
428
- name: "min_tokens",
488
+ name: 'min_tokens',
429
489
  type: OptionType.numeric,
430
490
  min: 1,
431
491
  max: max_tokens_limit,
@@ -433,91 +493,93 @@ export function getBedrockOptions(model: string, option?: ModelOptions): ModelOp
433
493
  step: 100,
434
494
  },
435
495
  {
436
- name: "seed",
496
+ name: 'seed',
437
497
  type: OptionType.numeric,
438
498
  integer: true,
439
- description: "Random seed for generation"
499
+ description: 'Random seed for generation',
440
500
  },
441
501
  {
442
- name: "frequency_penalty",
502
+ name: 'frequency_penalty',
443
503
  type: OptionType.numeric,
444
504
  min: -2,
445
505
  max: 2,
446
506
  default: 0,
447
507
  step: 0.1,
448
- description: "A higher frequency penalty encourages the model to use less common words"
508
+ description: 'A higher frequency penalty encourages the model to use less common words',
449
509
  },
450
510
  {
451
- name: "presence_penalty",
511
+ name: 'presence_penalty',
452
512
  type: OptionType.numeric,
453
513
  min: -2,
454
514
  max: 2,
455
515
  default: 0,
456
516
  step: 0.1,
457
- description: "A higher presence penalty encourages the model to talk about new topics"
517
+ description: 'A higher presence penalty encourages the model to talk about new topics',
458
518
  },
459
- ]
519
+ ];
460
520
  return {
461
- _option_id: "bedrock-palmyra",
462
- options: [...baseConverseOptions, ...palmyraConverseOptions]
463
- }
464
- }
465
- else if (model.includes("gpt-oss")) {
521
+ _option_id: 'bedrock-palmyra',
522
+ options: [...baseConverseOptions, ...palmyraConverseOptions],
523
+ };
524
+ } else if (model.includes('gpt-oss')) {
466
525
  const gptOssOptions: ModelOptionInfoItem[] = [
467
526
  {
468
- name: "reasoning_effort",
527
+ name: 'reasoning_effort',
469
528
  type: OptionType.enum,
470
529
  enum: {
471
- "low": "low",
472
- "medium": "medium",
473
- "high": "high"
530
+ low: 'low',
531
+ medium: 'medium',
532
+ high: 'high',
474
533
  },
475
- default: "medium",
476
- description: "The reasoning effort of the model, which affects the quality and speed of the response"
534
+ default: 'medium',
535
+ description:
536
+ 'The reasoning effort of the model, which affects the quality and speed of the response',
477
537
  },
478
538
  ];
479
539
 
480
540
  const baseConverseOptionsNoStop: ModelOptionInfoItem[] = [...baseConverseOptions];
481
541
  // Remove stop_sequence for gpt-oss
482
- baseConverseOptionsNoStop.splice(baseConverseOptionsNoStop.findIndex(o => o.name === "stop_sequence"), 1);
542
+ baseConverseOptionsNoStop.splice(
543
+ baseConverseOptionsNoStop.findIndex((o) => o.name === 'stop_sequence'),
544
+ 1,
545
+ );
483
546
  return {
484
- _option_id: "bedrock-gpt-oss",
485
- options: [...baseConverseOptionsNoStop, ...gptOssOptions]
547
+ _option_id: 'bedrock-gpt-oss',
548
+ options: [...baseConverseOptionsNoStop, ...gptOssOptions],
486
549
  };
487
- }
488
- else if (model.includes("twelvelabs")) {
489
- if (model.includes("pegasus")) {
550
+ } else if (model.includes('twelvelabs')) {
551
+ if (model.includes('pegasus')) {
490
552
  const pegasusOptions: ModelOptionInfoItem[] = [
491
553
  {
492
- name: "temperature",
554
+ name: 'temperature',
493
555
  type: OptionType.numeric,
494
556
  min: 0.0,
495
557
  max: 1.0,
496
558
  default: 0.2,
497
559
  step: 0.1,
498
- description: "Controls randomness in the output"
560
+ description: 'Controls randomness in the output',
499
561
  },
500
562
  {
501
- name: "max_tokens",
563
+ name: 'max_tokens',
502
564
  type: OptionType.numeric,
503
565
  min: 1,
504
566
  max: 4096,
505
567
  integer: true,
506
568
  step: 100,
507
- description: "The maximum number of tokens to generate"
508
- }
569
+ description: 'The maximum number of tokens to generate',
570
+ },
509
571
  ];
510
572
  return {
511
- _option_id: "bedrock-twelvelabs-pegasus",
512
- options: pegasusOptions
573
+ _option_id: 'bedrock-twelvelabs-pegasus',
574
+ options: pegasusOptions,
513
575
  };
514
576
  }
515
577
  }
516
578
 
517
579
  //Fallback to converse standard.
518
580
  return {
519
- _option_id: "bedrock-converse",
520
- options: baseConverseOptions
581
+ _option_id: 'bedrock-converse',
582
+ options: baseConverseOptions,
521
583
  };
522
584
  }
523
585
  }