feat(providers): add DigitalOcean and Scaleway presets - #872
Conversation
📝 WalkthroughWalkthroughThe PR adds DigitalOcean Serverless Inference and Scaleway Generative APIs as provider presets. It adds bounded, allowlisted model discovery, routing and parity tests, Scaleway directory metadata, and updates English and localized documentation. ChangesProvider integrations
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant ProviderRegistry
participant ModelsEndpoint
participant ModelRouter
Client->>ProviderRegistry: select provider preset
ProviderRegistry->>ModelsEndpoint: request authenticated model list
ModelsEndpoint-->>ProviderRegistry: return bounded model response
ProviderRegistry->>ProviderRegistry: apply provider allowlist
ProviderRegistry-->>Client: expose compatible models
Client->>ModelRouter: send model request
ModelRouter->>ModelsEndpoint: route to fixed chat-completions endpoint
Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs-site/src/content/docs/guides/providers.md`:
- Around line 269-273: Synchronize the Scaleway discovery sections in
docs-site/src/content/docs/guides/providers.md:269-273,
docs-site/src/content/docs/ja/guides/providers.md:192-195,
docs-site/src/content/docs/ko/guides/providers.md:191-194,
docs-site/src/content/docs/ru/guides/providers.md:202-206, and
docs-site/src/content/docs/zh-cn/guides/providers.md:180-183. In each locale,
identify the documented Chat Completions allowlist, authenticated-model
intersection, bounded discovery, and fail-closed exclusion of unknown,
Responses-only, embeddings, transcription, and other media models; additionally
update the Korean section to state that Project-qualified URLs and dedicated
deployments require a custom provider.
In `@src/providers/registry.ts`:
- Around line 586-598: Remove "gpt-oss-120b" from the
SCALEWAY_SERVERLESS_CHAT_MODELS catalog in src/providers/registry.ts. Update the
mixed-catalog discovery assertion in
tests/digitalocean-scaleway-provider.test.ts to verify that this model is
excluded while preserving the existing supported-model assertions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 84fd0f19-db85-41cb-bed6-8e27ea1a55c0
📒 Files selected for processing (16)
docs-site/src/content/docs/getting-started/quickstart.mddocs-site/src/content/docs/guides/providers.mddocs-site/src/content/docs/ja/getting-started/quickstart.mddocs-site/src/content/docs/ja/guides/providers.mddocs-site/src/content/docs/ko/getting-started/quickstart.mddocs-site/src/content/docs/ko/guides/providers.mddocs-site/src/content/docs/ru/getting-started/quickstart.mddocs-site/src/content/docs/ru/guides/providers.mddocs-site/src/content/docs/zh-cn/getting-started/quickstart.mddocs-site/src/content/docs/zh-cn/guides/providers.mdsrc/providers/free-directory.tssrc/providers/registry.tstests/digitalocean-scaleway-provider.test.tstests/fixtures/digitalocean-models.jsontests/fixtures/scaleway-models.jsontests/provider-registry-parity.test.ts
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e5f151216d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
e5f1512 to
5afec20
Compare
5afec20 to
fc7222f
Compare
|
Author update — current head All review feedback received through this revision has been addressed:
Validation: This PR intentionally remains Draft until #870 lands. I will perform the final sequential restack and regenerate the 73 / 62 provider totals before marking it Ready. It relates to #572 and does not close the umbrella issue. |
Summary
Relates to #572. This PR intentionally does not close the umbrella issue.
Canonical preset evidence
https://inference.do-ai.run/v1, Bearer-authenticated/models, and the shared chat endpoint.https://api.scaleway.ai/v1, Bearer authentication, and the shared serverless API.Maintenance owner: @olddonkey. I am not affiliated with either provider.
Verification date: 2026-08-02.
Scope and safety
/modelsschemas expose only generic OpenAI-shaped rows, so discovery fails closed: a live row must also match the current first-party chat-model allowlist. Unknown rows are not promoted automatically.preserveCustomDestinationprevents registry promotion from retargeting keys already stored under a same-named custom provider. Discovery policy remains registry-only and is never serialized into user config or key-login metadata.Because this changes canonical credential destinations, explicit maintainer security review is requested.
Sequencing
This PR remains Draft until #870 lands. It is currently restacked onto
devand its standalone registry/docs totals are 71 presets / 60 key presets; after #870 merges, a final restack will regenerate those totals as 73 / 62.Verification
bun run typecheckbun test tests/digitalocean-scaleway-provider.test.ts tests/provider-model-discovery-contract.test.ts tests/provider-registry-parity.test.ts— 57 pass, 0 failbun run test— 7596 pass, 8 skip, 0 failbun run privacy:scancd docs-site && bun run build— 216 pagesgit diff --checkSummary by CodeRabbit
New Features
Documentation