@stll/ai-catalog 0.7.0 → 0.8.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 +5 -5
- package/dist/benchmark-frontier.d.ts +1 -1
- package/dist/benchmarks.d.ts +5 -1
- package/dist/benchmarks.js +5 -1
- package/dist/{index-BBA5F7Uz.d.ts → index-Bo8Lm9sX.d.ts} +1474 -185
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -2
- package/dist/model-defaults-ledger.d.ts +2 -0
- package/dist/model-defaults-ledger.js +450 -0
- package/dist/{src-DpNCcFaY.js → src-B99ljB46.js} +100 -216
- package/package.json +7 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MODEL_DEFAULTS_LEDGER, MODEL_TASK_OVERRIDE_GROUP, resolveDefaultModel } from "./model-defaults-ledger.js";
|
|
1
2
|
import * as v from "valibot";
|
|
2
3
|
//#region src/capabilities.gen.ts
|
|
3
4
|
/**
|
|
@@ -6,6 +7,7 @@ import * as v from "valibot";
|
|
|
6
7
|
*/
|
|
7
8
|
const MODEL_DOCUMENT_INPUT_OPTIONS = {
|
|
8
9
|
google: [
|
|
10
|
+
"gemini-4-argon",
|
|
9
11
|
"gemini-3.8-flash",
|
|
10
12
|
"gemini-3.7-flash",
|
|
11
13
|
"gemini-3.6-flash",
|
|
@@ -22,6 +24,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
|
|
|
22
24
|
"openai/gpt-5.6-sol",
|
|
23
25
|
"openai/gpt-5.6-terra",
|
|
24
26
|
"openai/gpt-5.6-luna",
|
|
27
|
+
"google/gemini-4-argon",
|
|
25
28
|
"google/gemini-3.8-flash",
|
|
26
29
|
"google/gemini-3.7-flash",
|
|
27
30
|
"google/gemini-3.6-flash",
|
|
@@ -78,6 +81,7 @@ const MODEL_DOCUMENT_INPUT_OPTIONS = {
|
|
|
78
81
|
/** Every offered provider/model pair has explicit image-input evidence. */
|
|
79
82
|
const MODEL_IMAGE_INPUT_CAPABILITIES = {
|
|
80
83
|
google: {
|
|
84
|
+
"gemini-4-argon": "supported",
|
|
81
85
|
"gemini-3.8-flash": "supported",
|
|
82
86
|
"gemini-3.7-flash": "supported",
|
|
83
87
|
"gemini-3.6-flash": "supported",
|
|
@@ -94,6 +98,7 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
|
|
|
94
98
|
"openai/gpt-5.6-sol": "supported",
|
|
95
99
|
"openai/gpt-5.6-terra": "supported",
|
|
96
100
|
"openai/gpt-5.6-luna": "supported",
|
|
101
|
+
"google/gemini-4-argon": "supported",
|
|
97
102
|
"google/gemini-3.8-flash": "supported",
|
|
98
103
|
"google/gemini-3.7-flash": "supported",
|
|
99
104
|
"google/gemini-3.6-flash": "supported",
|
|
@@ -162,6 +167,11 @@ const MODEL_IMAGE_INPUT_CAPABILITIES = {
|
|
|
162
167
|
* through `resolveReasoningEffort`.
|
|
163
168
|
*/
|
|
164
169
|
const MODEL_REASONING_EFFORTS = {
|
|
170
|
+
"gemini-4-argon": [
|
|
171
|
+
"low",
|
|
172
|
+
"medium",
|
|
173
|
+
"high"
|
|
174
|
+
],
|
|
165
175
|
"gemini-3.8-flash": [
|
|
166
176
|
"low",
|
|
167
177
|
"medium",
|
|
@@ -255,6 +265,11 @@ const MODEL_REASONING_EFFORTS = {
|
|
|
255
265
|
"xhigh",
|
|
256
266
|
"max"
|
|
257
267
|
],
|
|
268
|
+
"google/gemini-4-argon": [
|
|
269
|
+
"low",
|
|
270
|
+
"medium",
|
|
271
|
+
"high"
|
|
272
|
+
],
|
|
258
273
|
"google/gemini-3.8-flash": [
|
|
259
274
|
"low",
|
|
260
275
|
"medium",
|
|
@@ -556,6 +571,7 @@ const MODEL_REASONING_EFFORTS = {
|
|
|
556
571
|
* a truthful named default, so clients must retain a separate Default choice.
|
|
557
572
|
*/
|
|
558
573
|
const MODEL_DEFAULT_REASONING_EFFORTS = {
|
|
574
|
+
"gemini-4-argon": null,
|
|
559
575
|
"gemini-3.8-flash": null,
|
|
560
576
|
"gemini-3.7-flash": null,
|
|
561
577
|
"gemini-3.6-flash": null,
|
|
@@ -570,6 +586,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
|
|
|
570
586
|
"openai/gpt-5.6-sol": "medium",
|
|
571
587
|
"openai/gpt-5.6-terra": "medium",
|
|
572
588
|
"openai/gpt-5.6-luna": "medium",
|
|
589
|
+
"google/gemini-4-argon": "medium",
|
|
573
590
|
"google/gemini-3.8-flash": "medium",
|
|
574
591
|
"google/gemini-3.7-flash": "medium",
|
|
575
592
|
"google/gemini-3.6-flash": "medium",
|
|
@@ -628,6 +645,7 @@ const MODEL_DEFAULT_REASONING_EFFORTS = {
|
|
|
628
645
|
* parameters. Consumers must go through `shouldEmitTemperature`.
|
|
629
646
|
*/
|
|
630
647
|
const MODEL_TEMPERATURE_POLICIES = {
|
|
648
|
+
"gemini-4-argon": "omit",
|
|
631
649
|
"gemini-3.8-flash": "omit",
|
|
632
650
|
"gemini-3.7-flash": "omit",
|
|
633
651
|
"gemini-3.6-flash": "omit",
|
|
@@ -642,6 +660,7 @@ const MODEL_TEMPERATURE_POLICIES = {
|
|
|
642
660
|
"openai/gpt-5.6-sol": "omit",
|
|
643
661
|
"openai/gpt-5.6-terra": "omit",
|
|
644
662
|
"openai/gpt-5.6-luna": "omit",
|
|
663
|
+
"google/gemini-4-argon": "omit",
|
|
645
664
|
"google/gemini-3.8-flash": "omit",
|
|
646
665
|
"google/gemini-3.7-flash": "omit",
|
|
647
666
|
"google/gemini-3.6-flash": "omit",
|
|
@@ -700,6 +719,7 @@ const MODEL_TEMPERATURE_POLICIES = {
|
|
|
700
719
|
* `getOutputTokenLimit`.
|
|
701
720
|
*/
|
|
702
721
|
const MODEL_OUTPUT_TOKEN_LIMITS = {
|
|
722
|
+
"gemini-4-argon": 32768,
|
|
703
723
|
"gemini-3.8-flash": 65536,
|
|
704
724
|
"gemini-3.7-flash": 65536,
|
|
705
725
|
"gemini-3.6-flash": 65536,
|
|
@@ -714,6 +734,7 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
|
|
|
714
734
|
"openai/gpt-5.6-sol": 128e3,
|
|
715
735
|
"openai/gpt-5.6-terra": 128e3,
|
|
716
736
|
"openai/gpt-5.6-luna": 128e3,
|
|
737
|
+
"google/gemini-4-argon": 65536,
|
|
717
738
|
"google/gemini-3.8-flash": 65536,
|
|
718
739
|
"google/gemini-3.7-flash": 65536,
|
|
719
740
|
"google/gemini-3.6-flash": 65536,
|
|
@@ -769,6 +790,12 @@ const MODEL_OUTPUT_TOKEN_LIMITS = {
|
|
|
769
790
|
//#endregion
|
|
770
791
|
//#region src/model-rates.gen.ts
|
|
771
792
|
const MODEL_RATES = {
|
|
793
|
+
"gemini-4-argon": {
|
|
794
|
+
kind: "flat",
|
|
795
|
+
inputPerMTok: 2e5,
|
|
796
|
+
outputPerMTok: 1e6,
|
|
797
|
+
cachedInputPerMTok: 1e4
|
|
798
|
+
},
|
|
772
799
|
"gemini-3.8-flash": {
|
|
773
800
|
kind: "flat",
|
|
774
801
|
inputPerMTok: 75e3,
|
|
@@ -1204,6 +1231,18 @@ const REASONING_REPLAY_FORMATS = [
|
|
|
1204
1231
|
"none"
|
|
1205
1232
|
];
|
|
1206
1233
|
const MODEL_REASONING_CAPABILITIES = {
|
|
1234
|
+
"gemini-4-argon": {
|
|
1235
|
+
support: "supported",
|
|
1236
|
+
emittedFormats: ["google-thought-signature"],
|
|
1237
|
+
openAIIncludeEncryptedContent: false,
|
|
1238
|
+
openAIStore: null,
|
|
1239
|
+
anthropicThinking: "none",
|
|
1240
|
+
replayCompatibility: [{
|
|
1241
|
+
provider: "google",
|
|
1242
|
+
model: "gemini-4-argon",
|
|
1243
|
+
format: "google-thought-signature"
|
|
1244
|
+
}]
|
|
1245
|
+
},
|
|
1207
1246
|
"gemini-3.8-flash": {
|
|
1208
1247
|
support: "supported",
|
|
1209
1248
|
emittedFormats: ["google-thought-signature"],
|
|
@@ -1344,6 +1383,14 @@ const MODEL_REASONING_CAPABILITIES = {
|
|
|
1344
1383
|
anthropicThinking: "none",
|
|
1345
1384
|
replayCompatibility: []
|
|
1346
1385
|
},
|
|
1386
|
+
"google/gemini-4-argon": {
|
|
1387
|
+
support: "supported",
|
|
1388
|
+
emittedFormats: ["none"],
|
|
1389
|
+
openAIIncludeEncryptedContent: false,
|
|
1390
|
+
openAIStore: null,
|
|
1391
|
+
anthropicThinking: "none",
|
|
1392
|
+
replayCompatibility: []
|
|
1393
|
+
},
|
|
1347
1394
|
"google/gemini-3.8-flash": {
|
|
1348
1395
|
support: "supported",
|
|
1349
1396
|
emittedFormats: ["none"],
|
|
@@ -2015,21 +2062,6 @@ const DOCUMENT_INPUT_OVERRIDES = {
|
|
|
2015
2062
|
* ID here against live provider/aggregator listings so a retired model
|
|
2016
2063
|
* fails CI instead of 400-ing a user at runtime.
|
|
2017
2064
|
*/
|
|
2018
|
-
/**
|
|
2019
|
-
* Logical model roles. Call sites declare *what* they need, not
|
|
2020
|
-
* *which* model to use.
|
|
2021
|
-
*
|
|
2022
|
-
* - fast: classification, extraction, short generation
|
|
2023
|
-
* - chat: conversational with tool use and streaming
|
|
2024
|
-
* - reasoning: complex multi-step legal analysis
|
|
2025
|
-
* - pdf: native PDF/image understanding
|
|
2026
|
-
*/
|
|
2027
|
-
const MODEL_ROLES = [
|
|
2028
|
-
"fast",
|
|
2029
|
-
"chat",
|
|
2030
|
-
"reasoning",
|
|
2031
|
-
"pdf"
|
|
2032
|
-
];
|
|
2033
2065
|
const TEMPERATURE_POLICIES = ["emit", "omit"];
|
|
2034
2066
|
const IMAGE_INPUT_CAPABILITIES = [
|
|
2035
2067
|
"supported",
|
|
@@ -2127,176 +2159,48 @@ const GPT_56_MODEL_IDS = {
|
|
|
2127
2159
|
};
|
|
2128
2160
|
const GPT_56_OPENAI_MODEL_IDS = Object.values(GPT_56_MODEL_IDS).map(({ openai }) => openai);
|
|
2129
2161
|
const GPT_56_OPENROUTER_MODEL_IDS = Object.values(GPT_56_MODEL_IDS).map(({ openrouter }) => openrouter);
|
|
2162
|
+
const defaultPresentation = (entry) => ({
|
|
2163
|
+
kind: "default",
|
|
2164
|
+
modelId: entry.candidate.modelId,
|
|
2165
|
+
rationaleKey: entry.rationale.rationaleKey
|
|
2166
|
+
});
|
|
2167
|
+
/** Default labels in the override editor derive from the task ledger. */
|
|
2130
2168
|
const BYOK_DEFAULT_MODELS = {
|
|
2131
2169
|
google: {
|
|
2132
|
-
fast:
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
},
|
|
2137
|
-
chat: {
|
|
2138
|
-
kind: "default",
|
|
2139
|
-
modelId: "gemini-3.8-flash",
|
|
2140
|
-
rationaleKey: "organization.aiConfig.defaultRationale.chat"
|
|
2141
|
-
},
|
|
2142
|
-
reasoning: {
|
|
2143
|
-
kind: "default",
|
|
2144
|
-
modelId: "gemini-3.8-flash",
|
|
2145
|
-
rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
|
|
2146
|
-
},
|
|
2147
|
-
pdf: {
|
|
2148
|
-
kind: "default",
|
|
2149
|
-
modelId: "gemini-3.8-flash",
|
|
2150
|
-
rationaleKey: "organization.aiConfig.defaultRationale.pdf"
|
|
2151
|
-
}
|
|
2170
|
+
fast: defaultPresentation(MODEL_DEFAULTS_LEDGER["short-text"].google),
|
|
2171
|
+
chat: defaultPresentation(MODEL_DEFAULTS_LEDGER.chat.google),
|
|
2172
|
+
reasoning: defaultPresentation(MODEL_DEFAULTS_LEDGER.reasoning.google),
|
|
2173
|
+
pdf: defaultPresentation(MODEL_DEFAULTS_LEDGER.pdf.google)
|
|
2152
2174
|
},
|
|
2153
2175
|
openrouter: {
|
|
2154
|
-
fast:
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
},
|
|
2159
|
-
chat: {
|
|
2160
|
-
kind: "default",
|
|
2161
|
-
modelId: GPT_6_MODEL_IDS.sol.openrouter,
|
|
2162
|
-
rationaleKey: "organization.aiConfig.defaultRationale.chat"
|
|
2163
|
-
},
|
|
2164
|
-
reasoning: {
|
|
2165
|
-
kind: "default",
|
|
2166
|
-
modelId: GPT_6_MODEL_IDS.sol.openrouter,
|
|
2167
|
-
rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
|
|
2168
|
-
},
|
|
2169
|
-
pdf: {
|
|
2170
|
-
kind: "default",
|
|
2171
|
-
modelId: GPT_6_MODEL_IDS.sol.openrouter,
|
|
2172
|
-
rationaleKey: "organization.aiConfig.defaultRationale.pdf"
|
|
2173
|
-
}
|
|
2176
|
+
fast: defaultPresentation(MODEL_DEFAULTS_LEDGER["short-text"].openrouter),
|
|
2177
|
+
chat: defaultPresentation(MODEL_DEFAULTS_LEDGER.chat.openrouter),
|
|
2178
|
+
reasoning: defaultPresentation(MODEL_DEFAULTS_LEDGER.reasoning.openrouter),
|
|
2179
|
+
pdf: defaultPresentation(MODEL_DEFAULTS_LEDGER.pdf.openrouter)
|
|
2174
2180
|
},
|
|
2175
2181
|
openai: {
|
|
2176
|
-
fast:
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
},
|
|
2181
|
-
chat: {
|
|
2182
|
-
kind: "default",
|
|
2183
|
-
modelId: GPT_6_MODEL_IDS.sol.openai,
|
|
2184
|
-
rationaleKey: "organization.aiConfig.defaultRationale.chat"
|
|
2185
|
-
},
|
|
2186
|
-
reasoning: {
|
|
2187
|
-
kind: "default",
|
|
2188
|
-
modelId: GPT_6_MODEL_IDS.sol.openai,
|
|
2189
|
-
rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
|
|
2190
|
-
},
|
|
2191
|
-
pdf: {
|
|
2192
|
-
kind: "default",
|
|
2193
|
-
modelId: GPT_6_MODEL_IDS.sol.openai,
|
|
2194
|
-
rationaleKey: "organization.aiConfig.defaultRationale.pdf"
|
|
2195
|
-
}
|
|
2182
|
+
fast: defaultPresentation(MODEL_DEFAULTS_LEDGER["short-text"].openai),
|
|
2183
|
+
chat: defaultPresentation(MODEL_DEFAULTS_LEDGER.chat.openai),
|
|
2184
|
+
reasoning: defaultPresentation(MODEL_DEFAULTS_LEDGER.reasoning.openai),
|
|
2185
|
+
pdf: defaultPresentation(MODEL_DEFAULTS_LEDGER.pdf.openai)
|
|
2196
2186
|
},
|
|
2197
2187
|
anthropic: {
|
|
2198
|
-
fast:
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
},
|
|
2203
|
-
chat: {
|
|
2204
|
-
kind: "default",
|
|
2205
|
-
modelId: "claude-opus-5-5",
|
|
2206
|
-
rationaleKey: "organization.aiConfig.defaultRationale.chat"
|
|
2207
|
-
},
|
|
2208
|
-
reasoning: {
|
|
2209
|
-
kind: "default",
|
|
2210
|
-
modelId: "claude-opus-5-5",
|
|
2211
|
-
rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
|
|
2212
|
-
},
|
|
2213
|
-
pdf: {
|
|
2214
|
-
kind: "default",
|
|
2215
|
-
modelId: "claude-opus-5-5",
|
|
2216
|
-
rationaleKey: "organization.aiConfig.defaultRationale.pdf"
|
|
2217
|
-
}
|
|
2188
|
+
fast: defaultPresentation(MODEL_DEFAULTS_LEDGER["short-text"].anthropic),
|
|
2189
|
+
chat: defaultPresentation(MODEL_DEFAULTS_LEDGER.chat.anthropic),
|
|
2190
|
+
reasoning: defaultPresentation(MODEL_DEFAULTS_LEDGER.reasoning.anthropic),
|
|
2191
|
+
pdf: defaultPresentation(MODEL_DEFAULTS_LEDGER.pdf.anthropic)
|
|
2218
2192
|
},
|
|
2219
2193
|
bedrock: {
|
|
2220
|
-
fast:
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
},
|
|
2225
|
-
chat: {
|
|
2226
|
-
kind: "default",
|
|
2227
|
-
modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
2228
|
-
rationaleKey: "organization.aiConfig.defaultRationale.chat"
|
|
2229
|
-
},
|
|
2230
|
-
reasoning: {
|
|
2231
|
-
kind: "default",
|
|
2232
|
-
modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
2233
|
-
rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
|
|
2234
|
-
},
|
|
2235
|
-
pdf: {
|
|
2236
|
-
kind: "default",
|
|
2237
|
-
modelId: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
2238
|
-
rationaleKey: "organization.aiConfig.defaultRationale.pdf"
|
|
2239
|
-
}
|
|
2194
|
+
fast: defaultPresentation(MODEL_DEFAULTS_LEDGER["short-text"].bedrock),
|
|
2195
|
+
chat: defaultPresentation(MODEL_DEFAULTS_LEDGER.chat.bedrock),
|
|
2196
|
+
reasoning: defaultPresentation(MODEL_DEFAULTS_LEDGER.reasoning.bedrock),
|
|
2197
|
+
pdf: defaultPresentation(MODEL_DEFAULTS_LEDGER.pdf.bedrock)
|
|
2240
2198
|
},
|
|
2241
2199
|
mistral: {
|
|
2242
|
-
fast:
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
},
|
|
2247
|
-
chat: {
|
|
2248
|
-
kind: "default",
|
|
2249
|
-
modelId: "mistral-medium-latest",
|
|
2250
|
-
rationaleKey: "organization.aiConfig.defaultRationale.chat"
|
|
2251
|
-
},
|
|
2252
|
-
reasoning: {
|
|
2253
|
-
kind: "default",
|
|
2254
|
-
modelId: "mistral-medium-latest",
|
|
2255
|
-
rationaleKey: "organization.aiConfig.defaultRationale.reasoning"
|
|
2256
|
-
},
|
|
2257
|
-
pdf: { kind: "unsupported" }
|
|
2258
|
-
}
|
|
2259
|
-
};
|
|
2260
|
-
const defaultModelIds = (defaults) => ({
|
|
2261
|
-
fast: defaults.fast.modelId,
|
|
2262
|
-
chat: defaults.chat.modelId,
|
|
2263
|
-
reasoning: defaults.reasoning.modelId,
|
|
2264
|
-
pdf: defaults.pdf.modelId
|
|
2265
|
-
});
|
|
2266
|
-
/**
|
|
2267
|
-
* Instance-level default model IDs per provider. Extends the BYOK
|
|
2268
|
-
* defaults with the providers that only the instance path uses
|
|
2269
|
-
* (custom deployments and OpenAI-compatible endpoints).
|
|
2270
|
-
*/
|
|
2271
|
-
const DEFAULT_MODELS = {
|
|
2272
|
-
google: defaultModelIds(BYOK_DEFAULT_MODELS.google),
|
|
2273
|
-
openrouter: defaultModelIds(BYOK_DEFAULT_MODELS.openrouter),
|
|
2274
|
-
openai: defaultModelIds(BYOK_DEFAULT_MODELS.openai),
|
|
2275
|
-
anthropic: defaultModelIds(BYOK_DEFAULT_MODELS.anthropic),
|
|
2276
|
-
bedrock: defaultModelIds(BYOK_DEFAULT_MODELS.bedrock),
|
|
2277
|
-
mistral: {
|
|
2278
|
-
fast: BYOK_DEFAULT_MODELS.mistral.fast.modelId,
|
|
2279
|
-
chat: BYOK_DEFAULT_MODELS.mistral.chat.modelId,
|
|
2280
|
-
reasoning: BYOK_DEFAULT_MODELS.mistral.reasoning.modelId,
|
|
2281
|
-
pdf: null
|
|
2282
|
-
},
|
|
2283
|
-
azure_foundry: {
|
|
2284
|
-
fast: GPT_56_MODEL_IDS.luna.openai,
|
|
2285
|
-
chat: GPT_56_MODEL_IDS.terra.openai,
|
|
2286
|
-
reasoning: GPT_56_MODEL_IDS.terra.openai,
|
|
2287
|
-
pdf: GPT_56_MODEL_IDS.terra.openai
|
|
2288
|
-
},
|
|
2289
|
-
openai_compatible: {
|
|
2290
|
-
fast: "default",
|
|
2291
|
-
chat: "default",
|
|
2292
|
-
reasoning: "default",
|
|
2293
|
-
pdf: "default"
|
|
2294
|
-
},
|
|
2295
|
-
huggingface: {
|
|
2296
|
-
fast: "speakleash/Bielik-1.5B-v3.0-Instruct",
|
|
2297
|
-
chat: "speakleash/Bielik-11B-v2.3-Instruct",
|
|
2298
|
-
reasoning: "speakleash/Bielik-11B-v2.3-Instruct",
|
|
2299
|
-
pdf: "speakleash/Bielik-11B-v2.3-Instruct"
|
|
2200
|
+
fast: defaultPresentation(MODEL_DEFAULTS_LEDGER["short-text"].mistral),
|
|
2201
|
+
chat: defaultPresentation(MODEL_DEFAULTS_LEDGER.chat.mistral),
|
|
2202
|
+
reasoning: defaultPresentation(MODEL_DEFAULTS_LEDGER.reasoning.mistral),
|
|
2203
|
+
pdf: { kind: MODEL_DEFAULTS_LEDGER.pdf.mistral.kind }
|
|
2300
2204
|
}
|
|
2301
2205
|
};
|
|
2302
2206
|
/**
|
|
@@ -2311,6 +2215,7 @@ const DEFAULT_MODELS = {
|
|
|
2311
2215
|
*/
|
|
2312
2216
|
const BYOK_MODEL_OPTIONS = {
|
|
2313
2217
|
google: [
|
|
2218
|
+
"gemini-4-argon",
|
|
2314
2219
|
"gemini-3.8-flash",
|
|
2315
2220
|
"gemini-3.7-flash",
|
|
2316
2221
|
"gemini-3.6-flash",
|
|
@@ -2347,6 +2252,7 @@ const BYOK_MODEL_OPTIONS = {
|
|
|
2347
2252
|
...GPT_61_OPENROUTER_MODEL_IDS,
|
|
2348
2253
|
...GPT_6_OPENROUTER_MODEL_IDS,
|
|
2349
2254
|
...GPT_56_OPENROUTER_MODEL_IDS,
|
|
2255
|
+
"google/gemini-4-argon",
|
|
2350
2256
|
"google/gemini-3.8-flash",
|
|
2351
2257
|
"google/gemini-3.7-flash",
|
|
2352
2258
|
"google/gemini-3.6-flash",
|
|
@@ -2399,6 +2305,10 @@ const RECOMMENDED_CHAT_MODELS = [
|
|
|
2399
2305
|
* creator's icon while their routing provider remains available separately.
|
|
2400
2306
|
*/
|
|
2401
2307
|
const MODEL_DISPLAY_METADATA = {
|
|
2308
|
+
"gemini-4-argon": {
|
|
2309
|
+
displayName: "Gemini 4 Argon",
|
|
2310
|
+
iconProvider: "google"
|
|
2311
|
+
},
|
|
2402
2312
|
"gemini-3.8-flash": {
|
|
2403
2313
|
displayName: "Gemini 3.8 Flash",
|
|
2404
2314
|
iconProvider: "google"
|
|
@@ -2571,6 +2481,10 @@ const MODEL_DISPLAY_METADATA = {
|
|
|
2571
2481
|
displayName: "GPT-5.6 Terra",
|
|
2572
2482
|
iconProvider: "openai"
|
|
2573
2483
|
},
|
|
2484
|
+
"google/gemini-4-argon": {
|
|
2485
|
+
displayName: "Gemini 4 Argon",
|
|
2486
|
+
iconProvider: "google"
|
|
2487
|
+
},
|
|
2574
2488
|
"google/gemini-3.8-flash": {
|
|
2575
2489
|
displayName: "Gemini 3.8 Flash",
|
|
2576
2490
|
iconProvider: "google"
|
|
@@ -2745,34 +2659,18 @@ const isOfferedBYOKModelForRole = ({ provider, modelId, role }) => {
|
|
|
2745
2659
|
role
|
|
2746
2660
|
});
|
|
2747
2661
|
};
|
|
2748
|
-
/**
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
* it is still offered; otherwise falls back to the provider's per-role
|
|
2752
|
-
* default (`BYOK_DEFAULT_MODELS`). Returns `null` only when the
|
|
2753
|
-
* provider has no valid model for the role at all — the sole case
|
|
2754
|
-
* today is `mistral` + `pdf`, because the TanStack Mistral adapter
|
|
2755
|
-
* exposes no `document` input modality, so no Mistral model (not even
|
|
2756
|
-
* the default) can serve the PDF role.
|
|
2757
|
-
*
|
|
2758
|
-
* Used to auto-heal org AI configs whose pinned model was removed by a
|
|
2759
|
-
* catalog bump, so generation resolves to a supported model instead of
|
|
2760
|
-
* 400-ing (or forwarding a retired id to the provider).
|
|
2761
|
-
*/
|
|
2762
|
-
const resolveWorkingBYOKModelForRole = ({ provider, modelId, role }) => {
|
|
2662
|
+
/** Keep a supported override, otherwise use that provider's task default. */
|
|
2663
|
+
const resolveWorkingBYOKModelForTask = ({ provider, modelId, task }) => {
|
|
2664
|
+
const role = MODEL_TASK_OVERRIDE_GROUP[task];
|
|
2763
2665
|
if (isOfferedBYOKModelForRole({
|
|
2764
2666
|
provider,
|
|
2765
2667
|
modelId,
|
|
2766
2668
|
role
|
|
2767
2669
|
})) return modelId;
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
provider,
|
|
2773
|
-
modelId: fallback,
|
|
2774
|
-
role
|
|
2775
|
-
}) ? fallback : null;
|
|
2670
|
+
return resolveDefaultModel({
|
|
2671
|
+
task,
|
|
2672
|
+
orgProviders: [provider]
|
|
2673
|
+
})?.modelId ?? null;
|
|
2776
2674
|
};
|
|
2777
2675
|
/** Native Anthropic adaptive-thinking models, derived from replay capabilities. */
|
|
2778
2676
|
const ANTHROPIC_ADAPTIVE_THINKING_MODELS = BYOK_MODEL_OPTIONS.anthropic.filter((model) => MODEL_REASONING_CAPABILITIES[model].anthropicThinking === "adaptive");
|
|
@@ -2793,24 +2691,6 @@ const REASONING_EFFORTS = [
|
|
|
2793
2691
|
];
|
|
2794
2692
|
const resolvedReasoningEffortSchema = v.pipe(v.picklist(REASONING_EFFORTS), v.brand("ResolvedReasoningEffort"));
|
|
2795
2693
|
/**
|
|
2796
|
-
* Per-provider model served when a user's included budget is exhausted
|
|
2797
|
-
* and no explicit selection overrides it. Falls back to each
|
|
2798
|
-
* provider's fast-role default; providers without a first-class
|
|
2799
|
-
* adapter path cannot serve the lane. Total over providers so a new
|
|
2800
|
-
* provider lands with an explicit decision.
|
|
2801
|
-
*/
|
|
2802
|
-
const FALLBACK_CHAT_MODEL_BY_PROVIDER = {
|
|
2803
|
-
google: DEFAULT_MODELS.google.fast,
|
|
2804
|
-
openrouter: DEFAULT_MODELS.openrouter.fast,
|
|
2805
|
-
openai: DEFAULT_MODELS.openai.fast,
|
|
2806
|
-
anthropic: DEFAULT_MODELS.anthropic.fast,
|
|
2807
|
-
bedrock: DEFAULT_MODELS.bedrock.fast,
|
|
2808
|
-
mistral: DEFAULT_MODELS.mistral.fast,
|
|
2809
|
-
azure_foundry: null,
|
|
2810
|
-
openai_compatible: null,
|
|
2811
|
-
huggingface: null
|
|
2812
|
-
};
|
|
2813
|
-
/**
|
|
2814
2694
|
* Provider-native IDs that are exact aliases of an offered catalog ID.
|
|
2815
2695
|
* Every metadata lookup normalizes here, so instance/dev overrides cannot
|
|
2816
2696
|
* bypass rates or capabilities and duplicated alias rows cannot drift apart.
|
|
@@ -2859,6 +2739,7 @@ const MODEL_STREAMING_TOOL_USE = {
|
|
|
2859
2739
|
"anthropic/claude-haiku-5.5": "supported",
|
|
2860
2740
|
"us.anthropic.claude-haiku-5-5": "supported",
|
|
2861
2741
|
"claude-haiku-5-5": "supported",
|
|
2742
|
+
"gemini-4-argon": "supported",
|
|
2862
2743
|
"gemini-3.8-flash": "supported",
|
|
2863
2744
|
"gemini-3.7-flash": "supported",
|
|
2864
2745
|
"gemini-3.6-flash": "supported",
|
|
@@ -2873,6 +2754,7 @@ const MODEL_STREAMING_TOOL_USE = {
|
|
|
2873
2754
|
"openai/gpt-5.6-sol": "supported",
|
|
2874
2755
|
"openai/gpt-5.6-terra": "supported",
|
|
2875
2756
|
"openai/gpt-5.6-luna": "supported",
|
|
2757
|
+
"google/gemini-4-argon": "supported",
|
|
2876
2758
|
"google/gemini-3.8-flash": "supported",
|
|
2877
2759
|
"google/gemini-3.7-flash": "supported",
|
|
2878
2760
|
"google/gemini-3.6-flash": "supported",
|
|
@@ -2996,7 +2878,7 @@ const getModelRate = (modelId) => {
|
|
|
2996
2878
|
*
|
|
2997
2879
|
* Keys are the canonical model IDs stella resolves for the provider
|
|
2998
2880
|
* adapters (the same forms used in `MODEL_RATES`, `BYOK_MODEL_OPTIONS`,
|
|
2999
|
-
* and
|
|
2881
|
+
* and the task defaults ledger, including OpenRouter provider-prefixed slugs and
|
|
3000
2882
|
* AWS Bedrock IDs). Values are the providers' publicly documented input
|
|
3001
2883
|
* windows; where a provider offers a larger beta window we intentionally
|
|
3002
2884
|
* take the conservative default (e.g. Claude's standard 200K rather than
|
|
@@ -3020,6 +2902,7 @@ const CONTEXT_WINDOW_TOKENS = {
|
|
|
3020
2902
|
"gemini-3.6-flash": 1048576,
|
|
3021
2903
|
"gemini-3.7-flash": 1048576,
|
|
3022
2904
|
"gemini-3.8-flash": 1048576,
|
|
2905
|
+
"gemini-4-argon": 1048576,
|
|
3023
2906
|
"gemini-3.1-pro-preview": 1048576,
|
|
3024
2907
|
"gpt-4o-mini": 128e3,
|
|
3025
2908
|
"gpt-4o": 128e3,
|
|
@@ -3052,6 +2935,7 @@ const CONTEXT_WINDOW_TOKENS = {
|
|
|
3052
2935
|
"mistral-medium-latest": 128e3,
|
|
3053
2936
|
"mistral-medium-3-5": 128e3,
|
|
3054
2937
|
"magistral-small-latest": 128e3,
|
|
2938
|
+
"google/gemini-4-argon": 1048576,
|
|
3055
2939
|
"google/gemini-3.8-flash": 1048576,
|
|
3056
2940
|
"google/gemini-3.7-flash": 1048576,
|
|
3057
2941
|
"google/gemini-3.6-flash": 1048576,
|
|
@@ -3112,4 +2996,4 @@ const getModelReasoningCapabilities = (modelId) => {
|
|
|
3112
2996
|
return Object.hasOwn(MODEL_REASONING_CAPABILITIES_BY_ID, normalized) ? MODEL_REASONING_CAPABILITIES_BY_ID[normalized] ?? null : null;
|
|
3113
2997
|
};
|
|
3114
2998
|
//#endregion
|
|
3115
|
-
export {
|
|
2999
|
+
export { MODEL_OUTPUT_TOKEN_LIMITS as $, isBYOKModelRoleSupported as A, IMAGE_INPUT_OVERRIDES as B, getModelDefaultReasoningEffort as C, getModelReasoningCapabilities as D, getModelRate as E, resolveWorkingBYOKModelForTask as F, MODEL_RATE_UNITS_PER_USD as G, MODELS_DEV_RATE_PROVIDER_BY_CATALOG_PROVIDER as H, shouldEmitTemperature as I, MODEL_REASONING_CAPABILITIES as J, getStandardModelRate as K, supportsStreamingToolUse as L, isChatPdfAttachmentModelSupported as M, normalizeModelCatalogId as N, getModelReasoningEfforts as O, resolveReasoningEffort as P, MODEL_IMAGE_INPUT_CAPABILITIES as Q, DOCUMENT_INPUT_OVERRIDES as R, getContextWindowTokens as S, getModelImageInputCapability as T, MODELS_DEV_RATE_SOURCE_ALIASES as U, MODELS_DEV_RATE_CORRECTIONS as V, RETAINED_MODELS_DEV_RATE_ENTRIES as W, MODEL_RATES as X, REASONING_REPLAY_FORMATS as Y, MODEL_DEFAULT_REASONING_EFFORTS as Z, REASONING_EFFORTS as _, BYOK_MODEL_OPTIONS as a, TANSTACK_AI_PROVIDERS as b, DECISION_MODEL_CATALOG as c, FIRST_PARTY_MODEL_PROVIDERS as d, MODEL_REASONING_EFFORTS as et, IMAGE_INPUT_CAPABILITIES as f, MODEL_STREAMING_TOOL_USE as g, MODEL_DISPLAY_METADATA as h, BYOK_DOCUMENT_INPUT_MODEL_OPTIONS as i, isBYOKProviderRoleSupported as j, getOutputTokenLimit as k, DECISION_MODEL_PROVIDERS as l, MODEL_CATALOG_PROVIDER_KIND as m, ANTHROPIC_ADAPTIVE_THINKING_MODELS as n, CHAT_PDF_ATTACHMENT_MODEL_OPTIONS as o, MODEL_CATALOG_ID_ALIASES as p, resolveModelRate as q, BYOK_DEFAULT_MODELS as r, CONTEXT_WINDOW_TOKENS as s, AI_PROVIDERS as t, MODEL_TEMPERATURE_POLICIES as tt, DEFAULT_CONTEXT_WINDOW_TOKENS as u, RECOMMENDED_CHAT_MODELS as v, getModelDisplayMetadata as w, TEMPERATURE_POLICIES as x, STREAMING_TOOL_USE_SUPPORTS as y, CAPABILITY_OVERRIDES as z };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stll/ai-catalog",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Provider-neutral AI model roles, capabilities, and curated model metadata.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"./benchmarks": {
|
|
37
37
|
"types": "./dist/benchmarks.d.ts",
|
|
38
38
|
"import": "./dist/benchmarks.js"
|
|
39
|
+
},
|
|
40
|
+
"./model-defaults-ledger": {
|
|
41
|
+
"types": "./dist/model-defaults-ledger.d.ts",
|
|
42
|
+
"import": "./dist/model-defaults-ledger.js"
|
|
39
43
|
}
|
|
40
44
|
},
|
|
41
45
|
"publishConfig": {
|
|
@@ -47,9 +51,11 @@
|
|
|
47
51
|
"gen:benchmarks": "bun ../scripts/src/model-catalog-benchmarks-gen.ts",
|
|
48
52
|
"gen:capabilities": "bun --preload ../../scripts/offline-network-preload.ts ../scripts/src/model-catalog-capabilities-gen.ts",
|
|
49
53
|
"check:generations": "bun --preload ../../scripts/offline-network-preload.ts ../scripts/src/model-catalog-generation-check.ts",
|
|
54
|
+
"check:defaults": "bun ../../scripts/check-model-defaults-ledger.ts",
|
|
50
55
|
"gen:rates": "bun --preload ../../scripts/offline-network-preload.ts ../scripts/src/model-catalog-rates-gen.ts",
|
|
51
56
|
"pack:dry-run": "bun pm pack --dry-run",
|
|
52
57
|
"test": "bun test src",
|
|
58
|
+
"test:defaults": "bun test src/model-defaults-ledger.test.ts",
|
|
53
59
|
"test:property": "bun test --preload @stll/property-testing/preload $(grep -rlE 'fc\\.assert|assertProperty' src --include='*.test.ts')",
|
|
54
60
|
"typecheck": "bun check --no-pretty --all --project=tsconfig.json",
|
|
55
61
|
"lint": "cd ../.. && bun --bun oxlint -c oxlint.config.ts --report-unused-disable-directives-severity=error --type-aware --type-check packages/ai-catalog",
|