UNPKG

@memory-bank/mcp

Version:

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

106 lines 3.94 kB
import type { BranchTagIndex } from "@memory-bank/schemas"; import type { BranchInfo } from "../entities/BranchInfo.js"; import type { DocumentPath } from "../entities/DocumentPath.js"; import type { MemoryDocument } from "../entities/MemoryDocument.js"; import type { Tag } from "../entities/Tag.js"; /** * Interface for recent branch information */ export interface RecentBranch { branchInfo: BranchInfo; lastModified: Date; summary: { currentWork?: string; recentChanges?: string[]; }; } /** * Repository interface for branch memory bank */ export interface IBranchMemoryBankRepository { /** * Find branch by name * @param branchName Branch name * @returns Promise resolving to boolean indicating if branch exists */ exists(branchName: string): Promise<boolean>; /** * Initialize branch memory bank * @param branchInfo Branch information * @returns Promise resolving when initialization is complete */ initialize(branchInfo: BranchInfo): Promise<void>; /** * Get document from branch * @param branchInfo Branch information * @param path Document path * @returns Promise resolving to document if found, null otherwise */ getDocument(branchInfo: BranchInfo, path: DocumentPath): Promise<MemoryDocument | null>; /** * Save document to branch * @param branchInfo Branch information * @param document Document to save * @returns Promise resolving when done */ saveDocument(branchInfo: BranchInfo, document: MemoryDocument): Promise<void>; /** * Delete document from branch * @param branchInfo Branch information * @param path Document path * @returns Promise resolving to boolean indicating success */ deleteDocument(branchInfo: BranchInfo, path: DocumentPath): Promise<boolean>; /** * List all documents in branch * @param branchInfo Branch information * @returns Promise resolving to array of document paths */ listDocuments(branchInfo: BranchInfo): Promise<DocumentPath[]>; /** * Find documents by tags in branch * @param branchInfo Branch information * @param tags Tags to search for * @returns Promise resolving to array of matching documents */ findDocumentsByTags(branchInfo: BranchInfo, tags: Tag[]): Promise<MemoryDocument[]>; /** * Get recent branches * @param limit Maximum number of branches to return * @returns Promise resolving to array of recent branches */ getRecentBranches(limit?: number): Promise<RecentBranch[]>; /** * Validate branch structure * @param branchInfo Branch information * @returns Promise resolving to boolean indicating if structure is valid */ validateStructure(branchInfo: BranchInfo): Promise<boolean>; /** * Save tag index for branch * @param branchInfo Branch information * @param tagIndex Tag index to save * @returns Promise resolving when done */ saveTagIndex(branchInfo: BranchInfo, tagIndex: BranchTagIndex): Promise<void>; /** * Get tag index for branch * @param branchInfo Branch information * @returns Promise resolving to tag index if found, null otherwise */ getTagIndex(branchInfo: BranchInfo): Promise<BranchTagIndex | null>; /** * Find documents by tags in branch using index * @param params Parameters for finding documents * @param params.branchInfo Branch information * @param params.tags Tags to search for * @param params.matchAll If true, documents must have all tags (AND), otherwise any tag (OR) * @returns Promise resolving to array of document paths */ findDocumentPathsByTagsUsingIndex(params: { branchInfo: BranchInfo; tags: Tag[]; matchAll?: boolean; }): Promise<DocumentPath[]>; } //# sourceMappingURL=IBranchMemoryBankRepository.d.ts.map