@ai-support-agent/cli 0.0.22 → 0.0.23-beta.1
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/agent-transport.d.ts.map +1 -1
- package/dist/agent-transport.js +1 -0
- package/dist/agent-transport.js.map +1 -1
- package/dist/api-client.d.ts +2 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +4 -0
- package/dist/api-client.js.map +1 -1
- package/dist/browser/browser-local-server.d.ts +54 -0
- package/dist/browser/browser-local-server.d.ts.map +1 -0
- package/dist/browser/browser-local-server.js +295 -0
- package/dist/browser/browser-local-server.js.map +1 -0
- package/dist/commands/chat-executor.d.ts +1 -0
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +5 -3
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/claude-code-runner.d.ts +2 -0
- package/dist/commands/claude-code-runner.d.ts.map +1 -1
- package/dist/commands/claude-code-runner.js +4 -0
- package/dist/commands/claude-code-runner.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/mcp/config-writer.d.ts +4 -0
- package/dist/mcp/config-writer.d.ts.map +1 -1
- package/dist/mcp/config-writer.js +5 -0
- package/dist/mcp/config-writer.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +3 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/browser/browser-action-log.d.ts +20 -0
- package/dist/mcp/tools/browser/browser-action-log.d.ts.map +1 -0
- package/dist/mcp/tools/browser/browser-action-log.js +46 -0
- package/dist/mcp/tools/browser/browser-action-log.js.map +1 -0
- package/dist/mcp/tools/browser/browser-proxy-session.d.ts +95 -0
- package/dist/mcp/tools/browser/browser-proxy-session.d.ts.map +1 -0
- package/dist/mcp/tools/browser/browser-proxy-session.js +210 -0
- package/dist/mcp/tools/browser/browser-proxy-session.js.map +1 -0
- package/dist/mcp/tools/browser/browser-security.d.ts +13 -0
- package/dist/mcp/tools/browser/browser-security.d.ts.map +1 -0
- package/dist/mcp/tools/browser/browser-security.js +27 -0
- package/dist/mcp/tools/browser/browser-security.js.map +1 -0
- package/dist/mcp/tools/browser/browser-session-manager.d.ts +50 -0
- package/dist/mcp/tools/browser/browser-session-manager.d.ts.map +1 -0
- package/dist/mcp/tools/browser/browser-session-manager.js +111 -0
- package/dist/mcp/tools/browser/browser-session-manager.js.map +1 -0
- package/dist/mcp/tools/browser/browser-session.d.ts +93 -0
- package/dist/mcp/tools/browser/browser-session.d.ts.map +1 -0
- package/dist/mcp/tools/browser/browser-session.js +254 -0
- package/dist/mcp/tools/browser/browser-session.js.map +1 -0
- package/dist/mcp/tools/browser/browser-types.d.ts +7 -0
- package/dist/mcp/tools/browser/browser-types.d.ts.map +1 -0
- package/dist/mcp/tools/browser/browser-types.js +9 -0
- package/dist/mcp/tools/browser/browser-types.js.map +1 -0
- package/dist/mcp/tools/browser/element-info.d.ts +38 -0
- package/dist/mcp/tools/browser/element-info.d.ts.map +1 -0
- package/dist/mcp/tools/browser/element-info.js +223 -0
- package/dist/mcp/tools/browser/element-info.js.map +1 -0
- package/dist/mcp/tools/browser/playwright-loader.d.ts +20 -0
- package/dist/mcp/tools/browser/playwright-loader.d.ts.map +1 -0
- package/dist/mcp/tools/browser/playwright-loader.js +50 -0
- package/dist/mcp/tools/browser/playwright-loader.js.map +1 -0
- package/dist/mcp/tools/browser.d.ts +15 -0
- package/dist/mcp/tools/browser.d.ts.map +1 -0
- package/dist/mcp/tools/browser.js +294 -0
- package/dist/mcp/tools/browser.js.map +1 -0
- package/dist/mcp/tools/mcp-response.d.ts +12 -1
- package/dist/mcp/tools/mcp-response.d.ts.map +1 -1
- package/dist/mcp/tools/mcp-response.js +9 -0
- package/dist/mcp/tools/mcp-response.js.map +1 -1
- package/dist/types/chat.d.ts +1 -0
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/project.d.ts +20 -0
- package/dist/types/project.d.ts.map +1 -1
- package/dist/update-checker.d.ts.map +1 -1
- package/dist/update-checker.js +2 -1
- package/dist/update-checker.js.map +1 -1
- package/dist/vscode/vscode-tunnel-websocket.d.ts +54 -2
- package/dist/vscode/vscode-tunnel-websocket.d.ts.map +1 -1
- package/dist/vscode/vscode-tunnel-websocket.js +303 -0
- package/dist/vscode/vscode-tunnel-websocket.js.map +1 -1
- package/docker/Dockerfile +47 -18
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-tunnel-websocket.d.ts","sourceRoot":"","sources":["../../src/vscode/vscode-tunnel-websocket.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAA;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"vscode-tunnel-websocket.d.ts","sourceRoot":"","sources":["../../src/vscode/vscode-tunnel-websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,17 +6,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.VsCodeTunnelWebSocket = void 0;
|
|
7
7
|
const ws_1 = __importDefault(require("ws"));
|
|
8
8
|
const base_websocket_1 = require("../base-websocket");
|
|
9
|
+
const browser_local_server_1 = require("../browser/browser-local-server");
|
|
9
10
|
const logger_1 = require("../logger");
|
|
10
11
|
const utils_1 = require("../utils");
|
|
12
|
+
const browser_session_manager_1 = require("../mcp/tools/browser/browser-session-manager");
|
|
13
|
+
const browser_security_1 = require("../mcp/tools/browser/browser-security");
|
|
11
14
|
const constants_1 = require("./constants");
|
|
12
15
|
const vscode_server_1 = require("./vscode-server");
|
|
13
16
|
const vscode_http_proxy_1 = require("./vscode-http-proxy");
|
|
14
17
|
const vscode_ws_proxy_1 = require("./vscode-ws-proxy");
|
|
18
|
+
/** Live view frame interval in milliseconds (5 FPS) */
|
|
19
|
+
const LIVE_VIEW_INTERVAL_MS = 200;
|
|
15
20
|
/**
|
|
16
21
|
* VS Code トンネル WebSocket
|
|
17
22
|
*
|
|
18
23
|
* TerminalWebSocket と同じパターンで BaseWebSocketConnection を継承し、
|
|
19
24
|
* API Server とのトンネル WebSocket 経由で code-server へのアクセスを提供する。
|
|
25
|
+
* ブラウザライブビューメッセージも同じ WebSocket 接続で処理する。
|
|
20
26
|
*/
|
|
21
27
|
class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
22
28
|
token;
|
|
@@ -26,6 +32,9 @@ class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
|
26
32
|
vsCodeServer = null;
|
|
27
33
|
wsProxy = null;
|
|
28
34
|
portForwardSessions = new Map();
|
|
35
|
+
browserSessionManager = new browser_session_manager_1.BrowserSessionManager();
|
|
36
|
+
browserLocalServer = null;
|
|
37
|
+
browserLocalPort = 0;
|
|
29
38
|
constructor(apiUrl, token, agentId, projectDir) {
|
|
30
39
|
super({
|
|
31
40
|
maxReconnectRetries: constants_1.VSCODE_WS_MAX_RECONNECT_RETRIES,
|
|
@@ -37,6 +46,12 @@ class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
|
37
46
|
this.projectDir = projectDir;
|
|
38
47
|
this.wsUrl = (0, utils_1.buildWsUrl)(apiUrl, '/ws/agent-vscode');
|
|
39
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the port of the browser local HTTP server (0 if not started).
|
|
51
|
+
*/
|
|
52
|
+
getBrowserLocalPort() {
|
|
53
|
+
return this.browserLocalPort;
|
|
54
|
+
}
|
|
40
55
|
createWebSocket() {
|
|
41
56
|
return new ws_1.default(this.wsUrl, {
|
|
42
57
|
headers: {
|
|
@@ -45,11 +60,43 @@ class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
|
45
60
|
},
|
|
46
61
|
});
|
|
47
62
|
}
|
|
63
|
+
/** Promise that resolves when the browser local server has started */
|
|
64
|
+
browserLocalServerStartPromise = null;
|
|
48
65
|
onOpen(_ws, resolve) {
|
|
49
66
|
logger_1.logger.info('[vscode-ws] Connected to VS Code tunnel WebSocket');
|
|
50
67
|
this.reconnectAttemptsRef.current = 0;
|
|
68
|
+
// Start browser local server for inter-process communication
|
|
69
|
+
if (!this.browserLocalServer) {
|
|
70
|
+
this.browserLocalServer = new browser_local_server_1.BrowserLocalServer(this.browserSessionManager);
|
|
71
|
+
// Forward action log entries from chat-initiated operations to the Web UI
|
|
72
|
+
this.browserLocalServer.onActionLog = (notification) => {
|
|
73
|
+
this.send({
|
|
74
|
+
type: 'browser_action_log',
|
|
75
|
+
sessionId: notification.sessionId,
|
|
76
|
+
entries: [notification.entry],
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
this.browserLocalServerStartPromise = this.browserLocalServer.start()
|
|
80
|
+
.then((port) => {
|
|
81
|
+
this.browserLocalPort = port;
|
|
82
|
+
logger_1.logger.info(`[vscode-ws] Browser local server started on port ${port}`);
|
|
83
|
+
})
|
|
84
|
+
.catch((err) => {
|
|
85
|
+
logger_1.logger.error(`[vscode-ws] Failed to start browser local server: ${(0, utils_1.getErrorMessage)(err)}`);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
51
88
|
resolve();
|
|
52
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Wait for the browser local server to be ready and return its port.
|
|
92
|
+
* Returns 0 if the server failed to start or is not initialized.
|
|
93
|
+
*/
|
|
94
|
+
async waitForBrowserLocalPort() {
|
|
95
|
+
if (this.browserLocalServerStartPromise) {
|
|
96
|
+
await this.browserLocalServerStartPromise;
|
|
97
|
+
}
|
|
98
|
+
return this.browserLocalPort;
|
|
99
|
+
}
|
|
53
100
|
onParsedMessage(msg) {
|
|
54
101
|
switch (msg.type) {
|
|
55
102
|
case 'vscode_open':
|
|
@@ -77,6 +124,43 @@ class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
|
77
124
|
logger_1.logger.warn(`[vscode-ws] Server error (session=${msg.sessionId ?? 'none'}): ${errMsg}`);
|
|
78
125
|
break;
|
|
79
126
|
}
|
|
127
|
+
// Browser messages
|
|
128
|
+
case 'browser_open':
|
|
129
|
+
this.handleBrowserOpen(msg);
|
|
130
|
+
break;
|
|
131
|
+
case 'browser_close':
|
|
132
|
+
this.handleBrowserClose(msg);
|
|
133
|
+
break;
|
|
134
|
+
case 'browser_navigate':
|
|
135
|
+
this.handleBrowserNavigate(msg);
|
|
136
|
+
break;
|
|
137
|
+
case 'browser_go_back':
|
|
138
|
+
this.handleBrowserGoBack(msg);
|
|
139
|
+
break;
|
|
140
|
+
case 'browser_go_forward':
|
|
141
|
+
this.handleBrowserGoForward(msg);
|
|
142
|
+
break;
|
|
143
|
+
case 'browser_reload':
|
|
144
|
+
this.handleBrowserReload(msg);
|
|
145
|
+
break;
|
|
146
|
+
case 'browser_mouse_click':
|
|
147
|
+
this.handleBrowserMouseClick(msg);
|
|
148
|
+
break;
|
|
149
|
+
case 'browser_mouse_wheel':
|
|
150
|
+
this.handleBrowserMouseWheel(msg);
|
|
151
|
+
break;
|
|
152
|
+
case 'browser_keyboard_type':
|
|
153
|
+
this.handleBrowserKeyboardType(msg);
|
|
154
|
+
break;
|
|
155
|
+
case 'browser_keyboard_press':
|
|
156
|
+
this.handleBrowserKeyboardPress(msg);
|
|
157
|
+
break;
|
|
158
|
+
case 'browser_screenshot':
|
|
159
|
+
this.handleBrowserScreenshot(msg);
|
|
160
|
+
break;
|
|
161
|
+
case 'browser_viewport':
|
|
162
|
+
this.handleBrowserViewport(msg);
|
|
163
|
+
break;
|
|
80
164
|
default:
|
|
81
165
|
logger_1.logger.debug(`[vscode-ws] Unknown message type: ${msg.type}`);
|
|
82
166
|
}
|
|
@@ -84,6 +168,7 @@ class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
|
84
168
|
onDisconnect() {
|
|
85
169
|
this.cleanup();
|
|
86
170
|
}
|
|
171
|
+
// --- VS Code handlers ---
|
|
87
172
|
async handleVsCodeOpen(msg) {
|
|
88
173
|
const sessionId = msg.sessionId;
|
|
89
174
|
if (!sessionId) {
|
|
@@ -272,7 +357,225 @@ class VsCodeTunnelWebSocket extends base_websocket_1.BaseWebSocketConnection {
|
|
|
272
357
|
this.send({ type: 'port_forward_stopped', sessionId });
|
|
273
358
|
}
|
|
274
359
|
}
|
|
360
|
+
// --- Browser handlers ---
|
|
361
|
+
async handleBrowserOpen(msg) {
|
|
362
|
+
const sessionId = msg.sessionId;
|
|
363
|
+
if (!sessionId) {
|
|
364
|
+
this.send({ type: 'error', message: 'Missing sessionId' });
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
try {
|
|
368
|
+
const session = await this.browserSessionManager.getOrCreate(sessionId);
|
|
369
|
+
if (msg.conversationId) {
|
|
370
|
+
this.browserSessionManager.linkConversation(msg.conversationId, sessionId);
|
|
371
|
+
}
|
|
372
|
+
// Navigate to URL if provided
|
|
373
|
+
if (msg.url) {
|
|
374
|
+
const validation = (0, browser_security_1.validateUrl)(msg.url);
|
|
375
|
+
if (validation.valid) {
|
|
376
|
+
const page = await session.getPage();
|
|
377
|
+
await page.goto(msg.url, { waitUntil: 'domcontentloaded', timeout: 30000 });
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
// Ensure page is initialized
|
|
382
|
+
await session.getPage();
|
|
383
|
+
}
|
|
384
|
+
// Start live view streaming
|
|
385
|
+
session.startLiveView(LIVE_VIEW_INTERVAL_MS, (base64) => {
|
|
386
|
+
this.send({
|
|
387
|
+
type: 'browser_frame',
|
|
388
|
+
sessionId,
|
|
389
|
+
body: base64,
|
|
390
|
+
timestamp: Date.now(),
|
|
391
|
+
currentUrl: session.getCurrentUrl(),
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
const currentUrl = session.getCurrentUrl();
|
|
395
|
+
const pageTitle = await session.getPageTitle();
|
|
396
|
+
this.send({
|
|
397
|
+
type: 'browser_ready',
|
|
398
|
+
sessionId,
|
|
399
|
+
conversationId: msg.conversationId,
|
|
400
|
+
currentUrl,
|
|
401
|
+
pageTitle,
|
|
402
|
+
});
|
|
403
|
+
logger_1.logger.info(`[vscode-ws] Browser session opened: ${sessionId}`);
|
|
404
|
+
}
|
|
405
|
+
catch (error) {
|
|
406
|
+
logger_1.logger.error(`[vscode-ws] Failed to open browser session ${sessionId}: ${(0, utils_1.getErrorMessage)(error)}`);
|
|
407
|
+
this.send({
|
|
408
|
+
type: 'browser_stopped',
|
|
409
|
+
sessionId,
|
|
410
|
+
reason: `Failed to open browser: ${(0, utils_1.getErrorMessage)(error)}`,
|
|
411
|
+
message: `Failed to open browser: ${(0, utils_1.getErrorMessage)(error)}`,
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
async handleBrowserClose(msg) {
|
|
416
|
+
const sessionId = msg.sessionId;
|
|
417
|
+
if (!sessionId)
|
|
418
|
+
return;
|
|
419
|
+
const session = this.browserSessionManager.get(sessionId);
|
|
420
|
+
if (session) {
|
|
421
|
+
session.stopLiveView();
|
|
422
|
+
await this.browserSessionManager.close(sessionId);
|
|
423
|
+
}
|
|
424
|
+
this.send({ type: 'browser_stopped', sessionId, reason: 'closed' });
|
|
425
|
+
logger_1.logger.info(`[vscode-ws] Browser session closed: ${sessionId}`);
|
|
426
|
+
}
|
|
427
|
+
async handleBrowserNavigate(msg) {
|
|
428
|
+
const sessionId = msg.sessionId;
|
|
429
|
+
if (!sessionId || !msg.url)
|
|
430
|
+
return;
|
|
431
|
+
const session = this.browserSessionManager.get(sessionId);
|
|
432
|
+
if (!session) {
|
|
433
|
+
this.send({ type: 'error', sessionId, message: 'Browser session not found' });
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
const validation = (0, browser_security_1.validateUrl)(msg.url);
|
|
437
|
+
if (!validation.valid) {
|
|
438
|
+
this.send({ type: 'error', sessionId, message: validation.reason ?? 'Invalid URL' });
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
try {
|
|
442
|
+
const page = await session.getPage();
|
|
443
|
+
await page.goto(msg.url, { waitUntil: 'domcontentloaded', timeout: 30000 });
|
|
444
|
+
session.actionLog.add('direct', 'navigate', msg.url);
|
|
445
|
+
}
|
|
446
|
+
catch (error) {
|
|
447
|
+
this.send({ type: 'error', sessionId, message: `Navigation failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
async handleBrowserGoBack(msg) {
|
|
451
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
452
|
+
if (!session)
|
|
453
|
+
return;
|
|
454
|
+
try {
|
|
455
|
+
await session.goBack();
|
|
456
|
+
}
|
|
457
|
+
catch (error) {
|
|
458
|
+
logger_1.logger.warn(`[vscode-ws] goBack failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
459
|
+
this.send({ type: 'error', sessionId: msg.sessionId, message: `goBack failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
async handleBrowserGoForward(msg) {
|
|
463
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
464
|
+
if (!session)
|
|
465
|
+
return;
|
|
466
|
+
try {
|
|
467
|
+
await session.goForward();
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
logger_1.logger.warn(`[vscode-ws] goForward failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
471
|
+
this.send({ type: 'error', sessionId: msg.sessionId, message: `goForward failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
async handleBrowserReload(msg) {
|
|
475
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
476
|
+
if (!session)
|
|
477
|
+
return;
|
|
478
|
+
try {
|
|
479
|
+
await session.reload();
|
|
480
|
+
}
|
|
481
|
+
catch (error) {
|
|
482
|
+
logger_1.logger.warn(`[vscode-ws] reload failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
483
|
+
this.send({ type: 'error', sessionId: msg.sessionId, message: `reload failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
async handleBrowserMouseClick(msg) {
|
|
487
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
488
|
+
if (!session || msg.x === undefined || msg.y === undefined)
|
|
489
|
+
return;
|
|
490
|
+
try {
|
|
491
|
+
await session.executeMouseClick(msg.x, msg.y, msg.button, msg.clickCount);
|
|
492
|
+
}
|
|
493
|
+
catch (error) {
|
|
494
|
+
logger_1.logger.warn(`[vscode-ws] mouseClick failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
495
|
+
this.send({ type: 'error', sessionId: msg.sessionId, message: `mouseClick failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
async handleBrowserMouseWheel(msg) {
|
|
499
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
500
|
+
if (!session || msg.deltaX === undefined || msg.deltaY === undefined)
|
|
501
|
+
return;
|
|
502
|
+
try {
|
|
503
|
+
await session.executeMouseWheel(msg.deltaX, msg.deltaY);
|
|
504
|
+
}
|
|
505
|
+
catch (error) {
|
|
506
|
+
logger_1.logger.warn(`[vscode-ws] mouseWheel failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
async handleBrowserKeyboardType(msg) {
|
|
510
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
511
|
+
if (!session || !msg.text)
|
|
512
|
+
return;
|
|
513
|
+
try {
|
|
514
|
+
await session.executeKeyboardType(msg.text);
|
|
515
|
+
}
|
|
516
|
+
catch (error) {
|
|
517
|
+
logger_1.logger.warn(`[vscode-ws] keyboardType failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
518
|
+
this.send({ type: 'error', sessionId: msg.sessionId, message: `keyboardType failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
async handleBrowserKeyboardPress(msg) {
|
|
522
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
523
|
+
if (!session || !msg.key)
|
|
524
|
+
return;
|
|
525
|
+
try {
|
|
526
|
+
await session.executeKeyboardPress(msg.key, msg.modifiers);
|
|
527
|
+
}
|
|
528
|
+
catch (error) {
|
|
529
|
+
logger_1.logger.warn(`[vscode-ws] keyboardPress failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
530
|
+
this.send({ type: 'error', sessionId: msg.sessionId, message: `keyboardPress failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
async handleBrowserScreenshot(msg) {
|
|
534
|
+
const sessionId = msg.sessionId;
|
|
535
|
+
if (!sessionId)
|
|
536
|
+
return;
|
|
537
|
+
const session = this.browserSessionManager.get(sessionId);
|
|
538
|
+
if (!session) {
|
|
539
|
+
this.send({ type: 'error', sessionId, message: 'Browser session not found' });
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
try {
|
|
543
|
+
const buffer = await session.screenshot(true);
|
|
544
|
+
const base64 = buffer.toString('base64');
|
|
545
|
+
const currentUrl = session.getCurrentUrl();
|
|
546
|
+
const pageTitle = await session.getPageTitle();
|
|
547
|
+
this.send({
|
|
548
|
+
type: 'browser_screenshot_result',
|
|
549
|
+
sessionId,
|
|
550
|
+
body: base64,
|
|
551
|
+
currentUrl,
|
|
552
|
+
pageTitle,
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
catch (error) {
|
|
556
|
+
this.send({ type: 'error', sessionId, message: `Screenshot failed: ${(0, utils_1.getErrorMessage)(error)}` });
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
async handleBrowserViewport(msg) {
|
|
560
|
+
const session = msg.sessionId ? this.browserSessionManager.get(msg.sessionId) : undefined;
|
|
561
|
+
if (!session || !msg.width || !msg.height)
|
|
562
|
+
return;
|
|
563
|
+
try {
|
|
564
|
+
await session.setViewport(msg.width, msg.height);
|
|
565
|
+
}
|
|
566
|
+
catch (error) {
|
|
567
|
+
logger_1.logger.warn(`[vscode-ws] setViewport failed (session=${msg.sessionId}): ${(0, utils_1.getErrorMessage)(error)}`);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
275
570
|
cleanup() {
|
|
571
|
+
// ブラウザセッションのクリーンアップ
|
|
572
|
+
void this.browserSessionManager.closeAll();
|
|
573
|
+
// ブラウザローカルサーバーのクリーンアップ
|
|
574
|
+
if (this.browserLocalServer) {
|
|
575
|
+
void this.browserLocalServer.stop();
|
|
576
|
+
this.browserLocalServer = null;
|
|
577
|
+
this.browserLocalPort = 0;
|
|
578
|
+
}
|
|
276
579
|
// ポートフォワードセッションのクリーンアップ
|
|
277
580
|
for (const [, pfSession] of this.portForwardSessions) {
|
|
278
581
|
pfSession.wsProxy.closeAll();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-tunnel-websocket.js","sourceRoot":"","sources":["../../src/vscode/vscode-tunnel-websocket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vscode-tunnel-websocket.js","sourceRoot":"","sources":["../../src/vscode/vscode-tunnel-websocket.ts"],"names":[],"mappings":"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"}
|
package/docker/Dockerfile
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
FROM node:24-slim
|
|
2
2
|
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Layer 1: OS packages (most stable — rarely changes)
|
|
5
|
+
# =============================================================================
|
|
3
6
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
4
7
|
ca-certificates curl unzip git openssh-client vim \
|
|
5
8
|
default-mysql-client postgresql-client \
|
|
@@ -22,7 +25,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
22
25
|
|
|
23
26
|
ENV LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
|
|
24
27
|
|
|
25
|
-
#
|
|
28
|
+
# =============================================================================
|
|
29
|
+
# Layer 2: Python tools (stable — version-pinned)
|
|
30
|
+
# =============================================================================
|
|
26
31
|
RUN pip3 install --no-cache-dir --break-system-packages \
|
|
27
32
|
# PDF: read, write, merge, split, extract text
|
|
28
33
|
'pypdf>=6.7.2,<7' \
|
|
@@ -39,17 +44,9 @@ RUN pip3 install --no-cache-dir --break-system-packages \
|
|
|
39
44
|
# Character encoding detection (for legacy files)
|
|
40
45
|
chardet==5.*
|
|
41
46
|
|
|
42
|
-
#
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
mammoth@1 \
|
|
46
|
-
# Excel (.xlsx) read/write (SheetJS community edition)
|
|
47
|
-
xlsx@0.18 \
|
|
48
|
-
# CSV parsing and generation
|
|
49
|
-
csv-parse@5 csv-stringify@6 \
|
|
50
|
-
# Markdown to HTML and vice versa
|
|
51
|
-
marked@15 turndown@7 \
|
|
52
|
-
&& npm cache clean --force
|
|
47
|
+
# =============================================================================
|
|
48
|
+
# Layer 3: System CLIs and tools (stable — external binary downloads)
|
|
49
|
+
# =============================================================================
|
|
53
50
|
|
|
54
51
|
# AWS CLI v2
|
|
55
52
|
RUN curl -fSL "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o /tmp/awscliv2.zip \
|
|
@@ -78,32 +75,64 @@ RUN ARCH=$(dpkg --print-architecture) && \
|
|
|
78
75
|
fi
|
|
79
76
|
ENV PATH="$PATH:/opt/mssql-tools18/bin"
|
|
80
77
|
|
|
81
|
-
# GitHub CLI
|
|
78
|
+
# GitHub CLI + GitLab CLI (combined to reduce apt-get update calls)
|
|
82
79
|
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
|
|
83
80
|
-o /usr/share/keyrings/githubcli-archive-keyring.gpg \
|
|
84
81
|
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
|
|
85
82
|
> /etc/apt/sources.list.d/github-cli.list \
|
|
86
83
|
&& apt-get update \
|
|
87
84
|
&& apt-get install -y --no-install-recommends gh \
|
|
88
|
-
&& rm -rf /var/lib/apt/lists/*
|
|
89
|
-
|
|
90
|
-
# GitLab CLI
|
|
91
|
-
RUN ARCH=$(dpkg --print-architecture) \
|
|
85
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
86
|
+
&& ARCH=$(dpkg --print-architecture) \
|
|
92
87
|
&& GLAB_VERSION=$(curl -sL "https://gitlab.com/api/v4/projects/34675721/releases/permalink/latest" | sed -n 's/.*"tag_name":"v\([^"]*\)".*/\1/p') \
|
|
93
88
|
&& curl -fsSL "https://gitlab.com/gitlab-org/cli/-/releases/v${GLAB_VERSION}/downloads/glab_${GLAB_VERSION}_linux_${ARCH}.deb" \
|
|
94
89
|
-o /tmp/glab.deb \
|
|
95
90
|
&& dpkg -i /tmp/glab.deb \
|
|
96
91
|
&& rm /tmp/glab.deb
|
|
97
92
|
|
|
93
|
+
# =============================================================================
|
|
94
|
+
# Layer 4: Node.js global tools (stable — version-pinned)
|
|
95
|
+
# =============================================================================
|
|
96
|
+
RUN npm install -g \
|
|
97
|
+
# Word (.docx) to HTML/markdown conversion
|
|
98
|
+
mammoth@1 \
|
|
99
|
+
# Excel (.xlsx) read/write (SheetJS community edition)
|
|
100
|
+
xlsx@0.18 \
|
|
101
|
+
# CSV parsing and generation
|
|
102
|
+
csv-parse@5 csv-stringify@6 \
|
|
103
|
+
# Markdown to HTML and vice versa
|
|
104
|
+
marked@15 turndown@7 \
|
|
105
|
+
&& npm cache clean --force
|
|
106
|
+
|
|
98
107
|
# code-server (VS Code Server)
|
|
99
108
|
RUN curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/usr/local \
|
|
100
109
|
&& code-server --version
|
|
101
110
|
|
|
102
|
-
#
|
|
111
|
+
# Playwright: install Chromium browser binary + OS dependencies (fonts, libX11, etc.)
|
|
112
|
+
# Browser binary is architecture-independent and rarely changes, so cache it before npm packages.
|
|
113
|
+
# The playwright npm package will be installed later as peer of @ai-support-agent/cli.
|
|
114
|
+
# Use /opt/playwright-browsers so all users (root, node, arbitrary UID) can access the browser.
|
|
115
|
+
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/playwright-browsers
|
|
116
|
+
RUN npx playwright install --with-deps chromium \
|
|
117
|
+
&& chmod -R 755 /opt/playwright-browsers
|
|
118
|
+
|
|
119
|
+
# =============================================================================
|
|
120
|
+
# Layer 5: Application packages (changes on every version bump)
|
|
121
|
+
# ARG placed here so layers above remain cached when AGENT_VERSION changes.
|
|
122
|
+
# =============================================================================
|
|
103
123
|
ARG AGENT_VERSION=latest
|
|
104
124
|
RUN npm install -g @anthropic-ai/claude-code @ai-support-agent/cli@${AGENT_VERSION} backlog-mcp-server \
|
|
105
125
|
&& npm cache clean --force
|
|
106
126
|
|
|
127
|
+
# Install playwright npm package as peer of @ai-support-agent/cli so require('playwright') resolves.
|
|
128
|
+
# Browser binary is already installed above; this only adds the Node.js bindings (~3MB).
|
|
129
|
+
RUN cd /usr/local/lib/node_modules/@ai-support-agent/cli \
|
|
130
|
+
&& npm install playwright
|
|
131
|
+
|
|
132
|
+
# =============================================================================
|
|
133
|
+
# Layer 6: Permissions and runtime setup (lightweight, changes rarely)
|
|
134
|
+
# =============================================================================
|
|
135
|
+
|
|
107
136
|
# Fix npm cache/global directory permissions for runtime user (may run as non-root)
|
|
108
137
|
# The npm cache and global lib are created as root during build; runtime updates need write access.
|
|
109
138
|
RUN chmod -R 777 /usr/local/lib/node_modules \
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-support-agent/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23-beta.1",
|
|
4
4
|
"description": "AI Support Agent CLI client",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
"ws": "^8.19.0"
|
|
47
47
|
},
|
|
48
48
|
"optionalDependencies": {
|
|
49
|
-
"node-pty": "^1.1.0"
|
|
49
|
+
"node-pty": "^1.1.0",
|
|
50
|
+
"playwright": "^1.58.2"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
52
53
|
"@types/jest": "^30.0.0",
|