import { z } from "zod"; import { withAuth, 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 }, withAuth(async (_params, extra) => { try { const credentials = await getSessionCredentials(extra.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. Never use the production domain directly.", }) }], }; } catch (error) { return handleToolError(error, "get_web_url", {}); } }) ); }