@alexnetrebskii/hive-agent 2.24.0 → 2.26.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 +1 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +46 -4
- package/dist/executor.js.map +1 -1
- package/dist/executor.test.d.ts +2 -0
- package/dist/executor.test.d.ts.map +1 -0
- package/dist/executor.test.js +169 -0
- package/dist/executor.test.js.map +1 -0
- package/dist/providers/llm/claude.d.ts +3 -1
- package/dist/providers/llm/claude.d.ts.map +1 -1
- package/dist/providers/llm/claude.js +29 -25
- package/dist/providers/llm/claude.js.map +1 -1
- package/dist/providers/llm/openrouter.d.ts.map +1 -1
- package/dist/providers/llm/openrouter.js +14 -5
- package/dist/providers/llm/openrouter.js.map +1 -1
- package/dist/sanitize.d.ts +8 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +18 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/sanitize.test.d.ts +2 -0
- package/dist/sanitize.test.d.ts.map +1 -0
- package/dist/sanitize.test.js +27 -0
- package/dist/sanitize.test.js.map +1 -0
- package/dist/trace/openrouter-pricing.d.ts +1 -1
- package/dist/trace/openrouter-pricing.d.ts.map +1 -1
- package/dist/trace/openrouter-pricing.js +130 -119
- package/dist/trace/openrouter-pricing.js.map +1 -1
- package/package.json +1 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/providers/llm/openrouter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/providers/llm/openrouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output sanitizer — strips reasoning-channel artifacts that some OpenRouter
|
|
3
|
+
* models (e.g. Gemma-4 harmony-style) emit as plain text in message content.
|
|
4
|
+
* Applied inside OpenRouterProvider so sanitized text flows out as part of
|
|
5
|
+
* LLMResponse; downstream code never sees raw artifacts.
|
|
6
|
+
*/
|
|
7
|
+
export declare function defaultSanitize(text: string): string;
|
|
8
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpD"}
|
package/dist/sanitize.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output sanitizer — strips reasoning-channel artifacts that some OpenRouter
|
|
3
|
+
* models (e.g. Gemma-4 harmony-style) emit as plain text in message content.
|
|
4
|
+
* Applied inside OpenRouterProvider so sanitized text flows out as part of
|
|
5
|
+
* LLMResponse; downstream code never sees raw artifacts.
|
|
6
|
+
*/
|
|
7
|
+
const CHANNEL_HEADER_RE = /<\|?channel\|?>\s*\w+\s*<\|?(channel|message)\|?>/gi;
|
|
8
|
+
const STRAY_MARKER_RE = /<\|?(message|end|start|return)\|?>/gi;
|
|
9
|
+
const LEADING_THOUGHT_RE = /^[\t ]*thought[\t ]*\r?\n/;
|
|
10
|
+
export function defaultSanitize(text) {
|
|
11
|
+
let out = text.replace(CHANNEL_HEADER_RE, '');
|
|
12
|
+
out = out.replace(STRAY_MARKER_RE, '');
|
|
13
|
+
while (LEADING_THOUGHT_RE.test(out)) {
|
|
14
|
+
out = out.replace(LEADING_THOUGHT_RE, '');
|
|
15
|
+
}
|
|
16
|
+
return out.replace(/^\s+/, '');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,iBAAiB,GAAG,qDAAqD,CAAA;AAC/E,MAAM,eAAe,GAAG,sCAAsC,CAAA;AAC9D,MAAM,kBAAkB,GAAG,2BAA2B,CAAA;AAEtD,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;IAC7C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IACtC,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.test.d.ts","sourceRoot":"","sources":["../src/sanitize.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { defaultSanitize } from './sanitize.js';
|
|
3
|
+
describe('defaultSanitize', () => {
|
|
4
|
+
it('strips leading thought\\n', () => {
|
|
5
|
+
expect(defaultSanitize('thought\nHello')).toBe('Hello');
|
|
6
|
+
});
|
|
7
|
+
it('strips harmony channel wrapper', () => {
|
|
8
|
+
const input = 'thought\n<|channel>thought\n<channel|>Real reply';
|
|
9
|
+
expect(defaultSanitize(input)).toBe('Real reply');
|
|
10
|
+
});
|
|
11
|
+
it('handles symmetric harmony tokens', () => {
|
|
12
|
+
const input = '<|channel|>analysis<|message|>reasoning<|end|><|channel|>final<|message|>Answer<|end|>';
|
|
13
|
+
const out = defaultSanitize(input);
|
|
14
|
+
expect(out).not.toMatch(/<\|?/);
|
|
15
|
+
expect(out).not.toContain('channel');
|
|
16
|
+
expect(out).not.toContain('message');
|
|
17
|
+
expect(out).not.toContain('end');
|
|
18
|
+
expect(out).toContain('Answer');
|
|
19
|
+
});
|
|
20
|
+
it('is a no-op on clean text', () => {
|
|
21
|
+
expect(defaultSanitize('Hello world')).toBe('Hello world');
|
|
22
|
+
});
|
|
23
|
+
it('returns empty string when the entire text is an artifact', () => {
|
|
24
|
+
expect(defaultSanitize('thought\n')).toBe('');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=sanitize.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.test.js","sourceRoot":"","sources":["../src/sanitize.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,KAAK,GAAG,kDAAkD,CAAA;QAChE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GACT,wFAAwF,CAAA;QAC1F,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenRouter Model Pricing (auto-generated)
|
|
3
3
|
*
|
|
4
|
-
* Fetched from https://openrouter.ai/api/v1/models on 2026-
|
|
4
|
+
* Fetched from https://openrouter.ai/api/v1/models on 2026-04-11
|
|
5
5
|
* To refresh: OpenRouterProvider.fetchModelPricing()
|
|
6
6
|
*/
|
|
7
7
|
import type { ModelPricing } from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-pricing.d.ts","sourceRoot":"","sources":["../../src/trace/openrouter-pricing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"openrouter-pricing.d.ts","sourceRoot":"","sources":["../../src/trace/openrouter-pricing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAoUjE,CAAA"}
|
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenRouter Model Pricing (auto-generated)
|
|
3
3
|
*
|
|
4
|
-
* Fetched from https://openrouter.ai/api/v1/models on 2026-
|
|
4
|
+
* Fetched from https://openrouter.ai/api/v1/models on 2026-04-11
|
|
5
5
|
* To refresh: OpenRouterProvider.fetchModelPricing()
|
|
6
6
|
*/
|
|
7
7
|
export const OPENROUTER_MODEL_PRICING = {
|
|
8
8
|
'openrouter:ai21/jamba-large-1.7': { inputPer1M: 2, outputPer1M: 8 },
|
|
9
|
-
'openrouter:ai21/jamba-mini-1.7': { inputPer1M: 0.2, outputPer1M: 0.4 },
|
|
10
9
|
'openrouter:aion-labs/aion-1.0': { inputPer1M: 4, outputPer1M: 8 },
|
|
11
10
|
'openrouter:aion-labs/aion-1.0-mini': { inputPer1M: 0.7, outputPer1M: 1.4 },
|
|
11
|
+
'openrouter:aion-labs/aion-2.0': { inputPer1M: 0.8, outputPer1M: 1.6, cacheReadPer1M: 0.2 },
|
|
12
12
|
'openrouter:aion-labs/aion-rp-llama-3.1-8b': { inputPer1M: 0.8, outputPer1M: 1.6 },
|
|
13
13
|
'openrouter:alfredpros/codellama-7b-instruct-solidity': { inputPer1M: 0.8, outputPer1M: 1.2 },
|
|
14
14
|
'openrouter:alibaba/tongyi-deepresearch-30b-a3b': { inputPer1M: 0.09, outputPer1M: 0.45, cacheReadPer1M: 0.09 },
|
|
15
|
-
'openrouter:allenai/molmo-2-8b': { inputPer1M: 0.2, outputPer1M: 0.2 },
|
|
16
15
|
'openrouter:allenai/olmo-2-0325-32b-instruct': { inputPer1M: 0.05, outputPer1M: 0.2 },
|
|
17
16
|
'openrouter:allenai/olmo-3-32b-think': { inputPer1M: 0.15, outputPer1M: 0.5 },
|
|
18
|
-
'openrouter:allenai/olmo-3-7b-instruct': { inputPer1M: 0.1, outputPer1M: 0.2 },
|
|
19
|
-
'openrouter:allenai/olmo-3-7b-think': { inputPer1M: 0.12, outputPer1M: 0.2 },
|
|
20
17
|
'openrouter:allenai/olmo-3.1-32b-instruct': { inputPer1M: 0.2, outputPer1M: 0.6 },
|
|
21
|
-
'openrouter:allenai/olmo-3.1-32b-think': { inputPer1M: 0.15, outputPer1M: 0.5 },
|
|
22
18
|
'openrouter:alpindale/goliath-120b': { inputPer1M: 3.75, outputPer1M: 7.5 },
|
|
23
19
|
'openrouter:amazon/nova-2-lite-v1': { inputPer1M: 0.3, outputPer1M: 2.5 },
|
|
24
20
|
'openrouter:amazon/nova-lite-v1': { inputPer1M: 0.06, outputPer1M: 0.24 },
|
|
@@ -28,7 +24,6 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
28
24
|
'openrouter:anthracite-org/magnum-v4-72b': { inputPer1M: 3, outputPer1M: 5 },
|
|
29
25
|
'openrouter:anthropic/claude-3-haiku': { inputPer1M: 0.25, outputPer1M: 1.25, cacheWritePer1M: 0.3, cacheReadPer1M: 0.03 },
|
|
30
26
|
'openrouter:anthropic/claude-3.5-haiku': { inputPer1M: 0.8, outputPer1M: 4, cacheWritePer1M: 1, cacheReadPer1M: 0.08 },
|
|
31
|
-
'openrouter:anthropic/claude-3.5-sonnet': { inputPer1M: 6, outputPer1M: 30 },
|
|
32
27
|
'openrouter:anthropic/claude-3.7-sonnet': { inputPer1M: 3, outputPer1M: 15, cacheWritePer1M: 3.75, cacheReadPer1M: 0.3 },
|
|
33
28
|
'openrouter:anthropic/claude-3.7-sonnet:thinking': { inputPer1M: 3, outputPer1M: 15, cacheWritePer1M: 3.75, cacheReadPer1M: 0.3 },
|
|
34
29
|
'openrouter:anthropic/claude-haiku-4.5': { inputPer1M: 1, outputPer1M: 5, cacheWritePer1M: 1.25, cacheReadPer1M: 0.1 },
|
|
@@ -36,11 +31,14 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
36
31
|
'openrouter:anthropic/claude-opus-4.1': { inputPer1M: 15, outputPer1M: 75, cacheWritePer1M: 18.75, cacheReadPer1M: 1.5 },
|
|
37
32
|
'openrouter:anthropic/claude-opus-4.5': { inputPer1M: 5, outputPer1M: 25, cacheWritePer1M: 6.25, cacheReadPer1M: 0.5 },
|
|
38
33
|
'openrouter:anthropic/claude-opus-4.6': { inputPer1M: 5, outputPer1M: 25, cacheWritePer1M: 6.25, cacheReadPer1M: 0.5 },
|
|
34
|
+
'openrouter:anthropic/claude-opus-4.6-fast': { inputPer1M: 30, outputPer1M: 150, cacheWritePer1M: 37.5, cacheReadPer1M: 3 },
|
|
39
35
|
'openrouter:anthropic/claude-sonnet-4': { inputPer1M: 3, outputPer1M: 15, cacheWritePer1M: 3.75, cacheReadPer1M: 0.3 },
|
|
40
36
|
'openrouter:anthropic/claude-sonnet-4.5': { inputPer1M: 3, outputPer1M: 15, cacheWritePer1M: 3.75, cacheReadPer1M: 0.3 },
|
|
37
|
+
'openrouter:anthropic/claude-sonnet-4.6': { inputPer1M: 3, outputPer1M: 15, cacheWritePer1M: 3.75, cacheReadPer1M: 0.3 },
|
|
41
38
|
'openrouter:arcee-ai/coder-large': { inputPer1M: 0.5, outputPer1M: 0.8 },
|
|
42
39
|
'openrouter:arcee-ai/maestro-reasoning': { inputPer1M: 0.9, outputPer1M: 3.3 },
|
|
43
40
|
'openrouter:arcee-ai/spotlight': { inputPer1M: 0.18, outputPer1M: 0.18 },
|
|
41
|
+
'openrouter:arcee-ai/trinity-large-thinking': { inputPer1M: 0.22, outputPer1M: 0.85 },
|
|
44
42
|
'openrouter:arcee-ai/trinity-mini': { inputPer1M: 0.045, outputPer1M: 0.15 },
|
|
45
43
|
'openrouter:arcee-ai/virtuoso-large': { inputPer1M: 0.75, outputPer1M: 1.2 },
|
|
46
44
|
'openrouter:baidu/ernie-4.5-21b-a3b': { inputPer1M: 0.07, outputPer1M: 0.28 },
|
|
@@ -50,133 +48,126 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
50
48
|
'openrouter:baidu/ernie-4.5-vl-424b-a47b': { inputPer1M: 0.42, outputPer1M: 1.25 },
|
|
51
49
|
'openrouter:bytedance-seed/seed-1.6': { inputPer1M: 0.25, outputPer1M: 2 },
|
|
52
50
|
'openrouter:bytedance-seed/seed-1.6-flash': { inputPer1M: 0.075, outputPer1M: 0.3 },
|
|
51
|
+
'openrouter:bytedance-seed/seed-2.0-lite': { inputPer1M: 0.25, outputPer1M: 2 },
|
|
52
|
+
'openrouter:bytedance-seed/seed-2.0-mini': { inputPer1M: 0.1, outputPer1M: 0.4 },
|
|
53
53
|
'openrouter:bytedance/ui-tars-1.5-7b': { inputPer1M: 0.1, outputPer1M: 0.2 },
|
|
54
54
|
'openrouter:cohere/command-a': { inputPer1M: 2.5, outputPer1M: 10 },
|
|
55
55
|
'openrouter:cohere/command-r-08-2024': { inputPer1M: 0.15, outputPer1M: 0.6 },
|
|
56
56
|
'openrouter:cohere/command-r-plus-08-2024': { inputPer1M: 2.5, outputPer1M: 10 },
|
|
57
57
|
'openrouter:cohere/command-r7b-12-2024': { inputPer1M: 0.0375, outputPer1M: 0.15 },
|
|
58
58
|
'openrouter:deepcogito/cogito-v2.1-671b': { inputPer1M: 1.25, outputPer1M: 1.25 },
|
|
59
|
-
'openrouter:deepseek/deepseek-chat': { inputPer1M: 0.
|
|
60
|
-
'openrouter:deepseek/deepseek-chat-v3-0324': { inputPer1M: 0.
|
|
59
|
+
'openrouter:deepseek/deepseek-chat': { inputPer1M: 0.32, outputPer1M: 0.89 },
|
|
60
|
+
'openrouter:deepseek/deepseek-chat-v3-0324': { inputPer1M: 0.2, outputPer1M: 0.77, cacheReadPer1M: 0.135 },
|
|
61
61
|
'openrouter:deepseek/deepseek-chat-v3.1': { inputPer1M: 0.15, outputPer1M: 0.75 },
|
|
62
62
|
'openrouter:deepseek/deepseek-r1': { inputPer1M: 0.7, outputPer1M: 2.5 },
|
|
63
|
-
'openrouter:deepseek/deepseek-r1-0528': { inputPer1M: 0.
|
|
64
|
-
'openrouter:deepseek/deepseek-r1-distill-llama-70b': { inputPer1M: 0.
|
|
63
|
+
'openrouter:deepseek/deepseek-r1-0528': { inputPer1M: 0.45, outputPer1M: 2.15, cacheReadPer1M: 0.225 },
|
|
64
|
+
'openrouter:deepseek/deepseek-r1-distill-llama-70b': { inputPer1M: 0.7, outputPer1M: 0.8 },
|
|
65
65
|
'openrouter:deepseek/deepseek-r1-distill-qwen-32b': { inputPer1M: 0.29, outputPer1M: 0.29 },
|
|
66
|
-
'openrouter:deepseek/deepseek-v3.1-terminus': { inputPer1M: 0.21, outputPer1M: 0.79, cacheReadPer1M: 0.
|
|
67
|
-
'openrouter:deepseek/deepseek-v3.
|
|
68
|
-
'openrouter:deepseek/deepseek-v3.2': { inputPer1M: 0.25, outputPer1M: 0.38, cacheReadPer1M: 0.125 },
|
|
66
|
+
'openrouter:deepseek/deepseek-v3.1-terminus': { inputPer1M: 0.21, outputPer1M: 0.79, cacheReadPer1M: 0.1300000002 },
|
|
67
|
+
'openrouter:deepseek/deepseek-v3.2': { inputPer1M: 0.26, outputPer1M: 0.38, cacheReadPer1M: 0.13 },
|
|
69
68
|
'openrouter:deepseek/deepseek-v3.2-exp': { inputPer1M: 0.27, outputPer1M: 0.41 },
|
|
70
|
-
'openrouter:deepseek/deepseek-v3.2-speciale': { inputPer1M: 0.
|
|
69
|
+
'openrouter:deepseek/deepseek-v3.2-speciale': { inputPer1M: 0.4, outputPer1M: 1.2, cacheReadPer1M: 0.2 },
|
|
71
70
|
'openrouter:eleutherai/llemma_7b': { inputPer1M: 0.8, outputPer1M: 1.2 },
|
|
72
71
|
'openrouter:essentialai/rnj-1-instruct': { inputPer1M: 0.15, outputPer1M: 0.15 },
|
|
73
|
-
'openrouter:google/gemini-2.0-flash-001': { inputPer1M: 0.1, outputPer1M: 0.4, cacheWritePer1M: 0.
|
|
72
|
+
'openrouter:google/gemini-2.0-flash-001': { inputPer1M: 0.1, outputPer1M: 0.4, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.025 },
|
|
74
73
|
'openrouter:google/gemini-2.0-flash-lite-001': { inputPer1M: 0.075, outputPer1M: 0.3 },
|
|
75
|
-
'openrouter:google/gemini-2.5-flash': { inputPer1M: 0.3, outputPer1M: 2.5, cacheWritePer1M: 0.
|
|
76
|
-
'openrouter:google/gemini-2.5-flash-image': { inputPer1M: 0.3, outputPer1M: 2.5, cacheWritePer1M: 0.
|
|
77
|
-
'openrouter:google/gemini-2.5-flash-lite': { inputPer1M: 0.1, outputPer1M: 0.4, cacheWritePer1M: 0.
|
|
78
|
-
'openrouter:google/gemini-2.5-flash-lite-preview-09-2025': { inputPer1M: 0.1, outputPer1M: 0.4, cacheWritePer1M: 0.
|
|
79
|
-
'openrouter:google/gemini-2.5-flash-preview-09-2025': { inputPer1M: 0.3, outputPer1M: 2.5, cacheWritePer1M: 0.0833333, cacheReadPer1M: 0.03 },
|
|
74
|
+
'openrouter:google/gemini-2.5-flash': { inputPer1M: 0.3, outputPer1M: 2.5, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.03 },
|
|
75
|
+
'openrouter:google/gemini-2.5-flash-image': { inputPer1M: 0.3, outputPer1M: 2.5, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.03 },
|
|
76
|
+
'openrouter:google/gemini-2.5-flash-lite': { inputPer1M: 0.1, outputPer1M: 0.4, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.01 },
|
|
77
|
+
'openrouter:google/gemini-2.5-flash-lite-preview-09-2025': { inputPer1M: 0.1, outputPer1M: 0.4, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.01 },
|
|
80
78
|
'openrouter:google/gemini-2.5-pro': { inputPer1M: 1.25, outputPer1M: 10, cacheWritePer1M: 0.375, cacheReadPer1M: 0.125 },
|
|
81
79
|
'openrouter:google/gemini-2.5-pro-preview': { inputPer1M: 1.25, outputPer1M: 10, cacheWritePer1M: 0.375, cacheReadPer1M: 0.125 },
|
|
82
80
|
'openrouter:google/gemini-2.5-pro-preview-05-06': { inputPer1M: 1.25, outputPer1M: 10, cacheWritePer1M: 0.375, cacheReadPer1M: 0.125 },
|
|
83
|
-
'openrouter:google/gemini-3-flash-preview': { inputPer1M: 0.5, outputPer1M: 3, cacheWritePer1M: 0.
|
|
81
|
+
'openrouter:google/gemini-3-flash-preview': { inputPer1M: 0.5, outputPer1M: 3, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.05 },
|
|
84
82
|
'openrouter:google/gemini-3-pro-image-preview': { inputPer1M: 2, outputPer1M: 12, cacheWritePer1M: 0.375, cacheReadPer1M: 0.2 },
|
|
85
|
-
'openrouter:google/gemini-3-
|
|
83
|
+
'openrouter:google/gemini-3.1-flash-image-preview': { inputPer1M: 0.5, outputPer1M: 3 },
|
|
84
|
+
'openrouter:google/gemini-3.1-flash-lite-preview': { inputPer1M: 0.25, outputPer1M: 1.5, cacheWritePer1M: 0.0833333333333333, cacheReadPer1M: 0.025 },
|
|
85
|
+
'openrouter:google/gemini-3.1-pro-preview': { inputPer1M: 2, outputPer1M: 12, cacheWritePer1M: 0.375, cacheReadPer1M: 0.2 },
|
|
86
|
+
'openrouter:google/gemini-3.1-pro-preview-customtools': { inputPer1M: 2, outputPer1M: 12, cacheWritePer1M: 0.375, cacheReadPer1M: 0.2 },
|
|
86
87
|
'openrouter:google/gemma-2-27b-it': { inputPer1M: 0.65, outputPer1M: 0.65 },
|
|
87
88
|
'openrouter:google/gemma-2-9b-it': { inputPer1M: 0.03, outputPer1M: 0.09 },
|
|
88
|
-
'openrouter:google/gemma-3-12b-it': { inputPer1M: 0.
|
|
89
|
-
'openrouter:google/gemma-3-27b-it': { inputPer1M: 0.
|
|
90
|
-
'openrouter:google/gemma-3-4b-it': { inputPer1M: 0.
|
|
89
|
+
'openrouter:google/gemma-3-12b-it': { inputPer1M: 0.04, outputPer1M: 0.13 },
|
|
90
|
+
'openrouter:google/gemma-3-27b-it': { inputPer1M: 0.08, outputPer1M: 0.16 },
|
|
91
|
+
'openrouter:google/gemma-3-4b-it': { inputPer1M: 0.04, outputPer1M: 0.08 },
|
|
91
92
|
'openrouter:google/gemma-3n-e4b-it': { inputPer1M: 0.02, outputPer1M: 0.04 },
|
|
93
|
+
'openrouter:google/gemma-4-26b-a4b-it': { inputPer1M: 0.12, outputPer1M: 0.4 },
|
|
94
|
+
'openrouter:google/gemma-4-31b-it': { inputPer1M: 0.14, outputPer1M: 0.4 },
|
|
92
95
|
'openrouter:gryphe/mythomax-l2-13b': { inputPer1M: 0.06, outputPer1M: 0.06 },
|
|
93
96
|
'openrouter:ibm-granite/granite-4.0-h-micro': { inputPer1M: 0.017, outputPer1M: 0.11 },
|
|
94
|
-
'openrouter:inception/mercury': { inputPer1M: 0.25, outputPer1M:
|
|
95
|
-
'openrouter:inception/mercury-
|
|
97
|
+
'openrouter:inception/mercury': { inputPer1M: 0.25, outputPer1M: 0.75, cacheReadPer1M: 0.025 },
|
|
98
|
+
'openrouter:inception/mercury-2': { inputPer1M: 0.25, outputPer1M: 0.75, cacheReadPer1M: 0.025 },
|
|
99
|
+
'openrouter:inception/mercury-coder': { inputPer1M: 0.25, outputPer1M: 0.75, cacheReadPer1M: 0.025 },
|
|
96
100
|
'openrouter:inflection/inflection-3-pi': { inputPer1M: 2.5, outputPer1M: 10 },
|
|
97
101
|
'openrouter:inflection/inflection-3-productivity': { inputPer1M: 2.5, outputPer1M: 10 },
|
|
98
|
-
'openrouter:kwaipilot/kat-coder-pro': { inputPer1M: 0.
|
|
99
|
-
'openrouter:liquid/lfm-2
|
|
100
|
-
'openrouter:liquid/lfm2-8b-a1b': { inputPer1M: 0.01, outputPer1M: 0.02 },
|
|
102
|
+
'openrouter:kwaipilot/kat-coder-pro-v2': { inputPer1M: 0.3, outputPer1M: 1.2, cacheReadPer1M: 0.06 },
|
|
103
|
+
'openrouter:liquid/lfm-2-24b-a2b': { inputPer1M: 0.03, outputPer1M: 0.12 },
|
|
101
104
|
'openrouter:mancer/weaver': { inputPer1M: 0.75, outputPer1M: 1 },
|
|
102
105
|
'openrouter:meituan/longcat-flash-chat': { inputPer1M: 0.2, outputPer1M: 0.8, cacheReadPer1M: 0.2 },
|
|
103
106
|
'openrouter:meta-llama/llama-3-70b-instruct': { inputPer1M: 0.51, outputPer1M: 0.74 },
|
|
104
107
|
'openrouter:meta-llama/llama-3-8b-instruct': { inputPer1M: 0.03, outputPer1M: 0.04 },
|
|
105
|
-
'openrouter:meta-llama/llama-3.1-405b': { inputPer1M: 4, outputPer1M: 4 },
|
|
106
|
-
'openrouter:meta-llama/llama-3.1-405b-instruct': { inputPer1M: 4, outputPer1M: 4 },
|
|
107
108
|
'openrouter:meta-llama/llama-3.1-70b-instruct': { inputPer1M: 0.4, outputPer1M: 0.4 },
|
|
108
109
|
'openrouter:meta-llama/llama-3.1-8b-instruct': { inputPer1M: 0.02, outputPer1M: 0.05 },
|
|
109
|
-
'openrouter:meta-llama/llama-3.2-11b-vision-instruct': { inputPer1M: 0.
|
|
110
|
+
'openrouter:meta-llama/llama-3.2-11b-vision-instruct': { inputPer1M: 0.245, outputPer1M: 0.245 },
|
|
110
111
|
'openrouter:meta-llama/llama-3.2-1b-instruct': { inputPer1M: 0.027, outputPer1M: 0.2 },
|
|
111
|
-
'openrouter:meta-llama/llama-3.2-3b-instruct': { inputPer1M: 0.
|
|
112
|
+
'openrouter:meta-llama/llama-3.2-3b-instruct': { inputPer1M: 0.051, outputPer1M: 0.34 },
|
|
112
113
|
'openrouter:meta-llama/llama-3.3-70b-instruct': { inputPer1M: 0.1, outputPer1M: 0.32 },
|
|
113
114
|
'openrouter:meta-llama/llama-4-maverick': { inputPer1M: 0.15, outputPer1M: 0.6 },
|
|
114
115
|
'openrouter:meta-llama/llama-4-scout': { inputPer1M: 0.08, outputPer1M: 0.3 },
|
|
115
|
-
'openrouter:meta-llama/llama-guard-2-8b': { inputPer1M: 0.2, outputPer1M: 0.2 },
|
|
116
116
|
'openrouter:meta-llama/llama-guard-3-8b': { inputPer1M: 0.02, outputPer1M: 0.06 },
|
|
117
117
|
'openrouter:meta-llama/llama-guard-4-12b': { inputPer1M: 0.18, outputPer1M: 0.18 },
|
|
118
|
-
'openrouter:microsoft/phi-4': { inputPer1M: 0.
|
|
119
|
-
'openrouter:microsoft/wizardlm-2-8x22b': { inputPer1M: 0.
|
|
118
|
+
'openrouter:microsoft/phi-4': { inputPer1M: 0.065, outputPer1M: 0.14 },
|
|
119
|
+
'openrouter:microsoft/wizardlm-2-8x22b': { inputPer1M: 0.62, outputPer1M: 0.62 },
|
|
120
120
|
'openrouter:minimax/minimax-01': { inputPer1M: 0.2, outputPer1M: 1.1 },
|
|
121
121
|
'openrouter:minimax/minimax-m1': { inputPer1M: 0.4, outputPer1M: 2.2 },
|
|
122
122
|
'openrouter:minimax/minimax-m2': { inputPer1M: 0.255, outputPer1M: 1, cacheReadPer1M: 0.03 },
|
|
123
123
|
'openrouter:minimax/minimax-m2-her': { inputPer1M: 0.3, outputPer1M: 1.2, cacheReadPer1M: 0.03 },
|
|
124
|
-
'openrouter:minimax/minimax-m2.1': { inputPer1M: 0.
|
|
125
|
-
'openrouter:
|
|
126
|
-
'openrouter:
|
|
127
|
-
'openrouter:mistralai/
|
|
128
|
-
'openrouter:mistralai/devstral-
|
|
129
|
-
'openrouter:mistralai/
|
|
130
|
-
'openrouter:mistralai/
|
|
131
|
-
'openrouter:mistralai/ministral-
|
|
132
|
-
'openrouter:mistralai/ministral-
|
|
133
|
-
'openrouter:mistralai/ministral-8b-2512': { inputPer1M: 0.15, outputPer1M: 0.15 },
|
|
134
|
-
'openrouter:mistralai/mistral-7b-instruct': { inputPer1M: 0.2, outputPer1M: 0.2 },
|
|
124
|
+
'openrouter:minimax/minimax-m2.1': { inputPer1M: 0.29, outputPer1M: 0.95, cacheReadPer1M: 0.03 },
|
|
125
|
+
'openrouter:minimax/minimax-m2.5': { inputPer1M: 0.118, outputPer1M: 0.99, cacheReadPer1M: 0.059 },
|
|
126
|
+
'openrouter:minimax/minimax-m2.7': { inputPer1M: 0.3, outputPer1M: 1.2, cacheReadPer1M: 0.06 },
|
|
127
|
+
'openrouter:mistralai/codestral-2508': { inputPer1M: 0.3, outputPer1M: 0.9, cacheReadPer1M: 0.03 },
|
|
128
|
+
'openrouter:mistralai/devstral-2512': { inputPer1M: 0.4, outputPer1M: 2, cacheReadPer1M: 0.04 },
|
|
129
|
+
'openrouter:mistralai/devstral-medium': { inputPer1M: 0.4, outputPer1M: 2, cacheReadPer1M: 0.04 },
|
|
130
|
+
'openrouter:mistralai/devstral-small': { inputPer1M: 0.1, outputPer1M: 0.3, cacheReadPer1M: 0.01 },
|
|
131
|
+
'openrouter:mistralai/ministral-14b-2512': { inputPer1M: 0.2, outputPer1M: 0.2, cacheReadPer1M: 0.02 },
|
|
132
|
+
'openrouter:mistralai/ministral-3b-2512': { inputPer1M: 0.1, outputPer1M: 0.1, cacheReadPer1M: 0.01 },
|
|
133
|
+
'openrouter:mistralai/ministral-8b-2512': { inputPer1M: 0.15, outputPer1M: 0.15, cacheReadPer1M: 0.015 },
|
|
135
134
|
'openrouter:mistralai/mistral-7b-instruct-v0.1': { inputPer1M: 0.11, outputPer1M: 0.19 },
|
|
136
|
-
'openrouter:mistralai/mistral-
|
|
137
|
-
'openrouter:mistralai/mistral-
|
|
138
|
-
'openrouter:mistralai/mistral-large': { inputPer1M: 2, outputPer1M: 6 },
|
|
139
|
-
'openrouter:mistralai/mistral-large-
|
|
140
|
-
'openrouter:mistralai/mistral-
|
|
141
|
-
'openrouter:mistralai/mistral-
|
|
142
|
-
'openrouter:mistralai/mistral-medium-3': { inputPer1M: 0.4, outputPer1M: 2 },
|
|
143
|
-
'openrouter:mistralai/mistral-medium-3.1': { inputPer1M: 0.4, outputPer1M: 2 },
|
|
135
|
+
'openrouter:mistralai/mistral-large': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
136
|
+
'openrouter:mistralai/mistral-large-2407': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
137
|
+
'openrouter:mistralai/mistral-large-2411': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
138
|
+
'openrouter:mistralai/mistral-large-2512': { inputPer1M: 0.5, outputPer1M: 1.5, cacheReadPer1M: 0.05 },
|
|
139
|
+
'openrouter:mistralai/mistral-medium-3': { inputPer1M: 0.4, outputPer1M: 2, cacheReadPer1M: 0.04 },
|
|
140
|
+
'openrouter:mistralai/mistral-medium-3.1': { inputPer1M: 0.4, outputPer1M: 2, cacheReadPer1M: 0.04 },
|
|
144
141
|
'openrouter:mistralai/mistral-nemo': { inputPer1M: 0.02, outputPer1M: 0.04 },
|
|
145
|
-
'openrouter:mistralai/mistral-saba': { inputPer1M: 0.2, outputPer1M: 0.6 },
|
|
142
|
+
'openrouter:mistralai/mistral-saba': { inputPer1M: 0.2, outputPer1M: 0.6, cacheReadPer1M: 0.02 },
|
|
146
143
|
'openrouter:mistralai/mistral-small-24b-instruct-2501': { inputPer1M: 0.05, outputPer1M: 0.08 },
|
|
144
|
+
'openrouter:mistralai/mistral-small-2603': { inputPer1M: 0.15, outputPer1M: 0.6, cacheReadPer1M: 0.015 },
|
|
147
145
|
'openrouter:mistralai/mistral-small-3.1-24b-instruct': { inputPer1M: 0.03, outputPer1M: 0.11, cacheReadPer1M: 0.015 },
|
|
148
|
-
'openrouter:mistralai/mistral-small-3.2-24b-instruct': { inputPer1M: 0.
|
|
149
|
-
'openrouter:mistralai/mistral-small-creative': { inputPer1M: 0.1, outputPer1M: 0.3 },
|
|
150
|
-
'openrouter:mistralai/
|
|
151
|
-
'openrouter:mistralai/mixtral-8x22b-instruct': { inputPer1M: 2, outputPer1M: 6 },
|
|
146
|
+
'openrouter:mistralai/mistral-small-3.2-24b-instruct': { inputPer1M: 0.075, outputPer1M: 0.2 },
|
|
147
|
+
'openrouter:mistralai/mistral-small-creative': { inputPer1M: 0.1, outputPer1M: 0.3, cacheReadPer1M: 0.01 },
|
|
148
|
+
'openrouter:mistralai/mixtral-8x22b-instruct': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
152
149
|
'openrouter:mistralai/mixtral-8x7b-instruct': { inputPer1M: 0.54, outputPer1M: 0.54 },
|
|
153
|
-
'openrouter:mistralai/pixtral-
|
|
154
|
-
'openrouter:mistralai/
|
|
155
|
-
'openrouter:
|
|
156
|
-
'openrouter:moonshotai/kimi-
|
|
157
|
-
'openrouter:moonshotai/kimi-k2': { inputPer1M: 0.
|
|
158
|
-
'openrouter:moonshotai/kimi-k2
|
|
159
|
-
'openrouter:moonshotai/kimi-k2-0905:exacto': { inputPer1M: 0.6, outputPer1M: 2.5 },
|
|
160
|
-
'openrouter:moonshotai/kimi-k2-thinking': { inputPer1M: 0.4, outputPer1M: 1.75, cacheReadPer1M: 0.2 },
|
|
161
|
-
'openrouter:moonshotai/kimi-k2.5': { inputPer1M: 0.45, outputPer1M: 2.25, cacheReadPer1M: 0.07 },
|
|
150
|
+
'openrouter:mistralai/pixtral-large-2411': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
151
|
+
'openrouter:mistralai/voxtral-small-24b-2507': { inputPer1M: 0.1, outputPer1M: 0.3, cacheReadPer1M: 0.01 },
|
|
152
|
+
'openrouter:moonshotai/kimi-k2': { inputPer1M: 0.57, outputPer1M: 2.3 },
|
|
153
|
+
'openrouter:moonshotai/kimi-k2-0905': { inputPer1M: 0.4, outputPer1M: 2 },
|
|
154
|
+
'openrouter:moonshotai/kimi-k2-thinking': { inputPer1M: 0.6, outputPer1M: 2.5 },
|
|
155
|
+
'openrouter:moonshotai/kimi-k2.5': { inputPer1M: 0.3827, outputPer1M: 1.72, cacheReadPer1M: 0.19135 },
|
|
162
156
|
'openrouter:morph/morph-v3-fast': { inputPer1M: 0.8, outputPer1M: 1.2 },
|
|
163
157
|
'openrouter:morph/morph-v3-large': { inputPer1M: 0.9, outputPer1M: 1.9 },
|
|
164
|
-
'openrouter:
|
|
165
|
-
'openrouter:neversleep/noromaid-20b': { inputPer1M: 1, outputPer1M: 1.75 },
|
|
166
|
-
'openrouter:nex-agi/deepseek-v3.1-nex-n1': { inputPer1M: 0.27, outputPer1M: 1 },
|
|
167
|
-
'openrouter:nousresearch/deephermes-3-mistral-24b-preview': { inputPer1M: 0.02, outputPer1M: 0.1, cacheReadPer1M: 0.01 },
|
|
158
|
+
'openrouter:nex-agi/deepseek-v3.1-nex-n1': { inputPer1M: 0.135, outputPer1M: 0.5 },
|
|
168
159
|
'openrouter:nousresearch/hermes-2-pro-llama-3-8b': { inputPer1M: 0.14, outputPer1M: 0.14 },
|
|
169
160
|
'openrouter:nousresearch/hermes-3-llama-3.1-405b': { inputPer1M: 1, outputPer1M: 1 },
|
|
170
161
|
'openrouter:nousresearch/hermes-3-llama-3.1-70b': { inputPer1M: 0.3, outputPer1M: 0.3 },
|
|
171
162
|
'openrouter:nousresearch/hermes-4-405b': { inputPer1M: 1, outputPer1M: 3 },
|
|
172
|
-
'openrouter:nousresearch/hermes-4-70b': { inputPer1M: 0.
|
|
163
|
+
'openrouter:nousresearch/hermes-4-70b': { inputPer1M: 0.13, outputPer1M: 0.4 },
|
|
173
164
|
'openrouter:nvidia/llama-3.1-nemotron-70b-instruct': { inputPer1M: 1.2, outputPer1M: 1.2 },
|
|
174
165
|
'openrouter:nvidia/llama-3.1-nemotron-ultra-253b-v1': { inputPer1M: 0.6, outputPer1M: 1.8 },
|
|
175
166
|
'openrouter:nvidia/llama-3.3-nemotron-super-49b-v1.5': { inputPer1M: 0.1, outputPer1M: 0.4 },
|
|
176
167
|
'openrouter:nvidia/nemotron-3-nano-30b-a3b': { inputPer1M: 0.05, outputPer1M: 0.2 },
|
|
168
|
+
'openrouter:nvidia/nemotron-3-super-120b-a12b': { inputPer1M: 0.1, outputPer1M: 0.5, cacheReadPer1M: 0.1 },
|
|
177
169
|
'openrouter:nvidia/nemotron-nano-12b-v2-vl': { inputPer1M: 0.2, outputPer1M: 0.6 },
|
|
178
170
|
'openrouter:nvidia/nemotron-nano-9b-v2': { inputPer1M: 0.04, outputPer1M: 0.16 },
|
|
179
|
-
'openrouter:openai/chatgpt-4o-latest': { inputPer1M: 5, outputPer1M: 15 },
|
|
180
171
|
'openrouter:openai/gpt-3.5-turbo': { inputPer1M: 0.5, outputPer1M: 1.5 },
|
|
181
172
|
'openrouter:openai/gpt-3.5-turbo-0613': { inputPer1M: 1, outputPer1M: 2 },
|
|
182
173
|
'openrouter:openai/gpt-3.5-turbo-16k': { inputPer1M: 3, outputPer1M: 4 },
|
|
@@ -216,10 +207,15 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
216
207
|
'openrouter:openai/gpt-5.2-chat': { inputPer1M: 1.75, outputPer1M: 14, cacheReadPer1M: 0.175 },
|
|
217
208
|
'openrouter:openai/gpt-5.2-codex': { inputPer1M: 1.75, outputPer1M: 14, cacheReadPer1M: 0.175 },
|
|
218
209
|
'openrouter:openai/gpt-5.2-pro': { inputPer1M: 21, outputPer1M: 168 },
|
|
210
|
+
'openrouter:openai/gpt-5.3-chat': { inputPer1M: 1.75, outputPer1M: 14, cacheReadPer1M: 0.175 },
|
|
211
|
+
'openrouter:openai/gpt-5.3-codex': { inputPer1M: 1.75, outputPer1M: 14, cacheReadPer1M: 0.175 },
|
|
212
|
+
'openrouter:openai/gpt-5.4': { inputPer1M: 2.5, outputPer1M: 15, cacheReadPer1M: 0.25 },
|
|
213
|
+
'openrouter:openai/gpt-5.4-mini': { inputPer1M: 0.75, outputPer1M: 4.5, cacheReadPer1M: 0.075 },
|
|
214
|
+
'openrouter:openai/gpt-5.4-nano': { inputPer1M: 0.2, outputPer1M: 1.25, cacheReadPer1M: 0.02 },
|
|
215
|
+
'openrouter:openai/gpt-5.4-pro': { inputPer1M: 30, outputPer1M: 180 },
|
|
219
216
|
'openrouter:openai/gpt-audio': { inputPer1M: 2.5, outputPer1M: 10 },
|
|
220
217
|
'openrouter:openai/gpt-audio-mini': { inputPer1M: 0.6, outputPer1M: 2.4 },
|
|
221
218
|
'openrouter:openai/gpt-oss-120b': { inputPer1M: 0.039, outputPer1M: 0.19 },
|
|
222
|
-
'openrouter:openai/gpt-oss-120b:exacto': { inputPer1M: 0.039, outputPer1M: 0.19 },
|
|
223
219
|
'openrouter:openai/gpt-oss-20b': { inputPer1M: 0.03, outputPer1M: 0.14 },
|
|
224
220
|
'openrouter:openai/gpt-oss-safeguard-20b': { inputPer1M: 0.075, outputPer1M: 0.3, cacheReadPer1M: 0.037 },
|
|
225
221
|
'openrouter:openai/o1': { inputPer1M: 15, outputPer1M: 60, cacheReadPer1M: 7.5 },
|
|
@@ -232,7 +228,8 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
232
228
|
'openrouter:openai/o4-mini': { inputPer1M: 1.1, outputPer1M: 4.4, cacheReadPer1M: 0.275 },
|
|
233
229
|
'openrouter:openai/o4-mini-deep-research': { inputPer1M: 2, outputPer1M: 8, cacheReadPer1M: 0.5 },
|
|
234
230
|
'openrouter:openai/o4-mini-high': { inputPer1M: 1.1, outputPer1M: 4.4, cacheReadPer1M: 0.275 },
|
|
235
|
-
'openrouter:
|
|
231
|
+
'openrouter:openrouter/auto': { inputPer1M: -1000000, outputPer1M: -1000000 },
|
|
232
|
+
'openrouter:openrouter/bodybuilder': { inputPer1M: -1000000, outputPer1M: -1000000 },
|
|
236
233
|
'openrouter:perplexity/sonar': { inputPer1M: 1, outputPer1M: 1 },
|
|
237
234
|
'openrouter:perplexity/sonar-deep-research': { inputPer1M: 2, outputPer1M: 8 },
|
|
238
235
|
'openrouter:perplexity/sonar-pro': { inputPer1M: 3, outputPer1M: 15 },
|
|
@@ -241,63 +238,70 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
241
238
|
'openrouter:prime-intellect/intellect-3': { inputPer1M: 0.2, outputPer1M: 1.1 },
|
|
242
239
|
'openrouter:qwen/qwen-2.5-72b-instruct': { inputPer1M: 0.12, outputPer1M: 0.39 },
|
|
243
240
|
'openrouter:qwen/qwen-2.5-7b-instruct': { inputPer1M: 0.04, outputPer1M: 0.1 },
|
|
244
|
-
'openrouter:qwen/qwen-2.5-coder-32b-instruct': { inputPer1M: 0.
|
|
245
|
-
'openrouter:qwen/qwen-
|
|
246
|
-
'openrouter:qwen/qwen-
|
|
247
|
-
'openrouter:qwen/qwen-plus': { inputPer1M: 0.
|
|
248
|
-
'openrouter:qwen/qwen-plus-2025-07-28': { inputPer1M: 0.
|
|
249
|
-
'openrouter:qwen/qwen-
|
|
250
|
-
'openrouter:qwen/qwen-
|
|
251
|
-
'openrouter:qwen/qwen-vl-
|
|
252
|
-
'openrouter:qwen/qwen-vl-plus': { inputPer1M: 0.21, outputPer1M: 0.63 },
|
|
241
|
+
'openrouter:qwen/qwen-2.5-coder-32b-instruct': { inputPer1M: 0.66, outputPer1M: 1 },
|
|
242
|
+
'openrouter:qwen/qwen-max': { inputPer1M: 1.04, outputPer1M: 4.16, cacheReadPer1M: 0.208 },
|
|
243
|
+
'openrouter:qwen/qwen-plus': { inputPer1M: 0.26, outputPer1M: 0.78, cacheReadPer1M: 0.052 },
|
|
244
|
+
'openrouter:qwen/qwen-plus-2025-07-28': { inputPer1M: 0.26, outputPer1M: 0.78 },
|
|
245
|
+
'openrouter:qwen/qwen-plus-2025-07-28:thinking': { inputPer1M: 0.26, outputPer1M: 0.78 },
|
|
246
|
+
'openrouter:qwen/qwen-turbo': { inputPer1M: 0.0325, outputPer1M: 0.13, cacheReadPer1M: 0.0065 },
|
|
247
|
+
'openrouter:qwen/qwen-vl-max': { inputPer1M: 0.52, outputPer1M: 2.08 },
|
|
248
|
+
'openrouter:qwen/qwen-vl-plus': { inputPer1M: 0.1365, outputPer1M: 0.4095, cacheReadPer1M: 0.0273 },
|
|
253
249
|
'openrouter:qwen/qwen2.5-coder-7b-instruct': { inputPer1M: 0.03, outputPer1M: 0.09 },
|
|
254
|
-
'openrouter:qwen/qwen2.5-vl-32b-instruct': { inputPer1M: 0.
|
|
255
|
-
'openrouter:qwen/qwen2.5-vl-72b-instruct': { inputPer1M: 0.
|
|
256
|
-
'openrouter:qwen/qwen3-14b': { inputPer1M: 0.
|
|
257
|
-
'openrouter:qwen/qwen3-235b-a22b': { inputPer1M: 0.
|
|
250
|
+
'openrouter:qwen/qwen2.5-vl-32b-instruct': { inputPer1M: 0.2, outputPer1M: 0.6 },
|
|
251
|
+
'openrouter:qwen/qwen2.5-vl-72b-instruct': { inputPer1M: 0.8, outputPer1M: 0.8 },
|
|
252
|
+
'openrouter:qwen/qwen3-14b': { inputPer1M: 0.06, outputPer1M: 0.24 },
|
|
253
|
+
'openrouter:qwen/qwen3-235b-a22b': { inputPer1M: 0.455, outputPer1M: 1.82 },
|
|
258
254
|
'openrouter:qwen/qwen3-235b-a22b-2507': { inputPer1M: 0.071, outputPer1M: 0.1 },
|
|
259
|
-
'openrouter:qwen/qwen3-235b-a22b-thinking-2507': { inputPer1M: 0.
|
|
260
|
-
'openrouter:qwen/qwen3-30b-a3b': { inputPer1M: 0.
|
|
261
|
-
'openrouter:qwen/qwen3-30b-a3b-instruct-2507': { inputPer1M: 0.
|
|
262
|
-
'openrouter:qwen/qwen3-30b-a3b-thinking-2507': { inputPer1M: 0.
|
|
255
|
+
'openrouter:qwen/qwen3-235b-a22b-thinking-2507': { inputPer1M: 0.1495, outputPer1M: 1.495 },
|
|
256
|
+
'openrouter:qwen/qwen3-30b-a3b': { inputPer1M: 0.08, outputPer1M: 0.28 },
|
|
257
|
+
'openrouter:qwen/qwen3-30b-a3b-instruct-2507': { inputPer1M: 0.09, outputPer1M: 0.3 },
|
|
258
|
+
'openrouter:qwen/qwen3-30b-a3b-thinking-2507': { inputPer1M: 0.08, outputPer1M: 0.4, cacheReadPer1M: 0.08 },
|
|
263
259
|
'openrouter:qwen/qwen3-32b': { inputPer1M: 0.08, outputPer1M: 0.24, cacheReadPer1M: 0.04 },
|
|
264
260
|
'openrouter:qwen/qwen3-8b': { inputPer1M: 0.05, outputPer1M: 0.4, cacheReadPer1M: 0.05 },
|
|
265
261
|
'openrouter:qwen/qwen3-coder': { inputPer1M: 0.22, outputPer1M: 1, cacheReadPer1M: 0.022 },
|
|
266
262
|
'openrouter:qwen/qwen3-coder-30b-a3b-instruct': { inputPer1M: 0.07, outputPer1M: 0.27 },
|
|
267
|
-
'openrouter:qwen/qwen3-coder-flash': { inputPer1M: 0.
|
|
268
|
-
'openrouter:qwen/qwen3-coder-next': { inputPer1M: 0.
|
|
269
|
-
'openrouter:qwen/qwen3-coder-plus': { inputPer1M:
|
|
270
|
-
'openrouter:qwen/qwen3-
|
|
271
|
-
'openrouter:qwen/qwen3-max': { inputPer1M:
|
|
263
|
+
'openrouter:qwen/qwen3-coder-flash': { inputPer1M: 0.195, outputPer1M: 0.975, cacheReadPer1M: 0.039 },
|
|
264
|
+
'openrouter:qwen/qwen3-coder-next': { inputPer1M: 0.12, outputPer1M: 0.75, cacheReadPer1M: 0.06 },
|
|
265
|
+
'openrouter:qwen/qwen3-coder-plus': { inputPer1M: 0.65, outputPer1M: 3.25, cacheReadPer1M: 0.13 },
|
|
266
|
+
'openrouter:qwen/qwen3-max': { inputPer1M: 0.78, outputPer1M: 3.9, cacheReadPer1M: 0.156 },
|
|
267
|
+
'openrouter:qwen/qwen3-max-thinking': { inputPer1M: 0.78, outputPer1M: 3.9 },
|
|
272
268
|
'openrouter:qwen/qwen3-next-80b-a3b-instruct': { inputPer1M: 0.09, outputPer1M: 1.1 },
|
|
273
|
-
'openrouter:qwen/qwen3-next-80b-a3b-thinking': { inputPer1M: 0.
|
|
269
|
+
'openrouter:qwen/qwen3-next-80b-a3b-thinking': { inputPer1M: 0.0975, outputPer1M: 0.78 },
|
|
274
270
|
'openrouter:qwen/qwen3-vl-235b-a22b-instruct': { inputPer1M: 0.2, outputPer1M: 0.88, cacheReadPer1M: 0.11 },
|
|
275
|
-
'openrouter:qwen/qwen3-vl-235b-a22b-thinking': { inputPer1M: 0.
|
|
276
|
-
'openrouter:qwen/qwen3-vl-30b-a3b-instruct': { inputPer1M: 0.
|
|
277
|
-
'openrouter:qwen/qwen3-vl-30b-a3b-thinking': { inputPer1M: 0.
|
|
278
|
-
'openrouter:qwen/qwen3-vl-32b-instruct': { inputPer1M: 0.
|
|
271
|
+
'openrouter:qwen/qwen3-vl-235b-a22b-thinking': { inputPer1M: 0.26, outputPer1M: 2.6 },
|
|
272
|
+
'openrouter:qwen/qwen3-vl-30b-a3b-instruct': { inputPer1M: 0.13, outputPer1M: 0.52 },
|
|
273
|
+
'openrouter:qwen/qwen3-vl-30b-a3b-thinking': { inputPer1M: 0.13, outputPer1M: 1.56 },
|
|
274
|
+
'openrouter:qwen/qwen3-vl-32b-instruct': { inputPer1M: 0.104, outputPer1M: 0.416 },
|
|
279
275
|
'openrouter:qwen/qwen3-vl-8b-instruct': { inputPer1M: 0.08, outputPer1M: 0.5 },
|
|
280
|
-
'openrouter:qwen/qwen3-vl-8b-thinking': { inputPer1M: 0.
|
|
281
|
-
'openrouter:qwen/
|
|
282
|
-
'openrouter:
|
|
276
|
+
'openrouter:qwen/qwen3-vl-8b-thinking': { inputPer1M: 0.117, outputPer1M: 1.365 },
|
|
277
|
+
'openrouter:qwen/qwen3.5-122b-a10b': { inputPer1M: 0.26, outputPer1M: 2.08 },
|
|
278
|
+
'openrouter:qwen/qwen3.5-27b': { inputPer1M: 0.195, outputPer1M: 1.56 },
|
|
279
|
+
'openrouter:qwen/qwen3.5-35b-a3b': { inputPer1M: 0.1625, outputPer1M: 1.3 },
|
|
280
|
+
'openrouter:qwen/qwen3.5-397b-a17b': { inputPer1M: 0.39, outputPer1M: 2.34 },
|
|
281
|
+
'openrouter:qwen/qwen3.5-9b': { inputPer1M: 0.05, outputPer1M: 0.15 },
|
|
282
|
+
'openrouter:qwen/qwen3.5-flash-02-23': { inputPer1M: 0.065, outputPer1M: 0.26 },
|
|
283
|
+
'openrouter:qwen/qwen3.5-plus-02-15': { inputPer1M: 0.26, outputPer1M: 1.56 },
|
|
284
|
+
'openrouter:qwen/qwen3.6-plus': { inputPer1M: 0.325, outputPer1M: 1.95 },
|
|
285
|
+
'openrouter:qwen/qwq-32b': { inputPer1M: 0.15, outputPer1M: 0.58 },
|
|
286
|
+
'openrouter:rekaai/reka-edge': { inputPer1M: 0.1, outputPer1M: 0.1 },
|
|
287
|
+
'openrouter:rekaai/reka-flash-3': { inputPer1M: 0.1, outputPer1M: 0.2 },
|
|
283
288
|
'openrouter:relace/relace-apply-3': { inputPer1M: 0.85, outputPer1M: 1.25 },
|
|
284
289
|
'openrouter:relace/relace-search': { inputPer1M: 1, outputPer1M: 3 },
|
|
285
290
|
'openrouter:sao10k/l3-euryale-70b': { inputPer1M: 1.48, outputPer1M: 1.48 },
|
|
286
291
|
'openrouter:sao10k/l3-lunaris-8b': { inputPer1M: 0.04, outputPer1M: 0.05 },
|
|
287
292
|
'openrouter:sao10k/l3.1-70b-hanami-x1': { inputPer1M: 3, outputPer1M: 3 },
|
|
288
|
-
'openrouter:sao10k/l3.1-euryale-70b': { inputPer1M: 0.
|
|
293
|
+
'openrouter:sao10k/l3.1-euryale-70b': { inputPer1M: 0.85, outputPer1M: 0.85 },
|
|
289
294
|
'openrouter:sao10k/l3.3-euryale-70b': { inputPer1M: 0.65, outputPer1M: 0.75 },
|
|
290
|
-
'openrouter:stepfun-
|
|
295
|
+
'openrouter:stepfun/step-3.5-flash': { inputPer1M: 0.1, outputPer1M: 0.3 },
|
|
291
296
|
'openrouter:switchpoint/router': { inputPer1M: 0.85, outputPer1M: 3.4 },
|
|
292
297
|
'openrouter:tencent/hunyuan-a13b-instruct': { inputPer1M: 0.14, outputPer1M: 0.57 },
|
|
293
298
|
'openrouter:thedrummer/cydonia-24b-v4.1': { inputPer1M: 0.3, outputPer1M: 0.5 },
|
|
294
299
|
'openrouter:thedrummer/rocinante-12b': { inputPer1M: 0.17, outputPer1M: 0.43 },
|
|
295
300
|
'openrouter:thedrummer/skyfall-36b-v2': { inputPer1M: 0.55, outputPer1M: 0.8 },
|
|
296
301
|
'openrouter:thedrummer/unslopnemo-12b': { inputPer1M: 0.4, outputPer1M: 0.4 },
|
|
297
|
-
'openrouter:tngtech/deepseek-
|
|
298
|
-
'openrouter:tngtech/deepseek-r1t2-chimera': { inputPer1M: 0.25, outputPer1M: 0.85, cacheReadPer1M: 0.125 },
|
|
299
|
-
'openrouter:tngtech/tng-r1t-chimera': { inputPer1M: 0.25, outputPer1M: 0.85, cacheReadPer1M: 0.125 },
|
|
302
|
+
'openrouter:tngtech/deepseek-r1t2-chimera': { inputPer1M: 0.3, outputPer1M: 1.1, cacheReadPer1M: 0.15 },
|
|
300
303
|
'openrouter:undi95/remm-slerp-l2-13b': { inputPer1M: 0.45, outputPer1M: 0.65 },
|
|
304
|
+
'openrouter:upstage/solar-pro-3': { inputPer1M: 0.15, outputPer1M: 0.6, cacheReadPer1M: 0.015 },
|
|
301
305
|
'openrouter:writer/palmyra-x5': { inputPer1M: 0.6, outputPer1M: 6 },
|
|
302
306
|
'openrouter:x-ai/grok-3': { inputPer1M: 3, outputPer1M: 15, cacheReadPer1M: 0.75 },
|
|
303
307
|
'openrouter:x-ai/grok-3-beta': { inputPer1M: 3, outputPer1M: 15, cacheReadPer1M: 0.75 },
|
|
@@ -306,16 +310,23 @@ export const OPENROUTER_MODEL_PRICING = {
|
|
|
306
310
|
'openrouter:x-ai/grok-4': { inputPer1M: 3, outputPer1M: 15, cacheReadPer1M: 0.75 },
|
|
307
311
|
'openrouter:x-ai/grok-4-fast': { inputPer1M: 0.2, outputPer1M: 0.5, cacheReadPer1M: 0.05 },
|
|
308
312
|
'openrouter:x-ai/grok-4.1-fast': { inputPer1M: 0.2, outputPer1M: 0.5, cacheReadPer1M: 0.05 },
|
|
313
|
+
'openrouter:x-ai/grok-4.20': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
314
|
+
'openrouter:x-ai/grok-4.20-multi-agent': { inputPer1M: 2, outputPer1M: 6, cacheReadPer1M: 0.2 },
|
|
309
315
|
'openrouter:x-ai/grok-code-fast-1': { inputPer1M: 0.2, outputPer1M: 1.5, cacheReadPer1M: 0.02 },
|
|
310
316
|
'openrouter:xiaomi/mimo-v2-flash': { inputPer1M: 0.09, outputPer1M: 0.29, cacheReadPer1M: 0.045 },
|
|
317
|
+
'openrouter:xiaomi/mimo-v2-omni': { inputPer1M: 0.4, outputPer1M: 2, cacheReadPer1M: 0.08 },
|
|
318
|
+
'openrouter:xiaomi/mimo-v2-pro': { inputPer1M: 1, outputPer1M: 3, cacheReadPer1M: 0.2 },
|
|
311
319
|
'openrouter:z-ai/glm-4-32b': { inputPer1M: 0.1, outputPer1M: 0.1 },
|
|
312
|
-
'openrouter:z-ai/glm-4.5': { inputPer1M: 0.
|
|
320
|
+
'openrouter:z-ai/glm-4.5': { inputPer1M: 0.6, outputPer1M: 2.2, cacheReadPer1M: 0.11 },
|
|
313
321
|
'openrouter:z-ai/glm-4.5-air': { inputPer1M: 0.13, outputPer1M: 0.85, cacheReadPer1M: 0.025 },
|
|
314
322
|
'openrouter:z-ai/glm-4.5v': { inputPer1M: 0.6, outputPer1M: 1.8, cacheReadPer1M: 0.11 },
|
|
315
|
-
'openrouter:z-ai/glm-4.6': { inputPer1M: 0.
|
|
316
|
-
'openrouter:z-ai/glm-4.6:exacto': { inputPer1M: 0.44, outputPer1M: 1.76, cacheReadPer1M: 0.11 },
|
|
323
|
+
'openrouter:z-ai/glm-4.6': { inputPer1M: 0.39, outputPer1M: 1.9 },
|
|
317
324
|
'openrouter:z-ai/glm-4.6v': { inputPer1M: 0.3, outputPer1M: 0.9 },
|
|
318
|
-
'openrouter:z-ai/glm-4.7': { inputPer1M: 0.
|
|
319
|
-
'openrouter:z-ai/glm-4.7-flash': { inputPer1M: 0.06, outputPer1M: 0.4, cacheReadPer1M: 0.
|
|
325
|
+
'openrouter:z-ai/glm-4.7': { inputPer1M: 0.39, outputPer1M: 1.75, cacheReadPer1M: 0.195 },
|
|
326
|
+
'openrouter:z-ai/glm-4.7-flash': { inputPer1M: 0.06, outputPer1M: 0.4, cacheReadPer1M: 0.0100000002 },
|
|
327
|
+
'openrouter:z-ai/glm-5': { inputPer1M: 0.72, outputPer1M: 2.3 },
|
|
328
|
+
'openrouter:z-ai/glm-5-turbo': { inputPer1M: 1.2, outputPer1M: 4, cacheReadPer1M: 0.24 },
|
|
329
|
+
'openrouter:z-ai/glm-5.1': { inputPer1M: 0.95, outputPer1M: 3.15, cacheReadPer1M: 0.475 },
|
|
330
|
+
'openrouter:z-ai/glm-5v-turbo': { inputPer1M: 1.2, outputPer1M: 4, cacheReadPer1M: 0.24 },
|
|
320
331
|
};
|
|
321
332
|
//# sourceMappingURL=openrouter-pricing.js.map
|