a789495a98
FreeBSD Smoke / FreeBSD Smoke (x86_64) (push) Has been cancelled
CI / Quality Guardrails (push) Has been cancelled
CI / Build & Test (macos-latest) (push) Has been cancelled
CI / Build & Test (ubuntu-latest) (push) Has been cancelled
CI / Build & Test (windows-latest) (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / PowerShell Syntax (push) Has been cancelled
CI / Windows Cross-Target Check (Linux) (push) Has been cancelled
5.9 KiB
5.9 KiB
OpenAI-compatible provider /models audit
Scope: built-in OpenAiCompatibleProfile entries in crates/jcode-provider-metadata/src/lib.rs.
Legend:
verified data[]: docs show or explicitly reference OpenAI-compatibleGET /modelsshape{ object: "list", data: [...] }, or the provider says it implements the OpenAI Models API.verified top-level array: docs show a top-level model array.supported endpoint, shape not shown: docs say/modelsexists or OpenAI compatibility includes it, but do not show the response body.catalog/static only: docs point to a static catalog/models page, not a live/modelsendpoint.unknown: could not find provider docs proving/models.
Audited providers
| Provider | Evidence | Expected parser support | Notes |
|---|---|---|---|
| OpenCode Zen | OpenCode docs and models.dev catalog | static/bootstrap, endpoint unverified | OpenCode itself uses models.dev. /models on Zen not independently verified. |
| OpenCode Go | OpenCode docs and models.dev catalog | static/bootstrap, endpoint unverified | Same as Zen. |
| Z.AI | Search did not find /models; provider docs URL 404 from current metadata path |
unknown | Need direct current docs URL or live key-backed test. |
| Kimi Code | Kimi third-party-agent docs found, OpenAI Compatible config only | unknown | No /models response shape found. |
| 302.AI | Official docs contain Models(列出模型)GET page |
likely OpenAI-compatible data[] | Dedicated list-models page exists. Response body in fetched text was truncated before example. |
| Baseten | Official docs say public OpenAI-compatible endpoint https://inference.baseten.co/v1 |
supported endpoint, shape not shown | No dedicated /models response found. |
| Cortecs | Official docs overview only plus OpenCode provider entry | catalog/static only | No /models endpoint docs found. |
| DeepSeek | Official GET /models docs show { object, data[] } |
verified data[] | Covered by parser. |
| Comtegra | Official docs list supported /v1/models linking OpenAI Models API |
supported endpoint, shape OpenAI | Covered by parser. |
| FPT AI Marketplace | Official docs show chat/completions through LiteLLM/OpenAI, no models endpoint | unknown/no evidence | Live /models may fail. |
| Firmware/FrogBot | OpenCode provider docs only | catalog/static only | No direct provider API docs found. |
| Hugging Face | General Inference Providers docs, OpenAI-compatible API | supported endpoint, shape not shown | No dedicated /models page verified. |
| Moonshot AI | Search/current URL did not expose /models docs |
unknown | Kimi API search hints model list endpoint, but no official Moonshot page fetched. |
| Nebius | Quickstart docs OpenAI-compatible endpoint | supported endpoint, shape not shown | Dedicated /models page not verified. |
| Scaleway | Official “Using Models API” docs found | supported endpoint, shape likely OpenAI | Covered by parser if OpenAI shape. |
| STACKIT | Official integration docs say OpenAI-compatible API and model picker fetches /models |
supported endpoint, shape not shown | Covered if OpenAI shape. |
| Groq | API reference has Models/List models | verified data[] | Covered. |
| Mistral | API reference has Models/List Available Models | verified data[] style | Covered. |
| Perplexity | API docs fetch/search did not find list-models endpoint | unknown | May not support /models; static docs list models. |
| Together AI | Official GET /models docs show top-level array |
verified top-level array | Parser was fixed for this. |
| DeepInfra | Official OpenAI-compatible docs point to static model catalog, no /models page found |
catalog/static only | Live /models unverified. |
| Fireworks | Official list-models docs found for account model API { models: [...] }; OpenAI compat endpoint also exists |
verified models[] variant for account API | Parser supports models[] and name. Need live base endpoint shape still unverified. |
| MiniMax | Official text generation docs show OpenAI-compatible base and static supported-models table | catalog/static only | No /models endpoint found. |
| xAI | API reference includes Models section | verified data[] likely | Covered. |
| LM Studio | Official OpenAI compatibility docs list GET /v1/models |
supported endpoint, shape not shown | OpenAI local server expected data[]. |
| Ollama | Official OpenAI compatibility blog/docs cover chat; /v1/models docs not found in fetched page |
unknown | Need raw docs/source or live local test. |
| Chutes | Live user response showed { object:"list", data:[...] } with numeric pricing |
verified data[] plus numeric pricing | Parser fixed and stale default removed. |
| Cerebras | Official GET /v1/models docs show { object, data[] } |
verified data[] | Covered. |
| Alibaba Coding Plan | Official docs show OpenAI-compatible base URL but warn Coding Plan is for coding tools only; no /models docs |
unknown/no evidence | Static default likely needed; live /models may fail. |
| Generic openai-compatible | User-supplied endpoint | parser contract | We support {data[]}, top-level array, {models[]}, id/name identifiers. |
Parser coverage after f291f0e
Supported response forms:
{ "data": [{ "id": "..." }] }- top-level
[{ "id": "..." }] { "models": [{ "id" or "name": "..." }] }- numeric or string pricing fields
- context fields:
context_length,contextLength,max_context_length,maxModelLength,max_model_len,trainingContextLength
Gaps identified
No additional parser shape is proven necessary yet. The remaining issue is provider capability/profile accuracy:
- Some providers are OpenAI-compatible for chat but do not document live
GET /models. - For those, live catalog refresh should remain best-effort and must gracefully fall back to static catalog.
- Long-term,
OpenAiCompatibleProfileshould probably carry amodel_catalogcapability/strategy so providers known not to support/modelsdo not emit noisy refresh failures.