Use fs.realpath() in config-source-discovery to resolve symlinks before
loading skills, preventing duplicate/mismatched paths on systems where
tmpdir() returns a symlink (e.g., macOS /var → /private/var). Also adds
agents-config-dir utility for ~/.agents path resolution.
resolveSymlink and resolveSymlinkAsync incorrectly resolved relative
symlinks by using path.resolve(filePath, '..', linkTarget). This fails
when symlinks use multi-level relative paths (e.g. ../../skills/...) or
when symlinks are chained (symlink pointing to a directory containing
more symlinks).
Replace with fs.realpathSync/fs.realpath which delegates to the OS for
correct resolution of all symlink types: relative, absolute, chained,
and nested.
Fixes#1738
AI-assisted-by: claude-opus-4.6 via opencode
AI-contribution: partial
AI-session: 20260212-120629-4gTXvDGV