@memory-bank/mcp
Version:
Memory-enabled Co-Pilot (MCP) server for managing project documentation and context
70 lines • 3.66 kB
TypeScript
import { MCPResponsePresenter } from '../presenters/MCPResponsePresenter.js';
import { ReadBranchDocumentUseCase } from '../../application/usecases/branch/ReadBranchDocumentUseCase.js';
import { WriteBranchDocumentUseCase } from '../../application/usecases/branch/WriteBranchDocumentUseCase.js';
import { ReadGlobalDocumentUseCase } from '../../application/usecases/global/ReadGlobalDocumentUseCase.js';
import { WriteGlobalDocumentUseCase } from '../../application/usecases/global/WriteGlobalDocumentUseCase.js';
import type { MCPResponse } from '../presenters/types/MCPResponse.js';
import { IConfigProvider } from '../../infrastructure/config/interfaces/IConfigProvider.js';
/**
* Unified controller for document operations in both branch and global scopes.
* Uses scope parameter to determine which repository and use case to use.
*/
export declare class DocumentController {
private readonly readBranchDocumentUseCase;
private readonly writeBranchDocumentUseCase;
private readonly readGlobalDocumentUseCase;
private readonly writeGlobalDocumentUseCase;
private readonly presenter;
private readonly configProvider?;
private readonly componentLogger;
/**
* Constructor
* @param readBranchDocumentUseCase Use case for reading branch documents
* @param writeBranchDocumentUseCase Use case for writing branch documents
* @param readGlobalDocumentUseCase Use case for reading global documents
* @param writeGlobalDocumentUseCase Use case for writing global documents
* @param presenter Response presenter
*/
constructor(readBranchDocumentUseCase: ReadBranchDocumentUseCase, writeBranchDocumentUseCase: WriteBranchDocumentUseCase, readGlobalDocumentUseCase: ReadGlobalDocumentUseCase, writeGlobalDocumentUseCase: WriteGlobalDocumentUseCase, presenter: MCPResponsePresenter, configProvider?: IConfigProvider | undefined);
/**
* Read a document from either branch or global memory bank
* @param params Parameters for reading document
* @param params.scope 'branch' or 'global' scope
* @param params.branchName Optional branch name (auto-detected in project mode if not provided)
* @param params.path Document path
* @returns Promise resolving to MCP response
*/
readDocument(params: {
scope: 'branch' | 'global';
branchName?: string;
path: string;
}): Promise<MCPResponse>;
/**
* Write a document to either branch or global memory bank
* @param params Parameters for writing document
* @param params.scope 'branch' or 'global' scope
* @param params.branchName Optional branch name (auto-detected in project mode if not provided)
* @param params.path Document path
* @param params.content Document content (optional, mutually exclusive with patches)
* @param params.patches JSON Patch operations (optional, mutually exclusive with content)
* @param params.tags Document tags (optional)
* @param params.returnContent Whether to return document content in response (default: false)
* @returns Promise resolving to MCP response
*/
writeDocument(params: {
scope: 'branch' | 'global';
branchName?: string;
path: string;
content?: Record<string, unknown> | string;
patches?: Record<string, unknown>[];
tags?: string[];
returnContent?: boolean;
}): Promise<MCPResponse>;
/**
* Handle errors and convert them to MCP responses
* @param error Error to handle
* @returns MCP response with error information
*/
private handleError;
}
//# sourceMappingURL=DocumentController.d.ts.map