autodev-cli 1.4.48 → 1.4.50
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/out/commands/mcpOperate.js +150 -2
- package/out/commands/mcpOperate.js.map +1 -1
- package/out/fileBrowser.d.ts +21 -0
- package/out/fileBrowser.js +205 -0
- package/out/fileBrowser.js.map +1 -0
- package/out/git/gitRequest.d.ts +22 -0
- package/out/git/gitRequest.js +146 -0
- package/out/git/gitRequest.js.map +1 -0
- package/out/officeSocket.d.ts +6 -0
- package/out/officeSocket.js +6 -0
- package/out/officeSocket.js.map +1 -1
- package/out/rdp/manager.d.ts +30 -0
- package/out/rdp/manager.js +134 -0
- package/out/rdp/manager.js.map +1 -0
- package/out/vnc/manager.d.ts +22 -0
- package/out/vnc/manager.js +99 -0
- package/out/vnc/manager.js.map +1 -0
- package/out/webSocketPoller.d.ts +3 -10
- package/out/webSocketPoller.js +47 -417
- package/out/webSocketPoller.js.map +1 -1
- package/package.json +1 -1
|
@@ -43,6 +43,12 @@ const readline = __importStar(require("readline"));
|
|
|
43
43
|
const url_1 = require("url");
|
|
44
44
|
const settingsLoader_1 = require("../core/settingsLoader");
|
|
45
45
|
const officeSocket_1 = require("../officeSocket");
|
|
46
|
+
const fileBrowser_1 = require("../fileBrowser");
|
|
47
|
+
const gitRequest_1 = require("../git/gitRequest");
|
|
48
|
+
const manager_1 = require("../vnc/manager");
|
|
49
|
+
const manager_2 = require("../rdp/manager");
|
|
50
|
+
const projectMcp_1 = require("../core/projectMcp");
|
|
51
|
+
const configManager_1 = require("../configManager");
|
|
46
52
|
const version_1 = require("../version");
|
|
47
53
|
/**
|
|
48
54
|
* `autodev mcp-operate` — run a local stdio MCP server that lets a pure MCP
|
|
@@ -162,11 +168,24 @@ function mcpOperateCommand(program) {
|
|
|
162
168
|
.option('--url <url>', 'Operator MCP URL (…/api/office-mcp). Default: derived from the workspace binding.')
|
|
163
169
|
.option('--key <apiKey>', 'The character api_key (Bearer). Default: the workspace serverApiKey.')
|
|
164
170
|
.option('--no-socket', 'Do not open the presence WebSocket (stay on poll-based presence only).')
|
|
171
|
+
.option('--file-browser', 'Serve the office file browser for this MCP-only agent (read/write files in the workspace over the office file browser).')
|
|
172
|
+
.option('--git', 'Serve the office git panel for this MCP-only agent (status/diff/stage/commit/branch in the workspace over the office git panel).')
|
|
173
|
+
.option('--vnc', 'Serve office VNC remote-desktop sessions for this MCP-only agent (input forwarding + framebuffer streaming).')
|
|
174
|
+
.option('--rdp', 'Serve office RDP remote-desktop sessions for this MCP-only agent (input forwarding + framebuffer streaming).')
|
|
175
|
+
.option('--mcp-update', 'Honor mcp_update frames: sync remote-supplied MCP config into the workspace (relaunch to pick up spawn changes).')
|
|
165
176
|
.action(async (workspacePath, opts) => {
|
|
166
177
|
const cwd = workspacePath ? path.resolve(workspacePath) : process.cwd();
|
|
167
|
-
|
|
178
|
+
let settings = (0, settingsLoader_1.loadSettingsForRoot)(cwd);
|
|
168
179
|
const endpoint = opts.url || officeMcpUrl(settings.serverBaseUrl);
|
|
169
180
|
const key = opts.key || settings.serverApiKey || '';
|
|
181
|
+
// Feature gates: serve a capability when explicitly requested via flag OR
|
|
182
|
+
// when the bound workspace has it enabled (same flags a loop agent honours
|
|
183
|
+
// via settings). Mutable so a live mcp_update can refresh them from disk.
|
|
184
|
+
let fileBrowserEnabled = opts.fileBrowser === true || settings.enableFileBrowser === true;
|
|
185
|
+
let gitEnabled = opts.git === true || settings.gitEnabled === true;
|
|
186
|
+
let vncEnabled = opts.vnc === true || settings.vncEnabled === true;
|
|
187
|
+
let rdpEnabled = opts.rdp === true || settings.rdpEnabled === true;
|
|
188
|
+
let mcpUpdateEnabled = opts.mcpUpdate === true || settings.mcpUpdateEnabled === true;
|
|
170
189
|
if (!endpoint || !key) {
|
|
171
190
|
process.stderr.write('autodev mcp-operate: need --url and --key (or run inside a workspace bound to an office).\n');
|
|
172
191
|
process.exit(1);
|
|
@@ -212,6 +231,72 @@ function mcpOperateCommand(program) {
|
|
|
212
231
|
// connect, the stdio bridge keeps working and presence falls back to the
|
|
213
232
|
// server's poll heuristic.
|
|
214
233
|
let socket = null;
|
|
234
|
+
// ── VNC / RDP remote-desktop session managers ────────────────────────────
|
|
235
|
+
// Reuse the exact same session machinery the autodev loop uses. They reply
|
|
236
|
+
// to the office over the presence socket. Gated by --vnc/--rdp (or the
|
|
237
|
+
// bound workspace's vncEnabled/rdpEnabled), mirroring --file-browser.
|
|
238
|
+
const logErr = (m) => { process.stderr.write(m + '\n'); };
|
|
239
|
+
const vncManager = new manager_1.VncSessionManager((f) => socket?.sendFrame(f), logErr);
|
|
240
|
+
const rdpManager = new manager_2.RdpSessionManager((f) => socket?.sendFrame(f), logErr);
|
|
241
|
+
const applyRemoteDesktopSettings = () => {
|
|
242
|
+
vncManager.setEnabled(vncEnabled);
|
|
243
|
+
vncManager.setPassword(settings.vncPassword || undefined);
|
|
244
|
+
rdpManager.setEnabled(rdpEnabled);
|
|
245
|
+
rdpManager.setSettings({
|
|
246
|
+
host: settings.rdpHost || undefined,
|
|
247
|
+
port: settings.rdpPort ?? 3389,
|
|
248
|
+
username: settings.rdpUsername || undefined,
|
|
249
|
+
password: settings.rdpPassword || undefined,
|
|
250
|
+
domain: settings.rdpDomain || undefined,
|
|
251
|
+
guacWsUrl: settings.rdpGuacWsUrl || undefined,
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
applyRemoteDesktopSettings();
|
|
255
|
+
// Re-read the workspace settings from disk and recompute the mutable
|
|
256
|
+
// feature gates (an explicit CLI flag stays sticky — it can enable a
|
|
257
|
+
// capability the settings file leaves off). Used on live mcp_update, the
|
|
258
|
+
// bridge analog of the loop re-reading everything on its restart.
|
|
259
|
+
const reloadBridgeSettings = () => {
|
|
260
|
+
settings = (0, settingsLoader_1.loadSettingsForRoot)(cwd);
|
|
261
|
+
fileBrowserEnabled = opts.fileBrowser === true || settings.enableFileBrowser === true;
|
|
262
|
+
gitEnabled = opts.git === true || settings.gitEnabled === true;
|
|
263
|
+
vncEnabled = opts.vnc === true || settings.vncEnabled === true;
|
|
264
|
+
rdpEnabled = opts.rdp === true || settings.rdpEnabled === true;
|
|
265
|
+
mcpUpdateEnabled = opts.mcpUpdate === true || settings.mcpUpdateEnabled === true;
|
|
266
|
+
applyRemoteDesktopSettings();
|
|
267
|
+
};
|
|
268
|
+
// ── Live MCP-config reload (mcp_update frame) ────────────────────────────
|
|
269
|
+
// The loop restarts to pick up a new .mcp.json; a bridge can't restart, so
|
|
270
|
+
// it syncs the config to disk (gated by mcpUpdateEnabled) and logs that a
|
|
271
|
+
// relaunch is needed to spawn any newly-added stdio MCP servers. It also
|
|
272
|
+
// refreshes the bridge's own feature gates from disk (fileBrowser/git/…).
|
|
273
|
+
const handleMcpUpdate = (entries) => {
|
|
274
|
+
// Refresh feature gates from disk first — mirrors the loop re-reading
|
|
275
|
+
// settings on restart (a settings edit often accompanies an mcp_update).
|
|
276
|
+
reloadBridgeSettings();
|
|
277
|
+
if (!mcpUpdateEnabled) {
|
|
278
|
+
logErr('🔒 mcp_update ignored — mcpUpdateEnabled is off (set it in .autodev/settings.json or pass --mcp-update to allow)');
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
logErr('🔧 mcp_update received — validating and writing .mcp.json…');
|
|
282
|
+
const { safe, rejected } = (0, projectMcp_1.sanitizeRemoteMcpEntries)(entries);
|
|
283
|
+
if (rejected.length) {
|
|
284
|
+
logErr(`⚠️ mcp_update dropped ${rejected.length} unsafe entr${rejected.length === 1 ? 'y' : 'ies'}: ${rejected.join(', ')}`);
|
|
285
|
+
}
|
|
286
|
+
if (Object.keys(safe).length === 0) {
|
|
287
|
+
logErr('⚠️ mcp_update had no safe entries — not writing config.');
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
try {
|
|
291
|
+
(0, projectMcp_1.saveProjectUserMcp)(cwd, safe);
|
|
292
|
+
configManager_1.ConfigManager.syncProjectMcpServers(cwd, logErr);
|
|
293
|
+
void configManager_1.ConfigManager.reportProjectMcp(cwd, logErr);
|
|
294
|
+
logErr('✅ MCP config synced to .mcp.json, opencode.json, .vscode/mcp.json — relaunch `autodev mcp-operate` to spawn any newly-added MCP servers.');
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
logErr(`⚠️ MCP update failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
298
|
+
}
|
|
299
|
+
};
|
|
215
300
|
const startSocket = async () => {
|
|
216
301
|
if (opts.socket === false) {
|
|
217
302
|
return;
|
|
@@ -239,8 +324,69 @@ function mcpOperateCommand(program) {
|
|
|
239
324
|
}
|
|
240
325
|
socket = new officeSocket_1.OfficeSocket(wsUrl, key, slug, {
|
|
241
326
|
log: (l) => process.stderr.write(l + '\n'),
|
|
242
|
-
meta: { provider: 'mcp-operator', cliVersion: version_1.CLI_VERSION, fileBrowserEnabled
|
|
327
|
+
meta: { provider: 'mcp-operator', cliVersion: version_1.CLI_VERSION, fileBrowserEnabled, gitEnabled, vncEnabled, rdpEnabled },
|
|
243
328
|
onMessage: (msg) => {
|
|
329
|
+
const msgType = msg['type'];
|
|
330
|
+
// File-browser control frame from the office UI. Handle it and stop —
|
|
331
|
+
// it is not an office event to surface via describePush/notifications.
|
|
332
|
+
if (msgType === 'fb_request') {
|
|
333
|
+
const requestId = msg['requestId'];
|
|
334
|
+
const action = msg['action'];
|
|
335
|
+
if (requestId && action) {
|
|
336
|
+
(0, fileBrowser_1.handleFbRequest)({
|
|
337
|
+
root: cwd,
|
|
338
|
+
enabled: fileBrowserEnabled,
|
|
339
|
+
requestId,
|
|
340
|
+
action,
|
|
341
|
+
relPath: msg['path'] ?? '',
|
|
342
|
+
content: msg['content'],
|
|
343
|
+
newPath: msg['newPath'],
|
|
344
|
+
query: msg['query'],
|
|
345
|
+
sendFrame: (f) => socket?.sendFrame(f),
|
|
346
|
+
log: (m) => process.stderr.write(m + '\n'),
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
// Git-panel control frame from the office UI — same additive,
|
|
352
|
+
// early-return handling as fb_request. Gated by gitEnabled.
|
|
353
|
+
if (msgType === 'git_request') {
|
|
354
|
+
const requestId = msg['requestId'];
|
|
355
|
+
const action = msg['action'];
|
|
356
|
+
if (requestId && action) {
|
|
357
|
+
(0, gitRequest_1.handleGitRequest)({
|
|
358
|
+
root: cwd,
|
|
359
|
+
enabled: gitEnabled,
|
|
360
|
+
requestId,
|
|
361
|
+
action,
|
|
362
|
+
filePath: msg['path'],
|
|
363
|
+
staged: msg['staged'],
|
|
364
|
+
message: msg['message'],
|
|
365
|
+
branch: msg['branch'],
|
|
366
|
+
hash: msg['hash'],
|
|
367
|
+
sendFrame: (f) => socket?.sendFrame(f),
|
|
368
|
+
log: (m) => process.stderr.write(m + '\n'),
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
// VNC / RDP remote-desktop control frames — delegated to the shared
|
|
374
|
+
// session managers (same machinery as the loop). Each returns true
|
|
375
|
+
// when it consumed the frame; consumed frames are not office events.
|
|
376
|
+
if (msgType && vncManager.handleFrame(msgType, msg)) {
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
if (msgType && rdpManager.handleFrame(msgType, msg)) {
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
// Live MCP-config reload frame from the office.
|
|
383
|
+
if (msgType === 'mcp_update') {
|
|
384
|
+
const entries = msg['mcpServers'];
|
|
385
|
+
if (entries && typeof entries === 'object') {
|
|
386
|
+
handleMcpUpdate(entries);
|
|
387
|
+
}
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
244
390
|
const notice = describePush(msg);
|
|
245
391
|
if (notice) {
|
|
246
392
|
// Buffer for wait_for_events (the reliable real-time path)…
|
|
@@ -259,6 +405,8 @@ function mcpOperateCommand(program) {
|
|
|
259
405
|
let closed = false;
|
|
260
406
|
const maybeExit = () => {
|
|
261
407
|
if (closed && inflight === 0) {
|
|
408
|
+
vncManager.stopAll();
|
|
409
|
+
rdpManager.stopAll();
|
|
262
410
|
socket?.destroy();
|
|
263
411
|
// Flush any buffered stdout (e.g. the final reply on a pipe) before
|
|
264
412
|
// exiting, so the last frame is never clipped.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpOperate.js","sourceRoot":"","sources":["../../src/commands/mcpOperate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcpOperate.js","sourceRoot":"","sources":["../../src/commands/mcpOperate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface HandleFbRequestOptions {
|
|
2
|
+
/** Absolute workspace root, or null/undefined when none is configured. */
|
|
3
|
+
root: string | null | undefined;
|
|
4
|
+
/** Whether the file browser is enabled for this agent. */
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
requestId: string;
|
|
7
|
+
action: string;
|
|
8
|
+
relPath: string;
|
|
9
|
+
content?: string;
|
|
10
|
+
newPath?: string;
|
|
11
|
+
query?: string;
|
|
12
|
+
/** Send a frame back to the server (the caller's WS sendFrame). */
|
|
13
|
+
sendFrame: (frame: Record<string, unknown>) => void;
|
|
14
|
+
/** Optional logger (unused today, accepted for parity/future use). */
|
|
15
|
+
log?: (m: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Handle a file-browser request from the server (originated by the browser UI).
|
|
19
|
+
* Replies via `sendFrame({ type:'fb_response', requestId, ok, ...extra })`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function handleFbRequest(opts: HandleFbRequestOptions): void;
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.handleFbRequest = handleFbRequest;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const pathSafe_1 = require("./core/pathSafe");
|
|
40
|
+
/**
|
|
41
|
+
* Handle a file-browser request from the server (originated by the browser UI).
|
|
42
|
+
* Replies via `sendFrame({ type:'fb_response', requestId, ok, ...extra })`.
|
|
43
|
+
*/
|
|
44
|
+
function handleFbRequest(opts) {
|
|
45
|
+
const { requestId, action, relPath, content, newPath, query, sendFrame } = opts;
|
|
46
|
+
const respond = (ok, extra) => {
|
|
47
|
+
sendFrame({ type: 'fb_response', requestId, ok, ...extra });
|
|
48
|
+
};
|
|
49
|
+
if (!opts.enabled) {
|
|
50
|
+
respond(false, { error: 'File browser not enabled' });
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const root = opts.root;
|
|
54
|
+
if (!root) {
|
|
55
|
+
respond(false, { error: 'No workspace root configured' });
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Resolve and validate path is within workspace root. The root itself is
|
|
59
|
+
// permitted for read-only actions (list/search) but never for mutations.
|
|
60
|
+
// Containment is lexical AND canonical (realpath) — a workspace symlink
|
|
61
|
+
// pointing outside must not let a remote fb_request read/write host files.
|
|
62
|
+
const resolveSafe = (rel, allowRoot) => (0, pathSafe_1.resolveWithinRoot)(root, rel, allowRoot);
|
|
63
|
+
const MUTATING = new Set(['write', 'delete', 'rename', 'mkdir']);
|
|
64
|
+
const allowRoot = !MUTATING.has(action);
|
|
65
|
+
const absPath = resolveSafe(relPath, allowRoot);
|
|
66
|
+
if (!absPath) {
|
|
67
|
+
respond(false, {
|
|
68
|
+
error: allowRoot ? 'Path outside workspace' : 'Refusing to modify workspace root',
|
|
69
|
+
});
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
switch (action) {
|
|
74
|
+
case 'list': {
|
|
75
|
+
const entries = fs.readdirSync(absPath, { withFileTypes: true }).map(e => {
|
|
76
|
+
const stat = (() => { try {
|
|
77
|
+
return fs.statSync(path.join(absPath, e.name));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return null;
|
|
81
|
+
} })();
|
|
82
|
+
return {
|
|
83
|
+
name: e.name,
|
|
84
|
+
type: e.isDirectory() ? 'dir' : 'file',
|
|
85
|
+
size: stat?.size ?? 0,
|
|
86
|
+
mtime: stat?.mtimeMs ?? 0,
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
// Dirs first, then files; both alphabetical
|
|
90
|
+
entries.sort((a, b) => {
|
|
91
|
+
if (a.type !== b.type) {
|
|
92
|
+
return a.type === 'dir' ? -1 : 1;
|
|
93
|
+
}
|
|
94
|
+
return a.name.localeCompare(b.name);
|
|
95
|
+
});
|
|
96
|
+
respond(true, { entries });
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case 'read': {
|
|
100
|
+
const stat = fs.statSync(absPath);
|
|
101
|
+
const MAX_BYTES = 1_048_576; // 1 MB
|
|
102
|
+
if (stat.size > MAX_BYTES) {
|
|
103
|
+
respond(false, { error: `File too large (${stat.size} bytes, limit 1 MB)` });
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
// Binary detection: read first 512 bytes and check for null bytes
|
|
107
|
+
const sample = Buffer.allocUnsafe(Math.min(512, stat.size));
|
|
108
|
+
const fd = fs.openSync(absPath, 'r');
|
|
109
|
+
fs.readSync(fd, sample, 0, sample.length, 0);
|
|
110
|
+
fs.closeSync(fd);
|
|
111
|
+
const isBinary = sample.includes(0x00);
|
|
112
|
+
if (isBinary) {
|
|
113
|
+
respond(false, { error: 'Binary file — cannot display' });
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
const fileContent = fs.readFileSync(absPath, 'utf8');
|
|
117
|
+
respond(true, { content: fileContent });
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
case 'write': {
|
|
121
|
+
if (content === undefined) {
|
|
122
|
+
respond(false, { error: 'No content provided' });
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
fs.writeFileSync(absPath, content, 'utf8');
|
|
126
|
+
respond(true);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'delete': {
|
|
130
|
+
fs.rmSync(absPath, { recursive: true, force: true });
|
|
131
|
+
respond(true);
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
case 'rename': {
|
|
135
|
+
if (!newPath) {
|
|
136
|
+
respond(false, { error: 'No newPath provided' });
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
const absNewPath = resolveSafe(newPath, false);
|
|
140
|
+
if (!absNewPath) {
|
|
141
|
+
respond(false, { error: 'newPath outside workspace' });
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
fs.renameSync(absPath, absNewPath);
|
|
145
|
+
respond(true);
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case 'download': {
|
|
149
|
+
const stat = fs.statSync(absPath);
|
|
150
|
+
const MAX_DOWNLOAD_BYTES = 25 * 1_048_576; // 25 MB — base64 ~1.33x in heap
|
|
151
|
+
if (stat.size > MAX_DOWNLOAD_BYTES) {
|
|
152
|
+
respond(false, { error: `File too large (${stat.size} bytes, limit 25 MB)` });
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
const buf = fs.readFileSync(absPath);
|
|
156
|
+
respond(true, { base64: buf.toString('base64') });
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
case 'mkdir': {
|
|
160
|
+
fs.mkdirSync(absPath, { recursive: true });
|
|
161
|
+
respond(true);
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
case 'search': {
|
|
165
|
+
const rawQuery = (query ?? '').toLowerCase().trim();
|
|
166
|
+
if (!rawQuery) {
|
|
167
|
+
respond(true, { results: [] });
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
const results = [];
|
|
171
|
+
const walk = (dir, relDir, depth) => {
|
|
172
|
+
if (depth > 8 || results.length >= 300)
|
|
173
|
+
return;
|
|
174
|
+
let dirents;
|
|
175
|
+
try {
|
|
176
|
+
dirents = fs.readdirSync(dir, { withFileTypes: true });
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
for (const e of dirents) {
|
|
182
|
+
if (results.length >= 300)
|
|
183
|
+
break;
|
|
184
|
+
const rel = relDir ? `${relDir}/${e.name}` : e.name;
|
|
185
|
+
if (e.name.toLowerCase().includes(rawQuery)) {
|
|
186
|
+
results.push({ path: rel, name: e.name, type: e.isDirectory() ? 'dir' : 'file' });
|
|
187
|
+
}
|
|
188
|
+
if (e.isDirectory() && !e.name.startsWith('.') && e.name !== 'node_modules' && e.name !== 'vendor') {
|
|
189
|
+
walk(path.join(dir, e.name), rel, depth + 1);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
walk(absPath, '', 0);
|
|
194
|
+
respond(true, { results });
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
default:
|
|
198
|
+
respond(false, { error: `Unknown action: ${action}` });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
respond(false, { error: String(err) });
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=fileBrowser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileBrowser.js","sourceRoot":"","sources":["../src/fileBrowser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface HandleGitRequestOptions {
|
|
2
|
+
/** Absolute workspace root, or null/undefined when none is configured. */
|
|
3
|
+
root: string | null | undefined;
|
|
4
|
+
/** Whether the git panel is enabled for this agent. */
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
requestId: string;
|
|
7
|
+
action: string;
|
|
8
|
+
filePath?: string;
|
|
9
|
+
staged?: boolean;
|
|
10
|
+
message?: string;
|
|
11
|
+
branch?: string;
|
|
12
|
+
hash?: string;
|
|
13
|
+
/** Send a frame back to the server (the caller's WS sendFrame). */
|
|
14
|
+
sendFrame: (frame: Record<string, unknown>) => void;
|
|
15
|
+
/** Optional logger (unused today, accepted for parity/future use). */
|
|
16
|
+
log?: (m: string) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Handle a git-panel request from the server (originated by the browser UI).
|
|
20
|
+
* Replies via `sendFrame({ type:'git_response', requestId, ok, ...extra })`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function handleGitRequest(opts: HandleGitRequestOptions): void;
|