import axios from "axios"; import path from "path"; import { LOCAL_SERVER_URL, getLocalServerHeaders } from "../../config/index.js"; export function getCurrentProjectInfo() { const projectDir = process.env.ACAI_PROJECT_DIR || ""; if (!projectDir) { throw new Error("ACAI_PROJECT_DIR not set"); } return { projectDir, projectSlug: path.basename(path.resolve(projectDir)), }; } export async function callLocalFileEndpoint(method, endpoint, payload = null, query = null) { const headers = getLocalServerHeaders(); if (method === "GET") { const response = await axios.get(`${LOCAL_SERVER_URL}${endpoint}`, { params: query || undefined, headers, timeout: 30000, validateStatus: (status) => status < 600, }); return { status: response.status, data: response.data }; } const response = await axios.post(`${LOCAL_SERVER_URL}${endpoint}`, payload || {}, { headers, timeout: 30000, validateStatus: (status) => status < 600, }); return { status: response.status, data: response.data }; } export function buildLocalFileErrorResponse(toolName, result, extra = {}) { const payload = result?.data || {}; const message = payload.message || payload.error || payload.compileError || `HTTP ${result?.status || 500}`; return { content: [{ type: "text", text: JSON.stringify({ success: false, error: { code: `HTTP_${result.status}`, message, context: toolName, ...extra, ...payload, }, }, null, 2), }], isError: true, }; }