Skip to content

feat(providers): add Atlas Cloud as an OpenAI-compatible provider - #767

Open
binyangzhu000-sudo wants to merge 2 commits into
andrewyng:mainfrom
binyangzhu000-sudo:add-atlascloud-provider
Open

binyangzhu000-sudo wants to merge 2 commits into
andrewyng:mainfrom
binyangzhu000-sudo:add-atlascloud-provider

Conversation

@binyangzhu000-sudo

Copy link
Copy Markdown

Summary

Adds Atlas Cloud (https://www.atlascloud.ai) as a named, keyed OpenAI-compatible provider, wired the same way as Together / Fireworks / OpenRouter via _compat(...): endpoint prefilled (https://api.atlascloud.ai/v1, editable), key from ATLASCLOUD_API_KEY, recommended model deepseek-ai/deepseek-v4-flash.

Disclosure: I work at Atlas Cloud.

Files:

  • coworker/providers/registry.py - atlascloud descriptor; plus a dedicated branch in verify_provider_key
  • coworker/providers/matrix.py - two curated rows (DeepSeek V4 Flash, GLM-5.2; context 1,048,576 per api.atlascloud.ai/v1/models)
  • surfaces/gui/src/providers/ProviderSetup.tsx - key-help link (console.atlascloud.ai/api-keys)
  • surfaces/gui/src/providers/logos.ts - gallery order (no logo asset added; the gallery's neutral monogram fallback is used)
  • README.md - provider list mention
  • tests/test_providers.py, tests/test_provider_verify.py - descriptor/env-key, matrix capabilities, lockstep, verify probe

Provider-specific decision: the generic Test button probe does not work for this gateway. GET /v1/models is public (a bad key still returns 200) and GET /v1/chat/completions returns 404 (no GET route), so the default path would reject a valid key with the "missing /v1" message and accept an invalid one. The new branch sends a non-persisted one-token POST /chat/completions, the same approach the Ark providers already use.

Test plan

  • pytest tests -q (Python 3.11): 3124 passed, 29 skipped, 0 failed (with .[dev,messaging] installed)
  • Live, through the repo's own code (verify_provider_key, build_provider_client, OpenAIProvider.complete) against api.atlascloud.ai: valid key -> {'ok': True}, invalid key -> Invalid API key.
  • Live chat via the repo's provider: deepseek-ai/deepseek-v4-flash returned "OK." (7 in / 29 out tokens, finish stop); a forced tool call returned a parsed ping ToolCall; zai-org/glm-5.2 returned "OK" (15 in / 52 out)
  • Not run: GUI tsc --noEmit / npm test / Playwright (only a one-line object entry and a list entry changed in .ts/.tsx); no screenshots of the Models & Keys screen were taken
  • Not run: reasoning-effort mapping for Atlas ids (the gateway accepts only high/xhigh universally; unknown ids use the existing OpenAI-vocabulary fallback)

🤖 Generated with Claude Code

binyangzhu000-sudo and others added 2 commits October 19, 2026 13:29
Add `atlascloud` next to Together, Fireworks and OpenRouter: a keyed
OpenAI-compatible provider with the endpoint prefilled
(https://api.atlascloud.ai/v1) and ATLASCLOUD_API_KEY as the env var.

Atlas Cloud's /models is public and /chat/completions has no GET route, so
the generic Test probe would reject a valid key and accept a bad one. Verify
with a one-token completion instead, as already done for Ark.

Also add two curated matrix rows (DeepSeek V4 Flash, GLM-5.2), a key-help
link, gallery ordering, a README mention, and tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
Upstream already registers atlascloud (andrewyng#668), so take upstream's descriptor,
matrix row, GUI and README entries and keep this PR's remaining fix: a
one-token POST /chat/completions probe, because /models is public and a valid
key gets 404 on GET /chat/completions in the generic probe.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
@binyangzhu000-sudo

Copy link
Copy Markdown
Author

Synced with main. Since #668 already registers atlascloud upstream, I took upstream's descriptor, matrix row, GUI and README entries and dropped the duplicates from this branch. What remains is the Test-button fix only: /models is public and a valid key gets 404 on GET /chat/completions, so the generic probe rejects a good key with the "missing /v1" message. The new branch sends a one-token POST /chat/completions on the recommended model.

Verified: pytest tests/test_provider_verify.py tests/test_providers.py 92 passed; live via verify_provider_key: valid key -> {'ok': True}, bad key -> Invalid API key.. Full suite and GUI tests not run. The PR title/description should be narrowed to the verify probe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant