UNPKG

modular-mcp-memory

Version:

模块化MCP记忆系统 v4.5.1 - 基于Zettelkasten记忆片段盒笔记法的精简记忆系统,包含性能优化、智能占位符功能、内容提取拆分功能和修复的展开功能

162 lines 5.23 kB
import { HintResult, SuggestionResult, LowValueSuggestionResult, IsolatedSuggestionResult, ZettelkastenConfig, ExtractRange } from '../types/index.js'; /** * Zettelkasten 记忆片段盒管理器 * 基于文件系统的记忆片段存储和管理系统 */ export declare class ZettelkastenManager { private config; private cardCache; private weightCache; private fileLastModified; private readonly LINK_PATTERN; private readonly EXPAND_START_PATTERN; private readonly EXPAND_END_PATTERN; readonly EMPTY_PLACEHOLDER = "<!-- \u8FD9\u662F\u4E00\u4E2A\u81EA\u52A8\u521B\u5EFA\u7684\u5360\u4F4D\u8BB0\u5FC6\u7247\u6BB5 -->\n"; getEmptyPlaceholder(fragmentName: string): string; constructor(config: ZettelkastenConfig); /** * 验证配置 */ private validateConfig; /** * 初始化存储目录 */ private initializeStorage; /** * 验证记忆片段名称 */ private validateFragmentName; /** * 获取记忆片段文件路径(支持嵌套目录) */ private getFragmentFilePath; /** * 检查记忆片段是否存在 */ private fragmentExists; /** * 从文件加载记忆片段内容 */ private loadFragmentFromFile; /** * 保存记忆片段到文件 */ private saveFragmentToFile; /** * 解析记忆片段中的链接引用 */ private parseCardReferences; /** * 展开记忆片段内容中的引用 */ private expandFragmentContent; /** * 1. 获取文件内容 * @param fragmentName 记忆片段名称 * @param expandDepth 展开深度,默认0 * @param withLineNumber 是否输出行号,默认false */ getMemory(fragmentName: string, expandDepth?: number, withLineNumber?: boolean): Promise<string>; /** * 2. 创建/编辑文件内容 */ setMemory(fragmentName: string, content: string): Promise<void>; /** * 分析内容中的引用并为不存在的记忆片段创建占位文件 */ private createPlaceholderCards; /** * 3. 删除文件内容 */ deleteMemory(fragmentName: string): Promise<void>; /** * 4. 重命名/合并文件内容 */ renameMemory(oldFragmentName: string, newFragmentName: string): Promise<void>; /** * 更新所有记忆片段中的引用(支持嵌套目录) */ private updateAllReferences; /** * 递归获取所有记忆片段名称(支持嵌套目录) */ getAllCardNames(): Promise<string[]>; /** * 递归扫描目录,收集所有 .md 文件 */ private scanDirectory; /** * 清除所有权重缓存 */ private invalidateAllWeights; /** * 获取缓存的权重 */ private getCachedWeight; /** * 设置权重缓存 */ private setCachedWeight; /** * 递归计算记忆片段权重 * 新算法:当前记忆片段权重 = 其子记忆片段所有权重之和,如果没有子记忆片段,权重为0 */ private calculateWeight; /** * 5. 获取提示 */ getMemoryHints(fileCount: number): Promise<HintResult>; /** * 判断一个片段是否是系统片段 * @param fragmentName 记忆片段名称 * @returns 如果是系统片段返回 true,否则返回 false */ private isSystemCard; /** * 6. 获取优化建议(已弃用) * @deprecated 请使用 getLowValueSuggestions 和 getIsolatedSuggestions 方法 */ getOptimizeSuggestions(optimizationParam: number, maxFileCount: number): Promise<SuggestionResult>; /** * 7. 获取低价值片段建议 * 使用信息散度计算价值,专注于获取低价值片段 * @param optimizationParam 优化参数,用于筛选低价值片段 * @param maxFileCount 最大返回数量 * @returns 低价值片段建议结果 */ getLowValueSuggestions(optimizationParam: number, maxFileCount: number): Promise<LowValueSuggestionResult>; /** * 8. 获取孤立片段建议 * 专注于获取没有反向链接的孤立片段 * @param maxFileCount 最大返回数量 * @returns 孤立片段建议结果 */ getIsolatedSuggestions(maxFileCount: number): Promise<IsolatedSuggestionResult>; /** * 清理缓存 */ clearCache(): void; /** * 获取记忆片段统计信息 */ /** * 内容提取功能 - 支持精确范围定位 * 支持通过行号和正则表达式精确定位内容范围 */ extractMemory(sourceFragmentName: string, targetFragmentName: string, range?: ExtractRange): Promise<void>; /** * 在指定位置插入链接 */ insertLinkAt(sourceFragmentName: string, targetFragmentName: string, linePosition?: number, anchorText?: string): Promise<void>; /** * 获取指定记忆片段的所有反向链接 */ getBacklinks(fragmentName: string): Promise<string[]>; getStats(): Promise<{ totalCards: number; totalCharacters: number; averageCardSize: number; lastUpdated: Date | null; }>; } //# sourceMappingURL=ZettelkastenManager.d.ts.map