import Foundation /// Configuration for StatusBarMenuManager setup. /// /// This struct bundles all the service dependencies required to initialize /// the status bar menu manager. It ensures all necessary services are provided /// during initialization, following the dependency injection pattern. struct StatusBarMenuConfiguration { /// Monitors active terminal sessions. /// /// Tracks the lifecycle of terminal sessions, providing real-time /// updates about session state, activity, and metadata. let sessionMonitor: SessionMonitor /// Manages the VibeTunnel web server. /// /// Handles starting, stopping, and monitoring the embedded or /// development web server that serves the terminal interface. let serverManager: ServerManager /// Provides ngrok tunnel functionality. /// /// Manages ngrok tunnels for exposing local terminal sessions /// to the internet with secure HTTPS endpoints. let ngrokService: NgrokService /// Provides Tailscale network functionality. /// /// Manages Tailscale integration for secure peer-to-peer /// networking without exposing sessions to the public internet. let tailscaleService: TailscaleService /// Launches terminal applications. /// /// Handles opening new terminal windows or tabs in the user's /// preferred terminal application (Terminal.app, iTerm2, etc.). let terminalLauncher: TerminalLauncher /// Monitors Git repository states. /// /// Provides real-time information about Git repositories, /// including branch status, uncommitted changes, and sync state. let gitRepositoryMonitor: GitRepositoryMonitor /// Discovers Git repositories on the system. /// /// Scans and indexes Git repositories for quick access /// and provides repository suggestions in the UI. let repositoryDiscovery: RepositoryDiscoveryService /// Manages application configuration. /// /// Handles reading and writing configuration settings, /// including user preferences and system settings. let configManager: ConfigManager /// Manages Git worktrees. /// /// Provides functionality for creating, listing, and managing /// Git worktrees for parallel development workflows. let worktreeService: WorktreeService }