@contractspec/lib.ai-providers 2.9.0 → 3.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/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  Website: https://contractspec.io/
4
4
 
5
-
6
5
  **Unified AI provider abstraction** for ContractSpec applications.
7
6
 
8
7
  ## Overview
@@ -15,13 +14,25 @@ This library provides a consistent interface for working with multiple LLM provi
15
14
 
16
15
  ## Supported Providers
17
16
 
18
- | Provider | Local | BYOK | Managed |
19
- |----------|-------|------|---------|
20
- | Ollama | ✅ | - | - |
21
- | OpenAI | - | ✅ | ✅ |
22
- | Anthropic | - | ✅ | ✅ |
23
- | Mistral | - | ✅ | ✅ |
24
- | Google Gemini | - | ✅ | ✅ |
17
+ | Provider | Local | BYOK | Managed |
18
+ | ------------- | ----- | ---- | ------- |
19
+ | Ollama | ✅ | - | - |
20
+ | OpenAI | - | ✅ | ✅ |
21
+ | Anthropic | - | ✅ | ✅ |
22
+ | Mistral | - | ✅ | ✅ |
23
+ | Google Gemini | - | ✅ | ✅ |
24
+
25
+ ### Mistral model presets
26
+
27
+ The bundled Mistral model catalog includes current families used in ContractSpec flows:
28
+
29
+ - `mistral-large-latest`
30
+ - `mistral-medium-latest`
31
+ - `mistral-small-latest`
32
+ - `codestral-latest`
33
+ - `devstral-small-latest`
34
+ - `magistral-medium-latest`
35
+ - `pixtral-large-latest`
25
36
 
26
37
  ## Usage
27
38
 
@@ -90,4 +101,3 @@ const model = getAIProvider(config);
90
101
  - `validateProvider(config)` - Check if provider is properly configured
91
102
  - `getRecommendedModels(provider)` - Get recommended models for a provider
92
103
  - `getAvailableProviders()` - List available providers with status
93
-
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
package/dist/factory.js CHANGED
@@ -160,11 +160,23 @@ var MODELS = [
160
160
  },
161
161
  costPerMillion: { input: 2, output: 6 }
162
162
  },
163
+ {
164
+ id: "mistral-medium-latest",
165
+ name: "Mistral Medium",
166
+ provider: "mistral",
167
+ contextWindow: 128000,
168
+ capabilities: {
169
+ vision: false,
170
+ tools: true,
171
+ reasoning: false,
172
+ streaming: true
173
+ }
174
+ },
163
175
  {
164
176
  id: "codestral-latest",
165
177
  name: "Codestral",
166
178
  provider: "mistral",
167
- contextWindow: 32000,
179
+ contextWindow: 256000,
168
180
  capabilities: {
169
181
  vision: false,
170
182
  tools: true,
@@ -173,6 +185,42 @@ var MODELS = [
173
185
  },
174
186
  costPerMillion: { input: 0.2, output: 0.6 }
175
187
  },
188
+ {
189
+ id: "devstral-small-latest",
190
+ name: "Devstral Small",
191
+ provider: "mistral",
192
+ contextWindow: 128000,
193
+ capabilities: {
194
+ vision: false,
195
+ tools: true,
196
+ reasoning: true,
197
+ streaming: true
198
+ }
199
+ },
200
+ {
201
+ id: "magistral-medium-latest",
202
+ name: "Magistral Medium",
203
+ provider: "mistral",
204
+ contextWindow: 128000,
205
+ capabilities: {
206
+ vision: false,
207
+ tools: true,
208
+ reasoning: true,
209
+ streaming: true
210
+ }
211
+ },
212
+ {
213
+ id: "pixtral-large-latest",
214
+ name: "Pixtral Large",
215
+ provider: "mistral",
216
+ contextWindow: 128000,
217
+ capabilities: {
218
+ vision: true,
219
+ tools: true,
220
+ reasoning: false,
221
+ streaming: true
222
+ }
223
+ },
176
224
  {
177
225
  id: "mistral-small-latest",
178
226
  name: "Mistral Small",
package/dist/index.js CHANGED
@@ -160,11 +160,23 @@ var MODELS = [
160
160
  },
161
161
  costPerMillion: { input: 2, output: 6 }
162
162
  },
163
+ {
164
+ id: "mistral-medium-latest",
165
+ name: "Mistral Medium",
166
+ provider: "mistral",
167
+ contextWindow: 128000,
168
+ capabilities: {
169
+ vision: false,
170
+ tools: true,
171
+ reasoning: false,
172
+ streaming: true
173
+ }
174
+ },
163
175
  {
164
176
  id: "codestral-latest",
165
177
  name: "Codestral",
166
178
  provider: "mistral",
167
- contextWindow: 32000,
179
+ contextWindow: 256000,
168
180
  capabilities: {
169
181
  vision: false,
170
182
  tools: true,
@@ -173,6 +185,42 @@ var MODELS = [
173
185
  },
174
186
  costPerMillion: { input: 0.2, output: 0.6 }
175
187
  },
188
+ {
189
+ id: "devstral-small-latest",
190
+ name: "Devstral Small",
191
+ provider: "mistral",
192
+ contextWindow: 128000,
193
+ capabilities: {
194
+ vision: false,
195
+ tools: true,
196
+ reasoning: true,
197
+ streaming: true
198
+ }
199
+ },
200
+ {
201
+ id: "magistral-medium-latest",
202
+ name: "Magistral Medium",
203
+ provider: "mistral",
204
+ contextWindow: 128000,
205
+ capabilities: {
206
+ vision: false,
207
+ tools: true,
208
+ reasoning: true,
209
+ streaming: true
210
+ }
211
+ },
212
+ {
213
+ id: "pixtral-large-latest",
214
+ name: "Pixtral Large",
215
+ provider: "mistral",
216
+ contextWindow: 128000,
217
+ capabilities: {
218
+ vision: true,
219
+ tools: true,
220
+ reasoning: false,
221
+ streaming: true
222
+ }
223
+ },
176
224
  {
177
225
  id: "mistral-small-latest",
178
226
  name: "Mistral Small",
package/dist/legacy.js CHANGED
@@ -160,11 +160,23 @@ var MODELS = [
160
160
  },
161
161
  costPerMillion: { input: 2, output: 6 }
162
162
  },
163
+ {
164
+ id: "mistral-medium-latest",
165
+ name: "Mistral Medium",
166
+ provider: "mistral",
167
+ contextWindow: 128000,
168
+ capabilities: {
169
+ vision: false,
170
+ tools: true,
171
+ reasoning: false,
172
+ streaming: true
173
+ }
174
+ },
163
175
  {
164
176
  id: "codestral-latest",
165
177
  name: "Codestral",
166
178
  provider: "mistral",
167
- contextWindow: 32000,
179
+ contextWindow: 256000,
168
180
  capabilities: {
169
181
  vision: false,
170
182
  tools: true,
@@ -173,6 +185,42 @@ var MODELS = [
173
185
  },
174
186
  costPerMillion: { input: 0.2, output: 0.6 }
175
187
  },
188
+ {
189
+ id: "devstral-small-latest",
190
+ name: "Devstral Small",
191
+ provider: "mistral",
192
+ contextWindow: 128000,
193
+ capabilities: {
194
+ vision: false,
195
+ tools: true,
196
+ reasoning: true,
197
+ streaming: true
198
+ }
199
+ },
200
+ {
201
+ id: "magistral-medium-latest",
202
+ name: "Magistral Medium",
203
+ provider: "mistral",
204
+ contextWindow: 128000,
205
+ capabilities: {
206
+ vision: false,
207
+ tools: true,
208
+ reasoning: true,
209
+ streaming: true
210
+ }
211
+ },
212
+ {
213
+ id: "pixtral-large-latest",
214
+ name: "Pixtral Large",
215
+ provider: "mistral",
216
+ contextWindow: 128000,
217
+ capabilities: {
218
+ vision: true,
219
+ tools: true,
220
+ reasoning: false,
221
+ streaming: true
222
+ }
223
+ },
176
224
  {
177
225
  id: "mistral-small-latest",
178
226
  name: "Mistral Small",
package/dist/models.js CHANGED
@@ -160,11 +160,23 @@ var MODELS = [
160
160
  },
161
161
  costPerMillion: { input: 2, output: 6 }
162
162
  },
163
+ {
164
+ id: "mistral-medium-latest",
165
+ name: "Mistral Medium",
166
+ provider: "mistral",
167
+ contextWindow: 128000,
168
+ capabilities: {
169
+ vision: false,
170
+ tools: true,
171
+ reasoning: false,
172
+ streaming: true
173
+ }
174
+ },
163
175
  {
164
176
  id: "codestral-latest",
165
177
  name: "Codestral",
166
178
  provider: "mistral",
167
- contextWindow: 32000,
179
+ contextWindow: 256000,
168
180
  capabilities: {
169
181
  vision: false,
170
182
  tools: true,
@@ -173,6 +185,42 @@ var MODELS = [
173
185
  },
174
186
  costPerMillion: { input: 0.2, output: 0.6 }
175
187
  },
188
+ {
189
+ id: "devstral-small-latest",
190
+ name: "Devstral Small",
191
+ provider: "mistral",
192
+ contextWindow: 128000,
193
+ capabilities: {
194
+ vision: false,
195
+ tools: true,
196
+ reasoning: true,
197
+ streaming: true
198
+ }
199
+ },
200
+ {
201
+ id: "magistral-medium-latest",
202
+ name: "Magistral Medium",
203
+ provider: "mistral",
204
+ contextWindow: 128000,
205
+ capabilities: {
206
+ vision: false,
207
+ tools: true,
208
+ reasoning: true,
209
+ streaming: true
210
+ }
211
+ },
212
+ {
213
+ id: "pixtral-large-latest",
214
+ name: "Pixtral Large",
215
+ provider: "mistral",
216
+ contextWindow: 128000,
217
+ capabilities: {
218
+ vision: true,
219
+ tools: true,
220
+ reasoning: false,
221
+ streaming: true
222
+ }
223
+ },
176
224
  {
177
225
  id: "mistral-small-latest",
178
226
  name: "Mistral Small",
@@ -0,0 +1 @@
1
+ export {};
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
@@ -159,11 +159,23 @@ var MODELS = [
159
159
  },
160
160
  costPerMillion: { input: 2, output: 6 }
161
161
  },
162
+ {
163
+ id: "mistral-medium-latest",
164
+ name: "Mistral Medium",
165
+ provider: "mistral",
166
+ contextWindow: 128000,
167
+ capabilities: {
168
+ vision: false,
169
+ tools: true,
170
+ reasoning: false,
171
+ streaming: true
172
+ }
173
+ },
162
174
  {
163
175
  id: "codestral-latest",
164
176
  name: "Codestral",
165
177
  provider: "mistral",
166
- contextWindow: 32000,
178
+ contextWindow: 256000,
167
179
  capabilities: {
168
180
  vision: false,
169
181
  tools: true,
@@ -172,6 +184,42 @@ var MODELS = [
172
184
  },
173
185
  costPerMillion: { input: 0.2, output: 0.6 }
174
186
  },
187
+ {
188
+ id: "devstral-small-latest",
189
+ name: "Devstral Small",
190
+ provider: "mistral",
191
+ contextWindow: 128000,
192
+ capabilities: {
193
+ vision: false,
194
+ tools: true,
195
+ reasoning: true,
196
+ streaming: true
197
+ }
198
+ },
199
+ {
200
+ id: "magistral-medium-latest",
201
+ name: "Magistral Medium",
202
+ provider: "mistral",
203
+ contextWindow: 128000,
204
+ capabilities: {
205
+ vision: false,
206
+ tools: true,
207
+ reasoning: true,
208
+ streaming: true
209
+ }
210
+ },
211
+ {
212
+ id: "pixtral-large-latest",
213
+ name: "Pixtral Large",
214
+ provider: "mistral",
215
+ contextWindow: 128000,
216
+ capabilities: {
217
+ vision: true,
218
+ tools: true,
219
+ reasoning: false,
220
+ streaming: true
221
+ }
222
+ },
175
223
  {
176
224
  id: "mistral-small-latest",
177
225
  name: "Mistral Small",
package/dist/types.d.ts CHANGED
@@ -9,7 +9,7 @@ export type ProviderName = 'ollama' | 'openai' | 'anthropic' | 'mistral' | 'gemi
9
9
  /**
10
10
  * Legacy provider names (for backwards compatibility)
11
11
  */
12
- export type LegacyProviderName = 'claude' | 'openai' | 'ollama' | 'custom';
12
+ export type LegacyProviderName = 'claude' | 'openai' | 'ollama' | 'custom' | 'mistral';
13
13
  /**
14
14
  * Provider mode determines how API keys are resolved
15
15
  */
@@ -160,11 +160,23 @@ var MODELS = [
160
160
  },
161
161
  costPerMillion: { input: 2, output: 6 }
162
162
  },
163
+ {
164
+ id: "mistral-medium-latest",
165
+ name: "Mistral Medium",
166
+ provider: "mistral",
167
+ contextWindow: 128000,
168
+ capabilities: {
169
+ vision: false,
170
+ tools: true,
171
+ reasoning: false,
172
+ streaming: true
173
+ }
174
+ },
163
175
  {
164
176
  id: "codestral-latest",
165
177
  name: "Codestral",
166
178
  provider: "mistral",
167
- contextWindow: 32000,
179
+ contextWindow: 256000,
168
180
  capabilities: {
169
181
  vision: false,
170
182
  tools: true,
@@ -173,6 +185,42 @@ var MODELS = [
173
185
  },
174
186
  costPerMillion: { input: 0.2, output: 0.6 }
175
187
  },
188
+ {
189
+ id: "devstral-small-latest",
190
+ name: "Devstral Small",
191
+ provider: "mistral",
192
+ contextWindow: 128000,
193
+ capabilities: {
194
+ vision: false,
195
+ tools: true,
196
+ reasoning: true,
197
+ streaming: true
198
+ }
199
+ },
200
+ {
201
+ id: "magistral-medium-latest",
202
+ name: "Magistral Medium",
203
+ provider: "mistral",
204
+ contextWindow: 128000,
205
+ capabilities: {
206
+ vision: false,
207
+ tools: true,
208
+ reasoning: true,
209
+ streaming: true
210
+ }
211
+ },
212
+ {
213
+ id: "pixtral-large-latest",
214
+ name: "Pixtral Large",
215
+ provider: "mistral",
216
+ contextWindow: 128000,
217
+ capabilities: {
218
+ vision: true,
219
+ tools: true,
220
+ reasoning: false,
221
+ streaming: true
222
+ }
223
+ },
176
224
  {
177
225
  id: "mistral-small-latest",
178
226
  name: "Mistral Small",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/lib.ai-providers",
3
- "version": "2.9.0",
3
+ "version": "3.0.0",
4
4
  "description": "Unified AI provider abstraction layer",
5
5
  "keywords": [
6
6
  "contractspec",
@@ -33,18 +33,18 @@
33
33
  "typecheck": "tsc --noEmit"
34
34
  },
35
35
  "dependencies": {
36
- "@ai-sdk/anthropic": "3.0.46",
37
- "@ai-sdk/google": "3.0.30",
36
+ "@ai-sdk/anthropic": "3.0.48",
37
+ "@ai-sdk/google": "3.0.33",
38
38
  "@ai-sdk/mistral": "3.0.20",
39
- "@ai-sdk/openai": "3.0.31",
40
- "ai": "6.0.97",
39
+ "@ai-sdk/openai": "3.0.36",
40
+ "ai": "6.0.103",
41
41
  "ollama-ai-provider": "^1.2.0",
42
42
  "zod": "^4.3.5"
43
43
  },
44
44
  "devDependencies": {
45
- "@contractspec/tool.typescript": "2.9.0",
45
+ "@contractspec/tool.typescript": "3.0.0",
46
46
  "typescript": "^5.9.3",
47
- "@contractspec/tool.bun": "2.9.0"
47
+ "@contractspec/tool.bun": "3.0.0"
48
48
  },
49
49
  "exports": {
50
50
  ".": {