""" Export and reporting CLI commands. """ import sys from typing import Optional from tddai import TddaiError from services import ExportService from cli.presenters import OutputFormatter class ExportCommands: """Commands for data export and reporting.""" def __init__(self): self.service = ExportService() def issue_index(self, format_type: str = "tsv", sort_by: str = "number", filter_state: Optional[str] = None, filter_priority: Optional[str] = None, include_state: bool = False) -> None: """Output compact index of all issues for Unix processing. Args: format_type: Output format (tsv, csv, json, fields) sort_by: Sort by field (number, title, priority, state, created, updated) filter_state: Filter by state (open, closed) filter_priority: Filter by priority (low, medium, high, critical, none) include_state: Include state column in output """ try: output = self.service.export_issues( format_type=format_type, sort_by=sort_by, filter_state=filter_state, filter_priority=filter_priority, include_state=include_state ) # Output directly to stdout for piping print(output) except TddaiError as e: # Send error to stderr to avoid corrupting piped output print(f"❌ Error: {e}", file=sys.stderr) sys.exit(1)