@memory-bank/mcp
Version:
Memory-enabled Co-Pilot (MCP) server for managing project documentation and context
142 lines • 6.47 kB
TypeScript
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