modular-mcp-memory
Version:
模块化MCP记忆系统 v4.5.1 - 基于Zettelkasten记忆片段盒笔记法的精简记忆系统,包含性能优化、智能占位符功能、内容提取拆分功能和修复的展开功能
162 lines • 5.23 kB
TypeScript
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