@aion0/forge 0.6.1 → 0.8.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/.forge/mcp.json +8 -0
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-0a33c50d/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-2ba01c10/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-3156a8b3/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-316c6574/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-44a94121/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-4dd8dc2d/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-4dd8dc2d/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-d1757a50/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-d59c2fe2/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-d6a6ef23/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-e7f78b7a/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-e97c13c7/lib/help-docs/07-projects.md +1 -1
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/01-settings.md +5 -5
- package/.forge/worktrees/pipeline-ecd7cb0f/lib/help-docs/07-projects.md +1 -1
- package/CLAUDE.md +2 -2
- package/RELEASE_NOTES.md +101 -5
- package/app/api/auth/check/route.ts +18 -0
- package/app/api/browser-bridge/route.ts +70 -0
- package/app/api/chat/sessions/[id]/events/route.ts +17 -0
- package/app/api/chat/sessions/[id]/fork/route.ts +15 -0
- package/app/api/chat/sessions/[id]/messages/route.ts +21 -0
- package/app/api/chat/sessions/[id]/route.ts +23 -0
- package/app/api/chat/sessions/route.ts +12 -0
- package/app/api/chat/temper-ping/route.ts +18 -0
- package/app/api/chat-proxy/[...path]/route.ts +83 -0
- package/app/api/connector-tool/route.ts +38 -0
- package/app/api/connectors/[id]/settings/route.ts +112 -0
- package/app/api/connectors/route.ts +108 -0
- package/app/api/health/tools/route.ts +14 -0
- package/app/api/issue-scanner-gitlab/route.ts +95 -0
- package/app/api/jobs/[id]/reset_dedup/route.ts +15 -0
- package/app/api/jobs/[id]/route.ts +31 -0
- package/app/api/jobs/[id]/run/route.ts +44 -0
- package/app/api/jobs/[id]/runs/[runId]/route.ts +15 -0
- package/app/api/jobs/[id]/runs/route.ts +15 -0
- package/app/api/jobs/preview/route.ts +193 -0
- package/app/api/jobs/route.ts +36 -0
- package/app/api/notify/test/route.ts +39 -7
- package/app/api/pipelines/[id]/route.ts +10 -1
- package/app/api/pipelines/route.ts +16 -2
- package/app/api/plugins/route.ts +40 -8
- package/app/api/project-sessions/route.ts +50 -10
- package/app/api/settings/route.ts +13 -0
- package/app/chat/page.tsx +531 -0
- package/bin/forge-server.mjs +3 -1
- package/cli/chat.ts +283 -0
- package/cli/jobs.ts +176 -0
- package/cli/mw.ts +28 -1
- package/cli/worktree.ts +245 -0
- package/components/ConnectorsPanel.tsx +275 -0
- package/components/Dashboard.tsx +90 -37
- package/components/JobsView.tsx +361 -0
- package/components/LogViewer.tsx +12 -2
- package/components/PipelineView.tsx +275 -56
- package/components/PluginsPanel.tsx +3 -1
- package/components/SettingsModal.tsx +229 -40
- package/components/SkillsPanel.tsx +12 -4
- package/components/TerminalLauncher.tsx +3 -1
- package/components/WebTerminal.tsx +32 -9
- package/components/WorkspaceView.tsx +18 -10
- package/docs/Connector-DeclarativeExtract-Handoff.md +471 -0
- package/docs/Connector-DeclarativeExtract-Spec.md +364 -0
- package/docs/Implementation-Plan-Browser-Agent.md +487 -0
- package/docs/Jobs-Design.md +240 -0
- package/docs/LOCAL-DEPLOY.md +3 -3
- package/docs/RFC-Browser-Connectors.md +509 -0
- package/lib/agents/index.ts +44 -6
- package/lib/agents/types.ts +1 -1
- package/lib/browser-bridge-standalone.ts +317 -0
- package/lib/builtin-plugins/github-api.yaml +93 -0
- package/lib/builtin-plugins/gitlab.yaml +860 -0
- package/lib/builtin-plugins/mantis.probe.js +176 -0
- package/lib/builtin-plugins/mantis.yaml +964 -0
- package/lib/builtin-plugins/pmdb.yaml +178 -0
- package/lib/builtin-plugins/teams.yaml +913 -0
- package/lib/chat/__test__/smoke.ts +30 -0
- package/lib/chat/agent-loop.ts +523 -0
- package/lib/chat/bridge-client.ts +59 -0
- package/lib/chat/llm/anthropic.ts +99 -0
- package/lib/chat/llm/index.ts +20 -0
- package/lib/chat/llm/openai.ts +215 -0
- package/lib/chat/llm/types.ts +42 -0
- package/lib/chat/local-memory.ts +300 -0
- package/lib/chat/memory-store.ts +87 -0
- package/lib/chat/memory-tools.ts +157 -0
- package/lib/chat/protocols/http.ts +118 -0
- package/lib/chat/protocols/shell.ts +101 -0
- package/lib/chat/proxy.ts +51 -0
- package/lib/chat/session-store.ts +272 -0
- package/lib/chat/telegram-bridge.ts +276 -0
- package/lib/chat/temper.ts +281 -0
- package/lib/chat/tool-dispatcher.ts +190 -0
- package/lib/chat/types.ts +50 -0
- package/lib/chat-standalone.ts +286 -0
- package/lib/crypto.ts +1 -1
- package/lib/health.ts +131 -0
- package/lib/help-docs/00-overview.md +2 -1
- package/lib/help-docs/01-settings.md +46 -25
- package/lib/help-docs/07-projects.md +1 -1
- package/lib/help-docs/10-troubleshooting.md +10 -2
- package/lib/help-docs/16-gitlab-autofix.md +114 -0
- package/lib/help-docs/17-connectors.md +322 -0
- package/lib/help-docs/18-chrome-mcp.md +134 -0
- package/lib/help-docs/19-jobs.md +140 -0
- package/lib/help-docs/20-mantis-bug-fix.md +115 -0
- package/lib/help-docs/CLAUDE.md +10 -0
- package/lib/init.ts +137 -50
- package/lib/iso-time.ts +30 -0
- package/lib/issue-scanner-gitlab.ts +281 -0
- package/lib/jobs/dispatcher.ts +217 -0
- package/lib/jobs/scheduler.ts +334 -0
- package/lib/jobs/store.ts +319 -0
- package/lib/jobs/types.ts +117 -0
- package/lib/pipeline-scheduler.ts +1 -6
- package/lib/pipeline.ts +790 -10
- package/lib/plugins/registry.ts +133 -8
- package/lib/plugins/templates.ts +83 -0
- package/lib/plugins/types.ts +140 -1
- package/lib/session-watcher.ts +36 -10
- package/lib/settings.ts +65 -33
- package/lib/skills.ts +3 -1
- package/lib/task-manager.ts +50 -22
- package/lib/telegram-bot.ts +71 -0
- package/lib/terminal-standalone.ts +58 -36
- package/lib/workspace/orchestrator.ts +1 -0
- package/middleware.ts +10 -0
- package/package.json +3 -2
- package/scripts/bench/README.md +1 -1
- package/scripts/bench/tasks/01-text-utils/validator.sh +1 -1
- package/scripts/bench/tasks/02-pagination/setup.sh +1 -1
- package/scripts/bench/tasks/02-pagination/validator.sh +1 -1
- package/scripts/bench/tasks/03-bug-fix/setup.sh +1 -1
- package/scripts/bench/tasks/03-bug-fix/validator.sh +1 -1
- package/src/core/db/database.ts +21 -12
package/.forge/mcp.json
CHANGED
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
|
@@ -102,14 +102,14 @@ Profiles are reusable configurations that extend a base agent with custom enviro
|
|
|
102
102
|
|
|
103
103
|
```yaml
|
|
104
104
|
agents:
|
|
105
|
-
|
|
105
|
+
forge-k2:
|
|
106
106
|
base: claude
|
|
107
|
-
name:
|
|
108
|
-
model:
|
|
107
|
+
name: Forge K2
|
|
108
|
+
model: forge-k2
|
|
109
109
|
env:
|
|
110
110
|
ANTHROPIC_AUTH_TOKEN: sk-xxx
|
|
111
111
|
ANTHROPIC_BASE_URL: http://my-server:7001/
|
|
112
|
-
ANTHROPIC_SMALL_FAST_MODEL:
|
|
112
|
+
ANTHROPIC_SMALL_FAST_MODEL: forge-k2
|
|
113
113
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "true"
|
|
114
114
|
DISABLE_TELEMETRY: "true"
|
|
115
115
|
```
|
|
@@ -142,7 +142,7 @@ In the agent configuration, set the `profile` field to link a profile:
|
|
|
142
142
|
```yaml
|
|
143
143
|
agents:
|
|
144
144
|
claude:
|
|
145
|
-
profile:
|
|
145
|
+
profile: forge-k2 # Claude will use forge-k2's env/model when launched
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
This applies the profile's environment variables and model override whenever that agent is launched in a terminal.
|
|
@@ -61,7 +61,7 @@ There are two ways to open a terminal for a project:
|
|
|
61
61
|
|
|
62
62
|
When selecting an agent or profile for a terminal:
|
|
63
63
|
- **Base agents** (Claude, Codex, Aider): Use their default configuration
|
|
64
|
-
- **Profiles** (e.g.,
|
|
64
|
+
- **Profiles** (e.g., Forge K2, Claude Opus): Apply the profile's environment variables and model override
|
|
65
65
|
- Environment variables are exported in the terminal before launching the CLI
|
|
66
66
|
- Model is passed via `--model` flag (for claude-code agents)
|
|
67
67
|
|
package/CLAUDE.md
CHANGED
|
@@ -118,9 +118,9 @@ If a feature change affects user-facing behavior, update the corresponding help
|
|
|
118
118
|
- GitHub: `github.com/aiwatching/forge`
|
|
119
119
|
|
|
120
120
|
## Obsidian Vault
|
|
121
|
-
Location: /
|
|
121
|
+
Location: ~/Documents/obsidian/MyProject
|
|
122
122
|
When I ask about my notes, use bash to search and read files from this directory.
|
|
123
|
-
Example: find /
|
|
123
|
+
Example: find ~/Documents/obsidian -name "*.md" | head -20
|
|
124
124
|
|
|
125
125
|
<!-- forge:template:obsidian-vault -->
|
|
126
126
|
## Obsidian Vault
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,11 +1,107 @@
|
|
|
1
|
-
# Forge v0.
|
|
1
|
+
# Forge v0.8.0
|
|
2
2
|
|
|
3
|
-
Released: 2026-
|
|
3
|
+
Released: 2026-05-19
|
|
4
4
|
|
|
5
|
-
## Changes since v0.6.
|
|
5
|
+
## Changes since v0.6.3
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
- feat: job preview auto-fill + forge worktree CLI + faster startup
|
|
9
|
+
|
|
10
|
+
### Documentation
|
|
11
|
+
- docs: example pipeline for a Forge Job driving Mantis → branch triage
|
|
12
|
+
- docs: Jobs — scheduled connector polls that fan out to pipelines or chat
|
|
13
|
+
- docs: connector declarative-extract spec + handoff + updated help doc
|
|
14
|
+
- docs: connector packaging section + plugin category ADR
|
|
15
|
+
- docs: ADR for browser-agent data architecture (Temper write strategy)
|
|
16
|
+
- docs: RFC + implementation plan for browser-agent / connector system
|
|
6
17
|
|
|
7
18
|
### Other
|
|
8
|
-
-
|
|
19
|
+
- feat(chat): local memory fallback + simplified /chat web page
|
|
20
|
+
- feat(security): encrypt plugin secrets at rest + mask on API
|
|
21
|
+
- feat(pipeline): print fetch-bug-details + download-attachments to task log
|
|
22
|
+
- feat(mantis+pipeline): attachment download into worktree for vision analysis
|
|
23
|
+
- fix(pipeline): push-and-mr detects revoked glab token + prints fix cmd
|
|
24
|
+
- fix(pipeline): push-and-mr surfaces glab output + MR-list fallback
|
|
25
|
+
- feat(pipeline/mantis): fetch-bug-details exposes ALL fields downstream
|
|
26
|
+
- fix(pipeline-ui): fetch full pipeline on click — summary breaks detail view
|
|
27
|
+
- feat(jobs): expose {{total_matching}} placeholder in chat summary mode
|
|
28
|
+
- fix(mantis): regex escape — YAML | block passes backslashes verbatim
|
|
29
|
+
- fix(time): normalize all SQLite datetimes to ISO Z + add settings.timezone
|
|
30
|
+
- feat(jobs/mantis): target='main' chat dispatch + total_matching count
|
|
31
|
+
- fix(mantis): reset all filter fields before applying — no session leak
|
|
32
|
+
- feat(chat): persistent main session + clear-messages + fork
|
|
33
|
+
- feat(jobs): chat 'summary' dispatch mode — bundle N items into 1 LLM analysis
|
|
34
|
+
- perf(pipeline-ui): lazy-load runs per workflow, drop 5s full poll
|
|
35
|
+
- perf(watcher): defer initial sync + skip entry_count on first pass
|
|
36
|
+
- feat(pipeline-ui): 'Load older runs' button per workflow
|
|
37
|
+
- perf(pipeline): default limit 100 + ?workflow / ?before cursor
|
|
38
|
+
- perf(pipeline): mtime cache + summary mode for list — 1.6MB → <50KB
|
|
39
|
+
- perf(init): instrument 5s gap + demote skills sync failure to warn
|
|
40
|
+
- feat(teams): _probe diagnostic tool — DOM state in one call
|
|
41
|
+
- fix(chat): unwrap Node fetch 'fetch failed' with concrete remediation
|
|
42
|
+
- fix(teams): char-by-char typing for search input (keyboard events)
|
|
43
|
+
- feat(teams): v0.8.0 — send_message 3-tier resolver (left-rail → expand groups → search)
|
|
44
|
+
- feat(mantis): v0.4.3 — accurate filters via show_status + handler_id
|
|
45
|
+
- fix(pipeline): real workdir support + worktree-setup emits path only
|
|
46
|
+
- fix(pipeline): node tasks always start fresh Claude session
|
|
47
|
+
- fix(jobs): warn loudly when input_template keys render to empty
|
|
48
|
+
- feat(jobs): 'Force run' — reset dedup + run, one click
|
|
49
|
+
- fix(jobs): drop dedup_key from triggerPipeline — UNIQUE blocked replay
|
|
50
|
+
- feat(gitlab): full HTTP-API connector (32 tools) — replaces DOM scraping
|
|
51
|
+
- fix(mantis): bug notes always carry an id — fallback strategies + hash
|
|
52
|
+
- feat(chat): connector narrowing — /teams forces tool use; bare mention narrows tool list
|
|
53
|
+
- fix(chat): connector tools always surfaced + stronger 'use the tool' prompt
|
|
54
|
+
- fix(notify-test): explain 'fetch failed' (corp SSL / proxy / DNS)
|
|
55
|
+
- fix(notify-test): drop Markdown parse_mode + split chat_id + surface real reason
|
|
56
|
+
- fix(mantis): search_bugs — fix_schedule (version) filter + auto-pagination
|
|
57
|
+
- fix(mantis): search_bugs honours status + project_id, drops broken query syntax
|
|
58
|
+
- feat(health): startup probe + Pipelines banner for missing CLIs (glab/gh/git/jq)
|
|
59
|
+
- feat(pipeline): mantis-bug-fix-and-mr builtin + connector-tool API
|
|
60
|
+
- feat(mantis): notes carry stable note_id so Jobs can dedup on them
|
|
61
|
+
- feat(jobs): per-run verbose execution log persisted to job_runs.log
|
|
62
|
+
- feat(web): Jobs first in Automation, deep-link to logs filtered by job id
|
|
63
|
+
- fix(web): Automation sub-tabs squished header; new sub-toolbar row fix(terminal): Split Right/Down → SVG icons; mouse hint to tooltip feat(jobs): notes column — backfill + items_path mismatch surfaced
|
|
64
|
+
- feat(web): Automation hub — merge Tasks/Pipelines nav + add Jobs view
|
|
65
|
+
- feat(jobs): trace flow — Dashboard deep-link + CLI dispatches view
|
|
66
|
+
- feat(jobs): Jobs backend — scheduled connector polls + dispatch
|
|
67
|
+
- fix(settings): don't overwrite agent apiKey with masked placeholder
|
|
68
|
+
- feat(chat): port Temper memory to Forge — pinned blocks + memory_* tools
|
|
69
|
+
- feat(chat): reuse API agent profiles + add baseUrl (LiteLLM support)
|
|
70
|
+
- feat(bridge): drop pairing — bridge auths with the user's Forge token
|
|
71
|
+
- feat(connectors): Phase 3 — multi-protocol runtime (http, shell)
|
|
72
|
+
- feat(chat): Phase 5 part 3 — Telegram /chat command
|
|
73
|
+
- feat(chat): Phase 5 part 2 — forge chat CLI subcommand
|
|
74
|
+
- feat(chat): Phase 5 part 1 — chat-standalone (8408) + Next proxy
|
|
75
|
+
- fix(bridge): spawn browser-bridge from lib/init.ts too
|
|
76
|
+
- feat(chat): Phase 2 part 3 — HTTP API + WS push streaming
|
|
77
|
+
- feat(chat): Phase 2 part 2 — tool dispatcher + agent loop
|
|
78
|
+
- feat(chat): Phase 2 part 1 — chat backend foundation
|
|
79
|
+
- feat(bridge): Phase 1 — Forge↔Extension WebSocket bridge
|
|
80
|
+
- feat(connectors): teams v0.7.1 — send_message no longer requires confirmation
|
|
81
|
+
- feat(connectors): teams v0.7.0 — robust wait + send_message by name
|
|
82
|
+
- feat(connectors): teams v0.6.0 — read_chat + read_channel by name
|
|
83
|
+
- feat(connectors): teams v0.5.0 — channels support (list + read posts)
|
|
84
|
+
- feat(connectors): pmdb v0.2.0 — read-only Fortinet PMDB connector
|
|
85
|
+
- feat(connectors): teams v0.4.0 — send_message (destructive)
|
|
86
|
+
- feat(connectors): teams v0.3.0 — rewritten from real DOM probe
|
|
87
|
+
- feat(connectors): multi-runner — manifest declares execution context
|
|
88
|
+
- feat(connectors): teams (Microsoft Teams) — first-cut declarative manifest
|
|
89
|
+
- chore(connectors): bump gitlab to 0.2.0
|
|
90
|
+
- feat(connectors): gitlab — declarative manifest with 6 tools
|
|
91
|
+
- feat(connectors): declarative extract — manifest carries page + script
|
|
92
|
+
- chore(connectors): bump mantis to 0.2.0 — full tool set landed
|
|
93
|
+
- feat(mcp): user-managed external MCP servers in .mcp.json
|
|
94
|
+
- feat(connectors): mantis probe — auto-copy JSON result to clipboard
|
|
95
|
+
- fix(connectors): mantis probe — support 1.x classic URL + checkbox row marker
|
|
96
|
+
- feat(connectors): mantis selector probe sibling script
|
|
97
|
+
- chore(connectors): bump mantis + gitlab-browser to 0.1.1
|
|
98
|
+
- docs(connectors): DOM extraction is the default path, not REST APIs
|
|
99
|
+
- feat(ui): dedicated Connectors panel separate from Plugins
|
|
100
|
+
- fix(connectors-api): rely on middleware auth, drop explicit token check
|
|
101
|
+
- feat(api): connectors discovery + per-user settings endpoints
|
|
102
|
+
- feat(plugins): connector category + browser-side mode, mantis + gitlab manifests
|
|
103
|
+
- feat(gitlab): \`gitlab-issue-fix-and-review\` pipeline + scanner
|
|
104
|
+
- fix(mcp): mirror .forge/mcp.json to project root so claude picks it up
|
|
9
105
|
|
|
10
106
|
|
|
11
|
-
**Full Changelog**: https://github.com/aiwatching/forge/compare/v0.6.
|
|
107
|
+
**Full Changelog**: https://github.com/aiwatching/forge/compare/v0.6.3...v0.8.0
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* POST /api/auth/check — validate an X-Forge-Token.
|
|
3
|
+
*
|
|
4
|
+
* Used by other Forge processes (e.g. bridge-standalone) to verify a
|
|
5
|
+
* token without re-implementing the token store. Returns 200 on valid,
|
|
6
|
+
* 401 otherwise. Body is ignored — the token must be in the
|
|
7
|
+
* X-Forge-Token header (or forge-api-token cookie).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { NextResponse } from 'next/server';
|
|
11
|
+
import { isValidToken } from '../verify/route';
|
|
12
|
+
|
|
13
|
+
export async function POST(req: Request) {
|
|
14
|
+
if (!isValidToken(req)) {
|
|
15
|
+
return NextResponse.json({ ok: false }, { status: 401 });
|
|
16
|
+
}
|
|
17
|
+
return NextResponse.json({ ok: true });
|
|
18
|
+
}
|