feat: v3.6 重构 - 拆分 ai_cli.py 为模块化架构
本次更新由 mimo 自动化执行,与开发者无关。 新增 xiaoli/ 包: - __main__.py: 入口点 (python -m xiaoli) - app.py: 主应用薄编排层(~400行 vs 原3860行) - config.py: 配置管理 - engines.py: AI 引擎管理 - sandbox.py: 代码安全沙箱 - prompt.py: 系统提示词构建 - conversation/: 对话解析器 + 历史管理 - display/: CLI/TUI 双模式输出 改进: - 支持 argparse (--tui, --engine, --version) - 插件命令注册表 - 更新 README - 更新 .gitignore 原 ai_cli.py 保留向后兼容
This commit is contained in:
1 parent
95a0e4bc5c
commit
e1eee6a0c2
12 files changed
+1592
-65
No files matched your search
@@ -0,0 +1,83 @@
|
||||
"""入口点 - 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()
|
||||
Reference in new issue
Block a user