@cluesmith/codev 2.0.0-rc.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/af.js +2 -2
- package/bin/consult.js +1 -1
- package/dashboard/dist/assets/index-4n9zpWLY.css +32 -0
- package/dashboard/dist/assets/index-b38SaXk5.js +136 -0
- package/dashboard/dist/assets/index-b38SaXk5.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 +179 -104
- 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 +70 -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-roles.d.ts +80 -0
- package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -0
- package/dist/agent-farm/commands/spawn-roles.js +278 -0
- package/dist/agent-farm/commands/spawn-roles.js.map +1 -0
- package/dist/agent-farm/commands/spawn-worktree.d.ts +96 -0
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -0
- package/dist/agent-farm/commands/spawn-worktree.js +305 -0
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -0
- package/dist/agent-farm/commands/spawn.d.ts +5 -1
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +241 -561
- 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 -449
- 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 +293 -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 +301 -19
- 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/device-name.d.ts +25 -0
- package/dist/agent-farm/lib/device-name.d.ts.map +1 -0
- package/dist/agent-farm/lib/device-name.js +46 -0
- package/dist/agent-farm/lib/device-name.js.map +1 -0
- package/dist/agent-farm/lib/nonce-store.d.ts +28 -0
- package/dist/agent-farm/lib/nonce-store.d.ts.map +1 -0
- package/dist/agent-farm/lib/nonce-store.js +60 -0
- package/dist/agent-farm/lib/nonce-store.js.map +1 -0
- package/dist/agent-farm/lib/token-exchange.d.ts +18 -0
- package/dist/agent-farm/lib/token-exchange.d.ts.map +1 -0
- package/dist/agent-farm/lib/token-exchange.js +48 -0
- package/dist/agent-farm/lib/token-exchange.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-instances.d.ts +82 -0
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-instances.js +454 -0
- package/dist/agent-farm/servers/tower-instances.js.map +1 -0
- package/dist/agent-farm/servers/tower-routes.d.ts +34 -0
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-routes.js +1445 -0
- package/dist/agent-farm/servers/tower-routes.js.map +1 -0
- package/dist/agent-farm/servers/tower-server.d.ts +5 -2
- package/dist/agent-farm/servers/tower-server.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +157 -475
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +119 -0
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-terminals.js +629 -0
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -0
- package/dist/agent-farm/servers/tower-tunnel.d.ts +34 -0
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-tunnel.js +473 -0
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -0
- package/dist/agent-farm/servers/tower-types.d.ts +86 -0
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-types.js +6 -0
- package/dist/agent-farm/servers/tower-types.js.map +1 -0
- package/dist/agent-farm/servers/tower-utils.d.ts +58 -0
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-utils.js +182 -0
- package/dist/agent-farm/servers/tower-utils.js.map +1 -0
- package/dist/agent-farm/servers/tower-websocket.d.ts +25 -0
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -0
- package/dist/agent-farm/servers/tower-websocket.js +171 -0
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -0
- package/dist/agent-farm/state.d.ts +6 -2
- package/dist/agent-farm/state.d.ts.map +1 -1
- package/dist/agent-farm/state.js +34 -25
- 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 +6 -37
- package/dist/cli.js.map +1 -1
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +33 -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 +244 -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 +36 -3
- 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 +3 -2
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +8 -2
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/index.d.ts +4 -0
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +109 -70
- 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 +11 -1
- package/dist/commands/porch/plan.d.ts.map +1 -1
- package/dist/commands/porch/plan.js +33 -5
- package/dist/commands/porch/plan.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +44 -26
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +6 -4
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +59 -15
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +29 -2
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +71 -3
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/porch/types.d.ts +45 -2
- package/dist/commands/porch/types.d.ts.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 +18 -6
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +13 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +36 -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/shellper-client.d.ts +66 -0
- package/dist/terminal/shellper-client.d.ts.map +1 -0
- package/dist/terminal/shellper-client.js +234 -0
- package/dist/terminal/shellper-client.js.map +1 -0
- package/dist/terminal/shellper-main.d.ts +19 -0
- package/dist/terminal/shellper-main.d.ts.map +1 -0
- package/dist/terminal/shellper-main.js +153 -0
- package/dist/terminal/shellper-main.js.map +1 -0
- package/dist/terminal/shellper-process.d.ts +75 -0
- package/dist/terminal/shellper-process.d.ts.map +1 -0
- package/dist/terminal/shellper-process.js +279 -0
- package/dist/terminal/shellper-process.js.map +1 -0
- package/dist/terminal/shellper-protocol.d.ts +115 -0
- package/dist/terminal/shellper-protocol.d.ts.map +1 -0
- package/dist/terminal/shellper-protocol.js +214 -0
- package/dist/terminal/shellper-protocol.js.map +1 -0
- package/dist/terminal/shellper-replay-buffer.d.ts +38 -0
- package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -0
- package/dist/terminal/shellper-replay-buffer.js +94 -0
- package/dist/terminal/shellper-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 +17 -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 +60 -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 +66 -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 +24 -59
- package/skeleton/protocols/{spider → spir}/protocol.json +30 -10
- package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
- 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 +151 -306
- package/skeleton/roles/builder.md +115 -332
- 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 -16
- 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 -1
- package/templates/open.html +26 -0
- package/templates/tower.html +731 -91
- 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 -273
- 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 -1858
- 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/claude.d.ts +0 -29
- package/dist/commands/porch/claude.d.ts.map +0 -1
- package/dist/commands/porch/claude.js +0 -79
- package/dist/commands/porch/claude.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 -262
- package/dist/commands/porch/protocol-loader.js.map +0 -1
- package/dist/commands/porch/repl.d.ts +0 -33
- package/dist/commands/porch/repl.d.ts.map +0 -1
- package/dist/commands/porch/repl.js +0 -206
- package/dist/commands/porch/repl.js.map +0 -1
- package/dist/commands/porch/run.d.ts +0 -15
- package/dist/commands/porch/run.d.ts.map +0 -1
- package/dist/commands/porch/run.js +0 -551
- package/dist/commands/porch/run.js.map +0 -1
- package/dist/commands/porch/signal-parser.d.ts +0 -102
- package/dist/commands/porch/signal-parser.d.ts.map +0 -1
- package/dist/commands/porch/signal-parser.js +0 -199
- package/dist/commands/porch/signal-parser.js.map +0 -1
- package/dist/commands/porch/signals.d.ts +0 -35
- package/dist/commands/porch/signals.d.ts.map +0 -1
- package/dist/commands/porch/signals.js +0 -76
- package/dist/commands/porch/signals.js.map +0 -1
- package/dist/commands/porch2/checks.d.ts +0 -29
- package/dist/commands/porch2/checks.d.ts.map +0 -1
- package/dist/commands/porch2/checks.js +0 -141
- package/dist/commands/porch2/checks.js.map +0 -1
- package/dist/commands/porch2/index.d.ts +0 -38
- package/dist/commands/porch2/index.d.ts.map +0 -1
- package/dist/commands/porch2/index.js +0 -483
- package/dist/commands/porch2/index.js.map +0 -1
- package/dist/commands/porch2/plan.d.ts +0 -70
- package/dist/commands/porch2/plan.d.ts.map +0 -1
- package/dist/commands/porch2/plan.js +0 -227
- package/dist/commands/porch2/plan.js.map +0 -1
- package/dist/commands/porch2/protocol.d.ts +0 -37
- package/dist/commands/porch2/protocol.d.ts.map +0 -1
- package/dist/commands/porch2/protocol.js +0 -183
- package/dist/commands/porch2/protocol.js.map +0 -1
- package/dist/commands/porch2/state.d.ts +0 -35
- package/dist/commands/porch2/state.d.ts.map +0 -1
- package/dist/commands/porch2/state.js +0 -124
- package/dist/commands/porch2/state.js.map +0 -1
- package/dist/commands/porch2/types.d.ts +0 -79
- package/dist/commands/porch2/types.d.ts.map +0 -1
- package/dist/commands/porch2/types.js +0 -8
- package/dist/commands/porch2/types.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/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/templates/review.md +0 -207
- /package/skeleton/protocols/{spider → spir}/templates/plan.md +0 -0
- /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* Uses better-sqlite3 for synchronous operations with proper concurrency handling.
|
|
6
6
|
*/
|
|
7
7
|
import Database from 'better-sqlite3';
|
|
8
|
-
import { existsSync, mkdirSync, copyFileSync, unlinkSync } from 'node:fs';
|
|
8
|
+
import { existsSync, mkdirSync, copyFileSync, unlinkSync, readdirSync, renameSync } from 'node:fs';
|
|
9
9
|
import { homedir } from 'node:os';
|
|
10
|
-
import { resolve } from 'node:path';
|
|
10
|
+
import { resolve, dirname, join } from 'node:path';
|
|
11
11
|
import { LOCAL_SCHEMA, GLOBAL_SCHEMA } from './schema.js';
|
|
12
|
-
import { migrateLocalFromJson
|
|
12
|
+
import { migrateLocalFromJson } from './migrate.js';
|
|
13
13
|
import { getConfig } from '../utils/index.js';
|
|
14
14
|
// Singleton instances
|
|
15
15
|
let _localDb = null;
|
|
@@ -91,10 +91,18 @@ export function getDbPath() {
|
|
|
91
91
|
return resolve(config.stateDir, 'state.db');
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
|
-
* Get the path to the global database
|
|
94
|
+
* Get the path to the global database.
|
|
95
|
+
* Uses per-test isolation when NODE_ENV=test:
|
|
96
|
+
* - AF_TEST_DB env var → custom DB name (e.g., "test-14500.db")
|
|
97
|
+
* - NODE_ENV=test without AF_TEST_DB → "test.db"
|
|
98
|
+
* - Production → "global.db"
|
|
95
99
|
*/
|
|
96
100
|
export function getGlobalDbPath() {
|
|
97
|
-
|
|
101
|
+
let dbName = 'global.db';
|
|
102
|
+
if (process.env.NODE_ENV === 'test') {
|
|
103
|
+
dbName = process.env.AF_TEST_DB || 'test.db';
|
|
104
|
+
}
|
|
105
|
+
return resolve(homedir(), '.agent-farm', dbName);
|
|
98
106
|
}
|
|
99
107
|
/**
|
|
100
108
|
* Initialize the local database (state.db)
|
|
@@ -127,15 +135,140 @@ function ensureLocalDatabase() {
|
|
|
127
135
|
db.prepare('INSERT OR IGNORE INTO _migrations (version) VALUES (1)').run();
|
|
128
136
|
console.log('[info] Created new state.db at', dbPath);
|
|
129
137
|
}
|
|
138
|
+
// Migration v2: Add terminal_id columns (node-pty rewrite)
|
|
139
|
+
const v2 = db.prepare('SELECT version FROM _migrations WHERE version = 2').get();
|
|
140
|
+
if (!v2) {
|
|
141
|
+
// Add terminal_id to tables that may already exist without it
|
|
142
|
+
const tables = ['architect', 'builders', 'utils'];
|
|
143
|
+
for (const table of tables) {
|
|
144
|
+
try {
|
|
145
|
+
db.exec(`ALTER TABLE ${table} ADD COLUMN terminal_id TEXT`);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// Column already exists (fresh install ran full schema)
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (2)').run();
|
|
152
|
+
}
|
|
153
|
+
// Migration v3: Remove UNIQUE constraint from utils.port (node-pty shells use port=0)
|
|
154
|
+
const v3 = db.prepare('SELECT version FROM _migrations WHERE version = 3').get();
|
|
155
|
+
if (!v3) {
|
|
156
|
+
// Check if utils table has the UNIQUE constraint on port
|
|
157
|
+
const tableInfo = db
|
|
158
|
+
.prepare("SELECT sql FROM sqlite_master WHERE type='table' AND name='utils'")
|
|
159
|
+
.get();
|
|
160
|
+
if (tableInfo?.sql?.includes('port INTEGER NOT NULL UNIQUE')) {
|
|
161
|
+
// SQLite can't drop constraints, so recreate table
|
|
162
|
+
db.exec(`
|
|
163
|
+
CREATE TABLE utils_new (
|
|
164
|
+
id TEXT PRIMARY KEY,
|
|
165
|
+
name TEXT NOT NULL,
|
|
166
|
+
port INTEGER NOT NULL DEFAULT 0,
|
|
167
|
+
pid INTEGER NOT NULL DEFAULT 0,
|
|
168
|
+
tmux_session TEXT,
|
|
169
|
+
terminal_id TEXT,
|
|
170
|
+
started_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
171
|
+
);
|
|
172
|
+
INSERT INTO utils_new SELECT id, name, port, pid, tmux_session, terminal_id, started_at FROM utils;
|
|
173
|
+
DROP TABLE utils;
|
|
174
|
+
ALTER TABLE utils_new RENAME TO utils;
|
|
175
|
+
`);
|
|
176
|
+
console.log('[info] Migrated utils table: removed UNIQUE constraint from port');
|
|
177
|
+
}
|
|
178
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (3)').run();
|
|
179
|
+
}
|
|
180
|
+
// Migration v4: Remove UNIQUE constraint from builders.port (PTY-backed builders use port=0)
|
|
181
|
+
const v4 = db.prepare('SELECT version FROM _migrations WHERE version = 4').get();
|
|
182
|
+
if (!v4) {
|
|
183
|
+
const tableInfo = db
|
|
184
|
+
.prepare("SELECT sql FROM sqlite_master WHERE type='table' AND name='builders'")
|
|
185
|
+
.get();
|
|
186
|
+
if (tableInfo?.sql?.includes('port INTEGER NOT NULL UNIQUE')) {
|
|
187
|
+
// SQLite can't drop constraints, so recreate table
|
|
188
|
+
db.exec(`
|
|
189
|
+
CREATE TABLE builders_new (
|
|
190
|
+
id TEXT PRIMARY KEY,
|
|
191
|
+
name TEXT NOT NULL,
|
|
192
|
+
port INTEGER NOT NULL DEFAULT 0,
|
|
193
|
+
pid INTEGER NOT NULL DEFAULT 0,
|
|
194
|
+
status TEXT NOT NULL DEFAULT 'spawning'
|
|
195
|
+
CHECK(status IN ('spawning', 'implementing', 'blocked', 'pr-ready', 'complete')),
|
|
196
|
+
phase TEXT NOT NULL DEFAULT '',
|
|
197
|
+
worktree TEXT NOT NULL,
|
|
198
|
+
branch TEXT NOT NULL,
|
|
199
|
+
tmux_session TEXT,
|
|
200
|
+
type TEXT NOT NULL DEFAULT 'spec'
|
|
201
|
+
CHECK(type IN ('spec', 'task', 'protocol', 'shell', 'worktree', 'bugfix')),
|
|
202
|
+
task_text TEXT,
|
|
203
|
+
protocol_name TEXT,
|
|
204
|
+
issue_number INTEGER,
|
|
205
|
+
terminal_id TEXT,
|
|
206
|
+
started_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
207
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
208
|
+
);
|
|
209
|
+
INSERT INTO builders_new SELECT * FROM builders;
|
|
210
|
+
DROP TABLE builders;
|
|
211
|
+
ALTER TABLE builders_new RENAME TO builders;
|
|
212
|
+
CREATE INDEX IF NOT EXISTS idx_builders_status ON builders(status);
|
|
213
|
+
CREATE INDEX IF NOT EXISTS idx_builders_port ON builders(port);
|
|
214
|
+
CREATE TRIGGER IF NOT EXISTS builders_updated_at
|
|
215
|
+
AFTER UPDATE ON builders
|
|
216
|
+
FOR EACH ROW
|
|
217
|
+
BEGIN
|
|
218
|
+
UPDATE builders SET updated_at = datetime('now') WHERE id = NEW.id;
|
|
219
|
+
END;
|
|
220
|
+
`);
|
|
221
|
+
console.log('[info] Migrated builders table: removed UNIQUE constraint from port');
|
|
222
|
+
}
|
|
223
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (4)').run();
|
|
224
|
+
}
|
|
225
|
+
// Migration v5: Remove UNIQUE constraint from annotations.port (all annotations use port=0)
|
|
226
|
+
const v5 = db.prepare('SELECT version FROM _migrations WHERE version = 5').get();
|
|
227
|
+
if (!v5) {
|
|
228
|
+
const tableInfo = db
|
|
229
|
+
.prepare("SELECT sql FROM sqlite_master WHERE type='table' AND name='annotations'")
|
|
230
|
+
.get();
|
|
231
|
+
if (tableInfo?.sql?.includes('port INTEGER NOT NULL UNIQUE')) {
|
|
232
|
+
db.exec(`
|
|
233
|
+
CREATE TABLE annotations_new (
|
|
234
|
+
id TEXT PRIMARY KEY,
|
|
235
|
+
file TEXT NOT NULL,
|
|
236
|
+
port INTEGER NOT NULL DEFAULT 0,
|
|
237
|
+
pid INTEGER NOT NULL DEFAULT 0,
|
|
238
|
+
parent_type TEXT NOT NULL CHECK(parent_type IN ('architect', 'builder', 'util')),
|
|
239
|
+
parent_id TEXT,
|
|
240
|
+
started_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
241
|
+
);
|
|
242
|
+
INSERT INTO annotations_new SELECT id, file, port, pid, parent_type, parent_id, started_at FROM annotations;
|
|
243
|
+
DROP TABLE annotations;
|
|
244
|
+
ALTER TABLE annotations_new RENAME TO annotations;
|
|
245
|
+
`);
|
|
246
|
+
console.log('[info] Migrated annotations table: removed UNIQUE constraint from port');
|
|
247
|
+
}
|
|
248
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (5)').run();
|
|
249
|
+
}
|
|
250
|
+
// Migration v6: Drop tmux_session columns (Spec 0104 - tmux replaced by shepherd)
|
|
251
|
+
const v6 = db.prepare('SELECT version FROM _migrations WHERE version = 6').get();
|
|
252
|
+
if (!v6) {
|
|
253
|
+
const tables = ['architect', 'builders', 'utils'];
|
|
254
|
+
for (const table of tables) {
|
|
255
|
+
try {
|
|
256
|
+
db.exec(`ALTER TABLE ${table} DROP COLUMN tmux_session`);
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
// Column may not exist (fresh install with updated schema)
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (6)').run();
|
|
263
|
+
}
|
|
130
264
|
return db;
|
|
131
265
|
}
|
|
132
266
|
/**
|
|
133
267
|
* Initialize the global database (global.db)
|
|
134
268
|
*/
|
|
135
269
|
function ensureGlobalDatabase() {
|
|
136
|
-
const
|
|
137
|
-
const
|
|
138
|
-
const jsonPath = resolve(globalDir, 'ports.json');
|
|
270
|
+
const dbPath = getGlobalDbPath();
|
|
271
|
+
const globalDir = dirname(dbPath);
|
|
139
272
|
// Ensure directory exists
|
|
140
273
|
ensureDir(globalDir);
|
|
141
274
|
// Create/open database
|
|
@@ -145,21 +278,170 @@ function ensureGlobalDatabase() {
|
|
|
145
278
|
db.exec(GLOBAL_SCHEMA);
|
|
146
279
|
// Check if migration is needed
|
|
147
280
|
const migrated = db.prepare('SELECT version FROM _migrations WHERE version = 1').get();
|
|
148
|
-
if (!migrated
|
|
149
|
-
// Migrate from JSON
|
|
150
|
-
migrateGlobalFromJson(db, jsonPath);
|
|
151
|
-
// Record migration
|
|
152
|
-
db.prepare('INSERT INTO _migrations (version) VALUES (1)').run();
|
|
153
|
-
// Backup original JSON and remove it
|
|
154
|
-
copyFileSync(jsonPath, jsonPath + '.bak');
|
|
155
|
-
unlinkSync(jsonPath);
|
|
156
|
-
console.log('[info] Migrated ports.json to global.db (backup at ports.json.bak)');
|
|
157
|
-
}
|
|
158
|
-
else if (!migrated) {
|
|
281
|
+
if (!migrated) {
|
|
159
282
|
// Fresh install, just mark migration as done
|
|
160
283
|
db.prepare('INSERT OR IGNORE INTO _migrations (version) VALUES (1)').run();
|
|
161
284
|
console.log('[info] Created new global.db at', dbPath);
|
|
162
285
|
}
|
|
286
|
+
// Migration v2: No-op (previously added columns to port_allocations, now removed by Spec 0098)
|
|
287
|
+
const v2 = db.prepare('SELECT version FROM _migrations WHERE version = 2').get();
|
|
288
|
+
if (!v2) {
|
|
289
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (2)').run();
|
|
290
|
+
}
|
|
291
|
+
// Migration v3: Add terminal_sessions table (Spec 0090 TICK-001)
|
|
292
|
+
const v3 = db.prepare('SELECT version FROM _migrations WHERE version = 3').get();
|
|
293
|
+
if (!v3) {
|
|
294
|
+
// Create terminal_sessions table if it doesn't exist
|
|
295
|
+
db.exec(`
|
|
296
|
+
CREATE TABLE IF NOT EXISTS terminal_sessions (
|
|
297
|
+
id TEXT PRIMARY KEY,
|
|
298
|
+
project_path TEXT NOT NULL,
|
|
299
|
+
type TEXT NOT NULL CHECK(type IN ('architect', 'builder', 'shell')),
|
|
300
|
+
role_id TEXT,
|
|
301
|
+
pid INTEGER,
|
|
302
|
+
tmux_session TEXT,
|
|
303
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
304
|
+
);
|
|
305
|
+
CREATE INDEX IF NOT EXISTS idx_terminal_sessions_project ON terminal_sessions(project_path);
|
|
306
|
+
CREATE INDEX IF NOT EXISTS idx_terminal_sessions_type ON terminal_sessions(type);
|
|
307
|
+
`);
|
|
308
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (3)').run();
|
|
309
|
+
console.log('[info] Created terminal_sessions table (Spec 0090 TICK-001)');
|
|
310
|
+
}
|
|
311
|
+
// Migration v4: Add file_tabs table (Spec 0099 Phase 4)
|
|
312
|
+
const v4 = db.prepare('SELECT version FROM _migrations WHERE version = 4').get();
|
|
313
|
+
if (!v4) {
|
|
314
|
+
db.exec(`
|
|
315
|
+
CREATE TABLE IF NOT EXISTS file_tabs (
|
|
316
|
+
id TEXT PRIMARY KEY,
|
|
317
|
+
project_path TEXT NOT NULL,
|
|
318
|
+
file_path TEXT NOT NULL,
|
|
319
|
+
created_at INTEGER NOT NULL
|
|
320
|
+
);
|
|
321
|
+
CREATE INDEX IF NOT EXISTS idx_file_tabs_project ON file_tabs(project_path);
|
|
322
|
+
`);
|
|
323
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (4)').run();
|
|
324
|
+
console.log('[info] Created file_tabs table (Spec 0099 Phase 4)');
|
|
325
|
+
}
|
|
326
|
+
// Migration v5: Add known_projects table for persistent project registry
|
|
327
|
+
const v5 = db.prepare('SELECT version FROM _migrations WHERE version = 5').get();
|
|
328
|
+
if (!v5) {
|
|
329
|
+
db.exec(`
|
|
330
|
+
CREATE TABLE IF NOT EXISTS known_projects (
|
|
331
|
+
project_path TEXT PRIMARY KEY,
|
|
332
|
+
name TEXT NOT NULL,
|
|
333
|
+
last_launched_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
334
|
+
);
|
|
335
|
+
`);
|
|
336
|
+
// Seed from existing terminal_sessions so current projects appear immediately
|
|
337
|
+
db.exec(`
|
|
338
|
+
INSERT OR IGNORE INTO known_projects (project_path, name, last_launched_at)
|
|
339
|
+
SELECT DISTINCT project_path, '', datetime('now') FROM terminal_sessions;
|
|
340
|
+
`);
|
|
341
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (5)').run();
|
|
342
|
+
console.log('[info] Created known_projects table');
|
|
343
|
+
}
|
|
344
|
+
// Migration v6: Add shepherd columns to terminal_sessions (Spec 0104)
|
|
345
|
+
const v6 = db.prepare('SELECT version FROM _migrations WHERE version = 6').get();
|
|
346
|
+
if (!v6) {
|
|
347
|
+
const cols = ['shepherd_socket TEXT', 'shepherd_pid INTEGER', 'shepherd_start_time INTEGER'];
|
|
348
|
+
for (const col of cols) {
|
|
349
|
+
try {
|
|
350
|
+
db.exec(`ALTER TABLE terminal_sessions ADD COLUMN ${col}`);
|
|
351
|
+
}
|
|
352
|
+
catch {
|
|
353
|
+
// Column already exists (fresh install ran updated schema)
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (6)').run();
|
|
357
|
+
console.log('[info] Added shepherd columns to terminal_sessions (Spec 0104)');
|
|
358
|
+
}
|
|
359
|
+
// Migration v7: Drop tmux_session column from terminal_sessions (Spec 0104 Phase 4)
|
|
360
|
+
const v7 = db.prepare('SELECT version FROM _migrations WHERE version = 7').get();
|
|
361
|
+
if (!v7) {
|
|
362
|
+
// SQLite table-rebuild pattern to drop the tmux_session column
|
|
363
|
+
try {
|
|
364
|
+
db.exec(`
|
|
365
|
+
CREATE TABLE IF NOT EXISTS terminal_sessions_new (
|
|
366
|
+
id TEXT PRIMARY KEY,
|
|
367
|
+
project_path TEXT NOT NULL,
|
|
368
|
+
type TEXT NOT NULL CHECK(type IN ('architect', 'builder', 'shell')),
|
|
369
|
+
role_id TEXT,
|
|
370
|
+
pid INTEGER,
|
|
371
|
+
shepherd_socket TEXT,
|
|
372
|
+
shepherd_pid INTEGER,
|
|
373
|
+
shepherd_start_time INTEGER,
|
|
374
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
375
|
+
);
|
|
376
|
+
INSERT OR IGNORE INTO terminal_sessions_new
|
|
377
|
+
SELECT id, project_path, type, role_id, pid, shepherd_socket, shepherd_pid, shepherd_start_time, created_at
|
|
378
|
+
FROM terminal_sessions;
|
|
379
|
+
DROP TABLE terminal_sessions;
|
|
380
|
+
ALTER TABLE terminal_sessions_new RENAME TO terminal_sessions;
|
|
381
|
+
CREATE INDEX IF NOT EXISTS idx_terminal_sessions_project ON terminal_sessions(project_path);
|
|
382
|
+
CREATE INDEX IF NOT EXISTS idx_terminal_sessions_type ON terminal_sessions(type);
|
|
383
|
+
`);
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
// Table may already be in the correct schema (fresh install)
|
|
387
|
+
}
|
|
388
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (7)').run();
|
|
389
|
+
console.log('[info] Dropped tmux_session column from terminal_sessions (Spec 0104)');
|
|
390
|
+
}
|
|
391
|
+
// Migration v8: Rename shepherd_* columns to shellper_* (Spec 0106)
|
|
392
|
+
const v8 = db.prepare('SELECT version FROM _migrations WHERE version = 8').get();
|
|
393
|
+
if (!v8) {
|
|
394
|
+
try {
|
|
395
|
+
db.exec(`
|
|
396
|
+
CREATE TABLE IF NOT EXISTS terminal_sessions_new (
|
|
397
|
+
id TEXT PRIMARY KEY,
|
|
398
|
+
project_path TEXT NOT NULL,
|
|
399
|
+
type TEXT NOT NULL CHECK(type IN ('architect', 'builder', 'shell')),
|
|
400
|
+
role_id TEXT,
|
|
401
|
+
pid INTEGER,
|
|
402
|
+
shellper_socket TEXT,
|
|
403
|
+
shellper_pid INTEGER,
|
|
404
|
+
shellper_start_time INTEGER,
|
|
405
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
406
|
+
);
|
|
407
|
+
INSERT OR IGNORE INTO terminal_sessions_new
|
|
408
|
+
SELECT id, project_path, type, role_id, pid, shepherd_socket, shepherd_pid, shepherd_start_time, created_at
|
|
409
|
+
FROM terminal_sessions;
|
|
410
|
+
DROP TABLE terminal_sessions;
|
|
411
|
+
ALTER TABLE terminal_sessions_new RENAME TO terminal_sessions;
|
|
412
|
+
CREATE INDEX IF NOT EXISTS idx_terminal_sessions_project ON terminal_sessions(project_path);
|
|
413
|
+
CREATE INDEX IF NOT EXISTS idx_terminal_sessions_type ON terminal_sessions(type);
|
|
414
|
+
UPDATE terminal_sessions SET shellper_socket = REPLACE(shellper_socket, 'shepherd-', 'shellper-')
|
|
415
|
+
WHERE shellper_socket LIKE '%shepherd-%';
|
|
416
|
+
`);
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
// Table may already be in the correct schema (fresh install)
|
|
420
|
+
}
|
|
421
|
+
// Rename physical socket files on disk
|
|
422
|
+
try {
|
|
423
|
+
const runDir = join(homedir(), '.codev', 'run');
|
|
424
|
+
if (existsSync(runDir)) {
|
|
425
|
+
const files = readdirSync(runDir);
|
|
426
|
+
for (const file of files) {
|
|
427
|
+
if (file.startsWith('shepherd-') && file.endsWith('.sock')) {
|
|
428
|
+
const newName = file.replace('shepherd-', 'shellper-');
|
|
429
|
+
try {
|
|
430
|
+
renameSync(join(runDir, file), join(runDir, newName));
|
|
431
|
+
}
|
|
432
|
+
catch {
|
|
433
|
+
// Skip files that can't be renamed (missing, permissions, etc.)
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
catch {
|
|
440
|
+
// Skip if run directory doesn't exist or can't be read
|
|
441
|
+
}
|
|
442
|
+
db.prepare('INSERT INTO _migrations (version) VALUES (8)').run();
|
|
443
|
+
console.log('[info] Renamed shepherd columns to shellper in terminal_sessions (Spec 0106)');
|
|
444
|
+
}
|
|
163
445
|
return db;
|
|
164
446
|
}
|
|
165
447
|
// Re-export types and utilities
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent-farm/db/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent-farm/db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,4 @@ import type Database from 'better-sqlite3';
|
|
|
8
8
|
* Migrate local state from JSON to SQLite
|
|
9
9
|
*/
|
|
10
10
|
export declare function migrateLocalFromJson(db: Database.Database, jsonPath: string): void;
|
|
11
|
-
/**
|
|
12
|
-
* Migrate global port registry from JSON to SQLite
|
|
13
|
-
*/
|
|
14
|
-
export declare function migrateGlobalFromJson(db: Database.Database, jsonPath: string): void;
|
|
15
11
|
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAqB3C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiFlF"}
|
|
@@ -15,14 +15,13 @@ export function migrateLocalFromJson(db, jsonPath) {
|
|
|
15
15
|
// Migrate architect
|
|
16
16
|
if (state.architect) {
|
|
17
17
|
db.prepare(`
|
|
18
|
-
INSERT INTO architect (id, pid, port, cmd, started_at
|
|
19
|
-
VALUES (1, @pid, @port, @cmd, @startedAt
|
|
18
|
+
INSERT INTO architect (id, pid, port, cmd, started_at)
|
|
19
|
+
VALUES (1, @pid, @port, @cmd, @startedAt)
|
|
20
20
|
`).run({
|
|
21
21
|
pid: state.architect.pid,
|
|
22
22
|
port: state.architect.port,
|
|
23
23
|
cmd: state.architect.cmd,
|
|
24
24
|
startedAt: state.architect.startedAt,
|
|
25
|
-
tmuxSession: state.architect.tmuxSession ?? null,
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
27
|
// Migrate builders
|
|
@@ -30,11 +29,11 @@ export function migrateLocalFromJson(db, jsonPath) {
|
|
|
30
29
|
db.prepare(`
|
|
31
30
|
INSERT INTO builders (
|
|
32
31
|
id, name, port, pid, status, phase, worktree, branch,
|
|
33
|
-
|
|
32
|
+
type, task_text, protocol_name
|
|
34
33
|
)
|
|
35
34
|
VALUES (
|
|
36
35
|
@id, @name, @port, @pid, @status, @phase, @worktree, @branch,
|
|
37
|
-
@
|
|
36
|
+
@type, @taskText, @protocolName
|
|
38
37
|
)
|
|
39
38
|
`).run({
|
|
40
39
|
id: builder.id,
|
|
@@ -45,7 +44,6 @@ export function migrateLocalFromJson(db, jsonPath) {
|
|
|
45
44
|
phase: builder.phase,
|
|
46
45
|
worktree: builder.worktree,
|
|
47
46
|
branch: builder.branch,
|
|
48
|
-
tmuxSession: builder.tmuxSession ?? null,
|
|
49
47
|
type: builder.type,
|
|
50
48
|
taskText: builder.taskText ?? null,
|
|
51
49
|
protocolName: builder.protocolName ?? null,
|
|
@@ -54,14 +52,13 @@ export function migrateLocalFromJson(db, jsonPath) {
|
|
|
54
52
|
// Migrate utils
|
|
55
53
|
for (const util of state.utils || []) {
|
|
56
54
|
db.prepare(`
|
|
57
|
-
INSERT INTO utils (id, name, port, pid
|
|
58
|
-
VALUES (@id, @name, @port, @pid
|
|
55
|
+
INSERT INTO utils (id, name, port, pid)
|
|
56
|
+
VALUES (@id, @name, @port, @pid)
|
|
59
57
|
`).run({
|
|
60
58
|
id: util.id,
|
|
61
59
|
name: util.name,
|
|
62
60
|
port: util.port,
|
|
63
61
|
pid: util.pid,
|
|
64
|
-
tmuxSession: util.tmuxSession ?? null,
|
|
65
62
|
});
|
|
66
63
|
}
|
|
67
64
|
// Migrate annotations
|
|
@@ -88,50 +85,4 @@ export function migrateLocalFromJson(db, jsonPath) {
|
|
|
88
85
|
throw err;
|
|
89
86
|
}
|
|
90
87
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Migrate global port registry from JSON to SQLite
|
|
93
|
-
*/
|
|
94
|
-
export function migrateGlobalFromJson(db, jsonPath) {
|
|
95
|
-
const jsonContent = readFileSync(jsonPath, 'utf-8');
|
|
96
|
-
const data = JSON.parse(jsonContent);
|
|
97
|
-
// Handle both formats: versioned ({ version, entries }) and legacy (direct entries)
|
|
98
|
-
let entries;
|
|
99
|
-
if (data.version && data.entries) {
|
|
100
|
-
// New versioned format
|
|
101
|
-
entries = data.entries;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
// Legacy format - the object itself is the entries
|
|
105
|
-
// Filter out any non-entry fields
|
|
106
|
-
entries = {};
|
|
107
|
-
for (const [key, value] of Object.entries(data)) {
|
|
108
|
-
if (typeof value === 'object' && value !== null && 'basePort' in value) {
|
|
109
|
-
entries[key] = value;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
// Wrap in transaction for atomicity
|
|
114
|
-
const migrate = db.transaction(() => {
|
|
115
|
-
for (const [projectPath, entry] of Object.entries(entries)) {
|
|
116
|
-
db.prepare(`
|
|
117
|
-
INSERT INTO port_allocations (project_path, base_port, pid, registered_at, last_used_at)
|
|
118
|
-
VALUES (@projectPath, @basePort, @pid, @registeredAt, @lastUsedAt)
|
|
119
|
-
`).run({
|
|
120
|
-
projectPath,
|
|
121
|
-
basePort: entry.basePort,
|
|
122
|
-
pid: entry.pid ?? null,
|
|
123
|
-
registeredAt: entry.registered,
|
|
124
|
-
lastUsedAt: entry.lastUsed ?? entry.registered,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
try {
|
|
129
|
-
migrate();
|
|
130
|
-
}
|
|
131
|
-
catch (err) {
|
|
132
|
-
console.error('[error] Port registry migration failed. JSON file preserved.');
|
|
133
|
-
console.error('[error] Manual recovery: delete global.db and restart');
|
|
134
|
-
throw err;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
88
|
//# sourceMappingURL=migrate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/agent-farm/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/agent-farm/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAoBvC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,QAAgB;IAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAClC,oBAAoB;QACpB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC;gBACL,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG;gBACxB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI;gBAC1B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS;aACrC,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC3C,EAAE,CAAC,OAAO,CAAC;;;;;;;;;OASV,CAAC,CAAC,GAAG,CAAC;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gBAClC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;aAC3C,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACrC,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YACjD,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC;gBACL,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;gBAClC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* Local state schema (state.db)
|
|
8
8
|
* Stores dashboard state: architect, builders, utils, annotations
|
|
9
9
|
*/
|
|
10
|
-
export declare const LOCAL_SCHEMA = "\n-- Schema versioning\nCREATE TABLE IF NOT EXISTS _migrations (\n version INTEGER PRIMARY KEY,\n applied_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Architect session (singleton)\nCREATE TABLE IF NOT EXISTS architect (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n pid INTEGER NOT NULL,\n port INTEGER NOT NULL,\n cmd TEXT NOT NULL,\n started_at TEXT NOT NULL DEFAULT (datetime('now')),\n
|
|
10
|
+
export declare const LOCAL_SCHEMA = "\n-- Schema versioning\nCREATE TABLE IF NOT EXISTS _migrations (\n version INTEGER PRIMARY KEY,\n applied_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Architect session (singleton)\nCREATE TABLE IF NOT EXISTS architect (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n pid INTEGER NOT NULL,\n port INTEGER NOT NULL,\n cmd TEXT NOT NULL,\n started_at TEXT NOT NULL DEFAULT (datetime('now')),\n terminal_id TEXT\n);\n\n-- Builder sessions\nCREATE TABLE IF NOT EXISTS builders (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n port INTEGER NOT NULL DEFAULT 0,\n pid INTEGER NOT NULL DEFAULT 0,\n status TEXT NOT NULL DEFAULT 'spawning'\n CHECK(status IN ('spawning', 'implementing', 'blocked', 'pr-ready', 'complete')),\n phase TEXT NOT NULL DEFAULT '',\n worktree TEXT NOT NULL,\n branch TEXT NOT NULL,\n type TEXT NOT NULL DEFAULT 'spec'\n CHECK(type IN ('spec', 'task', 'protocol', 'shell', 'worktree', 'bugfix')),\n task_text TEXT,\n protocol_name TEXT,\n issue_number INTEGER,\n terminal_id TEXT,\n started_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Indexes for common queries\nCREATE INDEX IF NOT EXISTS idx_builders_status ON builders(status);\nCREATE INDEX IF NOT EXISTS idx_builders_port ON builders(port);\n\n-- Utility terminals\nCREATE TABLE IF NOT EXISTS utils (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n port INTEGER NOT NULL DEFAULT 0,\n pid INTEGER NOT NULL DEFAULT 0,\n terminal_id TEXT,\n started_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Annotations (file viewers)\nCREATE TABLE IF NOT EXISTS annotations (\n id TEXT PRIMARY KEY,\n file TEXT NOT NULL,\n port INTEGER NOT NULL DEFAULT 0,\n pid INTEGER NOT NULL DEFAULT 0,\n parent_type TEXT NOT NULL CHECK(parent_type IN ('architect', 'builder', 'util')),\n parent_id TEXT,\n started_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Trigger to update updated_at on builders\nCREATE TRIGGER IF NOT EXISTS builders_updated_at\n AFTER UPDATE ON builders\n FOR EACH ROW\n BEGIN\n UPDATE builders SET updated_at = datetime('now') WHERE id = NEW.id;\n END;\n";
|
|
11
11
|
/**
|
|
12
12
|
* Global registry schema (global.db)
|
|
13
|
-
* Stores
|
|
13
|
+
* Stores terminal sessions and migrations across all projects
|
|
14
14
|
*/
|
|
15
|
-
export declare const GLOBAL_SCHEMA = "\n-- Schema versioning\nCREATE TABLE IF NOT EXISTS _migrations (\n version INTEGER PRIMARY KEY,\n applied_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n--
|
|
15
|
+
export declare const GLOBAL_SCHEMA = "\n-- Schema versioning\nCREATE TABLE IF NOT EXISTS _migrations (\n version INTEGER PRIMARY KEY,\n applied_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\n-- Terminal sessions (Spec 0090 TICK-001)\n-- Tracks all terminal sessions across all projects for persistence and reconciliation\nCREATE TABLE IF NOT EXISTS terminal_sessions (\n id TEXT PRIMARY KEY, -- terminal UUID from PtyManager\n project_path TEXT NOT NULL, -- project this terminal belongs to\n type TEXT NOT NULL -- 'architect', 'builder', 'shell'\n CHECK(type IN ('architect', 'builder', 'shell')),\n role_id TEXT, -- builder ID or shell ID (null for architect)\n pid INTEGER, -- process ID of the terminal\n shellper_socket TEXT, -- Unix socket path for shellper process\n shellper_pid INTEGER, -- shellper process PID\n shellper_start_time INTEGER, -- shellper process start time (epoch ms)\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n);\n\nCREATE INDEX IF NOT EXISTS idx_terminal_sessions_project ON terminal_sessions(project_path);\nCREATE INDEX IF NOT EXISTS idx_terminal_sessions_type ON terminal_sessions(type);\n";
|
|
16
16
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/db/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/db/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,6mEAsExB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,kvCAwBzB,CAAC"}
|