@proxysoul/soulforge 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,10 +10,11 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
+ <a href="https://www.npmjs.com/package/@proxysoul/soulforge"><img src="https://img.shields.io/npm/v/@proxysoul/soulforge?label=version&color=brightgreen" alt="Version" /></a>
13
14
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-BSL%201.1-blue.svg" alt="License" /></a>
14
- <a href="#"><img src="https://img.shields.io/badge/version-1.7.0-brightgreen.svg" alt="Version" /></a>
15
+ <a href="https://github.com/ProxySoul/soulforge/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/ProxySoul/soulforge/ci.yml?label=CI" alt="CI" /></a>
16
+ <a href="https://github.com/ProxySoul/soulforge/actions/workflows/playground.yml"><img src="https://img.shields.io/github/actions/workflow/status/ProxySoul/soulforge/headless-forge.yml?label=Soul" alt="Headless Forge" /></a>
15
17
  <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-strict-blue.svg" alt="TypeScript" /></a>
16
- <img src="https://img.shields.io/badge/tests-2296%20passing-brightgreen.svg" alt="Tests" />
17
18
  <a href="https://bun.sh"><img src="https://img.shields.io/badge/runtime-Bun-f472b6.svg" alt="Bun" /></a>
18
19
  </p>
19
20
 
@@ -62,7 +63,7 @@ SoulForge doesn't work that way. On startup, it builds a **live dependency graph
62
63
 
63
64
  - **Lock-in mode.** Hides agent narration during work, shows only tool activity and the final answer. Toggle via `/lock-in` or config.
64
65
  - **Embedded Neovim.** Your actual config, plugins, and LSP servers. The AI works through the same editor you use. [Deep dive →](docs/architecture.md)
65
- - **12 providers.** Anthropic, OpenAI, Google, xAI, GitHub Copilot, GitHub Models, Ollama, OpenRouter, LLM Gateway, Vercel AI Gateway, Proxy, and any OpenAI-compatible API.
66
+ - **17 providers.** Anthropic, OpenAI, Google, xAI, Groq, DeepSeek, Mistral, Amazon Bedrock, Fireworks, GitHub Copilot, GitHub Models, Ollama, OpenRouter, LLM Gateway, Vercel AI Gateway, Proxy, and any OpenAI-compatible API.
66
67
  - **Task router.** Assign different models to different jobs. Spark agents (explore/investigate) and ember agents (code edits) can each use different models. You pick what goes where. [Deep dive →](docs/architecture.md)
67
68
  - **Code execution (Smithy).** Sandboxed code execution via Anthropic's `code_execution` tool. The agent can run Python to process data, do calculations, or batch tool calls programmatically.
68
69
  - **User steering.** Type while the agent works. Messages queue up and reach the agent at the next step. [Deep dive →](docs/steering.md)
@@ -87,7 +88,7 @@ SoulForge doesn't work that way. On startup, it builds a **live dependency graph
87
88
  | **Task routing** | Per-task model assignment (spark, ember, web search, verify, desloppify, compact) | Single model | Single model | Per-agent model | Single model |
88
89
  | **Compound tools** | `read` (batch + surgical), `multi_edit` (atomic), `rename_symbol`, `move_symbol`, `rename_file`, `refactor`, `project` | Rename via LSP | — | — | — |
89
90
  | **Editor** | Embedded Neovim (your config, your plugins) | No editor | No editor | No editor | No editor |
90
- | **Providers** | 12 + custom OpenAI-compatible | Anthropic only | Multi-model | OpenAI only | 100+ LLMs |
91
+ | **Providers** | 17 + custom OpenAI-compatible | Anthropic only | Multi-model | OpenAI only | 100+ LLMs |
91
92
  | **License** | BSL 1.1 (source-available) | Proprietary | Proprietary | Apache 2.0 | Apache 2.0 |
92
93
 
93
94
  > *Competitor features verified as of March 29, 2026. [Let us know](https://github.com/ProxySoul/soulforge/issues) if something's changed.*
@@ -206,6 +207,11 @@ soulforge --headless --diff "fix the bug" # Show changed files
206
207
  | [**OpenAI**](https://platform.openai.com/) | `OPENAI_API_KEY` |
207
208
  | [**Google**](https://aistudio.google.com/) | `GOOGLE_GENERATIVE_AI_API_KEY` |
208
209
  | [**xAI**](https://console.x.ai/) | `XAI_API_KEY` |
210
+ | [**Groq**](https://console.groq.com/) | `GROQ_API_KEY` |
211
+ | [**DeepSeek**](https://platform.deepseek.com/) | `DEEPSEEK_API_KEY` |
212
+ | [**Mistral**](https://console.mistral.ai/) | `MISTRAL_API_KEY` |
213
+ | [**Amazon Bedrock**](https://aws.amazon.com/bedrock/) | `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` + `AWS_REGION` |
214
+ | [**Fireworks**](https://fireworks.ai/) | `FIREWORKS_API_KEY` |
209
215
  | [**GitHub Copilot**](https://github.com/features/copilot) | OAuth token from IDE ([setup](docs/copilot-provider.md)) |
210
216
  | [**GitHub Models**](https://github.com/marketplace/models) | `GITHUB_MODELS_API_KEY` (PAT with `models:read`) |
211
217
  | [**Ollama**](https://ollama.ai) | Auto-detected |
@@ -214,6 +220,8 @@ soulforge --headless --diff "fix the bug" # Show changed files
214
220
  | [**Proxy**](https://github.com/router-for-me/CLIProxyAPI) | `PROXY_API_KEY` |
215
221
  | **Custom** | Any OpenAI-compatible API |
216
222
 
223
+ **Amazon Bedrock**: Uses AWS IAM credentials — set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_REGION` (defaults to `us-east-1`). Supports `AWS_SESSION_TOKEN` for temporary credentials.
224
+
217
225
  **GitHub Copilot**: Sign in via your IDE (VS Code, JetBrains), copy `oauth_token` from `~/.config/github-copilot/apps.json`, save with `/keys` or `--set-key copilot`. [Full setup guide](docs/copilot-provider.md).
218
226
 
219
227
  **GitHub Models**: Free playground API with per-token billing. Create a fine-grained PAT with `models:read` scope. Lower rate limits than Copilot.
@@ -223,11 +231,11 @@ Add custom providers in config, no code changes:
223
231
  ```json
224
232
  {
225
233
  "providers": [{
226
- "id": "deepseek",
227
- "name": "DeepSeek",
228
- "baseURL": "https://api.deepseek.com/v1",
229
- "envVar": "DEEPSEEK_API_KEY",
230
- "models": ["deepseek-chat", "deepseek-coder"]
234
+ "id": "my-provider",
235
+ "name": "My Provider",
236
+ "baseURL": "https://api.example.com/v1",
237
+ "envVar": "MY_PROVIDER_API_KEY",
238
+ "models": ["model-a", "model-b"]
231
239
  }]
232
240
  }
233
241
  ```