/** * Atlas Frame - Spatial neighborhood extraction from policy graph * * Computes the "map page" around a set of modules with fold radius. * Implements full policy graph traversal with N-hop neighborhood extraction. */ export interface AtlasFrame { atlas_timestamp: string; seed_modules: string[]; fold_radius: number; modules: AtlasModule[]; edges: AtlasEdge[]; critical_rule: string; } export interface AtlasModule { id: string; coords?: [number, number]; owns_paths?: string[]; owns_namespaces?: string[]; allowed_callers?: string[]; forbidden_callers?: string[]; feature_flags?: string[]; requires_permissions?: string[]; kill_patterns?: string[]; notes?: string; } export interface AtlasEdge { from: string; to: string; allowed: boolean; reason?: string; } /** * Generate Atlas Frame for a set of seed modules * * Implements full fold radius algorithm with policy graph traversal: * - Loads policy graph from lexmap.policy.json * - Starts with seed modules * - Expands N hops via allowed_callers/forbidden_callers edges * - Includes full policy metadata for all discovered modules * - Returns complete neighborhood with edges and coordinates * * Algorithm: * 1. Load policy from lexmap.policy.json * 2. Use BFS to extract N-hop neighborhood from seed modules * 3. Generate 2D coordinates for visualization * 4. Include full PolicyModule metadata for each module * 5. Include all edges (allowed + forbidden) between modules * * @param seedModules - Module IDs from Frame.module_scope * @param foldRadius - How many hops to expand (default: 1) * @param policyPath - Optional custom policy path * @returns Atlas Frame with neighborhood context */ export declare function generateAtlasFrame(seedModules: string[], foldRadius?: number, policyPath?: string): AtlasFrame; /** * Format Atlas Frame for display in MCP response */ export declare function formatAtlasFrame(atlasFrame: AtlasFrame): string;