@just-every/ensemble 0.2.267 → 0.2.269
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 +7 -6
- package/dist/cjs/data/model_data.cjs +185 -6
- package/dist/cjs/data/model_data.d.ts.map +1 -1
- package/dist/cjs/data/model_data.js.map +1 -1
- package/dist/cjs/model_providers/gemini.cjs +10 -4
- package/dist/cjs/model_providers/gemini.d.ts.map +1 -1
- package/dist/cjs/model_providers/gemini.js.map +1 -1
- package/dist/cjs/model_providers/gemini_model_contract.cjs +12 -0
- package/dist/cjs/model_providers/gemini_model_contract.d.ts +2 -0
- package/dist/cjs/model_providers/gemini_model_contract.d.ts.map +1 -0
- package/dist/cjs/model_providers/gemini_model_contract.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/data/model_data.d.ts.map +1 -1
- package/dist/data/model_data.js +185 -6
- package/dist/data/model_data.js.map +1 -1
- package/dist/model_providers/gemini.d.ts.map +1 -1
- package/dist/model_providers/gemini.js +10 -4
- package/dist/model_providers/gemini.js.map +1 -1
- package/dist/model_providers/gemini_model_contract.d.ts +2 -0
- package/dist/model_providers/gemini_model_contract.d.ts.map +1 -0
- package/dist/model_providers/gemini_model_contract.js +9 -0
- package/dist/model_providers/gemini_model_contract.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,12 +35,13 @@ See the [demo README](demo/README.md) for detailed information about each demo.
|
|
|
35
35
|
- 📊 **Cost & Quota Tracking** - Built-in usage monitoring and cost calculation
|
|
36
36
|
- 🎯 **Smart Result Processing** - Automatic summarization and truncation for long outputs
|
|
37
37
|
|
|
38
|
-
## Model
|
|
38
|
+
## Model Highlights
|
|
39
39
|
|
|
40
40
|
- OpenAI: Added GPT-5.2 (base + chat-latest + pro) and refreshed GPT-5.1/GPT-5/Codex pricing
|
|
41
41
|
- Anthropic: Claude 4.5 (Sonnet/Haiku, incl. 1M context) and Claude Opus 4.1
|
|
42
|
-
- Google: Gemini 3
|
|
42
|
+
- Google: Gemini 3.6 Flash, Gemini 3.5 Flash/Lite, Gemini 3.1 Pro/Image/Live/TTS, and Gemini 2.5
|
|
43
43
|
- xAI: Grok 4.5 with current `grok-build-latest` aliasing and reasoning controls, Grok 4.1 Fast / Grok 4 Fast variants, and Grok Imagine image generation/editing support (`grok-imagine-image`, `grok-imagine-image-pro`)
|
|
44
|
+
- OpenRouter: Kimi K3, LongCat 2.0, Inkling, Muse Spark 1.1, and KAT-Coder Pro/Air V2.5 with current routing, capability, context, and pricing metadata
|
|
44
45
|
|
|
45
46
|
\*Codex-Max pricing reflects current published rates and may change if OpenAI updates pricing.
|
|
46
47
|
|
|
@@ -228,7 +229,7 @@ Gemini 3 native thinking levels can be requested directly:
|
|
|
228
229
|
```ts
|
|
229
230
|
const result = await ensembleResult(
|
|
230
231
|
ensembleRequest([{ type: 'message', role: 'user', content: 'Solve this carefully.' }], {
|
|
231
|
-
model: 'gemini-3-flash
|
|
232
|
+
model: 'gemini-3.6-flash',
|
|
232
233
|
modelSettings: {
|
|
233
234
|
thinking_level: 'high',
|
|
234
235
|
},
|
|
@@ -240,6 +241,7 @@ For Gemini, `thinking_level` is mutually exclusive with numeric `thinking_budget
|
|
|
240
241
|
When a Gemini model supports native thinking levels, suffixes like `-none`, `-minimal`, `-low`, `-medium`, `-high`, and `-max` are sent as `thinkingLevel` values instead of numeric budgets.
|
|
241
242
|
For native Gemini thinking-level models, numeric `thinking_budget` values are also translated to the closest supported `thinkingLevel`; Gemini 2.5 models still receive `thinkingBudget`.
|
|
242
243
|
For Gemini 3 Flash-family models, `-none` maps to the provider-native `minimal` level because Gemini does not support full thinking-off.
|
|
244
|
+
Gemini 3.6 Flash and Gemini 3.5 Flash-Lite ignore deprecated sampling settings (`temperature`, `top_p`, and `top_k`), so Ensemble omits them from those requests. Their message histories must end with a user turn rather than a prefilled model response.
|
|
243
245
|
|
|
244
246
|
### Multimodal Input (Images)
|
|
245
247
|
|
|
@@ -271,7 +273,7 @@ const messages = [
|
|
|
271
273
|
},
|
|
272
274
|
];
|
|
273
275
|
|
|
274
|
-
for await (const event of ensembleRequest(messages, { model: 'gemini-3-flash
|
|
276
|
+
for await (const event of ensembleRequest(messages, { model: 'gemini-3.6-flash' })) {
|
|
275
277
|
if (event.type === 'message_complete' && 'content' in event) {
|
|
276
278
|
console.log(event.content);
|
|
277
279
|
}
|
|
@@ -290,9 +292,8 @@ The example below combines **image input** with **JSON output**:
|
|
|
290
292
|
import { ensembleRequest, ensembleResult } from '@just-every/ensemble';
|
|
291
293
|
|
|
292
294
|
const agent = {
|
|
293
|
-
model: 'gemini-3-flash
|
|
295
|
+
model: 'gemini-3.6-flash',
|
|
294
296
|
modelSettings: {
|
|
295
|
-
temperature: 0.2,
|
|
296
297
|
json_schema: {
|
|
297
298
|
name: 'image_analysis',
|
|
298
299
|
type: 'json_schema',
|
|
@@ -7,7 +7,7 @@ exports.MODEL_CLASSES = {
|
|
|
7
7
|
standard: {
|
|
8
8
|
models: [
|
|
9
9
|
'gpt-5.5',
|
|
10
|
-
'gemini-3-flash
|
|
10
|
+
'gemini-3.6-flash',
|
|
11
11
|
'claude-sonnet-5',
|
|
12
12
|
'grok-4.5',
|
|
13
13
|
],
|
|
@@ -16,7 +16,7 @@ exports.MODEL_CLASSES = {
|
|
|
16
16
|
mini: {
|
|
17
17
|
models: [
|
|
18
18
|
'gpt-5.4-nano',
|
|
19
|
-
'gemini-
|
|
19
|
+
'gemini-3.5-flash-lite',
|
|
20
20
|
'claude-haiku-4-5-20251001',
|
|
21
21
|
'grok-3-mini',
|
|
22
22
|
],
|
|
@@ -43,7 +43,7 @@ exports.MODEL_CLASSES = {
|
|
|
43
43
|
reasoning_mini: {
|
|
44
44
|
models: [
|
|
45
45
|
'gpt-5.4-mini',
|
|
46
|
-
'gemini-3-flash-
|
|
46
|
+
'gemini-3.5-flash-lite',
|
|
47
47
|
'claude-sonnet-5',
|
|
48
48
|
'grok-3-mini',
|
|
49
49
|
],
|
|
@@ -80,7 +80,7 @@ exports.MODEL_CLASSES = {
|
|
|
80
80
|
writing: {
|
|
81
81
|
models: [
|
|
82
82
|
'gpt-5.5',
|
|
83
|
-
'gemini-3-flash
|
|
83
|
+
'gemini-3.6-flash',
|
|
84
84
|
'claude-sonnet-5',
|
|
85
85
|
'grok-4.5',
|
|
86
86
|
],
|
|
@@ -89,7 +89,7 @@ exports.MODEL_CLASSES = {
|
|
|
89
89
|
summary: {
|
|
90
90
|
models: [
|
|
91
91
|
'gpt-5-nano',
|
|
92
|
-
'gemini-
|
|
92
|
+
'gemini-3.5-flash-lite',
|
|
93
93
|
'claude-haiku-4-5-20251001',
|
|
94
94
|
'grok-3-mini',
|
|
95
95
|
],
|
|
@@ -107,7 +107,7 @@ exports.MODEL_CLASSES = {
|
|
|
107
107
|
vision_mini: {
|
|
108
108
|
models: [
|
|
109
109
|
'gpt-5.4-mini',
|
|
110
|
-
'gemini-3-flash-
|
|
110
|
+
'gemini-3.5-flash-lite',
|
|
111
111
|
'claude-haiku-4-5-20251001',
|
|
112
112
|
'grok-3-mini',
|
|
113
113
|
],
|
|
@@ -2369,6 +2369,27 @@ exports.MODEL_REGISTRY = [
|
|
|
2369
2369
|
class: 'standard',
|
|
2370
2370
|
description: 'Gemini 3 Flash Preview - fast multimodal model with 1M context window.',
|
|
2371
2371
|
},
|
|
2372
|
+
{
|
|
2373
|
+
id: 'gemini-3.6-flash',
|
|
2374
|
+
aliases: ['gemini-flash-latest', 'models/gemini-3.6-flash', 'models/gemini-flash-latest'],
|
|
2375
|
+
provider: 'google',
|
|
2376
|
+
cost: {
|
|
2377
|
+
input_per_million: 1.5,
|
|
2378
|
+
output_per_million: 7.5,
|
|
2379
|
+
cached_input_per_million: 0.15,
|
|
2380
|
+
},
|
|
2381
|
+
features: {
|
|
2382
|
+
context_length: 1048576,
|
|
2383
|
+
input_modality: ['text', 'image', 'video', 'audio'],
|
|
2384
|
+
output_modality: ['text'],
|
|
2385
|
+
tool_use: true,
|
|
2386
|
+
streaming: true,
|
|
2387
|
+
json_output: true,
|
|
2388
|
+
max_output_tokens: 65536,
|
|
2389
|
+
},
|
|
2390
|
+
class: 'standard',
|
|
2391
|
+
description: 'Gemini 3.6 Flash - stable frontier multimodal model optimized for agentic execution, coding, spatial reasoning, and efficient tool use.',
|
|
2392
|
+
},
|
|
2372
2393
|
{
|
|
2373
2394
|
id: 'gemini-3.5-flash',
|
|
2374
2395
|
provider: 'google',
|
|
@@ -2390,6 +2411,27 @@ exports.MODEL_REGISTRY = [
|
|
|
2390
2411
|
score: 88,
|
|
2391
2412
|
description: 'Gemini 3.5 Flash - fast multimodal reasoning model with 1M context and native thinking levels.',
|
|
2392
2413
|
},
|
|
2414
|
+
{
|
|
2415
|
+
id: 'gemini-3.5-flash-lite',
|
|
2416
|
+
aliases: ['gemini-flash-lite-latest', 'models/gemini-3.5-flash-lite', 'models/gemini-flash-lite-latest'],
|
|
2417
|
+
provider: 'google',
|
|
2418
|
+
cost: {
|
|
2419
|
+
input_per_million: 0.3,
|
|
2420
|
+
output_per_million: 2.5,
|
|
2421
|
+
cached_input_per_million: 0.03,
|
|
2422
|
+
},
|
|
2423
|
+
features: {
|
|
2424
|
+
context_length: 1048576,
|
|
2425
|
+
input_modality: ['text', 'image', 'video', 'audio'],
|
|
2426
|
+
output_modality: ['text'],
|
|
2427
|
+
tool_use: true,
|
|
2428
|
+
streaming: true,
|
|
2429
|
+
json_output: true,
|
|
2430
|
+
max_output_tokens: 65536,
|
|
2431
|
+
},
|
|
2432
|
+
class: 'reasoning_mini',
|
|
2433
|
+
description: 'Gemini 3.5 Flash-Lite - stable low-latency multimodal model for high-throughput subagents, document parsing, extraction, and structured data tasks.',
|
|
2434
|
+
},
|
|
2393
2435
|
{
|
|
2394
2436
|
id: 'gemini-3.1-flash-lite',
|
|
2395
2437
|
aliases: ['gemini-3.1-flash-lite-preview'],
|
|
@@ -3923,6 +3965,143 @@ exports.MODEL_REGISTRY = [
|
|
|
3923
3965
|
class: 'code',
|
|
3924
3966
|
description: 'MoonshotAI Kimi K2.7 Code via OpenRouter. Coding-focused long-context model for software engineering and agentic coding workflows.',
|
|
3925
3967
|
},
|
|
3968
|
+
{
|
|
3969
|
+
id: 'moonshotai/kimi-k3',
|
|
3970
|
+
aliases: ['Kimi K3', 'kimi-k3'],
|
|
3971
|
+
provider: 'openrouter',
|
|
3972
|
+
openrouter_id: 'moonshotai/kimi-k3',
|
|
3973
|
+
cost: {
|
|
3974
|
+
input_per_million: 3.0,
|
|
3975
|
+
cached_input_per_million: 0.3,
|
|
3976
|
+
output_per_million: 15.0,
|
|
3977
|
+
},
|
|
3978
|
+
features: {
|
|
3979
|
+
context_length: 1_048_576,
|
|
3980
|
+
input_modality: ['text', 'image'],
|
|
3981
|
+
output_modality: ['text'],
|
|
3982
|
+
tool_use: true,
|
|
3983
|
+
streaming: true,
|
|
3984
|
+
json_output: true,
|
|
3985
|
+
structured_output: true,
|
|
3986
|
+
reasoning_output: true,
|
|
3987
|
+
},
|
|
3988
|
+
class: 'reasoning',
|
|
3989
|
+
description: 'MoonshotAI Kimi K3 via OpenRouter. Open-weight multimodal model for complex coding, knowledge work, and long-horizon agentic workflows with 1M context.',
|
|
3990
|
+
},
|
|
3991
|
+
{
|
|
3992
|
+
id: 'meituan/longcat-2.0',
|
|
3993
|
+
aliases: ['LongCat 2.0', 'LongCat-2.0', 'longcat-2.0', 'longcat-2'],
|
|
3994
|
+
provider: 'openrouter',
|
|
3995
|
+
openrouter_id: 'meituan/longcat-2.0',
|
|
3996
|
+
cost: {
|
|
3997
|
+
input_per_million: 0.3,
|
|
3998
|
+
cached_input_per_million: 0.006,
|
|
3999
|
+
output_per_million: 1.2,
|
|
4000
|
+
},
|
|
4001
|
+
features: {
|
|
4002
|
+
context_length: 1_048_576,
|
|
4003
|
+
input_modality: ['text'],
|
|
4004
|
+
output_modality: ['text'],
|
|
4005
|
+
tool_use: true,
|
|
4006
|
+
streaming: true,
|
|
4007
|
+
json_output: false,
|
|
4008
|
+
max_output_tokens: 262144,
|
|
4009
|
+
reasoning_output: true,
|
|
4010
|
+
},
|
|
4011
|
+
class: 'reasoning',
|
|
4012
|
+
description: 'Meituan LongCat 2.0 via OpenRouter. Sparse MoE model for repository-level coding, long-horizon problem solving, and agentic workflows with 1M context.',
|
|
4013
|
+
},
|
|
4014
|
+
{
|
|
4015
|
+
id: 'thinkingmachines/inkling',
|
|
4016
|
+
aliases: ['Inkling', 'inkling'],
|
|
4017
|
+
provider: 'openrouter',
|
|
4018
|
+
openrouter_id: 'thinkingmachines/inkling',
|
|
4019
|
+
cost: {
|
|
4020
|
+
input_per_million: 1.0,
|
|
4021
|
+
cached_input_per_million: 0.17,
|
|
4022
|
+
output_per_million: 4.05,
|
|
4023
|
+
},
|
|
4024
|
+
features: {
|
|
4025
|
+
context_length: 1_048_576,
|
|
4026
|
+
input_modality: ['text', 'image', 'audio'],
|
|
4027
|
+
output_modality: ['text'],
|
|
4028
|
+
tool_use: true,
|
|
4029
|
+
streaming: true,
|
|
4030
|
+
json_output: false,
|
|
4031
|
+
reasoning_output: true,
|
|
4032
|
+
},
|
|
4033
|
+
class: 'reasoning',
|
|
4034
|
+
description: 'Thinking Machines Inkling via OpenRouter. Open-weight multimodal model for general reasoning, coding, tool use, and agentic applications with 1M context.',
|
|
4035
|
+
},
|
|
4036
|
+
{
|
|
4037
|
+
id: 'meta/muse-spark-1.1',
|
|
4038
|
+
aliases: ['Muse Spark 1.1', 'Muse-Spark-1.1', 'muse-spark-1.1'],
|
|
4039
|
+
provider: 'openrouter',
|
|
4040
|
+
openrouter_id: 'meta/muse-spark-1.1',
|
|
4041
|
+
cost: {
|
|
4042
|
+
input_per_million: 1.25,
|
|
4043
|
+
cached_input_per_million: 0.15,
|
|
4044
|
+
output_per_million: 4.25,
|
|
4045
|
+
},
|
|
4046
|
+
features: {
|
|
4047
|
+
context_length: 1_048_576,
|
|
4048
|
+
input_modality: ['text', 'image', 'audio', 'video'],
|
|
4049
|
+
output_modality: ['text'],
|
|
4050
|
+
tool_use: true,
|
|
4051
|
+
streaming: true,
|
|
4052
|
+
json_output: true,
|
|
4053
|
+
structured_output: true,
|
|
4054
|
+
reasoning_output: true,
|
|
4055
|
+
},
|
|
4056
|
+
class: 'reasoning',
|
|
4057
|
+
description: 'Meta Muse Spark 1.1 via OpenRouter. Multimodal reasoning model for agentic workflows, coding, tool use, and visual-to-code generation with 1M context.',
|
|
4058
|
+
},
|
|
4059
|
+
{
|
|
4060
|
+
id: 'kwaipilot/kat-coder-pro-v2.5',
|
|
4061
|
+
aliases: ['KAT-Coder-Pro V2.5', 'KAT-Coder-Pro-V2.5', 'kat-coder-pro-v2.5', 'kat-coder-pro-v2-5'],
|
|
4062
|
+
provider: 'openrouter',
|
|
4063
|
+
openrouter_id: 'kwaipilot/kat-coder-pro-v2.5',
|
|
4064
|
+
cost: {
|
|
4065
|
+
input_per_million: 0.74,
|
|
4066
|
+
cached_input_per_million: 0.15,
|
|
4067
|
+
output_per_million: 2.96,
|
|
4068
|
+
},
|
|
4069
|
+
features: {
|
|
4070
|
+
context_length: 256000,
|
|
4071
|
+
input_modality: ['text'],
|
|
4072
|
+
output_modality: ['text'],
|
|
4073
|
+
tool_use: true,
|
|
4074
|
+
streaming: true,
|
|
4075
|
+
json_output: true,
|
|
4076
|
+
structured_output: true,
|
|
4077
|
+
max_output_tokens: 80000,
|
|
4078
|
+
},
|
|
4079
|
+
class: 'code',
|
|
4080
|
+
description: 'Kwaipilot KAT-Coder Pro V2.5 via OpenRouter. Agentic coding model for autonomous repository-level software engineering and tool-driven workflows.',
|
|
4081
|
+
},
|
|
4082
|
+
{
|
|
4083
|
+
id: 'kwaipilot/kat-coder-air-v2.5',
|
|
4084
|
+
aliases: ['KAT-Coder-Air V2.5', 'KAT-Coder-Air-V2.5', 'kat-coder-air-v2.5', 'kat-coder-air-v2-5'],
|
|
4085
|
+
provider: 'openrouter',
|
|
4086
|
+
openrouter_id: 'kwaipilot/kat-coder-air-v2.5',
|
|
4087
|
+
cost: {
|
|
4088
|
+
input_per_million: 0.15,
|
|
4089
|
+
cached_input_per_million: 0.03,
|
|
4090
|
+
output_per_million: 0.6,
|
|
4091
|
+
},
|
|
4092
|
+
features: {
|
|
4093
|
+
context_length: 256000,
|
|
4094
|
+
input_modality: ['text'],
|
|
4095
|
+
output_modality: ['text'],
|
|
4096
|
+
tool_use: true,
|
|
4097
|
+
streaming: true,
|
|
4098
|
+
json_output: true,
|
|
4099
|
+
structured_output: true,
|
|
4100
|
+
max_output_tokens: 80000,
|
|
4101
|
+
},
|
|
4102
|
+
class: 'code',
|
|
4103
|
+
description: 'Kwaipilot KAT-Coder Air V2.5 via OpenRouter. Cost-efficient agentic coding model for autonomous repository changes and tool-driven workflows.',
|
|
4104
|
+
},
|
|
3926
4105
|
];
|
|
3927
4106
|
function findModel(modelId) {
|
|
3928
4107
|
const externalModel = (0, external_models_js_1.getExternalModel)(modelId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model_data.d.ts","sourceRoot":"","sources":["../../../data/model_data.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACb,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,GACb,CAAC;AAOF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0MzB,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"model_data.d.ts","sourceRoot":"","sources":["../../../data/model_data.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACb,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,GACb,CAAC;AAOF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0MzB,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,UAAU,EA4nItC,CAAC;AAQF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAuBjE"}
|