@ai-support-agent/cli 0.0.22-beta.3 → 0.0.23-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/agent-transport.d.ts.map +1 -1
  2. package/dist/agent-transport.js +1 -0
  3. package/dist/agent-transport.js.map +1 -1
  4. package/dist/api-client.d.ts +2 -1
  5. package/dist/api-client.d.ts.map +1 -1
  6. package/dist/api-client.js +4 -0
  7. package/dist/api-client.js.map +1 -1
  8. package/dist/browser/browser-local-server.d.ts +54 -0
  9. package/dist/browser/browser-local-server.d.ts.map +1 -0
  10. package/dist/browser/browser-local-server.js +295 -0
  11. package/dist/browser/browser-local-server.js.map +1 -0
  12. package/dist/commands/chat-executor.d.ts +1 -0
  13. package/dist/commands/chat-executor.d.ts.map +1 -1
  14. package/dist/commands/chat-executor.js +5 -3
  15. package/dist/commands/chat-executor.js.map +1 -1
  16. package/dist/commands/claude-code-runner.d.ts +2 -0
  17. package/dist/commands/claude-code-runner.d.ts.map +1 -1
  18. package/dist/commands/claude-code-runner.js +4 -0
  19. package/dist/commands/claude-code-runner.js.map +1 -1
  20. package/dist/commands/index.d.ts +1 -0
  21. package/dist/commands/index.d.ts.map +1 -1
  22. package/dist/commands/index.js +1 -0
  23. package/dist/commands/index.js.map +1 -1
  24. package/dist/constants.d.ts +1 -0
  25. package/dist/constants.d.ts.map +1 -1
  26. package/dist/constants.js +1 -0
  27. package/dist/constants.js.map +1 -1
  28. package/dist/mcp/config-writer.d.ts +4 -0
  29. package/dist/mcp/config-writer.d.ts.map +1 -1
  30. package/dist/mcp/config-writer.js +5 -0
  31. package/dist/mcp/config-writer.js.map +1 -1
  32. package/dist/mcp/server.d.ts +2 -1
  33. package/dist/mcp/server.d.ts.map +1 -1
  34. package/dist/mcp/server.js +3 -1
  35. package/dist/mcp/server.js.map +1 -1
  36. package/dist/mcp/tools/browser/browser-action-log.d.ts +20 -0
  37. package/dist/mcp/tools/browser/browser-action-log.d.ts.map +1 -0
  38. package/dist/mcp/tools/browser/browser-action-log.js +46 -0
  39. package/dist/mcp/tools/browser/browser-action-log.js.map +1 -0
  40. package/dist/mcp/tools/browser/browser-proxy-session.d.ts +95 -0
  41. package/dist/mcp/tools/browser/browser-proxy-session.d.ts.map +1 -0
  42. package/dist/mcp/tools/browser/browser-proxy-session.js +210 -0
  43. package/dist/mcp/tools/browser/browser-proxy-session.js.map +1 -0
  44. package/dist/mcp/tools/browser/browser-security.d.ts +13 -0
  45. package/dist/mcp/tools/browser/browser-security.d.ts.map +1 -0
  46. package/dist/mcp/tools/browser/browser-security.js +27 -0
  47. package/dist/mcp/tools/browser/browser-security.js.map +1 -0
  48. package/dist/mcp/tools/browser/browser-session-manager.d.ts +50 -0
  49. package/dist/mcp/tools/browser/browser-session-manager.d.ts.map +1 -0
  50. package/dist/mcp/tools/browser/browser-session-manager.js +111 -0
  51. package/dist/mcp/tools/browser/browser-session-manager.js.map +1 -0
  52. package/dist/mcp/tools/browser/browser-session.d.ts +93 -0
  53. package/dist/mcp/tools/browser/browser-session.d.ts.map +1 -0
  54. package/dist/mcp/tools/browser/browser-session.js +254 -0
  55. package/dist/mcp/tools/browser/browser-session.js.map +1 -0
  56. package/dist/mcp/tools/browser/browser-types.d.ts +7 -0
  57. package/dist/mcp/tools/browser/browser-types.d.ts.map +1 -0
  58. package/dist/mcp/tools/browser/browser-types.js +9 -0
  59. package/dist/mcp/tools/browser/browser-types.js.map +1 -0
  60. package/dist/mcp/tools/browser/element-info.d.ts +38 -0
  61. package/dist/mcp/tools/browser/element-info.d.ts.map +1 -0
  62. package/dist/mcp/tools/browser/element-info.js +223 -0
  63. package/dist/mcp/tools/browser/element-info.js.map +1 -0
  64. package/dist/mcp/tools/browser/playwright-loader.d.ts +20 -0
  65. package/dist/mcp/tools/browser/playwright-loader.d.ts.map +1 -0
  66. package/dist/mcp/tools/browser/playwright-loader.js +50 -0
  67. package/dist/mcp/tools/browser/playwright-loader.js.map +1 -0
  68. package/dist/mcp/tools/browser.d.ts +15 -0
  69. package/dist/mcp/tools/browser.d.ts.map +1 -0
  70. package/dist/mcp/tools/browser.js +294 -0
  71. package/dist/mcp/tools/browser.js.map +1 -0
  72. package/dist/mcp/tools/mcp-response.d.ts +12 -1
  73. package/dist/mcp/tools/mcp-response.d.ts.map +1 -1
  74. package/dist/mcp/tools/mcp-response.js +9 -0
  75. package/dist/mcp/tools/mcp-response.js.map +1 -1
  76. package/dist/types/chat.d.ts +1 -0
  77. package/dist/types/chat.d.ts.map +1 -1
  78. package/dist/types/project.d.ts +20 -0
  79. package/dist/types/project.d.ts.map +1 -1
  80. package/dist/update-checker.d.ts.map +1 -1
  81. package/dist/update-checker.js +2 -1
  82. package/dist/update-checker.js.map +1 -1
  83. package/dist/vscode/vscode-tunnel-websocket.d.ts +54 -2
  84. package/dist/vscode/vscode-tunnel-websocket.d.ts.map +1 -1
  85. package/dist/vscode/vscode-tunnel-websocket.js +303 -0
  86. package/dist/vscode/vscode-tunnel-websocket.js.map +1 -1
  87. package/docker/Dockerfile +7 -0
  88. 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":"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"}
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;AAI3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAA;AAYpF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,aAAa,GACb,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,GACd,UAAU,GACV,cAAc,GACd,OAAO,GAEP,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,qBAAqB,GACrB,uBAAuB,GACvB,wBAAwB,GACxB,oBAAoB,GACpB,kBAAkB,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,cAAc,GACd,gBAAgB,GAChB,oBAAoB,GACpB,sBAAsB,GACtB,eAAe,GACf,UAAU,GACV,OAAO,GAEP,eAAe,GACf,eAAe,GACf,2BAA2B,GAC3B,oBAAoB,GACpB,iBAAiB,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACxF;AAKD;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,uBAAuB,CAAC,mBAAmB,CAAC;IAWnF,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAZ9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoE;IACxG,QAAQ,CAAC,qBAAqB,wBAA8B;IAC5D,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,gBAAgB,CAAI;gBAG1B,MAAM,EAAE,MAAM,EACG,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,YAAA;IAUtC;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B,SAAS,CAAC,eAAe,IAAI,SAAS;IAStC,sEAAsE;IACtE,OAAO,CAAC,8BAA8B,CAA6B;IAEnE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IA4BtE;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOhD,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAqEzD,SAAS,CAAC,YAAY,IAAI,IAAI;YAMhB,gBAAgB;IA6C9B,OAAO,CAAC,iBAAiB;YAQX,iBAAiB;IAoE/B,OAAO,CAAC,aAAa;IAqDrB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,sBAAsB;YAgBhB,iBAAiB;YA4DjB,kBAAkB;YAclB,qBAAqB;YAyBrB,mBAAmB;YAWnB,sBAAsB;YAWtB,mBAAmB;YAWnB,uBAAuB;YAWvB,uBAAuB;YAUvB,yBAAyB;YAWzB,0BAA0B;YAW1B,uBAAuB;YA4BvB,qBAAqB;IAUnC,OAAO,CAAC,OAAO;IA2Bf,OAAO,CAAC,IAAI;CAGb"}
@@ -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
@@ -104,6 +104,13 @@ ARG AGENT_VERSION=latest
104
104
  RUN npm install -g @anthropic-ai/claude-code @ai-support-agent/cli@${AGENT_VERSION} backlog-mcp-server \
105
105
  && npm cache clean --force
106
106
 
107
+ # Playwright (Chromium only) — install as peer of @ai-support-agent/cli so require('playwright') resolves
108
+ # 1. Install playwright package next to the CLI's node_modules
109
+ # 2. Install Chromium browser binary + OS dependencies (fonts, libX11, etc.)
110
+ RUN cd /usr/local/lib/node_modules/@ai-support-agent/cli \
111
+ && npm install playwright \
112
+ && npx playwright install --with-deps chromium
113
+
107
114
  # Fix npm cache/global directory permissions for runtime user (may run as non-root)
108
115
  # The npm cache and global lib are created as root during build; runtime updates need write access.
109
116
  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.22-beta.3",
3
+ "version": "0.0.23-beta.0",
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",