Files
mistral-vibe/vibe/setup/onboarding/__init__.py
Quentin d8dbeeb31e v1.2.0
Co-Authored-By: Quentin Torroba <quentin.torroba@mistral.ai>
Co-Authored-By: Michel Thomazo <michel.thomazo@mistral.ai>
Co-Authored-By: Kracekumar <kracethekingmaker@gmail.com>
2025-12-18 17:49:14 +01:00

41 lines
1.2 KiB
Python

from __future__ import annotations
import sys
from rich import print as rprint
from textual.app import App
from vibe.core.paths.global_paths import GLOBAL_ENV_FILE
from vibe.setup.onboarding.screens import (
ApiKeyScreen,
ThemeSelectionScreen,
WelcomeScreen,
)
class OnboardingApp(App[str | None]):
CSS_PATH = "onboarding.tcss"
def on_mount(self) -> None:
self.install_screen(WelcomeScreen(), "welcome")
self.install_screen(ThemeSelectionScreen(), "theme_selection")
self.install_screen(ApiKeyScreen(), "api_key")
self.push_screen("welcome")
def run_onboarding(app: App | None = None) -> None:
result = (app or OnboardingApp()).run()
match result:
case None:
rprint("\n[yellow]Setup cancelled. See you next time![/]")
sys.exit(0)
case str() as s if s.startswith("save_error:"):
err = s.removeprefix("save_error:")
rprint(
f"\n[yellow]Warning: Could not save API key to .env file: {err}[/]"
"\n[dim]The API key is set for this session only. "
f"You may need to set it manually in {GLOBAL_ENV_FILE.path}[/]\n"
)
case "completed":
pass