@ipul-labs/forge 1.35.0 → 1.35.2

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.
Files changed (31) hide show
  1. package/README.md +13 -6
  2. package/dist/assets/{index-BmEuPeOG.js → index-BITzz5sg.js} +2 -2
  3. package/dist/assets/{index-CSH1OQYQ.css → index-UKkHh18Z.css} +1 -1
  4. package/dist/index.html +2 -2
  5. package/lib/server/app.d.ts.map +1 -1
  6. package/lib/server/app.js +3 -0
  7. package/lib/server/app.js.map +1 -1
  8. package/lib/server/forge/auth/createAuth.d.ts +1 -0
  9. package/lib/server/forge/auth/createAuth.d.ts.map +1 -1
  10. package/lib/server/forge/auth/testHarness.d.ts +1 -0
  11. package/lib/server/forge/auth/testHarness.d.ts.map +1 -1
  12. package/lib/server/forge/auth/users.d.ts +2 -0
  13. package/lib/server/forge/auth/users.d.ts.map +1 -1
  14. package/lib/server/forge/auth/users.js +4 -0
  15. package/lib/server/forge/auth/users.js.map +1 -1
  16. package/lib/server/forge/core/claudeAuth.d.ts +32 -0
  17. package/lib/server/forge/core/claudeAuth.d.ts.map +1 -0
  18. package/lib/server/forge/core/claudeAuth.js +28 -0
  19. package/lib/server/forge/core/claudeAuth.js.map +1 -0
  20. package/lib/server/forge/core/claudeClient.d.ts +16 -7
  21. package/lib/server/forge/core/claudeClient.d.ts.map +1 -1
  22. package/lib/server/forge/core/claudeClient.js +28 -10
  23. package/lib/server/forge/core/claudeClient.js.map +1 -1
  24. package/lib/server/forge/core/configStore.d.ts +2 -3
  25. package/lib/server/forge/core/configStore.d.ts.map +1 -1
  26. package/lib/server/forge/core/configStore.js +7 -8
  27. package/lib/server/forge/core/configStore.js.map +1 -1
  28. package/lib/server/forge/routes.d.ts.map +1 -1
  29. package/lib/server/forge/routes.js +17 -7
  30. package/lib/server/forge/routes.js.map +1 -1
  31. package/package.json +3 -5
package/README.md CHANGED
@@ -8,11 +8,11 @@ Built on: Claude Code CLI · GitLab / GitHub / Azure DevOps · Kubernetes
8
8
 
9
9
  ## Why Forge
10
10
 
11
- **The CI refinement loop is the thing.** Every other AI coding tool hands off after the PR is open. Forge keeps going: when your pipeline fails, it grabs the last 150 lines of the failed job log, feeds them back to Claude with the original fix context, generates a targeted patch, and commits it to the branch — automatically. No human has to read the stack trace, translate it into a prompt, and paste it somewhere. The loop closes itself.
11
+ **The CI refinement loop is the thing.** Most tools stop once the PR is open. Forge keeps going: when your pipeline fails, it grabs the last 150 lines of the failed job log, feeds them back to Claude with the original fix context, generates a targeted patch, and commits it to the branch — automatically. No human has to read the stack trace, translate it into a prompt, and paste it somewhere. The loop closes itself.
12
12
 
13
13
  Everything else fills in the gaps that matter for real teams:
14
14
 
15
- - **No per-token cost** — Claude runs via the `claude` CLI using your existing Claude subscription, not API credits. Heavy use doesn't trigger a bill. Hosted workspaces can instead save their own Anthropic API key (see [Claude billing](#claude-billing)).
15
+ - **Free and open** — MIT licensed and free to self-host. Claude runs through the `claude` CLI on your own Anthropic API key; a one-person install can use that person's own Claude Code sign-in instead (see [Claude access](#claude-access)).
16
16
  - **Multi-provider** — GitLab, GitHub, and Azure DevOps are all first-class. Switch providers with a single env var; all normalized data shapes stay the same.
