bedrock-wrapper 2.6.1 → 2.7.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/.example.env CHANGED
@@ -1,13 +1,12 @@
1
- # ========================
2
- # == AWS AUTH VARIABLES ==
3
- # ========================
4
- AWS_REGION = "us-west-2"
5
- AWS_ACCESS_KEY_ID = "AKxxxxxxxxxxxxxxxxxx"
6
- AWS_SECRET_ACCESS_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
7
-
8
- # ================
9
- # == LLM PARAMS ==
10
- # ================
11
- LLM_MAX_GEN_TOKENS = 800
12
- LLM_TEMPERATURE = 0.1
13
- LLM_TOP_P = 0.9
1
+ # ========================
2
+ # == AWS AUTH VARIABLES ==
3
+ # ========================
4
+ AWS_REGION = "us-west-2"
5
+ AWS_ACCESS_KEY_ID = "AKxxxxxxxxxxxxxxxxxx"
6
+ AWS_SECRET_ACCESS_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
7
+
8
+ # ================
9
+ # == LLM PARAMS ==
10
+ # ================
11
+ LLM_MAX_GEN_TOKENS = 800
12
+ LLM_TEMPERATURE = 0.2
package/CHANGELOG.md CHANGED
@@ -1,17 +1,57 @@
1
1
  # Changelog
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
+ ## [2.7.0] - 2025-11-18 (DeepSeek & Qwen 3)
5
+ ### ✨ Added
6
+ - Support for DeepSeek foundation models
7
+ - DeepSeek-R1 (reasoning model with chain-of-thought capabilities, 8K max output tokens)
8
+ - DeepSeek-V3.1 (hybrid thinking mode for complex reasoning, 8K max output tokens, **Converse API only**)
9
+ - Support for Qwen 3 foundation models
10
+ - Qwen3-32B (dense architecture, 32K max output tokens)
11
+ - Qwen3-Coder-30B-A3B (MoE architecture for code generation, 32K max output tokens)
12
+ - Qwen3-235B-A22B-2507 (MoE architecture for general reasoning, 32K max output tokens)
13
+ - Qwen3-Coder-480B-A35B (MoE architecture for advanced software engineering, 32K max output tokens)
14
+ - Reasoning content extraction for DeepSeek-R1 via `reasoningContent.reasoningText`
15
+ - Stop sequences support (max 10 items) for DeepSeek and Qwen models
16
+ - Text-to-text completion with streaming support
17
+ - MIT-licensed open weight models for commercial use (DeepSeek)
18
+ - `converse_api_only` flag for models that only support Converse API (automatically forces `useConverseAPI = true`)
19
+ - Long-context handling support for Qwen 3 (up to 256K tokens natively, 1M with extrapolation)
20
+ - Hybrid thinking modes for complex problem-solving vs. fast responses
21
+ - Repository-scale code analysis capabilities for Qwen Coder models
22
+
23
+ ### 🤬 Breaking Changes
24
+ - Removed `top_p` parameter from all models as it is not fully supported by AWS Bedrock
25
+ - `temperature` should always be used instead
26
+
27
+ ### ⚙️ Technical Details
28
+ - **Model Configuration**: All new models use messages API format (OpenAI-compatible)
29
+ - **API Compatibility**:
30
+ - Qwen 3 models: Support both Invoke API and Converse API
31
+ - DeepSeek-R1: Supports both Invoke API and Converse API
32
+ - DeepSeek-V3.1: Converse API only (automatically enforced)
33
+
34
+ ## [2.6.2] - 2025-10-16 (Claude Haiku 4.5)
35
+ ### ✨ Added
36
+ - Support for Claude Haiku 4.5 models
37
+ - Claude-4-5-Haiku
38
+ - Claude-4-5-Haiku-Thinking
39
+ - Extended thinking support for Haiku 4.5 (first Haiku model with thinking capabilities)
40
+ - Vision support for Haiku 4.5 (20MB max image size, JPEG/PNG/GIF/WebP formats)
41
+ - 64,000 max output tokens (significant increase from Claude 3.5 Haiku's 8,192)
42
+ - Temperature/Top-P mutual exclusion parameter handling for Haiku 4.5 models
43
+
4
44
  ## [2.6.1] - 2025-09-30 (Claude Sonnet 4.5)
5
- ### Added
45
+ ### Added
6
46
  - Support for Claude Sonnet 4.5 models
7
47
  - Claude-4-5-Sonnet
8
48
  - Claude-4-5-Sonnet-Thinking
9
49
 
10
50
  ## [2.5.0] - 2025-08-12 (Converse API)
11
- ### Added
51
+ ### Added
12
52
  - Support for Converse API (streaming and non-streaming)
13
53
 
14
- ### Technical Details
54
+ ### ⚙️ Technical Details
15
55
  - **Model Configuration**: All models use standard messages API format
16
56
  - **API Compatibility**: Supports OpenAI-style requests
17
57
  - **Response Processing**: Automatic reasoning tag handling based on model variant
@@ -19,7 +59,7 @@ All notable changes to this project will be documented in this file.
19
59
  - **Testing Coverage**: Full integration with existing test suites and interactive example
20
60
 
21
61
  ## [2.4.5] - 2025-08-06 (GPT-OSS Models)
22
- ### Added
62
+ ### Added
23
63
  - Support for OpenAI GPT-OSS models on AWS Bedrock
24
64
  - GPT-OSS-120B (120B parameter open weight model)
25
65
  - GPT-OSS-20B (20B parameter open weight model)
@@ -31,7 +71,7 @@ All notable changes to this project will be documented in this file.
31
71
  - Non-streaming support for GPT-OSS models (streaming not supported by AWS Bedrock)
32
72
  - OpenAI-compatible API format with `max_completion_tokens` parameter
33
73
 
34
- ### Technical Details
74
+ ### ⚙️ Technical Details
35
75
  - **Model Configuration**: All GPT-OSS models use standard messages API format
36
76
  - **API Compatibility**: Supports OpenAI-style requests with Apache 2.0 licensed models
37
77
  - **Response Processing**: Automatic reasoning tag handling based on model variant
@@ -39,13 +79,13 @@ All notable changes to this project will be documented in this file.
39
79
  - **Testing Coverage**: Full integration with existing test suites and interactive example
40
80
 
41
81
  ## [2.4.4] - 2025-08-05 (Claude 4.1 Opus)
42
- ### Added
82
+ ### Added
43
83
  - Support for Claude 4.1 Opus models
44
84
  - Claude-4-1-Opus
45
85
  - Claude-4-1-Opus-Thinking
46
86
 
47
87
  ## [2.4.3] - 2025-07-31 (Stop Sequences Fixes)
48
- ### Fixed
88
+ ### 🛠️ Fixed
49
89
  - **Critical Discovery**: Removed stop sequences support from Llama models
50
90
  - AWS Bedrock does not support stop sequences for Llama models (confirmed via official AWS documentation)
51
91
  - Llama models only support: `prompt`, `temperature`, `top_p`, `max_gen_len`, `images`
@@ -54,7 +94,7 @@ All notable changes to this project will be documented in this file.
54
94
  - Removed conflicting empty `inferenceConfig: {}` from Nova model configurations
55
95
  - Improved error handling for empty responses when stop sequences trigger early
56
96
 
57
- ### Updated
97
+ ### 📝 Updated
58
98
  - **Documentation corrections**
59
99
  - Corrected stop sequences support claims (removed "all models support" language)
60
100
  - Added accurate model-specific support matrix with sequence limits
@@ -65,14 +105,14 @@ All notable changes to this project will be documented in this file.
65
105
  - ✅ Mistral models: Full support (up to 10 sequences)
66
106
  - ❌ Llama models: Not supported (AWS Bedrock limitation)
67
107
 
68
- ### Technical Details
108
+ ### ⚙️ Technical Details
69
109
  - Based on comprehensive research of official AWS Bedrock documentation
70
110
  - All changes maintain full backward compatibility
71
111
  - Test results show significant improvements in stop sequences reliability for supported models
72
112
  - Added detailed explanations to help users understand AWS Bedrock's actual capabilities
73
113
 
74
114
  ## [2.4.2] - 2025-07-31 (Stop Sequences Support)
75
- ### Added
115
+ ### Added
76
116
  - Stop sequences support for compatible models
77
117
  - OpenAI-compatible `stop` and `stop_sequences` parameters
78
118
  - Automatic string-to-array conversion for compatibility
@@ -80,7 +120,7 @@ All notable changes to this project will be documented in this file.
80
120
  - Enhanced request building logic to include stop sequences in appropriate API formats
81
121
  - Comprehensive stop sequences testing and validation with `npm run test-stop`
82
122
 
83
- ### Fixed
123
+ ### 🛠️ Fixed
84
124
  - **Critical Discovery**: Removed stop sequences support from Llama models
85
125
  - AWS Bedrock does not support stop sequences for Llama models (confirmed via official documentation)
86
126
  - Llama models only support: `prompt`, `temperature`, `top_p`, `max_gen_len`, `images`
@@ -88,7 +128,7 @@ All notable changes to this project will be documented in this file.
88
128
  - Fixed Nova model configuration conflicts that were causing stop sequence inconsistencies
89
129
  - Improved error handling for empty responses when stop sequences trigger early
90
130
 
91
- ### Technical Details
131
+ ### ⚙️ Technical Details
92
132
  - **Model Support Matrix**:
93
133
  - ✅ Claude models: Full support (up to 8,191 sequences)
94
134
  - ✅ Nova models: Full support (up to 4 sequences)
@@ -100,7 +140,7 @@ All notable changes to this project will be documented in this file.
100
140
  - Added comprehensive documentation in README.md and CLAUDE.md explaining support limitations
101
141
 
102
142
  ## [2.4.0] - 2025-07-24 (AWS Nova Models)
103
- ### Added
143
+ ### Added
104
144
  - Support for AWS Nova models
105
145
  - Nova-Pro (300K context, multimodal, 5K output tokens)
106
146
  - Nova-Lite (300K context, multimodal, optimized for speed)
@@ -110,7 +150,7 @@ All notable changes to this project will be documented in this file.
110
150
  - Automatic content array formatting for Nova message compatibility
111
151
 
112
152
  ## [2.3.1] - 2025-05-22 (Claude 4 Opus / Sonnet)
113
- ### Added
153
+ ### Added
114
154
  - Support for Claude 4 Opus & Claude 4 Sonnet models
115
155
  - Claude-4-Opus
116
156
  - Claude-4-Opus-Thinking
@@ -118,7 +158,7 @@ All notable changes to this project will be documented in this file.
118
158
  - Claude-4-Sonnet-Thinking
119
159
 
120
160
  ## [2.3.0] - 2025-02-15 (Claude 3.7 & Image Support)
121
- ### Added
161
+ ### Added
122
162
  - Support for Claude 3.7 models
123
163
  - Claude-3-7-Sonnet
124
164
  - Claude-3-7-Sonnet-Thinking
@@ -130,20 +170,20 @@ All notable changes to this project will be documented in this file.
130
170
  - Enhanced message handling for multimodal content
131
171
  - Documentation for image support usage
132
172
 
133
- ### Changed
173
+ ### 🔄 Changed
134
174
  - Updated model configuration for image-capable models
135
175
  - Improved response handling for multimodal inputs
136
176
 
137
177
  ## [2.2.0] - 2025-01-01 (Llama 3.3 70b)
138
- ### Added
178
+ ### Added
139
179
  - Support for Llama 3.3 70b
140
180
 
141
181
  ## [2.1.0] - 2024-11-21 (Claude 3.5 Haiku)
142
- ### Added
182
+ ### Added
143
183
  - Support for Claude 3.5 Haiku
144
184
 
145
185
  ## [2.0.0] - 2024-10-31 (Claude Sonnet & Haiku)
146
- ### Added
186
+ ### Added
147
187
  - Support for Anthropic Sonnet & Haiku models
148
188
  - Claude-3-5-Sonnet-v2
149
189
  - Claude-3-5-Sonnet
@@ -153,14 +193,14 @@ All notable changes to this project will be documented in this file.
153
193
  - Stardardize output to be a string via Streamed and non-Streamed responses
154
194
  > **NOTE:** This is a breaking change for previous non-streaming responses. Existing streaming responses will remain unchanged.
155
195
 
156
- ### Changed
196
+ ### 🔄 Changed
157
197
  - Complete architecture overhaul for better model support
158
198
  - Improved message handling with role-based formatting
159
199
  - Enhanced error handling and response processing
160
200
  - Standardized model configuration format
161
201
  - Updated AWS SDK integration
162
202
 
163
- ### Technical Details
203
+ ### ⚙️ Technical Details
164
204
  - Implemented messages API support for compatible models
165
205
  - Added system message handling as separate field where supported
166
206
  - Configurable token limits per model
@@ -168,7 +208,7 @@ All notable changes to this project will be documented in this file.
168
208
  - Cross-region profile support for certain models
169
209
 
170
210
  ## [1.3.0] - 2024-07-24 (Llama3.2)
171
- ### Added
211
+ ### Added
172
212
  - Support for Llama 3.2 series models
173
213
  - Llama-3-2-1b
174
214
  - Llama-3-2-3b
@@ -176,14 +216,14 @@ All notable changes to this project will be documented in this file.
176
216
  - Llama-3-2-90b
177
217
 
178
218
  ## [1.1.0] - 2024-07-24 (Llama3.1)
179
- ### Added
219
+ ### Added
180
220
  - Support for Llama 3.1 series models
181
221
  - Llama-3-1-8b
182
222
  - Llama-3-1-70b
183
223
 
184
224
 
185
225
  ## [1.0.14] - 2024-05-06 (Initial Stable Release)
186
- ### Added
226
+ ### Added
187
227
  - Initial stablerelease of Bedrock Wrapper
188
228
  - Basic AWS Bedrock integration
189
229
  - OpenAI-compatible API object support
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 Justin Parker
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Justin Parker
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -43,7 +43,6 @@ Bedrock Wrapper is an npm package that simplifies the integration of existing Op
43
43
  "max_tokens": LLM_MAX_GEN_TOKENS,
44
44
  "stream": true,
45
45
  "temperature": LLM_TEMPERATURE,
46
- "top_p": LLM_TOP_P,
47
46
  "stop_sequences": ["STOP", "END"], // Optional: sequences that will stop generation
48
47
  };
49
48
  ```
@@ -128,6 +127,8 @@ Bedrock Wrapper is an npm package that simplifies the integration of existing Op
128
127
  | Claude-4-Opus-Thinking | us.anthropic.claude-opus-4-20250514-v1:0 | ✅ |
129
128
  | Claude-4-5-Sonnet | us.anthropic.claude-sonnet-4-5-20250929-v1:0 | ✅ |
130
129
  | Claude-4-5-Sonnet-Thinking | us.anthropic.claude-sonnet-4-5-20250929-v1:0 | ✅ |
130
+ | Claude-4-5-Haiku | us.anthropic.claude-haiku-4-5-20251001-v1:0 | ✅ |
131
+ | Claude-4-5-Haiku-Thinking | us.anthropic.claude-haiku-4-5-20251001-v1:0 | ✅ |
131
132
  | Claude-4-Sonnet | us.anthropic.claude-sonnet-4-20250514-v1:0 | ✅ |
132
133
  | Claude-4-Sonnet-Thinking | us.anthropic.claude-sonnet-4-20250514-v1:0 | ✅ |
133
134
  | Claude-3-7-Sonnet-Thinking | us.anthropic.claude-3-7-sonnet-20250219-v1:0 | ✅ |
@@ -156,7 +157,11 @@ Bedrock Wrapper is an npm package that simplifies the integration of existing Op
156
157
  | Mistral-7b | mistral.mistral-7b-instruct-v0:2 | ❌ |
157
158
  | Mixtral-8x7b | mistral.mixtral-8x7b-instruct-v0:1 | ❌ |
158
159
  | Mistral-Large | mistral.mistral-large-2402-v1:0 | ❌ |
159
-
160
+ | Qwen3-32B | alibaba.qwen3-32b-instruct-v1:0 | ❌ |
161
+ | Qwen3-Coder-30B-A3B | alibaba.qwen3-coder-30b-a3b-instruct-v1:0 | ❌ |
162
+ | Qwen3-235B-A22B-2507 | alibaba.qwen3-235b-a22b-instruct-2507-v1:0 | ❌ |
163
+ | Qwen3-Coder-480B-A35B | alibaba.qwen3-coder-480b-a35b-instruct-v1:0 | ❌ |
164
+
160
165
  To return the list progrmatically you can import and call `listBedrockWrapperSupportedModels`:
161
166
  ```javascript
