@debugg-ai/debugg-ai-mcp
Version:
Zero-Config, Fully AI-Managed End-to-End Testing for all code gen platforms.
52 lines (51 loc) • 2.18 kB
JavaScript
import { Logger } from '../utils/logger.js';
import { handleExternalServiceError } from '../utils/errors.js';
import { DebuggAIServerClient } from '../services/index.js';
import { config } from '../config/index.js';
import { detectRepoName } from '../utils/gitContext.js';
const logger = new Logger({ module: 'deleteEnvironmentHandler' });
function notFound(uuid, context) {
return {
content: [{ type: 'text', text: JSON.stringify({
error: 'NotFound',
message: `Environment ${uuid} not found (${context}).`,
uuid,
}, null, 2) }],
isError: true,
};
}
export async function deleteEnvironmentHandler(input, _context) {
const start = Date.now();
logger.toolStart('delete_environment', { uuid: input.uuid, projectUuid: input.projectUuid });
try {
const client = new DebuggAIServerClient(config.api.key);
await client.init();
let projectUuid = input.projectUuid;
if (!projectUuid) {
const repoName = detectRepoName();
if (!repoName)
return notFound(input.uuid, 'no git repo detected and no projectUuid provided');
const project = await client.findProjectByRepoName(repoName);
if (!project)
return notFound(input.uuid, `no project found for repo "${repoName}"`);
projectUuid = project.uuid;
}
try {
await client.deleteEnvironment(projectUuid, input.uuid);
logger.toolComplete('delete_environment', Date.now() - start);
return {
content: [{ type: 'text', text: JSON.stringify({ deleted: true, uuid: input.uuid }, null, 2) }],
};
}
catch (err) {
if (err?.statusCode === 404 || err?.response?.status === 404) {
return notFound(input.uuid, `backend returned 404 for project ${projectUuid}`);
}
throw err;
}
}
catch (error) {
logger.toolError('delete_environment', error, Date.now() - start);
throw handleExternalServiceError(error, 'DebuggAI', 'delete_environment');
}
}