Skip to content

feat: add native Scaleway Generative APIs provider - #3846

Draft
claudecodebyia wants to merge 1 commit into
tailcallhq:mainfrom
claudecodebyia:agent/add-scaleway-provider
Draft

feat: add native Scaleway Generative APIs provider#3846
claudecodebyia wants to merge 1 commit into
tailcallhq:mainfrom
claudecodebyia:agent/add-scaleway-provider

Conversation

@claudecodebyia

Copy link
Copy Markdown

Summary

Adds first-class support for Scaleway Generative APIs as an OpenAI-compatible ForgeCode provider.

  • registers scaleway as a built-in provider authenticated by SCW_SECRET_KEY
  • supports both the default Scaleway endpoint and optional project-scoped URLs through SCW_PROJECT_ID
  • exposes glm-5.2 with its 256k context window, reasoning, function calling, and parallel tool calling capabilities
  • adds a Scaleway compatibility transformer that caps output at 16,384 tokens and normalizes reasoning effort to the values accepted by GLM-5.2
  • adds an actionable IAM error when a key cannot access the configured project
  • documents interactive login and legacy environment-variable configuration

Motivation

Scaleway follows the OpenAI Chat Completions contract, but two provider-specific details prevent a generic configuration from working reliably in ForgeCode:

  1. project scoping is encoded in the URL and must remain optional because the default project uses the unscoped endpoint
  2. ForgeCode's default output budget can exceed GLM-5.2's 16,384-token serverless limit, causing a 400 Bad Request

This integration handles both details centrally so users can select Scaleway like any other native provider.

User impact

Users can now run:

forge provider login scaleway
forge config set model scaleway glm-5.2

They may leave SCW_PROJECT_ID blank for the default project or provide a project ID when their IAM key has access to it.

Validation

  • cargo test -p forge_domain provider --lib — 51 passed
  • cargo test -p forge_app dto::openai::transformers --lib — 110 passed
  • cargo test -p forge_repo provider::provider_repo --lib — 34 passed
  • cargo test -p forge_repo test_enhance_error_scaleway_project_permissions --lib — passed
  • cargo clippy -p forge_domain -p forge_app -p forge_repo --all-targets -- -D warnings — passed
  • targeted rustfmt --check for every changed Rust file — passed
  • live end-to-end ForgeCode request against Scaleway glm-5.2 using the default project endpoint — returned OK

References

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions github-actions Bot added type: feature Brand new functionality, features, pages, workflows, endpoints, etc. type: provider Updates provider.json configuration. labels Aug 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature Brand new functionality, features, pages, workflows, endpoints, etc. type: provider Updates provider.json configuration.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants