Skip to content

feat: add Atlas Cloud provider - #90

Merged
veerareddyvishal144 merged 1 commit into
Fast-Editor:mainfrom
binyangzhu000-sudo:codex/add-atlas-cloud-provider
Aug 14, 2026
Merged

veerareddyvishal144 merged 1 commit into
Fast-Editor:mainfrom
binyangzhu000-sudo:codex/add-atlas-cloud-provider

Conversation

@binyangzhu000-sudo

Copy link
Copy Markdown
Contributor

Description

Add Atlas Cloud as a first-class, optional OpenAI-compatible provider. Existing provider defaults and routing behavior remain unchanged unless atlas is selected explicitly.

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Performance improvement
  • Refactoring

Changes Made

  • add atlas configuration, validation, hot reload, tier/fallback routing, provider discovery, and lynkr init support
  • translate Anthropic messages and tools to Atlas Chat Completions, including cross-format SSE transformation and reasoning-content handling
  • default to the currently listed qwen/qwen3.8-max model and https://api.atlascloud.ai/v1/chat/completions, while allowing both to be overridden
  • prevent automatic replay of billable Atlas Chat Completions POST requests
  • document static and tier-based setup, and add an optional Atlas integration link with the official theme-aware logo
  • add offline contract coverage for defaults, validation, request conversion, static routing, SSE registration, and no-retry behavior

Testing

  • Added new tests
  • Manual testing performed
  • node --test test/atlas-integration.test.js test/dispatch-registry.test.js test/init.test.js (22 passed)
  • npm run test:performance
  • npm pack --dry-run
  • live invokeAtlas smoke with qwen/qwen3.8-max returned HTTP 200 and the expected report_status({"status":"LYNKR_ATLAS_OK"}) tool call
  • npm test is fully green: 1,256 passed and 1 unrelated TencentDB default assertion failed; the same failure reproduces on unmodified origin/main
  • npm run lint is fully green: both this branch and unmodified origin/main report the same 110 pre-existing errors; this change adds none

Checklist

  • Code follows the existing provider patterns
  • Documentation updated
  • Tests added/updated
  • No secrets, generated artifacts, or local absolute paths included
  • Commit includes a DCO sign-off

Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
@veerareddyvishal144
veerareddyvishal144 merged commit 2684d0f into Fast-Editor:main Aug 14, 2026
2 of 3 checks passed
veerareddyvishal144 pushed a commit that referenced this pull request Aug 18, 2026
The "Web Tools Test Suite" check has been failing on every PR/push that
touches its trigger paths (including src/config/index.js, which this
branch's Baidu changes touch) since commit b32e988 deleted
src/tools/web.js, src/tools/web-client.js, and test/web-tools.test.js
without removing the standalone workflow that ran that test file — this
predates and is unrelated to the Baidu provider work, confirmed failing
on main itself and on PR #90/#91 too (`gh run list --workflow
web-tools-tests.yml`).

- Remove .github/workflows/web-tools-tests.yml (nothing left to test)
- Remove the same two stale file refs (test/web-tools.test.js,
  test/code-mode.test.js — deleted in the same commit) from ci.yml's
  "Tests" job. These didn't fail there since node --test silently skips
  a missing file when given alongside other real ones in one invocation,
  but a passing check that silently means "0 tests ran for this file"
  is a gap worth closing, not a reference worth keeping.
- Update workflows/README.md: drop the Web Tools Tests section,
  renumber remaining sections, drop the dead badge/example command.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
veerareddyvishal144 added a commit that referenced this pull request Aug 18, 2026
* Add Baidu Qianfan (ERNIE) as a supported model provider

Wires up "baidu" end-to-end alongside openai/openrouter/moonshot/zai,
modeled on invokeMoonshot since Qianfan's v2 endpoint is OpenAI-compatible:

- src/config/index.js: BAIDU_API_KEY/BAIDU_ENDPOINT/BAIDU_MODEL parsing,
  config.baidu block, SUPPORTED_MODEL_PROVIDERS entry, hot-reload sync
- src/clients/databricks.js: new invokeBaidu (request conversion via
  openrouter-utils, response converted to Anthropic shape locally),
  registered in PROVIDER_INVOKERS
- src/orchestrator/index.js: destination-url, tool-schema, and
  response-conversion branches for "baidu"
- src/routing/model-tiers.js: baidu case in _getProviderModel
- src/api/providers-handler.js, src/api/openai-router.js: discovery listing
- bin/lynkr-init.js: onboarding wizard entry + PROVIDER_ORDER + baseline env
- .env.example, documentation/providers.md: new provider docs/section
- test/baidu-model-mapping.test.js: model mapping, tool conversion, auth,
  response conversion (mirrors moonshot-model-mapping.test.js)
- test/dispatch-registry.test.js, test/init.test.js: anti-drift guard lists
- package.json: wire new test file into test:unit

Not yet done, flagged in code/docs: sampling-param quirks and the exact
ERNIE model roster are best-effort from public docs, not probed against a
live key; "baidu" is not yet in DEFAULT_OPENAI_SSE_PROVIDERS (streaming is
buffered-only until SSE shape is confirmed); not added to
REASONING_CONTENT_PROVIDERS (unconfirmed whether ERNIE reasoning models
emit reasoning_content). All 1267 existing unit tests plus the new baidu
suite pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* docs(README): add Z.ai, Moonshot, and Baidu Qianfan to provider table

Follow-up to 57959c0. Only these three rows + the cloud-provider count are
touched — README already had unrelated pending edits (OAuth/wrap-mode
policy note) in the working tree that are intentionally left unstaged,
they're not part of this branch's scope.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* ci: remove dead web-tools-tests workflow and stale test refs

The "Web Tools Test Suite" check has been failing on every PR/push that
touches its trigger paths (including src/config/index.js, which this
branch's Baidu changes touch) since commit b32e988 deleted
src/tools/web.js, src/tools/web-client.js, and test/web-tools.test.js
without removing the standalone workflow that ran that test file — this
predates and is unrelated to the Baidu provider work, confirmed failing
on main itself and on PR #90/#91 too (`gh run list --workflow
web-tools-tests.yml`).

- Remove .github/workflows/web-tools-tests.yml (nothing left to test)
- Remove the same two stale file refs (test/web-tools.test.js,
  test/code-mode.test.js — deleted in the same commit) from ci.yml's
  "Tests" job. These didn't fail there since node --test silently skips
  a missing file when given alongside other real ones in one invocation,
  but a passing check that silently means "0 tests ran for this file"
  is a gap worth closing, not a reference worth keeping.
- Update workflows/README.md: drop the Web Tools Tests section,
  renumber remaining sections, drop the dead badge/example command.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: vishal veerareddy <vishalveera.reddy@servicenow.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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.

2 participants