UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

129 lines (128 loc) 4.41 kB
/** * ModuleService — 多语言统一模块扫描服务 * * 通过 DiscovererRegistry 自动检测项目类型, * 统一 SPM / Node / Go / JVM / Python / Generic 等语言的模块扫描、依赖分析、AI 提取管线。 * 语言特有操作(如 SPM 依赖管理)由对应的 Discoverer / Service 直接暴露,不经此类代理。 */ export declare class ModuleService { #private; constructor(projectRoot: string, options?: { agentFactory?: Record<string, unknown> | null; container?: Record<string, unknown> | null; qualityScorer?: Record<string, unknown> | null; recipeExtractor?: Record<string, unknown> | null; guardCheckEngine?: Record<string, unknown> | null; violationsStore?: Record<string, unknown> | null; }); /** 自动检测项目类型并加载所有匹配的 Discoverer */ load(): Promise<void>; /** 清除缓存,重新检测 */ reload(): Promise<void>; /** 列出所有模块/Target(合并所有 Discoverer 的结果) */ listTargets(): Promise<Record<string, unknown>[]>; /** 获取 Target 的文件列表 */ getTargetFiles(target: string | Record<string, unknown>): Promise<{ name: string; path: string; relativePath: string; language: string; }[]>; /** * 获取依赖关系图 * @param [options] * @returns [] }>} */ getDependencyGraph(options?: { level?: 'package' | 'target'; }): Promise<{ nodes: Record<string, unknown>[]; edges: { from: string; to: string; type: string; source: string; }[]; projectRoot: string; generatedAt: string; }>; /** 项目信息摘要 */ getProjectInfo(): { projectRoot: string; projectName: string; primaryLanguage: string; discoverers: { id: string; name: string; confidence: number; }[]; languages: string[]; hasSpm: boolean; }; /** * AI 扫描 Target 发现候选项 * 完整管线: 读文件 → AI 提取 → Header 解析 → 工具增强 */ scanTarget(target: string | Record<string, unknown>, options?: { onProgress?: (event: Record<string, unknown>) => void; }): Promise<Record<string, unknown>>; /** 全项目扫描 — 遍历所有 Target,AI 提取候选 + Guard 审计 */ scanProject(options?: { maxFiles?: number; batchSize?: number; batchTimeout?: number; totalTimeout?: number; }): Promise<{ targets: unknown[]; recipes: never[]; guardAudit: null; scannedFiles: never[]; message: string; partial?: undefined; } | { targets: unknown[]; recipes: Record<string, unknown>[]; guardAudit: Record<string, unknown> | null; scannedFiles: { name: unknown; path: unknown; targetName: unknown; }[]; partial: boolean; message?: undefined; }>; /** 刷新模块映射(替代 updateDependencyMap) */ updateModuleMap(options?: Record<string, unknown>): Promise<{ success: boolean; message: string; targets: number; edges: number; projectRoot: string; }>; /** * 浏览项目目录结构 — 供前端目录选择器使用 * @param [basePath=''] 相对于项目根目录的起始路径 * @param [maxDepth=2] 最大递归深度 * @returns >>} */ browseDirectories(basePath?: string, maxDepth?: number): Promise<{ name: string; path: string; depth: number; language: string; sourceFileCount: number; hasSourceFiles: boolean; }[]>; /** * 扫描任意文件夹 — 创建虚拟 Target 并走标准 AI 管线 * 用于 Discoverer 未覆盖的目录(自定义目录名、新语言等) * @param folderPath 相对/绝对路径 * @param [options] scanTarget options (onProgress 等) * @returns >} */ scanFolder(folderPath: string, options?: { onProgress?: (event: Record<string, unknown>) => void; }): Promise<Record<string, unknown>>; /** 静态语义标准化 */ static normalizeSemanticFields(recipe: Record<string, unknown>): Record<string, unknown>; }