feat(onboard): pass CLI args as initial config to interactive wizard

--workspace and --config now work as initial defaults in interactive mode:
- The wizard starts with these values pre-filled
- Users can view and modify them in the wizard
- Final saved config reflects user's choices

This makes the CLI args more useful for interactive sessions while
still allowing full customization through the wizard.
This commit is contained in:
chengyongru 2026-03-17 22:55:08 +08:00
parent c191fb3708
commit 91863d9999
2 changed files with 16 additions and 8 deletions

View File

@ -314,8 +314,9 @@ def onboard(
from nanobot.cli.onboard_wizard import run_onboard
try:
config = run_onboard()
save_config(config)
# Pass the config with workspace override applied as initial config
config = run_onboard(initial_config=config)
save_config(config, config_path)
console.print(f"[green]✓[/green] Config saved at {config_path}")
except Exception as e:
console.print(f"[red]✗[/red] Error during configuration: {e}")

View File

@ -938,14 +938,21 @@ def _show_summary(config: Config) -> None:
# --- Main Entry Point ---
def run_onboard() -> Config:
"""Run the interactive onboarding questionnaire."""
config_path = get_config_path()
def run_onboard(initial_config: Config | None = None) -> Config:
"""Run the interactive onboarding questionnaire.
if config_path.exists():
config = load_config()
Args:
initial_config: Optional pre-loaded config to use as starting point.
If None, loads from config file or creates new default.
"""
if initial_config is not None:
config = initial_config
else:
config = Config()
config_path = get_config_path()
if config_path.exists():
config = load_config()
else:
config = Config()
while True:
try: