@cluesmith/codev 1.2.3 → 1.4.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.
Files changed (80) hide show
  1. package/bin/generate-image.js +7 -0
  2. package/dist/agent-farm/cli.d.ts.map +1 -1
  3. package/dist/agent-farm/cli.js +2 -37
  4. package/dist/agent-farm/cli.js.map +1 -1
  5. package/dist/agent-farm/commands/cleanup.js +12 -51
  6. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  7. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  8. package/dist/agent-farm/commands/spawn.js +13 -1
  9. package/dist/agent-farm/commands/spawn.js.map +1 -1
  10. package/dist/agent-farm/commands/start.js +32 -0
  11. package/dist/agent-farm/commands/start.js.map +1 -1
  12. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -2
  13. package/dist/agent-farm/servers/dashboard-server.d.ts.map +1 -1
  14. package/dist/agent-farm/servers/dashboard-server.js +196 -9
  15. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  16. package/dist/agent-farm/servers/open-server.d.ts +0 -2
  17. package/dist/agent-farm/servers/open-server.d.ts.map +1 -1
  18. package/dist/agent-farm/servers/open-server.js +12 -7
  19. package/dist/agent-farm/servers/open-server.js.map +1 -1
  20. package/dist/agent-farm/servers/tower-server.d.ts +0 -2
  21. package/dist/agent-farm/servers/tower-server.d.ts.map +1 -1
  22. package/dist/agent-farm/servers/tower-server.js +16 -4
  23. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  24. package/dist/agent-farm/types.d.ts +1 -0
  25. package/dist/agent-farm/types.d.ts.map +1 -1
  26. package/dist/agent-farm/utils/shell.d.ts +2 -1
  27. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  28. package/dist/agent-farm/utils/shell.js +35 -2
  29. package/dist/agent-farm/utils/shell.js.map +1 -1
  30. package/dist/cli.d.ts.map +1 -1
  31. package/dist/cli.js +26 -17
  32. package/dist/cli.js.map +1 -1
  33. package/dist/commands/adopt.d.ts.map +1 -1
  34. package/dist/commands/adopt.js +27 -2
  35. package/dist/commands/adopt.js.map +1 -1
  36. package/dist/commands/consult/index.d.ts.map +1 -1
  37. package/dist/commands/consult/index.js +23 -7
  38. package/dist/commands/consult/index.js.map +1 -1
  39. package/dist/commands/doctor.d.ts.map +1 -1
  40. package/dist/commands/doctor.js +51 -0
  41. package/dist/commands/doctor.js.map +1 -1
  42. package/dist/commands/generate-image.d.ts +13 -0
  43. package/dist/commands/generate-image.d.ts.map +1 -0
  44. package/dist/commands/generate-image.js +155 -0
  45. package/dist/commands/generate-image.js.map +1 -0
  46. package/dist/commands/init.d.ts.map +1 -1
  47. package/dist/commands/init.js +23 -2
  48. package/dist/commands/init.js.map +1 -1
  49. package/dist/version.d.ts +3 -0
  50. package/dist/version.d.ts.map +1 -0
  51. package/dist/version.js +23 -0
  52. package/dist/version.js.map +1 -0
  53. package/package.json +5 -3
  54. package/skeleton/DEPENDENCIES.md +3 -3
  55. package/skeleton/protocols/maintain/protocol.md +2 -2
  56. package/skeleton/{docs → resources}/commands/codev.md +0 -39
  57. package/skeleton/{docs → resources}/commands/consult.md +12 -2
  58. package/skeleton/{docs → resources}/commands/overview.md +0 -1
  59. package/skeleton/roles/architect.md +22 -0
  60. package/skeleton/roles/builder.md +22 -0
  61. package/skeleton/templates/arch.md +56 -0
  62. package/skeleton/templates/pr-overview.md +73 -0
  63. package/templates/dashboard-split.html +781 -39
  64. package/templates/open.html +278 -0
  65. package/templates/tower.html +71 -12
  66. package/dist/agent-farm/index.d.ts +0 -7
  67. package/dist/agent-farm/index.d.ts.map +0 -1
  68. package/dist/agent-farm/index.js +0 -373
  69. package/dist/agent-farm/index.js.map +0 -1
  70. package/skeleton/bin/agent-farm +0 -7
  71. package/skeleton/bin/codev-doctor +0 -335
  72. package/skeleton/resources/lessons-learned.md +0 -30
  73. /package/skeleton/{roles/review-types → consult-types}/impl-review.md +0 -0
  74. /package/skeleton/{roles/review-types → consult-types}/integration-review.md +0 -0
  75. /package/skeleton/{roles/review-types → consult-types}/plan-review.md +0 -0
  76. /package/skeleton/{roles/review-types → consult-types}/pr-ready.md +0 -0
  77. /package/skeleton/{roles/review-types → consult-types}/spec-review.md +0 -0
  78. /package/skeleton/{docs → resources}/commands/agent-farm.md +0 -0
  79. /package/skeleton/{AGENTS.md.template → templates/AGENTS.md} +0 -0
  80. /package/skeleton/{CLAUDE.md.template → templates/CLAUDE.md} +0 -0
@@ -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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"}
@@ -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" "$@"