import { z } from "zod"; import { getSessionCredentials } from "../../auth/index.js"; import { handleToolError } from "../helpers/errorHandler.js"; import { withAuthParams } from "../helpers/authSchema.js"; export function registerGetWebUrlTool(server) { server.tool( "get_web_url", `Get the correct URL for the project's development website. Always use this URL for fetch, Playwright, or any HTTP request to the site. Never guess or use production domains.`, withAuthParams({}), { readOnlyHint: true, destructiveHint: false }, async (_params, extra) => { try { const sessionId = extra?.sessionId || "_default"; const credentials = await getSessionCredentials(sessionId); if (!credentials || !credentials.web_url) { return { content: [{ type: "text", text: "Error: no web_url available. Run select_project first." }], isError: true, }; } return { content: [{ type: "text", text: JSON.stringify({ web_url: credentials.web_url, api_web_url: credentials.api_web_url || null, website: credentials.website || null, note: "Always use web_url for Playwright/fetch. IMPORTANT: Always append ?pruebas=1 to any URL you visit (e.g. web_url + '/?pruebas=1' or web_url + '/servicios/?pruebas=1'). Never use the production domain directly.", }) }], }; } catch (error) { return handleToolError(error, "get_web_url", {}); } } ); }