#!/usr/bin/env python3 """J.A.R.V.I.S. entry point.""" import argparse from pathlib import Path from jarvis.config import Config from jarvis.memory import Memory from jarvis.llm import get_backend from jarvis.ui import TerminalUI def main(): parser = argparse.ArgumentParser(description="J.A.R.V.I.S. - Alvin OS Personal AI Assistant") parser.add_argument("--config", "-c", type=str, default="config.yaml", help="Path to config file") parser.add_argument("--data-dir", "-d", type=str, default=None, help="Override data directory") args = parser.parse_args() cfg_path = Path(args.config) if cfg_path.exists(): config = Config.from_file(str(cfg_path)) else: print(f"Config not found at {cfg_path}, using defaults.") config = Config.from_env() if args.data_dir: config.data_dir = args.data_dir config.memory.sqlite_path = str(Path(args.data_dir) / "jarvis.db") config.memory.chroma_path = str(Path(args.data_dir) / "chroma") Path(config.data_dir).mkdir(parents=True, exist_ok=True) memory = Memory(config.memory) backend = get_backend(config.llm) ui = TerminalUI(config, memory, backend) ui.run() if __name__ == "__main__": main()