Skip to content

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

Open
binyangzhu000-sudo wants to merge 1 commit into
MemTensor:mainfrom
binyangzhu000-sudo:add-atlascloud-provider
Open

binyangzhu000-sudo wants to merge 1 commit into
MemTensor:mainfrom
binyangzhu000-sudo:add-atlascloud-provider

Conversation

@binyangzhu000-sudo

Copy link
Copy Markdown

Summary

Adds Atlas Cloud (OpenAI-compatible gateway, https://api.atlascloud.ai/v1) as a named provider in the provider registry, mirroring the existing Novita / SiliconFlow gateway entries. Users can configure providers.atlascloud.apiKey (or ATLASCLOUD_API_KEY), and a base URL containing atlascloud is auto-detected.

Disclosure: I work at Atlas Cloud.

Files:

  • App/memmy-agent/src/providers/registry.ts: new atlascloud ProviderSpec (gateway, openai_compat, ATLASCLOUD_API_KEY, default base https://api.atlascloud.ai/v1).
  • App/memmy-agent/tests/providers/atlascloud-provider.test.ts: registry/config/kwargs tests, modelled on novita-provider.test.ts.

Provider-specific decisions:

  • No stripModelPrefix: Atlas model ids are namespaced (e.g. deepseek-ai/deepseek-v4-flash) and must be sent verbatim (covered by a test).
  • No frontend change: the desktop logo map is keyed by model protocol, not gateway, and other gateways (Novita, SiliconFlow) have no entry there either.

Test plan

  • npx vitest run tests/providers in App/memmy-agent: 48 files / 762 tests passed (includes the new test file)
  • prettier --check and eslint on the touched files: clean
  • Live check through the repo's own path (Config.fromObject -> makeProvider -> OpenAICompatProvider.chat) against the real gateway with deepseek-ai/deepseek-v4-flash, maxTokens: 64: HTTP 200, response parsed (the 64 tokens were consumed by reasoning, so finishReason: "length" with reasoningContent populated; 11 prompt tokens)
  • GET https://api.atlascloud.ai/v1/models returned 200 with 120 models (plain fetch; the repo has no list-models code path for gateways)
  • Not run: full repo test suite, root workspace build, desktop UI. tsc --noEmit reports one error that is unrelated to this change (@memmy/knowledge not built locally).

πŸ€– Generated with Claude Code

…ider

Register `atlascloud` in the provider registry, mirroring the existing
Novita / SiliconFlow gateway entries: OpenAI-compatible backend,
`ATLASCLOUD_API_KEY` env var, default base `https://api.atlascloud.ai/v1`,
and base-URL detection by the `atlascloud` keyword. Add a provider test
modelled on the Novita one.

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

Copy link
Copy Markdown
Collaborator

πŸ€– Open Code Review

Target: PR #730
Task: b606b9b3d531997a
Base: main
Head: add-atlascloud-provider

πŸ” OpenCodeReview found 1 issue(s) in this PR.


1. App/memmy-agent/src/providers/registry.ts (L230-L231)

Missing hyphenated alias. normalizeProviderName("atlas-cloud") / normalizeProviderName("atlasCloud") both normalize to atlas_cloud, which does not equal the keyword atlascloud, so findByName returns null for those spellings and a forced provider assignment (provider: atlas-cloud) ends up failing in matchProvider. Other multi-word brands here already carry such an alias ("hugging-face", "ant-ling", "atomic-chat"), so adding it keeps named lookup consistent.

πŸ’‘ Suggested Change

Before:

    name: "atlascloud",
    keywords: ["atlascloud"],

After:

    name: "atlascloud",
    keywords: ["atlascloud", "atlas-cloud"],

Generated by cloud-assistant via Open Code Review.

@Memtensor-AI

Copy link
Copy Markdown
Collaborator

βœ… Automated Test Results: PASSED

All tests passed (6/6 executed). common/smoke: 6/6. Duration: 2s

Branch: add-atlascloud-provider

This branch has not been deployed

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants