@cluesmith/codev 2.0.0-rc.7 → 2.0.0-rc.70
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/consult.js +1 -1
- package/bin/porch.js +6 -35
- package/dashboard/dist/assets/index-C7FtNK6Y.css +32 -0
- package/dashboard/dist/assets/index-CDAINZKT.js +131 -0
- package/dashboard/dist/assets/index-CDAINZKT.js.map +1 -0
- package/dashboard/dist/index.html +14 -0
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +173 -118
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +3 -3
- package/dist/agent-farm/commands/architect.d.ts.map +1 -1
- package/dist/agent-farm/commands/architect.js +20 -147
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.d.ts +13 -0
- package/dist/agent-farm/commands/attach.d.ts.map +1 -0
- package/dist/agent-farm/commands/attach.js +144 -0
- package/dist/agent-farm/commands/attach.js.map +1 -0
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +35 -19
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/consult.d.ts +3 -4
- package/dist/agent-farm/commands/consult.d.ts.map +1 -1
- package/dist/agent-farm/commands/consult.js +27 -37
- package/dist/agent-farm/commands/consult.js.map +1 -1
- package/dist/agent-farm/commands/index.d.ts +2 -2
- package/dist/agent-farm/commands/index.d.ts.map +1 -1
- package/dist/agent-farm/commands/index.js +2 -2
- package/dist/agent-farm/commands/index.js.map +1 -1
- package/dist/agent-farm/commands/open.d.ts +4 -2
- package/dist/agent-farm/commands/open.d.ts.map +1 -1
- package/dist/agent-farm/commands/open.js +33 -83
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.d.ts +1 -1
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +60 -79
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.d.ts +15 -0
- package/dist/agent-farm/commands/shell.d.ts.map +1 -0
- package/dist/agent-farm/commands/shell.js +50 -0
- package/dist/agent-farm/commands/shell.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +597 -281
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +10 -20
- package/dist/agent-farm/commands/start.d.ts.map +1 -1
- package/dist/agent-farm/commands/start.js +45 -491
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +2 -0
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +75 -24
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +6 -0
- package/dist/agent-farm/commands/stop.d.ts.map +1 -1
- package/dist/agent-farm/commands/stop.js +49 -109
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/commands/tower-cloud.d.ts +48 -0
- package/dist/agent-farm/commands/tower-cloud.d.ts.map +1 -0
- package/dist/agent-farm/commands/tower-cloud.js +334 -0
- package/dist/agent-farm/commands/tower-cloud.js.map +1 -0
- package/dist/agent-farm/commands/tower.d.ts +9 -0
- package/dist/agent-farm/commands/tower.d.ts.map +1 -1
- package/dist/agent-farm/commands/tower.js +59 -19
- package/dist/agent-farm/commands/tower.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts +6 -2
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +246 -18
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/migrate.d.ts +0 -4
- package/dist/agent-farm/db/migrate.d.ts.map +1 -1
- package/dist/agent-farm/db/migrate.js +6 -55
- package/dist/agent-farm/db/migrate.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +3 -3
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +25 -19
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +3 -13
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js +3 -11
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/hq-connector.d.ts +2 -6
- package/dist/agent-farm/hq-connector.d.ts.map +1 -1
- package/dist/agent-farm/hq-connector.js +2 -17
- package/dist/agent-farm/hq-connector.js.map +1 -1
- package/dist/agent-farm/lib/cloud-config.d.ts +59 -0
- package/dist/agent-farm/lib/cloud-config.d.ts.map +1 -0
- package/dist/agent-farm/lib/cloud-config.js +143 -0
- package/dist/agent-farm/lib/cloud-config.js.map +1 -0
- package/dist/agent-farm/lib/tower-client.d.ts +163 -0
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tower-client.js +233 -0
- package/dist/agent-farm/lib/tower-client.js.map +1 -0
- package/dist/agent-farm/lib/tunnel-client.d.ts +117 -0
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -0
- package/dist/agent-farm/lib/tunnel-client.js +504 -0
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.js +2650 -185
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/state.d.ts +6 -12
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +34 -49
- package/dist/agent-farm/state.js.map +1 -1
- package/dist/agent-farm/types.d.ts +49 -26
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +0 -5
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +12 -44
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/deps.d.ts.map +1 -1
- package/dist/agent-farm/utils/deps.js +0 -32
- package/dist/agent-farm/utils/deps.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +27 -0
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -0
- package/dist/agent-farm/utils/file-tabs.js +46 -0
- package/dist/agent-farm/utils/file-tabs.js.map +1 -0
- package/dist/agent-farm/utils/gate-status.d.ts +16 -0
- package/dist/agent-farm/utils/gate-status.d.ts.map +1 -0
- package/dist/agent-farm/utils/gate-status.js +79 -0
- package/dist/agent-farm/utils/gate-status.js.map +1 -0
- package/dist/agent-farm/utils/gate-watcher.d.ts +38 -0
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +1 -0
- package/dist/agent-farm/utils/gate-watcher.js +122 -0
- package/dist/agent-farm/utils/gate-watcher.js.map +1 -0
- package/dist/agent-farm/utils/index.d.ts +0 -1
- package/dist/agent-farm/utils/index.d.ts.map +1 -1
- package/dist/agent-farm/utils/index.js +0 -1
- package/dist/agent-farm/utils/index.js.map +1 -1
- package/dist/agent-farm/utils/notifications.d.ts +30 -0
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
- package/dist/agent-farm/utils/notifications.js +121 -0
- package/dist/agent-farm/utils/notifications.js.map +1 -0
- package/dist/agent-farm/utils/server-utils.d.ts +5 -5
- package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
- package/dist/agent-farm/utils/server-utils.js +5 -16
- package/dist/agent-farm/utils/server-utils.js.map +1 -1
- package/dist/agent-farm/utils/session.d.ts +32 -0
- package/dist/agent-farm/utils/session.d.ts.map +1 -0
- package/dist/agent-farm/utils/session.js +57 -0
- package/dist/agent-farm/utils/session.js.map +1 -0
- package/dist/agent-farm/utils/shell.d.ts +9 -22
- package/dist/agent-farm/utils/shell.d.ts.map +1 -1
- package/dist/agent-farm/utils/shell.js +34 -34
- package/dist/agent-farm/utils/shell.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -54
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +49 -4
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +13 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +245 -29
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +96 -79
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +41 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/build-counter.d.ts +5 -0
- package/dist/commands/porch/build-counter.d.ts.map +1 -0
- package/dist/commands/porch/build-counter.js +5 -0
- package/dist/commands/porch/build-counter.js.map +1 -0
- package/dist/commands/porch/checks.d.ts +17 -29
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +96 -144
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +25 -43
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +463 -1116
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +22 -0
- package/dist/commands/porch/next.d.ts.map +1 -0
- package/dist/commands/porch/next.js +571 -0
- package/dist/commands/porch/next.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +70 -0
- package/dist/commands/porch/plan.d.ts.map +1 -0
- package/dist/commands/porch/plan.js +190 -0
- package/dist/commands/porch/plan.js.map +1 -0
- package/dist/commands/porch/prompts.d.ts +19 -0
- package/dist/commands/porch/prompts.d.ts.map +1 -0
- package/dist/commands/porch/prompts.js +277 -0
- package/dist/commands/porch/prompts.js.map +1 -0
- package/dist/commands/porch/protocol.d.ts +59 -0
- package/dist/commands/porch/protocol.d.ts.map +1 -0
- package/dist/commands/porch/protocol.js +294 -0
- package/dist/commands/porch/protocol.js.map +1 -0
- package/dist/commands/porch/state.d.ts +36 -107
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +120 -699
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +99 -164
- package/dist/commands/porch/types.d.ts.map +1 -1
- package/dist/commands/porch/types.js +2 -1
- package/dist/commands/porch/types.js.map +1 -1
- package/dist/commands/porch/verdict.d.ts +31 -0
- package/dist/commands/porch/verdict.d.ts.map +1 -0
- package/dist/commands/porch/verdict.js +59 -0
- package/dist/commands/porch/verdict.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +31 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +37 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +114 -0
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/terminal/index.d.ts +8 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +5 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/terminal/pty-manager.d.ts +69 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -0
- package/dist/terminal/pty-manager.js +377 -0
- package/dist/terminal/pty-manager.js.map +1 -0
- package/dist/terminal/pty-session.d.ts +104 -0
- package/dist/terminal/pty-session.d.ts.map +1 -0
- package/dist/terminal/pty-session.js +327 -0
- package/dist/terminal/pty-session.js.map +1 -0
- package/dist/terminal/ring-buffer.d.ts +34 -0
- package/dist/terminal/ring-buffer.d.ts.map +1 -0
- package/dist/terminal/ring-buffer.js +94 -0
- package/dist/terminal/ring-buffer.js.map +1 -0
- package/dist/terminal/session-manager.d.ts +115 -0
- package/dist/terminal/session-manager.d.ts.map +1 -0
- package/dist/terminal/session-manager.js +582 -0
- package/dist/terminal/session-manager.js.map +1 -0
- package/dist/terminal/shepherd-client.d.ts +58 -0
- package/dist/terminal/shepherd-client.d.ts.map +1 -0
- package/dist/terminal/shepherd-client.js +212 -0
- package/dist/terminal/shepherd-client.js.map +1 -0
- package/dist/terminal/shepherd-main.d.ts +19 -0
- package/dist/terminal/shepherd-main.d.ts.map +1 -0
- package/dist/terminal/shepherd-main.js +153 -0
- package/dist/terminal/shepherd-main.js.map +1 -0
- package/dist/terminal/shepherd-process.d.ts +75 -0
- package/dist/terminal/shepherd-process.d.ts.map +1 -0
- package/dist/terminal/shepherd-process.js +279 -0
- package/dist/terminal/shepherd-process.js.map +1 -0
- package/dist/terminal/shepherd-protocol.d.ts +115 -0
- package/dist/terminal/shepherd-protocol.d.ts.map +1 -0
- package/dist/terminal/shepherd-protocol.js +214 -0
- package/dist/terminal/shepherd-protocol.js.map +1 -0
- package/dist/terminal/shepherd-replay-buffer.d.ts +38 -0
- package/dist/terminal/shepherd-replay-buffer.d.ts.map +1 -0
- package/dist/terminal/shepherd-replay-buffer.js +94 -0
- package/dist/terminal/shepherd-replay-buffer.js.map +1 -0
- package/dist/terminal/ws-protocol.d.ts +27 -0
- package/dist/terminal/ws-protocol.d.ts.map +1 -0
- package/dist/terminal/ws-protocol.js +44 -0
- package/dist/terminal/ws-protocol.js.map +1 -0
- package/package.json +19 -5
- package/skeleton/.claude/skills/af/SKILL.md +89 -0
- package/skeleton/.claude/skills/codev/SKILL.md +41 -0
- package/skeleton/.claude/skills/consult/SKILL.md +81 -0
- package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
- package/skeleton/DEPENDENCIES.md +4 -62
- package/skeleton/builders.md +1 -1
- package/skeleton/consult-types/impl-review.md +18 -9
- package/skeleton/consult-types/integration-review.md +1 -1
- package/skeleton/consult-types/plan-review.md +1 -1
- package/skeleton/consult-types/pr-ready.md +1 -1
- package/skeleton/consult-types/spec-review.md +1 -1
- package/skeleton/porch/prompts/defend.md +1 -1
- package/skeleton/porch/prompts/evaluate.md +2 -2
- package/skeleton/porch/prompts/implement.md +1 -1
- package/skeleton/porch/prompts/plan.md +1 -1
- package/skeleton/porch/prompts/review.md +4 -4
- package/skeleton/porch/prompts/specify.md +1 -1
- package/skeleton/porch/prompts/understand.md +2 -2
- package/skeleton/protocol-schema.json +282 -0
- package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
- package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
- package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
- package/skeleton/protocols/bugfix/prompts/pr.md +84 -0
- package/skeleton/protocols/bugfix/protocol.json +20 -33
- package/skeleton/protocols/experiment/builder-prompt.md +52 -0
- package/skeleton/protocols/experiment/protocol.json +101 -0
- package/skeleton/protocols/experiment/protocol.md +3 -3
- package/skeleton/protocols/experiment/templates/notes.md +1 -1
- package/skeleton/protocols/maintain/builder-prompt.md +46 -0
- package/skeleton/protocols/maintain/prompts/audit.md +111 -0
- package/skeleton/protocols/maintain/prompts/clean.md +91 -0
- package/skeleton/protocols/maintain/prompts/sync.md +113 -0
- package/skeleton/protocols/maintain/prompts/verify.md +110 -0
- package/skeleton/protocols/maintain/protocol.json +141 -0
- package/skeleton/protocols/maintain/protocol.md +17 -11
- package/skeleton/protocols/protocol-schema.json +54 -1
- package/skeleton/protocols/spir/builder-prompt.md +59 -0
- package/skeleton/protocols/spir/prompts/implement.md +208 -0
- package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
- package/skeleton/protocols/{spider → spir}/prompts/review.md +20 -39
- package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
- package/skeleton/protocols/spir/protocol.json +156 -0
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
- package/skeleton/protocols/spir/templates/review.md +89 -0
- package/skeleton/protocols/tick/builder-prompt.md +56 -0
- package/skeleton/protocols/tick/protocol.json +7 -2
- package/skeleton/protocols/tick/protocol.md +18 -18
- package/skeleton/protocols/tick/templates/review.md +1 -1
- package/skeleton/resources/commands/agent-farm.md +63 -46
- package/skeleton/resources/commands/codev.md +0 -2
- package/skeleton/resources/commands/overview.md +7 -17
- package/skeleton/resources/workflow-reference.md +4 -4
- package/skeleton/roles/architect.md +152 -315
- package/skeleton/roles/builder.md +110 -218
- package/skeleton/roles/consultant.md +6 -6
- package/skeleton/templates/AGENTS.md +2 -2
- package/skeleton/templates/CLAUDE.md +2 -2
- package/skeleton/templates/cheatsheet.md +7 -5
- package/skeleton/templates/projectlist.md +1 -1
- package/templates/dashboard/index.html +17 -43
- package/templates/dashboard/js/dialogs.js +7 -7
- package/templates/dashboard/js/files.js +2 -2
- package/templates/dashboard/js/main.js +4 -4
- package/templates/dashboard/js/projects.js +3 -3
- package/templates/dashboard/js/tabs.js +1 -1
- package/templates/dashboard/js/utils.js +22 -87
- package/templates/open.html +26 -0
- package/templates/tower.html +642 -36
- package/dist/agent-farm/commands/kickoff.d.ts +0 -20
- package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
- package/dist/agent-farm/commands/kickoff.js +0 -337
- package/dist/agent-farm/commands/kickoff.js.map +0 -1
- package/dist/agent-farm/commands/rename.d.ts +0 -13
- package/dist/agent-farm/commands/rename.d.ts.map +0 -1
- package/dist/agent-farm/commands/rename.js +0 -33
- package/dist/agent-farm/commands/rename.js.map +0 -1
- package/dist/agent-farm/commands/tutorial.d.ts +0 -10
- package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
- package/dist/agent-farm/commands/tutorial.js +0 -49
- package/dist/agent-farm/commands/tutorial.js.map +0 -1
- package/dist/agent-farm/commands/util.d.ts +0 -15
- package/dist/agent-farm/commands/util.d.ts.map +0 -1
- package/dist/agent-farm/commands/util.js +0 -108
- package/dist/agent-farm/commands/util.js.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
- package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/dashboard-server.js +0 -1872
- package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
- package/dist/agent-farm/servers/open-server.d.ts +0 -7
- package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
- package/dist/agent-farm/servers/open-server.js +0 -315
- package/dist/agent-farm/servers/open-server.js.map +0 -1
- package/dist/agent-farm/tutorial/index.d.ts +0 -8
- package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/index.js +0 -8
- package/dist/agent-farm/tutorial/index.js.map +0 -1
- package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
- package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/prompts.js +0 -147
- package/dist/agent-farm/tutorial/prompts.js.map +0 -1
- package/dist/agent-farm/tutorial/runner.d.ts +0 -52
- package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/runner.js +0 -204
- package/dist/agent-farm/tutorial/runner.js.map +0 -1
- package/dist/agent-farm/tutorial/state.d.ts +0 -26
- package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/state.js +0 -89
- package/dist/agent-farm/tutorial/state.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
- package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
- package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
- package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/index.js +0 -10
- package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/planning.js +0 -143
- package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/review.js +0 -78
- package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/setup.js +0 -126
- package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
- package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
- package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
- package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
- package/dist/agent-farm/utils/orphan-handler.d.ts +0 -27
- package/dist/agent-farm/utils/orphan-handler.d.ts.map +0 -1
- package/dist/agent-farm/utils/orphan-handler.js +0 -149
- package/dist/agent-farm/utils/orphan-handler.js.map +0 -1
- package/dist/agent-farm/utils/port-registry.d.ts +0 -58
- package/dist/agent-farm/utils/port-registry.d.ts.map +0 -1
- package/dist/agent-farm/utils/port-registry.js +0 -166
- package/dist/agent-farm/utils/port-registry.js.map +0 -1
- package/dist/agent-farm/utils/terminal-ports.d.ts +0 -18
- package/dist/agent-farm/utils/terminal-ports.d.ts.map +0 -1
- package/dist/agent-farm/utils/terminal-ports.js +0 -35
- package/dist/agent-farm/utils/terminal-ports.js.map +0 -1
- package/dist/commands/pcheck/cache.d.ts +0 -48
- package/dist/commands/pcheck/cache.d.ts.map +0 -1
- package/dist/commands/pcheck/cache.js +0 -170
- package/dist/commands/pcheck/cache.js.map +0 -1
- package/dist/commands/pcheck/evaluator.d.ts +0 -15
- package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
- package/dist/commands/pcheck/evaluator.js +0 -246
- package/dist/commands/pcheck/evaluator.js.map +0 -1
- package/dist/commands/pcheck/index.d.ts +0 -12
- package/dist/commands/pcheck/index.d.ts.map +0 -1
- package/dist/commands/pcheck/index.js +0 -249
- package/dist/commands/pcheck/index.js.map +0 -1
- package/dist/commands/pcheck/parser.d.ts +0 -39
- package/dist/commands/pcheck/parser.d.ts.map +0 -1
- package/dist/commands/pcheck/parser.js +0 -155
- package/dist/commands/pcheck/parser.js.map +0 -1
- package/dist/commands/pcheck/types.d.ts +0 -82
- package/dist/commands/pcheck/types.d.ts.map +0 -1
- package/dist/commands/pcheck/types.js +0 -5
- package/dist/commands/pcheck/types.js.map +0 -1
- package/dist/commands/porch/consultation.d.ts +0 -56
- package/dist/commands/porch/consultation.d.ts.map +0 -1
- package/dist/commands/porch/consultation.js +0 -330
- package/dist/commands/porch/consultation.js.map +0 -1
- package/dist/commands/porch/notifications.d.ts +0 -99
- package/dist/commands/porch/notifications.d.ts.map +0 -1
- package/dist/commands/porch/notifications.js +0 -223
- package/dist/commands/porch/notifications.js.map +0 -1
- package/dist/commands/porch/plan-parser.d.ts +0 -38
- package/dist/commands/porch/plan-parser.d.ts.map +0 -1
- package/dist/commands/porch/plan-parser.js +0 -166
- package/dist/commands/porch/plan-parser.js.map +0 -1
- package/dist/commands/porch/protocol-loader.d.ts +0 -46
- package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
- package/dist/commands/porch/protocol-loader.js +0 -253
- package/dist/commands/porch/protocol-loader.js.map +0 -1
- package/dist/commands/porch/signal-parser.d.ts +0 -88
- package/dist/commands/porch/signal-parser.d.ts.map +0 -1
- package/dist/commands/porch/signal-parser.js +0 -148
- package/dist/commands/porch/signal-parser.js.map +0 -1
- package/dist/commands/tower.d.ts +0 -16
- package/dist/commands/tower.d.ts.map +0 -1
- package/dist/commands/tower.js +0 -21
- package/dist/commands/tower.js.map +0 -1
- package/skeleton/config.json +0 -7
- package/skeleton/porch/protocols/bugfix.json +0 -85
- package/skeleton/porch/protocols/spider.json +0 -135
- package/skeleton/porch/protocols/tick.json +0 -76
- package/skeleton/protocols/spider/prompts/defend.md +0 -215
- package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
- package/skeleton/protocols/spider/prompts/implement.md +0 -149
- package/skeleton/protocols/spider/protocol.json +0 -210
- package/skeleton/protocols/spider/templates/review.md +0 -207
- package/templates/dashboard/css/activity.css +0 -151
- package/templates/dashboard/js/activity.js +0 -112
- /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Kickoff command - Start a new protocol-driven project
|
|
3
|
-
*
|
|
4
|
-
* This command combines:
|
|
5
|
-
* 1. Creating a git worktree
|
|
6
|
-
* 2. Initializing porch state
|
|
7
|
-
* 3. Starting the porch loop in the builder
|
|
8
|
-
*/
|
|
9
|
-
export interface KickoffOptions {
|
|
10
|
-
project: string;
|
|
11
|
-
title?: string;
|
|
12
|
-
protocol?: string;
|
|
13
|
-
noRole?: boolean;
|
|
14
|
-
resume?: boolean;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Kickoff a new protocol-driven project
|
|
18
|
-
*/
|
|
19
|
-
export declare function kickoff(options: KickoffOptions): Promise<void>;
|
|
20
|
-
//# sourceMappingURL=kickoff.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kickoff.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/kickoff.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqKD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqNpE"}
|
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Kickoff command - Start a new protocol-driven project
|
|
3
|
-
*
|
|
4
|
-
* This command combines:
|
|
5
|
-
* 1. Creating a git worktree
|
|
6
|
-
* 2. Initializing porch state
|
|
7
|
-
* 3. Starting the porch loop in the builder
|
|
8
|
-
*/
|
|
9
|
-
import { resolve, basename } from 'node:path';
|
|
10
|
-
import { existsSync, readFileSync, writeFileSync, chmodSync, symlinkSync } from 'node:fs';
|
|
11
|
-
import { readdir } from 'node:fs/promises';
|
|
12
|
-
import { getConfig, ensureDirectories, getResolvedCommands } from '../utils/index.js';
|
|
13
|
-
import { logger, fatal } from '../utils/logger.js';
|
|
14
|
-
import { run, commandExists, findAvailablePort, spawnTtyd } from '../utils/shell.js';
|
|
15
|
-
import { loadState, upsertBuilder } from '../state.js';
|
|
16
|
-
import { loadRolePrompt } from '../utils/roles.js';
|
|
17
|
-
/**
|
|
18
|
-
* Get project name from config
|
|
19
|
-
*/
|
|
20
|
-
function getProjectName(config) {
|
|
21
|
-
return basename(config.projectRoot);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get tmux session name
|
|
25
|
-
*/
|
|
26
|
-
function getSessionName(config, builderId) {
|
|
27
|
-
return `builder-${getProjectName(config)}-${builderId}`;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Find an available port
|
|
31
|
-
*/
|
|
32
|
-
async function findFreePort(config) {
|
|
33
|
-
const state = loadState();
|
|
34
|
-
const usedPorts = new Set();
|
|
35
|
-
for (const b of state.builders || []) {
|
|
36
|
-
if (b.port)
|
|
37
|
-
usedPorts.add(b.port);
|
|
38
|
-
}
|
|
39
|
-
let port = config.builderPortRange[0];
|
|
40
|
-
while (usedPorts.has(port)) {
|
|
41
|
-
port++;
|
|
42
|
-
}
|
|
43
|
-
return findAvailablePort(port);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Find spec file by project ID
|
|
47
|
-
*/
|
|
48
|
-
async function findSpecFile(codevDir, projectId) {
|
|
49
|
-
const specsDir = resolve(codevDir, 'specs');
|
|
50
|
-
if (!existsSync(specsDir)) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
const files = await readdir(specsDir);
|
|
54
|
-
for (const file of files) {
|
|
55
|
-
if (file.startsWith(projectId) && file.endsWith('.md')) {
|
|
56
|
-
return resolve(specsDir, file);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
for (const file of files) {
|
|
60
|
-
if (file.startsWith(projectId + '-') && file.endsWith('.md')) {
|
|
61
|
-
return resolve(specsDir, file);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
async function findPorchState(codevDir, projectId) {
|
|
67
|
-
const projectsDir = resolve(codevDir, 'projects');
|
|
68
|
-
if (!existsSync(projectsDir)) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
const dirs = await readdir(projectsDir);
|
|
72
|
-
for (const dir of dirs) {
|
|
73
|
-
if (dir.startsWith(`${projectId}-`)) {
|
|
74
|
-
const statusPath = resolve(projectsDir, dir, 'status.yaml');
|
|
75
|
-
if (existsSync(statusPath)) {
|
|
76
|
-
const content = readFileSync(statusPath, 'utf-8');
|
|
77
|
-
// Simple YAML parsing for the fields we need
|
|
78
|
-
const idMatch = content.match(/^id:\s*"?([^"\n]+)"?/m);
|
|
79
|
-
const titleMatch = content.match(/^title:\s*"?([^"\n]+)"?/m);
|
|
80
|
-
const protocolMatch = content.match(/^protocol:\s*"?([^"\n]+)"?/m);
|
|
81
|
-
const stateMatch = content.match(/^state:\s*"?([^"\n]+)"?/m);
|
|
82
|
-
if (idMatch && titleMatch) {
|
|
83
|
-
return {
|
|
84
|
-
id: idMatch[1],
|
|
85
|
-
title: titleMatch[1],
|
|
86
|
-
protocol: protocolMatch?.[1] || 'spider',
|
|
87
|
-
state: stateMatch?.[1] || 'unknown',
|
|
88
|
-
statusPath,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Create git branch and worktree
|
|
98
|
-
*/
|
|
99
|
-
async function createWorktree(config, branchName, worktreePath) {
|
|
100
|
-
logger.info('Creating branch...');
|
|
101
|
-
try {
|
|
102
|
-
await run(`git branch ${branchName}`, { cwd: config.projectRoot });
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
logger.debug('Branch may already exist');
|
|
106
|
-
}
|
|
107
|
-
logger.info('Creating worktree...');
|
|
108
|
-
try {
|
|
109
|
-
await run(`git worktree add "${worktreePath}" ${branchName}`, { cwd: config.projectRoot });
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
fatal(`Failed to create worktree: ${error}`);
|
|
113
|
-
}
|
|
114
|
-
// Symlink .env
|
|
115
|
-
const rootEnvPath = resolve(config.projectRoot, '.env');
|
|
116
|
-
const worktreeEnvPath = resolve(worktreePath, '.env');
|
|
117
|
-
if (existsSync(rootEnvPath) && !existsSync(worktreeEnvPath)) {
|
|
118
|
-
try {
|
|
119
|
-
symlinkSync(rootEnvPath, worktreeEnvPath);
|
|
120
|
-
logger.info('Linked .env from project root');
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
logger.debug('Failed to symlink .env');
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Check dependencies
|
|
129
|
-
*/
|
|
130
|
-
async function checkDependencies() {
|
|
131
|
-
if (!(await commandExists('git'))) {
|
|
132
|
-
fatal('git not found');
|
|
133
|
-
}
|
|
134
|
-
if (!(await commandExists('ttyd'))) {
|
|
135
|
-
fatal('ttyd not found. Install with: brew install ttyd');
|
|
136
|
-
}
|
|
137
|
-
if (!(await commandExists('porch'))) {
|
|
138
|
-
logger.warn('porch command not found in PATH. Falling back to codev porch.');
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Get porch command (prefer standalone, fall back to codev porch)
|
|
143
|
-
*/
|
|
144
|
-
async function getPorchCommand() {
|
|
145
|
-
if (await commandExists('porch')) {
|
|
146
|
-
return 'porch';
|
|
147
|
-
}
|
|
148
|
-
return 'codev porch';
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Kickoff a new protocol-driven project
|
|
152
|
-
*/
|
|
153
|
-
export async function kickoff(options) {
|
|
154
|
-
const { project: projectId, title, protocol: protocolName = 'spider', noRole, resume } = options;
|
|
155
|
-
const config = getConfig();
|
|
156
|
-
// Find spec file OR porch state
|
|
157
|
-
const specFile = await findSpecFile(config.codevDir, projectId);
|
|
158
|
-
let porchState = await findPorchState(config.codevDir, projectId);
|
|
159
|
-
// Need either a spec, porch state, or title to proceed
|
|
160
|
-
if (!specFile && !porchState && !title) {
|
|
161
|
-
fatal(`No spec or porch state found for project: ${projectId}\n` +
|
|
162
|
-
`Either:\n` +
|
|
163
|
-
` 1. Create a spec file (codev/specs/${projectId}-*.md)\n` +
|
|
164
|
-
` 2. Provide a title: af kickoff -p ${projectId} --title "feature-name"\n` +
|
|
165
|
-
` 3. Initialize porch manually: porch init ${protocolName} ${projectId} <project-name>`);
|
|
166
|
-
}
|
|
167
|
-
// If we have a title but no porch state, we'll initialize porch before creating worktree
|
|
168
|
-
const needsInitialization = !specFile && !porchState && title;
|
|
169
|
-
// Derive the project title from spec, porch state, or provided title
|
|
170
|
-
const projectTitle = specFile
|
|
171
|
-
? basename(specFile, '.md').replace(/^\d+-/, '') // Strip leading number from spec filename
|
|
172
|
-
: porchState?.title || title;
|
|
173
|
-
// Derive names from spec or porch state or title
|
|
174
|
-
const specName = specFile ? basename(specFile, '.md') : `${projectId}-${projectTitle}`;
|
|
175
|
-
const builderId = projectId;
|
|
176
|
-
const safeName = projectTitle.toLowerCase().replace(/[^a-z0-9_-]/g, '-').replace(/-+/g, '-');
|
|
177
|
-
const actualProtocol = porchState?.protocol || protocolName;
|
|
178
|
-
// Use worktrees/ directory with protocol-prefixed naming per spec 0073
|
|
179
|
-
const worktreesDir = resolve(config.projectRoot, 'worktrees');
|
|
180
|
-
const worktreeName = `${actualProtocol.toLowerCase()}_${projectId}_${safeName}`;
|
|
181
|
-
const branchName = `builder/${projectId}-${safeName}`;
|
|
182
|
-
const worktreePath = resolve(worktreesDir, worktreeName);
|
|
183
|
-
// Check for plan file (only if spec exists)
|
|
184
|
-
const planFile = specFile ? resolve(config.codevDir, 'plans', `${basename(specFile, '.md')}.md`) : null;
|
|
185
|
-
const hasPlan = planFile ? existsSync(planFile) : false;
|
|
186
|
-
// Check if porch state already exists
|
|
187
|
-
const hasExistingState = !!porchState;
|
|
188
|
-
logger.header(`Kickoff Builder ${builderId}`);
|
|
189
|
-
logger.kv('Spec', specFile || '(to be created)');
|
|
190
|
-
logger.kv('Protocol', (porchState?.protocol || protocolName).toUpperCase());
|
|
191
|
-
logger.kv('Branch', branchName);
|
|
192
|
-
logger.kv('Worktree', worktreePath);
|
|
193
|
-
logger.kv('Porch State', hasExistingState ? 'exists (resume)' : 'new');
|
|
194
|
-
await ensureDirectories(config);
|
|
195
|
-
await checkDependencies();
|
|
196
|
-
// Ensure worktrees directory exists
|
|
197
|
-
if (!existsSync(worktreesDir)) {
|
|
198
|
-
const { mkdir } = await import('node:fs/promises');
|
|
199
|
-
await mkdir(worktreesDir, { recursive: true });
|
|
200
|
-
}
|
|
201
|
-
// Check if worktree already exists
|
|
202
|
-
if (existsSync(worktreePath)) {
|
|
203
|
-
if (resume) {
|
|
204
|
-
logger.info('Resuming existing worktree');
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
fatal(`Worktree already exists at ${worktreePath}\nUse --resume to continue, or run: af cleanup --project ${projectId}`);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
await createWorktree(config, branchName, worktreePath);
|
|
212
|
-
}
|
|
213
|
-
const porchCmd = await getPorchCommand();
|
|
214
|
-
// Initialize porch state if not resuming existing
|
|
215
|
-
if (!hasExistingState && !resume) {
|
|
216
|
-
logger.info('Initializing porch state...');
|
|
217
|
-
try {
|
|
218
|
-
await run(`${porchCmd} init ${protocolName} ${projectId} "${safeName}" --worktree "${worktreePath}"`, {
|
|
219
|
-
cwd: config.projectRoot,
|
|
220
|
-
});
|
|
221
|
-
logger.success('Porch state initialized');
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
logger.warn(`Failed to initialize porch state: ${error}`);
|
|
225
|
-
logger.info('Builder will start without porch orchestration');
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
// Build the prompt
|
|
229
|
-
const specRelPath = specFile ? `codev/specs/${basename(specFile)}` : `codev/specs/${projectId}-${safeName}.md`;
|
|
230
|
-
const planRelPath = `codev/plans/${projectId}-${safeName}.md`;
|
|
231
|
-
const protocolPath = `codev/protocols/${actualProtocol.toLowerCase()}/protocol.md`;
|
|
232
|
-
let initialPrompt = `## Protocol
|
|
233
|
-
Follow the ${actualProtocol.toUpperCase()} protocol STRICTLY: ${protocolPath}
|
|
234
|
-
Read and internalize the protocol before starting any work.
|
|
235
|
-
|
|
236
|
-
## Porch Orchestration
|
|
237
|
-
This builder is orchestrated by Porch. Check your current state with:
|
|
238
|
-
porch status ${projectId}
|
|
239
|
-
|
|
240
|
-
Current porch state: ${porchState?.state || 'initializing'}
|
|
241
|
-
|
|
242
|
-
## Task`;
|
|
243
|
-
if (specFile) {
|
|
244
|
-
initialPrompt += `
|
|
245
|
-
Implement the feature specified in ${specRelPath}.`;
|
|
246
|
-
if (hasPlan) {
|
|
247
|
-
initialPrompt += ` Follow the implementation plan in ${planRelPath}.`;
|
|
248
|
-
}
|
|
249
|
-
initialPrompt += `
|
|
250
|
-
|
|
251
|
-
Start by reading the protocol, spec${hasPlan ? ', and plan' : ''}, then begin implementation.`;
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
// No spec yet - builder starts from specify phase
|
|
255
|
-
initialPrompt += `
|
|
256
|
-
Project: ${porchState?.title || safeName}
|
|
257
|
-
|
|
258
|
-
You are starting from the SPECIFY phase. Your first task is to:
|
|
259
|
-
1. Read the protocol (${protocolPath})
|
|
260
|
-
2. Understand what "${porchState?.title || safeName}" means
|
|
261
|
-
3. Create the specification file at ${specRelPath}
|
|
262
|
-
|
|
263
|
-
The porch orchestrator will guide you through each phase. Follow the signals it expects.`;
|
|
264
|
-
}
|
|
265
|
-
const builderPrompt = `You are a Builder. Read codev/roles/builder.md for your full role definition.
|
|
266
|
-
|
|
267
|
-
${initialPrompt}`;
|
|
268
|
-
// Load role
|
|
269
|
-
const role = noRole ? null : loadRolePrompt(config, 'builder');
|
|
270
|
-
const commands = getResolvedCommands();
|
|
271
|
-
// Start builder session
|
|
272
|
-
const port = await findFreePort(config);
|
|
273
|
-
const sessionName = getSessionName(config, builderId);
|
|
274
|
-
logger.info('Creating tmux session...');
|
|
275
|
-
// Write prompt and role files
|
|
276
|
-
const promptFile = resolve(worktreePath, '.builder-prompt.txt');
|
|
277
|
-
writeFileSync(promptFile, builderPrompt);
|
|
278
|
-
const scriptPath = resolve(worktreePath, '.builder-start.sh');
|
|
279
|
-
let scriptContent;
|
|
280
|
-
// Builder startup script runs porch, which orchestrates Claude sessions
|
|
281
|
-
// The role file is written for reference but porch handles the actual invocations
|
|
282
|
-
if (role) {
|
|
283
|
-
const roleFile = resolve(worktreePath, '.builder-role.md');
|
|
284
|
-
const roleWithPort = role.content.replace(/\{PORT\}/g, String(config.dashboardPort));
|
|
285
|
-
writeFileSync(roleFile, roleWithPort);
|
|
286
|
-
logger.info(`Loaded role (${role.source})`);
|
|
287
|
-
}
|
|
288
|
-
// Run porch as the main orchestrator
|
|
289
|
-
// Porch will invoke Claude for each phase with appropriate context
|
|
290
|
-
scriptContent = `#!/bin/bash
|
|
291
|
-
cd "${worktreePath}"
|
|
292
|
-
echo "Starting porch orchestrator for project ${projectId}..."
|
|
293
|
-
echo "Protocol: ${protocolName.toUpperCase()}"
|
|
294
|
-
echo ""
|
|
295
|
-
exec ${porchCmd} run ${projectId}
|
|
296
|
-
`;
|
|
297
|
-
writeFileSync(scriptPath, scriptContent);
|
|
298
|
-
chmodSync(scriptPath, '755');
|
|
299
|
-
// Create tmux session
|
|
300
|
-
await run(`tmux new-session -d -s "${sessionName}" -x 200 -y 50 -c "${worktreePath}" "${scriptPath}"`);
|
|
301
|
-
await run(`tmux set-option -t "${sessionName}" status off`);
|
|
302
|
-
await run('tmux set -g mouse on');
|
|
303
|
-
await run('tmux set -g set-clipboard on');
|
|
304
|
-
await run('tmux set -g allow-passthrough on');
|
|
305
|
-
// Start ttyd
|
|
306
|
-
logger.info('Starting builder terminal...');
|
|
307
|
-
const customIndexPath = resolve(config.templatesDir, 'ttyd-index.html');
|
|
308
|
-
const hasCustomIndex = existsSync(customIndexPath);
|
|
309
|
-
const ttydProcess = spawnTtyd({
|
|
310
|
-
port,
|
|
311
|
-
sessionName,
|
|
312
|
-
cwd: worktreePath,
|
|
313
|
-
customIndexPath: hasCustomIndex ? customIndexPath : undefined,
|
|
314
|
-
});
|
|
315
|
-
if (!ttydProcess?.pid) {
|
|
316
|
-
fatal('Failed to start ttyd process');
|
|
317
|
-
}
|
|
318
|
-
const builder = {
|
|
319
|
-
id: builderId,
|
|
320
|
-
name: specName,
|
|
321
|
-
port,
|
|
322
|
-
pid: ttydProcess.pid,
|
|
323
|
-
status: 'spawning',
|
|
324
|
-
phase: 'init',
|
|
325
|
-
worktree: worktreePath,
|
|
326
|
-
branch: branchName,
|
|
327
|
-
tmuxSession: sessionName,
|
|
328
|
-
type: 'spec',
|
|
329
|
-
};
|
|
330
|
-
upsertBuilder(builder);
|
|
331
|
-
logger.blank();
|
|
332
|
-
logger.success(`Builder ${builderId} kicked off!`);
|
|
333
|
-
logger.kv('Terminal', `http://localhost:${port}`);
|
|
334
|
-
logger.kv('Porch Status', `porch status ${projectId}`);
|
|
335
|
-
logger.kv('Porch Run', `porch run ${projectId}`);
|
|
336
|
-
}
|
|
337
|
-
//# sourceMappingURL=kickoff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kickoff.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/kickoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rename command - rename a builder or utility terminal
|
|
3
|
-
*/
|
|
4
|
-
interface RenameOptions {
|
|
5
|
-
id: string;
|
|
6
|
-
name: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Rename a builder or utility terminal
|
|
10
|
-
*/
|
|
11
|
-
export declare function rename(options: RenameOptions): void;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=rename.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/rename.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CA2BnD"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rename command - rename a builder or utility terminal
|
|
3
|
-
*/
|
|
4
|
-
import { renameBuilder, renameUtil } from '../state.js';
|
|
5
|
-
import { logger, fatal } from '../utils/logger.js';
|
|
6
|
-
/**
|
|
7
|
-
* Rename a builder or utility terminal
|
|
8
|
-
*/
|
|
9
|
-
export function rename(options) {
|
|
10
|
-
const { id, name } = options;
|
|
11
|
-
if (!name.trim()) {
|
|
12
|
-
fatal('Name cannot be empty');
|
|
13
|
-
}
|
|
14
|
-
// Try to rename as builder first
|
|
15
|
-
const oldBuilderName = renameBuilder(id, name);
|
|
16
|
-
if (oldBuilderName !== null) {
|
|
17
|
-
logger.success(`Renamed builder "${id}"`);
|
|
18
|
-
logger.kv('Old name', oldBuilderName);
|
|
19
|
-
logger.kv('New name', name);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
// Try to rename as util
|
|
23
|
-
const oldUtilName = renameUtil(id, name);
|
|
24
|
-
if (oldUtilName !== null) {
|
|
25
|
-
logger.success(`Renamed utility "${id}"`);
|
|
26
|
-
logger.kv('Old name', oldUtilName);
|
|
27
|
-
logger.kv('New name', name);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
// Not found
|
|
31
|
-
fatal(`No builder or utility found with ID: ${id}`);
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=rename.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/rename.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOnD;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,OAAsB;IAC3C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;IAED,iCAAiC;IACjC,MAAM,cAAc,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tutorial command handler
|
|
3
|
-
* Interactive onboarding for new users
|
|
4
|
-
*/
|
|
5
|
-
import type { TutorialOptions } from '../types.js';
|
|
6
|
-
/**
|
|
7
|
-
* Main tutorial command
|
|
8
|
-
*/
|
|
9
|
-
export declare function tutorial(options: TutorialOptions): Promise<void>;
|
|
10
|
-
//# sourceMappingURL=tutorial.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tutorial.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/tutorial.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAyBnD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtE"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tutorial command handler
|
|
3
|
-
* Interactive onboarding for new users
|
|
4
|
-
*/
|
|
5
|
-
import { logger } from '../utils/logger.js';
|
|
6
|
-
import { resetTutorialState } from '../tutorial/state.js';
|
|
7
|
-
import { runTutorial, showStatus, skipCurrentStep } from '../tutorial/runner.js';
|
|
8
|
-
// Import all tutorial steps
|
|
9
|
-
import { welcomeStep } from '../tutorial/steps/welcome.js';
|
|
10
|
-
import { setupStep } from '../tutorial/steps/setup.js';
|
|
11
|
-
import { firstSpecStep } from '../tutorial/steps/first-spec.js';
|
|
12
|
-
import { planningStep } from '../tutorial/steps/planning.js';
|
|
13
|
-
import { implementationStep } from '../tutorial/steps/implementation.js';
|
|
14
|
-
import { reviewStep } from '../tutorial/steps/review.js';
|
|
15
|
-
/**
|
|
16
|
-
* All tutorial steps in order
|
|
17
|
-
*/
|
|
18
|
-
const TUTORIAL_STEPS = [
|
|
19
|
-
welcomeStep,
|
|
20
|
-
setupStep,
|
|
21
|
-
firstSpecStep,
|
|
22
|
-
planningStep,
|
|
23
|
-
implementationStep,
|
|
24
|
-
reviewStep,
|
|
25
|
-
];
|
|
26
|
-
/**
|
|
27
|
-
* Main tutorial command
|
|
28
|
-
*/
|
|
29
|
-
export async function tutorial(options) {
|
|
30
|
-
// Handle --reset flag
|
|
31
|
-
if (options.reset) {
|
|
32
|
-
await resetTutorialState();
|
|
33
|
-
logger.success('Tutorial progress reset. Run `af tutorial` to start fresh.');
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
// Handle --status flag
|
|
37
|
-
if (options.status) {
|
|
38
|
-
await showStatus(TUTORIAL_STEPS);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
// Handle --skip flag
|
|
42
|
-
if (options.skip) {
|
|
43
|
-
await skipCurrentStep(TUTORIAL_STEPS);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
// Default: run the tutorial
|
|
47
|
-
await runTutorial(TUTORIAL_STEPS);
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=tutorial.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tutorial.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/tutorial.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAa,MAAM,uBAAuB,CAAC;AAE5F,4BAA4B;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD;;GAEG;AACH,MAAM,cAAc,GAAW;IAC7B,WAAW;IACX,SAAS;IACT,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,UAAU;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,sBAAsB;IACtB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,kBAAkB,EAAE,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Util command - spawns a utility terminal
|
|
3
|
-
*
|
|
4
|
-
* When the dashboard is running, this creates a tab in the dashboard.
|
|
5
|
-
* When the dashboard is not running, it spawns the terminal directly.
|
|
6
|
-
*/
|
|
7
|
-
interface UtilOptions {
|
|
8
|
-
name?: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Spawn a utility terminal
|
|
12
|
-
*/
|
|
13
|
-
export declare function util(options?: UtilOptions): Promise<void>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/commands/util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAuCD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEnE"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Util command - spawns a utility terminal
|
|
3
|
-
*
|
|
4
|
-
* When the dashboard is running, this creates a tab in the dashboard.
|
|
5
|
-
* When the dashboard is not running, it spawns the terminal directly.
|
|
6
|
-
*/
|
|
7
|
-
import { getConfig, getResolvedCommands } from '../utils/index.js';
|
|
8
|
-
import { logger, fatal } from '../utils/logger.js';
|
|
9
|
-
import { spawnDetached, commandExists, findAvailablePort, openBrowser } from '../utils/shell.js';
|
|
10
|
-
import { loadState, addUtil } from '../state.js';
|
|
11
|
-
/**
|
|
12
|
-
* Try to create a shell tab via the dashboard API
|
|
13
|
-
* Returns true if successful, false if dashboard not available
|
|
14
|
-
*/
|
|
15
|
-
async function tryDashboardApi(name) {
|
|
16
|
-
const state = loadState();
|
|
17
|
-
// Dashboard port from config
|
|
18
|
-
if (!state.architect) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
const config = getConfig();
|
|
22
|
-
const dashboardPort = config.dashboardPort;
|
|
23
|
-
try {
|
|
24
|
-
const response = await fetch(`http://localhost:${dashboardPort}/api/tabs/shell`, {
|
|
25
|
-
method: 'POST',
|
|
26
|
-
headers: { 'Content-Type': 'application/json' },
|
|
27
|
-
body: JSON.stringify({ name }),
|
|
28
|
-
});
|
|
29
|
-
if (response.ok) {
|
|
30
|
-
const result = await response.json();
|
|
31
|
-
logger.success(`Shell opened in dashboard tab`);
|
|
32
|
-
logger.kv('Name', result.name);
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
// Dashboard returned an error, fall through to direct spawn
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
// Dashboard not available
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Spawn a utility terminal
|
|
45
|
-
*/
|
|
46
|
-
export async function util(options = {}) {
|
|
47
|
-
const config = getConfig();
|
|
48
|
-
// Try to use dashboard API first (if dashboard is running)
|
|
49
|
-
const dashboardOpened = await tryDashboardApi(options.name);
|
|
50
|
-
if (dashboardOpened) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
// Fall back to direct spawn
|
|
54
|
-
// Check for ttyd
|
|
55
|
-
if (!(await commandExists('ttyd'))) {
|
|
56
|
-
fatal('ttyd not found. Install with: brew install ttyd');
|
|
57
|
-
}
|
|
58
|
-
// Generate ID and name
|
|
59
|
-
const id = generateUtilId();
|
|
60
|
-
const name = options.name || `util-${id}`;
|
|
61
|
-
// Find available port
|
|
62
|
-
const port = await findAvailablePort(config.utilPortRange[0]);
|
|
63
|
-
// Get shell command from config (hierarchy: CLI > config.json > default)
|
|
64
|
-
const commands = getResolvedCommands();
|
|
65
|
-
const shell = commands.shell;
|
|
66
|
-
logger.header(`Spawning Utility Terminal`);
|
|
67
|
-
logger.kv('ID', id);
|
|
68
|
-
logger.kv('Name', name);
|
|
69
|
-
logger.kv('Port', port);
|
|
70
|
-
// Start ttyd
|
|
71
|
-
const ttydArgs = [
|
|
72
|
-
'-W',
|
|
73
|
-
'-p', String(port),
|
|
74
|
-
'-t', `titleFixed=${name}`,
|
|
75
|
-
'-t', 'fontSize=14',
|
|
76
|
-
'-t', 'rightClickSelectsWord=true', // Enable word selection on right-click for better UX
|
|
77
|
-
shell,
|
|
78
|
-
];
|
|
79
|
-
const ttydProcess = spawnDetached('ttyd', ttydArgs, {
|
|
80
|
-
cwd: config.projectRoot,
|
|
81
|
-
});
|
|
82
|
-
if (!ttydProcess.pid) {
|
|
83
|
-
fatal('Failed to start ttyd process for utility terminal');
|
|
84
|
-
}
|
|
85
|
-
// Create util record
|
|
86
|
-
const utilTerminal = {
|
|
87
|
-
id,
|
|
88
|
-
name,
|
|
89
|
-
port,
|
|
90
|
-
pid: ttydProcess.pid,
|
|
91
|
-
};
|
|
92
|
-
addUtil(utilTerminal);
|
|
93
|
-
logger.blank();
|
|
94
|
-
logger.success(`Utility terminal spawned!`);
|
|
95
|
-
logger.kv('Terminal', `http://localhost:${port}`);
|
|
96
|
-
// Open in browser if not using dashboard
|
|
97
|
-
const url = `http://localhost:${port}`;
|
|
98
|
-
await openBrowser(url);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Generate a unique utility ID
|
|
102
|
-
*/
|
|
103
|
-
function generateUtilId() {
|
|
104
|
-
const timestamp = Date.now().toString(36);
|
|
105
|
-
const random = Math.random().toString(36).substring(2, 4);
|
|
106
|
-
return `U${timestamp.slice(-3)}${random}`.toUpperCase();
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/agent-farm/commands/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-server.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/dashboard-server.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
|