init project
This commit is contained in:
Vendored
+41
@@ -0,0 +1,41 @@
|
||||
import { z } from 'zod';
|
||||
import { errorResult, jsonResult, toErrorMessage } from '../shared.js';
|
||||
import { browserManager } from './browserManager.js';
|
||||
export function registerBrowserNavigateTool(server) {
|
||||
server.registerTool('browser_navigate', {
|
||||
title: 'Browser Navigate',
|
||||
description: 'Open a URL in a headless/headed Playwright browser session. Reuses the same session across calls, so later tools (screenshot, inspect_dom, click, etc.) operate on the same page.',
|
||||
inputSchema: {
|
||||
url: z.string().url().describe('URL to navigate to, e.g. the local dev server URL from start_dev_server.'),
|
||||
headless: z.boolean().optional().default(true).describe('Run browser headlessly.'),
|
||||
waitUntil: z
|
||||
.enum(['load', 'domcontentloaded', 'networkidle'])
|
||||
.optional()
|
||||
.default('load')
|
||||
.describe('When to consider navigation complete.'),
|
||||
resetLogs: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.default(true)
|
||||
.describe('Clear previously captured console logs before navigating.'),
|
||||
},
|
||||
}, async ({ url, headless, waitUntil, resetLogs: shouldResetLogs }) => {
|
||||
try {
|
||||
const session = await browserManager.getSession(headless);
|
||||
if (shouldResetLogs)
|
||||
browserManager.resetLogs();
|
||||
const response = await session.page.goto(url, { waitUntil });
|
||||
const title = await session.page.title().catch(() => '');
|
||||
return jsonResult({
|
||||
url,
|
||||
title,
|
||||
status: response?.status() ?? null,
|
||||
finalUrl: response?.url() ?? url,
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
return errorResult(toErrorMessage(error));
|
||||
}
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=navigate.js.map
|
||||
Reference in New Issue
Block a user