Repository navigation
feat: add first-class FutureInfra provider template - #1559
Conversation
Adds FutureInfra (https://futureinfra.ai/v1/ai), an OpenAI-compatible AI API router, as a wizard template with a docs page, two template tests and a changeset. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nc-review: nothing to raise@uxidev — nothing to raise from the automated review. Adds a FutureInfra provider template to the setup wizard using the existing 🔴 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 |
|
Thanks for the PR @uxidev |
Adds Y-API (https://api.y-api.bestvirtualgoods.com/v1) as a first-class provider template in the /settings providers wizard, plus a docs page. Y-API is an OpenAI-compatible gateway: one endpoint and one API key reach models from several upstream providers. It speaks the OpenAI Chat Completions API (streaming and tool calling), so it flows through the existing generic openai-compatible provider and needs no new SDK path. Shape follows Nano-Collective#1559 (FutureInfra) and Nano-Collective#1364 (Cheaper Inference).
Description
Adds FutureInfra (
https://futureinfra.ai/v1/ai) as a first-class provider template in the setup wizard, plus a documentation page.FutureInfra is a Korean cloud provider with an OpenAI-compatible AI API router: one endpoint and one API key (
Authorization: Bearer, keys start withpk_live_) reach models from several upstream providers. Model IDs use theprovider/modelform, e.g.openai/gpt-4o-mini. It speaks the OpenAI Chat Completions API (streaming and tool calling), so it flows through the existing genericopenai-compatibleprovider and needs no new SDK path. The change is a wizard template, a docs page and tests, in the same shape as #1364 (Cheaper Inference).Files changed
source/wizards/templates/provider-templates.tsapiKeyTemplateentry: idfutureinfra, base URL pre-filled, default modelopenai/gpt-4o-mini, key prompt pointing at the console page. Placed after Cheaper Inference, with the other routers.source/wizards/templates/provider-templates.spec.tsdocs/configuration/providers/futureinfra.mdsidebar_order: 27).docs/configuration/providers/index.md.changeset/add-futureinfra-provider.mdNote on model fetching
The docs page does not claim the wizard can fetch the model list.
resolveOpenAICompatibleModelsEndpointtrims the base URL at the/v1segment, so forhttps://futureinfra.ai/v1/aiit requestshttps://futureinfra.ai/v1/modelsinstead ofhttps://futureinfra.ai/v1/ai/models(the catalogue). The/v1/modelspath is a different endpoint (it returns 401 without credentials). A failed fetch falls back to manual model entry, so the template still works; the docs tell users to type model IDs and point to the public catalogue URL. I did not change the shared heuristic in this PR. If maintainers prefer, a follow-up could keep sub-paths after the version segment.Type of Change
Changeset
pnpm changeset) describing this change for the changelogDocs-only or internal chores need no changeset (or run
pnpm changeset --emptyto note that intentionally).Testing
Automated Tests
.spec.ts/tsxfilespnpm test:allcompletes successfully)Run on Windows 11, Node 24.15.0, pnpm 11.0.9 (Corepack), on top of
616a060:pnpm test:format— passpnpm test:lint— passpnpm test:types— passpnpm test:types:vscode— passpnpm test:knip— pass (hints only)pnpm test:ava source/wizards/templates/provider-templates.spec.ts— 47 passed, including the two new casespnpm test:ava 'source/wizards/**/*.spec.ts' 'source/wizards/**/*.spec.tsx'— 399 passedpnpm test:ava(whole suite) — did not finish: stopped by a 580 s timeout. Before that it reported failures in suites that depend on a builtdist/or a POSIX shell (e.g.cli-integration,bash-executor) on this Windows machine; none insource/wizards. This is not a pass.pnpm test:auditandpnpm test:security— not runThe new tests cover template construction, which has no error path, so the third box stays unticked.
Manual Testing
Nothing ran through nanocoder itself. Live call test not attached (no API key used). The unauthenticated
GET https://futureinfra.ai/v1/ai/modelswas checked and returns a{"data": [...]}catalogue that includes the model IDs used in the docs.Checklist
No logging was added: the change is a declarative template entry and docs, with no new runtime code path. Disclosure: this PR is submitted on behalf of FutureInfra, and the change was drafted with Claude Code.
🤖 Generated with Claude Code