provider: add CoralBricks - #4040
Conversation
Adds CoralBricks (https://inference.coralbricks.ai/v1) with four hosted models referencing existing lab entries: zhipuai/glm-5.2 (as glm-5.2-fp4, 1M ctx), moonshotai/kimi-k2.6, moonshotai/kimi-k3, openai/gpt-oss-120b. Reasoning toggle verified against the live endpoint. bun validate passes.
Action items
|
- logo.svg rebuilt from brand source: currentColor, square viewBox, no fixed size or hardcoded colors - interleaved = true on all four reasoning models (side channel streams via a 'reasoning' delta field, name not in the field enum) - reasoning_options = []: live-tested reasoning.effort low/high — honored on the gateway's vendor-relay path (e.g. gpt-oss 68 vs 248 reasoning tokens) but rejected with 400 by its local-serving path, so no request-side control is declared until the gateway normalizes it
|
Addressed all four action items in f156afb:
|
Action items
|
Costs are deliberately omitted while pricing is in a design-partner phase and subject to change; a follow-up PR adds [cost] at GA (schema allows omission). glm-5.2-fp4 gets a display-name override so UIs show the FP4 serving variant.
|
Both items addressed in e639f2b:
|
Action items
|
|
Documented the request-only case in the PR body: CoralBricks is a design-partner program — no self-serve signup or purchase path exists, access is by contact (hello@coralbricks.ai), and rates are set per design-partner agreement rather than a standing rate card. Earlier pricing citations are removed from the body accordingly. |
|
even if cost is 0 plz specify it |
|
like write cost w/ zeroed out values |
Maintainer asked for cost to always be authored. Real published rates rather than zeroes (zeroed costs render as free in consumers). cache_read = 0 is accurate: cached input tokens are not billed.
|
Done — restored
Went with real values rather than zeroes since we do have standing rates — zeroed costs would render as "free" in consumers. |
Action items
|
|
The contradiction referenced here is stale — the PR body was updated in the same round that restored |
|
No actionable findings. |
Registers CoralBricks (https://inference.coralbricks.ai/v1, OpenAI wire format) as an OpenAI-compatible built-in with a static model catalog (GLM 5.2, Kimi K3, GPT-OSS 120B). The catalog is handwritten rather than models.dev-derived because CoralBricks is not on models.dev yet (anomalyco/models.dev#4040); switch to modelsProviderId once that lands. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
provider: add CoralBricks
Adds CoralBricks (https://www.coralbricks.ai), an OpenAI-compatible
inference gateway serving open models, as a provider.
Endpoint
https://inference.coralbricks.ai/v1(OpenAI Chat Completions)CORAL_API_KEY(Bearer)@ai-sdk/openai-compatibleModels (all
base_modelreferences to existing lab entries)glm-5.2-fp4zhipuai/glm-5.2(name: "GLM 5.2 FP4")kimi-k3moonshotai/kimi-k3kimi-k2.6moonshotai/kimi-k2.6gpt-oss-120bopenai/gpt-oss-120bcache_read = 0is intentional: cached input tokens are not billed on thegateway.
Audit notes
reasoningdelta field (OpenRouter-style) →
interleaved = true(field name is notin the
interleaved.fieldenum).(
reasoning_options = []): live-tested 2026-08-04,reasoning.effortlow/high changes reasoning tokens on the gateway's vendor-relay path
(gpt-oss-120b 68 → 248, kimi-k2.6 963 → 1499, kimi-k3 107 → 156) but the
gateway's local-serving path rejects the
reasoningrequest field with400 "Extra inputs are not permitted". Until the gateway normalizes the
field across both paths, declaring a control would advertise a request
shape that intermittently 400s.
delta.tool_callson all models.bun validatepasses.