17
17
  - **Self-hosted** — your code never leaves your infrastructure. The backend runs wherever you deploy it; AI calls go to Anthropic (or a local gateway via OpenClaw).
18
18
  - **Two-pass analysis keeps context focused** — Claude first identifies the 6 most relevant files, then reads only those when proposing the fix. This produces sharper diffs than dumping the whole repo into one prompt.
@@ -172,7 +172,7 @@ forge reset-password <email> # Locked out? Set a new password on the Forge host
172
172
  | `FORGE_TOKEN` | — | Admin credential for automation; also accepted as the remote setup code. Never sent to the browser |
173
173
  | `FORGE_REPOS` | Yes | Comma-separated repo list; first entry is the primary project |
174
174
  | `SCM_PROVIDER` | — | `gitlab` (default) · `github` · `azuredevops` |
175
- | `ANTHROPIC_API_KEY` | — | Enables live model list from Anthropic; falls back to hardcoded list. Never used to run Claude |
175
+ | `ANTHROPIC_API_KEY` | — | Anthropic API key Claude runs on (a key saved in Settings wins). Required once more than one member uses Forge. Also enables the live model list |
176
176
  | `FORGE_MODEL` | — | Override default model (default: `claude-sonnet-4-6`) |
177
177
  | `FORGE_AGENT_MODE` | — | `structured` (default) · `agentic` — how Claude proposes changes (see [Agent modes](#agent-modes)) |
178
178
  | `PORT` | — | HTTP server port (default: `5001`) |
@@ -193,11 +193,16 @@ forge reset-password <email> # Locked out? Set a new password on the Forge host
193
193
  | `FORGE_COOKIE_SECURE` | — | Override Secure cookies (on by default in production) |
194
194
  | `FORGE_DISABLE_SERVICE_TOKEN` | — | `1` stops `FORGE_TOKEN` working as an API credential once setup is done |
195
195
 
196
- ### Claude billing
196
+ ### Claude access
197
197
 
198
- By default the `claude` CLI runs on the Claude Code subscription it is logged in with, and Forge strips `ANTHROPIC_API_KEY` from its environment so an env key can't quietly switch it to API credits.
198
+ Forge runs Claude through the `claude` CLI on one of two kinds of access, and it enforces the choice on the server:
199
199
 
200
- An admin can save a workspace **Anthropic API key** in Settings → Connections. Claude then runs on that account's API credits instead. This is the mode for a hosted Forge serving other teams, since a personal subscription is only for its owner's own use. The key is encrypted at rest like SCM tokens, shown back only as a hint, and clearing it returns Claude to the subscription.
200
+ - **An Anthropic API key** (Settings → Connections, or `ANTHROPIC_API_KEY`). Claude always runs on it when one is set. The key is encrypted at rest like SCM tokens and only ever shown back as a hint.
201
+ - **Your own Claude Code sign-in**, only while Forge has one active member. Anthropic's terms let a Claude Free, Pro or Max subscription be used for its owner's own use, not routed on behalf of other people, so as soon as a second member is active Forge refuses to start Claude until a key is added. Settings shows which mode is in use and says when a key is required.
202
+
203
+ See Anthropic's [Claude Code legal and compliance page](https://code.claude.com/docs/en/legal-and-compliance) for the current rules.
204
+
205
+ Want an assistant that works on your own Claude subscription on your own Mac, hands-off? That's [Steward](https://useafk.dev/steward).
201
206
 
202
207
  ### Provider credentials
203
208
 
@@ -497,3 +502,5 @@ Questions or problems with Forge: support@ipullabs.com
497
502
  ## License
498
503
 
499
504
  MIT. Forge is free to use, change and share, for personal or commercial work. The full license text is in the `LICENSE` file that ships with the package.
505
+
506
+ Forge is made by iPuL Labs and is not affiliated with or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic, PBC; GitLab, GitHub and Azure DevOps belong to their owners.