| CLI registration | src/cli.ts, src/commands/*.ts | ESM imports use .js extensions |
| Config | src/config/schema.ts, loader.ts, writer.ts | Zod validation, cosmiconfig module name lab, YAML writing |
| SSH | src/ssh/client.ts, manager.ts | Uses ssh2, not node-ssh; manager caches connections and cleans up on exit/SIGINT |
| Slurm | src/slurm/commands.ts, parser.ts, detector.ts, presets.ts | JSON support detection is cached; parsers fall back to text |
| Transfer | src/transfer/rsync.ts, sftp.ts | sync requires local rsync; upload has SFTP path only for small files |
| Remote | src/remote/types.ts, ssh-execution.ts, local-execution.ts, mock-execution.ts | RemoteExecution interface with SSH, local, and mock implementations |
| Job | src/job/metadata.ts, path.ts | JobMetadata and JobPath for job directory structure and metadata management |
| Utils | src/utils/checks.ts, ssh-helpers.ts, shell.ts, errors.ts | Doctor checks, SSH option construction, tilde expansion/shell quoting, CLI error handling |
| Tests | src/**/__tests__/*.test.ts, src/cli.test.ts, src/package.test.ts | Commands use Vitest mocks for ora, chalk, SSH, config, transfer |