Skip to content

feat: add Synthetic LLM provider support#162

Open
meneizs wants to merge 3 commits into
joelhooks:mainfrom
meneizs:feat/add-synthetic-provider
Open

feat: add Synthetic LLM provider support#162
meneizs wants to merge 3 commits into
joelhooks:mainfrom
meneizs:feat/add-synthetic-provider

Conversation

@meneizs

@meneizs meneizs commented Feb 5, 2026

Copy link
Copy Markdown

Summary

Add support for Synthetic as a first-class LLM provider in swarm-tools.

New Models Added

Coordinator Models:

  • synthetic/hf:moonshotai/Kimi-K2.5 - Strong reasoning model
  • synthetic/hf:deepseek-ai/DeepSeek-V3.2 - Advanced reasoning

Worker Models:

  • synthetic/hf:moonshotai/Kimi-K2.5 - Strong reasoning
  • synthetic/hf:MiniMaxAI/MiniMax-M2.1 - Fast and cost-effective
  • synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct - Powerful coding model

Lite Models:

  • synthetic/hf:MiniMaxAI/MiniMax-M2.1 - Fast and cost-effective
  • synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct - Powerful coding model

Why

  • Synthetic provides OpenAI-compatible API at https://api.synthetic.new/openai/v1
  • Enables users already configured with Synthetic in OpenCode to use swarm-tools
  • Cost-effective alternative for multi-agent workflows

Testing

  • All tests passing (16/16)
  • Manual testing confirms models appear in swarm setup flow
  • Includes test coverage for new models

Refs: #148, #150

Summary by CodeRabbit

  • New Features

    • Synthetic is now available as a first-class LLM provider.
    • New model options added: Kimi K2.5, DeepSeek V3.2, MiniMax M2.1, and Qwen3 Coder 480B.
    • Models organized by task type: Coordinator (complex), Worker (parallel), Lite (docs/tests/simple edits).
    • Default model selections and setup prompts updated to include Synthetic options.
  • Documentation

    • Added usage guidance, model enumeration, requirements, and integration notes.
  • Tests

    • Added tests verifying Synthetic model selection.

Add support for Synthetic as a first-class provider with models:
- synthetic/hf:moonshotai/Kimi-K2.5 (coordinator/worker)
- synthetic/hf:deepseek-ai/DeepSeek-V3.2 (coordinator)
- synthetic/hf:MiniMaxAI/MiniMax-M2.1 (worker/lite)
- synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct (worker/lite)
Includes test coverage and proper changeset.
Refs: joelhooks#148, joelhooks#150
@vercel

vercel Bot commented Feb 5, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the joelhooks' projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Feb 5, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds Synthetic as a first-class LLM provider to swarm-tools, registering new Synthetic models (Kimi K2.5, DeepSeek V3.2, MiniMax M2.1, Qwen3 Coder 480B) across coordinator/worker/lite selections and adding tests to verify explicit synthetic model selection.

Changes

Cohort / File(s) Summary
Changeset Documentation
\.changeset/add-synthetic-provider.md
New changeset documenting Synthetic as a first-class LLM provider; enumerates Coordinator/Worker/Lite models, usage, requirements, and references.
Model Configuration / CLI
packages/opencode-swarm-plugin/bin/swarm.ts
Added Synthetic model options to selection lists and propagated choices through interactive/default/reinstall paths (Coordinator: Kimi K2.5, DeepSeek V3.2; Worker: Kimi K2.5, MiniMax M2.1, Qwen3 Coder 480B; Lite defaults updated).
Test Coverage
packages/opencode-swarm-plugin/src/model-selection.test.ts
Added tests verifying that explicit model fields in subtasks return exact synthetic model identifiers (Kimi K2.5, DeepSeek V3.2, MiniMax M2.1).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped into code with a joyful nibble,

added Synthetic pals to every nibble,
Kimi, DeepSeek, MiniMax join the run,
Qwen3 Coder scribbles lines of fun,
Tests now sparkle — a tiny hop, well done! 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 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 (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add Synthetic LLM provider support' accurately summarizes the main change: adding Synthetic as a first-class LLM provider with multiple models registered for different roles.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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 and usage tips.

@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

🤖 Fix all issues with AI agents
In `@packages/opencode-swarm-plugin/bin/swarm.ts`:
- Around line 375-384: The WORKER_MODELS constant is missing the Qwen3-Coder
entry while the interactive worker selection includes
"synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct"; add that same value and
label to the WORKER_MODELS array so both lists stay consistent (update the
WORKER_MODELS entry list to include value
"synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct" and a matching label like
"Synthetic Qwen3-Coder"), ensuring any code that reads WORKER_MODELS (e.g.,
validation or listings) will recognize the model.
🧹 Nitpick comments (1)
.changeset/add-synthetic-provider.md (1)

1-39: Well-documented changeset with comprehensive details.

The changeset clearly describes what changed, why it matters, usage instructions, and requirements. The 🐝 emoji is appropriately included per coding guidelines.

One optional enhancement: The coding guidelines suggest including a quote from pdf-brain.pdf for context. If there's a relevant passage about multi-agent coordination or provider flexibility, consider adding it for thematic consistency.

,

Comment thread packages/opencode-swarm-plugin/bin/swarm.ts
Nelson Neto added 2 commits February 5, 2026 10:20
Adds synthetic/hf:Qwen/Qwen3-Coder-480B-A35B-Instruct to WORKER_MODELS
array to maintain consistency with interactive selection prompts.

Refs: CodeRabbit feedback on PR joelhooks#162
Add descriptive JSDoc comments to COORDINATOR_MODELS and WORKER_MODELS
constants for better documentation and CodeRabbit coverage.

Refs: CodeRabbit feedback on PR joelhooks#162
@meneizs

meneizs commented Feb 5, 2026

Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Feb 5, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Edo78

Edo78 commented May 9, 2026

Copy link
Copy Markdown

Insted of having an hardcoded list of models shouldn't be way better to run opencode models to obtain the dynamic list of supported models and providers?

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