Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ Two rules govern this file, and both are load-bearing:
1. **These are weak priors, never task-quality labels.** They inform the `speed` and `reliability` terms only. A model is not "better" because it is fast.
2. **Historical numbers are never presented as a current provider SLA.** Hosts are expected to inject fresher observations (see below); the committed snapshot exists so the engine is safe and useful when a catalog is temporarily unavailable.

The repository ships 66 live profiles (2026-08-29 probe, three samples plus one function-calling request per model) plus 9 auditable historical seeds, and a built-in capability snapshot for the 70 text models on the public catalog.
The repository ships 66 live profiles (2026-08-29 probe, three samples plus one function-calling request per model) plus 9 auditable historical seeds, and a built-in capability snapshot of every text model on the public catalog (2026-10-02 sync). Models added since the last probe carry no profile and are written `supportsTools: false` until probed — they can serve plain chat but never a tool-required turn.

---

Expand Down
2 changes: 1 addition & 1 deletion dist/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ declare const HISTORICAL_MODEL_PROFILES: Readonly<Record<string, ModelPerformanc
* product catalog is temporarily unavailable, without importing product code.
*
* GENERATED by scripts/sync-model-capabilities.mjs from the public catalog
* (GET https://blockrun.ai/api/v1/models) on 2026-08-31; supportsTools comes
* (GET https://blockrun.ai/api/v1/models) on 2026-10-02; supportsTools comes
* from a live function-calling probe (scripts/probe-tools.json). Regenerate
* rather than editing by hand — a hand edit is overwritten on the next sync.
*/
Expand Down
95 changes: 90 additions & 5 deletions dist/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

84 changes: 78 additions & 6 deletions model-capabilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* product catalog is temporarily unavailable, without importing product code.
*
* GENERATED by scripts/sync-model-capabilities.mjs from the public catalog
* (GET https://blockrun.ai/api/v1/models) on 2026-08-31; supportsTools comes
* (GET https://blockrun.ai/api/v1/models) on 2026-10-02; supportsTools comes
* from a live function-calling probe (scripts/probe-tools.json). Regenerate
* rather than editing by hand — a hand edit is overwritten on the next sync.
*/
Expand All @@ -25,6 +25,12 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: true,
},
"anthropic/claude-fable-5.1": { // supportsTools: not probed — fails closed
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"anthropic/claude-haiku-4.5": { // override: The public catalog's `categories` omit "vision" for this Anthropic model even though the gateway accepts image input for it (the prior hand-maintained snapshot had it, and Anthropic's model card lists it). Without this the vision filter would silently drop it — reported against the catalog; remove once the categories carry vision.
contextWindow: 200_000,
maxOutputTokens: 64_000,
Expand Down Expand Up @@ -55,6 +61,12 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: true,
},
"anthropic/claude-opus-5.5": { // supportsTools: not probed — fails closed
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"anthropic/claude-sonnet-4.5": {
contextWindow: 200_000,
maxOutputTokens: 64_000,
Expand All @@ -73,6 +85,12 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: true,
},
"anthropic/claude-sonnet-5.5": { // supportsTools: not probed — fails closed
contextWindow: 1_000_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"cohere/north-mini-code": { // supportsTools: not probed — fails closed
contextWindow: 256_000,
maxOutputTokens: 16_384,
Expand All @@ -91,6 +109,12 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: false,
},
"deepseek/deepseek-v4-flash-vision-exp": { // supportsTools: not probed — fails closed
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
supportsTools: false,
supportsVision: true,
},
"deepseek/deepseek-v4-pro": {
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
Expand Down Expand Up @@ -151,6 +175,12 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: true,
},
"google/gemini-3.8-flash": { // supportsTools: not probed — fails closed
contextWindow: 1_048_576,
maxOutputTokens: 65_536,
supportsTools: false,
supportsVision: true,
},
"minimax/minimax-m2.7": {
contextWindow: 204_800,
maxOutputTokens: 16_384,
Expand Down Expand Up @@ -235,6 +265,12 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: false,
},
"openai/gpt-5.1": { // supportsTools: not probed — fails closed
contextWindow: 400_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"openai/gpt-5.2": {
contextWindow: 400_000,
maxOutputTokens: 128_000,
Expand Down Expand Up @@ -325,6 +361,24 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: true,
},
"openai/gpt-6-astra": { // supportsTools: not probed — fails closed
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"openai/gpt-6-luna": { // supportsTools: not probed — fails closed
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"openai/gpt-6-sol": { // supportsTools: not probed — fails closed
contextWindow: 1_050_000,
maxOutputTokens: 128_000,
supportsTools: false,
supportsVision: true,
},
"openai/o1": {
contextWindow: 200_000,
maxOutputTokens: 100_000,
Expand Down Expand Up @@ -373,11 +427,11 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: false,
},
"tencent/hy3": {
contextWindow: 262_144,
maxOutputTokens: 128_000,
supportsTools: true,
supportsVision: false,
"qwen/qwen3.8-flash": { // supportsTools: not probed — fails closed
contextWindow: 1_000_000,
maxOutputTokens: 131_072,
supportsTools: false,
supportsVision: true,
},
"xai/grok-4.3": {
contextWindow: 1_000_000,
Expand All @@ -391,12 +445,30 @@ export const DEFAULT_MODEL_CAPABILITIES: Readonly<Record<string, ModelCapabiliti
supportsTools: true,
supportsVision: true,
},
"xai/grok-4.6": { // supportsTools: not probed — fails closed
contextWindow: 500_000,
maxOutputTokens: 16_384,
supportsTools: false,
supportsVision: true,
},
"xai/grok-4.7": { // supportsTools: not probed — fails closed
contextWindow: 500_000,
maxOutputTokens: 16_384,
supportsTools: false,
supportsVision: true,
},
"xai/grok-build-0.1": {
contextWindow: 256_000,
maxOutputTokens: 16_384,
supportsTools: true,
supportsVision: false,
},
"xiaomi/mimo-v2.5": { // supportsTools: not probed — fails closed
contextWindow: 1_048_576,
maxOutputTokens: 131_072,
supportsTools: false,
supportsVision: true,
},
"xiaomi/mimo-v2.5-pro": {
contextWindow: 1_048_576,
maxOutputTokens: 131_072,
Expand Down
Loading