Return a sorted list of available agent names from ~/.deepagents/.
Scans the user's .deepagents directory and returns each real
subdirectory found there. Symlinks excluded so a dangling link does not
masquerade as an agent. Dot-prefixed entries (e.g., .state/) and
reserved app-owned directories (e.g., bin/, the managed-binary install
dir) are skipped so internal state never appears as an agent.
Filesystem errors (missing parent, permission denied, broken entries) are logged and surfaced as an empty list rather than raised — the caller shows an empty modal instead of crashing mid-render.