👤 用户
你帮我遍历整个cmdcode的代码,他具有哪些技能和工具?完整的用纯文字列出来。
🤖 DeepSeek 助手

CmdCode V0.5.0 拥有以下完整的技能与工具集,涵盖交互、对话、安全、记忆与自动化测试:


一、对话与交互技能

  1. 交互式 REPL 模式
  2. 单次执行模式
  3. 继续上次会话
  4. 会话管理
  5. 帮助系统
  6. 中英文实时切换
  7. - 直接运行 cmdcode 进入实时对话界面,支持多轮连续对话。 - 通过 cmdcode -p "提示词" 一次性获取答案并自动退出。 - 使用 -p "提示" -c--continue 恢复最近一次对话历史。 - /session list 列出所有本地会话(时间、消息数、预览)。 - /session read 查看指定会话的完整消息记录。 - /session delete 删除某个会话。 - /session cleanup 自动清理低价值会话(消息少、内容短等)。 - /card/sessions/history 快速概览会话列表。 - /help 显示全部交互命令、选项、环境变量说明。 - /en 切换为英文界面,/cn 切换为中文界面,语言偏好持久化保存。


二、模型与配置管理

  1. 模型选择与切换
  2. 内置模型库
  3. 自定义 API 接入
  4. 用户个人模型加密存储
  5. 快速设置密钥
  6. - /model 打开交互式模型管理:查看当前模型、已保存配置、添加内置或自定义模型。 包含 16 个预置提供商的免费/付费模型: - Groq Llama-3.3-70B(免费) - Google Gemini Flash(免费) - MiniMax 系列(付费/套餐) - DeepSeek V4 Flash/Pro(免费/付费) - 火山引擎 CodingPlan(字节跳动,付费) - 腾讯云 CodingPlan(混元系列,付费) - 阿里云百炼 Qwen-Plus/Turbo(免费) - 智谱AI GLM-4-Flash(免费) - 月之暗面 Moonshot-v1-8k(免费) - 腾讯混元 Hunyuan-Lite(免费) - 零一万物 Yi-Lightning(免费) 支持任意 OpenAI 兼容 API,用户可手动输入 URL、Key、模型 ID。 每个用户拥有独立的 ~/.cmdcode/workspaces//models/ 目录,模型配置(含 API Key)以 AES-256 加密存储。 /set 一键添加默认 URL 的 API Key;/set 进入完整交互式配置向导(含连接测试)。


三、AI 工具执行系统(自带六种核心工具)

所有工具均受五重沙箱限制(CPU、内存、进程、磁盘、网络),确保安全隔离。

  1. file_read – 读取文件
  2. file_write – 写入文件
  3. file_edit – 编辑文件
  4. bash_run – 执行 Shell 命令
  5. grep_search – 文本搜索
  6. list_dir – 列出目录内容
  7. 可指定行号范围和输出行数,单次最多 1MB,仅限用户工作区内访问。 覆盖式写入,内容限制 10MB,自动创建目录,受磁盘配额(项目总容量 1GB、文件数 5000)控制。 查找并替换文本片段,编辑后仍受大小和配额限制。 - 超时硬限制(30 秒) - CPU 时间 ulimit(10 秒) - 内存上限 256MB - 子进程数 ≤4 - 禁止危险操作(sudo、fork 炸弹、端口扫描、内网访问等) - 白名单控制网络请求(仅允许 npm、pip、GitHub 等少数域名) 使用 rggrep 在工作区内按正则模式搜索,返回带行号的结果,最多 50 条。 显示指定目录下的文件和子目录,工作在用户工作区根目录内。


四、向量记忆与语义搜索

  1. 记忆系统初始化
  2. 多模态记忆搜索
  3. 自动回填
  4. 记忆配置
  5. 启动时自动创建 SQLite 数据库(含 FTS5 全文索引)和向量表。 /memory <关键词> 通过 RRF(倒数排序融合)综合 FTS5 关键词搜索结果和向量语义搜索结果,返回最相关历史消息。 定时(每 5 分钟)将新消息生成 Embedding(火山引擎 ARK 模型)并存入向量表,支持失败重试。 /set mem 单独设置 Embedding 服务的 API Key(加密存储)。


五、密钥管理与安全

  1. 安全密钥池(管理员专属)
  2. 实时密钥轮换
  3. 每日自动重置
  4. 全链路加密
  5. /keypool list|add chat|add embed|remove chat|remove embed 全局共享的加密密钥库,Key 不可逆加密存储,仅管理员可管理。 当 API 返回 429(限流/配额耗尽)时,自动切换至密钥池中的下一个可用 Key,保障服务连续性。 每日凌晨自动重置密钥池的耗尽状态,避免永久停服。 - 所有 API Key 使用 AES-256-CBC 加密,密钥派生自 /etc/machine-id。 - 用户 Token、工作区数据等敏感信息均加密存储于 ~/.cmdcode/secrets.enc(权限 600)。 - 运行时密钥仅在内存中解密,用完即弃。


