Initial commit
This commit is contained in:
60
mcp-server/tools/files/helpers.js
Normal file
60
mcp-server/tools/files/helpers.js
Normal file
@@ -0,0 +1,60 @@
|
||||
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,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user