feat(cli,drone): CLI front door — seedgo-compliant discovery + drone internal module

CLI entry point rewritten to follow seedgo auto-discovery pattern:
- discover_modules() scans for handle_command() instead of hardcoded list
- Introspection shows routable modules vs import-only services
- init_project.py now owns the 'aipass' command with subcommand routing
- Rich colors fixed (force_terminal=True) for drone subprocess pipes

CLI registered as drone internal module (drone_adapter.py):
- drone @cli accessible from any directory, not just inside AIPass repo
- drone @cli aipass init works from external projects
- Drone introspection now shows 3 internal modules: cli, drone, seedgo

Drone: CLI added to interactive allow list for terminal passthrough.

Co-Authored-By: @devpulse <devpulse@aipass>
This commit is contained in:
AIOSAI
2026-03-15 14:05:35 -07:00
co-authored by @devpulse
parent bfeb6c0ec7
commit 091c1b710c
7 changed files with 542 additions and 356 deletions
+2 -2
View File
@@ -33,9 +33,9 @@ from rich.columns import Columns
# from aipass.prax import logger
# Initialize Rich console (lowercase follows service instance pattern)
CONSOLE = Console() # Internal constant
CONSOLE = Console(force_terminal=True) # Internal constant — force_terminal ensures ANSI colors even when piped
console = CONSOLE # Primary export (lowercase service instance pattern)
err_console = Console(stderr=True) # Stderr console for error/warning output
err_console = Console(stderr=True, force_terminal=True) # Stderr console for error/warning output
# Trigger loaded lazily to avoid circular import
_trigger = None