Design document for the CLI output abstraction layer that enables:
- Commands returning structured data instead of formatted strings
- Multiple output formats (table, json, yaml, quiet)
- Testable output without parsing strings
- Streaming support for logs/attach commands
Draws from patterns in Docker CLI, kubectl, and GitHub CLI.
- Install zx as devDependency for E2E testing
- Create tests/ directory with setup utilities
- Add setup.ts with test context helpers:
- Random port generation (never 6767)
- Temp directory creation for PASEO_HOME and workDir
- Daemon startup/waitForDaemon helper (WebSocket only)
- Cleanup function
- paseo() helper to run CLI commands against test daemon
- Add Phase 1 foundation tests (01-foundation.test.mts):
- Test paseo --version outputs version
- Test paseo --help shows commands
- Add test runner (run-all.mts) that discovers and runs all tests
- Add test:e2e script to package.json