minivibe 0.2.21 → 0.2.36
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/dist/claude/process.d.ts +2 -1
- package/dist/claude/process.d.ts.map +1 -1
- package/dist/claude/process.js +36 -3
- package/dist/claude/process.js.map +1 -1
- package/dist/commands/files.d.ts +25 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +322 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/help.js +4 -4
- package/dist/core.d.ts +1 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +287 -22
- package/dist/core.js.map +1 -1
- package/package.json +3 -2
package/dist/claude/process.d.ts
CHANGED
|
@@ -10,7 +10,8 @@ export declare function checkClaudeInstalled(): boolean;
|
|
|
10
10
|
*/
|
|
11
11
|
export declare function findClaudePath(): string;
|
|
12
12
|
/**
|
|
13
|
-
* Get the
|
|
13
|
+
* Get the session file path
|
|
14
|
+
* Tries multiple naming strategies and scans directories to find the file
|
|
14
15
|
*/
|
|
15
16
|
export declare function getSessionFilePath(sessionId: string): string;
|
|
16
17
|
//# sourceMappingURL=process.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/claude/process.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAavC;AAED
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/claude/process.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAavC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuC5D"}
|
package/dist/claude/process.js
CHANGED
|
@@ -75,10 +75,43 @@ function findClaudePath() {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
* Get the
|
|
78
|
+
* Get the session file path
|
|
79
|
+
* Tries multiple naming strategies and scans directories to find the file
|
|
79
80
|
*/
|
|
80
81
|
function getSessionFilePath(sessionId) {
|
|
81
|
-
const
|
|
82
|
-
|
|
82
|
+
const cwd = process.cwd();
|
|
83
|
+
const projectsDir = path.join(os.homedir(), '.claude', 'projects');
|
|
84
|
+
// Normalize path separators (handle both Windows \ and Unix /)
|
|
85
|
+
// Strategy 1: Direct replacement (e.g., /home/ubuntu -> -home-ubuntu, C:\Users -> C--Users)
|
|
86
|
+
const directHash = cwd.replace(/[\\/]/g, '-');
|
|
87
|
+
// Strategy 2: Without leading dash (e.g., home-ubuntu)
|
|
88
|
+
const noLeadingDash = directHash.replace(/^-/, '');
|
|
89
|
+
// Strategy 3: Windows drive letter normalization (e.g., C:-Users -> C-Users)
|
|
90
|
+
const normalizedWindows = noLeadingDash.replace(/^([A-Za-z]):-/, '$1-');
|
|
91
|
+
const candidates = [noLeadingDash, directHash, normalizedWindows];
|
|
92
|
+
// Try to find existing directory that matches
|
|
93
|
+
if (fs.existsSync(projectsDir)) {
|
|
94
|
+
for (const candidate of candidates) {
|
|
95
|
+
const candidateDir = path.join(projectsDir, candidate);
|
|
96
|
+
if (fs.existsSync(candidateDir)) {
|
|
97
|
+
return path.join(candidateDir, `${sessionId}.jsonl`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Scan for session file in any project directory
|
|
101
|
+
try {
|
|
102
|
+
const dirs = fs.readdirSync(projectsDir);
|
|
103
|
+
for (const dir of dirs) {
|
|
104
|
+
const sessionFile = path.join(projectsDir, dir, `${sessionId}.jsonl`);
|
|
105
|
+
if (fs.existsSync(sessionFile)) {
|
|
106
|
+
return sessionFile;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Ignore scan errors
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Fall back to noLeadingDash (will be created by Claude)
|
|
115
|
+
return path.join(projectsDir, noLeadingDash, `${sessionId}.jsonl`);
|
|
83
116
|
}
|
|
84
117
|
//# sourceMappingURL=process.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/claude/process.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUH,oDAOC;AAKD,wCAaC;
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/claude/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-related slash commands: /upload, /download, /files
|
|
3
|
+
*/
|
|
4
|
+
import WebSocket from 'ws';
|
|
5
|
+
/**
|
|
6
|
+
* Get MIME type from filename
|
|
7
|
+
*/
|
|
8
|
+
export declare function getMimeType(filename: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Format file size for display
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatSize(bytes: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* /upload <path> - Upload file to cloud storage
|
|
15
|
+
*/
|
|
16
|
+
export declare function slashCmdUpload(filePath: string | undefined, ws: WebSocket | null, log: (msg: string) => void): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* /download <file-id> [-o path] - Download file
|
|
19
|
+
*/
|
|
20
|
+
export declare function slashCmdDownload(fileId: string | undefined, args: string[], ws: WebSocket | null, log: (msg: string) => void): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* /files - List uploaded files
|
|
23
|
+
*/
|
|
24
|
+
export declare function slashCmdFiles(ws: WebSocket | null, log: (msg: string) => void): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,SAAS,MAAM,IAAI,CAAC;AAO3B;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4BpD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhD;AAsCD;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,EAAE,EAAE,SAAS,GAAG,IAAI,EACpB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,IAAI,CAAC,CAmGf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,EAAE,SAAS,GAAG,IAAI,EACpB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,IAAI,CAAC,CAmEf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,SAAS,GAAG,IAAI,EACpB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* File-related slash commands: /upload, /download, /files
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.getMimeType = getMimeType;
|
|
43
|
+
exports.formatSize = formatSize;
|
|
44
|
+
exports.slashCmdUpload = slashCmdUpload;
|
|
45
|
+
exports.slashCmdDownload = slashCmdDownload;
|
|
46
|
+
exports.slashCmdFiles = slashCmdFiles;
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const http = __importStar(require("http"));
|
|
50
|
+
const https = __importStar(require("https"));
|
|
51
|
+
const url_1 = require("url");
|
|
52
|
+
const ws_1 = __importDefault(require("ws"));
|
|
53
|
+
const colors_1 = require("../utils/colors");
|
|
54
|
+
// Maximum file size for upload (50MB)
|
|
55
|
+
const MAX_UPLOAD_SIZE = 50 * 1024 * 1024;
|
|
56
|
+
/**
|
|
57
|
+
* Get MIME type from filename
|
|
58
|
+
*/
|
|
59
|
+
function getMimeType(filename) {
|
|
60
|
+
const ext = path.extname(filename).toLowerCase();
|
|
61
|
+
const mimeTypes = {
|
|
62
|
+
'.txt': 'text/plain',
|
|
63
|
+
'.html': 'text/html',
|
|
64
|
+
'.css': 'text/css',
|
|
65
|
+
'.js': 'application/javascript',
|
|
66
|
+
'.ts': 'application/typescript',
|
|
67
|
+
'.json': 'application/json',
|
|
68
|
+
'.xml': 'application/xml',
|
|
69
|
+
'.pdf': 'application/pdf',
|
|
70
|
+
'.zip': 'application/zip',
|
|
71
|
+
'.tar': 'application/x-tar',
|
|
72
|
+
'.gz': 'application/gzip',
|
|
73
|
+
'.png': 'image/png',
|
|
74
|
+
'.jpg': 'image/jpeg',
|
|
75
|
+
'.jpeg': 'image/jpeg',
|
|
76
|
+
'.gif': 'image/gif',
|
|
77
|
+
'.svg': 'image/svg+xml',
|
|
78
|
+
'.webp': 'image/webp',
|
|
79
|
+
'.mp3': 'audio/mpeg',
|
|
80
|
+
'.wav': 'audio/wav',
|
|
81
|
+
'.mp4': 'video/mp4',
|
|
82
|
+
'.webm': 'video/webm',
|
|
83
|
+
'.md': 'text/markdown',
|
|
84
|
+
'.csv': 'text/csv',
|
|
85
|
+
};
|
|
86
|
+
return mimeTypes[ext] || 'application/octet-stream';
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Format file size for display
|
|
90
|
+
*/
|
|
91
|
+
function formatSize(bytes) {
|
|
92
|
+
if (!bytes)
|
|
93
|
+
return '0 B';
|
|
94
|
+
const units = ['B', 'KB', 'MB', 'GB'];
|
|
95
|
+
let i = 0;
|
|
96
|
+
let size = bytes;
|
|
97
|
+
while (size >= 1024 && i < units.length - 1) {
|
|
98
|
+
size /= 1024;
|
|
99
|
+
i++;
|
|
100
|
+
}
|
|
101
|
+
return `${size.toFixed(i > 0 ? 1 : 0)} ${units[i]}`;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Wait for a specific message type from WebSocket
|
|
105
|
+
*/
|
|
106
|
+
function waitForMessage(ws, successType, errorContext, timeoutMs = 30000) {
|
|
107
|
+
return new Promise((resolve, reject) => {
|
|
108
|
+
const timeout = setTimeout(() => {
|
|
109
|
+
ws.off('message', handler);
|
|
110
|
+
reject(new Error('Timeout'));
|
|
111
|
+
}, timeoutMs);
|
|
112
|
+
const handler = (data) => {
|
|
113
|
+
try {
|
|
114
|
+
const msg = JSON.parse(data.toString());
|
|
115
|
+
if (msg.type === successType) {
|
|
116
|
+
clearTimeout(timeout);
|
|
117
|
+
ws.off('message', handler);
|
|
118
|
+
resolve(msg);
|
|
119
|
+
}
|
|
120
|
+
else if (msg.type === 'error' && msg.context === errorContext) {
|
|
121
|
+
clearTimeout(timeout);
|
|
122
|
+
ws.off('message', handler);
|
|
123
|
+
reject(new Error(msg.message || `${errorContext} failed`));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Ignore parse errors
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
ws.on('message', handler);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* /upload <path> - Upload file to cloud storage
|
|
135
|
+
*/
|
|
136
|
+
async function slashCmdUpload(filePath, ws, log) {
|
|
137
|
+
if (!filePath) {
|
|
138
|
+
log(`\n${colors_1.colors.yellow}Usage: /upload <path>${colors_1.colors.reset}\n`);
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
// Resolve path relative to cwd
|
|
142
|
+
const fullPath = path.isAbsolute(filePath) ? filePath : path.join(process.cwd(), filePath);
|
|
143
|
+
if (!fs.existsSync(fullPath)) {
|
|
144
|
+
log(`\n${colors_1.colors.red}File not found: ${filePath}${colors_1.colors.reset}\n`);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const stats = fs.statSync(fullPath);
|
|
148
|
+
if (stats.isDirectory()) {
|
|
149
|
+
log(`\n${colors_1.colors.red}Cannot upload directories${colors_1.colors.reset}\n`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (stats.size > MAX_UPLOAD_SIZE) {
|
|
153
|
+
log(`\n${colors_1.colors.red}File too large (max ${formatSize(MAX_UPLOAD_SIZE)})${colors_1.colors.reset}\n`);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (stats.size === 0) {
|
|
157
|
+
log(`\n${colors_1.colors.red}Cannot upload empty file${colors_1.colors.reset}\n`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (!ws || ws.readyState !== ws_1.default.OPEN) {
|
|
161
|
+
log(`\n${colors_1.colors.yellow}Not connected to bridge${colors_1.colors.reset}\n`);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const fileName = path.basename(fullPath);
|
|
165
|
+
if (!fileName) {
|
|
166
|
+
log(`\n${colors_1.colors.red}Invalid file path${colors_1.colors.reset}\n`);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const fileSize = stats.size;
|
|
170
|
+
const mimeType = getMimeType(fileName);
|
|
171
|
+
log(`\n${colors_1.colors.dim}Uploading ${fileName} (${formatSize(fileSize)})...${colors_1.colors.reset}`);
|
|
172
|
+
try {
|
|
173
|
+
// Request upload URL from bridge
|
|
174
|
+
ws.send(JSON.stringify({
|
|
175
|
+
type: 'get_upload_url',
|
|
176
|
+
name: fileName,
|
|
177
|
+
mimeType: mimeType,
|
|
178
|
+
size: fileSize,
|
|
179
|
+
}));
|
|
180
|
+
const response = await waitForMessage(ws, 'upload_url', 'upload');
|
|
181
|
+
const uploadUrl = response.url;
|
|
182
|
+
const fileId = response.fileId;
|
|
183
|
+
// Upload to S3
|
|
184
|
+
const fileData = fs.readFileSync(fullPath);
|
|
185
|
+
const parsedUrl = new url_1.URL(uploadUrl);
|
|
186
|
+
const httpModule = parsedUrl.protocol === 'https:' ? https : http;
|
|
187
|
+
await new Promise((resolve, reject) => {
|
|
188
|
+
const req = httpModule.request({
|
|
189
|
+
hostname: parsedUrl.hostname,
|
|
190
|
+
port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
|
|
191
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
192
|
+
method: 'PUT',
|
|
193
|
+
headers: {
|
|
194
|
+
'Content-Type': mimeType,
|
|
195
|
+
'Content-Length': fileSize,
|
|
196
|
+
},
|
|
197
|
+
}, (res) => {
|
|
198
|
+
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
199
|
+
resolve();
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
reject(new Error(`Upload failed: HTTP ${res.statusCode}`));
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
req.on('error', reject);
|
|
206
|
+
req.write(fileData);
|
|
207
|
+
req.end();
|
|
208
|
+
});
|
|
209
|
+
// Confirm upload
|
|
210
|
+
ws.send(JSON.stringify({
|
|
211
|
+
type: 'confirm_upload',
|
|
212
|
+
fileId: fileId,
|
|
213
|
+
}));
|
|
214
|
+
log(`${colors_1.colors.green}Uploaded ${fileName}${colors_1.colors.reset}`);
|
|
215
|
+
log(`${colors_1.colors.dim}File ID: ${fileId}${colors_1.colors.reset}\n`);
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
219
|
+
log(`${colors_1.colors.red}Upload failed: ${message}${colors_1.colors.reset}\n`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* /download <file-id> [-o path] - Download file
|
|
224
|
+
*/
|
|
225
|
+
async function slashCmdDownload(fileId, args, ws, log) {
|
|
226
|
+
if (!fileId) {
|
|
227
|
+
log(`\n${colors_1.colors.yellow}Usage: /download <file-id> [-o path]${colors_1.colors.reset}\n`);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if (!ws || ws.readyState !== ws_1.default.OPEN) {
|
|
231
|
+
log(`\n${colors_1.colors.yellow}Not connected to bridge${colors_1.colors.reset}\n`);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
// Parse output path from args
|
|
235
|
+
let outputPath = null;
|
|
236
|
+
for (let i = 0; i < args.length; i++) {
|
|
237
|
+
if (args[i] === '-o' && args[i + 1]) {
|
|
238
|
+
outputPath = args[i + 1];
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
log(`\n${colors_1.colors.dim}Downloading...${colors_1.colors.reset}`);
|
|
243
|
+
try {
|
|
244
|
+
// Request download URL from bridge
|
|
245
|
+
ws.send(JSON.stringify({
|
|
246
|
+
type: 'get_download_url',
|
|
247
|
+
fileId: fileId,
|
|
248
|
+
}));
|
|
249
|
+
const response = await waitForMessage(ws, 'download_url', 'download');
|
|
250
|
+
const downloadUrl = response.url;
|
|
251
|
+
const fileName = response.name || `download_${fileId}`;
|
|
252
|
+
if (!downloadUrl) {
|
|
253
|
+
log(`${colors_1.colors.red}No download URL received${colors_1.colors.reset}\n`);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
// Download from URL
|
|
257
|
+
const parsedUrl = new url_1.URL(downloadUrl);
|
|
258
|
+
const httpModule = parsedUrl.protocol === 'https:' ? https : http;
|
|
259
|
+
const fileData = await new Promise((resolve, reject) => {
|
|
260
|
+
httpModule.get({
|
|
261
|
+
hostname: parsedUrl.hostname,
|
|
262
|
+
port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
|
|
263
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
264
|
+
}, (res) => {
|
|
265
|
+
if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
|
|
266
|
+
const chunks = [];
|
|
267
|
+
res.on('data', (chunk) => chunks.push(chunk));
|
|
268
|
+
res.on('end', () => resolve(Buffer.concat(chunks)));
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
reject(new Error(`Download failed: HTTP ${res.statusCode}`));
|
|
272
|
+
}
|
|
273
|
+
}).on('error', reject);
|
|
274
|
+
});
|
|
275
|
+
// Write to file
|
|
276
|
+
const outPath = outputPath || path.join(process.cwd(), fileName);
|
|
277
|
+
fs.writeFileSync(outPath, fileData);
|
|
278
|
+
log(`${colors_1.colors.green}Downloaded ${fileName}${colors_1.colors.reset}`);
|
|
279
|
+
log(`${colors_1.colors.dim}Saved to: ${outPath}${colors_1.colors.reset}\n`);
|
|
280
|
+
}
|
|
281
|
+
catch (err) {
|
|
282
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
283
|
+
log(`${colors_1.colors.red}Download failed: ${message}${colors_1.colors.reset}\n`);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* /files - List uploaded files
|
|
288
|
+
*/
|
|
289
|
+
async function slashCmdFiles(ws, log) {
|
|
290
|
+
if (!ws || ws.readyState !== ws_1.default.OPEN) {
|
|
291
|
+
log(`\n${colors_1.colors.yellow}Not connected to bridge${colors_1.colors.reset}\n`);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
log(`\n${colors_1.colors.dim}Fetching files...${colors_1.colors.reset}`);
|
|
295
|
+
try {
|
|
296
|
+
ws.send(JSON.stringify({
|
|
297
|
+
type: 'list_folder_contents',
|
|
298
|
+
}));
|
|
299
|
+
const response = await waitForMessage(ws, 'folder_contents', 'list', 10000);
|
|
300
|
+
const files = (response.contents || response.files || []);
|
|
301
|
+
if (files.length === 0) {
|
|
302
|
+
log(`${colors_1.colors.dim}No files uploaded${colors_1.colors.reset}\n`);
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
log('');
|
|
306
|
+
log(`${'ID'.padEnd(14)} ${'NAME'.padEnd(30)} ${'SIZE'.padEnd(10)} UPLOADED`);
|
|
307
|
+
log(`${'-'.repeat(14)} ${'-'.repeat(30)} ${'-'.repeat(10)} ${'-'.repeat(15)}`);
|
|
308
|
+
for (const file of files) {
|
|
309
|
+
const id = (file.id || '').slice(0, 12);
|
|
310
|
+
const name = (file.name || '').slice(0, 28);
|
|
311
|
+
const size = formatSize(file.size || 0);
|
|
312
|
+
const date = file.createdAt ? new Date(file.createdAt).toLocaleDateString() : '';
|
|
313
|
+
log(`${id.padEnd(14)} ${name.padEnd(30)} ${size.padEnd(10)} ${date}`);
|
|
314
|
+
}
|
|
315
|
+
log('');
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
319
|
+
log(`${colors_1.colors.red}Failed to list files: ${message}${colors_1.colors.reset}\n`);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBH,kCA4BC;AAKD,gCAUC;AAyCD,wCAuGC;AAKD,4CAwEC;AAKD,sCA6CC;AAzUD,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAC7B,6CAA+B;AAC/B,6BAA0B;AAC1B,4CAA2B;AAE3B,4CAAyC;AAEzC,sCAAsC;AACtC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC;;GAEG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,SAAS,GAA2B;QACxC,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,mBAAmB;QAC3B,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,UAAU;KACnB,CAAC;IACF,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,IAAI,IAAI,CAAC;QACb,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,EAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,SAAS,GAAG,KAAK;IAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/B,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,MAAM,OAAO,GAAG,CAAC,IAAoB,EAAE,EAAE;YACvC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACxC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;oBAChE,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAClC,QAA4B,EAC5B,EAAoB,EACpB,GAA0B;IAE1B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,wBAAwB,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE3F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,mBAAmB,QAAQ,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,4BAA4B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,uBAAuB,UAAU,CAAC,eAAe,CAAC,IAAI,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,2BAA2B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,0BAA0B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,oBAAoB,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,aAAa,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,OAAO,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAExF,IAAI,CAAC;QACH,iCAAiC;QACjC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAa,CAAC;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAgB,CAAC;QAEzC,eAAe;QACf,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,SAAG,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAElE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC;gBAC7B,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;gBAC3C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,cAAc,EAAE,QAAQ;oBACxB,gBAAgB,EAAE,QAAQ;iBAC3B;aACF,EAAE,CAAC,GAAG,EAAE,EAAE;gBACT,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;oBACpE,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,eAAM,CAAC,KAAK,YAAY,QAAQ,GAAG,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,YAAY,MAAM,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,kBAAkB,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAA0B,EAC1B,IAAc,EACd,EAAoB,EACpB,GAA0B;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,uCAAuC,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,0BAA0B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACpC,UAAU,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,MAAM;QACR,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,iBAAiB,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,mCAAmC;QACnC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAa,CAAC;QAC3C,MAAM,QAAQ,GAAI,QAAQ,CAAC,IAAe,IAAI,YAAY,MAAM,EAAE,CAAC;QAEnE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,2BAA2B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,SAAS,GAAG,IAAI,SAAG,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7D,UAAU,CAAC,GAAG,CAAC;gBACb,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;aAC5C,EAAE,CAAC,GAAG,EAAE,EAAE;gBACT,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;oBACpE,MAAM,MAAM,GAAa,EAAE,CAAC;oBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,MAAM,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEpC,GAAG,CAAC,GAAG,eAAM,CAAC,KAAK,cAAc,QAAQ,GAAG,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,aAAa,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,oBAAoB,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,EAAoB,EACpB,GAA0B;IAE1B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,0BAA0B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,GAAG,CAAC,KAAK,eAAM,CAAC,GAAG,oBAAoB,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,CAKtD,CAAC;QAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,oBAAoB,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,EAAE,CAAC,CAAC;QACR,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACrE,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,yBAAyB,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IACxE,CAAC;AACH,CAAC"}
|
package/dist/commands/help.js
CHANGED
|
@@ -71,12 +71,12 @@ Options:
|
|
|
71
71
|
--help, -h Show this help
|
|
72
72
|
|
|
73
73
|
In-session Commands:
|
|
74
|
+
/whoami Show logged-in user
|
|
74
75
|
/name <name> Rename current session
|
|
75
|
-
/upload <path> Upload file to cloud
|
|
76
|
-
/download <id> Download file by ID
|
|
77
|
-
/files List uploaded files
|
|
78
|
-
/status Show connection status
|
|
79
76
|
/info Show session details
|
|
77
|
+
/upload <path> Upload file to cloud storage
|
|
78
|
+
/download <id> [-o path] Download file by ID
|
|
79
|
+
/files List uploaded files
|
|
80
80
|
/help Show available commands
|
|
81
81
|
|
|
82
82
|
Examples:
|
package/dist/core.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare function sendToClaude(ctx: AppContext, content: string): boolean;
|
|
|
21
21
|
export declare function startClaude(ctx: AppContext): void;
|
|
22
22
|
/**
|
|
23
23
|
* Setup terminal input forwarding
|
|
24
|
+
* Note: No visual autocomplete dropdown to avoid conflicts with Claude Code's native UI
|
|
24
25
|
*/
|
|
25
26
|
export declare function setupTerminalInput(ctx: AppContext): void;
|
|
26
27
|
/**
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyB5C;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CA4DrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAoBpF;AA+JD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAetE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAqFjD;AAyOD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAsDxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAKnD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAQ7C"}
|
package/dist/core.js
CHANGED
|
@@ -56,6 +56,27 @@ const config_1 = require("./utils/config");
|
|
|
56
56
|
const colors_1 = require("./utils/colors");
|
|
57
57
|
const auth_1 = require("./auth");
|
|
58
58
|
const process_1 = require("./claude/process");
|
|
59
|
+
const files_1 = require("./commands/files");
|
|
60
|
+
// Track if terminal was put in raw mode
|
|
61
|
+
let terminalRawMode = false;
|
|
62
|
+
/**
|
|
63
|
+
* Restore terminal state (can be called multiple times safely)
|
|
64
|
+
*/
|
|
65
|
+
function restoreTerminal() {
|
|
66
|
+
if (terminalRawMode && process.stdin.isTTY) {
|
|
67
|
+
try {
|
|
68
|
+
process.stdin.setRawMode(false);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Ignore - stdin may already be closed
|
|
72
|
+
}
|
|
73
|
+
terminalRawMode = false;
|
|
74
|
+
}
|
|
75
|
+
// Show cursor (safe to call multiple times)
|
|
76
|
+
process.stdout.write('\x1b[?25h');
|
|
77
|
+
}
|
|
78
|
+
// Ensure terminal is always restored on exit (handles uncaught exceptions, etc.)
|
|
79
|
+
process.on('exit', restoreTerminal);
|
|
59
80
|
/**
|
|
60
81
|
* Connect to bridge server and set up handlers
|
|
61
82
|
*/
|
|
@@ -87,7 +108,10 @@ function connectToBridge(ctx) {
|
|
|
87
108
|
});
|
|
88
109
|
ctx.bridgeSocket.on('message', (raw) => {
|
|
89
110
|
try {
|
|
90
|
-
|
|
111
|
+
const rawStr = raw.toString();
|
|
112
|
+
// Log raw messages in verbose mode only
|
|
113
|
+
logStatus(`[RAW] ${rawStr.slice(0, 200)}${rawStr.length > 200 ? '...' : ''}`);
|
|
114
|
+
handleBridgeMessage(ctx, JSON.parse(rawStr));
|
|
91
115
|
}
|
|
92
116
|
catch (err) {
|
|
93
117
|
logStatus(`Invalid bridge message: ${err instanceof Error ? err.message : err}`);
|
|
@@ -143,10 +167,15 @@ function sendToBridge(ctx, data) {
|
|
|
143
167
|
*/
|
|
144
168
|
function handleBridgeMessage(ctx, msg) {
|
|
145
169
|
const { log, logStatus } = ctx.callbacks;
|
|
170
|
+
// Debug: log all incoming messages (except pings)
|
|
171
|
+
if (msg.type !== 'ping' && msg.type !== 'pong') {
|
|
172
|
+
logStatus(`Bridge message: type=${msg.type}, hasContent=${msg.content !== undefined}`);
|
|
173
|
+
}
|
|
146
174
|
switch (msg.type) {
|
|
147
175
|
case 'authenticated':
|
|
148
176
|
ctx.isAuthenticated = true;
|
|
149
177
|
log('Authenticated with bridge', colors_1.colors.green);
|
|
178
|
+
// Register session first - E2E key exchange happens after session_registered
|
|
150
179
|
ctx.bridgeSocket?.send(JSON.stringify({
|
|
151
180
|
type: 'register_session',
|
|
152
181
|
sessionId: ctx.effectiveSessionId,
|
|
@@ -154,10 +183,18 @@ function handleBridgeMessage(ctx, msg) {
|
|
|
154
183
|
name: ctx.options.sessionName || path.basename(process.cwd()),
|
|
155
184
|
e2e: ctx.options.e2eEnabled,
|
|
156
185
|
}));
|
|
186
|
+
break;
|
|
187
|
+
case 'session_registered':
|
|
188
|
+
log(`Session registered: ${msg.sessionId?.slice(0, 8)}...`, colors_1.colors.green);
|
|
189
|
+
logStatus(`Full sessionId: ${msg.sessionId}`);
|
|
190
|
+
// Now send E2E key exchange (must be AFTER register_session)
|
|
157
191
|
if (ctx.options.e2eEnabled && ctx.e2e) {
|
|
158
192
|
ctx.e2e.init();
|
|
159
193
|
if (!ctx.e2e.isReady()) {
|
|
160
|
-
ctx.
|
|
194
|
+
const keyMsg = ctx.e2e.createKeyExchangeMessage(true);
|
|
195
|
+
keyMsg.sessionId = ctx.effectiveSessionId;
|
|
196
|
+
ctx.bridgeSocket?.send(JSON.stringify(keyMsg));
|
|
197
|
+
log('[E2E] Sent public key to bridge', colors_1.colors.cyan);
|
|
161
198
|
}
|
|
162
199
|
}
|
|
163
200
|
break;
|
|
@@ -175,7 +212,8 @@ function handleBridgeMessage(ctx, msg) {
|
|
|
175
212
|
}
|
|
176
213
|
});
|
|
177
214
|
break;
|
|
178
|
-
case '
|
|
215
|
+
case 'send_message':
|
|
216
|
+
log(`Received message from mobile`, colors_1.colors.dim);
|
|
179
217
|
handleUserMessage(ctx, msg);
|
|
180
218
|
break;
|
|
181
219
|
case 'key_exchange':
|
|
@@ -189,9 +227,44 @@ function handleBridgeMessage(ctx, msg) {
|
|
|
189
227
|
ctx.e2ePendingMessages.length = 0;
|
|
190
228
|
}
|
|
191
229
|
break;
|
|
192
|
-
case '
|
|
193
|
-
|
|
194
|
-
|
|
230
|
+
case 'approve_permission':
|
|
231
|
+
case 'approve_permission_always':
|
|
232
|
+
// Send '1' for Yes, '2' for Yes don't ask again
|
|
233
|
+
if (ctx.pendingPermission) {
|
|
234
|
+
const option = msg.type === 'approve_permission_always' ? '2' : '1';
|
|
235
|
+
ctx.callbacks.sendToClaude(option, 'permission');
|
|
236
|
+
ctx.pendingPermission = null;
|
|
237
|
+
}
|
|
238
|
+
break;
|
|
239
|
+
case 'deny_permission':
|
|
240
|
+
// Send Escape to cancel permission prompt
|
|
241
|
+
if (ctx.pendingPermission) {
|
|
242
|
+
ctx.claudeProcess?.stdin?.write('\x1b');
|
|
243
|
+
ctx.pendingPermission = null;
|
|
244
|
+
}
|
|
245
|
+
break;
|
|
246
|
+
case 'terminal_input':
|
|
247
|
+
// Raw terminal input from attached client
|
|
248
|
+
if (msg.data && ctx.claudeProcess?.stdin?.writable) {
|
|
249
|
+
ctx.claudeProcess.stdin.write(msg.data);
|
|
250
|
+
}
|
|
251
|
+
break;
|
|
252
|
+
case 'session_stop':
|
|
253
|
+
// Agent is stopping this session
|
|
254
|
+
log('Session stopped by agent', colors_1.colors.yellow);
|
|
255
|
+
ctx.isShuttingDown = true;
|
|
256
|
+
if (ctx.claudeProcess && !ctx.claudeProcess.killed) {
|
|
257
|
+
ctx.claudeProcess.kill('SIGTERM');
|
|
258
|
+
}
|
|
259
|
+
break;
|
|
260
|
+
case 'session_renamed':
|
|
261
|
+
if (msg.name) {
|
|
262
|
+
ctx.options.sessionName = msg.name;
|
|
263
|
+
logStatus(`Session renamed: ${msg.name}`);
|
|
264
|
+
}
|
|
265
|
+
break;
|
|
266
|
+
case 'error':
|
|
267
|
+
log(`Bridge error: ${msg.message}`, colors_1.colors.red);
|
|
195
268
|
break;
|
|
196
269
|
}
|
|
197
270
|
}
|
|
@@ -199,6 +272,7 @@ function handleBridgeMessage(ctx, msg) {
|
|
|
199
272
|
* Handle user message from mobile
|
|
200
273
|
*/
|
|
201
274
|
function handleUserMessage(ctx, msg) {
|
|
275
|
+
const { log } = ctx.callbacks;
|
|
202
276
|
let content = msg.content;
|
|
203
277
|
// Decrypt if E2E
|
|
204
278
|
if (ctx.e2e?.isReady()) {
|
|
@@ -212,29 +286,37 @@ function handleUserMessage(ctx, msg) {
|
|
|
212
286
|
}
|
|
213
287
|
}
|
|
214
288
|
}
|
|
289
|
+
// Validate content
|
|
290
|
+
if (!content || typeof content !== 'string') {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
215
293
|
// Dedupe
|
|
216
294
|
const hash = Buffer.from(content).toString('base64').slice(0, 32);
|
|
217
|
-
if (ctx.mobileMessageHashes.has(hash))
|
|
295
|
+
if (ctx.mobileMessageHashes.has(hash)) {
|
|
218
296
|
return;
|
|
297
|
+
}
|
|
219
298
|
ctx.mobileMessageHashes.add(hash);
|
|
220
299
|
if (ctx.mobileMessageHashes.size > config_1.MAX_MOBILE_MESSAGES) {
|
|
221
300
|
const first = ctx.mobileMessageHashes.values().next().value;
|
|
222
301
|
if (first)
|
|
223
302
|
ctx.mobileMessageHashes.delete(first);
|
|
224
303
|
}
|
|
225
|
-
|
|
304
|
+
log(`[mobile]: ${content}`, colors_1.colors.cyan);
|
|
226
305
|
ctx.callbacks.sendToClaude(content, 'mobile');
|
|
227
306
|
}
|
|
228
307
|
/**
|
|
229
308
|
* Send to Claude stdin
|
|
230
309
|
*/
|
|
231
310
|
function sendToClaude(ctx, content) {
|
|
232
|
-
if (!ctx.claudeProcess?.stdin?.writable || !ctx.isRunning)
|
|
311
|
+
if (!ctx.claudeProcess?.stdin?.writable || !ctx.isRunning) {
|
|
233
312
|
return false;
|
|
313
|
+
}
|
|
234
314
|
try {
|
|
235
315
|
ctx.claudeProcess.stdin.write(Buffer.from(content, 'utf8'));
|
|
236
316
|
setTimeout(() => {
|
|
237
|
-
ctx.claudeProcess?.stdin?.writable
|
|
317
|
+
if (ctx.claudeProcess?.stdin?.writable) {
|
|
318
|
+
ctx.claudeProcess.stdin.write('\r');
|
|
319
|
+
}
|
|
238
320
|
}, 100);
|
|
239
321
|
return true;
|
|
240
322
|
}
|
|
@@ -271,7 +353,10 @@ function startClaude(ctx) {
|
|
|
271
353
|
ctx.isRunning = true;
|
|
272
354
|
const stdio = ctx.claudeProcess.stdio;
|
|
273
355
|
stdio[4]?.on('data', (data) => {
|
|
274
|
-
|
|
356
|
+
// Only send terminal_output in agent mode
|
|
357
|
+
if (ctx.options.agentUrl) {
|
|
358
|
+
sendToBridge(ctx, { type: 'terminal_output', sessionId: ctx.effectiveSessionId, data: data.toString('base64') });
|
|
359
|
+
}
|
|
275
360
|
});
|
|
276
361
|
let promptBuf = '';
|
|
277
362
|
stdio[3]?.on('data', (data) => {
|
|
@@ -281,21 +366,36 @@ function startClaude(ctx) {
|
|
|
281
366
|
for (const line of lines) {
|
|
282
367
|
try {
|
|
283
368
|
const p = JSON.parse(line);
|
|
284
|
-
if (p.type === 'permission_prompt') {
|
|
369
|
+
if (p.type === 'permission_prompt' && p.tool_name) {
|
|
370
|
+
// Store pending permission for approval/denial
|
|
371
|
+
ctx.pendingPermission = {
|
|
372
|
+
command: p.tool_name,
|
|
373
|
+
timestamp: Date.now(),
|
|
374
|
+
};
|
|
375
|
+
// Send permission request in format expected by bridge/clients
|
|
285
376
|
sendToBridge(ctx, {
|
|
286
377
|
type: 'permission_request',
|
|
287
378
|
sessionId: ctx.effectiveSessionId,
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
379
|
+
requestId: p.prompt_id || (0, uuid_1.v4)(),
|
|
380
|
+
command: p.tool_name,
|
|
381
|
+
question: p.question || `Allow ${p.tool_name}?`,
|
|
382
|
+
displayText: p.tool_name,
|
|
383
|
+
fullText: JSON.stringify(p.tool_input || {}, null, 2),
|
|
291
384
|
});
|
|
292
385
|
}
|
|
293
386
|
}
|
|
294
387
|
catch { /* not json */ }
|
|
295
388
|
}
|
|
296
389
|
});
|
|
297
|
-
ctx.claudeProcess.on('exit', (code) => {
|
|
390
|
+
ctx.claudeProcess.on('exit', (code, signal) => {
|
|
298
391
|
ctx.isRunning = false;
|
|
392
|
+
// Notify bridge that session ended
|
|
393
|
+
sendToBridge(ctx, {
|
|
394
|
+
type: 'session_ended',
|
|
395
|
+
sessionId: ctx.effectiveSessionId,
|
|
396
|
+
exitCode: code,
|
|
397
|
+
signal: signal || undefined,
|
|
398
|
+
});
|
|
299
399
|
cleanup(ctx);
|
|
300
400
|
process.exit(code || 0);
|
|
301
401
|
});
|
|
@@ -309,10 +409,13 @@ function startClaude(ctx) {
|
|
|
309
409
|
* Watch session file for Claude messages
|
|
310
410
|
*/
|
|
311
411
|
function startSessionWatcher(ctx) {
|
|
412
|
+
const { logStatus } = ctx.callbacks;
|
|
312
413
|
const sessionFile = (0, process_1.getSessionFilePath)(ctx.sessionId);
|
|
414
|
+
logStatus(`Watching for session file: ${sessionFile}`);
|
|
313
415
|
const check = setInterval(() => {
|
|
314
416
|
if (fs.existsSync(sessionFile)) {
|
|
315
417
|
clearInterval(check);
|
|
418
|
+
logStatus(`Session file found, starting watcher`);
|
|
316
419
|
try {
|
|
317
420
|
const watcher = fs.watch(sessionFile, () => processSessionFile(ctx, sessionFile));
|
|
318
421
|
ctx.sessionFileWatcher = () => watcher.close();
|
|
@@ -365,16 +468,25 @@ function extractTextContent(content) {
|
|
|
365
468
|
* Process session file for new messages
|
|
366
469
|
*/
|
|
367
470
|
function processSessionFile(ctx, file) {
|
|
471
|
+
const { logStatus } = ctx.callbacks;
|
|
368
472
|
try {
|
|
369
473
|
const stats = fs.statSync(file);
|
|
474
|
+
// Handle file being recreated (size shrunk)
|
|
475
|
+
if (stats.size < ctx.lastFileSize) {
|
|
476
|
+
ctx.lastFileSize = 0;
|
|
477
|
+
}
|
|
370
478
|
if (stats.size <= ctx.lastFileSize)
|
|
371
479
|
return;
|
|
372
|
-
|
|
373
|
-
const
|
|
480
|
+
// Read only new bytes from the file
|
|
481
|
+
const fd = fs.openSync(file, 'r');
|
|
482
|
+
const buffer = Buffer.alloc(stats.size - ctx.lastFileSize);
|
|
483
|
+
fs.readSync(fd, buffer, 0, buffer.length, ctx.lastFileSize);
|
|
484
|
+
fs.closeSync(fd);
|
|
374
485
|
ctx.lastFileSize = stats.size;
|
|
486
|
+
const newContent = buffer.toString('utf8');
|
|
487
|
+
const lines = newContent.split('\n').filter(l => l.trim());
|
|
488
|
+
logStatus(`Processing ${lines.length} lines from session file`);
|
|
375
489
|
for (const line of lines) {
|
|
376
|
-
if (!line.trim())
|
|
377
|
-
continue;
|
|
378
490
|
try {
|
|
379
491
|
const msg = JSON.parse(line);
|
|
380
492
|
const role = msg.type; // 'user' or 'assistant'
|
|
@@ -382,8 +494,9 @@ function processSessionFile(ctx, file) {
|
|
|
382
494
|
// Extract text content
|
|
383
495
|
const textContent = extractTextContent(msgContent);
|
|
384
496
|
if (textContent.trim()) {
|
|
497
|
+
logStatus(`Sending ${role} message to bridge (${textContent.length} chars)`);
|
|
385
498
|
// Send formatted message to bridge (matching old format expected by web client)
|
|
386
|
-
sendToBridge(ctx, {
|
|
499
|
+
const sent = sendToBridge(ctx, {
|
|
387
500
|
type: 'claude_message',
|
|
388
501
|
sessionId: ctx.effectiveSessionId,
|
|
389
502
|
message: {
|
|
@@ -393,6 +506,9 @@ function processSessionFile(ctx, file) {
|
|
|
393
506
|
timestamp: new Date().toISOString(),
|
|
394
507
|
},
|
|
395
508
|
});
|
|
509
|
+
if (!sent) {
|
|
510
|
+
logStatus(`Failed to send message (not authenticated or disconnected)`);
|
|
511
|
+
}
|
|
396
512
|
}
|
|
397
513
|
// Track completed tools
|
|
398
514
|
if (Array.isArray(msgContent)) {
|
|
@@ -413,19 +529,167 @@ function processSessionFile(ctx, file) {
|
|
|
413
529
|
}
|
|
414
530
|
catch { /* file not ready */ }
|
|
415
531
|
}
|
|
532
|
+
// Slash command definitions for autocomplete
|
|
533
|
+
const SLASH_COMMANDS = [
|
|
534
|
+
{ cmd: '/whoami', desc: 'Show logged-in user' },
|
|
535
|
+
{ cmd: '/name', desc: 'Rename current session' },
|
|
536
|
+
{ cmd: '/info', desc: 'Show session details' },
|
|
537
|
+
{ cmd: '/upload', desc: 'Upload file to cloud' },
|
|
538
|
+
{ cmd: '/download', desc: 'Download file by ID' },
|
|
539
|
+
{ cmd: '/files', desc: 'List uploaded files' },
|
|
540
|
+
{ cmd: '/help', desc: 'Show available commands' },
|
|
541
|
+
];
|
|
542
|
+
/**
|
|
543
|
+
* Get matching slash commands for Tab completion
|
|
544
|
+
* Note: No visual dropdown to avoid conflicts with Claude Code's native autocomplete
|
|
545
|
+
*/
|
|
546
|
+
function getSlashMatches(input) {
|
|
547
|
+
if (!input.startsWith('/'))
|
|
548
|
+
return [];
|
|
549
|
+
const prefix = input.toLowerCase();
|
|
550
|
+
return SLASH_COMMANDS.filter(c => c.cmd.startsWith(prefix));
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Handle slash commands typed during session
|
|
554
|
+
* Returns true if command was handled, false to pass through to Claude
|
|
555
|
+
*/
|
|
556
|
+
function handleSlashCommand(ctx, input) {
|
|
557
|
+
const { log } = ctx.callbacks;
|
|
558
|
+
const trimmed = input.trim();
|
|
559
|
+
if (!trimmed.startsWith('/'))
|
|
560
|
+
return false;
|
|
561
|
+
const parts = trimmed.split(/\s+/);
|
|
562
|
+
const cmd = parts[0].toLowerCase();
|
|
563
|
+
const args = parts.slice(1);
|
|
564
|
+
switch (cmd) {
|
|
565
|
+
case '/whoami': {
|
|
566
|
+
const user = (0, auth_1.getUserInfo)();
|
|
567
|
+
if (user) {
|
|
568
|
+
log(`\n${colors_1.colors.green}Logged in as:${colors_1.colors.reset}`);
|
|
569
|
+
if (user.name)
|
|
570
|
+
log(` Name: ${user.name}`);
|
|
571
|
+
if (user.email)
|
|
572
|
+
log(` Email: ${user.email}`);
|
|
573
|
+
}
|
|
574
|
+
else {
|
|
575
|
+
log(`\n${colors_1.colors.yellow}Not logged in${colors_1.colors.reset}`);
|
|
576
|
+
}
|
|
577
|
+
log('');
|
|
578
|
+
return true;
|
|
579
|
+
}
|
|
580
|
+
case '/name': {
|
|
581
|
+
const newName = args.join(' ');
|
|
582
|
+
if (!newName) {
|
|
583
|
+
log(`\n${colors_1.colors.yellow}Usage: /name <new-name>${colors_1.colors.reset}\n`);
|
|
584
|
+
return true;
|
|
585
|
+
}
|
|
586
|
+
sendToBridge(ctx, {
|
|
587
|
+
type: 'rename_session',
|
|
588
|
+
sessionId: ctx.effectiveSessionId,
|
|
589
|
+
name: newName,
|
|
590
|
+
});
|
|
591
|
+
log(`\n${colors_1.colors.green}Session renamed to: ${newName}${colors_1.colors.reset}\n`);
|
|
592
|
+
return true;
|
|
593
|
+
}
|
|
594
|
+
case '/info': {
|
|
595
|
+
log(`\n${colors_1.colors.bright}Session Info${colors_1.colors.reset}`);
|
|
596
|
+
log(` Session ID: ${ctx.effectiveSessionId}`);
|
|
597
|
+
log(` Directory: ${process.cwd()}`);
|
|
598
|
+
log(` Connected: ${ctx.isAuthenticated ? 'Yes' : 'No'}`);
|
|
599
|
+
log(` E2E: ${ctx.options.e2eEnabled ? (ctx.e2e?.isReady() ? 'Ready' : 'Pending') : 'Disabled'}`);
|
|
600
|
+
log('');
|
|
601
|
+
return true;
|
|
602
|
+
}
|
|
603
|
+
case '/upload': {
|
|
604
|
+
const filePath = args[0];
|
|
605
|
+
(0, files_1.slashCmdUpload)(filePath, ctx.bridgeSocket, log).catch((err) => {
|
|
606
|
+
log(`${colors_1.colors.red}Upload error: ${err.message}${colors_1.colors.reset}\n`);
|
|
607
|
+
});
|
|
608
|
+
return true;
|
|
609
|
+
}
|
|
610
|
+
case '/download': {
|
|
611
|
+
const fileId = args[0];
|
|
612
|
+
(0, files_1.slashCmdDownload)(fileId, args.slice(1), ctx.bridgeSocket, log).catch((err) => {
|
|
613
|
+
log(`${colors_1.colors.red}Download error: ${err.message}${colors_1.colors.reset}\n`);
|
|
614
|
+
});
|
|
615
|
+
return true;
|
|
616
|
+
}
|
|
617
|
+
case '/files': {
|
|
618
|
+
(0, files_1.slashCmdFiles)(ctx.bridgeSocket, log).catch((err) => {
|
|
619
|
+
log(`${colors_1.colors.red}List files error: ${err.message}${colors_1.colors.reset}\n`);
|
|
620
|
+
});
|
|
621
|
+
return true;
|
|
622
|
+
}
|
|
623
|
+
case '/help': {
|
|
624
|
+
log(`\n${colors_1.colors.bright}Slash Commands${colors_1.colors.reset}`);
|
|
625
|
+
log(` /whoami Show logged-in user`);
|
|
626
|
+
log(` /name <n> Rename session`);
|
|
627
|
+
log(` /info Show session details`);
|
|
628
|
+
log(` /upload <p> Upload file to cloud`);
|
|
629
|
+
log(` /download <id> Download file by ID`);
|
|
630
|
+
log(` /files List uploaded files`);
|
|
631
|
+
log(` /help Show this help`);
|
|
632
|
+
log('');
|
|
633
|
+
return true;
|
|
634
|
+
}
|
|
635
|
+
default:
|
|
636
|
+
return false; // Unknown command, pass to Claude
|
|
637
|
+
}
|
|
638
|
+
}
|
|
416
639
|
/**
|
|
417
640
|
* Setup terminal input forwarding
|
|
641
|
+
* Note: No visual autocomplete dropdown to avoid conflicts with Claude Code's native UI
|
|
418
642
|
*/
|
|
419
643
|
function setupTerminalInput(ctx) {
|
|
420
644
|
if (!process.stdin.isTTY)
|
|
421
645
|
return;
|
|
422
646
|
process.stdin.setRawMode(true);
|
|
647
|
+
terminalRawMode = true;
|
|
423
648
|
process.stdin.resume();
|
|
424
649
|
process.stdin.on('data', (data) => {
|
|
425
|
-
|
|
650
|
+
const str = data.toString();
|
|
651
|
+
// Ctrl+C - cleanup and exit
|
|
652
|
+
if (str === '\x03') {
|
|
426
653
|
cleanup(ctx);
|
|
427
654
|
process.exit(0);
|
|
428
655
|
}
|
|
656
|
+
// Tab: silent completion for vibe slash commands
|
|
657
|
+
if (str === '\t' && ctx.inputBuffer.startsWith('/')) {
|
|
658
|
+
const matches = getSlashMatches(ctx.inputBuffer);
|
|
659
|
+
if (matches.length === 1) {
|
|
660
|
+
// Single match - complete it
|
|
661
|
+
const toAdd = matches[0].cmd.slice(ctx.inputBuffer.length);
|
|
662
|
+
if (toAdd) {
|
|
663
|
+
ctx.inputBuffer += toAdd;
|
|
664
|
+
process.stdout.write(toAdd);
|
|
665
|
+
ctx.claudeProcess?.stdin?.writable && ctx.claudeProcess.stdin.write(toAdd);
|
|
666
|
+
}
|
|
667
|
+
return; // Don't pass Tab to Claude
|
|
668
|
+
}
|
|
669
|
+
// Multiple or no matches - let Claude handle Tab
|
|
670
|
+
}
|
|
671
|
+
// Buffer input to detect slash commands (Enter = \r or \n)
|
|
672
|
+
if (str === '\r' || str === '\n') {
|
|
673
|
+
if (ctx.inputBuffer.startsWith('/')) {
|
|
674
|
+
// Check if it's a slash command we handle
|
|
675
|
+
if (handleSlashCommand(ctx, ctx.inputBuffer)) {
|
|
676
|
+
ctx.inputBuffer = '';
|
|
677
|
+
// Echo newline but don't send to Claude
|
|
678
|
+
process.stdout.write('\n');
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
ctx.inputBuffer = '';
|
|
683
|
+
}
|
|
684
|
+
else if (str === '\x7f' || str === '\b') {
|
|
685
|
+
// Backspace - remove last char from buffer
|
|
686
|
+
ctx.inputBuffer = ctx.inputBuffer.slice(0, -1);
|
|
687
|
+
}
|
|
688
|
+
else if (str.length === 1 && str >= ' ') {
|
|
689
|
+
// Printable character
|
|
690
|
+
ctx.inputBuffer += str;
|
|
691
|
+
}
|
|
692
|
+
// Pass through to Claude
|
|
429
693
|
ctx.claudeProcess?.stdin?.writable && ctx.claudeProcess.stdin.write(data);
|
|
430
694
|
});
|
|
431
695
|
}
|
|
@@ -456,5 +720,6 @@ function cleanup(ctx) {
|
|
|
456
720
|
ctx.bridgeSocket.close();
|
|
457
721
|
if (ctx.claudeProcess && !ctx.claudeProcess.killed)
|
|
458
722
|
ctx.claudeProcess.kill('SIGTERM');
|
|
723
|
+
restoreTerminal();
|
|
459
724
|
}
|
|
460
725
|
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDH,0CA4DC;AAKD,oCAoBC;AAkKD,oCAeC;AAKD,kCAqFC;AA6OD,gDAsDC;AAKD,sCAKC;AAKD,0BAQC;AAxsBD,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,4CAA2B;AAC3B,+BAAoC;AAEpC,2CAOwB;AACxB,2CAAwC;AACxC,iCAAqD;AACrD,8CAAsE;AACtE,4CAAmF;AAInF,wCAAwC;AACxC,IAAI,eAAe,GAAG,KAAK,CAAC;AAE5B;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;QACD,eAAe,GAAG,KAAK,CAAC;IAC1B,CAAC;IACD,4CAA4C;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,iFAAiF;AACjF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEpC;;GAEG;AACH,SAAgB,eAAe,CAAC,GAAe;IAC7C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,2BAAkB,CAAC;IACtF,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;IAE3C,IAAI,WAAW,EAAE,CAAC;QAChB,SAAS,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;IAC5B,GAAG,CAAC,YAAY,GAAG,IAAI,YAAS,CAAC,SAAS,CAAC,CAAC;IAE5C,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QAC/B,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACxC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACpC,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,GAAG,CAAC,SAAS,IAAI,UAAU;SACnC,CAAC,CAAC,CAAC;QAEJ,IAAI,GAAG,CAAC,cAAc;YAAE,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1D,GAAG,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;gBACpD,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,EAAE,2BAAkB,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,wCAAwC;YACxC,SAAS,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9E,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAChC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QACtC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YACvB,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAClC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YACxB,SAAS,CAAC,mBAAmB,wBAAe,GAAG,IAAI,MAAM,CAAC,CAAC;YAC3D,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,wBAAe,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA8B,EAAE,EAAE;QAC9D,IAAI,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,mCAAmC,SAAS,mBAAmB,CAAC,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAe,EAAE,IAA6B;IACzE,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;YACjD,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACnF,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC9B,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,GAAe,EAAE,GAA4B;IACxE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IAEzC,kDAAkD;IAClD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC/C,SAAS,CAAC,wBAAwB,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,eAAe;YAClB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;YAC3B,GAAG,CAAC,2BAA2B,EAAE,eAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,6EAA6E;YAC7E,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBACpC,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,GAAG,CAAC,kBAAkB;gBACjC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;gBACnB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7D,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU;aAC5B,CAAC,CAAC,CAAC;YACJ,MAAM;QAER,KAAK,oBAAoB;YACvB,GAAG,CAAC,uBAAwB,GAAG,CAAC,SAAoB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,eAAM,CAAC,KAAK,CAAC,CAAC;YACtF,SAAS,CAAC,mBAAmB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9C,6DAA6D;YAC7D,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACtC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;oBACtD,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC;oBAC1C,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC/C,GAAG,CAAC,iCAAiC,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,MAAM;QAER,KAAK,YAAY;YACf,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;YAC5B,GAAG,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAA,qBAAc,GAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;oBACtB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1E,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,6BAA6B,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM;QAER,KAAK,cAAc;YACjB,GAAG,CAAC,8BAA8B,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC;YAChD,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,MAAM;QAER,KAAK,cAAc;YACjB,IAAI,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzD,GAAG,CAAC,4BAA4B,EAAE,eAAM,CAAC,KAAK,CAAC,CAAC;gBAChD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,GAAG,+BAAsB,EAAE,CAAC;wBACtD,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,GAA8B,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,MAAM;QAER,KAAK,oBAAoB,CAAC;QAC1B,KAAK,2BAA2B;YAC9B,gDAAgD;YAChD,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACpE,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACjD,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,MAAM;QAER,KAAK,iBAAiB;YACpB,0CAA0C;YAC1C,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,MAAM;QAER,KAAK,gBAAgB;YACnB,0CAA0C;YAC1C,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBACnD,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAc,CAAC,CAAC;YACpD,CAAC;YACD,MAAM;QAER,KAAK,cAAc;YACjB,iCAAiC;YACjC,GAAG,CAAC,0BAA0B,EAAE,eAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;YAC1B,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACnD,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,MAAM;QAER,KAAK,iBAAiB;YACpB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,IAAc,CAAC;gBAC7C,SAAS,CAAC,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM;QAER,KAAK,OAAO;YACV,GAAG,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM;IACV,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAe,EAAE,GAA4B;IACtE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IAC9B,IAAI,OAAO,GAAG,GAAG,CAAC,OAAiB,CAAC;IAEpC,iBAAiB;IACjB,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAkC,CAAC;QACnD,IAAI,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAW,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,SAAS;IACT,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IACD,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,4BAAmB,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC5D,IAAI,KAAK;YAAE,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,GAAG,CAAC,aAAa,OAAO,EAAE,EAAE,eAAM,CAAC,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,GAAe,EAAE,OAAe;IAC3D,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBACvC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAe;IACzC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IACzC,MAAM,UAAU,GAAG,IAAA,wBAAc,GAAE,CAAC;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe;QAC5C,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC;QAC7B,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7G,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAClF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC;IAEhI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,UAAU,OAAO,YAAY,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,aAAa,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,EAAE;QACtE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;KAC5H,CAAC,CAAC;IACH,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IAErB,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,KAAyC,CAAC;IAC1E,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACpC,0CAA0C;QAC1C,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACpC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;gBAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAClD,+CAA+C;oBAC/C,GAAG,CAAC,iBAAiB,GAAG;wBACtB,OAAO,EAAE,CAAC,CAAC,SAAS;wBACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC;oBACF,+DAA+D;oBAC/D,YAAY,CAAC,GAAG,EAAE;wBAChB,IAAI,EAAE,oBAAoB;wBAC1B,SAAS,EAAE,GAAG,CAAC,kBAAkB;wBACjC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAA,SAAM,GAAE;wBAClC,OAAO,EAAE,CAAC,CAAC,SAAS;wBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,SAAS,GAAG;wBAC/C,WAAW,EAAE,CAAC,CAAC,SAAS;wBACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACtB,mCAAmC;QACnC,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,GAAG,CAAC,kBAAkB;YACjC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,MAAM,IAAI,SAAS;SAC5B,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACpC,GAAG,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,GAAe;IAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IACpC,MAAM,WAAW,GAAG,IAAA,4BAAkB,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtD,SAAS,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS,CAAC,sCAAsC,CAAC,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;gBAClF,GAAG,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC/C,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACT,GAAG,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,8BAA8B;YAC9B,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;YAC/B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACjD,IAAI,IAAI,aAAa,KAAK,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC;gBACrD,CAAC;qBAAM,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;oBAC/G,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,GAAe,EAAE,IAAY;IACvD,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhC,4CAA4C;QAC5C,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAClC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY;YAAE,OAAO;QAE3C,oCAAoC;QACpC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3D,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,SAAS,CAAC,cAAc,KAAK,CAAC,MAAM,0BAA0B,CAAC,CAAC;QAEhE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,wBAAwB;gBAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;gBAExC,uBAAuB;gBACvB,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACnD,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;oBACvB,SAAS,CAAC,WAAW,IAAI,uBAAuB,WAAW,CAAC,MAAM,SAAS,CAAC,CAAC;oBAC7E,gFAAgF;oBAChF,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE;wBAC7B,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,GAAG,CAAC,kBAAkB;wBACjC,OAAO,EAAE;4BACP,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,IAAA,SAAM,GAAE;4BACxB,MAAM,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;4BAC3C,OAAO,EAAE,WAAW;4BACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC;qBACF,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,SAAS,CAAC,4DAA4D,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBAED,wBAAwB;gBACxB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;wBAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;4BAC9C,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4BACxC,IAAI,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,4BAAmB,EAAE,CAAC;gCACpD,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gCACzD,IAAI,KAAK;oCAAE,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAChD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAClC,CAAC;AAED,6CAA6C;AAC7C,MAAM,cAAc,GAAG;IACrB,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC/C,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE;IAChD,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAC9C,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE;IAChD,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE;IACjD,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC9C,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE;CAClD,CAAC;AAEF;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAe,EAAE,KAAa;IACxD,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,IAAA,kBAAW,GAAE,CAAC;YAC3B,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,eAAM,CAAC,KAAK,gBAAgB,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrD,IAAI,IAAI,CAAC,IAAI;oBAAE,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,KAAK;oBAAE,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,gBAAgB,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,GAAG,CAAC,EAAE,CAAC,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,0BAA0B,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,YAAY,CAAC,GAAG,EAAE;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,GAAG,CAAC,kBAAkB;gBACjC,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YACH,GAAG,CAAC,KAAK,eAAM,CAAC,KAAK,uBAAuB,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,eAAe,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,iBAAiB,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC/C,GAAG,CAAC,iBAAiB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,iBAAiB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,iBAAiB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YACzG,GAAG,CAAC,EAAE,CAAC,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAA,sBAAc,EAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5D,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,iBAAiB,GAAG,CAAC,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,IAAA,wBAAgB,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3E,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,mBAAmB,GAAG,CAAC,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAA,qBAAa,EAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjD,GAAG,CAAC,GAAG,eAAM,CAAC,GAAG,qBAAqB,GAAG,CAAC,OAAO,GAAG,eAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,eAAM,CAAC,MAAM,iBAAiB,eAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACvD,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAC5C,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACvC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAC7C,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAC7C,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAC5C,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAC5C,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACvC,GAAG,CAAC,EAAE,CAAC,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD;YACE,OAAO,KAAK,CAAC,CAAC,kCAAkC;IACpD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAe;IAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO;IACjC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,eAAe,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAEvB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE5B,4BAA4B;QAC5B,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iDAAiD;QACjD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC5B,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7E,CAAC;gBACD,OAAO,CAAC,2BAA2B;YACrC,CAAC;YACD,iDAAiD;QACnD,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,0CAA0C;gBAC1C,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC;oBACrB,wCAAwC;oBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3B,OAAO;gBACT,CAAC;YACH,CAAC;YACD,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC1C,2CAA2C;YAC3C,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YAC1C,sBAAsB;YACtB,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC;QACzB,CAAC;QAED,yBAAyB;QACzB,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAe;IAC3C,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,GAAe;IACrC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,GAAG,CAAC,cAAc;QAAE,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,cAAc;QAAE,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,kBAAkB;QAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC;IACrD,IAAI,GAAG,CAAC,YAAY;QAAE,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC/C,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM;QAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtF,eAAe,EAAE,CAAC;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "minivibe",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.36",
|
|
4
4
|
"description": "CLI wrapper for Claude Code with mobile remote control via MiniVibe iOS app",
|
|
5
5
|
"author": "MiniVibe <hello@minivibeapp.com>",
|
|
6
6
|
"homepage": "https://github.com/minivibeapp/minivibe",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"prepublishOnly": "npm run build",
|
|
37
37
|
"test": "vitest run",
|
|
38
38
|
"test:watch": "vitest",
|
|
39
|
-
"typecheck": "tsc --noEmit"
|
|
39
|
+
"typecheck": "tsc --noEmit",
|
|
40
|
+
"dev": "npx tsx src/cli.ts"
|
|
40
41
|
},
|
|
41
42
|
"dependencies": {
|
|
42
43
|
"uuid": "^9.0.0",
|