autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
41 lines (40 loc) • 1.79 kB
TypeScript
/**
* PanoramaAggregator — 全景数据汇总
*
* 编排 RoleRefiner → CouplingAnalyzer → LayerInferrer,
* 汇总为统一的 PanoramaResult,附加知识覆盖率和空白区检测。
*
* @module PanoramaAggregator
*/
import type { BootstrapRepositoryImpl } from '../../repository/bootstrap/BootstrapRepository.js';
import type { CodeEntityRepositoryImpl } from '../../repository/code/CodeEntityRepository.js';
import type { KnowledgeEdgeRepositoryImpl } from '../../repository/knowledge/KnowledgeEdgeRepository.js';
import type { KnowledgeRepositoryImpl } from '../../repository/knowledge/KnowledgeRepository.impl.js';
import type { CouplingAnalyzer } from './CouplingAnalyzer.js';
import { DimensionAnalyzer } from './DimensionAnalyzer.js';
import type { ConfigLayer, LayerInferrer } from './LayerInferrer.js';
import type { PanoramaResult } from './PanoramaTypes.js';
import type { ModuleCandidate, RoleRefiner } from './RoleRefiner.js';
export interface PanoramaAggregatorOptions {
roleRefiner: RoleRefiner;
couplingAnalyzer: CouplingAnalyzer;
layerInferrer: LayerInferrer;
bootstrapRepo: BootstrapRepositoryImpl;
entityRepo: CodeEntityRepositoryImpl;
edgeRepo: KnowledgeEdgeRepositoryImpl;
knowledgeRepo: KnowledgeRepositoryImpl;
projectRoot: string;
dimensionAnalyzer?: DimensionAnalyzer;
}
export declare class PanoramaAggregator {
#private;
constructor(opts: PanoramaAggregatorOptions);
/**
* 计算完整全景数据
* @param moduleCandidates 模块候选列表
* @param options.configLayers 来自配置文件的层级声明(如 Boxfile layer 定义)
*/
compute(moduleCandidates: ModuleCandidate[], options?: {
configLayers?: ConfigLayer[] | null;
}): Promise<PanoramaResult>;
}