UNPKG

@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
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'); } }