#!/usr/bin/env python3 """ 测试现代化命令替代功能 """ import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) from ai_shell.config import ( get_modern_commands, get_available_modern_commands, generate_modern_commands_prompt ) def test_modern_commands(): """测试现代化命令配置""" print("🧪 测试现代化命令替代功能\n") # 测试获取所有配置的现代化命令 print("1. 所有配置的现代化命令:") all_commands = get_modern_commands() for old_cmd, new_cmd in sorted(all_commands.items()): status = "✅" if old_cmd != new_cmd else "➡️" print(f" {status} {old_cmd} → {new_cmd}") print(f" 总计: {len(all_commands)} 个命令\n") # 测试获取系统中可用的现代化命令 print("2. 系统中可用的现代化命令:") available_commands = get_available_modern_commands() active_alternatives = {k: v for k, v in available_commands.items() if k != v} unchanged_commands = {k: v for k, v in available_commands.items() if k == v} if active_alternatives: print(" 已启用的替代:") for old_cmd, new_cmd in sorted(active_alternatives.items()): print(f" ✅ {old_cmd} → {new_cmd}") if unchanged_commands: print(f" 保持原样: {', '.join(sorted(unchanged_commands.keys()))}") print(f" 可用命令总计: {len(available_commands)} 个\n") # 测试生成提示词 print("3. 生成的 AI 提示词:") prompt = generate_modern_commands_prompt() if prompt: print(prompt) else: print(" 无可用的现代化命令替代") def test_custom_config(): """测试自定义配置""" print("\n" + "="*60) print("🔧 测试自定义配置") # 设置自定义环境变量 original_env = os.environ.get("AI_SHELL_MODERN_COMMANDS", "") os.environ["AI_SHELL_MODERN_COMMANDS"] = "ls:exa,cat:bat,find:fd,test:custom" print(f"设置环境变量: AI_SHELL_MODERN_COMMANDS={os.environ['AI_SHELL_MODERN_COMMANDS']}") # 重新导入模块以获取新配置 import importlib import ai_shell.config importlib.reload(ai_shell.config) from ai_shell.config import get_modern_commands custom_commands = get_modern_commands() print("\n自定义配置结果:") custom_overrides = ["ls", "cat", "find", "test"] for cmd in custom_overrides: if cmd in custom_commands: print(f" ✅ {cmd} → {custom_commands[cmd]}") # 恢复原始环境变量 if original_env: os.environ["AI_SHELL_MODERN_COMMANDS"] = original_env else: os.environ.pop("AI_SHELL_MODERN_COMMANDS", None) if __name__ == "__main__": test_modern_commands() test_custom_config() print("\n" + "="*60) print("✅ 测试完成!") print("\n使用方法:") print("1. 查看当前配置: ai --config") print("2. 设置自定义替代: export AI_SHELL_MODERN_COMMANDS=\"ls:eza,cat:bat\"") print("3. 测试命令生成: ai \"列出文件\"")