六、用户认证与工作区

  1. 远程注册/登录
  2. 自动登录
  3. 工作区隔离
  4. 断点续传
  5. 配额管理
  6. 通过 cmdcode.cn 的 API 实现账号注册与登录,返回 JWT Token。 Token 加密缓存于本地,下次启动时自动验证,无需重复输入。 每个用户拥有 ~/.cmdcode/workspaces// 专属目录,所有文件操作限于此。 退出时自动将当前工作区文件快照和对话历史上传至云端,下次登录可恢复完整编程环境。 显示存储用量(/100MB),支持远程查询和更新配额。


七、自动化测试框架(自举闭环)

  1. 题库系统
  2. 单题测试执行器
  3. 结果评估器
  4. 错误分析器
  5. 自动修复循环
  6. 报告生成
  7. 支持加载 HumanEval、MBPP 等标准编程基准,自动转换为内部格式。 模拟用户发送编程提示词,捕获 AI 输出和生成的文件。 根据预期代码模式、单元测试等规则自动判定通过/失败。 分析失败原因(超时、模式不匹配、功能缺失等),生成修复建议。 根据分析结果修改源代码,重新运行测试,直到题目通过或无法修复。 汇总所有题目结果,输出 Markdown 格式的测试报告,包含通过率、失败详情等。


八、其他辅助能力

  1. 快捷键支持
  2. 剪贴板跨 TTY 共享
  3. 配置脱敏显示
  4. 进程信号优雅退出
  5. 在 REPL 中,Ctrl+C 复制当前输入,Ctrl+X 剪切,Ctrl+V 粘贴,Ctrl+E 安全退出。 通过 /tmp/cmdcode-clipboard.txt 实现不同终端会话间的文字复制粘贴。 loadSafeConfig() 可输出隐藏了真实 Key 的安全视图,方便日志和调试。 收到 SIGINT、SIGTERM、SIGHUP 时自动保存工作区并退出。


以上完整覆盖了 CmdCode 的全部技能与工具,所有功能均可在纯源码模式下通过 bun run src/cli.ts 运行,无需编译。

🧐 深度思考过程
我们被要求遍历整个CmdCode代码,列出其具有的技能和工具,并用纯文字完整列出。需要基于提供的文件内容进行分析。我们从提供的文件中提取信息。 根据提供的代码文件,CmdCode是一个AI编程助手CLI工具。其核心功能包括:对话引擎、工具系统(沙箱)、向量记忆系统等。 技能(功能)和工具列表如下: **1. 交互模式**:用户可以在REPL模式下与AI对话,执行命令。 **2. 单次执行模式**:通过命令行参数`-p`直接提问并获取回复。 **3. 继续会话**:通过`--continue`继续上次会话。 **4. 会话管理**:列出所有会话、读取会话详情、删除会话、清理低价值会话。 **5. 模型配置**:内置多个免费/付费AI模型提供商(Groq, Google, MiniMax, DeepSeek, 火山引擎, 腾讯云, 阿里云, 智谱, 月之暗面, 零一万物等),支持自定义接入OpenAI兼容API。 **6. 模型管理**:通过`/model`命令添加、切换、删除用户自定义模型,设置默认模型。 **7. 语言切换**:支持中英文切换(`/en`, `/cn`)。 **8. 帮助命令**:`/help`显示命令列表。 **9. 向量记忆系统**:全文搜索FTS5和向量语义搜索,支持记忆搜索命令`/memory`。 **10. 密钥池管理**:通过`/keypool`命令(仅管理员)添加、删除、列出API密钥,密钥加密存储。 **11. 用户认证**:注册、登录、Token缓存,断点续传(工作区快照保存/恢复)。 **12. 快捷键支持**:复制(Ctrl+C)、剪切(Ctrl+X)、粘贴(Ctrl+V)、退出(Ctrl+E)等。 **13. 文件操作工具**:`file_read`, `file_write`, `file_edit`,带路径沙箱和磁盘配额。 **14. 命令执行工具**:`bash_run`,带五重资源限制(CPU、内存、进程、磁盘、网络)。 **15. 搜索工具**:`grep_search`,在项目内搜索文本。 **16. 目录浏览工具**:`list_dir`。 **17. 测试框架**:自动化测试题库,支持HumanEval等基准测试,自我修复循环。 **18. 配置文件加密**:所有敏感信息AES-256-CBC加密存储。 **19. 剪贴板操作**:跨TTY剪贴板功能(/tmp文件)。 补充:根据代码,工具定义在`tools.ts`中,包括`file_read`, `file_write`, `file_edit`, `bash_run`, `grep_search`, `list_dir`。聊天引擎支持Function Calling工具调用循环。 我需要完整列出所有技能和工具,以纯文字。