@cluesmith/codev 3.2.4 → 3.3.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/dashboard-dist/assets/index-BZRTEMtH.css +32 -0
- package/dashboard-dist/assets/{index-BZ1x7x1X.js → index-JCbkpAcV.js} +33 -33
- package/dashboard-dist/assets/index-JCbkpAcV.js.map +1 -0
- package/dashboard-dist/index.html +2 -2
- package/dist/agent-farm/cli.d.ts.map +1 -1
- package/dist/agent-farm/cli.js +142 -0
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +16 -0
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/inbox.d.ts +42 -0
- package/dist/agent-farm/commands/inbox.d.ts.map +1 -0
- package/dist/agent-farm/commands/inbox.js +129 -0
- package/dist/agent-farm/commands/inbox.js.map +1 -0
- package/dist/agent-farm/commands/interrupt.d.ts +20 -0
- package/dist/agent-farm/commands/interrupt.d.ts.map +1 -0
- package/dist/agent-farm/commands/interrupt.js +65 -0
- package/dist/agent-farm/commands/interrupt.js.map +1 -0
- package/dist/agent-farm/commands/reset/constants.d.ts +52 -0
- package/dist/agent-farm/commands/reset/constants.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/constants.js +52 -0
- package/dist/agent-farm/commands/reset/constants.js.map +1 -0
- package/dist/agent-farm/commands/reset/context.d.ts +230 -0
- package/dist/agent-farm/commands/reset/context.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/context.js +428 -0
- package/dist/agent-farm/commands/reset/context.js.map +1 -0
- package/dist/agent-farm/commands/reset/index.d.ts +192 -0
- package/dist/agent-farm/commands/reset/index.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/index.js +488 -0
- package/dist/agent-farm/commands/reset/index.js.map +1 -0
- package/dist/agent-farm/commands/reset/receipt.d.ts +97 -0
- package/dist/agent-farm/commands/reset/receipt.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/receipt.js +149 -0
- package/dist/agent-farm/commands/reset/receipt.js.map +1 -0
- package/dist/agent-farm/commands/reset/reorient.d.ts +117 -0
- package/dist/agent-farm/commands/reset/reorient.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset/reorient.js +313 -0
- package/dist/agent-farm/commands/reset/reorient.js.map +1 -0
- package/dist/agent-farm/commands/reset.d.ts +19 -0
- package/dist/agent-farm/commands/reset.d.ts.map +1 -0
- package/dist/agent-farm/commands/reset.js +292 -0
- package/dist/agent-farm/commands/reset.js.map +1 -0
- package/dist/agent-farm/commands/send.d.ts.map +1 -1
- package/dist/agent-farm/commands/send.js +49 -8
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +105 -6
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +289 -66
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn.js +13 -1
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts.map +1 -1
- package/dist/agent-farm/commands/status.js +80 -8
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +80 -1
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/mailbox.d.ts +222 -0
- package/dist/agent-farm/db/mailbox.d.ts.map +1 -0
- package/dist/agent-farm/db/mailbox.js +304 -0
- package/dist/agent-farm/db/mailbox.js.map +1 -0
- package/dist/agent-farm/db/schema.d.ts +1 -1
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +35 -0
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/db/types.d.ts +45 -0
- package/dist/agent-farm/db/types.d.ts.map +1 -1
- package/dist/agent-farm/db/types.js.map +1 -1
- package/dist/agent-farm/lib/builder-lookup.d.ts +1 -1
- package/dist/agent-farm/lib/builder-lookup.js +2 -2
- package/dist/agent-farm/lib/builder-lookup.js.map +1 -1
- package/dist/agent-farm/lib/reconnect-backoff.d.ts +54 -0
- package/dist/agent-farm/lib/reconnect-backoff.d.ts.map +1 -0
- package/dist/agent-farm/lib/reconnect-backoff.js +47 -0
- package/dist/agent-farm/lib/reconnect-backoff.js.map +1 -0
- package/dist/agent-farm/lib/tower-client.d.ts +16 -6
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +37 -6
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts +69 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +218 -27
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/cron-delivery.d.ts +72 -0
- package/dist/agent-farm/servers/cron-delivery.d.ts.map +1 -0
- package/dist/agent-farm/servers/cron-delivery.js +80 -0
- package/dist/agent-farm/servers/cron-delivery.js.map +1 -0
- package/dist/agent-farm/servers/delayed-send.d.ts +85 -0
- package/dist/agent-farm/servers/delayed-send.d.ts.map +1 -0
- package/dist/agent-farm/servers/delayed-send.js +165 -0
- package/dist/agent-farm/servers/delayed-send.js.map +1 -0
- package/dist/agent-farm/servers/gate-profiles.d.ts +67 -0
- package/dist/agent-farm/servers/gate-profiles.d.ts.map +1 -0
- package/dist/agent-farm/servers/gate-profiles.js +113 -0
- package/dist/agent-farm/servers/gate-profiles.js.map +1 -0
- package/dist/agent-farm/servers/mailbox-delivery.d.ts +370 -0
- package/dist/agent-farm/servers/mailbox-delivery.d.ts.map +1 -0
- package/dist/agent-farm/servers/mailbox-delivery.js +617 -0
- package/dist/agent-farm/servers/mailbox-delivery.js.map +1 -0
- package/dist/agent-farm/servers/mailbox-wiring.d.ts +125 -0
- package/dist/agent-farm/servers/mailbox-wiring.d.ts.map +1 -0
- package/dist/agent-farm/servers/mailbox-wiring.js +425 -0
- package/dist/agent-farm/servers/mailbox-wiring.js.map +1 -0
- package/dist/agent-farm/servers/message-write.d.ts +53 -1
- package/dist/agent-farm/servers/message-write.d.ts.map +1 -1
- package/dist/agent-farm/servers/message-write.js +63 -0
- package/dist/agent-farm/servers/message-write.js.map +1 -1
- package/dist/agent-farm/servers/overview.d.ts.map +1 -1
- package/dist/agent-farm/servers/overview.js +23 -4
- package/dist/agent-farm/servers/overview.js.map +1 -1
- package/dist/agent-farm/servers/render-gate.d.ts +141 -0
- package/dist/agent-farm/servers/render-gate.d.ts.map +1 -0
- package/dist/agent-farm/servers/render-gate.js +251 -0
- package/dist/agent-farm/servers/render-gate.js.map +1 -0
- package/dist/agent-farm/servers/session-submit.d.ts +90 -0
- package/dist/agent-farm/servers/session-submit.d.ts.map +1 -0
- package/dist/agent-farm/servers/session-submit.js +127 -0
- package/dist/agent-farm/servers/session-submit.js.map +1 -0
- package/dist/agent-farm/servers/tower-cron.d.ts +10 -7
- package/dist/agent-farm/servers/tower-cron.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-cron.js +58 -53
- package/dist/agent-farm/servers/tower-cron.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts +14 -2
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +78 -16
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-messages.d.ts +38 -1
- package/dist/agent-farm/servers/tower-messages.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-messages.js +106 -1
- package/dist/agent-farm/servers/tower-messages.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts +16 -4
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +670 -105
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +163 -31
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +17 -2
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +104 -122
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +63 -4
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +2 -1
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +64 -1
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +168 -1
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.js +6 -21
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/servers/write-queue.d.ts +35 -0
- package/dist/agent-farm/servers/write-queue.d.ts.map +1 -0
- package/dist/agent-farm/servers/write-queue.js +56 -0
- package/dist/agent-farm/servers/write-queue.js.map +1 -0
- package/dist/agent-farm/types.d.ts +39 -0
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.d.ts +2 -2
- package/dist/agent-farm/utils/agent-names.d.ts.map +1 -1
- package/dist/agent-farm/utils/agent-names.js +3 -3
- package/dist/agent-farm/utils/agent-names.js.map +1 -1
- package/dist/agent-farm/utils/architect-name.d.ts +2 -2
- package/dist/agent-farm/utils/architect-name.d.ts.map +1 -1
- package/dist/agent-farm/utils/architect-name.js +3 -3
- package/dist/agent-farm/utils/architect-name.js.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +13 -0
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +33 -1
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/harness.d.ts +103 -7
- package/dist/agent-farm/utils/harness.d.ts.map +1 -1
- package/dist/agent-farm/utils/harness.js +126 -19
- package/dist/agent-farm/utils/harness.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -32
- package/dist/cli.js.map +1 -1
- package/dist/commands/consult/cli-options.d.ts +34 -0
- package/dist/commands/consult/cli-options.d.ts.map +1 -0
- package/dist/commands/consult/cli-options.js +67 -0
- package/dist/commands/consult/cli-options.js.map +1 -0
- package/dist/commands/consult/index.d.ts +56 -2
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +272 -28
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/consult/metrics.d.ts +42 -0
- package/dist/commands/consult/metrics.d.ts.map +1 -1
- package/dist/commands/consult/metrics.js +129 -9
- package/dist/commands/consult/metrics.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +71 -19
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/porch/checks.d.ts +23 -0
- package/dist/commands/porch/checks.d.ts.map +1 -1
- package/dist/commands/porch/checks.js +60 -0
- package/dist/commands/porch/checks.js.map +1 -1
- package/dist/commands/porch/config.d.ts +20 -0
- package/dist/commands/porch/config.d.ts.map +1 -1
- package/dist/commands/porch/config.js +20 -0
- package/dist/commands/porch/config.js.map +1 -1
- package/dist/commands/porch/index.js +21 -28
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +2 -41
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/lib/config.d.ts +69 -3
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +67 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/consult-lanes.d.ts +149 -0
- package/dist/lib/consult-lanes.d.ts.map +1 -0
- package/dist/lib/consult-lanes.js +360 -0
- package/dist/lib/consult-lanes.js.map +1 -0
- package/dist/lib/github.js +1 -1
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/prompt-behavior-metrics.d.ts +67 -0
- package/dist/lib/prompt-behavior-metrics.d.ts.map +1 -0
- package/dist/lib/prompt-behavior-metrics.js +290 -0
- package/dist/lib/prompt-behavior-metrics.js.map +1 -0
- package/dist/lib/skeleton.d.ts +22 -1
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +120 -0
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/test-env.d.ts +74 -0
- package/dist/lib/test-env.d.ts.map +1 -0
- package/dist/lib/test-env.js +92 -0
- package/dist/lib/test-env.js.map +1 -0
- package/dist/terminal/pty-manager.d.ts +2 -0
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +16 -6
- package/dist/terminal/pty-manager.js.map +1 -1
- package/dist/terminal/pty-session.d.ts +131 -0
- package/dist/terminal/pty-session.d.ts.map +1 -1
- package/dist/terminal/pty-session.js +232 -39
- package/dist/terminal/pty-session.js.map +1 -1
- package/dist/terminal/ring-buffer.d.ts +39 -6
- package/dist/terminal/ring-buffer.d.ts.map +1 -1
- package/dist/terminal/ring-buffer.js +74 -6
- package/dist/terminal/ring-buffer.js.map +1 -1
- package/dist/terminal/session-manager.d.ts +53 -0
- package/dist/terminal/session-manager.d.ts.map +1 -1
- package/dist/terminal/session-manager.js +94 -9
- package/dist/terminal/session-manager.js.map +1 -1
- package/dist/terminal/session-screen.d.ts +91 -0
- package/dist/terminal/session-screen.d.ts.map +1 -0
- package/dist/terminal/session-screen.js +135 -0
- package/dist/terminal/session-screen.js.map +1 -0
- package/dist/terminal/shellper-main.js +2 -1
- package/dist/terminal/shellper-main.js.map +1 -1
- package/dist/terminal/shellper-process.d.ts +1 -1
- package/dist/terminal/shellper-process.d.ts.map +1 -1
- package/dist/terminal/shellper-process.js +17 -8
- package/dist/terminal/shellper-process.js.map +1 -1
- package/dist/terminal/shellper-replay-buffer.d.ts +69 -7
- package/dist/terminal/shellper-replay-buffer.d.ts.map +1 -1
- package/dist/terminal/shellper-replay-buffer.js +167 -31
- package/dist/terminal/shellper-replay-buffer.js.map +1 -1
- package/package.json +8 -6
- package/skeleton/.claude/skills/afx/SKILL.md +14 -1
- package/skeleton/.claude/skills/arch-init/SKILL.md +22 -9
- package/skeleton/.claude/skills/arch-save/SKILL.md +183 -0
- package/skeleton/.claude/skills/codev/SKILL.md +31 -0
- package/skeleton/.claude/skills/runnable-worktrees/SKILL.md +119 -0
- package/skeleton/.codex/skills/afx/SKILL.md +14 -1
- package/skeleton/.codex/skills/arch-init/SKILL.md +22 -9
- package/skeleton/.codex/skills/arch-save/SKILL.md +183 -0
- package/skeleton/.codex/skills/codev/SKILL.md +31 -0
- package/skeleton/.codex/skills/runnable-worktrees/SKILL.md +119 -0
- package/skeleton/protocols/air/builder-prompt.md +28 -47
- package/skeleton/protocols/air/consult-types/impl-review.md +17 -34
- package/skeleton/protocols/air/consult-types/pr-review.md +14 -37
- package/skeleton/protocols/air/prompts/implement.md +20 -73
- package/skeleton/protocols/air/prompts/pr.md +22 -54
- package/skeleton/protocols/air/protocol.md +40 -71
- package/skeleton/protocols/aspir/builder-prompt.md +29 -66
- package/skeleton/protocols/aspir/consult-types/impl-review.md +17 -44
- package/skeleton/protocols/aspir/consult-types/phase-review.md +17 -44
- package/skeleton/protocols/aspir/consult-types/plan-review.md +14 -38
- package/skeleton/protocols/aspir/consult-types/pr-review.md +13 -39
- package/skeleton/protocols/aspir/consult-types/spec-review.md +13 -33
- package/skeleton/protocols/aspir/prompts/implement.md +27 -196
- package/skeleton/protocols/aspir/prompts/plan.md +21 -85
- package/skeleton/protocols/aspir/prompts/review.md +29 -228
- package/skeleton/protocols/aspir/prompts/specify.md +25 -111
- package/skeleton/protocols/aspir/protocol.json +10 -0
- package/skeleton/protocols/aspir/protocol.md +36 -82
- package/skeleton/protocols/bugfix/builder-prompt.md +23 -45
- package/skeleton/protocols/bugfix/consult-types/impl-review.md +21 -45
- package/skeleton/protocols/bugfix/consult-types/pr-review.md +18 -52
- package/skeleton/protocols/bugfix/prompts/fix.md +16 -61
- package/skeleton/protocols/bugfix/prompts/investigate.md +18 -62
- package/skeleton/protocols/bugfix/prompts/pr.md +22 -57
- package/skeleton/protocols/bugfix/protocol.md +44 -50
- package/skeleton/protocols/experiment/builder-prompt.md +25 -58
- package/skeleton/protocols/experiment/protocol.md +22 -188
- package/skeleton/protocols/experiment/templates/notes.md +11 -71
- package/skeleton/protocols/maintain/builder-prompt.md +24 -45
- package/skeleton/protocols/maintain/consult-types/impl-review.md +17 -44
- package/skeleton/protocols/maintain/consult-types/pr-review.md +13 -39
- package/skeleton/protocols/maintain/prompts/maintain.md +1 -1
- package/skeleton/protocols/maintain/protocol.md +32 -266
- package/skeleton/protocols/maintain/templates/maintenance-run.md +11 -0
- package/skeleton/protocols/pir/builder-prompt.md +30 -64
- package/skeleton/protocols/pir/consult-types/impl-review.md +17 -50
- package/skeleton/protocols/pir/consult-types/pr-review.md +11 -40
- package/skeleton/protocols/pir/prompts/implement.md +1 -2
- package/skeleton/protocols/pir/prompts/plan.md +0 -3
- package/skeleton/protocols/pir/prompts/review.md +1 -1
- package/skeleton/protocols/pir/protocol.md +54 -177
- package/skeleton/protocols/research/builder-prompt.md +27 -58
- package/skeleton/protocols/research/protocol.md +28 -153
- package/skeleton/protocols/spike/builder-prompt.md +30 -48
- package/skeleton/protocols/spike/protocol.md +24 -107
- package/skeleton/protocols/spike/templates/findings.md +9 -39
- package/skeleton/protocols/spir/builder-prompt.md +33 -62
- package/skeleton/protocols/spir/consult-types/impl-review.md +17 -44
- package/skeleton/protocols/spir/consult-types/phase-review.md +17 -44
- package/skeleton/protocols/spir/consult-types/plan-review.md +14 -38
- package/skeleton/protocols/spir/consult-types/pr-review.md +13 -39
- package/skeleton/protocols/spir/consult-types/spec-review.md +13 -33
- package/skeleton/protocols/spir/prompts/implement.md +26 -195
- package/skeleton/protocols/spir/prompts/plan.md +20 -84
- package/skeleton/protocols/spir/prompts/review.md +28 -227
- package/skeleton/protocols/spir/prompts/specify.md +24 -110
- package/skeleton/protocols/spir/protocol.json +10 -0
- package/skeleton/protocols/spir/protocol.md +84 -633
- package/skeleton/protocols/spir/templates/plan.md +28 -147
- package/skeleton/protocols/spir/templates/review.md +21 -80
- package/skeleton/protocols/spir/templates/spec.md +24 -118
- package/skeleton/resources/commands/agent-farm.md +259 -0
- package/skeleton/resources/commands/consult.md +236 -8
- package/skeleton/resources/commands/overview.md +1 -0
- package/skeleton/roles/architect.md +67 -317
- package/skeleton/roles/builder.md +77 -191
- package/skeleton/templates/AGENTS.md +2 -0
- package/skeleton/templates/CLAUDE.md +2 -0
- package/templates/tower.html +39 -2
- package/dashboard-dist/assets/index-BZ1x7x1X.js.map +0 -1
- package/dashboard-dist/assets/index-DB1KBSNE.css +0 -32
- package/dist/agent-farm/servers/send-buffer.d.ts +0 -59
- package/dist/agent-farm/servers/send-buffer.d.ts.map +0 -1
- package/dist/agent-farm/servers/send-buffer.js +0 -116
- package/dist/agent-farm/servers/send-buffer.js.map +0 -1
- package/skeleton/porch/prompts/defend.md +0 -108
- package/skeleton/porch/prompts/diagnose.md +0 -70
- package/skeleton/porch/prompts/evaluate.md +0 -132
- package/skeleton/porch/prompts/fix.md +0 -59
- package/skeleton/porch/prompts/implement.md +0 -88
- package/skeleton/porch/prompts/plan.md +0 -74
- package/skeleton/porch/prompts/pr.md +0 -84
- package/skeleton/porch/prompts/review.md +0 -249
- package/skeleton/porch/prompts/specify.md +0 -53
- package/skeleton/porch/prompts/test.md +0 -63
- package/skeleton/protocols/aspir/templates/plan.md +0 -184
- package/skeleton/protocols/aspir/templates/review.md +0 -120
- package/skeleton/protocols/aspir/templates/spec.md +0 -154
|
@@ -25,8 +25,10 @@ import { TerminalManager, DEFAULT_DISK_LOG_MAX_BYTES } from '../../terminal/inde
|
|
|
25
25
|
* the client's post-connect resize nudge repaints full-screen apps, and the
|
|
26
26
|
* shellper retains the full history.
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// Exported for the Spec 1313 adopt-path regression test (#1361): a >1 MiB replay
|
|
29
|
+
// capped here to the last 1 MiB can seed the gate mirror born-torn → fail-safe HOLD.
|
|
30
|
+
export const RING_SEED_MAX_BYTES = 1024 * 1024; // 1MB
|
|
31
|
+
export function capRingSeed(replayData, sessionId) {
|
|
30
32
|
if (replayData.length <= RING_SEED_MAX_BYTES)
|
|
31
33
|
return replayData;
|
|
32
34
|
_deps?.log('INFO', `Session ${sessionId} replay is ${replayData.length} bytes; seeding the most recent ${RING_SEED_MAX_BYTES}`);
|
|
@@ -38,7 +40,7 @@ function extractShellperSessionId(socketPath) {
|
|
|
38
40
|
const match = path.basename(socketPath).match(/^shellper-(.+)\.sock$/);
|
|
39
41
|
return match ? match[1] : null;
|
|
40
42
|
}
|
|
41
|
-
import { normalizeWorkspacePath,
|
|
43
|
+
import { normalizeWorkspacePath, buildArchitectReconnectRestartOptions } from './tower-utils.js';
|
|
42
44
|
import { setArchitectByName } from '../state.js';
|
|
43
45
|
import { isIntentionallyStopping } from './tower-instances.js';
|
|
44
46
|
// ============================================================================
|
|
@@ -227,7 +229,7 @@ export function getNextShellId(workspacePath) {
|
|
|
227
229
|
* Save a terminal session to SQLite.
|
|
228
230
|
* Guards against race conditions by checking if workspace is still active.
|
|
229
231
|
*/
|
|
230
|
-
export function saveTerminalSession(terminalId, workspacePath, type, roleId, pid, shellperSocket = null, shellperPid = null, shellperStartTime = null, label = null, cwd = null) {
|
|
232
|
+
export function saveTerminalSession(terminalId, workspacePath, type, roleId, pid, shellperSocket = null, shellperPid = null, shellperStartTime = null, label = null, cwd = null, command = null) {
|
|
231
233
|
try {
|
|
232
234
|
const normalizedPath = normalizeWorkspacePath(workspacePath);
|
|
233
235
|
// Race condition guard: only save if workspace is still in the active registry
|
|
@@ -238,9 +240,9 @@ export function saveTerminalSession(terminalId, workspacePath, type, roleId, pid
|
|
|
238
240
|
}
|
|
239
241
|
const db = getGlobalDb();
|
|
240
242
|
db.prepare(`
|
|
241
|
-
INSERT OR REPLACE INTO terminal_sessions (id, workspace_path, type, role_id, pid, shellper_socket, shellper_pid, shellper_start_time, label, cwd)
|
|
242
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
243
|
-
`).run(terminalId, normalizedPath, type, roleId, pid, shellperSocket, shellperPid, shellperStartTime, label, cwd);
|
|
243
|
+
INSERT OR REPLACE INTO terminal_sessions (id, workspace_path, type, role_id, pid, shellper_socket, shellper_pid, shellper_start_time, label, cwd, command)
|
|
244
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
245
|
+
`).run(terminalId, normalizedPath, type, roleId, pid, shellperSocket, shellperPid, shellperStartTime, label, cwd, command);
|
|
244
246
|
_deps?.log('INFO', `Saved terminal session to SQLite: ${terminalId} (${type}) for ${path.basename(normalizedPath)}`);
|
|
245
247
|
}
|
|
246
248
|
catch (err) {
|
|
@@ -574,16 +576,25 @@ async function _reconcileTerminalSessionsInner() {
|
|
|
574
576
|
// Build restart options for architect sessions (synchronous, no I/O)
|
|
575
577
|
let restartOptions;
|
|
576
578
|
if (dbSession.type === 'architect') {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
579
|
+
// Spec 1313: resolve with the SAME precedence as fresh launch
|
|
580
|
+
// (TOWER_ARCHITECT_CMD env override > config > 'claude'). restartOptions.command
|
|
581
|
+
// is now also the legacy-row identity heal, so omitting the env tier would heal
|
|
582
|
+
// a `TOWER_ARCHITECT_CMD=agy` architect (with no matching config) to the wrong
|
|
583
|
+
// profile — and agy would then never deliver. It also keeps auto-restart itself
|
|
584
|
+
// consistent with how the session was originally launched.
|
|
585
|
+
let architectCmd = process.env.TOWER_ARCHITECT_CMD || '';
|
|
586
|
+
if (!architectCmd) {
|
|
587
|
+
architectCmd = 'claude';
|
|
588
|
+
try {
|
|
589
|
+
const config = loadConfig(workspacePath);
|
|
590
|
+
const shellArchitect = config.shell?.architect;
|
|
591
|
+
if (typeof shellArchitect === 'string')
|
|
592
|
+
architectCmd = shellArchitect;
|
|
593
|
+
else if (Array.isArray(shellArchitect))
|
|
594
|
+
architectCmd = shellArchitect.join(' ');
|
|
595
|
+
}
|
|
596
|
+
catch { /* use default */ }
|
|
585
597
|
}
|
|
586
|
-
catch { /* use default */ }
|
|
587
598
|
const cmdParts = architectCmd.split(/\s+/);
|
|
588
599
|
const cleanEnv = { ...process.env };
|
|
589
600
|
delete cleanEnv['CLAUDECODE'];
|
|
@@ -595,55 +606,21 @@ async function _reconcileTerminalSessionsInner() {
|
|
|
595
606
|
// populated them; this is belt-and-suspenders).
|
|
596
607
|
const architectName = dbSession.role_id || 'main';
|
|
597
608
|
cleanEnv['CODEV_ARCHITECT_NAME'] = architectName;
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
cwd: workspacePath,
|
|
614
|
-
env: { ...cleanEnv, ...harnessEnv },
|
|
615
|
-
restartDelay: 2000,
|
|
616
|
-
maxRestarts: 50,
|
|
617
|
-
};
|
|
618
|
-
// Issue #1149: if the resumed session fast-fails at runtime (jsonl
|
|
619
|
-
// vanished after the bake, or corrupt), degrade to a fresh launch
|
|
620
|
-
// instead of burning all 50 restarts on identical args.
|
|
621
|
-
if (resumed && storedSessionId && fallback) {
|
|
622
|
-
restartOptions.crashLoopFallback = buildArchitectCrashLoopFallback({
|
|
623
|
-
workspacePath,
|
|
624
|
-
architectName,
|
|
625
|
-
storedSessionId,
|
|
626
|
-
fallback,
|
|
627
|
-
baseEnv: cleanEnv,
|
|
628
|
-
log: _deps.log,
|
|
629
|
-
});
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
catch (err) {
|
|
633
|
-
_deps.log('WARN', `Harness resolution failed for workspace ${workspacePath}: ${err instanceof Error ? err.message : err}`);
|
|
634
|
-
// Fall back to plain command without harness role-prompt args so the
|
|
635
|
-
// session can still reconnect. `cleanEnv` still carries
|
|
636
|
-
// CODEV_ARCHITECT_NAME (set above for Spec 786 Phase 2), so identity
|
|
637
|
-
// is preserved even on harness failure.
|
|
638
|
-
restartOptions = {
|
|
639
|
-
command: cmdParts[0],
|
|
640
|
-
args: cmdParts.slice(1),
|
|
641
|
-
cwd: workspacePath,
|
|
642
|
-
env: cleanEnv,
|
|
643
|
-
restartDelay: 2000,
|
|
644
|
-
maxRestarts: 50,
|
|
645
|
-
};
|
|
646
|
-
}
|
|
609
|
+
// Issue #832/#1149/#1264: bake `--resume <storedId>` + a #1264 clean-exit
|
|
610
|
+
// fresh-launch factory + a #1149 crash-loop fallback into the auto-restart
|
|
611
|
+
// args, so a claude crash inside a live shellper revives the SAME
|
|
612
|
+
// conversation. Issue #1338: a retired harness returns `undefined` here
|
|
613
|
+
// (fail closed — no auto-restart into the retired binary), never a fallback
|
|
614
|
+
// that relaunches it. `includeFreshLaunch: true` — this is the startup
|
|
615
|
+
// reconcile path that also wires the #1264 clean-exit rerun.
|
|
616
|
+
restartOptions = buildArchitectReconnectRestartOptions({
|
|
617
|
+
workspacePath,
|
|
618
|
+
architectName,
|
|
619
|
+
cmdParts,
|
|
620
|
+
cleanEnv,
|
|
621
|
+
includeFreshLaunch: true,
|
|
622
|
+
log: _deps.log,
|
|
623
|
+
});
|
|
647
624
|
}
|
|
648
625
|
probeTasks.push({ dbSession, restartOptions });
|
|
649
626
|
}
|
|
@@ -682,7 +659,7 @@ async function _reconcileTerminalSessionsInner() {
|
|
|
682
659
|
}
|
|
683
660
|
}
|
|
684
661
|
// Process probe results sequentially (shared state mutations)
|
|
685
|
-
for (const { dbSession, client, replayData } of probeResults) {
|
|
662
|
+
for (const { dbSession, client, replayData, restartOptions } of probeResults) {
|
|
686
663
|
if (!client) {
|
|
687
664
|
_deps.log('INFO', `Shellper session ${dbSession.id} is stale (PID/socket dead) — will clean up`);
|
|
688
665
|
continue; // Will be cleaned up in Phase 2
|
|
@@ -695,7 +672,18 @@ async function _reconcileTerminalSessionsInner() {
|
|
|
695
672
|
// across the restart — clients holding `/ws/terminal/<id>` reconnect to the
|
|
696
673
|
// same valid url instead of a dead one. Use stored cwd (worktree path for
|
|
697
674
|
// builders) instead of workspace_path (Bugfix #506).
|
|
698
|
-
|
|
675
|
+
// Spec 1313: restore the launch command so the render-gate can resolve this
|
|
676
|
+
// reconnected session's profile. Architects have no `.builder-start.sh`
|
|
677
|
+
// backstop, so without this a reconciled architect reverts to no-profile
|
|
678
|
+
// after a Tower restart and `afx send architect` never delivers. The
|
|
679
|
+
// `?? restartOptions?.command` heals pre-existing rows (persisted before this
|
|
680
|
+
// column existed → `command` NULL): restartOptions.command is cmdParts[0] from
|
|
681
|
+
// the CURRENT config, so an upgraded architect resolves on the first restart
|
|
682
|
+
// rather than staying broken until it is manually relaunched.
|
|
683
|
+
const session = manager.createSessionRaw({
|
|
684
|
+
label, cwd: sessionCwd, id: dbSession.id,
|
|
685
|
+
command: dbSession.command ?? restartOptions?.command ?? undefined,
|
|
686
|
+
});
|
|
699
687
|
const ptySession = manager.getSession(session.id);
|
|
700
688
|
if (ptySession) {
|
|
701
689
|
const shellperSessId = extractShellperSessionId(dbSession.shellper_socket) ?? dbSession.id;
|
|
@@ -703,8 +691,14 @@ async function _reconcileTerminalSessionsInner() {
|
|
|
703
691
|
// which the `if (!client)` guard already excluded — fall back to
|
|
704
692
|
// empty defensively rather than asserting.
|
|
705
693
|
ptySession.attachShellper(client, replayData ?? Buffer.alloc(0), dbSession.shellper_pid, shellperSessId);
|
|
706
|
-
// Architect sessions
|
|
707
|
-
|
|
694
|
+
// Architect sessions with a live auto-restart config keep WebSocket clients
|
|
695
|
+
// connected on exit. Gate on `restartOptions`: a retired-harness architect
|
|
696
|
+
// (#1338) resolves to `undefined` here, so `reconnectSession` was told NOT to
|
|
697
|
+
// configure an auto-restart (SessionManager mirrors this exactly with
|
|
698
|
+
// `restartOnExit: hasRestart`). Setting the PTY flag true anyway would make
|
|
699
|
+
// PtySession hold WebSocket clients in a "restarting…" wait for a process that
|
|
700
|
+
// can never come back — the flag must track whether a restart is real.
|
|
701
|
+
if (dbSession.type === 'architect' && restartOptions) {
|
|
708
702
|
ptySession.restartOnExit = true;
|
|
709
703
|
}
|
|
710
704
|
}
|
|
@@ -724,7 +718,7 @@ async function _reconcileTerminalSessionsInner() {
|
|
|
724
718
|
// Refresh the SQLite row. The id is preserved (#991), so this re-saves the
|
|
725
719
|
// session under the same terminal id with its refreshed shellper info.
|
|
726
720
|
db.prepare('DELETE FROM terminal_sessions WHERE id = ?').run(dbSession.id);
|
|
727
|
-
saveTerminalSession(session.id, workspacePath, dbSession.type, dbSession.role_id, dbSession.shellper_pid, dbSession.shellper_socket, dbSession.shellper_pid, dbSession.shellper_start_time, dbSession.label, sessionCwd);
|
|
721
|
+
saveTerminalSession(session.id, workspacePath, dbSession.type, dbSession.role_id, dbSession.shellper_pid, dbSession.shellper_socket, dbSession.shellper_pid, dbSession.shellper_start_time, dbSession.label, sessionCwd, dbSession.command ?? restartOptions?.command ?? null);
|
|
728
722
|
_deps.registerKnownWorkspace(workspacePath);
|
|
729
723
|
// Clean up on exit (only fires for permanent death when restartOnExit is set)
|
|
730
724
|
if (ptySession) {
|
|
@@ -824,16 +818,22 @@ export async function getTerminalsForWorkspace(workspacePath, proxyUrl) {
|
|
|
824
818
|
// Restore auto-restart for architect sessions (same as startup reconciliation)
|
|
825
819
|
let restartOptions;
|
|
826
820
|
if (dbSession.type === 'architect') {
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
821
|
+
// Spec 1313: same precedence as fresh launch (env override > config >
|
|
822
|
+
// 'claude') — restartOptions.command doubles as the legacy-row identity
|
|
823
|
+
// heal, so the env tier must be honored here too (see reconcile path).
|
|
824
|
+
let architectCmd = process.env.TOWER_ARCHITECT_CMD || '';
|
|
825
|
+
if (!architectCmd) {
|
|
826
|
+
architectCmd = 'claude';
|
|
827
|
+
try {
|
|
828
|
+
const config = loadConfig(dbSession.workspace_path);
|
|
829
|
+
const shellArchitect = config.shell?.architect;
|
|
830
|
+
if (typeof shellArchitect === 'string')
|
|
831
|
+
architectCmd = shellArchitect;
|
|
832
|
+
else if (Array.isArray(shellArchitect))
|
|
833
|
+
architectCmd = shellArchitect.join(' ');
|
|
834
|
+
}
|
|
835
|
+
catch { /* use default */ }
|
|
835
836
|
}
|
|
836
|
-
catch { /* use default */ }
|
|
837
837
|
const cmdParts = architectCmd.split(/\s+/);
|
|
838
838
|
const cleanEnv = { ...process.env };
|
|
839
839
|
delete cleanEnv['CLAUDECODE'];
|
|
@@ -841,45 +841,20 @@ export async function getTerminalsForWorkspace(workspacePath, proxyUrl) {
|
|
|
841
841
|
// restart (see matching block in reconcileTerminalSessionsInner above).
|
|
842
842
|
const architectName = dbSession.role_id || 'main';
|
|
843
843
|
cleanEnv['CODEV_ARCHITECT_NAME'] = architectName;
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
};
|
|
859
|
-
// Issue #1149: degrade a fast-failing resume to a fresh launch
|
|
860
|
-
// (see matching block in reconcileTerminalSessionsInner above).
|
|
861
|
-
if (resumed && storedSessionId && fallback) {
|
|
862
|
-
restartOptions.crashLoopFallback = buildArchitectCrashLoopFallback({
|
|
863
|
-
workspacePath: dbSession.workspace_path,
|
|
864
|
-
architectName,
|
|
865
|
-
storedSessionId,
|
|
866
|
-
fallback,
|
|
867
|
-
baseEnv: cleanEnv,
|
|
868
|
-
log: _deps.log,
|
|
869
|
-
});
|
|
870
|
-
}
|
|
871
|
-
}
|
|
872
|
-
catch (err) {
|
|
873
|
-
_deps.log('WARN', `Harness resolution failed for workspace ${dbSession.workspace_path}: ${err instanceof Error ? err.message : err}`);
|
|
874
|
-
restartOptions = {
|
|
875
|
-
command: cmdParts[0],
|
|
876
|
-
args: cmdParts.slice(1),
|
|
877
|
-
cwd: dbSession.workspace_path,
|
|
878
|
-
env: cleanEnv,
|
|
879
|
-
restartDelay: 2000,
|
|
880
|
-
maxRestarts: 50,
|
|
881
|
-
};
|
|
882
|
-
}
|
|
844
|
+
// Issue #832/#1149: revive the same conversation on auto-restart via the
|
|
845
|
+
// stored session id, with the #1149 crash-loop fallback (see matching
|
|
846
|
+
// block in reconcileTerminalSessionsInner above). Issue #1338: a retired
|
|
847
|
+
// harness returns `undefined` (fail closed — no auto-restart into the
|
|
848
|
+
// retired binary). `includeFreshLaunch: false` — the on-the-fly reconnect
|
|
849
|
+
// path does not wire the #1264 clean-exit rerun (unchanged from before).
|
|
850
|
+
restartOptions = buildArchitectReconnectRestartOptions({
|
|
851
|
+
workspacePath: dbSession.workspace_path,
|
|
852
|
+
architectName,
|
|
853
|
+
cmdParts,
|
|
854
|
+
cleanEnv,
|
|
855
|
+
includeFreshLaunch: false,
|
|
856
|
+
log: _deps.log,
|
|
857
|
+
});
|
|
883
858
|
}
|
|
884
859
|
_deps.log('INFO', `On-the-fly shellper reconnect for ${dbSession.id}`);
|
|
885
860
|
const client = await _deps.shellperManager.reconnectSession(dbSession.id, dbSession.shellper_socket, dbSession.shellper_pid, dbSession.shellper_start_time, restartOptions);
|
|
@@ -892,13 +867,20 @@ export async function getTerminalsForWorkspace(workspacePath, proxyUrl) {
|
|
|
892
867
|
// identity across the reconnect — clients holding `/ws/terminal/<id>`
|
|
893
868
|
// stay valid. Use stored cwd (worktree path for builders) instead of
|
|
894
869
|
// workspace_path (Bugfix #506).
|
|
895
|
-
const newSession = manager.createSessionRaw({
|
|
870
|
+
const newSession = manager.createSessionRaw({
|
|
871
|
+
label, cwd: dbSession.cwd ?? dbSession.workspace_path, id: dbSession.id,
|
|
872
|
+
command: dbSession.command ?? restartOptions?.command ?? undefined, // Spec 1313: restore/heal identity (see reconcile path)
|
|
873
|
+
});
|
|
896
874
|
const ptySession = manager.getSession(newSession.id);
|
|
897
875
|
if (ptySession) {
|
|
898
876
|
const shellperSessId = extractShellperSessionId(dbSession.shellper_socket) ?? dbSession.id;
|
|
899
877
|
ptySession.attachShellper(client, replayData, dbSession.shellper_pid, shellperSessId);
|
|
900
|
-
//
|
|
901
|
-
|
|
878
|
+
// Gate on `restartOptions` (same rationale as the reconcile path above):
|
|
879
|
+
// a retired-harness architect (#1338) resolves to `undefined`, so holding
|
|
880
|
+
// clients for an auto-restart that was never configured would strand the
|
|
881
|
+
// pane in a "restarting…" wait. `restartOptions` is in scope from the
|
|
882
|
+
// architect block above.
|
|
883
|
+
if (dbSession.type === 'architect' && restartOptions) {
|
|
902
884
|
ptySession.restartOnExit = true;
|
|
903
885
|
}
|
|
904
886
|
// Clean up on exit (only fires for permanent death when restartOnExit is set)
|
|
@@ -930,7 +912,7 @@ export async function getTerminalsForWorkspace(workspacePath, proxyUrl) {
|
|
|
930
912
|
}
|
|
931
913
|
// Refresh the SQLite row under the same (preserved) id.
|
|
932
914
|
deleteTerminalSession(dbSession.id);
|
|
933
|
-
saveTerminalSession(newSession.id, dbSession.workspace_path, dbSession.type, dbSession.role_id, dbSession.shellper_pid, dbSession.shellper_socket, dbSession.shellper_pid, dbSession.shellper_start_time, dbSession.label, dbSession.cwd);
|
|
915
|
+
saveTerminalSession(newSession.id, dbSession.workspace_path, dbSession.type, dbSession.role_id, dbSession.shellper_pid, dbSession.shellper_socket, dbSession.shellper_pid, dbSession.shellper_start_time, dbSession.label, dbSession.cwd, dbSession.command ?? restartOptions?.command ?? null);
|
|
934
916
|
dbSession.id = newSession.id;
|
|
935
917
|
session = manager.getSession(newSession.id);
|
|
936
918
|
_deps.log('INFO', `On-the-fly reconnect succeeded for ${newSession.id} (id preserved)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tower-terminals.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-terminals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tower-terminals.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-terminals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tower-tunnel.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-tunnel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tower-tunnel.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-tunnel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,IAAI,MAAM,WAAW,CAAC;AAsB7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,yDAAyD;AACzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACpD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AA4MD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE;IAAE,YAAY,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;CAAE,GAC3D,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAUrC;AA0ED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAiPf"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import fs from 'node:fs';
|
|
9
9
|
import path from 'node:path';
|
|
10
10
|
import os from 'node:os';
|
|
11
|
-
import { TunnelClient } from '../lib/tunnel-client.js';
|
|
11
|
+
import { TunnelClient, TUNNEL_PROXY_HEADER, AUTH_RETRY_FAILED_MARKER, } from '../lib/tunnel-client.js';
|
|
12
12
|
import { readCloudConfig, writeCloudConfig, deleteCloudConfig, getCloudConfigPath, getOrCreateMachineId, maskApiKey, DEFAULT_CLOUD_URL, } from '../lib/cloud-config.js';
|
|
13
13
|
import { createPendingRegistration, consumePendingRegistration } from '../lib/nonce-store.js';
|
|
14
14
|
import { redeemToken } from '../lib/token-exchange.js';
|
|
@@ -107,15 +107,19 @@ async function connectTunnel(config) {
|
|
|
107
107
|
towerId: config.tower_id,
|
|
108
108
|
localPort: _deps.port,
|
|
109
109
|
});
|
|
110
|
-
client.onStateChange((state, prev) => {
|
|
111
|
-
|
|
110
|
+
client.onStateChange((state, prev, reason) => {
|
|
111
|
+
// #1372: always log *why* — a bare `prev → state` line made the uplink-flap
|
|
112
|
+
// wedge undiagnosable from the tower log.
|
|
113
|
+
_deps.log('INFO', `Tunnel: ${prev} → ${state}${reason ? ` (${reason})` : ''}`);
|
|
112
114
|
if (state === 'connected') {
|
|
113
115
|
startMetadataRefresh();
|
|
114
116
|
}
|
|
115
117
|
else if (prev === 'connected') {
|
|
116
118
|
stopMetadataRefresh();
|
|
117
119
|
}
|
|
118
|
-
|
|
120
|
+
// Only the first park raises the alarm — the breaker half-opens every 15
|
|
121
|
+
// minutes (#1372), and a revoked key would otherwise log ERROR forever.
|
|
122
|
+
if (state === 'auth_failed' && !reason?.includes(AUTH_RETRY_FAILED_MARKER)) {
|
|
119
123
|
_deps.log('ERROR', 'Cloud connection failed: API key is invalid or revoked. Run \'afx tower connect --reauth\' to update credentials.');
|
|
120
124
|
}
|
|
121
125
|
});
|
|
@@ -237,6 +241,52 @@ export function shutdownTunnel() {
|
|
|
237
241
|
_deps = null;
|
|
238
242
|
_getInstances = null;
|
|
239
243
|
}
|
|
244
|
+
/** Trim a header value to something safe and bounded for a log line. */
|
|
245
|
+
function logSafe(value, max = 160) {
|
|
246
|
+
if (value === undefined)
|
|
247
|
+
return '';
|
|
248
|
+
const flat = Array.isArray(value) ? value.join(',') : value;
|
|
249
|
+
// Collapse control characters — a hostile header must not forge log lines.
|
|
250
|
+
// eslint-disable-next-line no-control-regex
|
|
251
|
+
return flat.replace(/[\u0000-\u001f\u007f]/g, ' ').slice(0, max);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Describe the origin of a tunnel management request (#1370).
|
|
255
|
+
*
|
|
256
|
+
* `POST /api/tunnel/disconnect` deregisters the tower server-side and deletes
|
|
257
|
+
* the local credentials, so an unattributed one is impossible to investigate
|
|
258
|
+
* after the fact. Every call now logs its remote address, user-agent and
|
|
259
|
+
* origin, plus whether it arrived through the tunnel proxy.
|
|
260
|
+
*/
|
|
261
|
+
function describeSource(req) {
|
|
262
|
+
const viaTunnel = req.headers[TUNNEL_PROXY_HEADER] !== undefined;
|
|
263
|
+
const remote = req.socket?.remoteAddress ?? 'unknown';
|
|
264
|
+
const ua = logSafe(req.headers['user-agent']) || 'none';
|
|
265
|
+
const origin = logSafe(req.headers.origin ?? req.headers.referer);
|
|
266
|
+
return {
|
|
267
|
+
viaTunnel,
|
|
268
|
+
text: `remote=${logSafe(remote, 64)} via=${viaTunnel ? 'tunnel' : 'local'} ua="${ua}"` +
|
|
269
|
+
(origin ? ` origin=${origin}` : ''),
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Reject a management request that arrived through the tunnel.
|
|
274
|
+
*
|
|
275
|
+
* TunnelClient already blocks `/api/tunnel/*` on the proxy side; this is the
|
|
276
|
+
* second, independent layer — a cloud-side actor must never be able to
|
|
277
|
+
* deregister the tower through the tower's own tunnel.
|
|
278
|
+
*/
|
|
279
|
+
function rejectIfProxied(res, source, action) {
|
|
280
|
+
if (!source.viaTunnel)
|
|
281
|
+
return false;
|
|
282
|
+
_deps?.log('WARN', `Tunnel ${action} REJECTED — arrived via tunnel proxy (${source.text})`);
|
|
283
|
+
res.writeHead(403, { 'Content-Type': 'application/json' });
|
|
284
|
+
res.end(JSON.stringify({
|
|
285
|
+
success: false,
|
|
286
|
+
error: 'Forbidden: tunnel management endpoints are local-only',
|
|
287
|
+
}));
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
240
290
|
function htmlPage(title, body) {
|
|
241
291
|
return `<!DOCTYPE html>
|
|
242
292
|
<html><head><meta charset="utf-8"><title>${title}</title>
|
|
@@ -296,6 +346,10 @@ export async function handleTunnelEndpoint(req, res, tunnelSub) {
|
|
|
296
346
|
}
|
|
297
347
|
// POST connect — OAuth initiation or smart reconnect
|
|
298
348
|
if (req.method === 'POST' && tunnelSub === 'connect') {
|
|
349
|
+
const source = describeSource(req);
|
|
350
|
+
if (rejectIfProxied(res, source, 'connect'))
|
|
351
|
+
return;
|
|
352
|
+
_deps?.log('INFO', `Tunnel connect requested (${source.text})`);
|
|
299
353
|
if (!_deps) {
|
|
300
354
|
res.writeHead(503, { 'Content-Type': 'application/json' });
|
|
301
355
|
res.end(JSON.stringify({ success: false, error: 'Tower is still starting up. Try again shortly.' }));
|
|
@@ -380,6 +434,11 @@ export async function handleTunnelEndpoint(req, res, tunnelSub) {
|
|
|
380
434
|
}
|
|
381
435
|
// POST disconnect — deregister server-side + delete local config
|
|
382
436
|
if (req.method === 'POST' && tunnelSub === 'disconnect') {
|
|
437
|
+
const source = describeSource(req);
|
|
438
|
+
if (rejectIfProxied(res, source, 'disconnect'))
|
|
439
|
+
return;
|
|
440
|
+
// Deregisters server-side and deletes local credentials — always attributable.
|
|
441
|
+
_deps?.log('INFO', `Tunnel disconnect requested (${source.text})`);
|
|
383
442
|
let warning;
|
|
384
443
|
// Read config FIRST (need credentials for server-side deregister)
|
|
385
444
|
let config = null;
|