/** * Feature Cluster Processor * * Builds a stable, human-facing feature layer over the raw code graph. * Communities are graph-algorithm clusters; FeatureCluster nodes are * product/domain clusters such as Settings, AI, Auth, Billing, MCP, or * Ingestion. Agents can query this layer first to land directly on the * files, symbols, and line ranges that matter for a task. */ import type { FeatureClusterKind } from '../../_shared/index.js'; import { KnowledgeGraph } from '../graph/types.js'; export interface FeatureClusterNode { id: string; name: string; slug: string; featureKind: FeatureClusterKind; summary: string; description: string; repo?: string; service?: string; signals: string[]; memberCount: number; entryPointIds: string[]; routes: string[]; tools: string[]; testCoverageHints: string[]; lastIndexedCommit?: string; confidence: number; memberIds: string[]; } export interface FeatureClusterMembership { nodeId: string; clusterId: string; confidence: number; signals: string[]; } export interface FeatureClusterDependency { sourceClusterId: string; targetClusterId: string; edgeCount: number; relationshipTypes: string[]; confidence: number; } export interface FeatureClusterDetectionResult { clusters: FeatureClusterNode[]; memberships: FeatureClusterMembership[]; dependencies: FeatureClusterDependency[]; stats: { totalClusters: number; totalMemberships: number; totalDependencies: number; nodesProcessed: number; }; } export interface FeatureClusterConfig { minMembers: number; maxClusters: number; repo?: string; service?: string; lastIndexedCommit?: string; } export declare const processFeatureClusters: (knowledgeGraph: KnowledgeGraph, onProgress?: (message: string, progress: number) => void, config?: Partial) => Promise;