CLI entry point.
()
| 727 | |
| 728 | |
| 729 | def main(): |
| 730 | """CLI entry point.""" |
| 731 | parser = argparse.ArgumentParser(description="RightNow CLI - CUDA AI Assistant") |
| 732 | |
| 733 | parser.add_argument("--working-dir", type=Path, default=None, help="Working directory") |
| 734 | parser.add_argument("--model", type=str, default=None, help="Override model") |
| 735 | parser.add_argument("--agent", type=str, choices=["optimizer", "debugger", "analyzer", "general"], default="general", help="Starting agent") |
| 736 | parser.add_argument("--no-routing", action="store_true", help="Disable auto-routing") |
| 737 | parser.add_argument("--continue", dest="continue_session", action="store_true", help="Continue latest session") |
| 738 | parser.add_argument("--resume", action="store_true", help="Show list of sessions to resume from") |
| 739 | |
| 740 | args = parser.parse_args() |
| 741 | |
| 742 | # Working directory |
| 743 | working_dir = args.working_dir or Path.cwd() |
| 744 | |
| 745 | # Handle session resumption |
| 746 | session_id_to_load = None |
| 747 | |
| 748 | if args.continue_session: |
| 749 | # Load latest session |
| 750 | session_id_to_load = load_latest_session(working_dir) |
| 751 | if not session_id_to_load: |
| 752 | console.print("[yellow]Starting new session instead...[/yellow]\n") |
| 753 | |
| 754 | elif args.resume: |
| 755 | # Interactive session selection |
| 756 | session_id_to_load = list_sessions_interactive(working_dir) |
| 757 | if not session_id_to_load: |
| 758 | console.print("[yellow]Starting new session instead...[/yellow]\n") |
| 759 | |
| 760 | # Config |
| 761 | config_overrides = {} |
| 762 | if args.model: |
| 763 | config_overrides["model"] = args.model |
| 764 | |
| 765 | # Initialize |
| 766 | try: |
| 767 | orchestrator = AgentOrchestrator(working_dir=working_dir, config_overrides=config_overrides) |
| 768 | except Exception as e: |
| 769 | show_error(f"Init failed: {e}") |
| 770 | sys.exit(1) |
| 771 | |
| 772 | # Restore session if requested |
| 773 | if session_id_to_load: |
| 774 | if not orchestrator.restore_session(session_id_to_load): |
| 775 | show_warning("Failed to restore session, starting fresh") |
| 776 | else: |
| 777 | # Setup fresh session |
| 778 | if args.agent != "general": |
| 779 | orchestrator.switch_agent(args.agent) |
| 780 | |
| 781 | if args.no_routing: |
| 782 | orchestrator.toggle_auto_routing() |
| 783 | |
| 784 | # Run |
| 785 | interactive_mode(orchestrator) |
| 786 |