anomalyco / anomalyco/models.dev
Catalog audit: attachment flag contradicts modalities.input in 289 flagged entries (279 unique files)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.9k
- Forks
- 1.7k
- Avg merge
- 3h 21m
- Merged PRs (30d)
- 873
Description
While investigating why vision-capable models get image-blocked in
OpenCode (via the models.dev catalog), we scanned the whole catalog for
entries where attachment contradicts modalities.input — the invariant
the sync runners themselves apply ("attachment is derived from non-text
input modalities", see ovhcloud/chutes notes in sync.md).
Result: 289 flagged entries across 7,878 TOML files — 279 unique
underlying files (10 flagged paths are symlink mirrors of an
already-counted file). Largest clusters: helicone 49, poe 43, vercel 25,
alibaba-cn 20, alibaba 19, amazon-bedrock 10, siliconflow-cn 9, azure 9,
zenmux 8.
Two of them (moonshotai/kimi-k2.5, opencode/grok-code) are fixed in a
companion PR referencing this issue — that fix also clears the
moonshotai-cn symlink mirror of kimi-k2.5, leaving 286 flagged rows
(277 unique).
The downstream cost is real and already reported on the consumer side:
OpenCode users hit this data error as "vision model cannot see images"
symptoms (anomalyco/opencode#23427, #22673, #40894, #36020). Single-model
modality reports in this repo (#5712, #479) were accepted and fixed —
this issue is the systematic version of those.
Three semantic questions we'd like maintainer guidance on before
batch-fixing the rest:
- Audio-only models (whisper/voxtral/ASR: input
["audio"]or
["text","audio"]): shouldattachmentfollow the modality-derivation
convention (true), or the "file attachments" semantics (false)? 33
entries (input == ["audio"] or ["text","audio"] among the contradictory
rows; 28 provider + 5 lab). - Gateway providers (amazon-bedrock, azure, io-net, …): does the
transport genuinely reject images (flag intentionally false), or are
these the same omissions as the lab entries? Needs per-provider doc
checks. - Generated entries (vercel, via
packages/core/script/generate-*.ts):
hand edits get overwritten by the generator — fix the generator, the
upstream source, or the entries?
Happy to work through these provider-by-provider in small PRs, per the
"prefer small, provider-specific PRs" guidance — just need the semantics
settled first.
Reproduction
pip3 install tomli
python3 - <<'EOF'
import glob, os, sys
try:
import tomli as toml
except ImportError:
sys.exit("pip3 install tomli first")
files = sorted(set(glob.glob('models/*/*.toml') + glob.glob('providers/*/models/**/*.toml', recursive=True)))
rows, broken, total = [], 0, len(files)
for f in files:
p = os.path.realpath(f)
if not os.path.exists(p):
broken += 1
continue
try:
d = toml.load(open(p, 'rb'))
except Exception as e:
rows.append((f, 'PARSE-ERR', str(e)))
continue
att = d.get('attachment')
if att is None:
continue
mod = d.get('modalities', {}).get('input')
if mod is None:
continue
if att != any(m != 'text' for m in mod):
rows.append((f, att, mod))
from collections import Counter
prov = Counter(r[0].split('/')[1] if r[0].startswith('providers/') else '(lab)' for r in rows)
print(f"**Scope:** {total} TOML files scanned ({broken} unresolvable symlinks excluded), **{len(rows)} contradictions found.**\n")
print("| Provider | Count |\n|---|---|")
for k, v in prov.most_common():
print(f"| {k} | {v} |")
print("\n<details>\n<summary>Full list (289 expected)</summary>\n")
print("| Entry | attachment | modalities.input |\n|---|---|---|")
for f, att, mod in rows:
if att == 'PARSE-ERR':
print(f"| {f} | parse error | {mod} |")
else:
print(f"| {f} | {att} | {mod} |")
print("\n</details>")
EOF
Notes:
- 32 unresolvable symlink paths are skipped.
- Symlink mirrors are counted as separate rows (hence 289 rows vs 279
unique underlying files).
Flagged entries
| Provider | Count |
|---|---|
| helicone | 49 |
| poe | 43 |
| vercel | 25 |
| alibaba-cn | 20 |
| alibaba | 19 |
| (lab) | 17 |
| amazon-bedrock | 10 |
| azure | 9 |
| siliconflow-cn | 9 |
| azure-cognitive-services | 8 |
| zenmux | 8 |
| frogbot | 6 |
| llama | 5 |
| aki-io | 4 |
| io-net | 4 |
| vivgrid | 4 |
| google-vertex | 3 |
| mistral | 3 |
| opencode-go | 3 |
| opencode | 3 |
| scaleway | 3 |
| alibaba-coding-plan-cn | 2 |
| alibaba-coding-plan | 2 |
| evroc | 2 |
| greenpt | 2 |
| groq | 2 |
| llmgateway-providers | 2 |
| lucidquery | 2 |
| meganova | 2 |
| nearai | 2 |
| nvidia | 2 |
| siliconflow | 2 |
| togetherai | 2 |
| xpersona | 2 |
| abacus | 1 |
| gitlab | 1 |
| kimi-for-coding | 1 |
| moonshotai-cn | 1 |
| moonshotai | 1 |
| openai | 1 |
| stepfun-ai | 1 |
| stepfun | 1 |
Full list (289 rows)
| Entry | attachment | modalities.input |
|---|---|---|
| models/alibaba/qwen-omni-turbo.toml | False | ['text', 'image', 'audio', 'video'] |
| models/alibaba/qwen-vl-max.toml | False | ['text', 'image'] |
| models/alibaba/qwen-vl-plus.toml | False | ['text', 'image'] |
| models/alibaba/qwen2-5-vl-72b-instruct.toml | False | ['text', 'image'] |
| models/alibaba/qwen3-vl-plus.toml | False | ['text', 'image'] |
| models/alibaba/qwen3.5-plus.toml | False | ['text', 'image', 'video'] |
| models/deepseek/deepseek-chat.toml | True | ['text'] |
| models/deepseek/deepseek-reasoner.toml | True | ['text'] |
| models/google/gemini-3.5-live-translate-preview.toml | False | ['audio'] |
| models/google/gemini-3.5-transcribe-live.toml | False | ['audio'] |
| models/meta/llama-3.3-70b-instruct.toml | True | ['text'] |
| models/mistral/mistral-small-2506.toml | False | ['text', 'image'] |
| models/openai/gpt-4.toml | True | ['text'] |
| models/openai/gpt-5-codex.toml | False | ['text', 'image'] |
| models/openai/gpt-realtime-whisper.toml | False | ['audio'] |
| models/openai/whisper-large-v3-turbo.toml | False | ['audio'] |
| models/openai/whisper-large-v3.toml | False | ['audio'] |
| providers/abacus/models/kimi-k2.5.toml | False | ['text', 'image', 'video'] |
| providers/aki-io/models/kimi-k2.7-code-1100b.toml | False | ['text', 'image'] |
| providers/aki-io/models/mistral4-119b.toml | False | ['text', 'image'] |
| providers/aki-io/models/qwen3.6-35b.toml | False | ['text', 'image'] |
| providers/aki-io/models/qwen3.8-27b.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/kimi-k2.5.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-cn/models/kimi/kimi-k2.5.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-cn/models/qvq-max.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen-omni-turbo-realtime.toml | False | ['text', 'image', 'audio'] |
| providers/alibaba-cn/models/qwen-omni-turbo.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba-cn/models/qwen-vl-max.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen-vl-ocr.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen-vl-plus.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen2-5-omni-7b.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba-cn/models/qwen2-5-vl-72b-instruct.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen2-5-vl-7b-instruct.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen3-asr-flash.toml | False | ['audio'] |
| providers/alibaba-cn/models/qwen3-omni-flash-realtime.toml | False | ['text', 'image', 'audio'] |
| providers/alibaba-cn/models/qwen3-omni-flash.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba-cn/models/qwen3-vl-235b-a22b.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen3-vl-30b-a3b.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen3-vl-plus.toml | False | ['text', 'image'] |
| providers/alibaba-cn/models/qwen3.5-397b-a17b.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-cn/models/qwen3.5-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-cn/models/qwen3.6-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-coding-plan-cn/models/qwen3.5-plus.toml | False | ['text', 'image'] |
| providers/alibaba-coding-plan-cn/models/qwen3.6-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-coding-plan/models/qwen3.5-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba-coding-plan/models/qwen3.6-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba/models/qvq-max.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen-omni-turbo-realtime.toml | False | ['text', 'image', 'audio'] |
| providers/alibaba/models/qwen-omni-turbo.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba/models/qwen-vl-max.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen-vl-ocr.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen-vl-plus.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen2-5-omni-7b.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba/models/qwen2-5-vl-72b-instruct.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen2-5-vl-7b-instruct.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen3-asr-flash.toml | False | ['audio'] |
| providers/alibaba/models/qwen3-livetranslate-flash-realtime.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba/models/qwen3-omni-flash-realtime.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba/models/qwen3-omni-flash.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/alibaba/models/qwen3-vl-235b-a22b.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen3-vl-30b-a3b.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen3-vl-plus.toml | False | ['text', 'image'] |
| providers/alibaba/models/qwen3.5-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba/models/qwen3.6-plus.toml | False | ['text', 'image', 'video'] |
| providers/alibaba/models/qwen3.7-plus.toml | False | ['text', 'image', 'video'] |
| providers/amazon-bedrock/models/amazon.nova-2-lite-v1:0.toml | False | ['text', 'image', 'video'] |
| providers/amazon-bedrock/models/google.gemma-3-12b-it.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/google.gemma-3-4b-it.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/mistral.magistral-small-2509.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/mistral.ministral-3-3b-instruct.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/mistral.mistral-large-3-675b-instruct.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/mistral.pixtral-large-2502-v1:0.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/mistral.voxtral-mini-3b-2507.toml | False | ['audio', 'text'] |
| providers/amazon-bedrock/models/moonshotai.kimi-k2.5.toml | False | ['text', 'image'] |
| providers/amazon-bedrock/models/nvidia.nemotron-nano-12b-v2.toml | False | ['text', 'image'] |
| providers/azure-cognitive-services/models/codex-mini.toml | True | ['text'] |
| providers/azure-cognitive-services/models/gpt-5-codex.toml | False | ['text', 'image'] |
| providers/azure-cognitive-services/models/gpt-5.1-codex-mini.toml | False | ['text', 'image'] |
| providers/azure-cognitive-services/models/gpt-5.1-codex.toml | False | ['text', 'image', 'audio'] |
| providers/azure-cognitive-services/models/gpt-5.2-codex.toml | False | ['text', 'image'] |
| providers/azure-cognitive-services/models/gpt-5.3-codex.toml | False | ['text', 'image'] |
| providers/azure-cognitive-services/models/kimi-k2.6.toml | False | ['text', 'image'] |
| providers/azure-cognitive-services/models/o1.toml | False | ['text', 'image'] |
| providers/azure/models/codex-mini.toml | True | ['text'] |
| providers/azure/models/gpt-5-codex.toml | False | ['text', 'image'] |
| providers/azure/models/gpt-5.1-codex-mini.toml | False | ['text', 'image'] |
| providers/azure/models/gpt-5.1-codex.toml | False | ['text', 'image', 'audio'] |
| providers/azure/models/gpt-5.2-codex.toml | False | ['text', 'image'] |
| providers/azure/models/gpt-5.3-codex.toml | False | ['text', 'image'] |
| providers/azure/models/kimi-k2.5.toml | False | ['text', 'image'] |
| providers/azure/models/kimi-k2.6.toml | False | ['text', 'image'] |
| providers/azure/models/o1.toml | False | ['text', 'image'] |
| providers/evroc/models/KBLab/kb-whisper-large.toml | False | ['audio'] |
| providers/evroc/models/mistralai/Voxtral-Small-24B-2507.toml | False | ['audio', 'text'] |
| providers/frogbot/models/deepseek-v4-pro.toml | True | ['text'] |
| providers/frogbot/models/kimi-k2-6.toml | False | ['text', 'image'] |
| providers/frogbot/models/kimi-k2.5.toml | False | ['text', 'image'] |
| providers/frogbot/models/minimax-m2-5.toml | True | ['text'] |
| providers/frogbot/models/minimax-m2-7.toml | True | ['text'] |
| providers/frogbot/models/zai-glm-5-1.toml | True | ['text'] |
| providers/gitlab/models/duo-chat-gpt-5-codex.toml | False | ['text', 'image'] |
| providers/google-vertex/models/deepseek-ai/deepseek-v3.1-maas.toml | False | ['text', 'pdf'] |
| providers/google-vertex/models/deepseek-ai/deepseek-v3.2-maas.toml | False | ['text', 'pdf'] |
| providers/google-vertex/models/zai-org/glm-4.7-maas.toml | False | ['text', 'pdf'] |
| providers/greenpt/models/green-s-pro.toml | False | ['audio'] |
| providers/greenpt/models/green-s.toml | False | ['audio'] |
| providers/groq/models/whisper-large-v3-turbo.toml | False | ['audio'] |
| providers/groq/models/whisper-large-v3.toml | False | ['audio'] |
| providers/helicone/models/chatgpt-4o-latest.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-3-haiku-20240307.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-3.5-haiku.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-3.5-sonnet-v2.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-3.7-sonnet.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-4.5-haiku.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-4.5-opus.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-4.5-sonnet.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-haiku-4-5-20251001.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-opus-4-1-20250805.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-opus-4-1.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-opus-4.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-sonnet-4-5-20250929.toml | False | ['text', 'image'] |
| providers/helicone/models/claude-sonnet-4.toml | False | ['text', 'image'] |
| providers/helicone/models/gemini-2.5-flash-lite.toml | False | ['text', 'image'] |
| providers/helicone/models/gemini-2.5-flash.toml | False | ['text', 'image'] |
| providers/helicone/models/gemini-2.5-pro.toml | False | ['text', 'image'] |
| providers/helicone/models/gemini-3-pro-preview.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/helicone/models/gemma-3-12b-it.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-4.1-mini-2025-04-14.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-4.1-mini.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-4.1-nano.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-4.1.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-4o-mini.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-4o.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5-chat-latest.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5-mini.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5-nano.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5.1-chat-latest.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5.1-codex-mini.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5.1-codex.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5.1.toml | False | ['text', 'image'] |
| providers/helicone/models/gpt-5.toml | False | ['text', 'image'] |
| providers/helicone/models/grok-4-1-fast-non-reasoning.toml | False | ['text', 'image'] |
| providers/helicone/models/grok-4-1-fast-reasoning.toml | False | ['text', 'image'] |
| providers/helicone/models/grok-4-fast-non-reasoning.toml | False | ['text', 'image', 'audio'] |
| providers/helicone/models/grok-4-fast-reasoning.toml | False | ['text', 'image'] |
| providers/helicone/models/llama-4-maverick.toml | False | ['text', 'image'] |
| providers/helicone/models/llama-4-scout.toml | False | ['text', 'image'] |
| providers/helicone/models/llama-guard-4.toml | False | ['text', 'image'] |
| providers/helicone/models/mistral-nemo.toml | False | ['text', 'image'] |
| providers/helicone/models/o3-pro.toml | False | ['text', 'image'] |
| providers/helicone/models/o3.toml | False | ['text', 'image'] |
| providers/helicone/models/o4-mini.toml | False | ['text', 'image'] |
| providers/helicone/models/qwen3-235b-a22b-thinking.toml | False | ['text', 'image', 'video'] |
| providers/helicone/models/qwen3-30b-a3b.toml | False | ['text', 'image'] |
| providers/helicone/models/qwen3-coder.toml | False | ['text', 'image', 'audio', 'video'] |
| providers/helicone/models/qwen3-next-80b-a3b-instruct.toml | False | ['text', 'image', 'video'] |
| providers/helicone/models/qwen3-vl-235b-a22b-instruct.toml | False | ['text', 'image', 'video'] |
| providers/io-net/models/Qwen/Qwen2.5-VL-32B-Instruct.toml | False | ['text', 'image'] |
| providers/io-net/models/meta-llama/Llama-3.2-90B-Vision-Instruct.toml | False | ['text', 'image'] |
| providers/io-net/models/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8.toml | False | ['text', 'image'] |
| providers/io-net/models/mistralai/Mistral-Large-Instruct-2411.toml | False | ['text', 'image'] |
| providers/kimi-for-coding/models/k3-256k.toml | False | ['text', 'image'] |
| providers/llama/models/cerebras-llama-4-maverick-17b-128e-instruct.toml | True | ['text'] |
| providers/llama/models/cerebras-llama-4-scout-17b-16e-instruct.toml | True | ['text'] |
| providers/llama/models/groq-llama-4-maverick-17b-128e-instruct.toml | True | ['text'] |
| providers/llama/models/llama-3.3-70b-instruct.toml | True | ['text'] |
| providers/llama/models/llama-3.3-8b-instruct.toml | True | ['text'] |
| providers/llmgateway-providers/models/openai/gpt-4o-mini-transcribe.toml | False | ['text', 'audio'] |
| providers/llmgateway-providers/models/openai/gpt-4o-transcribe.toml | False | ['text', 'audio'] |
| providers/lucidquery/models/lucidnova-rf1-100b.toml | True | ['text'] |
| providers/lucidquery/models/lucidquery-nexus-coder.toml | True | ['text'] |
| providers/meganova/models/Qwen/Qwen3.5-Plus.toml | False | ['text', 'image', 'video'] |
| providers/meganova/models/moonshotai/Kimi-K2.5.toml | False | ['text', 'image'] |
| providers/mistral/models/labs-devstral-small-2512.toml | False | ['text', 'image'] |
| providers/mistral/models/mistral-small-2506.toml | False | ['text', 'image'] |
| providers/mistral/models/voxtral-mini-latest.toml | False | ['audio'] |
| providers/moonshotai-cn/models/kimi-k2.5.toml | False | ['text', 'image', 'video'] |
| providers/moonshotai/models/kimi-k2.5.toml | False | ['text', 'image', 'video'] |
| providers/nearai/models/black-forest-labs/FLUX.2-klein-4B.toml | False | ['text', 'image'] |
| providers/nearai/models/openai/whisper-large-v3.toml | False | ['audio'] |
| providers/nvidia/models/black-forest-labs/flux_2-klein-4b.toml | False | ['image', 'text'] |
| providers/nvidia/models/openai/whisper-large-v3.toml | False | ['audio'] |
| providers/openai/models/gpt-4.toml | True | ['text'] |
| providers/opencode-go/models/mimo-v2-pro.toml | True | ['text'] |
| providers/opencode-go/models/mimo-v2.5-pro.toml | True | ['text'] |
| providers/opencode-go/models/minimax-m3.toml | False | ['text', 'image', 'video'] |
| providers/opencode/models/grok-code.toml | True | ['text'] |
| providers/opencode/models/mimo-v2-pro-free.toml | True | ['text'] |
| providers/opencode/models/minimax-m3-free.toml | False | ['text', 'image', 'video'] |
| providers/poe/models/cerebras/gpt-oss-120b-cs.toml | True | ['text'] |
| providers/poe/models/cerebras/llama-3.1-8b-cs.toml | True | ['text'] |
| providers/poe/models/cerebras/llama-3.3-70b-cs.toml | True | ['text'] |
| providers/poe/models/cerebras/qwen3-235b-2507-cs.toml | True | ['text'] |
| providers/poe/models/cerebras/qwen3-32b-cs.toml | True | ['text'] |
| providers/poe/models/elevenlabs/elevenlabs-music.toml | True | ['text'] |
| providers/poe/models/elevenlabs/elevenlabs-v2.5-turbo.toml | True | ['text'] |
| providers/poe/models/elevenlabs/elevenlabs-v3.toml | True | ['text'] |
| providers/poe/models/empiriolabs/deepseek-v4-flash-el.toml | True | ['text'] |
| providers/poe/models/empiriolabs/deepseek-v4-pro-el.toml | True | ['text'] |
| providers/poe/models/google/imagen-3-fast.toml | True | ['text'] |
| providers/poe/models/google/imagen-3.toml | True | ['text'] |
| providers/poe/models/google/imagen-4-fast.toml | True | ['text'] |
| providers/poe/models/google/imagen-4-ultra.toml | True | ['text'] |
| providers/poe/models/google/imagen-4.toml | True | ['text'] |
| providers/poe/models/google/lyria.toml | True | ['text'] |
| providers/poe/models/google/veo-2.toml | True | ['text'] |
| providers/poe/models/google/veo-3-fast.toml | True | ['text'] |
| providers/poe/models/google/veo-3.1.toml | True | ['text'] |
| providers/poe/models/google/veo-3.toml | True | ['text'] |
| providers/poe/models/ideogramai/ideogram-v2a-turbo.toml | True | ['text'] |
| providers/poe/models/ideogramai/ideogram-v2a.toml | True | ['text'] |
| providers/poe/models/novita/deepseek-v3.2.toml | True | ['text'] |
| providers/poe/models/novita/glm-4.6.toml | True | ['text'] |
| providers/poe/models/novita/glm-4.7-flash.toml | True | ['text'] |
| providers/poe/models/novita/glm-4.7-n.toml | True | ['text'] |
| providers/poe/models/novita/glm-4.7.toml | True | ['text'] |
| providers/poe/models/novita/glm-5.toml | True | ['text'] |
| providers/poe/models/novita/kimi-k2-thinking.toml | True | ['text'] |
| providers/poe/models/novita/minimax-m2.1.toml | True | ['text'] |
| providers/poe/models/openai/dall-e-3.toml | True | ['text'] |
| providers/poe/models/openai/gpt-4o-mini-search.toml | True | ['text'] |
| providers/poe/models/openai/gpt-4o-search.toml | True | ['text'] |
| providers/poe/models/openai/gpt-5.1-codex-mini.toml | True | ['text'] |
| providers/poe/models/openai/gpt-5.3-codex-spark.toml | True | ['text'] |
| providers/poe/models/openai/o3-deep-research.toml | True | ['text'] |
| providers/poe/models/openai/o4-mini-deep-research.toml | True | ['text'] |
| providers/poe/models/poetools/claude-code.toml | True | ['text'] |
| providers/poe/models/topazlabs-co/topazlabs.toml | True | ['text'] |
| providers/poe/models/trytako/tako.toml | True | ['text'] |
| providers/poe/models/xai/grok-3-mini.toml | True | ['text'] |
| providers/poe/models/xai/grok-3.toml | True | ['text'] |
| providers/poe/models/xai/grok-code-fast-1.toml | True | ['text'] |
| providers/scaleway/models/gpt-oss-120b.toml | True | ['text'] |
| providers/scaleway/models/llama-3.3-70b-instruct.toml | True | ['text'] |
| providers/scaleway/models/whisper-large-v3.toml | False | ['audio'] |
| providers/siliconflow-cn/models/Pro/moonshotai/Kimi-K2.5.toml | False | ['text', 'image'] |
| providers/siliconflow-cn/models/Pro/moonshotai/Kimi-K2.6.toml | False | ['text', 'image'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.5-122B-A10B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.5-27B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.5-35B-A3B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.5-397B-A17B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.5-4B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.5-9B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow-cn/models/Qwen/Qwen3.6-35B-A3B.toml | False | ['text', 'image', 'video'] |
| providers/siliconflow/models/moonshotai/Kimi-K2.5.toml | False | ['text', 'image'] |
| providers/siliconflow/models/moonshotai/Kimi-K2.6.toml | False | ['text', 'image'] |
| providers/stepfun-ai/models/stepaudio-2.5-asr.toml | False | ['audio'] |
| providers/stepfun/models/stepaudio-2.5-asr.toml | False | ['audio'] |
| providers/togetherai/models/Qwen/Qwen3.5-397B-A17B.toml | False | ['text', 'image'] |
| providers/togetherai/models/moonshotai/Kimi-K2.5.toml | False | ['text', 'image'] |
| providers/vercel/models/alibaba/qwen-3.6-max-preview.toml | True | ['text'] |
| providers/vercel/models/bytedance/seed-1.6.toml | False | ['text', 'image'] |
| providers/vercel/models/bytedance/seed-1.8.toml | False | ['text', 'image'] |
| providers/vercel/models/fish-audio/transcribe-1-free.toml | False | ['audio'] |
| providers/vercel/models/fish-audio/transcribe-1.toml | False | ['audio'] |
| providers/vercel/models/google/gemini-3.5-transcribe.toml | False | ['audio'] |
| providers/vercel/models/interfaze/interfaze-beta.toml | False | ['text', 'image', 'pdf'] |
| providers/vercel/models/kwaipilot/kat-coder-air-v2.5.toml | False | ['text', 'image'] |
| providers/vercel/models/kwaipilot/kat-coder-pro-v2.5.toml | False | ['text', 'image'] |
| providers/vercel/models/meta/llama-3.3-70b.toml | True | ['text'] |
| providers/vercel/models/meta/muse-spark-1.1.toml | False | ['text', 'image', 'pdf'] |
| providers/vercel/models/mistral/devstral-small-2.toml | False | ['text', 'image'] |
| providers/vercel/models/mistral/mistral-medium-3.5.toml | False | ['text', 'image'] |
| providers/vercel/models/mistral/mistral-nemo.toml | False | ['text', 'image'] |
| providers/vercel/models/openai/gpt-4o-mini-transcribe.toml | False | ['audio'] |
| providers/vercel/models/openai/gpt-4o-transcribe.toml | False | ['audio'] |
| providers/vercel/models/openai/gpt-realtime-1.5.toml | False | ['text', 'audio'] |
| providers/vercel/models/openai/gpt-realtime-2.1.toml | False | ['text', 'audio'] |
| providers/vercel/models/openai/gpt-realtime-2.toml | False | ['text', 'audio'] |
| providers/vercel/models/openai/gpt-realtime-mini.toml | False | ['text', 'audio'] |
| providers/vercel/models/openai/whisper-1.toml | False | ['audio'] |
| providers/vercel/models/perplexity/sonar-reasoning-pro.toml | False | ['text', 'image'] |
| providers/vercel/models/spacexai/grok-stt.toml | False | ['audio'] |
| providers/vercel/models/spacexai/grok-voice-think-fast-1.0.toml | False | ['text', 'audio'] |
| providers/vercel/models/spacexai/grok-voice-think-fast-2.0.toml | False | ['text', 'audio'] |
| providers/vivgrid/models/gpt-5.1-codex-max.toml | False | ['text', 'image'] |
| providers/vivgrid/models/gpt-5.1-codex.toml | False | ['text', 'image'] |
| providers/vivgrid/models/gpt-5.2-codex.toml | False | ['text', 'image'] |
| providers/vivgrid/models/gpt-5.3-codex.toml | False | ['text', 'image'] |
| providers/xpersona/models/xpersona-frieren-coder.toml | False | ['text', 'image'] |
| providers/xpersona/models/xpersona-gpt-5.5.toml | False | ['text', 'image'] |
| providers/zenmux/models/inclusionai/ring-2.6-1t.toml | True | ['text'] |
| providers/zenmux/models/minimax/minimax-m2.7-highspeed.toml | True | ['text'] |
| providers/zenmux/models/minimax/minimax-m2.7.toml | True | ['text'] |
| providers/zenmux/models/openai/gpt-5.3-chat.toml | True | ['text'] |
| providers/zenmux/models/openai/gpt-5.3-codex.toml | True | ['text'] |
| providers/zenmux/models/openai/gpt-5.4-mini.toml | True | ['text'] |
| providers/zenmux/models/volcengine/doubao-seed-2.0-code.toml | True | ['text'] |
| providers/zenmux/models/z-ai/glm-5-turbo.toml | True | ['text'] |
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading sync.md for the attachment invariant and inspect the relevant packages/core/script/generate-*.ts generators before editing generated entries. Run the provided Python audit to reproduce the contradictions, then check provider documentation and determine how audio-only, gateway, and generated entries should be handled. Done means the semantics are settled and the remaining unintended contradictions are corrected without generator overwrites.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, typescript
- Domain
- data, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100