@cluesmith/codev 1.3.0 → 1.4.1
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 +0 -0
- package/bin/codev.js +0 -0
- package/bin/consult.js +0 -0
- package/bin/generate-image.js +0 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +2 -1
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +12 -51
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +13 -1
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/servers/dashboard-server.js +107 -5
- package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
- package/dist/agent-farm/types.d.ts +1 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -17
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +27 -2
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +23 -7
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +51 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +23 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
- package/skeleton/DEPENDENCIES.md +3 -3
- package/skeleton/protocols/maintain/protocol.md +2 -2
- package/skeleton/{docs → resources}/commands/codev.md +0 -39
- package/skeleton/{docs → resources}/commands/consult.md +12 -2
- package/skeleton/{docs → resources}/commands/overview.md +0 -1
- package/skeleton/roles/architect.md +22 -0
- package/skeleton/roles/builder.md +22 -0
- package/skeleton/templates/arch.md +56 -0
- package/skeleton/templates/pr-overview.md +73 -0
- package/templates/dashboard-split.html +526 -164
- package/templates/open.html +285 -2
- package/templates/tower.html +71 -12
- package/dist/agent-farm/index.d.ts +0 -7
- package/dist/agent-farm/index.d.ts.map +0 -1
- package/dist/agent-farm/index.js +0 -373
- package/dist/agent-farm/index.js.map +0 -1
- package/skeleton/bin/agent-farm +0 -7
- package/skeleton/bin/codev-doctor +0 -335
- package/skeleton/resources/lessons-learned.md +0 -30
- /package/skeleton/{roles/review-types → consult-types}/impl-review.md +0 -0
- /package/skeleton/{roles/review-types → consult-types}/integration-review.md +0 -0
- /package/skeleton/{roles/review-types → consult-types}/plan-review.md +0 -0
- /package/skeleton/{roles/review-types → consult-types}/pr-ready.md +0 -0
- /package/skeleton/{roles/review-types → consult-types}/spec-review.md +0 -0
- /package/skeleton/{docs → resources}/commands/agent-farm.md +0 -0
- /package/skeleton/{AGENTS.md.template → templates/AGENTS.md} +0 -0
- /package/skeleton/{CLAUDE.md.template → templates/CLAUDE.md} +0 -0
package/dist/agent-farm/index.js
DELETED
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Agent Farm CLI
|
|
4
|
-
* A multi-agent orchestration tool for software development
|
|
5
|
-
*/
|
|
6
|
-
import { Command } from 'commander';
|
|
7
|
-
import { start, stop } from './commands/index.js';
|
|
8
|
-
import { logger } from './utils/logger.js';
|
|
9
|
-
import { setCliOverrides, getResolvedCommands, initializePorts } from './utils/config.js';
|
|
10
|
-
const program = new Command();
|
|
11
|
-
program
|
|
12
|
-
.name('agent-farm')
|
|
13
|
-
.description('Multi-agent orchestration for software development')
|
|
14
|
-
.version('0.1.0');
|
|
15
|
-
// Global options for command overrides
|
|
16
|
-
program
|
|
17
|
-
.option('--architect-cmd <command>', 'Override architect command (takes precedence over config.json)')
|
|
18
|
-
.option('--builder-cmd <command>', 'Override builder command (takes precedence over config.json)')
|
|
19
|
-
.option('--shell-cmd <command>', 'Override shell command (takes precedence over config.json)');
|
|
20
|
-
// Process global options before commands
|
|
21
|
-
program.hook('preAction', (thisCommand) => {
|
|
22
|
-
const opts = thisCommand.opts();
|
|
23
|
-
const overrides = {};
|
|
24
|
-
if (opts.architectCmd)
|
|
25
|
-
overrides.architect = opts.architectCmd;
|
|
26
|
-
if (opts.builderCmd)
|
|
27
|
-
overrides.builder = opts.builderCmd;
|
|
28
|
-
if (opts.shellCmd)
|
|
29
|
-
overrides.shell = opts.shellCmd;
|
|
30
|
-
if (Object.keys(overrides).length > 0) {
|
|
31
|
-
setCliOverrides(overrides);
|
|
32
|
-
}
|
|
33
|
-
// Initialize port allocation for this project
|
|
34
|
-
initializePorts();
|
|
35
|
-
});
|
|
36
|
-
// Start command
|
|
37
|
-
program
|
|
38
|
-
.command('start')
|
|
39
|
-
.description('Start the architect dashboard')
|
|
40
|
-
.option('-c, --cmd <command>', 'Command to run in architect terminal (shorthand for --architect-cmd)')
|
|
41
|
-
.option('-p, --port <port>', 'Port for architect terminal')
|
|
42
|
-
.option('--no-role', 'Skip loading architect role prompt')
|
|
43
|
-
.action(async (options) => {
|
|
44
|
-
try {
|
|
45
|
-
// -c flag overrides config if provided (for backward compatibility)
|
|
46
|
-
const commands = getResolvedCommands();
|
|
47
|
-
await start({
|
|
48
|
-
cmd: options.cmd || commands.architect,
|
|
49
|
-
port: options.port ? parseInt(options.port, 10) : undefined,
|
|
50
|
-
noRole: !options.role,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
55
|
-
process.exit(1);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
// Stop command
|
|
59
|
-
program
|
|
60
|
-
.command('stop')
|
|
61
|
-
.description('Stop all agent farm processes')
|
|
62
|
-
.action(async () => {
|
|
63
|
-
try {
|
|
64
|
-
await stop();
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
// Status command (placeholder)
|
|
72
|
-
program
|
|
73
|
-
.command('status')
|
|
74
|
-
.description('Show status of all agents')
|
|
75
|
-
.action(async () => {
|
|
76
|
-
const { status } = await import('./commands/status.js');
|
|
77
|
-
try {
|
|
78
|
-
await status();
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
// Spawn command
|
|
86
|
-
program
|
|
87
|
-
.command('spawn')
|
|
88
|
-
.description('Spawn a new builder in various modes')
|
|
89
|
-
.option('-p, --project <id>', 'Spawn builder for a spec (e.g., -p 0009)')
|
|
90
|
-
.option('--task <text>', 'Spawn builder with a task description')
|
|
91
|
-
.option('--protocol <name>', 'Spawn builder to run a protocol (e.g., cleanup)')
|
|
92
|
-
.option('--shell', 'Spawn a bare Claude session (no prompt, no worktree)')
|
|
93
|
-
.option('--worktree', 'Spawn worktree session (worktree+branch, no prompt)')
|
|
94
|
-
.option('--files <files>', 'Context files for task mode (comma-separated)')
|
|
95
|
-
.option('--no-role', 'Skip loading role prompt')
|
|
96
|
-
.addHelpText('after', `
|
|
97
|
-
Examples:
|
|
98
|
-
# Spec mode (existing behavior)
|
|
99
|
-
af spawn -p 0009 # Spawn for spec 0009
|
|
100
|
-
|
|
101
|
-
# Task mode (ad-hoc tasks)
|
|
102
|
-
af spawn --task "Fix the login bug" # Simple task
|
|
103
|
-
af spawn --task "Refactor auth" --files src/auth.ts,src/login.ts
|
|
104
|
-
|
|
105
|
-
# Protocol mode (run a protocol)
|
|
106
|
-
af spawn --protocol cleanup # Run cleanup protocol
|
|
107
|
-
af spawn --protocol experiment # Run experiment protocol
|
|
108
|
-
|
|
109
|
-
# Worktree mode (isolated branch, no prompt)
|
|
110
|
-
af spawn --worktree # Worktree for quick fixes
|
|
111
|
-
|
|
112
|
-
# Shell mode (bare session)
|
|
113
|
-
af spawn --shell # Just Claude, no prompt/worktree
|
|
114
|
-
`)
|
|
115
|
-
.action(async (options) => {
|
|
116
|
-
const { spawn } = await import('./commands/spawn.js');
|
|
117
|
-
try {
|
|
118
|
-
const files = options.files ? options.files.split(',').map((f) => f.trim()) : undefined;
|
|
119
|
-
await spawn({
|
|
120
|
-
project: options.project,
|
|
121
|
-
task: options.task,
|
|
122
|
-
protocol: options.protocol,
|
|
123
|
-
shell: options.shell,
|
|
124
|
-
worktree: options.worktree,
|
|
125
|
-
files,
|
|
126
|
-
noRole: !options.role,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
catch (error) {
|
|
130
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
131
|
-
process.exit(1);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
// Util/Shell command - spawns a utility terminal
|
|
135
|
-
program
|
|
136
|
-
.command('util')
|
|
137
|
-
.alias('shell')
|
|
138
|
-
.description('Spawn a utility shell terminal')
|
|
139
|
-
.option('-n, --name <name>', 'Name for the shell terminal')
|
|
140
|
-
.action(async (options) => {
|
|
141
|
-
const { util } = await import('./commands/util.js');
|
|
142
|
-
try {
|
|
143
|
-
await util({ name: options.name });
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
147
|
-
process.exit(1);
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
// Open command - opens file annotation viewer
|
|
151
|
-
program
|
|
152
|
-
.command('open <file>')
|
|
153
|
-
.description('Open file annotation viewer')
|
|
154
|
-
.action(async (file) => {
|
|
155
|
-
const { open } = await import('./commands/open.js');
|
|
156
|
-
try {
|
|
157
|
-
await open({ file });
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
161
|
-
process.exit(1);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
// Cleanup command - remove builder worktree and branch
|
|
165
|
-
program
|
|
166
|
-
.command('cleanup')
|
|
167
|
-
.description('Clean up a builder worktree and branch after PR merge')
|
|
168
|
-
.requiredOption('-p, --project <id>', 'Builder ID to clean up')
|
|
169
|
-
.option('-f, --force', 'Force cleanup even if branch not merged')
|
|
170
|
-
.action(async (options) => {
|
|
171
|
-
const { cleanup } = await import('./commands/cleanup.js');
|
|
172
|
-
try {
|
|
173
|
-
await cleanup({ project: options.project, force: options.force });
|
|
174
|
-
}
|
|
175
|
-
catch (error) {
|
|
176
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
177
|
-
process.exit(1);
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
// Rename command - rename a builder or utility terminal
|
|
181
|
-
program
|
|
182
|
-
.command('rename <id> <name>')
|
|
183
|
-
.description('Rename a builder or utility terminal')
|
|
184
|
-
.action(async (id, name) => {
|
|
185
|
-
const { rename } = await import('./commands/rename.js');
|
|
186
|
-
try {
|
|
187
|
-
rename({ id, name });
|
|
188
|
-
}
|
|
189
|
-
catch (error) {
|
|
190
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
191
|
-
process.exit(1);
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
// Send command - send instructions to running builders
|
|
195
|
-
program
|
|
196
|
-
.command('send [builder] [message]')
|
|
197
|
-
.description('Send instructions to a running builder')
|
|
198
|
-
.option('--all', 'Send to all builders')
|
|
199
|
-
.option('--file <path>', 'Include file content in message')
|
|
200
|
-
.option('--interrupt', 'Send Ctrl+C first to interrupt current activity')
|
|
201
|
-
.option('--raw', 'Skip structured message formatting')
|
|
202
|
-
.option('--no-enter', 'Do not send Enter after message')
|
|
203
|
-
.action(async (builder, message, options) => {
|
|
204
|
-
const { send } = await import('./commands/send.js');
|
|
205
|
-
try {
|
|
206
|
-
await send({
|
|
207
|
-
builder,
|
|
208
|
-
message,
|
|
209
|
-
all: options.all,
|
|
210
|
-
file: options.file,
|
|
211
|
-
interrupt: options.interrupt,
|
|
212
|
-
raw: options.raw,
|
|
213
|
-
noEnter: !options.enter,
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
catch (error) {
|
|
217
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
218
|
-
process.exit(1);
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
// Ports command - manage global port registry
|
|
222
|
-
const portsCmd = program
|
|
223
|
-
.command('ports')
|
|
224
|
-
.description('Manage global port registry');
|
|
225
|
-
portsCmd
|
|
226
|
-
.command('list')
|
|
227
|
-
.description('List all port allocations')
|
|
228
|
-
.action(async () => {
|
|
229
|
-
const { listAllocations } = await import('./utils/port-registry.js');
|
|
230
|
-
const allocations = listAllocations();
|
|
231
|
-
if (allocations.length === 0) {
|
|
232
|
-
logger.info('No port allocations found.');
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
logger.header('Port Allocations');
|
|
236
|
-
for (const alloc of allocations) {
|
|
237
|
-
const status = alloc.exists ? '' : ' (missing)';
|
|
238
|
-
logger.info(`${alloc.basePort}-${alloc.basePort + 99}: ${alloc.path}${status}`);
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
portsCmd
|
|
242
|
-
.command('cleanup')
|
|
243
|
-
.description('Remove stale port allocations (deleted projects)')
|
|
244
|
-
.action(async () => {
|
|
245
|
-
const { cleanupStaleEntries } = await import('./utils/port-registry.js');
|
|
246
|
-
const result = cleanupStaleEntries();
|
|
247
|
-
if (result.removed.length === 0) {
|
|
248
|
-
logger.info('No stale entries found.');
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
logger.success(`Removed ${result.removed.length} stale entries:`);
|
|
252
|
-
for (const path of result.removed) {
|
|
253
|
-
logger.info(` - ${path}`);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
logger.info(`Remaining allocations: ${result.remaining}`);
|
|
257
|
-
});
|
|
258
|
-
// Tutorial command - interactive onboarding for new users
|
|
259
|
-
program
|
|
260
|
-
.command('tutorial')
|
|
261
|
-
.description('Interactive tutorial for new users')
|
|
262
|
-
.option('--reset', 'Start tutorial fresh')
|
|
263
|
-
.option('--skip', 'Skip current step')
|
|
264
|
-
.option('--status', 'Show tutorial progress')
|
|
265
|
-
.action(async (options) => {
|
|
266
|
-
const { tutorial } = await import('./commands/tutorial.js');
|
|
267
|
-
try {
|
|
268
|
-
await tutorial(options);
|
|
269
|
-
}
|
|
270
|
-
catch (error) {
|
|
271
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
272
|
-
process.exit(1);
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
// Tower command - centralized view of all agent-farm instances
|
|
276
|
-
const towerCmd = program
|
|
277
|
-
.command('tower')
|
|
278
|
-
.description('Manage the tower dashboard showing all instances');
|
|
279
|
-
towerCmd
|
|
280
|
-
.command('start')
|
|
281
|
-
.description('Start the tower dashboard')
|
|
282
|
-
.option('-p, --port <port>', 'Port to run on (default: 4100)')
|
|
283
|
-
.action(async (options) => {
|
|
284
|
-
const { towerStart } = await import('./commands/tower.js');
|
|
285
|
-
try {
|
|
286
|
-
await towerStart({
|
|
287
|
-
port: options.port ? parseInt(options.port, 10) : undefined,
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
catch (error) {
|
|
291
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
292
|
-
process.exit(1);
|
|
293
|
-
}
|
|
294
|
-
});
|
|
295
|
-
towerCmd
|
|
296
|
-
.command('stop')
|
|
297
|
-
.description('Stop the tower dashboard')
|
|
298
|
-
.option('-p, --port <port>', 'Port to stop (default: 4100)')
|
|
299
|
-
.action(async (options) => {
|
|
300
|
-
const { towerStop } = await import('./commands/tower.js');
|
|
301
|
-
try {
|
|
302
|
-
await towerStop({
|
|
303
|
-
port: options.port ? parseInt(options.port, 10) : undefined,
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
catch (error) {
|
|
307
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
308
|
-
process.exit(1);
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
// Database commands - debugging and maintenance
|
|
312
|
-
const dbCmd = program
|
|
313
|
-
.command('db')
|
|
314
|
-
.description('Database debugging and maintenance commands');
|
|
315
|
-
dbCmd
|
|
316
|
-
.command('dump')
|
|
317
|
-
.description('Export all tables to JSON')
|
|
318
|
-
.option('--global', 'Dump global.db instead of local state.db')
|
|
319
|
-
.action(async (options) => {
|
|
320
|
-
const { dbDump } = await import('./commands/db.js');
|
|
321
|
-
try {
|
|
322
|
-
dbDump({ global: options.global });
|
|
323
|
-
}
|
|
324
|
-
catch (error) {
|
|
325
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
326
|
-
process.exit(1);
|
|
327
|
-
}
|
|
328
|
-
});
|
|
329
|
-
dbCmd
|
|
330
|
-
.command('query <sql>')
|
|
331
|
-
.description('Run a SELECT query against the database')
|
|
332
|
-
.option('--global', 'Query global.db instead of local state.db')
|
|
333
|
-
.action(async (sql, options) => {
|
|
334
|
-
const { dbQuery } = await import('./commands/db.js');
|
|
335
|
-
try {
|
|
336
|
-
dbQuery(sql, { global: options.global });
|
|
337
|
-
}
|
|
338
|
-
catch (error) {
|
|
339
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
340
|
-
process.exit(1);
|
|
341
|
-
}
|
|
342
|
-
});
|
|
343
|
-
dbCmd
|
|
344
|
-
.command('reset')
|
|
345
|
-
.description('Delete database and start fresh (DESTRUCTIVE)')
|
|
346
|
-
.option('--global', 'Reset global.db instead of local state.db')
|
|
347
|
-
.option('--force', 'Skip confirmation')
|
|
348
|
-
.action(async (options) => {
|
|
349
|
-
const { dbReset } = await import('./commands/db.js');
|
|
350
|
-
try {
|
|
351
|
-
dbReset({ global: options.global, force: options.force });
|
|
352
|
-
}
|
|
353
|
-
catch (error) {
|
|
354
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
355
|
-
process.exit(1);
|
|
356
|
-
}
|
|
357
|
-
});
|
|
358
|
-
dbCmd
|
|
359
|
-
.command('stats')
|
|
360
|
-
.description('Show database statistics')
|
|
361
|
-
.option('--global', 'Show stats for global.db')
|
|
362
|
-
.action(async (options) => {
|
|
363
|
-
const { dbStats } = await import('./commands/db.js');
|
|
364
|
-
try {
|
|
365
|
-
dbStats({ global: options.global });
|
|
366
|
-
}
|
|
367
|
-
catch (error) {
|
|
368
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
369
|
-
process.exit(1);
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
program.parse();
|
|
373
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-farm/index.ts"],"names":[],"mappings":"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"}
|
package/skeleton/bin/agent-farm
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Thin wrapper - forwards all commands to agent-farm TypeScript
|
|
3
|
-
# Uses readlink to handle symlinks (e.g., if symlinked to /usr/local/bin)
|
|
4
|
-
SCRIPT_PATH="$(readlink -f "$0" 2>/dev/null || realpath "$0" 2>/dev/null || echo "$0")"
|
|
5
|
-
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
6
|
-
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
7
|
-
exec node "$PROJECT_ROOT/agent-farm/dist/index.js" "$@"
|