Repository navigation
Conversation
nc-review: nothing to raise@bayuh85 — nothing to raise from the automated review. Adds a first-class AtmoRouter provider template to the 🔴 blocking · 🟠 a reviewer would ask for a change · ⚪ optional Automated code review — correctness, security, design, tests, plus duplicates and scope. A human still decides; this is not a substitute for review and is not exhaustive. The required status checks separately cover lint, formatting, types, unused dependencies, the test suite and the build. This bot never merges. Maintainers can rerun with |
Description
Adds a first-class AtmoRouter provider template to the
/settings providerswizard, following the same shape as the Cheaper Inference (#1364), API Route (#1548) and FutureInfra (#1559) templates. AtmoRouter is an OpenAI-compatible gateway (https://atmorouter.dev/v1), so it uses the existingapiKeyTemplatehelper and the generic OpenAI-compatible client; no new runtime code.source/wizards/templates/provider-templates.tsatmoroutertemplate (base URL, key prompt, default model)source/wizards/templates/provider-templates.spec.tsdocs/configuration/providers/atmorouter.mddocs/configuration/providers/index.md.changeset/add-atmorouter-provider.mdDisclosure: I'm submitting this on behalf of the AtmoRouter team.
Type of Change
Changeset
pnpm changeset) describing this change for the changelogTesting
Automated Tests
.spec.ts/tsxfilespnpm test:allcompletes successfully)test:format,test:lint,test:types,test:types:vscodeandtest:knippass, andprovider-templates.spec.tspasses (51 tests, 2 new). In my localpnpm test:allrun on Node 24 the only failures were insource/cli-value-flags.cli-integration(34 failures withThe requested module 'ink' does not provide...). These fail the same way on a cleanmaincheckout, so I think they're down to my environment.read_file returns the body again after the file changesfailed once and then passed on a re-run. This PR only touches the template list, its spec and docs.Manual Testing
I built a config from the new template via
buildConfigand ran it against the live endpoint:fetchModels: returned the catalog, including the model IDs listed in the docs pagenanocoder --provider AtmoRouter --model <id> run "Use the read_file tool to read note.txt, then reply with only the secret word it contains.": tool call and correct answer forcc/claude-sonnet-4-6,cbcn/glm-5.3,ali/deepseek-v4.1-flashandali/qwen3.8-maxChecklist