@cluesmith/codev 2.0.0-rc.72 → 2.0.0-rc.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dashboard/dist/assets/{index-C7FtNK6Y.css → index-4n9zpWLY.css} +1 -1
  2. package/dashboard/dist/assets/{index-CDAINZKT.js → index-b38SaXk5.js} +33 -28
  3. package/dashboard/dist/assets/index-b38SaXk5.js.map +1 -0
  4. package/dashboard/dist/index.html +2 -2
  5. package/dist/agent-farm/commands/spawn-roles.d.ts +80 -0
  6. package/dist/agent-farm/commands/spawn-roles.d.ts.map +1 -0
  7. package/dist/agent-farm/commands/spawn-roles.js +278 -0
  8. package/dist/agent-farm/commands/spawn-roles.js.map +1 -0
  9. package/dist/agent-farm/commands/spawn-worktree.d.ts +96 -0
  10. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -0
  11. package/dist/agent-farm/commands/spawn-worktree.js +305 -0
  12. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -0
  13. package/dist/agent-farm/commands/spawn.d.ts +5 -1
  14. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  15. package/dist/agent-farm/commands/spawn.js +65 -725
  16. package/dist/agent-farm/commands/spawn.js.map +1 -1
  17. package/dist/agent-farm/db/index.d.ts.map +1 -1
  18. package/dist/agent-farm/db/index.js +56 -2
  19. package/dist/agent-farm/db/index.js.map +1 -1
  20. package/dist/agent-farm/db/schema.d.ts +1 -1
  21. package/dist/agent-farm/db/schema.js +3 -3
  22. package/dist/agent-farm/servers/tower-instances.d.ts +82 -0
  23. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -0
  24. package/dist/agent-farm/servers/tower-instances.js +454 -0
  25. package/dist/agent-farm/servers/tower-instances.js.map +1 -0
  26. package/dist/agent-farm/servers/tower-routes.d.ts +34 -0
  27. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -0
  28. package/dist/agent-farm/servers/tower-routes.js +1445 -0
  29. package/dist/agent-farm/servers/tower-routes.js.map +1 -0
  30. package/dist/agent-farm/servers/tower-server.d.ts +5 -2
  31. package/dist/agent-farm/servers/tower-server.d.ts.map +1 -1
  32. package/dist/agent-farm/servers/tower-server.js +89 -2875
  33. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  34. package/dist/agent-farm/servers/tower-terminals.d.ts +119 -0
  35. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -0
  36. package/dist/agent-farm/servers/tower-terminals.js +629 -0
  37. package/dist/agent-farm/servers/tower-terminals.js.map +1 -0
  38. package/dist/agent-farm/servers/tower-tunnel.d.ts +34 -0
  39. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -0
  40. package/dist/agent-farm/servers/tower-tunnel.js +299 -0
  41. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -0
  42. package/dist/agent-farm/servers/tower-types.d.ts +86 -0
  43. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -0
  44. package/dist/agent-farm/servers/tower-types.js +6 -0
  45. package/dist/agent-farm/servers/tower-types.js.map +1 -0
  46. package/dist/agent-farm/servers/tower-utils.d.ts +58 -0
  47. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -0
  48. package/dist/agent-farm/servers/tower-utils.js +182 -0
  49. package/dist/agent-farm/servers/tower-utils.js.map +1 -0
  50. package/dist/agent-farm/servers/tower-websocket.d.ts +25 -0
  51. package/dist/agent-farm/servers/tower-websocket.d.ts.map +1 -0
  52. package/dist/agent-farm/servers/tower-websocket.js +171 -0
  53. package/dist/agent-farm/servers/tower-websocket.js.map +1 -0
  54. package/dist/agent-farm/utils/shell.d.ts +1 -1
  55. package/dist/agent-farm/utils/shell.js +1 -1
  56. package/dist/commands/porch/next.js +4 -4
  57. package/dist/commands/porch/next.js.map +1 -1
  58. package/dist/terminal/pty-manager.d.ts +1 -1
  59. package/dist/terminal/pty-manager.js +5 -5
  60. package/dist/terminal/pty-session.d.ts +20 -20
  61. package/dist/terminal/pty-session.js +55 -55
  62. package/dist/terminal/session-manager.d.ts +15 -15
  63. package/dist/terminal/session-manager.js +34 -34
  64. package/dist/terminal/{shepherd-client.d.ts → shellper-client.d.ts} +10 -10
  65. package/dist/terminal/{shepherd-client.d.ts.map → shellper-client.d.ts.map} +1 -1
  66. package/dist/terminal/{shepherd-client.js → shellper-client.js} +20 -20
  67. package/dist/terminal/{shepherd-client.js.map → shellper-client.js.map} +1 -1
  68. package/dist/terminal/{shepherd-main.d.ts → shellper-main.d.ts} +3 -3
  69. package/dist/terminal/shellper-main.d.ts.map +1 -0
  70. package/dist/terminal/{shepherd-main.js → shellper-main.js} +17 -17
  71. package/dist/terminal/{shepherd-main.js.map → shellper-main.js.map} +1 -1
  72. package/dist/terminal/{shepherd-process.d.ts → shellper-process.d.ts} +8 -8
  73. package/dist/terminal/{shepherd-process.d.ts.map → shellper-process.d.ts.map} +1 -1
  74. package/dist/terminal/{shepherd-process.js → shellper-process.js} +11 -11
  75. package/dist/terminal/{shepherd-process.js.map → shellper-process.js.map} +1 -1
  76. package/dist/terminal/{shepherd-protocol.d.ts → shellper-protocol.d.ts} +5 -5
  77. package/dist/terminal/{shepherd-protocol.d.ts.map → shellper-protocol.d.ts.map} +1 -1
  78. package/dist/terminal/{shepherd-protocol.js → shellper-protocol.js} +5 -5
  79. package/dist/terminal/{shepherd-protocol.js.map → shellper-protocol.js.map} +1 -1
  80. package/dist/terminal/{shepherd-replay-buffer.d.ts → shellper-replay-buffer.d.ts} +4 -4
  81. package/dist/terminal/{shepherd-replay-buffer.d.ts.map → shellper-replay-buffer.d.ts.map} +1 -1
  82. package/dist/terminal/{shepherd-replay-buffer.js → shellper-replay-buffer.js} +4 -4
  83. package/dist/terminal/{shepherd-replay-buffer.js.map → shellper-replay-buffer.js.map} +1 -1
  84. package/package.json +1 -1
  85. package/skeleton/protocols/bugfix/builder-prompt.md +7 -1
  86. package/skeleton/protocols/maintain/protocol.md +3 -3
  87. package/skeleton/protocols/spir/builder-prompt.md +7 -0
  88. package/skeleton/resources/commands/agent-farm.md +2 -2
  89. package/skeleton/roles/builder.md +15 -1
  90. package/dashboard/dist/assets/index-CDAINZKT.js.map +0 -1
  91. package/dist/terminal/shepherd-main.d.ts.map +0 -1
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Utility functions for tower server.
3
+ * Spec 0105: Tower Server Decomposition — Phase 1
4
+ *
5
+ * Contains: rate limiting, path normalization, temp directory detection,
6
+ * project name extraction, MIME types, and static file serving.
7
+ */
8
+ import fs from 'node:fs';
9
+ import path from 'node:path';
10
+ import { tmpdir } from 'node:os';
11
+ import { loadRolePrompt } from '../utils/roles.js';
12
+ // ============================================================================
13
+ // Rate Limiting
14
+ // ============================================================================
15
+ const RATE_LIMIT_WINDOW_MS = 60 * 1000; // 1 minute
16
+ const RATE_LIMIT_MAX = 10;
17
+ const activationRateLimits = new Map();
18
+ /**
19
+ * Check if a client has exceeded the rate limit for activations.
20
+ * Returns true if rate limit exceeded, false if allowed.
21
+ */
22
+ export function isRateLimited(clientIp) {
23
+ const now = Date.now();
24
+ const entry = activationRateLimits.get(clientIp);
25
+ if (!entry || now - entry.windowStart >= RATE_LIMIT_WINDOW_MS) {
26
+ // New window
27
+ activationRateLimits.set(clientIp, { count: 1, windowStart: now });
28
+ return false;
29
+ }
30
+ if (entry.count >= RATE_LIMIT_MAX) {
31
+ return true;
32
+ }
33
+ entry.count++;
34
+ return false;
35
+ }
36
+ /**
37
+ * Clean up old rate limit entries.
38
+ */
39
+ export function cleanupRateLimits() {
40
+ const now = Date.now();
41
+ for (const [ip, entry] of activationRateLimits.entries()) {
42
+ if (now - entry.windowStart >= RATE_LIMIT_WINDOW_MS * 2) {
43
+ activationRateLimits.delete(ip);
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Start periodic cleanup of stale rate limit entries.
49
+ * Returns the interval handle so the orchestrator can clear it on shutdown.
50
+ */
51
+ export function startRateLimitCleanup() {
52
+ return setInterval(cleanupRateLimits, 5 * 60 * 1000);
53
+ }
54
+ // ============================================================================
55
+ // Path Utilities
56
+ // ============================================================================
57
+ /**
58
+ * Normalize a project path to its canonical form for consistent SQLite storage.
59
+ * Uses realpath to resolve symlinks and relative paths.
60
+ */
61
+ export function normalizeProjectPath(projectPath) {
62
+ try {
63
+ return fs.realpathSync(projectPath);
64
+ }
65
+ catch {
66
+ // Path doesn't exist yet, normalize without realpath
67
+ return path.resolve(projectPath);
68
+ }
69
+ }
70
+ /**
71
+ * Get project name from path.
72
+ */
73
+ export function getProjectName(projectPath) {
74
+ return path.basename(projectPath);
75
+ }
76
+ // Resolve once at module load: both symlinked and real temp dir paths
77
+ const _tmpDir = tmpdir();
78
+ const _tmpDirResolved = (() => {
79
+ try {
80
+ return fs.realpathSync(_tmpDir);
81
+ }
82
+ catch {
83
+ return _tmpDir;
84
+ }
85
+ })();
86
+ /**
87
+ * Check if a project path points to a temp directory.
88
+ */
89
+ export function isTempDirectory(projectPath) {
90
+ return (projectPath.startsWith(_tmpDir + '/') ||
91
+ projectPath.startsWith(_tmpDirResolved + '/') ||
92
+ projectPath.startsWith('/tmp/') ||
93
+ projectPath.startsWith('/private/tmp/'));
94
+ }
95
+ // ============================================================================
96
+ // Language & MIME Detection
97
+ // ============================================================================
98
+ /**
99
+ * Get language identifier for syntax highlighting.
100
+ */
101
+ export function getLanguageForExt(ext) {
102
+ const langMap = {
103
+ js: 'javascript', ts: 'typescript', jsx: 'javascript', tsx: 'typescript',
104
+ py: 'python', sh: 'bash', bash: 'bash', md: 'markdown',
105
+ html: 'markup', css: 'css', json: 'json', yaml: 'yaml', yml: 'yaml',
106
+ rs: 'rust', go: 'go', java: 'java', c: 'c', cpp: 'cpp', h: 'c',
107
+ };
108
+ return langMap[ext] || ext || 'plaintext';
109
+ }
110
+ /**
111
+ * Get MIME type for a file path (by extension).
112
+ */
113
+ export function getMimeTypeForFile(filePath) {
114
+ const ext = path.extname(filePath).slice(1).toLowerCase();
115
+ const mimeTypes = {
116
+ png: 'image/png', jpg: 'image/jpeg', jpeg: 'image/jpeg',
117
+ gif: 'image/gif', webp: 'image/webp', svg: 'image/svg+xml',
118
+ mp4: 'video/mp4', webm: 'video/webm', mov: 'video/quicktime',
119
+ pdf: 'application/pdf', txt: 'text/plain',
120
+ };
121
+ return mimeTypes[ext] || 'application/octet-stream';
122
+ }
123
+ // ============================================================================
124
+ // Static File Serving
125
+ // ============================================================================
126
+ /** MIME types for static file serving */
127
+ export const MIME_TYPES = {
128
+ '.html': 'text/html',
129
+ '.js': 'application/javascript',
130
+ '.css': 'text/css',
131
+ '.json': 'application/json',
132
+ '.png': 'image/png',
133
+ '.jpg': 'image/jpeg',
134
+ '.gif': 'image/gif',
135
+ '.svg': 'image/svg+xml',
136
+ '.ico': 'image/x-icon',
137
+ '.woff': 'font/woff',
138
+ '.woff2': 'font/woff2',
139
+ '.ttf': 'font/ttf',
140
+ '.map': 'application/json',
141
+ };
142
+ // ============================================================================
143
+ // Architect Role Prompt
144
+ // ============================================================================
145
+ /**
146
+ * Build architect command args with role prompt injected.
147
+ * Writes the role to .architect-role.md in the project dir and adds
148
+ * --append-system-prompt to the args (matching how builders receive theirs).
149
+ * Returns the modified args array.
150
+ */
151
+ export function buildArchitectArgs(baseArgs, projectPath) {
152
+ const codevDir = path.join(projectPath, 'codev');
153
+ const bundledRolesDir = path.resolve(import.meta.dirname, '../../skeleton/roles');
154
+ const config = { codevDir, bundledRolesDir };
155
+ const role = loadRolePrompt(config, 'architect');
156
+ if (!role)
157
+ return baseArgs;
158
+ const roleFile = path.join(projectPath, '.architect-role.md');
159
+ fs.writeFileSync(roleFile, role.content);
160
+ return [...baseArgs, '--append-system-prompt', role.content];
161
+ }
162
+ /**
163
+ * Serve a static file from the React dashboard dist.
164
+ * Returns true if the file was served, false otherwise.
165
+ */
166
+ export function serveStaticFile(filePath, res) {
167
+ if (!fs.existsSync(filePath)) {
168
+ return false;
169
+ }
170
+ const ext = path.extname(filePath);
171
+ const contentType = MIME_TYPES[ext] || 'application/octet-stream';
172
+ try {
173
+ const content = fs.readFileSync(filePath);
174
+ res.writeHead(200, { 'Content-Type': contentType });
175
+ res.end(content);
176
+ return true;
177
+ }
178
+ catch {
179
+ return false;
180
+ }
181
+ }
182
+ //# sourceMappingURL=tower-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tower-utils.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * WebSocket terminal handler for tower server.
3
+ * Spec 0105: Tower Server Decomposition — Phase 5
4
+ *
5
+ * Contains: bidirectional WS ↔ PTY frame bridging and
6
+ * WebSocket upgrade routing (direct + project-scoped).
7
+ */
8
+ import http from 'node:http';
9
+ import { WebSocketServer, WebSocket } from 'ws';
10
+ import type { PtySession } from '../../terminal/pty-session.js';
11
+ /**
12
+ * Handle WebSocket connection to a terminal session.
13
+ * Uses hybrid binary protocol (Spec 0085):
14
+ * - 0x00 prefix: Control frame (JSON)
15
+ * - 0x01 prefix: Data frame (raw PTY bytes)
16
+ */
17
+ export declare function handleTerminalWebSocket(ws: WebSocket, session: PtySession, req: http.IncomingMessage): void;
18
+ /**
19
+ * Set up the WebSocket upgrade handler on the HTTP server.
20
+ * Parses upgrade requests and routes them to the appropriate terminal session:
21
+ * - Direct route: /ws/terminal/:id
22
+ * - Project-scoped route: /project/:encodedPath/ws/terminal/:id
23
+ */
24
+ export declare function setupUpgradeHandler(server: http.Server, wss: WebSocketServer, port: number): void;
25
+ //# sourceMappingURL=tower-websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tower-websocket.d.ts","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-websocket.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAQhE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAsE3G;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,GACX,IAAI,CAiFN"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * WebSocket terminal handler for tower server.
3
+ * Spec 0105: Tower Server Decomposition — Phase 5
4
+ *
5
+ * Contains: bidirectional WS ↔ PTY frame bridging and
6
+ * WebSocket upgrade routing (direct + project-scoped).
7
+ */
8
+ import { WebSocket } from 'ws';
9
+ import { encodeData, encodeControl, decodeFrame } from '../../terminal/ws-protocol.js';
10
+ import { getTerminalManager } from './tower-terminals.js';
11
+ import { normalizeProjectPath } from './tower-utils.js';
12
+ // ============================================================================
13
+ // Frame bridging — WS ↔ PTY
14
+ // ============================================================================
15
+ /**
16
+ * Handle WebSocket connection to a terminal session.
17
+ * Uses hybrid binary protocol (Spec 0085):
18
+ * - 0x00 prefix: Control frame (JSON)
19
+ * - 0x01 prefix: Data frame (raw PTY bytes)
20
+ */
21
+ export function handleTerminalWebSocket(ws, session, req) {
22
+ const resumeSeq = req.headers['x-session-resume'];
23
+ // Create a client adapter for the PTY session
24
+ // Uses binary protocol for data frames
25
+ const client = {
26
+ send: (data) => {
27
+ if (ws.readyState === WebSocket.OPEN) {
28
+ // Encode as binary data frame (0x01 prefix)
29
+ ws.send(encodeData(data));
30
+ }
31
+ },
32
+ };
33
+ // Attach client to session and get replay data
34
+ let replayLines;
35
+ if (resumeSeq && typeof resumeSeq === 'string') {
36
+ replayLines = session.attachResume(client, parseInt(resumeSeq, 10));
37
+ }
38
+ else {
39
+ replayLines = session.attach(client);
40
+ }
41
+ // Send replay data as binary data frame
42
+ if (replayLines.length > 0) {
43
+ const replayData = replayLines.join('\n');
44
+ if (ws.readyState === WebSocket.OPEN) {
45
+ ws.send(encodeData(replayData));
46
+ }
47
+ }
48
+ // Handle incoming messages from client (binary protocol)
49
+ ws.on('message', (rawData) => {
50
+ try {
51
+ const frame = decodeFrame(Buffer.from(rawData));
52
+ if (frame.type === 'data') {
53
+ // Write raw input to terminal
54
+ session.write(frame.data.toString('utf-8'));
55
+ }
56
+ else if (frame.type === 'control') {
57
+ // Handle control messages
58
+ const msg = frame.message;
59
+ if (msg.type === 'resize') {
60
+ const cols = msg.payload.cols;
61
+ const rows = msg.payload.rows;
62
+ if (typeof cols === 'number' && typeof rows === 'number') {
63
+ session.resize(cols, rows);
64
+ }
65
+ }
66
+ else if (msg.type === 'ping') {
67
+ if (ws.readyState === WebSocket.OPEN) {
68
+ ws.send(encodeControl({ type: 'pong', payload: {} }));
69
+ }
70
+ }
71
+ }
72
+ }
73
+ catch {
74
+ // If decode fails, try treating as raw UTF-8 input (for simpler clients)
75
+ try {
76
+ session.write(rawData.toString('utf-8'));
77
+ }
78
+ catch {
79
+ // Ignore malformed input
80
+ }
81
+ }
82
+ });
83
+ ws.on('close', () => {
84
+ session.detach(client);
85
+ });
86
+ ws.on('error', () => {
87
+ session.detach(client);
88
+ });
89
+ }
90
+ // ============================================================================
91
+ // WebSocket upgrade routing
92
+ // ============================================================================
93
+ /**
94
+ * Set up the WebSocket upgrade handler on the HTTP server.
95
+ * Parses upgrade requests and routes them to the appropriate terminal session:
96
+ * - Direct route: /ws/terminal/:id
97
+ * - Project-scoped route: /project/:encodedPath/ws/terminal/:id
98
+ */
99
+ export function setupUpgradeHandler(server, wss, port) {
100
+ server.on('upgrade', async (req, socket, head) => {
101
+ const reqUrl = new URL(req.url || '/', `http://localhost:${port}`);
102
+ // Phase 2: Handle /ws/terminal/:id routes directly
103
+ const terminalMatch = reqUrl.pathname.match(/^\/ws\/terminal\/([^/]+)$/);
104
+ if (terminalMatch) {
105
+ const terminalId = terminalMatch[1];
106
+ const manager = getTerminalManager();
107
+ const session = manager.getSession(terminalId);
108
+ if (!session) {
109
+ socket.write('HTTP/1.1 404 Not Found\r\n\r\n');
110
+ socket.destroy();
111
+ return;
112
+ }
113
+ wss.handleUpgrade(req, socket, head, (ws) => {
114
+ handleTerminalWebSocket(ws, session, req);
115
+ });
116
+ return;
117
+ }
118
+ // Phase 4 (Spec 0090): Handle project WebSocket routes directly
119
+ // Route: /project/:encodedPath/ws/terminal/:terminalId
120
+ if (!reqUrl.pathname.startsWith('/project/')) {
121
+ socket.write('HTTP/1.1 404 Not Found\r\n\r\n');
122
+ socket.destroy();
123
+ return;
124
+ }
125
+ const pathParts = reqUrl.pathname.split('/');
126
+ // ['', 'project', base64urlPath, 'ws', 'terminal', terminalId]
127
+ const encodedPath = pathParts[2];
128
+ if (!encodedPath) {
129
+ socket.write('HTTP/1.1 400 Bad Request\r\n\r\n');
130
+ socket.destroy();
131
+ return;
132
+ }
133
+ // Decode Base64URL (RFC 4648) - NOT URL encoding
134
+ // Wrap in try/catch to handle malformed Base64 input gracefully
135
+ let projectPath;
136
+ try {
137
+ projectPath = Buffer.from(encodedPath, 'base64url').toString('utf-8');
138
+ // Support both POSIX (/) and Windows (C:\) paths
139
+ if (!projectPath || (!projectPath.startsWith('/') && !/^[A-Za-z]:[\\/]/.test(projectPath))) {
140
+ throw new Error('Invalid project path');
141
+ }
142
+ // Normalize to resolve symlinks (e.g. /var/folders → /private/var/folders on macOS)
143
+ projectPath = normalizeProjectPath(projectPath);
144
+ }
145
+ catch {
146
+ socket.write('HTTP/1.1 400 Bad Request\r\n\r\n');
147
+ socket.destroy();
148
+ return;
149
+ }
150
+ // Check for terminal WebSocket route: /project/:path/ws/terminal/:id
151
+ const wsMatch = reqUrl.pathname.match(/^\/project\/[^/]+\/ws\/terminal\/([^/]+)$/);
152
+ if (wsMatch) {
153
+ const terminalId = wsMatch[1];
154
+ const manager = getTerminalManager();
155
+ const session = manager.getSession(terminalId);
156
+ if (!session) {
157
+ socket.write('HTTP/1.1 404 Not Found\r\n\r\n');
158
+ socket.destroy();
159
+ return;
160
+ }
161
+ wss.handleUpgrade(req, socket, head, (ws) => {
162
+ handleTerminalWebSocket(ws, session, req);
163
+ });
164
+ return;
165
+ }
166
+ // Unhandled WebSocket route
167
+ socket.write('HTTP/1.1 404 Not Found\r\n\r\n');
168
+ socket.destroy();
169
+ });
170
+ }
171
+ //# sourceMappingURL=tower-websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tower-websocket.js","sourceRoot":"","sources":["../../../src/agent-farm/servers/tower-websocket.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export declare function findAvailablePort(startPort: number): Promise<number>;
38
38
  export declare function isProcessRunning(pid: number): Promise<boolean>;
39
39
  /**
40
40
  * Kill a single process with SIGTERM → wait → SIGKILL escalation.
41
- * Does NOT walk the process tree — safe for shepherd/session processes
41
+ * Does NOT walk the process tree — safe for shellper/session processes
42
42
  * where tree-kill could kill siblings across projects.
43
43
  */
44
44
  export declare function killProcess(pid: number): Promise<void>;
@@ -125,7 +125,7 @@ export async function isProcessRunning(pid) {
125
125
  }
126
126
  /**
127
127
  * Kill a single process with SIGTERM → wait → SIGKILL escalation.
128
- * Does NOT walk the process tree — safe for shepherd/session processes
128
+ * Does NOT walk the process tree — safe for shellper/session processes
129
129
  * where tree-kill could kill siblings across projects.
130
130
  */
131
131
  export async function killProcess(pid) {
@@ -176,7 +176,7 @@ export async function next(projectRoot, projectId) {
176
176
  tasks: [{
177
177
  subject: 'Merge the pull request',
178
178
  activeForm: 'Merging pull request',
179
- description: `The protocol is complete. Merge the PR using:\n\ngh pr merge --merge\n\nDo NOT squash merge. Use regular merge commits to preserve development history.\n\nAfter merging, notify the architect that the work is complete.`,
179
+ description: `The protocol is complete. Merge the PR using:\n\ngh pr merge --merge\n\nDo NOT squash merge. Use regular merge commits to preserve development history.\n\nAfter merging, notify the architect:\n\naf send architect "Project ${state.id} complete. PR merged. Ready for cleanup."`,
180
180
  sequential: true,
181
181
  }],
182
182
  };
@@ -231,7 +231,7 @@ export async function next(projectRoot, projectId) {
231
231
  tasks: [{
232
232
  subject: `Request human approval: ${gateName}`,
233
233
  activeForm: `Requesting ${gateName} approval`,
234
- description: `Run: porch gate ${state.id}\nThis will open the artifact for human review.\nSTOP and wait for human approval before proceeding.`,
234
+ description: `Run: porch gate ${state.id}\nThis will open the artifact for human review.\n\nNotify the architect:\n\naf send architect "Project ${state.id}: ${gateName} ready for review. Waiting for approval."\n\nSTOP and wait for human approval before proceeding.`,
235
235
  }],
236
236
  };
237
237
  }
@@ -402,7 +402,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
402
402
  tasks: [{
403
403
  subject: `Request human approval: ${gateName} (max iterations reached)`,
404
404
  activeForm: `Requesting ${gateName} approval`,
405
- description: `Max iterations (${maxIterations}) reached without unanimous approval.\n\nReviewer verdicts:\n${formatVerdicts(reviews)}\n\nRun: porch gate ${state.id}\nSTOP and wait for human approval.`,
405
+ description: `Max iterations (${maxIterations}) reached without unanimous approval.\n\nReviewer verdicts:\n${formatVerdicts(reviews)}\n\nRun: porch gate ${state.id}\n\nNotify the architect:\n\naf send architect "Project ${state.id}: ${gateName} needs approval (max iterations reached). Waiting for review."\n\nSTOP and wait for human approval.`,
406
406
  }],
407
407
  };
408
408
  }
@@ -505,7 +505,7 @@ async function handleVerifyApproved(projectRoot, projectId, state, protocol, sta
505
505
  tasks: [{
506
506
  subject: `Request human approval: ${gateName}`,
507
507
  activeForm: `Requesting ${gateName} approval`,
508
- description: `All reviewers approved!\n\nReviewer verdicts:\n${formatVerdicts(reviews)}\n\nRun: porch gate ${state.id}\nSTOP and wait for human approval.`,
508
+ description: `All reviewers approved!\n\nReviewer verdicts:\n${formatVerdicts(reviews)}\n\nRun: porch gate ${state.id}\n\nNotify the architect:\n\naf send architect "Project ${state.id}: ${gateName} ready for approval. All reviewers approved."\n\nSTOP and wait for human approval.`,
509
509
  }],
510
510
  };
511
511
  }
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/commands/porch/next.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/commands/porch/next.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ export declare class TerminalManager {
32
32
  createSession(req: CreateTerminalRequest): Promise<PtySessionInfo>;
33
33
  /**
34
34
  * Create a PtySession without spawning a process.
35
- * Used for shepherd-backed sessions where attachShepherd() will be called
35
+ * Used for shellper-backed sessions where attachShellper() will be called
36
36
  * instead of spawn().
37
37
  */
38
38
  createSessionRaw(opts: {
@@ -69,7 +69,7 @@ export class TerminalManager {
69
69
  }
70
70
  /**
71
71
  * Create a PtySession without spawning a process.
72
- * Used for shepherd-backed sessions where attachShepherd() will be called
72
+ * Used for shellper-backed sessions where attachShellper() will be called
73
73
  * instead of spawn().
74
74
  */
75
75
  createSessionRaw(opts) {
@@ -79,7 +79,7 @@ export class TerminalManager {
79
79
  const id = randomUUID();
80
80
  const sessionConfig = {
81
81
  id,
82
- command: '', // Not used for shepherd-backed sessions
82
+ command: '', // Not used for shellper-backed sessions
83
83
  args: [],
84
84
  cols: 200,
85
85
  rows: 50,
@@ -336,11 +336,11 @@ export class TerminalManager {
336
336
  /** Kill all sessions and clean up. */
337
337
  shutdown() {
338
338
  for (const session of this.sessions.values()) {
339
- if (session.shepherdBacked) {
340
- // Shepherd-backed sessions survive Tower restart. Detach listeners
339
+ if (session.shellperBacked) {
340
+ // Shellper-backed sessions survive Tower restart. Detach listeners
341
341
  // so that SessionManager.shutdown() disconnecting the client doesn't
342
342
  // cascade into exit events and SQLite row deletion.
343
- session.detachShepherd();
343
+ session.detachShellper();
344
344
  continue;
345
345
  }
346
346
  session.kill();