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