/** * @signetai/core - Symlink utilities * * Functions for managing symlinks, particularly for skills directories * that need to be shared across different harness installations. */ export interface SymlinkOptions { /** If true, don't actually create symlinks, just report what would happen */ dryRun?: boolean; /** Force recreation of existing symlinks */ force?: boolean; } export interface SymlinkResult { /** Paths where symlinks were created */ created: string[]; /** Paths that were skipped (already exist, not directories, etc.) */ skipped: string[]; /** Errors encountered */ errors: Array<{ path: string; error: string; }>; } /** * Symlink all subdirectories from source to target directory. * * This is used to share skills from ~/.agents/skills/ to harness-specific * directories like ~/.claude/skills/ or ~/.config/opencode/skills/. * * Behavior: * - Only directories are symlinked (files are ignored) * - Existing symlinks are replaced (removed then recreated) * - Real directories at target are skipped to avoid data loss * - Gracefully handles errors (continues with other items) */ export declare function symlinkSkills(sourceDir: string, targetDir: string, options?: SymlinkOptions): SymlinkResult; /** * Create a single directory symlink. * * Creates the symlink at dest pointing to src. * If dest exists and is a symlink, it's replaced. * If dest exists and is real, the operation fails unless force is true. */ export declare function symlinkDir(src: string, dest: string, options?: SymlinkOptions): boolean; //# sourceMappingURL=symlinks.d.ts.map