162
167
  import { listBedrockWrapperSupportedModels } from 'bedrock-wrapper';
@@ -170,7 +175,7 @@ Please modify the `bedrock_models.js` file and submit a PR 🏆 or create an Iss
170
175
 
171
176
  ### Image Support
172
177
 
173
- For models with image support (Claude 4+ series including Claude 4.5 Sonnet, Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3 Haiku, Nova Pro, and Nova Lite), you can include images in your messages using the following format (not all models support system prompts):
178
+ For models with image support (Claude 4+ series including Claude 4.5 Sonnet, Claude 4.5 Haiku, Claude 3.7 Sonnet, Claude 3.5 Sonnet, Claude 3 Haiku, Nova Pro, and Nova Lite), you can include images in your messages using the following format (not all models support system prompts):
174
179
 
175
180
  ```javascript
176
181
  messages = [
@@ -233,9 +238,10 @@ const openaiChatCompletionsCreateObject = {
233
238
 
234
239
  **Model Support:**
235
240
  - ✅ **Claude models**: Fully supported (up to 8,191 sequences)
236
- - ✅ **Nova models**: Fully supported (up to 4 sequences)
241
+ - ✅ **Nova models**: Fully supported (up to 4 sequences)
237
242
  - ✅ **GPT-OSS models**: Fully supported
238
243
  - ✅ **Mistral models**: Fully supported (up to 10 sequences)
244
+ - ✅ **Qwen models**: Fully supported
239
245
  - ❌ **Llama models**: Not supported (AWS Bedrock limitation)
240
246
 
241
247
  **Features:**
@@ -249,7 +255,7 @@ const openaiChatCompletionsCreateObject = {
249
255
  // Stop generation when model tries to output "7"
250
256
  const result = await bedrockWrapper(awsCreds, {
251
257
  messages: [{ role: "user", content: "Count from 1 to 10" }],
252
- model: "Claude-3-5-Sonnet", // Use Claude, Nova, or Mistral models
258
+ model: "Claude-3-5-Sonnet", // Use Claude, Nova, Mistral, or Qwen models
253
259
  stop_sequences: ["7"]
254
260
  });
255
261
  // Response: "1, 2, 3, 4, 5, 6," (stops before "7")
@@ -267,31 +273,11 @@ Some AWS Bedrock models have specific parameter restrictions that are automatica
267
273
 
268
274
  **Affected Models:**
269
275
  - Claude-4-5-Sonnet & Claude-4-5-Sonnet-Thinking
270
- - Claude-4-Sonnet & Claude-4-Sonnet-Thinking
276
+ - Claude-4-5-Haiku & Claude-4-5-Haiku-Thinking
277
+ - Claude-4-Sonnet & Claude-4-Sonnet-Thinking
271
278
  - Claude-4-Opus & Claude-4-Opus-Thinking
272
279
  - Claude-4-1-Opus & Claude-4-1-Opus-Thinking
273
280
 
274
- **Restriction:** These models cannot accept both `temperature` and `top_p` parameters simultaneously.
275
-
276
- **Automatic Handling:** When both parameters are provided, the wrapper automatically:
277
- 1. **Keeps `temperature`** (prioritized as more commonly used)
278
- 2. **Removes `top_p`** to prevent validation errors
279
- 3. **Works with both APIs** (Invoke API and Converse API)
280
-
281
- ```javascript
282
- const request = {
283
- messages: [{ role: "user", content: "Hello" }],
284
- model: "Claude-4-5-Sonnet",
285
- temperature: 0.7, // ✅ Kept
286
- top_p: 0.9 // ❌ Automatically removed
287
- };
288
-
289
- // No error thrown - wrapper handles the restriction automatically
290
- const response = await bedrockWrapper(awsCreds, request);
291
- ```
292
-
293
- **Why This Happens:** AWS Bedrock enforces this restriction on newer Claude models to ensure optimal performance and prevent conflicting sampling parameters.
294
-
295
281
  ---
296
282
 
297
283
  ### 🧪 Testing
package/bedrock-models.js CHANGED
@@ -144,9 +144,6 @@ export const bedrock_models = [
144
144
  "response_nonchunk_element": "content[0].text",
145
145
  "thinking_response_chunk_element": "delta.thinking",
146
146
  "thinking_response_nonchunk_element": "content[0].thinking",
147
- "parameter_restrictions": {
148
- "mutually_exclusive": [["temperature", "top_p"]]
149
- },
150
147
  "special_request_schema": {
151
148
  "anthropic_version": "bedrock-2023-05-31",
152
149
  "anthropic_beta": ["output-128k-2025-02-19"],
@@ -175,9 +172,66 @@ export const bedrock_models = [
175
172
  "response_nonchunk_element": "content[0].text",
176
173
  "thinking_response_chunk_element": "delta.thinking",
177
174
  "thinking_response_nonchunk_element": "content[0].thinking",
178
- "parameter_restrictions": {
179
- "mutually_exclusive": [["temperature", "top_p"]]
175
+ "special_request_schema": {
176
+ "anthropic_version": "bedrock-2023-05-31",
177
+ "anthropic_beta": ["output-128k-2025-02-19"],
178
+ "thinking": {
179
+ "type": "enabled",
180
+ "budget_tokens": 16000
181
+ },
182
+ },
183
+ "image_support": {
184
+ "max_image_size": 20971520, // 20MB
185
+ "supported_formats": ["jpeg", "png", "gif", "webp"],
186
+ "max_images_per_request": 10
187
+ }
188
+ },
189
+ {
190
+ // ======================
191
+ // == Claude 4.5 Haiku ==
192
+ // ======================
193
+ "modelName": "Claude-4-5-Haiku",
194
+ // "modelId": "anthropic.claude-haiku-4-5-20251001-v1:0",
195
+ "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0",
196
+ "vision": true,
197
+ "messages_api": true,
198
+ "system_as_separate_field": true,
199
+ "display_role_names": true,
200
+ "max_tokens_param_name": "max_tokens",
201
+ "max_supported_response_tokens": 64000,
202
+ "stop_sequences_param_name": "stop_sequences",
203
+ "response_chunk_element": "delta.text",
204
+ "response_nonchunk_element": "content[0].text",
205
+ "thinking_response_chunk_element": "delta.thinking",
206
+ "thinking_response_nonchunk_element": "content[0].thinking",
207
+ "special_request_schema": {
208
+ "anthropic_version": "bedrock-2023-05-31",
209
+ "anthropic_beta": ["output-128k-2025-02-19"],
180
210
  },
211
+ "image_support": {
212
+ "max_image_size": 20971520, // 20MB
213
+ "supported_formats": ["jpeg", "png", "gif", "webp"],
214
+ "max_images_per_request": 10
215
+ }
216
+ },
217
+ {
218
+ // ===============================
219
+ // == Claude 4.5 Haiku Thinking ==
220
+ // ===============================
221
+ "modelName": "Claude-4-5-Haiku-Thinking",
222
+ // "modelId": "anthropic.claude-haiku-4-5-20251001-v1:0",
223
+ "modelId": "us.anthropic.claude-haiku-4-5-20251001-v1:0",
224
+ "vision": true,
225
+ "messages_api": true,
226
+ "system_as_separate_field": true,
227
+ "display_role_names": true,
228
+ "max_tokens_param_name": "max_tokens",
229
+ "max_supported_response_tokens": 64000,
230
+ "stop_sequences_param_name": "stop_sequences",
231
+ "response_chunk_element": "delta.text",
232
+ "response_nonchunk_element": "content[0].text",
233
+ "thinking_response_chunk_element": "delta.thinking",
234
+ "thinking_response_nonchunk_element": "content[0].thinking",
181
235
  "special_request_schema": {
182
236
  "anthropic_version": "bedrock-2023-05-31",
183
237
  "anthropic_beta": ["output-128k-2025-02-19"],
@@ -210,9 +264,6 @@ export const bedrock_models = [
210
264
  "response_nonchunk_element": "content[0].text",
211
265
  "thinking_response_chunk_element": "delta.thinking",
212
266
  "thinking_response_nonchunk_element": "content[0].thinking",
213
- "parameter_restrictions": {
214
- "mutually_exclusive": [["temperature", "top_p"]]
215
- },
216
267
  "special_request_schema": {
217
268
  "anthropic_version": "bedrock-2023-05-31",
218
269
  "anthropic_beta": ["output-128k-2025-02-19"],
@@ -241,9 +292,6 @@ export const bedrock_models = [
241
292
  "response_nonchunk_element": "content[0].text",
242
293
  "thinking_response_chunk_element": "delta.thinking",
243
294
  "thinking_response_nonchunk_element": "content[0].thinking",
244
- "parameter_restrictions": {
245
- "mutually_exclusive": [["temperature", "top_p"]]
246
- },
247
295
  "special_request_schema": {
248
296
  "anthropic_version": "bedrock-2023-05-31",
249
297
  "anthropic_beta": ["output-128k-2025-02-19"],
@@ -912,4 +960,120 @@ export const bedrock_models = [
912
960
  "stop_sequences_param_name": "stop",
913
961
  "response_chunk_element": "outputs[0].text"
914
962
  },
963
+ {
964
+ // ================
965
+ // == Qwen3-32B ==
966
+ // ================
967
+ "modelName": "Qwen3-32B",
968
+ "modelId": "qwen.qwen3-32b-v1:0",
969
+ "vision": false,
970
+ "messages_api": true,
971
+ "system_as_separate_field": false,
972
+ "display_role_names": true,
973
+ "max_tokens_param_name": "max_tokens",
974
+ "max_supported_response_tokens": 32768,
975
+ "stop_sequences_param_name": "stop",
976
+ "response_chunk_element": "choices[0].delta.content",
977
+ "response_nonchunk_element": "choices[0].message.content",
978
+ "special_request_schema": {}
979
+ },
980
+ {
981
+ // =========================
982
+ // == Qwen3-Coder-30B-A3B ==
983
+ // =========================
984
+ "modelName": "Qwen3-Coder-30B-A3B",
985
+ "modelId": "qwen.qwen3-coder-30b-a3b-v1:0",
986
+ "vision": false,
987
+ "messages_api": true,
988
+ "system_as_separate_field": false,
989
+ "display_role_names": true,
990
+ "max_tokens_param_name": "max_tokens",
991
+ "max_supported_response_tokens": 32768,
992
+ "stop_sequences_param_name": "stop",
993
+ "response_chunk_element": "choices[0].delta.content",
994
+ "response_nonchunk_element": "choices[0].message.content",
995
+ "special_request_schema": {}
996
+ },
997
+ {
998
+ // ==========================
999
+ // == Qwen3-235B-A22B-2507 ==
1000
+ // ==========================
1001
+ "modelName": "Qwen3-235B-A22B-2507",
1002
+ "modelId": "qwen.qwen3-235b-a22b-2507-v1:0",
1003
+ "vision": false,
1004
+ "messages_api": true,
1005
+ "system_as_separate_field": false,
1006
+ "display_role_names": true,
1007
+ "max_tokens_param_name": "max_tokens",
1008
+ "max_supported_response_tokens": 32768,
1009
+ "stop_sequences_param_name": "stop",
1010
+ "response_chunk_element": "choices[0].delta.content",
1011
+ "response_nonchunk_element": "choices[0].message.content",
1012
+ "special_request_schema": {}
1013
+ },
1014
+ {
1015
+ // ===========================
1016
+ // == Qwen3-Coder-480B-A35B ==
1017
+ // ===========================
1018
+ "modelName": "Qwen3-Coder-480B-A35B",
1019
+ "modelId": "qwen.qwen3-coder-480b-a35b-v1:0",
1020
+ "vision": false,
1021
+ "messages_api": true,
1022
+ "system_as_separate_field": false,
1023
+ "display_role_names": true,
1024
+ "max_tokens_param_name": "max_tokens",
1025
+ "max_supported_response_tokens": 32768,
1026
+ "stop_sequences_param_name": "stop",
1027
+ "response_chunk_element": "choices[0].delta.content",
1028
+ "response_nonchunk_element": "choices[0].message.content",
1029
+ "special_request_schema": {}
1030
+ },
1031
+ {
1032
+ // =================
1033
+ // == DeepSeek-R1 ==
1034
+ // =================
1035
+ "modelName": "DeepSeek-R1",
1036
+ // "modelId": "deepseek.r1-v1:0",
1037
+ "modelId": "us.deepseek.r1-v1:0",
1038
+ "vision": false,
1039
+ "messages_api": false,
1040
+ "bos_text": "",
1041
+ "role_system_message_prefix": "",
1042
+ "role_system_message_suffix": "",
1043
+ "role_system_prefix": "",
1044
+ "role_system_suffix": "",
1045
+ "role_user_message_prefix": "",
1046
+ "role_user_message_suffix": "",
1047
+ "role_user_prefix": "",
1048
+ "role_user_suffix": "",
1049
+ "role_assistant_message_prefix": "",
1050
+ "role_assistant_message_suffix": "",
1051
+ "role_assistant_prefix": "",
1052
+ "role_assistant_suffix": "",
1053
+ "eom_text": "",
1054
+ "display_role_names": false,
1055
+ "max_tokens_param_name": "max_tokens",
1056
+ "max_supported_response_tokens": 8192,
1057
+ "stop_sequences_param_name": "stop",
1058
+ "response_chunk_element": "choices[0].text",
1059
+ "special_request_schema": {}
1060
+ },
1061
+ {
1062
+ // ====================
1063
+ // == DeepSeek-V3.1 ==
1064
+ // ====================
1065
+ "modelName": "DeepSeek-V3.1",
1066
+ "modelId": "deepseek.v3-v1:0",
1067
+ "vision": false,
1068
+ "messages_api": true,
1069
+ "converse_api_only": true,
1070
+ "system_as_separate_field": false,
1071
+ "display_role_names": true,
1072
+ "max_tokens_param_name": "max_tokens",
1073
+ "max_supported_response_tokens": 8192,
1074
+ "stop_sequences_param_name": "stop",
1075
+ "response_chunk_element": "choices[0].delta.content",
1076
+ "response_nonchunk_element": "choices[0].message.content",
1077
+ "special_request_schema": {}
1078
+ },
915
1079
  ];