UNPKG

@memory-bank/mcp

Version:

Memory-enabled Co-Pilot (MCP) server for managing project documentation and context

142 lines 6.47 kB
import * as rfc6902 from 'rfc6902'; import type { DocumentDTO } from "../../application/dtos/DocumentDTO.js"; import type { JsonDocumentDTO } from "../../application/dtos/JsonDocumentDTO.js"; import type { UpdateTagIndexUseCaseV2 } from "../../application/usecases/common/UpdateTagIndexUseCaseV2.js"; import type { SearchDocumentsByTagsInput } from "../../application/usecases/common/SearchDocumentsByTagsUseCase.js"; type SearchResults = any; import type { ReadJsonDocumentUseCase, WriteJsonDocumentUseCase, DeleteJsonDocumentUseCase, SearchJsonDocumentsUseCase, UpdateJsonIndexUseCase, ReadGlobalDocumentUseCase, WriteGlobalDocumentUseCase, SearchDocumentsByTagsUseCase, UpdateTagIndexUseCase } from "../../application/usecases/index.js"; import type { MCPResponsePresenter } from "../presenters/types/MCPResponsePresenter.js"; import type { MCPResponse } from "../presenters/types/MCPResponse.js"; import type { IGlobalController } from "./interfaces/IGlobalController.js"; import type { IConfigProvider } from "../../infrastructure/config/interfaces/IConfigProvider.js"; /** * Parameters for the writeDocument method in GlobalController */ interface WriteGlobalDocumentParams { path: string; content?: string | Record<string, unknown>; patches?: rfc6902.Operation[]; tags?: string[]; } /** * Controller for global memory bank operations * Handles incoming requests related to global memory bank */ export declare class GlobalController implements IGlobalController { private readonly readGlobalDocumentUseCase; private readonly writeGlobalDocumentUseCase; private readonly searchDocumentsByTagsUseCase; private readonly updateTagIndexUseCase; private readonly presenter; private readonly configProvider; readonly _type: "controller"; private readonly componentLogger; /** * Constructor * @param readGlobalDocumentUseCase Use case for reading global documents * @param writeGlobalDocumentUseCase Use case for writing global documents * @param searchDocumentsByTagsUseCase Use case for searching documents by tags * @param updateTagIndexUseCase Use case for updating tag index * @param presenter Response presenter * @param options Optional dependencies like JSON document use cases and V2 tag index */ private readonly updateTagIndexUseCaseV2?; private readonly readJsonDocumentUseCase?; private readonly writeJsonDocumentUseCase?; private readonly deleteJsonDocumentUseCase?; private readonly searchJsonDocumentsUseCase?; private readonly updateJsonIndexUseCase?; constructor(readGlobalDocumentUseCase: ReadGlobalDocumentUseCase, writeGlobalDocumentUseCase: WriteGlobalDocumentUseCase, searchDocumentsByTagsUseCase: SearchDocumentsByTagsUseCase, updateTagIndexUseCase: UpdateTagIndexUseCase, presenter: MCPResponsePresenter, configProvider: IConfigProvider, options?: { updateTagIndexUseCaseV2?: UpdateTagIndexUseCaseV2; readJsonDocumentUseCase?: ReadJsonDocumentUseCase; writeJsonDocumentUseCase?: WriteJsonDocumentUseCase; deleteJsonDocumentUseCase?: DeleteJsonDocumentUseCase; searchJsonDocumentsUseCase?: SearchJsonDocumentsUseCase; updateJsonIndexUseCase?: UpdateJsonIndexUseCase; }); /** * Read document from global memory bank * @param path Document path * @returns Promise resolving to MCP response with document */ readDocument(path: string): Promise<MCPResponse<DocumentDTO>>; /** * Write document to global memory bank * @param path Document path * @param content Document content * @param tags Optional tags for the document * @returns Promise resolving to MCP response with the result */ writeDocument(params: WriteGlobalDocumentParams): Promise<MCPResponse>; /** * Read core files from global memory bank * @returns Promise resolving to MCP response with core files */ readCoreFiles(): Promise<MCPResponse<Record<string, DocumentDTO>>>; /** * Update tags index in global memory bank * @returns Promise resolving to MCP response with the result */ updateTagsIndex(): Promise<MCPResponse>; /** * Search documents by tags in memory banks * @param input Search parameters (tags, match, scope, branch, docs) * @returns Promise resolving to MCP response with search results */ searchDocumentsByTags(input: SearchDocumentsByTagsInput): Promise<MCPResponse<SearchResults>>; /** * Handle errors in controller methods * @param error Error to handle * @returns Formatted error response */ private handleError; /** * Read JSON document from global memory bank * @param options Options for reading document (path or ID) * @returns Promise resolving to MCP response with JSON document */ readJsonDocument(options: { path?: string; id?: string; }): Promise<MCPResponse<JsonDocumentDTO>>; /** * Write JSON document to global memory bank * @param document Document data to write * @returns Promise resolving to MCP response with the result */ writeJsonDocument(document: JsonDocumentDTO): Promise<MCPResponse>; /** * Delete JSON document from global memory bank * @param options Options for deleting document (path or ID) * @returns Promise resolving to MCP response with the result */ deleteJsonDocument(options: { path?: string; id?: string; }): Promise<MCPResponse>; /** * List JSON documents in global memory bank * @param options Options for listing documents (type, tags) * @returns Promise resolving to MCP response with list of documents */ listJsonDocuments(options?: { type?: string; tags?: string[]; }): Promise<MCPResponse<JsonDocumentDTO[]>>; /** * Search JSON documents in global memory bank * @param query Search query * @returns Promise resolving to MCP response with matching documents */ searchJsonDocuments(query: string): Promise<MCPResponse<JsonDocumentDTO[]>>; /** * Update JSON index in global memory bank * @param options Options for updating index (force rebuild) * @returns Promise resolving to MCP response with the result */ updateJsonIndex(options?: { force?: boolean; }): Promise<MCPResponse>; } export {}; //# sourceMappingURL=GlobalController.d.ts.map