Add Fireworks AI Provider - #61182
Conversation
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.
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
left a comment
There was a problem hiding this comment.
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
|
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. |
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_KEYand 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
plugins/model-providers/fireworks/) —ProviderProfilewith attribution headers (HTTP-Referer/X-Title), and PAYG-safe default aux + fallback models. Model IDs track the canonical Fireworks catalog (fw-ai/fireconnect).hermes model, the web dashboard, and the TUI.fireworks-ai/fwresolve through both CLI resolvers (hermes_cli/providers.pyandhermes_cli/models.py), not just the plugin registry.OPTIONAL_ENV_VARS,HERMES_OVERLAYS(with aFIREWORKS_BASE_URLoverride), and doctor env hints. The live catalog andmodel_metadatareverse-mapping are auto-derived from the profile.accounts/fireworks/...) as valid rather than aggregator vendor prefixes, so it no longer suggests switching to openrouter / dropping the prefix.fallback_models, so the default is an agentic chat model instead of whatever the live catalog returns first.Addresses prior review feedback (from #28983)
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.pytsc --noEmit+ onboarding vitestHERMES_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.