@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.
- package/dashboard/dist/assets/{index-C7FtNK6Y.css → index-4n9zpWLY.css} +1 -1
- package/dashboard/dist/assets/{index-CDAINZKT.js → index-b38SaXk5.js} +33 -28
- package/dashboard/dist/assets/index-b38SaXk5.js.map +1 -0
- package/dashboard/dist/index.html +2 -2
- 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 +65 -725
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +56 -2
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +1 -1
- package/dist/agent-farm/db/schema.js +3 -3
- 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 +89 -2875
- 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 +299 -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/utils/shell.d.ts +1 -1
- package/dist/agent-farm/utils/shell.js +1 -1
- package/dist/commands/porch/next.js +4 -4
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts +1 -1
- package/dist/terminal/pty-manager.js +5 -5
- package/dist/terminal/pty-session.d.ts +20 -20
- package/dist/terminal/pty-session.js +55 -55
- package/dist/terminal/session-manager.d.ts +15 -15
- package/dist/terminal/session-manager.js +34 -34
- package/dist/terminal/{shepherd-client.d.ts → shellper-client.d.ts} +10 -10
- package/dist/terminal/{shepherd-client.d.ts.map → shellper-client.d.ts.map} +1 -1
- package/dist/terminal/{shepherd-client.js → shellper-client.js} +20 -20
- package/dist/terminal/{shepherd-client.js.map → shellper-client.js.map} +1 -1
- package/dist/terminal/{shepherd-main.d.ts → shellper-main.d.ts} +3 -3
- package/dist/terminal/shellper-main.d.ts.map +1 -0
- package/dist/terminal/{shepherd-main.js → shellper-main.js} +17 -17
- package/dist/terminal/{shepherd-main.js.map → shellper-main.js.map} +1 -1
- package/dist/terminal/{shepherd-process.d.ts → shellper-process.d.ts} +8 -8
- package/dist/terminal/{shepherd-process.d.ts.map → shellper-process.d.ts.map} +1 -1
- package/dist/terminal/{shepherd-process.js → shellper-process.js} +11 -11
- package/dist/terminal/{shepherd-process.js.map → shellper-process.js.map} +1 -1
- package/dist/terminal/{shepherd-protocol.d.ts → shellper-protocol.d.ts} +5 -5
- package/dist/terminal/{shepherd-protocol.d.ts.map → shellper-protocol.d.ts.map} +1 -1
- package/dist/terminal/{shepherd-protocol.js → shellper-protocol.js} +5 -5
- package/dist/terminal/{shepherd-protocol.js.map → shellper-protocol.js.map} +1 -1
- package/dist/terminal/{shepherd-replay-buffer.d.ts → shellper-replay-buffer.d.ts} +4 -4
- package/dist/terminal/{shepherd-replay-buffer.d.ts.map → shellper-replay-buffer.d.ts.map} +1 -1
- package/dist/terminal/{shepherd-replay-buffer.js → shellper-replay-buffer.js} +4 -4
- package/dist/terminal/{shepherd-replay-buffer.js.map → shellper-replay-buffer.js.map} +1 -1
- package/package.json +1 -1
- package/skeleton/protocols/bugfix/builder-prompt.md +7 -1
- package/skeleton/protocols/maintain/protocol.md +3 -3
- package/skeleton/protocols/spir/builder-prompt.md +7 -0
- package/skeleton/resources/commands/agent-farm.md +2 -2
- package/skeleton/roles/builder.md +15 -1
- package/dashboard/dist/assets/index-CDAINZKT.js.map +0 -1
- 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
|
|
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
|
|
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
|
|
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":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAEhB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAUxD;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAAC,WAAmB,EAAE,YAAoB;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAEpC,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,WAAW,IAAI,YAAY,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,WAAmB,EACnB,KAAmB,EACnB,YAAsB;IAEtB,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC;IAEtD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,KAAK,CAAC,SAAS,IAAI,KAAK,MAAM,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEjD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,WAAmB,EACnB,KAAmB,EACnB,KAAa;IAEb,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC;IACtD,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,KAAK,CAAC,SAAS,IAAI,KAAK,MAAM,CAAC;IAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,WAAmB,EACnB,KAAmB,EACnB,SAAiB;IAEjB,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC;IACtD,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,SAAS,eAAe,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,WAAmB,EACnB,KAAmB;IAEnB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,IAAI,SAAS,CAAC;IAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,YAAY,CAClD,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,UAAU,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,8BAA8B;QAC9B,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5E,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBACpE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;IACxH,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,oHAAoH,CAAC,CAAC;IACjI,KAAK,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;IAC/G,KAAK,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;IAC/G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,WAAmB,EAAE,SAAiB;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,WAAW,SAAS,uDAAuD;SACnF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAE1D,oBAAoB;IACpB,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,WAAW,KAAK,CAAC,EAAE,sBAAsB,KAAK,CAAC,QAAQ,YAAY;YAC5E,KAAK,EAAE,CAAC;oBACN,OAAO,EAAE,wBAAwB;oBACjC,UAAU,EAAE,sBAAsB;oBAClC,WAAW,EAAE,2NAA2N;oBACxO,UAAU,EAAE,IAAI;iBACjB,CAAC;SACH,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QAC3F,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,QAAQ,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7E,IAAI,qBAAqB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;gBACrD,gCAAgC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrD,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxF,CAAC;gBACD,wBAAwB;gBACxB,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;oBAC3B,mDAAmD;oBACnD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;wBACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;wBAClE,IAAI,QAAQ,EAAE,CAAC;4BACb,KAAK,CAAC,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;4BACpD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACjC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrD,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;oBACpB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;oBAC7B,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;oBACnB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC9B,6CAA6C;oBAC7C,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEzC,oDAAoD;QACpD,IAAI,UAAU,EAAE,MAAM,KAAK,SAAS,IAAI,UAAU,EAAE,YAAY,EAAE,CAAC;YACjE,OAAO;gBACL,MAAM,EAAE,cAAc;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,kBAAkB,IAAI,SAAS;gBACjD,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC;wBACN,OAAO,EAAE,2BAA2B,QAAQ,EAAE;wBAC9C,UAAU,EAAE,cAAc,QAAQ,WAAW;wBAC7C,WAAW,EAAE,mBAAmB,KAAK,CAAC,EAAE,sGAAsG;qBAC/I,CAAC;aACH,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,UAAU,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;gBACzB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YAED,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAC7B,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;YAEnB,mDAAmD;YACnD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClE,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,CAAC,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;oBACpD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACjC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACnG,CAAC;IAED,sCAAsC;IACtC,OAAO,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,WAAmB,EACnB,SAAiB,EACjB,KAAmB,EACnB,QAAkB,EAClB,WAA0B,EAC1B,UAAkB;IAElB,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAE9D,4DAA4D;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;QAC/C,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,KAAK,CAAC,kBAAkB,IAAI,SAAS;KACnE,CAAC;IAEF,qBAAqB;IACrB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAgB,EAAE,CAAC;QAE9B,yCAAyC;QACzC,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,kBAAkB;gBAC9C,UAAU,EAAE,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW;gBACjE,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,+BAA+B,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBAChF,UAAU,EAAE,UAAU,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,KAAK,CAAC,SAAS,GAAG;gBAC5F,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAsC,QAAQ,CAAC,GAAG,6CAA6C,CAAC,CAAC,CAAC,EAAE,CAAC;YACpI,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,cAAc,IAAI,EAAE;gBAC7B,UAAU,EAAE,WAAW,IAAI,QAAQ;gBACnC,WAAW,EAAE,QAAQ,QAAQ,CAAC,OAAO,GAAG,OAAO,yCAAyC;gBACxF,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,uBAAuB;YAChC,UAAU,EAAE,0BAA0B;YACtC,WAAW,EAAE,mBAAmB,KAAK,CAAC,EAAE,6EAA6E;YACrH,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC;IACrD,CAAC;IAED,sBAAsB;IACtB,IAAI,KAAK,CAAC,cAAc,IAAI,YAAY,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAEzE,gDAAgD;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAgB,EAAE,CAAC;YAE9B,0FAA0F;YAC1F,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAElG,6EAA6E;YAC7E,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBACvD,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,UAAU,EACV,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,SAAS,aAAa,CAC3F,CAAC;oBACF,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACvC,WAAW,GAAG,eAAe,WAAW,GAAG,CAAC;gBAC9C,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CACzC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,YAAY,CAAC,IAAI,GAAG,aAAa,GAAG,WAAW,cAAc,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,EAAE,CACxK,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC,MAAM,mBAAmB;gBAC7D,UAAU,EAAE,WAAW,YAAY,CAAC,MAAM,CAAC,MAAM,mBAAmB;gBACpE,WAAW,EAAE,wDAAwD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,KAAK,CAAC,EAAE,0BAA0B;aACtL,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC;QACrD,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChD,8EAA8E;YAC9E,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CACvC,CAAC;YACF,MAAM,oBAAoB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEzG,oEAAoE;YACpE,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,UAAU,EACV,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,SAAS,aAAa,CAC3F,CAAC;gBACF,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,kBAAkB,GAAG,eAAe,WAAW,GAAG,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CACnC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,WAAW,YAAY,CAAC,IAAI,GAAG,oBAAoB,GAAG,kBAAkB,cAAc,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,EAAE,CACtL,CAAC;YAEF,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,GAAG,YAAY;gBACf,KAAK,EAAE,CAAC;wBACN,OAAO,EAAE,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;wBACpE,UAAU,EAAE,iCAAiC;wBAC7C,WAAW,EAAE,iDAAiD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,EAAE,WAAW;qBACtI,CAAC;aACH,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,wBAAwB;YACxB,OAAO,MAAM,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAClG,CAAC;QAED,qDAAqD;QACrD,IAAI,KAAK,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC;YACrC,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC7D,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtF,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC7B,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpB,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;gBACnB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAE9B,OAAO;oBACL,MAAM,EAAE,cAAc;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,UAAU,EAAE,KAAK,CAAC,kBAAkB,IAAI,SAAS;oBACjD,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,2BAA2B,QAAQ,2BAA2B;4BACvE,UAAU,EAAE,cAAc,QAAQ,WAAW;4BAC7C,WAAW,EAAE,mBAAmB,aAAa,gEAAgE,cAAc,CAAC,OAAO,CAAC,uBAAuB,KAAK,CAAC,EAAE,qCAAqC;yBACzM,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,0EAA0E;YAC1E,2DAA2D;YAC3D,OAAO,MAAM,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAClG,CAAC;QAED,yCAAyC;QACzC,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;QAE7B,sEAAsE;QACtE,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,IAAI,SAAS,CAAC;QAC3D,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC;YACnC,CAAC,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,KAAK,YAAY,CAClD,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC;gBAC9B,UAAU,EAAE,YAAY;gBACxB,YAAY,EAAE,EAAE;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE9B,6DAA6D;QAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,kBAAkB,IAAI,SAAS;YACjD,KAAK,EAAE;gBACL;oBACE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,uCAAuC,KAAK,CAAC,SAAS,GAAG;oBACrF,UAAU,EAAE,mCAAmC,KAAK,CAAC,SAAS,GAAG;oBACjE,WAAW,EAAE,MAAM;oBACnB,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,OAAO,EAAE,uBAAuB;oBAChC,UAAU,EAAE,0BAA0B;oBACtC,WAAW,EAAE,mBAAmB,KAAK,CAAC,EAAE,gFAAgF;oBACxH,UAAU,EAAE,IAAI;iBACjB;aACF;SACF,CAAC;IACJ,CAAC;IAED,gGAAgG;IAChG,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,gDAAgD;KAC5E,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,WAAmB,EACnB,SAAiB,EACjB,KAAmB,EACnB,QAAkB,EAClB,UAAkB,EAClB,OAAuB;IAEvB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAErD,0EAA0E;IAC1E,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAC9D,KAAK,CAAC,WAAW,EACjB,gBAAgB,CAAC,EAAE,CACpB,CAAC;YAEF,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC;YAClC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAC7B,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YACpB,sDAAsD;YACtD,4DAA4D;YAE5D,IAAI,YAAY,EAAE,CAAC;gBACjB,wCAAwC;gBACxC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACvB,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAChC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YAED,kBAAkB;YAClB,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1D,KAAK,CAAC,kBAAkB,GAAG,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;YAClD,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACtF,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;QAC7B,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACpB,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QACnB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAE9B,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC;oBACN,OAAO,EAAE,2BAA2B,QAAQ,EAAE;oBAC9C,UAAU,EAAE,cAAc,QAAQ,WAAW;oBAC7C,WAAW,EAAE,kDAAkD,cAAc,CAAC,OAAO,CAAC,uBAAuB,KAAK,CAAC,EAAE,qCAAqC;iBAC3J,CAAC;SACH,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QACzB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;IAC3B,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CACtB,WAAmB,EACnB,KAAmB,EACnB,QAAkB,EAClB,WAA0B;IAE1B,2CAA2C;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE9D,6EAA6E;IAC7E,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,WAAW,IAAI,qDAAqD,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACzH,CAAC;IAED,WAAW,IAAI,sCAAsC,KAAK,CAAC,EAAE,EAAE,CAAC;IAEhE,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,CAAC;gBACN,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,uBAAuB;gBACnD,UAAU,EAAE,cAAc,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;gBAC1D,WAAW;gBACX,UAAU,EAAE,IAAI;aACjB,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAe;IAC7C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC;QAC9B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAC;QAChC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAuB;IAC7C,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;SACtC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
340
|
-
//
|
|
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.
|
|
343
|
+
session.detachShellper();
|
|
344
344
|
continue;
|
|
345
345
|
}
|
|
346
346
|
session.kill();
|