Skip to content

[Provider] Finish remaining OpenAI-compatible provider batch: Chutes, Featherless, Novita #572

Description

@olddonkey

Area

Provider registry / model discovery / catalog / CLI / Dashboard / documentation

Goal

Finish the remaining providers from the accepted OpenAI-compatible provider-promotion batch.

The original umbrella contained twelve providers. The shared discovery/security contract and nine provider presets have already landed on dev.

This issue now tracks only the three remaining candidates:

  • chutes
  • featherless
  • novita

Keep this umbrella open until each remaining candidate is either merged or explicitly deferred with the reason recorded.

Delivered work

Shared discovery/security contract

#652 landed the common provider-discovery contract, including:

  • registry-owned discovery destination/query policy;
  • bounded response bytes and accepted row counts;
  • declarative eligibility filtering;
  • redirect refusal;
  • outbound destination-policy enforcement;
  • fixed-preset host protection;
  • same-named custom-provider destination preservation;
  • fixture-based regression coverage rather than live-provider CI dependencies.

Provider presets already delivered

The following original candidates are now first-class providers on dev:

These providers are complete for this umbrella and should not be reimplemented here.

Remaining work

Chutes

Tracked by draft PR #1315.

Expected preset:

id: chutes
base URL: https://llm.chutes.ai/v1
adapter: openai-chat
auth: Bearer API key

The implementation must retain the established safety properties:

  • registry-owned fixed destination;
  • existing same-named custom destinations must not be silently retargeted;
  • bounded public-model discovery;
  • admit only models with provider evidence for the required chat/tool capability;
  • provider-native model IDs preserved;
  • no false claim that the public model catalog validates the supplied API key;
  • fixture-only tests;
  • explicit security review for the credential/destination contract.

Do not broaden this preset to arbitrary user-hosted Chutes endpoints or unrelated Chutes APIs.

Featherless

Tracked by draft PR #1317.

Expected preset:

id: featherless
base URL: https://api.featherless.ai/v1
adapter: openai-chat
auth: Bearer API key

The major catalog constraint remains important: Featherless exposes a very large model catalog.

Discovery must therefore remain explicitly bounded and fail closed rather than downloading or admitting the complete catalog.

The current implementation direction should preserve:

  • bounded response size and row count;
  • first-page / bounded discovery behavior;
  • current-plan eligibility;
  • chat-model eligibility;
  • tool-use eligibility;
  • exclusion of gated/ineligible rows;
  • conservative capability metadata;
  • authenticated key-validation boundary where supported;
  • same-named custom-provider destination preservation;
  • fixture-only tests;
  • explicit maintainer security review.

Novita AI

Tracked by draft PR #1318.

Expected preset:

id: novita
base URL: https://api.novita.ai/openai/v1
adapter: openai-chat
auth: Bearer API key

Earlier review blocked canonical promotion on operating-entity/provider evidence rather than on the wire protocol itself.

The current follow-up contains updated evidence and should be judged on that record rather than the older blocker.

The implementation should preserve:

  • fixed registry-owned destination;
  • same-named custom-provider destination preservation;
  • bounded model discovery;
  • admission only for rows positively identified as compatible chat models;
  • provider-native slash-containing model IDs;
  • conservative capability claims;
  • public model-list success must not be treated as proof that an API key is valid;
  • fixture-only tests;
  • explicit maintainer/security review of the canonical-provider evidence.

Common acceptance contract

Each remaining provider must:

  • be an explicit canonical registry allowlist entry;
  • use the documented fixed OpenAI-compatible endpoint;
  • preserve an existing same-named custom provider's destination;
  • bound discovery response bytes before unbounded parsing/caching;
  • bound accepted raw model rows;
  • exclude models that cannot serve the supported chat/tool path;
  • preserve provider-native model IDs, including embedded /;
  • avoid claiming unsupported reasoning, parallel-tool, multimodal, or structured-output capabilities;
  • expose the preset consistently through CLI, Dashboard/provider workspace, and documentation;
  • use fixture-based deterministic tests rather than live provider endpoints in CI;
  • avoid logging or exposing API-key material;
  • receive required security review for new credential destinations;
  • merge into dev, or be explicitly deferred with the reason recorded here.

Active PRs

All three intentionally relate to this umbrella rather than auto-closing it individually.

Close condition

Close this issue as completed when all three remaining providers have either:

  1. landed on dev; or
  2. been explicitly declined/deferred with a documented reason and no remaining implementation is expected under this umbrella.

Do not reopen completed providers from the original batch here. Future providers with materially different authentication, transport, or discovery contracts should use separate issues.

Metadata

Metadata

Assignees

Labels

catalogModel catalog, slugs, visibility, routed entriesenhancementNew feature or requestproviderProvider adapters, OpenAI-compat presets, upstream API quirksroadmapAccepted long-term work item; needs its own project cycletoolstool_calls, MCP, web-search / sidecar tools

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions