126 lines
4.5 KiB
Markdown
126 lines
4.5 KiB
Markdown
[← Back to AIPass](../../../README.md)
|
|
|
|
# CLI
|
|
|
|
**Purpose:** Display and output formatting service for AIPass modules. Provides consistent terminal output — headers, success/error/warning messages, section breaks, and operation templates — so every module looks the same without duplicating Rich formatting code.
|
|
**Module:** `aipass.cli`
|
|
**Seedgo:** 100%
|
|
**Tests:** 138 passing (6 files, 5/5 modules covered)
|
|
**Last Updated:** 2026-04-07
|
|
|
|
## Usage
|
|
|
|
```python
|
|
from aipass.cli import header, success, error, warning, section
|
|
|
|
header("Creating Branch", {"Name": "feature", "Type": "module"})
|
|
success("Files created", items=12, time="2.3s")
|
|
error("Path not found", suggestion="Check spelling")
|
|
warning("Config missing, using defaults")
|
|
section("Results")
|
|
```
|
|
|
|
### Operation Templates
|
|
|
|
```python
|
|
from aipass.cli import operation_start, operation_complete
|
|
|
|
operation_start("Processing", count=10)
|
|
# ... do work ...
|
|
operation_complete(created=5, skipped=3, failed=0)
|
|
```
|
|
|
|
### Fatal (exit on error)
|
|
|
|
```python
|
|
from aipass.cli.apps.modules.display import fatal
|
|
|
|
fatal("Config file missing", suggestion="Run aipass init first")
|
|
# Prints error message + suggestion, then calls sys.exit(1)
|
|
```
|
|
|
|
### Direct Console Access
|
|
|
|
```python
|
|
from aipass.cli import console
|
|
|
|
console.print("[bold cyan]Custom Rich output[/bold cyan]")
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
cli/
|
|
├── apps/
|
|
│ ├── cli.py # Entry point (main, discover_modules, route_command)
|
|
│ ├── modules/
|
|
│ │ ├── display.py # header, success, error, warning, fatal, section
|
|
│ │ ├── templates.py # operation_start, operation_complete
|
|
│ │ └── init_project.py # aipass init command routing
|
|
│ └── handlers/
|
|
│ ├── init/ # Project bootstrap logic
|
|
│ │ └── bootstrap.py
|
|
│ ├── json/ # JSON file management
|
|
│ │ └── json_handler.py
|
|
│ └── templates/ # Empty — placeholder from scaffold
|
|
├── cli_json/ # Auto-created JSON output (three-file pattern)
|
|
├── dropbox/ # Inbound file drop
|
|
├── logs/ # Branch-level logs
|
|
├── tests/ # 138 tests across 6 files
|
|
│ ├── test_bootstrap.py # bootstrap.py handler tests
|
|
│ ├── test_json_handler.py # json_handler tests
|
|
│ ├── test_display.py # display module tests
|
|
│ ├── test_templates.py # templates module tests
|
|
│ ├── test_init_project.py # init_project module tests
|
|
│ └── test_integration.py # main() flow + entry point tests
|
|
└── .archive/ # Archived stubs (extensions/, json_templates/)
|
|
```
|
|
|
|
- `apps/modules/` — Public API. Import from here.
|
|
- `apps/handlers/` — Internal implementation. Don't import directly.
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
# Via drone
|
|
drone @cli --help # Show services and Rich formatting showcase
|
|
drone @cli --version # Show version
|
|
drone @cli # Show discovered modules (introspection)
|
|
drone @cli aipass # Show aipass subcommands
|
|
drone @cli aipass init # Bootstrap AIPass project in current dir
|
|
drone @cli aipass init /path # Bootstrap in target directory
|
|
drone @cli aipass init /path MyProject # Bootstrap with custom name
|
|
drone @cli aipass init --help # Detailed init usage
|
|
drone @cli display # Display module introspection
|
|
drone @cli display demo # Run display function showcase
|
|
drone @cli templates # Templates module introspection
|
|
drone @cli templates demo # Run templates function showcase
|
|
|
|
# Standalone (no drone required)
|
|
python -m aipass.cli --help # Same help output
|
|
python -m aipass.cli aipass init /path # Bootstrap directly
|
|
aipass --help # Via console_scripts entry point
|
|
```
|
|
|
|
---
|
|
|
|
## Integration Points
|
|
|
|
### Depends On
|
|
- `aipass.prax` — Logging via `system_logger`
|
|
- `rich` — Rich library for terminal formatting (Table, Panel, Columns, Text)
|
|
- Python stdlib (`sys`, `importlib`, `pathlib`)
|
|
|
|
### Provides To
|
|
- All modules — display formatting (headers, success/error/warning, section breaks)
|
|
- All modules — operation templates (`operation_start`, `operation_complete`)
|
|
- All modules — Rich console access
|
|
- All users — `aipass init` project bootstrap command
|
|
|
|
---
|
|
|
|
*Last Updated: 2026-04-07*
|
|
|
|
---
|
|
[← Back to AIPass](../../../README.md)
|