Files
Emmanuel Acheampong 9b01dfab0e Add Crusoe provider (#3769)
* Add Crusoe provider

* Remove pricing; add Nemotron-3-Ultra-550B

* Address review: declare reasoning_options, theme-adaptive logo

- Add reasoning_options = [] to the 12 reasoning-model TOMLs: Crusoe's
  OpenAI-compatible endpoint documents no caller-side reasoning controls
  (docs.crusoecloud.com defers to the generic OpenAI API reference), so
  an empty declaration is correct per the validate schema.
- logo.svg: drop fixed width/height, use fill="currentColor" so the
  wordmark adapts to light/dark themes.

bun validate passes locally.

* Move reasoning_options rationale comments above first key

* Restore trailing newlines in reasoning-model TOMLs

* fix(crusoe): set reasoning config from live endpoint probe

Probed api.inference.crusoecloud.com on 2026-08-13 with reasoning_effort
low/medium/high/none/max plus tool-call interleaving checks per model.

- gpt-oss-120b: effort low/medium/high (reasoning length scales; none/max
  return 400), interleaved with tool calls
- GLM-5.2, Kimi-K2.6, Nemotron-3-Nano-Omni-Reasoning: toggle (effort
  "none" disables reasoning; low/medium/high inert), interleaved
- GLM-5.1: reasoning always on, no working caller-side control
- Reasoning arrives in the message field named "reasoning", so the
  boolean interleaved form is used
- Drop reasoning_options = [] from non-reasoning models
- Remove six models whose IDs drifted from the live /v1/models catalog
  or whose reasoning deployment is unverified; follow-up will re-add

* fix(crusoe): gemma-4-31b-it reasoning toggle

Base model has reasoning = true so reasoning_options is required by the
schema. Probe shows reasoning_effort acts as an enable/disable toggle on
this deployment (off by default, "none" disables, other values enable).

* feat(crusoe): add per-model pricing

Source: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13).
Input, output, and cached-read rates per million tokens for all eight
models. Nemotron Omni carries a separate audio input rate (0.50) via
cost.input_audio; its text/image/video input rate is 0.30.
2026-08-13 17:58:39 -05:00
..
2026-08-13 17:58:39 -05:00
2026-08-13 17:58:39 -05:00
2026-08-13 17:58:39 -05:00