.tasks/core/VSS-005-cli-integration.md
Add comprehensive CLI support for sidecar operations, making derivative data management accessible from the command line.
See workbench/core/storage/VIRTUAL_SIDECAR_SYSTEM_V2.md Section "CLI Integration" for complete specification.
apps/cli/src/domains/sidecar/mod.rs - New sidecar command domainapps/cli/src/domains/sidecar/args.rs - Command argumentsapps/cli/src/domains/sidecar/list.rs - List sidecarsapps/cli/src/domains/sidecar/usage.rs - Storage usage reportingapps/cli/src/domains/sidecar/cleanup.rs - Cleanup operationssd sidecars subcommand familysd sidecars list <content_uuid> - list all sidecars for contentsd sidecars usage - show storage usage by kindsd sidecars pending - show generation queuesd sidecars cleanup - clean up old/orphaned sidecarssd sidecars regenerate <content_uuid> - force regeneration--limit and --page flagssd cp sidecar://... workssd ls sidecar://... workssd rm sidecar://... works with confirmationsd cat sidecar://.../ocr.json workssd info sidecar://... for detailed statussd sidecars list# List all sidecars for a content item
sd sidecars list 550e8400-e29b-41d4-a716-446655440000
# Output:
# Sidecars for content 550e8400-e29b-41d4-a716-446655440000
# ┌──────────────┬────────────┬────────┬──────────┬──────────┐
# │ Kind │ Variant │ Format │ Size │ Status │
# ├──────────────┼────────────┼────────┼──────────┼──────────┤
# │ Thumbnail │ grid@2x │ webp │ 45.2 KB │ Ready │
# │ Thumbnail │ detail@1x │ webp │ 128 KB │ Ready │
# │ OCR │ default │ json │ 2.3 KB │ Ready │
# │ Embeddings │ all-MiniLM │ json │ 1.2 KB │ Ready │
# └──────────────┴────────────┴────────┴──────────┴──────────┘
# Total: 176.7 KB across 4 sidecars
# List specific kind
sd sidecars list 550e8400... --kind thumb
# List with paths
sd sidecars list 550e8400... --show-paths
sd sidecars usage# Show overall sidecar storage usage
sd sidecars usage
# Output:
# Sidecar Storage Usage
# ┌──────────────┬───────┬──────────┬──────────┐
# │ Kind │ Count │ Size │ Avg/File │
# ├──────────────┼───────┼──────────┼──────────┤
# │ Thumbnails │ 45234 │ 2.3 GB │ 52 KB │
# │ Proxies │ 1245 │ 18.7 GB │ 15.4 MB │
# │ OCR │ 8934 │ 234 MB │ 27 KB │
# │ Transcripts │ 3456 │ 1.1 GB │ 334 KB │
# │ Embeddings │ 12456 │ 89 MB │ 7 KB │
# ├──────────────┼───────┼──────────┼──────────┤
# │ Total │ 71325 │ 22.4 GB │ 330 KB │
# └──────────────┴───────┴──────────┴──────────┘
# Show usage for specific kind
sd sidecars usage --kind proxy
# Show usage by variant
sd sidecars usage --by-variant
sd sidecars pending# Show pending sidecar generation jobs
sd sidecars pending
# Output:
# Pending Sidecar Generation
# ┌──────────────┬─────────┬─────────┬──────────┐
# │ Kind │ Queued │ Running │ Failed │
# ├──────────────┼─────────┼─────────┼──────────┤
# │ Thumbnails │ 456 │ 12 │ 3 │
# │ OCR │ 89 │ 5 │ 0 │
# │ Transcripts │ 23 │ 2 │ 1 │
# └──────────────┴─────────┴─────────┴──────────┘
# Show details for failed jobs
sd sidecars pending --failed
sd sidecars cleanup# Clean up orphaned sidecars
sd sidecars cleanup
# Output:
# Scanning for orphaned sidecars...
# Found 45 sidecars for deleted content
# Total: 234 MB
# Clean up? [y/N] y
# Deleted 45 sidecars, freed 234 MB
# Dry run mode
sd sidecars cleanup --dry-run
# Clean specific kind
sd sidecars cleanup --kind proxy --older-than 180d
sd sidecars regenerate# Regenerate all sidecars for a content item
sd sidecars regenerate 550e8400-e29b-41d4-a716-446655440000
# Output:
# Regenerating sidecars for 550e8400...
# ✓ Thumbnails: 3 variants queued
# ✓ OCR: queued
# ✓ Embeddings: queued
# Jobs queued: 5
# Regenerate specific kind
sd sidecars regenerate 550e8400... --kind thumb --variant grid@2x
# Copy thumbnail to local file
sd cp sidecar://550e8400.../thumbs/[email protected] ~/Desktop/thumb.webp
# List all thumbnails
sd ls "sidecar://*/thumbs/*" --limit 100
# Export all OCR text
sd cp "sidecar://*/ocr/ocr.json" ~/ocr-exports/
# Delete large proxies
sd rm "sidecar://*/proxies/2160p"
# Output:
# ️ This will delete 1,247 files totaling 45.2GB
# Continue? [y/N]
# View OCR text directly
sd cat sidecar://550e8400.../ocr/ocr.json | jq .text
# Check sidecar info
sd info sidecar://550e8400.../thumbs/[email protected]
# Output:
# Path: sidecar://550e8400-e29b-41d4-a716-446655440000/thumbs/[email protected]
# Status: Ready
# Size: 45.2 KB
# Format: WebP
# Created: 2025-10-15 14:32:11
# Local: Yes
# Available on: MacBook Pro, Home Server
# Checksum: abc123...
sd sidecars list shows all sidecars for contentsd sidecars usage shows storage breakdownsd sidecars pending shows generation queuesd sidecars cleanup removes orphaned sidecarssd sidecars regenerate triggers regenerationsd cp sidecar://... copies sidecarssd ls sidecar://... lists sidecar directoriessd rm sidecar://... deletes with confirmationsd cat sidecar://... displays contentsd info sidecar://... shows detailed status--json flag)Estimated: 4-5 days focused work