[feat]: add Fireworks AI provider and Fire Pass support - #3564
Conversation
03de0a2 to
775797e
Compare
2464530 to
2624211
Compare
This squashes the Fireworks branch into one decision record on top of current main. It keeps Fireworks aligned with the existing API-key provider seams across auth, model catalogs, setup, CLI selection, runtime resolution, and the rebased test baselines needed to stay compatible with current upstream behavior. Constraint: Must preserve current main's provider architecture while keeping Fireworks usable end to end Rejected: Keep four-commit branch history | unnecessary review noise after repeated rebases Confidence: high Scope-risk: moderate Reversibility: clean Directive: On future rebases, keep current main behavior and reapply only Fireworks-specific provider deltas Tested: Fireworks provider pytest slice after squash Not-tested: Full pytest suite; known upstream failures remain outside the Fireworks slice
2624211 to
c9d5910
Compare
|
I reviewed this from a security/CI angle and didn’t find a blocking vulnerability in the Fireworks integration itself, but I did hit a few issues that seem worth fixing before merge. I prepared a local patch that does the following:
Targeted validation I ran locally:
One caveat: my local Docker repro got blocked by a Docker Hub timeout while pulling debian:13.4, so I couldn’t fully re-run the container path end-to-end. |
|
I reviewed and patched the Fireworks integration locally. The security hardening commit is:
What it fixes:
Validation I ran locally:
I attempted to push directly to the PR head branch, but GitHub denied my account with HTTP 403 despite maintainerCanModify being reported on the PR. I pushed the hardened branch here instead: You can cherry-pick the fix with:
If you want, I can also open a replacement PR against from my branch with the hardening only. |
|
Follow-up: I opened a clean hardening PR from my fork as well: That branch contains commit 75be251 and the targeted regression coverage. If direct branch updates remain blocked, you can merge or cherry-pick from there instead. |
|
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. |
What does this PR do?
Adds Fireworks AI as a first-class Hermes provider, including Fire Pass support.
This PR wires Fireworks into the existing provider/auth/setup/model-selection flows instead of treating it like a custom endpoint. It uses the standard Fireworks API key and base URL, supports the Fire Pass router model, and keeps Fire Pass
extensible by treating it as a small catalog rather than a one-off hardcoded branch.
For regular Fireworks usage, Hermes now fetches account-scoped Fireworks models at runtime. For Fire Pass, Hermes keeps a curated router list so the setup flow stays reliable even though Fire Pass is a separate product surface.
This approach fits Hermes’s existing provider architecture:
auth.pysetup.pymodels.pyRelated Issue
Fixes #3510
Type of Change
Changes Made
fireworksas an API-key provider inhermes_cli/auth.pyhermes_cli/config.pyhermes_cli/setup.pyhermes modelflows inhermes_cli/main.pyhermes_cli/models.pyagent/model_metadata.pytests/hermes_cli/test_models.pytests/hermes_cli/test_setup_model_provider.pytests/test_api_key_providers.pytests/test_setup_model_selection.pytests/test_model_provider_persistence.pytests/test_cli_provider_resolution.pytests/agent/test_model_metadata.pyHow to Test
source venv/bin/activate hermes setupChoose Fireworks AI (open models + Fire Pass) and verify the provider setup completes.
Verify model flows:
hermes model
hermes chat --provider fireworks -q "hello"
Confirm Fireworks appears as a normal provider and --provider fireworks is accepted.
Run the targeted regression slice:
source venv/bin/activate
python -m pytest tests/hermes_cli/test_models.py tests/hermes_cli/test_setup_model_provider.py tests/test_api_key_providers.py tests/test_model_provider_persistence.py tests/test_cli_provider_resolution.py tests/agent/test_model_metadata.py -q
Expected result:
Checklist
Code
Documentation & Housekeeping
Screenshots / Logs
Targeted verification:
$ source venv/bin/activate
$ python -m pytest tests/hermes_cli/test_models.py tests/hermes_cli/test_setup_model_provider.py tests/test_api_key_providers.py tests/test_model_provider_persistence.py tests/test_cli_provider_resolution.py tests/agent/test_model_metadata.py -q
257 passed, 24 warnings in 4.26s