modelmix 4.4.26 → 4.4.30

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
@@ -136,6 +136,8 @@ Here's a comprehensive list of available methods:
136
136
  | Method | Provider | Model | Price (I/O) per 1 M tokens |
137
137
  | ------------------ | ---------- | ------------------------------ | -------------------------- |
138
138
  | `gpt54()` | OpenAI | gpt-5.4 | [\$2.50 / \$15.00][1] |
139
+ | `gpt54mini()` | OpenAI | gpt-5.4-mini | [\$0.75 / \$4.50][1] |
140
+ | `gpt54nano()` | OpenAI | gpt-5.4-nano | [\$0.20 / \$1.25][1] |
139
141
  | `gpt53codex()` | OpenAI | gpt-5.3-codex | [\$1.25 / \$14.00][1] |
140
142
  | `gpt52()` | OpenAI | gpt-5.2 | [\$1.75 / \$14.00][1] |
141
143
  | `gpt51()` | OpenAI | gpt-5.1 | [\$1.25 / \$10.00][1] |
@@ -153,13 +155,11 @@ Here's a comprehensive list of available methods:
153
155
  | `gemini31pro()` | Google | gemini-3.1-pro-preview | [\$2.00 / \$12.00][3] |
154
156
  | `gemini3pro()` | Google | gemini-3-pro-preview | [\$2.00 / \$12.00][3] |
155
157
  | `gemini3flash()` | Google | gemini-3-flash-preview | [\$0.50 / \$3.00][3] |
156
- | `gemini25pro()` | Google | gemini-2.5-pro | [\$1.25 / \$10.00][3] |
157
- | `gemini25flash()` | Google | gemini-2.5-flash | [\$0.30 / \$2.50][3] |
158
158
  | `grok4()` | Grok | grok-4-0709 | [\$3.00 / \$15.00][6] |
159
159
  | `grok41[think]()` | Grok | grok-4-1-fast | [\$0.20 / \$0.50][6] |
160
160
  | `deepseekV32()` | Fireworks | fireworks/models/deepseek-v3p2 | [\$0.56 / \$1.68][10] |
161
161
  | `GLM47()` | Fireworks | fireworks/models/glm-4p7 | [\$0.55 / \$2.19][10] |
162
- | `minimaxM25()` | MiniMax | MiniMax-M2.5 | [\$0.30 / \$1.20][9] |
162
+ | `minimaxM27()` | MiniMax | MiniMax-M2.7 | [\$0.30 / \$1.20][9] |
163
163
  | `sonar()` | Perplexity | sonar | [\$1.00 / \$1.00][4] |
164
164
  | `sonarPro()` | Perplexity | sonar-pro | [\$3.00 / \$15.00][4] |
165
165
  | `hermes3()` | Lambda | Hermes-3-Llama-3.1-405B-FP8 | [\$0.80 / \$0.80][8] |
package/demo/json.js CHANGED
@@ -2,7 +2,7 @@ import { ModelMix } from '../index.js';
2
2
  try { process.loadEnvFile(); } catch {}
3
3
 
4
4
  const model = await ModelMix.new({ options: { max_tokens: 10000 }, config: { debug: 3 } })
5
- .gpt51()
5
+ .gpt54nano()
6
6
  // .gptOss()
7
7
  // .scout({ config: { temperature: 0 } })
8
8
  // .o4mini()
package/demo/minimax.js CHANGED
@@ -5,7 +5,7 @@ const main = async () => {
5
5
 
6
6
  const bot = ModelMix
7
7
  .new({ config: { debug: 3 } })
8
- .minimaxM25()
8
+ .minimaxM27()
9
9
  .setSystem('You are a helpful assistant.');
10
10
 
11
11
  bot.addText('What is the capital of France?');
package/index.js CHANGED
@@ -20,6 +20,8 @@ const MODEL_PRICING = {
20
20
  'gpt-realtime': [4.00, 16.00],
21
21
  'gpt-5.4': [2.50, 15.00],
22
22
  'gpt-5.4-pro': [30, 180.00],
23
+ 'gpt-5.4-mini': [0.75, 4.50],
24
+ 'gpt-5.4-nano': [0.20, 1.25],
23
25
  'gpt-5.3-codex': [1.75, 14.00],
24
26
  'gpt-5.2': [1.75, 14.00],
25
27
  'gpt-5.2-chat-latest': [1.75, 14.00],
@@ -61,7 +63,9 @@ const MODEL_PRICING = {
61
63
  // MiniMax
62
64
  'MiniMax-M2.1': [0.30, 1.20],
63
65
  'MiniMax-M2.5': [0.30, 1.20],
66
+ 'MiniMax-M2.7': [0.30, 1.20],
64
67
  'fireworks/minimax-m2p5': [0.30, 1.20],
68
+ 'minimax/minimax-m2.7': [0.30, 1.20],
65
69
  // Perplexity
66
70
  'sonar': [1.00, 1.00],
67
71
  'sonar-pro': [3.00, 15.00],
@@ -278,6 +282,12 @@ class ModelMix {
278
282
  gpt54({ options = {}, config = {} } = {}) {
279
283
  return this.attach('gpt-5.4', new MixOpenAIResponses({ options, config }));
280
284
  }
285
+ gpt54mini({ options = {}, config = {} } = {}) {
286
+ return this.attach('gpt-5.4-mini', new MixOpenAIResponses({ options, config }));
287
+ }
288
+ gpt54nano({ options = {}, config = {} } = {}) {
289
+ return this.attach('gpt-5.4-nano', new MixOpenAIResponses({ options, config }));
290
+ }
281
291
  gpt54pro({ options = {}, config = {} } = {}) {
282
292
  return this.attach('gpt-5.4-pro', new MixOpenAIResponses({ options, config }));
283
293
  }
@@ -478,6 +488,12 @@ class ModelMix {
478
488
  return this.attach('MiniMax-M2-Stable', new MixMiniMax({ options, config }));
479
489
  }
480
490
 
491
+ minimaxM27({ options = {}, config = {}, mix = { openrouter: true, minimax: true } } = {}) {
492
+ if (mix.openrouter) return this.attach('minimax/minimax-m2.7', new MixOpenRouter({ options, config }));
493
+ if (mix.minimax) return this.attach('MiniMax-M2.7', new MixMiniMax({ options, config }));
494
+ return this;
495
+ }
496
+
481
497
  deepseekV32({ options = {}, config = {}, mix = {} } = {}) {
482
498
  mix = { ...this.mix, ...mix };
483
499
  if (mix.fireworks) this.attach('accounts/fireworks/models/deepseek-v3p2', new MixFireworks({ options, config }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "modelmix",
3
- "version": "4.4.26",
3
+ "version": "4.4.30",
4
4
  "description": "🧬 Reliable interface with automatic fallback for AI LLMs.",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -50,7 +50,7 @@
50
50
  "@modelcontextprotocol/sdk": "^1.27.1",
51
51
  "axios": "^1.13.5",
52
52
  "bottleneck": "^2.19.5",
53
- "file-type": "^21.3.1",
53
+ "file-type": "^21.3.3",
54
54
  "form-data": "^4.0.4",
55
55
  "lemonlog": "^1.2.0",
56
56
  "ws": "^8.19.0"