Skip to content

Add Fireworks AI Provider - #61182

Closed
alex-fireworks wants to merge 1 commit into
NousResearch:mainfrom
alex-fireworks:fireworks-preferred-provider
Closed

Add Fireworks AI Provider#61182
alex-fireworks wants to merge 1 commit into
NousResearch:mainfrom
alex-fireworks:fireworks-preferred-provider

Conversation

@alex-fireworks

Copy link
Copy Markdown
Contributor

Summary

Adds Fireworks AI as a bundled, first-class BYOK model provider across the CLI, web dashboard, TUI, and desktop onboarding. Paste a FIREWORKS_API_KEY and go — models are addressed by their native catalog IDs (e.g. accounts/fireworks/models/kimi-k2p6).

This comes from Fireworks directly and consolidates the prior overlapping Fireworks PRs (supersedes #28983; also folds in the scope of #23541, #15332, #6054, #3757, #3564) into a single, mergeable change.

What's included

  • Provider plugin (plugins/model-providers/fireworks/) — ProviderProfile with attribution headers (HTTP-Referer / X-Title), and PAYG-safe default aux + fallback models. Model IDs track the canonical Fireworks catalog (fw-ai/fireconnect).
  • Picker registration — Fireworks shows up in hermes model, the web dashboard, and the TUI.
  • Alias resolutionfireworks-ai / fw resolve through both CLI resolvers (hermes_cli/providers.py and hermes_cli/models.py), not just the plugin registry.
  • First-class wiringOPTIONAL_ENV_VARS, HERMES_OVERLAYS (with a FIREWORKS_BASE_URL override), and doctor env hints. The live catalog and model_metadata reverse-mapping are auto-derived from the profile.
  • doctor — treats Fireworks' native slash-form IDs (accounts/fireworks/...) as valid rather than aggregator vendor prefixes, so it no longer suggests switching to openrouter / dropping the prefix.
  • Picker default — plugin providers with no static curated list now lead with their profile fallback_models, so the default is an agentic chat model instead of whatever the live catalog returns first.
  • Desktop onboarding — Fireworks as a RECOMMENDED hero card with the official Fireworks logomark, routing to the BYOK key form; copy localized in en/ja/zh/zh-hant.

Addresses prior review feedback (from #28983)

  • The plugin-discovery test asserts the directory-count invariant (no hardcoded provider count); Fireworks is added to the representative spot-check.
  • Alias resolution is wired into — and tested against — the CLI/TUI resolvers, not only the profile.
  • The live smoke test drives the Hermes runtime (resolve_provider_client) rather than a raw OpenAI SDK client, so it exercises the real auth/config/runtime path.

Test plan

  • pytest tests/plugins/model_providers/test_fireworks_profile.py tests/hermes_cli/test_fireworks_provider.py tests/providers/test_plugin_discovery.py
  • Provider regression suite (parity / catalog / api-key / gmi) — no regressions
  • Desktop tsc --noEmit + onboarding vitest
  • Live: single-turn chat and attribution headers verified end-to-end against a Fireworks key
  • HERMES_LIVE_TESTS=1 FIREWORKS_API_KEY=... pytest tests/run_agent/test_fireworks_live.py (opt-in)

Fire Pass (fpk_) support is coming soon; the future wiring is kept as a commented-out scaffold in the plugin.

Bundle Fireworks AI as a first-class BYOK provider across the CLI, web/TUI,
and desktop onboarding.

- New model-provider plugin with attribution headers (HTTP-Referer / X-Title)
  so Fireworks can attribute Hermes traffic; PAYG-safe default aux + fallback
  models (accounts/fireworks/models/...), IDs tracking fw-ai/fireconnect.
- Registered in CANONICAL_PROVIDERS so it appears in the CLI/web/TUI pickers.
- Alias wiring (fireworks-ai, fw) into both CLI resolvers.
- First-class wiring: OPTIONAL_ENV_VARS, HERMES_OVERLAYS (FIREWORKS_BASE_URL
  override), doctor env hints. Live catalog + model_metadata are auto-derived.
- doctor: treat Fireworks' native slash-form IDs (accounts/fireworks/...) as
  valid, not aggregator vendor prefixes, so it no longer tells Fireworks users
  to switch to openrouter or drop the prefix.
- picker: plugin providers with no static curated list now lead with their
  profile fallback_models, so the default is an agentic chat model instead of
  whatever the live catalog returns first (Fireworks listed an image model,
  flux-*, ahead of its chat models).
- Desktop onboarding: Fireworks as a RECOMMENDED hero card with the official
  Fireworks logomark and a brand-purple badge, routing to the BYOK key form;
  i18n in en/ja/zh/zh-hant.
- Tests: profile contract, first-class wiring (both resolvers, overlay, config,
  doctor incl. the slash-form regression, aux headers, credentials), discovery
  spot-check, and a live smoke test driven through the Hermes runtime.

Fire Pass (fpk_) support is coming soon; the future wiring is kept as a
commented-out scaffold in the plugin.
@alt-glitch alt-glitch added type/feature New feature or request comp/cli CLI entry point, hermes_cli/, setup wizard comp/plugins Plugin system and bundled plugins comp/desktop Electron desktop app (apps/desktop/*) P3 Low — cosmetic, nice to have labels Jul 9, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Related: this consolidates the earlier Fireworks provider attempts -- #6054 and #15332 (still open), plus (per the PR body) supersedes #28983 and folds in #23541 / #3757 / #3564. It comes from Fireworks directly and is the single mergeable version of the cluster, so the earlier community PRs can be closed in its favor once a maintainer confirms. Cross-linking the open siblings for navigation; not marking anything a strict duplicate.

@tonydwb tonydwb left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

Verdict: Comment (new provider + desktop UI)

This PR adds Fireworks AI as a preferred provider, touching 20 files including desktop onboarding UI, i18n, provider config, and tests. The scope is broad but additive.

Looks Good

  • Clean provider integration pattern
  • Desktop UI SVG assets included
  • Multi-language support extended
  • No security concerns

@teknium1 teknium1 changed the title Add Fireworks AI as a preferred provider Add Fireworks AI Provider Jul 10, 2026
@teknium1 teknium1 closed this Jul 10, 2026
@teknium1 teknium1 added the sweeper:not-planned Sweeper: closed per standing maintainer policy (design direction) label Jul 10, 2026
@teknium1 teknium1 reopened this Jul 11, 2026
@teknium1

Copy link
Copy Markdown
Contributor

Fireworks AI support landed via PR #62593. This contribution was part of the Fireworks provider cluster credited in the salvage PR; thank you for the implementation and review work.

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

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard comp/desktop Electron desktop app (apps/desktop/*) comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have sweeper:not-planned Sweeper: closed per standing maintainer policy (design direction) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants