@click.command("clean")
@click.option(
"--all",
is_flag=True,
help="Clean both work environment and helpers",
)
@click.option(
"--helpers",
is_flag=True,
help="Clean only helper binaries",
)
@click.option(
"--dry-run",
is_flag=True,
help="Show what would be removed without removing",
)
@click.option(
"--yes",
"-y",
is_flag=True,
help="Skip confirmation prompt",
)
def clean_command(all: bool, helpers: bool, dry_run: bool, yes: bool) -> None:
"""Clean work environment cache (default) or helpers."""
log.debug(
"Clean command started",
all=all,
helpers=helpers,
dry_run=dry_run,
yes=yes,
)
# Determine what to clean
clean_workenv = not helpers or all
clean_helpers = helpers or all
if dry_run:
pout("🔍 DRY RUN - Nothing will be removed\n")
total_freed = 0
if clean_workenv:
total_freed += _clean_workenv_cache(dry_run, yes)
if clean_helpers:
total_freed += _clean_helper_binaries(dry_run, yes)
_show_total_freed(dry_run, total_freed)