Files
abonvalle 83cdfa932c feat: add infomaniak provider with 10 models (#2893)
* feat: add infomaniak provider with 10 models

* fix: correct infomaniak reasoning options after live API testing

Verified each reasoning model against the live Infomaniak API:
- reasoning text is returned in `message.reasoning`, so use `interleaved = true`
  instead of the non-existent `field = "reasoning_content"`
- gemma-4-31B-it ignores `reasoning_effort` and never emits reasoning, so drop
  its reasoning_options/interleaved and set `reasoning = false`
- Mistral-Small only accepts `none`/`high`; documented the per-model wire format
  (reasoning_effort on/off) in comments above each reasoning_options

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: use INFOMANIAK_PRODUCT_ID env var to match Infomaniak API

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: promote infomaniak Qwen3.5 122B and Gemma 4 31B out of beta

Infomaniak announced that Qwen3.5 (122B), Gemma 4 (31B) and Mistral
Small 4 (119B) are no longer beta and are production-ready. Mistral
Small 4 already had no beta status, so drop `status = "beta"` from the
Qwen3.5 122B and Gemma 4 31B models and bump last_updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: add required description to standalone infomaniak models

The schema now requires a non-empty `description` on every model. The
six base_model references inherit it from their base model, but the four
standalone models (two embeddings, Ministral 3, Apertus 70B) need their
own. Add descriptions following the repo's existing conventions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: refresh infomaniak pricing, reasoning support, and model identities

Corrects USD pricing to match Infomaniak's CHF-billed rates, fixes reasoning
support flags for gemma-4-31B-it and Mistral-Small (no verified toggle), and
renames models to match their actual upstream identities: MiniLM entry was
mislabeled as the multilingual 117M variant instead of the English-only 33M
one actually served, and Apertus 70B is replaced by the v1.5 release. Also
corrects Kimi-K2.6 modalities (image, no video) and MiniLM's context limit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix: align infomaniak data with live catalog and source every claim

Verified all ten model ids case-by-case against Infomaniak's pricing page,
open-source-models catalog and GET /1/ai/models; all match exactly and are
unchanged.

Data corrections:
- gemma-4-31B-it is served text-only ("Text-to-Text" in both the EN and FR
  catalog), so override attachment=false and modalities.input=["text"] instead
  of inheriting image input from the base model
- bge_multilingual_gemma2 input cap is 8'000, not 8'192 (catalog row and the
  API's own max_token_input)
- drop the unsourced limit.output overrides on Qwen3.5-122B and gemma-4-31B-it
  so both inherit from base_model, matching the Qwen3.5-397B sibling
- Ministral-3-14B release_date 2025-12-15 -> 2025-12-02 (repo majority for this
  model); bge release_date 2024-07-30 -> 2024-07-25 (Hugging Face createdAt)
- provider.toml doc pointed at the French marketing landing page; the schema
  wants a page where models are listed

Claim corrections:
- Mistral-Small-4 claimed the live probe confirmed Infomaniak's docs. It does
  not: the docs say thinking is unsupported, the probe found thinking on by
  default and returned in message.reasoning. Only the reasoning_effort
  parameter itself is unsupported. Pin `mistral3` to the model's transformers
  model_type, which is what makes the exclusion apply.
- MiniLM identity rested on the "based on a Microsoft model" blurb, which does
  not discriminate (both candidates descend from a Microsoft MiniLM). Cite
  Infomaniak's "Parameters 33 M" spec row instead.
- label the two forced limit.output estimates (Apertus, Ministral) as estimates
- note that Nemotron's published 1M input cap exceeds its native window

Per AGENTS.md, move every comment into a single top-of-file block (five files
had reasoning notes below the first key) and add the exact reasoning_effort
wire syntax next to each toggle.

bun validate passes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-04 13:08:56 -05:00
..