UNPKG

@memory-bank/mcp

Version:

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

81 lines 2.51 kB
import { IUseCase } from '../../interfaces/IUseCase.js'; import { DocumentDTO } from '../../dtos/DocumentDTO.js'; import { DocumentRepositorySelector } from '../../services/DocumentRepositorySelector.js'; import { DocumentWriterService } from '../../services/DocumentWriterService.js'; /** * Input data for write document use case */ export interface WriteDocumentInput { /** * Scope of the memory bank ('branch' or 'global') */ scope: 'branch' | 'global'; /** * Branch name (required for branch scope in non-project mode) */ branch?: string; /** * Document path */ path: string; /** * Path to the docs directory (optional in project mode) */ docs?: string; /** * Document content (mutually exclusive with patches) */ content?: string | Record<string, unknown>; /** * JSON Patch operations (mutually exclusive with content) */ patches?: any[]; /** * Document tags */ tags?: string[]; /** * If true, return the document content in the response */ returnContent?: boolean; } /** * Output data for write document use case */ export interface WriteDocumentOutput { /** * Document data after write. * Content and tags are included only if returnContent was true in the input. */ document: Omit<DocumentDTO, 'content' | 'tags'> & { content?: string; tags?: string[]; }; } /** * Use case for writing a document to either branch or global memory bank */ export declare class WriteDocumentUseCase implements IUseCase<WriteDocumentInput, WriteDocumentOutput> { private readonly repositorySelector; private readonly documentWriterService; private readonly useCaseLogger; /** * Constructor * @param repositorySelector Service to select appropriate repository based on scope * @param documentWriterService Service for document writing and patching */ constructor(repositorySelector: DocumentRepositorySelector, documentWriterService: DocumentWriterService); /** * Execute the use case * @param input Input data * @returns Promise resolving to output data */ execute(input: WriteDocumentInput): Promise<WriteDocumentOutput>; /** * Validates the input parameters * @param input The input parameters to validate * @throws ApplicationError if input is invalid */ private validateInput; } //# sourceMappingURL=WriteDocumentUseCase.d.ts.map