UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

79 lines (78 loc) 2.5 kB
/** * @module ProjectDiscoverer * @description 项目结构发现器 - 统一接口定义 * * 每个实现负责一种构建系统/包管理器的解析。 * Bootstrap Phase 1 通过 DiscovererRegistry 自动选择匹配的实现。 */ export interface DiscoveredTarget { name: string; path: string; type: string; language?: string; framework?: string | null; metadata?: Record<string, unknown>; [key: string]: unknown; } export interface DiscoveredFile { name: string; path: string; relativePath: string; language: string; [key: string]: unknown; } export interface DependencyEdge { from: string; to: string; type: string; /** 依赖作用域 (如 CMake PUBLIC/PRIVATE, Gradle implementation/api) */ scope?: string; /** 构建配置 (如 Gradle configuration) */ configuration?: string; /** 跨语言桥接类型 (如 flutter-engine / native-module / cinterop) */ bridgeType?: string; } export interface DependencyGraphLayer { name: string; order: number; accessibleLayers: string[]; } export interface DependencyGraph { nodes: (string | { id: string; label?: string; type?: string; fullPath?: string; indirect?: boolean; /** 标签 (如 Nx tags, Bazel visibility) */ tags?: string[]; /** 可见性 (如 Bazel //visibility:public) */ visibility?: string[]; /** Convention 角色 (如 Gradle convention plugin 推断的角色) */ conventionRole?: string; [key: string]: unknown; })[]; edges: DependencyEdge[]; /** 层级元数据(来自自研构建系统的分层声明) */ layers?: DependencyGraphLayer[]; } export declare class ProjectDiscoverer { /** 检测此 Discoverer 是否适用于给定项目 */ detect(projectRoot: string): Promise<{ match: boolean; confidence: number; reason: string; }>; /** 加载项目结构(解析配置文件、构建依赖图) */ load(projectRoot: string): Promise<void>; /** 列出所有 Target/模块 */ listTargets(): Promise<DiscoveredTarget[]>; /** 获取指定 Target 下的源码文件列表 */ getTargetFiles(target: DiscoveredTarget): Promise<DiscoveredFile[]>; /** 获取模块间依赖关系图 */ getDependencyGraph(): Promise<DependencyGraph>; /** Discoverer 标识 */ get id(): string; /** 人类可读名称 */ get displayName(): string; }