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