UNPKG

mongodb-memory-bank-mcp

Version:

FIXED: MongoDB Memory Bank MCP with bulletproof error handling, smart operations, and session state management. Eliminates [object Object] errors and user confusion.

42 lines (41 loc) 1.83 kB
import { badRequest, ok, serverError } from "../../helpers/index.js"; import { setProjectContext } from "../../../shared/services/project-context-manager.js"; /** * Project Context Detection Controller * Implements secure multi-layer project detection with isolation validation * Following MongoDB MCP and alioshr/memory-bank-mcp patterns */ export class ProjectContextDetectionController { projectContextDetectionUseCase; validator; constructor(projectContextDetectionUseCase, validator) { this.projectContextDetectionUseCase = projectContextDetectionUseCase; this.validator = validator; } async handle(request) { try { const validationError = this.validator.validate(request.body); if (validationError) { return badRequest(validationError); } const { workingDirectory, validateIsolation, forceDetection, preferredProjectName } = request.body || {}; // Convert to domain request const domainRequest = { workingDirectory: workingDirectory || process.cwd(), validateIsolation: validateIsolation !== false, // Default to true forceDetection, preferredProjectName }; const result = await this.projectContextDetectionUseCase.detectProjectContext(domainRequest); // CRITICAL FIX: Set project context using master project context manager // This ensures 100% consistency across all operations if (result.success && result.result?.projectName) { await setProjectContext(result.result.projectName, result.result.workingDirectory); } return ok(result); } catch (error) { return serverError(error); } } }