@cluesmith/codev 3.0.0-rc.8 → 3.0.0-rc.9
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/bin/af.js +2 -2
- package/bin/afx.js +8 -0
- package/bin/consult.js +2 -1
- package/bin/team.js +2 -1
- package/dashboard/dist/assets/{index-nr0cXxtf.css → index-Bs8I7N2s.css} +1 -1
- package/dashboard/dist/assets/{index-CTrlY11L.js → index-DleIqu7L.js} +32 -32
- package/dashboard/dist/assets/index-DleIqu7L.js.map +1 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/agent-farm/cli.js +12 -12
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +4 -4
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +23 -12
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.js +8 -8
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/cron.js +1 -1
- package/dist/agent-farm/commands/cron.js.map +1 -1
- package/dist/agent-farm/commands/db.d.ts +3 -3
- package/dist/agent-farm/commands/db.js +4 -4
- package/dist/agent-farm/commands/db.js.map +1 -1
- package/dist/agent-farm/commands/open.js +2 -2
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/rename.js +1 -1
- package/dist/agent-farm/commands/rename.js.map +1 -1
- package/dist/agent-farm/commands/send.js +3 -3
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.js +3 -3
- package/dist/agent-farm/commands/shell.js.map +1 -1
- package/dist/agent-farm/commands/spawn-roles.d.ts +1 -1
- package/dist/agent-farm/commands/spawn-roles.js +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +80 -13
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts +6 -6
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +42 -23
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +43 -2
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/team-update.d.ts +1 -1
- package/dist/agent-farm/commands/team-update.js +1 -1
- package/dist/agent-farm/commands/team.d.ts +1 -1
- package/dist/agent-farm/commands/team.js +1 -1
- package/dist/agent-farm/commands/tower-cloud.d.ts +2 -2
- package/dist/agent-farm/commands/tower-cloud.js +3 -3
- package/dist/agent-farm/commands/tower-cloud.js.map +1 -1
- package/dist/agent-farm/commands/tower.js +2 -2
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/lib/cloud-config.js +2 -2
- package/dist/agent-farm/lib/cloud-config.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +1 -1
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/message-write.d.ts +24 -0
- package/dist/agent-farm/servers/message-write.d.ts.map +1 -0
- package/dist/agent-farm/servers/message-write.js +63 -0
- package/dist/agent-farm/servers/message-write.js.map +1 -0
- package/dist/agent-farm/servers/overview.d.ts +2 -0
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +2 -0
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/send-buffer.d.ts +4 -3
- package/dist/agent-farm/servers/send-buffer.d.ts.map +1 -1
- package/dist/agent-farm/servers/send-buffer.js +7 -4
- package/dist/agent-farm/servers/send-buffer.js.map +1 -1
- package/dist/agent-farm/servers/tower-cron-parser.js +1 -1
- package/dist/agent-farm/servers/tower-cron-parser.js.map +1 -1
- package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-cron.js +4 -5
- package/dist/agent-farm/servers/tower-cron.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +3 -3
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +9 -16
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +2 -2
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +47 -18
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +2 -2
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +9 -6
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +12 -6
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/types.d.ts +9 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +11 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +21 -0
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/harness.d.ts +85 -0
- package/dist/agent-farm/utils/harness.d.ts.map +1 -0
- package/dist/agent-farm/utils/harness.js +212 -0
- package/dist/agent-farm/utils/harness.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.js +2 -2
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +6 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +114 -131
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +54 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/artifacts.d.ts +59 -0
- package/dist/commands/porch/artifacts.d.ts.map +1 -0
- package/dist/commands/porch/artifacts.js +358 -0
- package/dist/commands/porch/artifacts.js.map +1 -0
- package/dist/commands/porch/checks.d.ts +8 -1
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +98 -1
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +8 -7
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +49 -45
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +18 -46
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/notify.d.ts +2 -2
- package/dist/commands/porch/notify.js +5 -5
- package/dist/commands/porch/notify.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts +2 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +19 -7
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/state.d.ts +5 -2
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +38 -6
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/lib/config.d.ts +14 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +7 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/forge-contracts.d.ts +6 -0
- package/dist/lib/forge-contracts.d.ts.map +1 -1
- package/dist/lib/forge-contracts.js.map +1 -1
- package/dist/lib/team-github.d.ts +2 -0
- package/dist/lib/team-github.d.ts.map +1 -1
- package/dist/lib/team-github.js +4 -4
- package/dist/lib/team-github.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +2 -0
- package/dist/terminal/pty-manager.js.map +1 -1
- package/package.json +2 -1
- package/scripts/forge/github/issue-list.sh +2 -2
- package/scripts/forge/github/pr-list.sh +2 -2
- package/skeleton/.claude/skills/afx/SKILL.md +146 -0
- package/skeleton/.claude/skills/codev/SKILL.md +3 -3
- package/skeleton/DEPENDENCIES.md +1 -1
- package/skeleton/builders.md +4 -4
- package/skeleton/protocols/air/builder-prompt.md +6 -6
- package/skeleton/protocols/air/prompts/pr.md +2 -2
- package/skeleton/protocols/air/protocol.md +1 -1
- package/skeleton/protocols/aspir/builder-prompt.md +6 -6
- package/skeleton/protocols/aspir/protocol.json +1 -1
- package/skeleton/protocols/aspir/protocol.md +1 -1
- package/skeleton/protocols/bugfix/builder-prompt.md +6 -6
- package/skeleton/protocols/bugfix/prompts/pr.md +1 -1
- package/skeleton/protocols/maintain/protocol.md +1 -1
- package/skeleton/protocols/spike/builder-prompt.md +1 -1
- package/skeleton/protocols/spike/protocol.md +3 -3
- package/skeleton/protocols/spir/builder-prompt.md +5 -5
- package/skeleton/protocols/spir/protocol.json +1 -1
- package/skeleton/protocols/spir/protocol.md +2 -2
- package/skeleton/resources/commands/agent-farm.md +82 -82
- package/skeleton/resources/commands/codev.md +1 -1
- package/skeleton/resources/commands/consult.md +1 -1
- package/skeleton/resources/commands/overview.md +14 -14
- package/skeleton/resources/risk-triage.md +1 -1
- package/skeleton/resources/workflow-reference.md +14 -14
- package/skeleton/roles/architect.md +39 -39
- package/skeleton/roles/builder.md +13 -13
- package/skeleton/templates/AGENTS.md +2 -2
- package/skeleton/templates/CLAUDE.md +2 -2
- package/skeleton/templates/cheatsheet.md +10 -10
- package/templates/3d-viewer.html +16 -18
- package/templates/tower.html +1 -1
- package/dashboard/dist/assets/index-CTrlY11L.js.map +0 -1
- package/skeleton/.claude/skills/af/SKILL.md +0 -146
|
@@ -37,7 +37,7 @@ Follow this 3-step workflow. You can skip or reorder steps as the investigation
|
|
|
37
37
|
- Write findings to `codev/spikes/<id>-<name>.md` using the template
|
|
38
38
|
- Provide a clear feasibility verdict: Feasible / Not Feasible / Feasible with Caveats
|
|
39
39
|
- Commit the findings document
|
|
40
|
-
- Notify the architect: `
|
|
40
|
+
- Notify the architect: `afx send architect "Spike <id> complete. Verdict: [verdict]"`
|
|
41
41
|
|
|
42
42
|
## Key Principles
|
|
43
43
|
|
|
@@ -25,8 +25,8 @@ Time-boxed technical feasibility exploration. Answer "Can we do X?" and "What wo
|
|
|
25
25
|
## Spawning a Spike
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
afx spawn --task "Can we use WebSockets for real-time updates?" --protocol spike
|
|
29
|
+
afx spawn --task "What would it take to support SQLite FTS?" --protocol spike
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
Spikes are always soft mode — no porch orchestration, no gates, no consultation.
|
|
@@ -83,7 +83,7 @@ POC code from the iterate step is committed to the spike branch alongside the fi
|
|
|
83
83
|
|
|
84
84
|
In all cases, notify the architect:
|
|
85
85
|
```bash
|
|
86
|
-
|
|
86
|
+
afx send architect "Spike <id> complete. Verdict: [feasible/not feasible/caveats]"
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
## Git Workflow
|
|
@@ -54,11 +54,11 @@ Follow the implementation plan at: `{{plan.path}}`
|
|
|
54
54
|
{{/if}}
|
|
55
55
|
|
|
56
56
|
## Notifications
|
|
57
|
-
Always use `
|
|
58
|
-
- **Gate reached**: `
|
|
59
|
-
- **PR ready**: `
|
|
60
|
-
- **PR merged**: `
|
|
61
|
-
- **Blocked**: `
|
|
57
|
+
Always use `afx send architect "..."` to notify the architect at key moments:
|
|
58
|
+
- **Gate reached**: `afx send architect "Project {{project_id}}: <gate-name> ready for approval"`
|
|
59
|
+
- **PR ready**: `afx send architect "PR #N ready for review (project {{project_id}})"`
|
|
60
|
+
- **PR merged**: `afx send architect "Project {{project_id}} complete. PR merged. Ready for cleanup."`
|
|
61
|
+
- **Blocked**: `afx send architect "Blocked on project {{project_id}}: [reason]"`
|
|
62
62
|
|
|
63
63
|
## Handling Flaky Tests
|
|
64
64
|
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"checks": {
|
|
55
55
|
"plan_exists": "test -f codev/plans/${PROJECT_TITLE}.md",
|
|
56
|
-
"has_phases_json": "grep -
|
|
56
|
+
"has_phases_json": "grep -qE '\"phases\"\\s*:' codev/plans/${PROJECT_TITLE}.md",
|
|
57
57
|
"min_two_phases": "grep -o '\"id\": *\"[^\"]*\"' codev/plans/${PROJECT_TITLE}.md | wc -l | awk '$1 >= 2 {exit 0} {exit 1}'"
|
|
58
58
|
},
|
|
59
59
|
"gate": "plan-approval",
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
## Prerequisites
|
|
10
10
|
|
|
11
11
|
**Clean Worktree Before Spawning Builders**:
|
|
12
|
-
- All specs, plans, and local changes **MUST be committed** before `
|
|
12
|
+
- All specs, plans, and local changes **MUST be committed** before `afx spawn`
|
|
13
13
|
- Builders work in git worktrees branched from HEAD — uncommitted files are invisible
|
|
14
14
|
- This includes `codev update` results, spec drafts, and plan approvals
|
|
15
|
-
- The `
|
|
15
|
+
- The `afx spawn` command enforces this (use `--force` to override)
|
|
16
16
|
|
|
17
17
|
**Required for Multi-Agent Consultation**:
|
|
18
18
|
- The `consult` CLI must be available (installed with `npm install -g @cluesmith/codev`)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# afx - Agent Farm CLI
|
|
2
2
|
|
|
3
|
-
The `
|
|
3
|
+
The `afx` (agent-farm) command manages multi-agent orchestration for software development. It spawns and manages builders in isolated git worktrees.
|
|
4
4
|
|
|
5
5
|
## Synopsis
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
|
|
8
|
+
afx <command> [options]
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## Global Options
|
|
@@ -18,18 +18,18 @@ af <command> [options]
|
|
|
18
18
|
|
|
19
19
|
## Commands
|
|
20
20
|
|
|
21
|
-
###
|
|
21
|
+
### afx workspace
|
|
22
22
|
|
|
23
23
|
Workspace commands - start/stop the workspace for this project.
|
|
24
24
|
|
|
25
|
-
> **Deprecation note:** `
|
|
25
|
+
> **Deprecation note:** `afx dash` is a deprecated alias for `afx workspace`. It still works but prints a deprecation warning.
|
|
26
26
|
|
|
27
|
-
####
|
|
27
|
+
#### afx workspace start
|
|
28
28
|
|
|
29
29
|
Start the workspace.
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
|
|
32
|
+
afx workspace start [options]
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
**Options:**
|
|
@@ -53,16 +53,16 @@ The workspace overview is accessible via browser at `http://localhost:<port>`.
|
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
# Start with defaults
|
|
56
|
-
|
|
56
|
+
afx workspace start
|
|
57
57
|
|
|
58
58
|
# Start with custom port
|
|
59
|
-
|
|
59
|
+
afx workspace start -p 4300
|
|
60
60
|
|
|
61
61
|
# Start with specific command
|
|
62
|
-
|
|
62
|
+
afx workspace start -c "claude --model opus"
|
|
63
63
|
|
|
64
64
|
# Start on remote machine
|
|
65
|
-
|
|
65
|
+
afx workspace start --remote user@host
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
#### Remote Access
|
|
@@ -71,13 +71,13 @@ Start Agent Farm on a remote machine and access it from your local workstation w
|
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
73
|
# On your local machine - one command does everything:
|
|
74
|
-
|
|
74
|
+
afx workspace start --remote user@remote-host
|
|
75
75
|
|
|
76
76
|
# Or with explicit project path:
|
|
77
|
-
|
|
77
|
+
afx workspace start --remote user@remote-host:/path/to/project
|
|
78
78
|
|
|
79
79
|
# With custom port:
|
|
80
|
-
|
|
80
|
+
afx workspace start --remote user@remote-host --port 4300
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
This single command:
|
|
@@ -92,16 +92,16 @@ The workspace and all terminals work identically to local development. Press Ctr
|
|
|
92
92
|
|
|
93
93
|
**Port Selection:**
|
|
94
94
|
|
|
95
|
-
The port is determined by the global port registry (`
|
|
95
|
+
The port is determined by the global port registry (`afx ports list`). Each project gets a consistent 100-port block (e.g., 4200-4299, 4600-4699). The same port is used on both local and remote ends for the SSH tunnel.
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
98
|
# Check your project's port allocation
|
|
99
|
-
|
|
99
|
+
afx ports list
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
**Prerequisites:**
|
|
103
103
|
- SSH server must be running on the remote machine
|
|
104
|
-
- Agent Farm (`
|
|
104
|
+
- Agent Farm (`afx`) must be installed on the remote machine
|
|
105
105
|
- **Passwordless SSH required** - set up with `ssh-copy-id user@host`
|
|
106
106
|
- Same version of codev on both machines (warnings shown if mismatched)
|
|
107
107
|
|
|
@@ -112,23 +112,23 @@ If the remote can't find `claude` or other commands, ensure they're in your PATH
|
|
|
112
112
|
export PATH="$HOME/.local/bin:$PATH"
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
-
**Limitation**: File annotation tabs (`
|
|
115
|
+
**Limitation**: File annotation tabs (`afx open`) use separate ports and won't work through the tunnel. Use terminals for file viewing, or forward additional ports manually.
|
|
116
116
|
|
|
117
117
|
**Legacy mode** (deprecated):
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
120
|
# DEPRECATED: Exposes workspace without authentication
|
|
121
|
-
|
|
121
|
+
afx workspace start --allow-insecure-remote
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
The `--allow-insecure-remote` flag binds to `0.0.0.0` with no authentication. Use `--remote` instead for secure access via SSH.
|
|
125
125
|
|
|
126
|
-
####
|
|
126
|
+
#### afx workspace stop
|
|
127
127
|
|
|
128
128
|
Stop all agent farm processes for this project.
|
|
129
129
|
|
|
130
130
|
```bash
|
|
131
|
-
|
|
131
|
+
afx workspace stop
|
|
132
132
|
```
|
|
133
133
|
|
|
134
134
|
**Description:**
|
|
@@ -137,16 +137,16 @@ Stops all running agent-farm processes including:
|
|
|
137
137
|
- Terminal sessions (shellper processes)
|
|
138
138
|
- Workspace servers
|
|
139
139
|
|
|
140
|
-
Does NOT clean up worktrees - use `
|
|
140
|
+
Does NOT clean up worktrees - use `afx cleanup` for that.
|
|
141
141
|
|
|
142
142
|
---
|
|
143
143
|
|
|
144
|
-
###
|
|
144
|
+
### afx spawn
|
|
145
145
|
|
|
146
146
|
Spawn a new builder.
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
|
|
149
|
+
afx spawn [issue-number] --protocol <name> [options]
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
**Arguments:**
|
|
@@ -181,19 +181,19 @@ Creates a new builder in an isolated git worktree. The builder gets:
|
|
|
181
181
|
|
|
182
182
|
```bash
|
|
183
183
|
# Spawn builder for issue #42 — --protocol is REQUIRED
|
|
184
|
-
|
|
184
|
+
afx spawn 42 --protocol spir
|
|
185
185
|
|
|
186
186
|
# Spawn builder for a bugfix
|
|
187
|
-
|
|
187
|
+
afx spawn 42 --protocol bugfix
|
|
188
188
|
|
|
189
189
|
# Spawn with task description (no --protocol needed)
|
|
190
|
-
|
|
190
|
+
afx spawn --task "Fix login bug in auth module"
|
|
191
191
|
|
|
192
192
|
# Spawn bare Claude session (no --protocol needed)
|
|
193
|
-
|
|
193
|
+
afx spawn --shell
|
|
194
194
|
|
|
195
195
|
# Spawn with context files
|
|
196
|
-
|
|
196
|
+
afx spawn 42 --protocol spir --files "src/auth.ts,tests/auth.test.ts"
|
|
197
197
|
```
|
|
198
198
|
|
|
199
199
|
**Common Errors:**
|
|
@@ -202,16 +202,16 @@ af spawn 42 --protocol spir --files "src/auth.ts,tests/auth.test.ts"
|
|
|
202
202
|
|-------|-------|-----|
|
|
203
203
|
| "Missing required flag: --protocol" | Forgot `--protocol` | Add `--protocol spir` (or bugfix, tick, etc.) |
|
|
204
204
|
| "Dirty worktree" | Uncommitted changes | Run `git status`, commit changes, retry |
|
|
205
|
-
| "Builder already exists" | Worktree collision | Use `--resume` to resume, or `
|
|
205
|
+
| "Builder already exists" | Worktree collision | Use `--resume` to resume, or `afx cleanup` first |
|
|
206
206
|
|
|
207
207
|
---
|
|
208
208
|
|
|
209
|
-
###
|
|
209
|
+
### afx status
|
|
210
210
|
|
|
211
211
|
Show status of all agents.
|
|
212
212
|
|
|
213
213
|
```bash
|
|
214
|
-
|
|
214
|
+
afx status
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
**Description:**
|
|
@@ -237,12 +237,12 @@ Status values:
|
|
|
237
237
|
|
|
238
238
|
---
|
|
239
239
|
|
|
240
|
-
###
|
|
240
|
+
### afx cleanup
|
|
241
241
|
|
|
242
242
|
Clean up a builder worktree and branch.
|
|
243
243
|
|
|
244
244
|
```bash
|
|
245
|
-
|
|
245
|
+
afx cleanup -p <id> [options]
|
|
246
246
|
```
|
|
247
247
|
|
|
248
248
|
**Options:**
|
|
@@ -257,20 +257,20 @@ Removes a builder's worktree and associated resources. By default, refuses to de
|
|
|
257
257
|
|
|
258
258
|
```bash
|
|
259
259
|
# Clean up completed builder
|
|
260
|
-
|
|
260
|
+
afx cleanup -p 42
|
|
261
261
|
|
|
262
262
|
# Force cleanup (may lose work)
|
|
263
|
-
|
|
263
|
+
afx cleanup -p 42 --force
|
|
264
264
|
```
|
|
265
265
|
|
|
266
266
|
---
|
|
267
267
|
|
|
268
|
-
###
|
|
268
|
+
### afx send
|
|
269
269
|
|
|
270
270
|
Send instructions to a running builder.
|
|
271
271
|
|
|
272
272
|
```bash
|
|
273
|
-
|
|
273
|
+
afx send [builder] [message] [options]
|
|
274
274
|
```
|
|
275
275
|
|
|
276
276
|
**Arguments:**
|
|
@@ -295,26 +295,26 @@ Sends text to a builder's terminal. Useful for:
|
|
|
295
295
|
|
|
296
296
|
```bash
|
|
297
297
|
# Send message to builder
|
|
298
|
-
|
|
298
|
+
afx send 42 "Focus on the auth module first"
|
|
299
299
|
|
|
300
300
|
# Interrupt and send new instructions
|
|
301
|
-
|
|
301
|
+
afx send 42 --interrupt "Stop that. Try a different approach."
|
|
302
302
|
|
|
303
303
|
# Send to all builders
|
|
304
|
-
|
|
304
|
+
afx send --all "Time to wrap up, create PRs"
|
|
305
305
|
|
|
306
306
|
# Include file content
|
|
307
|
-
|
|
307
|
+
afx send 42 --file src/api.ts "Review this implementation"
|
|
308
308
|
```
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
312
|
-
###
|
|
312
|
+
### afx open
|
|
313
313
|
|
|
314
314
|
Open file annotation viewer.
|
|
315
315
|
|
|
316
316
|
```bash
|
|
317
|
-
|
|
317
|
+
afx open <file>
|
|
318
318
|
```
|
|
319
319
|
|
|
320
320
|
**Arguments:**
|
|
@@ -327,17 +327,17 @@ Opens a web-based viewer for annotating files with review comments. Comments use
|
|
|
327
327
|
**Example:**
|
|
328
328
|
|
|
329
329
|
```bash
|
|
330
|
-
|
|
330
|
+
afx open src/auth/login.ts
|
|
331
331
|
```
|
|
332
332
|
|
|
333
333
|
---
|
|
334
334
|
|
|
335
|
-
###
|
|
335
|
+
### afx shell
|
|
336
336
|
|
|
337
337
|
Spawn a utility shell terminal.
|
|
338
338
|
|
|
339
339
|
```bash
|
|
340
|
-
|
|
340
|
+
afx shell [options]
|
|
341
341
|
```
|
|
342
342
|
|
|
343
343
|
**Options:**
|
|
@@ -354,20 +354,20 @@ Opens a general-purpose shell terminal in the workspace overview. Useful for:
|
|
|
354
354
|
|
|
355
355
|
```bash
|
|
356
356
|
# Open utility shell
|
|
357
|
-
|
|
357
|
+
afx shell
|
|
358
358
|
|
|
359
359
|
# Open with custom name
|
|
360
|
-
|
|
360
|
+
afx shell -n "test-runner"
|
|
361
361
|
```
|
|
362
362
|
|
|
363
363
|
---
|
|
364
364
|
|
|
365
|
-
###
|
|
365
|
+
### afx rename
|
|
366
366
|
|
|
367
367
|
Rename a builder or utility terminal.
|
|
368
368
|
|
|
369
369
|
```bash
|
|
370
|
-
|
|
370
|
+
afx rename <id> <name>
|
|
371
371
|
```
|
|
372
372
|
|
|
373
373
|
**Arguments:**
|
|
@@ -377,21 +377,21 @@ af rename <id> <name>
|
|
|
377
377
|
**Example:**
|
|
378
378
|
|
|
379
379
|
```bash
|
|
380
|
-
|
|
380
|
+
afx rename 42 "auth-rework"
|
|
381
381
|
```
|
|
382
382
|
|
|
383
383
|
---
|
|
384
384
|
|
|
385
|
-
###
|
|
385
|
+
### afx ports
|
|
386
386
|
|
|
387
387
|
Manage global port registry.
|
|
388
388
|
|
|
389
|
-
####
|
|
389
|
+
#### afx ports list
|
|
390
390
|
|
|
391
391
|
List all port allocations.
|
|
392
392
|
|
|
393
393
|
```bash
|
|
394
|
-
|
|
394
|
+
afx ports list
|
|
395
395
|
```
|
|
396
396
|
|
|
397
397
|
Shows port blocks allocated to different projects:
|
|
@@ -401,73 +401,73 @@ Port Allocations
|
|
|
401
401
|
4300-4399: /Users/me/project-b
|
|
402
402
|
```
|
|
403
403
|
|
|
404
|
-
####
|
|
404
|
+
#### afx ports cleanup
|
|
405
405
|
|
|
406
406
|
Remove stale port allocations.
|
|
407
407
|
|
|
408
408
|
```bash
|
|
409
|
-
|
|
409
|
+
afx ports cleanup
|
|
410
410
|
```
|
|
411
411
|
|
|
412
412
|
Removes entries for projects that no longer exist.
|
|
413
413
|
|
|
414
414
|
---
|
|
415
415
|
|
|
416
|
-
###
|
|
416
|
+
### afx tower
|
|
417
417
|
|
|
418
418
|
Manage the cross-project tower dashboard. Tower shows all agent-farm instances across projects and provides cloud connectivity via codevos.ai.
|
|
419
419
|
|
|
420
|
-
####
|
|
420
|
+
#### afx tower start
|
|
421
421
|
|
|
422
422
|
Start the tower dashboard.
|
|
423
423
|
|
|
424
424
|
```bash
|
|
425
|
-
|
|
425
|
+
afx tower start [options]
|
|
426
426
|
```
|
|
427
427
|
|
|
428
428
|
**Options:**
|
|
429
429
|
- `-p, --port <port>` - Port to run on (default: 4100)
|
|
430
430
|
|
|
431
|
-
####
|
|
431
|
+
#### afx tower stop
|
|
432
432
|
|
|
433
433
|
Stop the tower dashboard.
|
|
434
434
|
|
|
435
435
|
```bash
|
|
436
|
-
|
|
436
|
+
afx tower stop [options]
|
|
437
437
|
```
|
|
438
438
|
|
|
439
439
|
**Options:**
|
|
440
440
|
- `-p, --port <port>` - Port to stop (default: 4100)
|
|
441
441
|
|
|
442
|
-
####
|
|
442
|
+
#### afx tower register
|
|
443
443
|
|
|
444
444
|
Register this tower with codevos.ai for remote access.
|
|
445
445
|
|
|
446
446
|
```bash
|
|
447
|
-
|
|
447
|
+
afx tower register [options]
|
|
448
448
|
```
|
|
449
449
|
|
|
450
450
|
**Options:**
|
|
451
451
|
- `--reauth` - Re-authenticate without changing tower name
|
|
452
452
|
- `-p, --port <port>` - Tower port to signal after registration (default: 4100)
|
|
453
453
|
|
|
454
|
-
####
|
|
454
|
+
#### afx tower deregister
|
|
455
455
|
|
|
456
456
|
Remove this tower's registration from codevos.ai.
|
|
457
457
|
|
|
458
458
|
```bash
|
|
459
|
-
|
|
459
|
+
afx tower deregister [options]
|
|
460
460
|
```
|
|
461
461
|
|
|
462
462
|
**Options:**
|
|
463
463
|
- `-p, --port <port>` - Tower port to signal after deregistration (default: 4100)
|
|
464
464
|
|
|
465
|
-
####
|
|
465
|
+
#### afx tower status
|
|
466
466
|
|
|
467
467
|
Show tower status including cloud connection info.
|
|
468
468
|
|
|
469
469
|
```bash
|
|
470
|
-
|
|
470
|
+
afx tower status [options]
|
|
471
471
|
```
|
|
472
472
|
|
|
473
473
|
**Options:**
|
|
@@ -478,27 +478,27 @@ af tower status [options]
|
|
|
478
478
|
|
|
479
479
|
---
|
|
480
480
|
|
|
481
|
-
###
|
|
481
|
+
### afx db
|
|
482
482
|
|
|
483
483
|
Database debugging and maintenance commands.
|
|
484
484
|
|
|
485
|
-
####
|
|
485
|
+
#### afx db dump
|
|
486
486
|
|
|
487
487
|
Export all tables to JSON.
|
|
488
488
|
|
|
489
489
|
```bash
|
|
490
|
-
|
|
490
|
+
afx db dump [options]
|
|
491
491
|
```
|
|
492
492
|
|
|
493
493
|
**Options:**
|
|
494
494
|
- `--global` - Dump global.db instead of project db
|
|
495
495
|
|
|
496
|
-
####
|
|
496
|
+
#### afx db query
|
|
497
497
|
|
|
498
498
|
Run a SELECT query.
|
|
499
499
|
|
|
500
500
|
```bash
|
|
501
|
-
|
|
501
|
+
afx db query <sql> [options]
|
|
502
502
|
```
|
|
503
503
|
|
|
504
504
|
**Options:**
|
|
@@ -507,27 +507,27 @@ af db query <sql> [options]
|
|
|
507
507
|
**Example:**
|
|
508
508
|
|
|
509
509
|
```bash
|
|
510
|
-
|
|
510
|
+
afx db query "SELECT * FROM builders WHERE status = 'implementing'"
|
|
511
511
|
```
|
|
512
512
|
|
|
513
|
-
####
|
|
513
|
+
#### afx db reset
|
|
514
514
|
|
|
515
515
|
Delete database and start fresh.
|
|
516
516
|
|
|
517
517
|
```bash
|
|
518
|
-
|
|
518
|
+
afx db reset [options]
|
|
519
519
|
```
|
|
520
520
|
|
|
521
521
|
**Options:**
|
|
522
522
|
- `--global` - Reset global.db
|
|
523
523
|
- `--force` - Skip confirmation
|
|
524
524
|
|
|
525
|
-
####
|
|
525
|
+
#### afx db stats
|
|
526
526
|
|
|
527
527
|
Show database statistics.
|
|
528
528
|
|
|
529
529
|
```bash
|
|
530
|
-
|
|
530
|
+
afx db stats [options]
|
|
531
531
|
```
|
|
532
532
|
|
|
533
533
|
**Options:**
|
|
@@ -537,7 +537,7 @@ af db stats [options]
|
|
|
537
537
|
|
|
538
538
|
## Configuration
|
|
539
539
|
|
|
540
|
-
Customize commands via
|
|
540
|
+
Customize commands via `.codev/config.json` at the project root:
|
|
541
541
|
|
|
542
542
|
```json
|
|
543
543
|
{
|
|
@@ -552,8 +552,8 @@ Customize commands via `af-config.json` at the project root:
|
|
|
552
552
|
Or override via CLI flags:
|
|
553
553
|
|
|
554
554
|
```bash
|
|
555
|
-
|
|
556
|
-
|
|
555
|
+
afx workspace start --architect-cmd "claude --model opus"
|
|
556
|
+
afx spawn 42 --protocol spir --builder-cmd "claude --model haiku"
|
|
557
557
|
```
|
|
558
558
|
|
|
559
559
|
---
|
|
@@ -564,7 +564,7 @@ af spawn 42 --protocol spir --builder-cmd "claude --model haiku"
|
|
|
564
564
|
|------|-------------|
|
|
565
565
|
| `.agent-farm/state.db` | Project runtime state (SQLite) |
|
|
566
566
|
| `~/.agent-farm/global.db` | Global port registry (SQLite) |
|
|
567
|
-
|
|
|
567
|
+
| `.codev/config.json` | Agent Farm configuration (project root) |
|
|
568
568
|
|
|
569
569
|
---
|
|
570
570
|
|
|
@@ -5,7 +5,7 @@ Codev provides three CLI tools for AI-assisted software development:
|
|
|
5
5
|
| Tool | Description |
|
|
6
6
|
|------|-------------|
|
|
7
7
|
| `codev` | Project setup, maintenance, and framework commands |
|
|
8
|
-
| `
|
|
8
|
+
| `afx` | Agent Farm - multi-agent orchestration for development |
|
|
9
9
|
| `consult` | AI consultation with external models (Gemini, Codex, Claude) |
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
@@ -21,7 +21,7 @@ codev adopt
|
|
|
21
21
|
codev doctor
|
|
22
22
|
|
|
23
23
|
# Start the workspace
|
|
24
|
-
|
|
24
|
+
afx workspace start
|
|
25
25
|
|
|
26
26
|
# Consult an AI model about a spec
|
|
27
27
|
consult -m gemini --protocol spir --type spec
|
|
@@ -33,7 +33,7 @@ consult -m gemini --protocol spir --type spec
|
|
|
33
33
|
npm install -g @cluesmith/codev
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
This installs all three commands globally: `codev`, `
|
|
36
|
+
This installs all three commands globally: `codev`, `afx`, and `consult`.
|
|
37
37
|
|
|
38
38
|
## Command Summaries
|
|
39
39
|
|
|
@@ -49,19 +49,19 @@ This installs all three commands globally: `codev`, `af`, and `consult`.
|
|
|
49
49
|
|
|
50
50
|
See [codev.md](codev.md) for full documentation.
|
|
51
51
|
|
|
52
|
-
###
|
|
52
|
+
### afx - Agent Farm
|
|
53
53
|
|
|
54
54
|
| Command | Description |
|
|
55
55
|
|---------|-------------|
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
56
|
+
| `afx workspace start` | Start the workspace |
|
|
57
|
+
| `afx workspace stop` | Stop all agent farm processes |
|
|
58
|
+
| `afx spawn` | Spawn a new builder |
|
|
59
|
+
| `afx status` | Show status of all agents |
|
|
60
|
+
| `afx cleanup` | Clean up a builder worktree |
|
|
61
|
+
| `afx send` | Send instructions to a builder |
|
|
62
|
+
| `afx open` | Open file annotation viewer |
|
|
63
|
+
| `afx shell` | Spawn a utility shell |
|
|
64
|
+
| `afx tower` | Cross-project dashboard |
|
|
65
65
|
|
|
66
66
|
See [agent-farm.md](agent-farm.md) for full documentation.
|
|
67
67
|
|
|
@@ -86,7 +86,7 @@ All codev commands support:
|
|
|
86
86
|
|
|
87
87
|
## Configuration
|
|
88
88
|
|
|
89
|
-
Agent Farm is configured via
|
|
89
|
+
Agent Farm is configured via `.codev/config.json` at the project root. Created during `codev init` or `codev adopt`. Override via CLI flags: `--architect-cmd`, `--builder-cmd`, `--shell-cmd`.
|
|
90
90
|
|
|
91
91
|
## Related Documentation
|
|
92
92
|
|