"""入口点 - python -m xiaoli""" import sys import os import argparse import time from colorama import init # 确保项目根目录在 sys.path 中 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) def main(): parser = argparse.ArgumentParser(description="小狸 Pro-CLI - 智能编程助手") parser.add_argument('--tui', action='store_true', help='启动 TUI 模式') parser.add_argument('--engine', type=str, help='指定 AI 引擎') parser.add_argument('--version', action='store_true', help='显示版本') args = parser.parse_args() init(autoreset=True) if args.version: from xiaoli import __version__ print(f"小狸 Pro-CLI v{__version__}") return # 启动动画 _show_art() from xiaoli.app import App app = App() if args.engine: app._switch_model(args.engine) if args.tui: app._run_tui() else: app.run() def _show_art(): """启动艺术字""" art = [ "█████████████████████████████████████████████████████████████████████████████████████████████████████", "██████████ ▒████████████████████████████████████████████████████", "██████████ ░██████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████", "██████████ ▓█████████████████████████████████████████████████████████", "██████████ ▒███████████████████████████████████████████████████████████", "██████████ █████████████████████████████████████████████████████████████", "██████████ ███████████████████████████████████████████████████████████████", "██████████ ▓███████████████████████████████████████████████████████████████", "██████████ ░████████████████████████████████████████████████████████████████", "██████████ ██████████████████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████████████████", "██████████ ▓████████████████████████████████████████████████████████████████████", "██████████ ░██████████████████████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████████████████████", "██████████ ██████████████████████████████████████████████████████████████████████████", "██████████ ░██████████████████████████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████████████████████████", "██████████ ▓██████████████████████████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████████████████████████", "██████████ ████████████████████████████████████████████████████████████████████████████", "███████████ ████████████████████████████████████████████████████████████████████████████", "█████████████▓ ████████████████████████████████████████████████████████████████████████████", "█████████████████ ▓██████████████████████████████████████████████████████████████████████████", "███████████████████▒ ████████████████████████████████████████████████████████████████████████████", "█████████████████████████████████████████████████████████████████████████████████████████████████████", "█████████████████████████████████████████████████████████████████████████████████████████████████████", ] for line in art: try: print(line, flush=True) except UnicodeEncodeError: pass time.sleep(0.03) if __name__ == "__main__": main()