// Onboarding library crate mod agent_onboarding_view; pub mod callout; mod model; pub mod slides; pub mod telemetry; /// The user's intention selected during onboarding slides. #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub enum OnboardingIntention { Terminal, AgentDrivenDevelopment, } impl std::fmt::Display for OnboardingIntention { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { OnboardingIntention::AgentDrivenDevelopment => write!(f, "agent_driven"), OnboardingIntention::Terminal => write!(f, "terminal"), } } } pub use callout::{OnboardingCalloutView, OnboardingKeybindings}; /// User-facing descriptions of the AI features enabled when the agent intention is selected. /// Shared by the intention slide's agent card checklist and the login slide's /// skip-login confirmation dialog so the two always stay in sync. pub const AI_FEATURES: &[&str] = &[ "Use frontier and open-weight models with Warp Agent", "Hand off agent work to cloud agents", "Automatically diagnose and fix terminal errors", "Agentic control of long-running commands and TUIs", "Review code diffs and send comments directly to agents", "Remote control for Claude Code, Codex, and other agents", ]; /// User-facing names of the Warp Drive features enabled when the terminal /// intention is selected with Warp Drive turned on. Shared by the login slide's /// skip-login confirmation dialog so the list stays in sync with any future /// surfaces that need it. pub const WARP_DRIVE_FEATURES: &[&str] = &["Warp Drive", "Session Sharing"]; cfg_if::cfg_if! { if #[cfg(feature = "bin")] { mod telemetry_provider; pub use telemetry_provider::MockTelemetryContextProvider; } } pub mod components; mod visuals; /// The default mode for new sessions, chosen during onboarding. /// Mapped to `DefaultSessionMode` at the application boundary. #[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] pub enum SessionDefault { #[default] Agent, Terminal, } impl std::fmt::Display for SessionDefault { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { SessionDefault::Agent => write!(f, "agent"), SessionDefault::Terminal => write!(f, "terminal"), } } } pub use agent_onboarding_view::{AgentOnboardingAction, AgentOnboardingEvent, AgentOnboardingView}; pub use model::{OnboardingAuthState, SelectedSettings, UICustomizationSettings}; pub use slides::ProjectOnboardingSettings; pub use telemetry::OnboardingEvent; pub fn init(app: &mut galaxyui_core::AppContext) { agent_onboarding_view::init(app); callout::init(app); }