import * as path from 'path'; /** Directory names to skip when walking or listing workspaces. */ export const EXCLUDED = new Set(['node_modules', '.git', 'dist', 'build', 'lib', '.cache', 'coverage']); /** Resolve a relative path safely within a workspace root — throws if it tries to escape. */ export function safeResolve(root: string, rel: string): string { const resolved = path.resolve(root, rel); if (!resolved.startsWith(path.resolve(root))) { throw new Error(`Path escapes workspace: ${rel}`); } return resolved; }