Skip to content

feat(providers): add Fireworks AI provider preset#772

Open
Ayush7614 wants to merge 3 commits into
Gitlawb:mainfrom
Ayush7614:feat/provider-fireworks
Open

feat(providers): add Fireworks AI provider preset#772
Ayush7614 wants to merge 3 commits into
Gitlawb:mainfrom
Ayush7614:feat/provider-fireworks

Conversation

@Ayush7614

@Ayush7614 Ayush7614 commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add Fireworks AI as an OpenAI-compatible catalog provider (fireworks)
  • Curated coding/general models for the model picker
  • Map fireworksfireworks-ai for models.dev hydration
  • README setup example and onboarding/catalog tests

Test plan

  • go test ./internal/providercatalog/ ./internal/providermodelcatalog/ ./internal/cli/ -count=1
  • go vet on changed packages
  • golangci-lint (unused/ineffassign/staticcheck) — 0 issues
  • govulncheck — no vulnerabilities
  • Manual: export FIREWORKS_API_KEY=... && zero providers setup fireworks --set-active

Summary by CodeRabbit

  • New Features
    • Added Fireworks AI as a supported provider, including required FIREWORKS_API_KEY handling and onboarding setup hints.
    • Added curated Fireworks AI models (DeepSeek V3, DeepSeek R1, Llama 3.3 70B, Qwen2.5 Coder 32B).
    • Ensured provider/model mapping works consistently for Fireworks AI across catalog and model resolution.
  • Documentation
    • Updated first-run provider examples to include FIREWORKS_API_KEY.
    • Added instructions to activate Fireworks AI via zero providers setup fireworks --set-active.
  • Tests
    • Expanded provider and model catalog test coverage for Fireworks AI.

Add an OpenAI-compatible Fireworks catalog entry with curated coding
models, models.dev alias mapping, onboarding tests, and README setup.
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9b5ab5f8-7678-40f5-a1ed-f5255cb94e33

📥 Commits

Reviewing files that changed from the base of the PR and between 14806ed and 627bbab.

📒 Files selected for processing (5)
  • internal/cli/provider_catalog_onboarding_test.go
  • internal/providercatalog/catalog.go
  • internal/providercatalog/catalog_test.go
  • internal/providermodelcatalog/catalog.go
  • internal/providermodelcatalog/catalog_test.go
🚧 Files skipped from review as they are similar to previous changes (4)
  • internal/providermodelcatalog/catalog_test.go
  • internal/cli/provider_catalog_onboarding_test.go
  • internal/providermodelcatalog/catalog.go
  • internal/providercatalog/catalog_test.go

Walkthrough

Fireworks AI is added as an OpenAI-compatible runtime provider with a descriptor, curated models, models.dev alias mapping, onboarding test coverage, and README setup instructions.

Changes

Fireworks AI provider

Layer / File(s) Summary
Register Fireworks provider
internal/providercatalog/catalog.go, internal/providercatalog/catalog_test.go, internal/cli/provider_catalog_onboarding_test.go
Adds the Fireworks descriptor and validates its catalog fields, ordering, and onboarding setup hint.
Add curated models and alias mapping
internal/providermodelcatalog/catalog.go, internal/providermodelcatalog/catalog_test.go, internal/providermodelcatalog/remote.go, internal/providermodelcatalog/remote_test.go
Adds four curated Fireworks models and maps the provider ID to fireworks-ai.
Document Fireworks setup
README.md
Documents FIREWORKS_API_KEY and the direct setup command.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant CLI
  participant ProviderCatalog
  participant ModelCatalog
  User->>CLI: run providers setup fireworks --set-active
  CLI->>ProviderCatalog: resolve fireworks descriptor
  ProviderCatalog-->>CLI: return endpoint, model, and API key configuration
  CLI->>ModelCatalog: resolve curated Fireworks models
  ModelCatalog-->>CLI: return provider model list
  CLI-->>User: activate Fireworks provider
Loading

Possibly related PRs

  • Gitlawb/zero#141: Modifies the provider catalog implementation extended by this provider.
  • Gitlawb/zero#161: Modifies onboarding catalog hint assertions used by the Fireworks coverage.
  • Gitlawb/zero#424: Adds a structurally similar OpenAI-compatible provider descriptor and catalog tests.

Suggested reviewers: stanaiml, 404khai, eli-l

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding the Fireworks AI provider preset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@internal/providermodelcatalog/catalog.go`:
- Around line 114-119: Update the Fireworks catalog entry in the provider model
mapping so the DeepSeek V3 model ID uses
accounts/fireworks/models/deepseek-v3-0324 instead of the current slug, while
preserving its existing description and other model entries.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ed105ef8-087d-433b-b5a7-ca39a7d2da8c

📥 Commits

Reviewing files that changed from the base of the PR and between da9fb50 and 823f06f.

📒 Files selected for processing (8)
  • README.md
  • internal/cli/provider_catalog_onboarding_test.go
  • internal/providercatalog/catalog.go
  • internal/providercatalog/catalog_test.go
  • internal/providermodelcatalog/catalog.go
  • internal/providermodelcatalog/catalog_test.go
  • internal/providermodelcatalog/remote.go
  • internal/providermodelcatalog/remote_test.go

Comment thread internal/providermodelcatalog/catalog.go
Keep upstream aimlapi provider ordering while retaining fireworks in
expectedCatalogIDs and TransportOpenAICompat expectations.
Update default and catalog model IDs to deepseek-v3-0324 per Fireworks API.
@Ayush7614

Copy link
Copy Markdown
Contributor Author

Addressed CodeRabbit review: updated Fireworks DeepSeek V3 model ID to accounts/fireworks/models/deepseek-v3-0324 in the provider catalog, model catalog, default model, and tests (627bbab).

@jatmn jatmn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I found issues that need to be addressed before this is ready.

Findings

  • [P1] Use a serverless-capable Fireworks default (and picker models)
    internal/providercatalog/catalog.go:141
    The documented flow saves this base-model ID and sends normal chat-completions traffic to the serverless /inference/v1 endpoint. Fireworks marks accounts/fireworks/models/deepseek-v3-0324 as “Serverless: Not supported”; its on-demand API instead requires a user deployment ID such as accounts/<account>/deployments/<deployment>. The three new curated fallback models in internal/providermodelcatalog/catalog.go are also not serverless-capable, so a user who follows the README cannot recover by changing models in the picker. Please select verified serverless model IDs for this ordinary API-key preset, or make the setup explicitly collect/provision a deployment model.

  • [P2] Link the required approved parent issue before accepting this external feature PR
    CONTRIBUTING.md:72
    The PR author is a CONTRIBUTOR, but the PR body and timeline contain no parent issue (and therefore no issue-approved label). The repository policy requires every community PR to link an already-approved issue, and explicitly says PRs opened before that approval are closed without review. Please link the approved issue or obtain the required approval before this proceeds.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants