autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
45 lines (44 loc) • 1.54 kB
TypeScript
/**
* @module DiscovererPreference
* @description Discoverer 用户偏好持久化 + 冲突检测
*
* 当多个 Discoverer 匹配且置信度接近时,允许用户确认选择并持久化。
* CLI 上下文使用 readline 交互,MCP/HTTP 上下文返回 ambiguous 标记。
*/
export interface DiscovererPreferenceData {
selectedDiscoverer: string;
selectedAt: string;
alternatives: string[];
userConfirmed: boolean;
}
export interface DetectMatch {
discovererId: string;
displayName: string;
confidence: number;
}
export interface ConflictResult {
ambiguous: boolean;
reason?: string;
matches: DetectMatch[];
recommended?: DetectMatch;
}
/**
* 检测 Discoverer 匹配结果是否存在冲突/模糊
*/
export declare function detectConflict(matches: DetectMatch[]): ConflictResult;
/**
* 加载已保存的 Discoverer 偏好
* @returns 偏好数据,或 null(无偏好/文件不存在/损坏)
*/
export declare function loadPreference(projectRoot: string): DiscovererPreferenceData | null;
/**
* 保存 Discoverer 偏好
*/
export declare function savePreference(projectRoot: string, discovererId: string, alternatives: string[], userConfirmed: boolean): void;
/**
* CLI 交互式确认 Discoverer 选择
* 仅在 CLI 终端上下文(stdin 可用)时有效
*
* @returns 用户选择的 Discoverer ID,或 null(非交互环境/超时)
*/
export declare function promptDiscovererChoice(matches: DetectMatch[], recommended?: DetectMatch): Promise<string | null>;