Skip to content

feat: add first-class FutureInfra provider template - #1559

Merged
akramcodez merged 1 commit into
Nano-Collective:mainfrom
uxidev:add-futureinfra-provider
Oct 2, 2026
Merged

akramcodez merged 1 commit into
Nano-Collective:mainfrom
uxidev:add-futureinfra-provider

Conversation

@uxidev

@uxidev uxidev commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

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 with pk_live_) reach models from several upstream providers. Model IDs use the provider/model form, e.g. openai/gpt-4o-mini. 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. The change is a wizard template, a docs page and tests, in the same shape as #1364 (Cheaper Inference).

Files changed

File Why
source/wizards/templates/provider-templates.ts New apiKeyTemplate entry: id futureinfra, base URL pre-filled, default model openai/gpt-4o-mini, key prompt pointing at the console page. Placed after Cheaper Inference, with the other routers.
source/wizards/templates/provider-templates.spec.ts Two tests mirroring the Cheaper Inference pair: base URL, default model, comma-separated model parsing, default provider name.
docs/configuration/providers/futureinfra.md New provider page (sidebar_order: 27).
docs/configuration/providers/index.md Docs nav entry under Cloud Providers (OpenAI-Compatible).
.changeset/add-futureinfra-provider.md Changeset (minor), because the change is user-facing.

Note on model fetching

The docs page does not claim the wizard can fetch the model list. resolveOpenAICompatibleModelsEndpoint trims the base URL at the /v1 segment, so for https://futureinfra.ai/v1/ai it requests https://futureinfra.ai/v1/models instead of https://futureinfra.ai/v1/ai/models (the catalogue). The /v1/models path 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

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Changeset

  • Added a changeset (pnpm changeset) describing this change for the changelog

Docs-only or internal chores need no changeset (or run pnpm changeset --empty to note that intentionally).

Testing

Automated Tests

  • New features include passing tests in .spec.ts/tsx files
  • All existing tests pass (pnpm test:all completes successfully)
  • Tests cover both success and error scenarios

Run on Windows 11, Node 24.15.0, pnpm 11.0.9 (Corepack), on top of 616a060:

  • pnpm test:format — pass
  • pnpm test:lint — pass
  • pnpm test:types — pass
  • pnpm test:types:vscode — pass
  • pnpm test:knip — pass (hints only)
  • pnpm test:ava source/wizards/templates/provider-templates.spec.ts — 47 passed, including the two new cases
  • pnpm test:ava 'source/wizards/**/*.spec.ts' 'source/wizards/**/*.spec.tsx' — 399 passed
  • pnpm test:ava (whole suite) — did not finish: stopped by a 580 s timeout. Before that it reported failures in suites that depend on a built dist/ or a POSIX shell (e.g. cli-integration, bash-executor) on this Windows machine; none in source/wizards. This is not a pass.
  • pnpm test:audit and pnpm test:security — not run

The new tests cover template construction, which has no error path, so the third box stays unticked.

Manual Testing

  • Tested with Ollama
  • Tested with OpenRouter
  • Tested with OpenAI-compatible API
  • Tested MCP integration (if applicable)

Nothing ran through nanocoder itself. Live call test not attached (no API key used). The unauthenticated GET https://futureinfra.ai/v1/ai/models was checked and returns a {"data": [...]} catalogue that includes the model IDs used in the docs.

Checklist

  • If this was for an open issue, I was assigned to it
  • Code follows project style guidelines
  • Self-review completed
  • Documentation updated (if needed)
  • No breaking changes (or clearly documented)
  • Appropriate logging added using structured logging (see CONTRIBUTING.md)

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

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>
@github-actions github-actions Bot added the area:docs Documentation label Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

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 apiKeyTemplate helper, alongside a docs page, index entry, and changeset. The change mirrors the Cheaper Inference template (#1364) in shape and placement, the two new tests follow the established pair (buildConfig + default name), and the changeset uses the correct workspace package name. The author transparently discloses both their affiliation with FutureInfra and a known limitation in model fetching (the shared /v1 heuristic routes to /v1/models rather than /v1/ai/models), without silently papering over it. No duplicate exists in the open PR queue, and the change is small, justified, and ready.


🔴 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 /re-review.

@github-actions github-actions Bot added the agent:clean nc-review had nothing to raise label Oct 1, 2026
@akramcodez
akramcodez merged commit a03ee3b into Nano-Collective:main Oct 2, 2026
17 checks passed
@akramcodez

Copy link
Copy Markdown
Member

Thanks for the PR @uxidev

jiweiyeah added a commit to jiweiyeah/nanocoder that referenced this pull request Oct 2, 2026
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).
@jiweiyeah jiweiyeah mentioned this pull request Oct 2, 2026
8 of 18 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:clean nc-review had nothing to raise area:docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants