Break the 507-line monolithic validate_and_render_schema() into focused modules with pure validation functions, proper error handling, and clean I/O separation: - config_providers.py: provider constants, ConfigValidationError, unified URL parsing (replaces 3 different inline implementations) - config_validator.py: 11 pure validation functions (no I/O, no print/exit) - config_generator.py: thin 146-line I/O orchestrator, reads files once (was twice), uses logging instead of print() Also cleans up module responsibilities: - Move stream_access_logs from utils.py to docker_cli.py (Docker operation) - Deduplicate llm_providers->model_providers migration - Fix "Model alias 2 -" debug artifact in error message - Update docker-compose.dev.yaml volume mounts for new files - Rewrite tests: 53 tests calling pure functions directly (no mock_open chains), up from 10 brittle mock-dependent tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| planoai | ||
| test | ||
| build_cli.sh | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
plano CLI - Local Development
This guide will walk you through setting up the plano CLI for local development using uv.
Install uv
First, install the uv package manager. This is required for managing dependencies and running the development version of planoai.
On macOS and Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
On Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Setup
-
Install dependencies
In the cli directory, run:
uv syncThis will create a virtual environment in
.venvand install all dependencies frompyproject.toml. -
Install the CLI tool globally (optional)
To install planoai as a global tool on your system:
uv tool install --editable .This installs planoai globally in editable mode, allowing you to run
planoaicommands from anywhere while still using the source code from this directory. Any changes you make to the code will be reflected immediately. -
Run plano commands
Use
uv runto execute plano commands with the development version:uv run planoai buildOr, if you installed globally with
uv tool install .:planoai buildNote:
uv runautomatically uses the virtual environment - no activation needed.
Development Workflow
Build plano:
uv run planoai build
View logs:
uv run planoai logs --follow
Run other plano commands:
uv run planoai <command> [options]
Optional: Manual Virtual Environment Activation
While uv run handles the virtual environment automatically, you can activate it manually if needed:
source .venv/bin/activate
planoai build # No need for 'uv run' when activated
Note: For end-user installation instructions, see the plano documentation.