//! View subcommand - interactive TUI browser for contracts and tasks. //! //! The `makima view` command provides an interactive Terminal User Interface (TUI) //! for browsing and managing makima contracts and their tasks. It features //! drill-down navigation, fuzzy search filtering, and real-time task output streaming. //! //! # Usage //! //! ```bash //! # Browse contracts interactively //! makima view //! //! # Browse with an initial search query //! makima view "my project" //! //! # Change directory to selected task's worktree //! cd $(makima view) //! ``` //! //! # Keyboard Shortcuts //! //! | Key | Action | //! |---------------|-------------------------------| //! | `↑` / `k` | Move selection up | //! | `↓` / `j` | Move selection down | //! | `Enter` / `l` | Drill into item | //! | `Esc` / `h` | Go back to previous view | //! | `e` | Edit item (inline) | //! | `d` | Delete item (with confirm) | //! | `/` | Focus search input | //! | `Space` | Show details in preview pane | //! | `q` | Quit | //! | `c` | Navigate to worktree (cd) | //! | `r` | Refresh data | //! //! # Navigation //! //! - **Contracts view**: Lists all contracts. Press Enter to see tasks. //! - **Tasks view**: Shows tasks for a contract. Press Enter to view output. //! - **Output view**: Streams real-time task output with tool call formatting. //! //! # Features //! //! - **Drill-down Navigation**: Contracts → Tasks → Task Output //! - **Fuzzy Search**: Type to filter items in real-time //! - **Real-time Streaming**: View live task output via WebSocket //! - **Preview Pane**: See item details without leaving the list use clap::Args; /// Interactive TUI browser for contracts and tasks. /// /// Provides a fuzzy-searchable interface for browsing contracts, /// viewing their tasks, and streaming real-time task output. /// /// # Examples /// /// Browse contracts: /// ```bash /// makima view /// ``` /// /// Browse with initial search: /// ```bash /// makima view "auth" /// ``` #[derive(Args, Debug, Clone)] pub struct ViewArgs { /// API URL for the makima server #[arg(long, env = "MAKIMA_API_URL", default_value = "https://api.makima.jp")] pub api_url: String, /// API key for authentication #[arg(long, env = "MAKIMA_API_KEY")] pub api_key: String, /// Initial search query /// /// Pre-populates the search field with this query when the TUI opens. #[arg(index = 1)] pub query: Option, /// Disable the preview pane /// /// Shows only the item list without the side preview panel. /// Useful for smaller terminal windows. #[arg(long)] pub no_preview: bool, }