@ai-support-agent/cli 0.0.22 → 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.
- 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 +7 -0
- package/package.json +3 -2
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Browser MCP tools — headless browser navigation and interaction.
|
|
4
|
+
*
|
|
5
|
+
* Phase 1: browser_navigate, browser_close
|
|
6
|
+
* Phase 2: browser_click, browser_fill, browser_get_text, browser_login
|
|
7
|
+
* Phase 3: browser_open_session, browser_close_session, browser_set_variable, browser_get_variable, browser_list_variables
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.registerBrowserTools = registerBrowserTools;
|
|
11
|
+
const zod_1 = require("zod");
|
|
12
|
+
const logger_1 = require("../../logger");
|
|
13
|
+
const browser_proxy_session_1 = require("./browser/browser-proxy-session");
|
|
14
|
+
const browser_security_1 = require("./browser/browser-security");
|
|
15
|
+
const browser_session_1 = require("./browser/browser-session");
|
|
16
|
+
const browser_session_manager_1 = require("./browser/browser-session-manager");
|
|
17
|
+
const playwright_loader_1 = require("./browser/playwright-loader");
|
|
18
|
+
const mcp_response_1 = require("./mcp-response");
|
|
19
|
+
/**
|
|
20
|
+
* Get the current browser session, using the environment variable or the manager's first session.
|
|
21
|
+
* When running in a child process (MCP server), uses the local HTTP proxy if available.
|
|
22
|
+
*/
|
|
23
|
+
function getActiveSession(sessionManager, fallbackSession) {
|
|
24
|
+
const browserSessionId = process.env.AI_SUPPORT_BROWSER_SESSION_ID;
|
|
25
|
+
const localPort = process.env.AI_SUPPORT_BROWSER_LOCAL_PORT;
|
|
26
|
+
if (browserSessionId) {
|
|
27
|
+
// First try in-process session (main process context)
|
|
28
|
+
const session = sessionManager.get(browserSessionId);
|
|
29
|
+
if (session)
|
|
30
|
+
return session;
|
|
31
|
+
// If local port is set, use proxy session (child process context)
|
|
32
|
+
if (localPort) {
|
|
33
|
+
logger_1.logger.debug(`[browser] Using proxy session: sessionId=${browserSessionId}, port=${localPort}`);
|
|
34
|
+
return new browser_proxy_session_1.BrowserProxySession(`http://127.0.0.1:${localPort}`, browserSessionId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
// Fall back to the default singleton session
|
|
38
|
+
return fallbackSession;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Register all browser tools on the MCP server.
|
|
42
|
+
*/
|
|
43
|
+
function registerBrowserTools(server, apiClient, sessionManager) {
|
|
44
|
+
// Skip registration entirely if Playwright is not installed
|
|
45
|
+
if (!(0, playwright_loader_1.isPlaywrightAvailable)()) {
|
|
46
|
+
logger_1.logger.debug('[browser] Playwright not installed, skipping browser tool registration');
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const defaultSession = new browser_session_1.BrowserSession();
|
|
50
|
+
const manager = sessionManager ?? new browser_session_manager_1.BrowserSessionManager();
|
|
51
|
+
registerBrowserNavigateTool(server, defaultSession, manager);
|
|
52
|
+
registerBrowserCloseTool(server, defaultSession, manager);
|
|
53
|
+
registerBrowserClickTool(server, defaultSession, manager);
|
|
54
|
+
registerBrowserFillTool(server, defaultSession, manager);
|
|
55
|
+
registerBrowserGetTextTool(server, defaultSession, manager);
|
|
56
|
+
registerBrowserLoginTool(server, defaultSession, manager, apiClient);
|
|
57
|
+
registerBrowserSetVariableTool(server, defaultSession, manager);
|
|
58
|
+
registerBrowserGetVariableTool(server, defaultSession, manager);
|
|
59
|
+
registerBrowserListVariablesTool(server, defaultSession, manager);
|
|
60
|
+
}
|
|
61
|
+
function registerBrowserNavigateTool(server, defaultSession, manager) {
|
|
62
|
+
server.tool('browser_navigate', 'Navigate to a URL and take a screenshot. Returns the page screenshot, title, and URL.', {
|
|
63
|
+
url: zod_1.z.string().describe('URL to navigate to'),
|
|
64
|
+
waitForSelector: zod_1.z.string().optional().describe('CSS selector to wait for before taking screenshot'),
|
|
65
|
+
waitForTimeout: zod_1.z.number().optional().describe('Additional wait time in ms (max 10000)'),
|
|
66
|
+
fullPage: zod_1.z.boolean().optional().default(true).describe('Take full-page screenshot (default: true)'),
|
|
67
|
+
viewport: zod_1.z.object({
|
|
68
|
+
width: zod_1.z.number().min(320).max(3840),
|
|
69
|
+
height: zod_1.z.number().min(240).max(2160),
|
|
70
|
+
}).optional().describe('Viewport size (default: 1280x720)'),
|
|
71
|
+
}, async ({ url, waitForSelector, waitForTimeout, fullPage, viewport }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
72
|
+
const validation = (0, browser_security_1.validateUrl)(url);
|
|
73
|
+
if (!validation.valid) {
|
|
74
|
+
return (0, mcp_response_1.mcpErrorResponse)(validation.reason);
|
|
75
|
+
}
|
|
76
|
+
const session = getActiveSession(manager, defaultSession);
|
|
77
|
+
logger_1.logger.debug(`[browser] Navigating to: ${url}`);
|
|
78
|
+
if (session instanceof browser_proxy_session_1.BrowserProxySession) {
|
|
79
|
+
const result = await session.navigate(url, { waitForSelector, waitForTimeout, fullPage: fullPage ?? true });
|
|
80
|
+
const base64 = result.screenshot.toString('base64');
|
|
81
|
+
session.actionLog.add('chat', 'navigate', url);
|
|
82
|
+
return (0, mcp_response_1.mcpTextImageResponse)(`Page: ${result.title}\nURL: ${result.url}`, base64, 'image/png');
|
|
83
|
+
}
|
|
84
|
+
if (viewport) {
|
|
85
|
+
await session.setViewport(viewport.width, viewport.height);
|
|
86
|
+
}
|
|
87
|
+
const page = await session.getPage();
|
|
88
|
+
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 });
|
|
89
|
+
if (waitForSelector) {
|
|
90
|
+
await page.waitForSelector(waitForSelector, { timeout: 10000 });
|
|
91
|
+
}
|
|
92
|
+
if (waitForTimeout) {
|
|
93
|
+
const clampedTimeout = Math.min(waitForTimeout, 10000);
|
|
94
|
+
await page.waitForTimeout(clampedTimeout);
|
|
95
|
+
}
|
|
96
|
+
const title = await page.title();
|
|
97
|
+
const currentUrl = page.url();
|
|
98
|
+
const screenshotBuffer = await session.screenshot(fullPage ?? true);
|
|
99
|
+
const base64 = screenshotBuffer.toString('base64');
|
|
100
|
+
session.actionLog.add('chat', 'navigate', url);
|
|
101
|
+
return (0, mcp_response_1.mcpTextImageResponse)(`Page: ${title}\nURL: ${currentUrl}`, base64, 'image/png');
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
function registerBrowserCloseTool(server, defaultSession, manager) {
|
|
105
|
+
server.tool('browser_close', 'Close the browser session and free resources.', {}, async () => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
106
|
+
const session = getActiveSession(manager, defaultSession);
|
|
107
|
+
if (!session.isActive()) {
|
|
108
|
+
return (0, mcp_response_1.mcpTextResponse)('No active browser session.');
|
|
109
|
+
}
|
|
110
|
+
// Proxy sessions cannot be closed from MCP child process
|
|
111
|
+
if (session instanceof browser_proxy_session_1.BrowserProxySession) {
|
|
112
|
+
return (0, mcp_response_1.mcpTextResponse)('Browser session is managed by the main process.');
|
|
113
|
+
}
|
|
114
|
+
await session.close();
|
|
115
|
+
return (0, mcp_response_1.mcpTextResponse)('Browser session closed.');
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
function registerBrowserClickTool(server, defaultSession, manager) {
|
|
119
|
+
server.tool('browser_click', 'Click an element on the page. Optionally wait for navigation and take a screenshot.', {
|
|
120
|
+
selector: zod_1.z.string().describe('CSS selector of the element to click'),
|
|
121
|
+
waitForNavigation: zod_1.z.boolean().optional().default(false).describe('Wait for navigation after click'),
|
|
122
|
+
screenshot: zod_1.z.boolean().optional().default(true).describe('Take screenshot after click (default: true)'),
|
|
123
|
+
}, async ({ selector, waitForNavigation, screenshot }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
124
|
+
const session = getActiveSession(manager, defaultSession);
|
|
125
|
+
if (!session.isActive()) {
|
|
126
|
+
return (0, mcp_response_1.mcpErrorResponse)('No active browser session. Use browser_navigate first.');
|
|
127
|
+
}
|
|
128
|
+
logger_1.logger.debug(`[browser] Clicking: ${selector}`);
|
|
129
|
+
if (session instanceof browser_proxy_session_1.BrowserProxySession) {
|
|
130
|
+
const result = await session.click(selector, { waitForNavigation: waitForNavigation ?? false, screenshot: screenshot ?? true });
|
|
131
|
+
const statusText = `Clicked: ${selector}\nPage: ${result.title}\nURL: ${result.url}`;
|
|
132
|
+
session.actionLog.add('chat', 'click', selector);
|
|
133
|
+
if (result.screenshot) {
|
|
134
|
+
return (0, mcp_response_1.mcpTextImageResponse)(statusText, result.screenshot.toString('base64'), 'image/png');
|
|
135
|
+
}
|
|
136
|
+
return (0, mcp_response_1.mcpTextResponse)(statusText);
|
|
137
|
+
}
|
|
138
|
+
const page = await session.getPage();
|
|
139
|
+
if (waitForNavigation) {
|
|
140
|
+
await Promise.all([
|
|
141
|
+
page.waitForNavigation({ timeout: 30000 }).catch(() => { }),
|
|
142
|
+
page.click(selector, { timeout: 10000 }),
|
|
143
|
+
]);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
await page.click(selector, { timeout: 10000 });
|
|
147
|
+
}
|
|
148
|
+
const title = await page.title();
|
|
149
|
+
const currentUrl = page.url();
|
|
150
|
+
const statusText = `Clicked: ${selector}\nPage: ${title}\nURL: ${currentUrl}`;
|
|
151
|
+
session.actionLog.add('chat', 'click', selector);
|
|
152
|
+
if (screenshot) {
|
|
153
|
+
const screenshotBuffer = await session.screenshot(true);
|
|
154
|
+
const base64 = screenshotBuffer.toString('base64');
|
|
155
|
+
return (0, mcp_response_1.mcpTextImageResponse)(statusText, base64, 'image/png');
|
|
156
|
+
}
|
|
157
|
+
return (0, mcp_response_1.mcpTextResponse)(statusText);
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
function registerBrowserFillTool(server, defaultSession, manager) {
|
|
161
|
+
server.tool('browser_fill', 'Fill a form field with a value.', {
|
|
162
|
+
selector: zod_1.z.string().describe('CSS selector of the input field'),
|
|
163
|
+
value: zod_1.z.string().describe('Value to fill'),
|
|
164
|
+
screenshot: zod_1.z.boolean().optional().default(false).describe('Take screenshot after fill'),
|
|
165
|
+
}, async ({ selector, value, screenshot }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
166
|
+
const session = getActiveSession(manager, defaultSession);
|
|
167
|
+
if (!session.isActive()) {
|
|
168
|
+
return (0, mcp_response_1.mcpErrorResponse)('No active browser session. Use browser_navigate first.');
|
|
169
|
+
}
|
|
170
|
+
logger_1.logger.debug(`[browser] Filling: ${selector}`);
|
|
171
|
+
if (session instanceof browser_proxy_session_1.BrowserProxySession) {
|
|
172
|
+
const screenshotBuf = await session.fill(selector, value, screenshot ?? false);
|
|
173
|
+
session.actionLog.add('chat', 'fill', selector);
|
|
174
|
+
if (screenshotBuf) {
|
|
175
|
+
return (0, mcp_response_1.mcpTextImageResponse)(`Filled: ${selector}`, screenshotBuf.toString('base64'), 'image/png');
|
|
176
|
+
}
|
|
177
|
+
return (0, mcp_response_1.mcpTextResponse)(`Filled: ${selector}`);
|
|
178
|
+
}
|
|
179
|
+
const page = await session.getPage();
|
|
180
|
+
await page.fill(selector, value, { timeout: 10000 });
|
|
181
|
+
session.actionLog.add('chat', 'fill', selector);
|
|
182
|
+
if (screenshot) {
|
|
183
|
+
const screenshotBuffer = await session.screenshot(true);
|
|
184
|
+
const base64 = screenshotBuffer.toString('base64');
|
|
185
|
+
return (0, mcp_response_1.mcpTextImageResponse)(`Filled: ${selector}`, base64, 'image/png');
|
|
186
|
+
}
|
|
187
|
+
return (0, mcp_response_1.mcpTextResponse)(`Filled: ${selector}`);
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
function registerBrowserGetTextTool(server, defaultSession, manager) {
|
|
191
|
+
server.tool('browser_get_text', 'Get text content from the page or a specific element.', {
|
|
192
|
+
selector: zod_1.z.string().optional().describe('CSS selector (default: body)'),
|
|
193
|
+
}, async ({ selector }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
194
|
+
const session = getActiveSession(manager, defaultSession);
|
|
195
|
+
if (!session.isActive()) {
|
|
196
|
+
return (0, mcp_response_1.mcpErrorResponse)('No active browser session. Use browser_navigate first.');
|
|
197
|
+
}
|
|
198
|
+
const target = selector ?? 'body';
|
|
199
|
+
logger_1.logger.debug(`[browser] Getting text: ${target}`);
|
|
200
|
+
if (session instanceof browser_proxy_session_1.BrowserProxySession) {
|
|
201
|
+
const text = await session.getText(target);
|
|
202
|
+
return (0, mcp_response_1.mcpTextResponse)(text);
|
|
203
|
+
}
|
|
204
|
+
const page = await session.getPage();
|
|
205
|
+
const text = await page.locator(target).innerText({ timeout: 10000 });
|
|
206
|
+
// Truncate to 50KB to avoid overwhelming the context
|
|
207
|
+
const maxLength = 50 * 1024;
|
|
208
|
+
const truncated = text.length > maxLength ? text.substring(0, maxLength) + '\n... (truncated)' : text;
|
|
209
|
+
return (0, mcp_response_1.mcpTextResponse)(truncated);
|
|
210
|
+
}));
|
|
211
|
+
}
|
|
212
|
+
function registerBrowserLoginTool(server, defaultSession, manager, apiClient) {
|
|
213
|
+
server.tool('browser_login', 'Navigate to a website and retrieve saved login credentials. Returns a screenshot of the page along with username/password. Use browser_fill and browser_click to complete the login.', {
|
|
214
|
+
credentialName: zod_1.z.string().describe('Name of the browser credential (BROWSER_AUTH# prefix is added automatically)'),
|
|
215
|
+
}, async ({ credentialName }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
216
|
+
logger_1.logger.debug(`[browser] Logging in with credential: ${credentialName}`);
|
|
217
|
+
const session = getActiveSession(manager, defaultSession);
|
|
218
|
+
// Fetch credentials from API
|
|
219
|
+
const credentials = await apiClient.getBrowserCredentials(credentialName);
|
|
220
|
+
const validation = (0, browser_security_1.validateUrl)(credentials.baseUrl);
|
|
221
|
+
if (!validation.valid) {
|
|
222
|
+
return (0, mcp_response_1.mcpErrorResponse)(validation.reason);
|
|
223
|
+
}
|
|
224
|
+
let title;
|
|
225
|
+
let currentUrl;
|
|
226
|
+
let base64;
|
|
227
|
+
if (session instanceof browser_proxy_session_1.BrowserProxySession) {
|
|
228
|
+
const result = await session.navigate(credentials.baseUrl);
|
|
229
|
+
title = result.title;
|
|
230
|
+
currentUrl = result.url;
|
|
231
|
+
base64 = result.screenshot.toString('base64');
|
|
232
|
+
session.actionLog.add('chat', 'login', credentialName);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Navigate to base URL
|
|
236
|
+
const page = await session.getPage();
|
|
237
|
+
await page.goto(credentials.baseUrl, { waitUntil: 'domcontentloaded', timeout: 30000 });
|
|
238
|
+
title = await page.title();
|
|
239
|
+
currentUrl = page.url();
|
|
240
|
+
const screenshotBuffer = await session.screenshot(true);
|
|
241
|
+
base64 = screenshotBuffer.toString('base64');
|
|
242
|
+
session.actionLog.add('chat', 'login', credentialName);
|
|
243
|
+
}
|
|
244
|
+
let statusText = `Login page loaded.\nPage: ${title}\nURL: ${currentUrl}\n\nCredentials:\n- Username: ${credentials.username}\n- Password: [provided, use browser_fill to enter]\n\nUse browser_fill to enter the username and password into the appropriate fields, then browser_click to submit the form.`;
|
|
245
|
+
if (credentials.promptText) {
|
|
246
|
+
statusText += `\n\nAdditional instructions: ${credentials.promptText}`;
|
|
247
|
+
}
|
|
248
|
+
if (credentials.customFields && Object.keys(credentials.customFields).length > 0) {
|
|
249
|
+
statusText += `\n\nCustom fields: ${JSON.stringify(credentials.customFields)}`;
|
|
250
|
+
}
|
|
251
|
+
return {
|
|
252
|
+
content: [
|
|
253
|
+
{ type: 'text', text: statusText },
|
|
254
|
+
{ type: 'image', data: base64, mimeType: 'image/png' },
|
|
255
|
+
{ type: 'text', text: `__CREDENTIALS__\nusername: ${credentials.username}\npassword: ${credentials.password}` },
|
|
256
|
+
],
|
|
257
|
+
};
|
|
258
|
+
}));
|
|
259
|
+
}
|
|
260
|
+
// --- Session variable tools ---
|
|
261
|
+
function registerBrowserSetVariableTool(server, defaultSession, manager) {
|
|
262
|
+
server.tool('browser_set_variable', 'Set a temporary variable in the current browser session. Variables are session-scoped and lost when the session closes.', {
|
|
263
|
+
name: zod_1.z.string().describe('Variable name'),
|
|
264
|
+
value: zod_1.z.string().describe('Variable value'),
|
|
265
|
+
}, async ({ name, value }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
266
|
+
const session = getActiveSession(manager, defaultSession);
|
|
267
|
+
session.variables.set(name, value);
|
|
268
|
+
return (0, mcp_response_1.mcpTextResponse)(`Variable set: ${name}`);
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
function registerBrowserGetVariableTool(server, defaultSession, manager) {
|
|
272
|
+
server.tool('browser_get_variable', 'Get the value of a temporary variable from the current browser session.', {
|
|
273
|
+
name: zod_1.z.string().describe('Variable name'),
|
|
274
|
+
}, async ({ name }) => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
275
|
+
const session = getActiveSession(manager, defaultSession);
|
|
276
|
+
const value = session.variables.get(name);
|
|
277
|
+
if (value === undefined) {
|
|
278
|
+
return (0, mcp_response_1.mcpErrorResponse)(`Variable not found: ${name}`);
|
|
279
|
+
}
|
|
280
|
+
return (0, mcp_response_1.mcpTextResponse)(value);
|
|
281
|
+
}));
|
|
282
|
+
}
|
|
283
|
+
function registerBrowserListVariablesTool(server, defaultSession, manager) {
|
|
284
|
+
server.tool('browser_list_variables', 'List all temporary variables in the current browser session.', {}, async () => (0, mcp_response_1.withMcpErrorHandling)(async () => {
|
|
285
|
+
const session = getActiveSession(manager, defaultSession);
|
|
286
|
+
const entries = Array.from(session.variables.entries());
|
|
287
|
+
if (entries.length === 0) {
|
|
288
|
+
return (0, mcp_response_1.mcpTextResponse)('No variables set.');
|
|
289
|
+
}
|
|
290
|
+
const text = entries.map(([k, v]) => `${k}=${v}`).join('\n');
|
|
291
|
+
return (0, mcp_response_1.mcpTextResponse)(text);
|
|
292
|
+
}));
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/mcp/tools/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { getErrorMessage } from '../../utils';
|
|
2
2
|
export { getErrorMessage };
|
|
3
|
-
|
|
3
|
+
type McpContentItem = {
|
|
4
|
+
type: 'text';
|
|
5
|
+
text: string;
|
|
6
|
+
} | {
|
|
7
|
+
type: 'image';
|
|
8
|
+
data: string;
|
|
9
|
+
mimeType: string;
|
|
10
|
+
};
|
|
11
|
+
export type McpToolResult = ReturnType<typeof mcpTextResponse> | ReturnType<typeof mcpErrorResponse> | ReturnType<typeof mcpImageResponse> | ReturnType<typeof mcpTextImageResponse>;
|
|
4
12
|
export declare function mcpTextResponse(text: string): {
|
|
5
13
|
content: {
|
|
6
14
|
type: "text";
|
|
@@ -21,6 +29,9 @@ export declare function mcpImageResponse(base64Data: string, mimeType: string):
|
|
|
21
29
|
mimeType: string;
|
|
22
30
|
}[];
|
|
23
31
|
};
|
|
32
|
+
export declare function mcpTextImageResponse(text: string, base64Data: string, mimeType: string): {
|
|
33
|
+
content: McpContentItem[];
|
|
34
|
+
};
|
|
24
35
|
/**
|
|
25
36
|
* MCP ツールハンドラのエラーハンドリングラッパー。
|
|
26
37
|
* ツール実装関数を受け取り、例外発生時に `mcpErrorResponse` へ変換して返す。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-response.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/mcp-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,MAAM,MAAM,aAAa,GACrB,UAAU,CAAC,OAAO,eAAe,CAAC,GAClC,UAAU,CAAC,OAAO,gBAAgB,CAAC,GACnC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-response.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/mcp-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,KAAK,cAAc,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,MAAM,aAAa,GACrB,UAAU,CAAC,OAAO,eAAe,CAAC,GAClC,UAAU,CAAC,OAAO,gBAAgB,CAAC,GACnC,UAAU,CAAC,OAAO,gBAAgB,CAAC,GACnC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE3C,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM;;;;;EAE3C;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM;;;;;;EAE/C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;EAEpE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;aAK9E,cAAc,EAAE;EAExB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,GAC/B,OAAO,CAAC,aAAa,CAAC,CAMxB"}
|
|
@@ -4,6 +4,7 @@ exports.getErrorMessage = void 0;
|
|
|
4
4
|
exports.mcpTextResponse = mcpTextResponse;
|
|
5
5
|
exports.mcpErrorResponse = mcpErrorResponse;
|
|
6
6
|
exports.mcpImageResponse = mcpImageResponse;
|
|
7
|
+
exports.mcpTextImageResponse = mcpTextImageResponse;
|
|
7
8
|
exports.withMcpErrorHandling = withMcpErrorHandling;
|
|
8
9
|
const utils_1 = require("../../utils");
|
|
9
10
|
Object.defineProperty(exports, "getErrorMessage", { enumerable: true, get: function () { return utils_1.getErrorMessage; } });
|
|
@@ -16,6 +17,14 @@ function mcpErrorResponse(message) {
|
|
|
16
17
|
function mcpImageResponse(base64Data, mimeType) {
|
|
17
18
|
return { content: [{ type: 'image', data: base64Data, mimeType }] };
|
|
18
19
|
}
|
|
20
|
+
function mcpTextImageResponse(text, base64Data, mimeType) {
|
|
21
|
+
return {
|
|
22
|
+
content: [
|
|
23
|
+
{ type: 'text', text },
|
|
24
|
+
{ type: 'image', data: base64Data, mimeType },
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
19
28
|
/**
|
|
20
29
|
* MCP ツールハンドラのエラーハンドリングラッパー。
|
|
21
30
|
* ツール実装関数を受け取り、例外発生時に `mcpErrorResponse` へ変換して返す。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-response.js","sourceRoot":"","sources":["../../../src/mcp/tools/mcp-response.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mcp-response.js","sourceRoot":"","sources":["../../../src/mcp/tools/mcp-response.ts"],"names":[],"mappings":";;;AAcA,0CAEC;AAED,4CAEC;AAED,4CAEC;AAED,oDAOC;AAeD,oDAQC;AAxDD,uCAA6C;AAEpC,gGAFA,uBAAe,OAEA;AAYxB,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AACvD,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAA;AACpG,CAAC;AAED,SAAgB,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;IACnE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAA;AAC9E,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAY,EAAE,UAAkB,EAAE,QAAgB;IACrF,OAAO;QACL,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;SACnC;KACtB,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,oBAAoB,CACxC,EAAgC;IAEhC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;AACH,CAAC"}
|
package/dist/types/chat.d.ts
CHANGED
package/dist/types/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,WAAW,GACX,aAAa,GACb,MAAM,GACN,OAAO,GACP,QAAQ,GACR,iBAAiB,CAAA;AAErB,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB"}
|
package/dist/types/project.d.ts
CHANGED
|
@@ -89,6 +89,16 @@ export interface ProjectConfigResponse {
|
|
|
89
89
|
environment?: string;
|
|
90
90
|
}>;
|
|
91
91
|
};
|
|
92
|
+
browser?: {
|
|
93
|
+
enabled: boolean;
|
|
94
|
+
credentials: Array<{
|
|
95
|
+
credentialId: string;
|
|
96
|
+
name: string;
|
|
97
|
+
baseUrl: string;
|
|
98
|
+
environment?: string;
|
|
99
|
+
description?: string;
|
|
100
|
+
}>;
|
|
101
|
+
};
|
|
92
102
|
}
|
|
93
103
|
export interface DbCredentials {
|
|
94
104
|
name: string;
|
|
@@ -121,6 +131,16 @@ export interface SshCredentials {
|
|
|
121
131
|
authType: string;
|
|
122
132
|
privateKey: string;
|
|
123
133
|
}
|
|
134
|
+
export interface BrowserCredentials {
|
|
135
|
+
credentialId: string;
|
|
136
|
+
baseUrl: string;
|
|
137
|
+
username: string;
|
|
138
|
+
password: string;
|
|
139
|
+
environment?: string;
|
|
140
|
+
description?: string;
|
|
141
|
+
promptText?: string;
|
|
142
|
+
customFields?: Record<string, string>;
|
|
143
|
+
}
|
|
124
144
|
export interface CachedProjectConfig {
|
|
125
145
|
cachedAt: string;
|
|
126
146
|
configHash: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI5D;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAS3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CA0BnD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAQxE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAyBvE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAUlD;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAQzC;AAqCD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B/C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAwB1D"}
|
package/dist/update-checker.js
CHANGED
|
@@ -45,6 +45,7 @@ exports.performUpdate = performUpdate;
|
|
|
45
45
|
exports.reExecProcess = reExecProcess;
|
|
46
46
|
const child_process_1 = require("child_process");
|
|
47
47
|
const fs_1 = require("fs");
|
|
48
|
+
const os = __importStar(require("os"));
|
|
48
49
|
const path = __importStar(require("path"));
|
|
49
50
|
const constants_1 = require("./constants");
|
|
50
51
|
const logger_1 = require("./logger");
|
|
@@ -228,7 +229,7 @@ async function performUpdate(version, method) {
|
|
|
228
229
|
const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
229
230
|
const args = ['install', '-g', `@ai-support-agent/cli@${version}`];
|
|
230
231
|
// Use a user-writable cache directory to avoid root-owned cache issues in Docker containers
|
|
231
|
-
const tmpCacheDir = path.join(
|
|
232
|
+
const tmpCacheDir = path.join(os.tmpdir(), '.npm-update-cache');
|
|
232
233
|
args.push('--cache', tmpCacheDir);
|
|
233
234
|
const needsSudo = !hasGlobalWritePermission() && isSudoAvailable();
|
|
234
235
|
if (!hasGlobalWritePermission() && !isSudoAvailable()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../src/update-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import WebSocket from 'ws';
|
|
2
2
|
import { BaseWebSocketConnection } from '../base-websocket';
|
|
3
|
+
import { BrowserSessionManager } from '../mcp/tools/browser/browser-session-manager';
|
|
3
4
|
/**
|
|
4
5
|
* API Server → Agent メッセージ
|
|
5
6
|
*/
|
|
6
7
|
export interface VsCodeServerMessage {
|
|
7
|
-
type: 'vscode_open' | 'vscode_close' | 'port_forward_open' | 'port_forward_close' | 'http_request' | 'ws_frame' | 'auth_success' | 'error';
|
|
8
|
+
type: 'vscode_open' | 'vscode_close' | 'port_forward_open' | 'port_forward_close' | 'http_request' | 'ws_frame' | 'auth_success' | 'error' | 'browser_open' | 'browser_close' | 'browser_navigate' | 'browser_go_back' | 'browser_go_forward' | 'browser_reload' | 'browser_mouse_click' | 'browser_mouse_wheel' | 'browser_keyboard_type' | 'browser_keyboard_press' | 'browser_screenshot' | 'browser_viewport';
|
|
8
9
|
sessionId?: string;
|
|
9
10
|
requestId?: string;
|
|
10
11
|
subSocketId?: string;
|
|
@@ -18,12 +19,25 @@ export interface VsCodeServerMessage {
|
|
|
18
19
|
isOpen?: boolean;
|
|
19
20
|
isClosed?: boolean;
|
|
20
21
|
message?: string;
|
|
22
|
+
conversationId?: string;
|
|
23
|
+
url?: string;
|
|
24
|
+
x?: number;
|
|
25
|
+
y?: number;
|
|
26
|
+
button?: string;
|
|
27
|
+
clickCount?: number;
|
|
28
|
+
deltaX?: number;
|
|
29
|
+
deltaY?: number;
|
|
30
|
+
text?: string;
|
|
31
|
+
key?: string;
|
|
32
|
+
modifiers?: string[];
|
|
33
|
+
width?: number;
|
|
34
|
+
height?: number;
|
|
21
35
|
}
|
|
22
36
|
/**
|
|
23
37
|
* Agent → API Server メッセージ
|
|
24
38
|
*/
|
|
25
39
|
export interface VsCodeAgentMessage {
|
|
26
|
-
type: 'vscode_ready' | 'vscode_stopped' | 'port_forward_ready' | 'port_forward_stopped' | 'http_response' | 'ws_frame' | 'error';
|
|
40
|
+
type: 'vscode_ready' | 'vscode_stopped' | 'port_forward_ready' | 'port_forward_stopped' | 'http_response' | 'ws_frame' | 'error' | 'browser_ready' | 'browser_frame' | 'browser_screenshot_result' | 'browser_action_log' | 'browser_stopped';
|
|
27
41
|
sessionId?: string;
|
|
28
42
|
targetPort?: number;
|
|
29
43
|
requestId?: string;
|
|
@@ -39,12 +53,24 @@ export interface VsCodeAgentMessage {
|
|
|
39
53
|
isOpen?: boolean;
|
|
40
54
|
isClosed?: boolean;
|
|
41
55
|
message?: string;
|
|
56
|
+
conversationId?: string;
|
|
57
|
+
currentUrl?: string;
|
|
58
|
+
pageTitle?: string;
|
|
59
|
+
timestamp?: number;
|
|
60
|
+
reason?: string;
|
|
61
|
+
entries?: Array<{
|
|
62
|
+
timestamp: number;
|
|
63
|
+
source: string;
|
|
64
|
+
action: string;
|
|
65
|
+
details: string;
|
|
66
|
+
}>;
|
|
42
67
|
}
|
|
43
68
|
/**
|
|
44
69
|
* VS Code トンネル WebSocket
|
|
45
70
|
*
|
|
46
71
|
* TerminalWebSocket と同じパターンで BaseWebSocketConnection を継承し、
|
|
47
72
|
* API Server とのトンネル WebSocket 経由で code-server へのアクセスを提供する。
|
|
73
|
+
* ブラウザライブビューメッセージも同じ WebSocket 接続で処理する。
|
|
48
74
|
*/
|
|
49
75
|
export declare class VsCodeTunnelWebSocket extends BaseWebSocketConnection<VsCodeServerMessage> {
|
|
50
76
|
private readonly token;
|
|
@@ -54,9 +80,23 @@ export declare class VsCodeTunnelWebSocket extends BaseWebSocketConnection<VsCod
|
|
|
54
80
|
private vsCodeServer;
|
|
55
81
|
private wsProxy;
|
|
56
82
|
private readonly portForwardSessions;
|
|
83
|
+
readonly browserSessionManager: BrowserSessionManager;
|
|
84
|
+
private browserLocalServer;
|
|
85
|
+
private browserLocalPort;
|
|
57
86
|
constructor(apiUrl: string, token: string, agentId: string, projectDir?: string | undefined);
|
|
87
|
+
/**
|
|
88
|
+
* Get the port of the browser local HTTP server (0 if not started).
|
|
89
|
+
*/
|
|
90
|
+
getBrowserLocalPort(): number;
|
|
58
91
|
protected createWebSocket(): WebSocket;
|
|
92
|
+
/** Promise that resolves when the browser local server has started */
|
|
93
|
+
private browserLocalServerStartPromise;
|
|
59
94
|
protected onOpen(_ws: WebSocket, resolve: (value: void) => void): void;
|
|
95
|
+
/**
|
|
96
|
+
* Wait for the browser local server to be ready and return its port.
|
|
97
|
+
* Returns 0 if the server failed to start or is not initialized.
|
|
98
|
+
*/
|
|
99
|
+
waitForBrowserLocalPort(): Promise<number>;
|
|
60
100
|
protected onParsedMessage(msg: VsCodeServerMessage): void;
|
|
61
101
|
protected onDisconnect(): void;
|
|
62
102
|
private handleVsCodeOpen;
|
|
@@ -65,6 +105,18 @@ export declare class VsCodeTunnelWebSocket extends BaseWebSocketConnection<VsCod
|
|
|
65
105
|
private handleWsFrame;
|
|
66
106
|
private handlePortForwardOpen;
|
|
67
107
|
private handlePortForwardClose;
|
|
108
|
+
private handleBrowserOpen;
|
|
109
|
+
private handleBrowserClose;
|
|
110
|
+
private handleBrowserNavigate;
|
|
111
|
+
private handleBrowserGoBack;
|
|
112
|
+
private handleBrowserGoForward;
|
|
113
|
+
private handleBrowserReload;
|
|
114
|
+
private handleBrowserMouseClick;
|
|
115
|
+
private handleBrowserMouseWheel;
|
|
116
|
+
private handleBrowserKeyboardType;
|
|
117
|
+
private handleBrowserKeyboardPress;
|
|
118
|
+
private handleBrowserScreenshot;
|
|
119
|
+
private handleBrowserViewport;
|
|
68
120
|
private cleanup;
|
|
69
121
|
private send;
|
|
70
122
|
}
|