deeper-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +254 -0
  2. package/dist/cli/index.d.ts +1 -0
  3. package/dist/cli/index.js +12067 -0
  4. package/dist/cli/index.js.map +1 -0
  5. package/dist/index.d.ts +415 -0
  6. package/dist/index.js +1599 -0
  7. package/dist/index.js.map +1 -0
  8. package/docs/superpowers/plans/2026-05-14-deepercode-implementation.md +24 -0
  9. package/docs/superpowers/plans/2026-05-14-deepercode-plan.md +1248 -0
  10. package/docs/superpowers/specs/2026-05-14-deepercode-design.md +560 -0
  11. package/package.json +60 -0
  12. package/src/cli/bootstrap.ts +69 -0
  13. package/src/cli/chat-repl.ts +932 -0
  14. package/src/cli/commands/chat.ts +39 -0
  15. package/src/cli/commands/chat.tsx +39 -0
  16. package/src/cli/commands/config.ts +133 -0
  17. package/src/cli/commands/mcp.ts +172 -0
  18. package/src/cli/commands/run.ts +147 -0
  19. package/src/cli/commands/skill.ts +152 -0
  20. package/src/cli/index.ts +184 -0
  21. package/src/core/bugscan.ts +145 -0
  22. package/src/core/config.ts +285 -0
  23. package/src/core/constants.ts +49 -0
  24. package/src/core/eventbus.ts +202 -0
  25. package/src/core/logger.ts +109 -0
  26. package/src/core/storage.ts +96 -0
  27. package/src/index.ts +26 -0
  28. package/src/mcp/ConfigLoader.ts +74 -0
  29. package/src/mcp/MCPClient.ts +326 -0
  30. package/src/mcp/ResourceAdapter.ts +58 -0
  31. package/src/mcp/SSETransport.ts +133 -0
  32. package/src/mcp/StdioTransport.ts +116 -0
  33. package/src/mcp/ToolAdapter.ts +71 -0
  34. package/src/mcp/types.ts +58 -0
  35. package/src/memory/xmemory.ts +275 -0
  36. package/src/model/DeepSeekClient.ts +292 -0
  37. package/src/model/MessageBuilder.ts +155 -0
  38. package/src/model/RetryManager.ts +82 -0
  39. package/src/model/StreamHandler.ts +158 -0
  40. package/src/model/types.ts +86 -0
  41. package/src/skills/SkillCreator.ts +153 -0
  42. package/src/skills/SkillEngine.ts +158 -0
  43. package/src/skills/SkillExecutor.ts +107 -0
  44. package/src/skills/SkillLoader.ts +182 -0
  45. package/src/skills/SkillRegistry.ts +73 -0
  46. package/src/skills/SkillTrigger.ts +82 -0
  47. package/src/skills/types.ts +28 -0
  48. package/src/tools/ToolExecutor.ts +103 -0
  49. package/src/tools/ToolRegistry.ts +71 -0
  50. package/src/tools/ToolValidator.ts +103 -0
  51. package/src/tools/builtin/ai/context_summarize.ts +76 -0
  52. package/src/tools/builtin/ai/memory_store.ts +86 -0
  53. package/src/tools/builtin/ai/prompt_template.ts +71 -0
  54. package/src/tools/builtin/ai/skill_create.ts +53 -0
  55. package/src/tools/builtin/ai/subagent.ts +39 -0
  56. package/src/tools/builtin/ai/todo_manager.ts +157 -0
  57. package/src/tools/builtin/ai/token_count.ts +196 -0
  58. package/src/tools/builtin/ai/tool_create.ts +52 -0
  59. package/src/tools/builtin/code/analyze_deps.ts +72 -0
  60. package/src/tools/builtin/code/bug_scan.ts +80 -0
  61. package/src/tools/builtin/code/code_metrics.ts +111 -0
  62. package/src/tools/builtin/code/extract_function.ts +86 -0
  63. package/src/tools/builtin/code/format_code.ts +57 -0
  64. package/src/tools/builtin/code/generate_code.ts +75 -0
  65. package/src/tools/builtin/code/import_organizer.ts +82 -0
  66. package/src/tools/builtin/code/lint_code.ts +48 -0
  67. package/src/tools/builtin/code/parse_ast.ts +86 -0
  68. package/src/tools/builtin/code/refactor_code.ts +63 -0
  69. package/src/tools/builtin/code/type_check.ts +48 -0
  70. package/src/tools/builtin/data/chart_generate.ts +62 -0
  71. package/src/tools/builtin/data/csv_parse.ts +56 -0
  72. package/src/tools/builtin/data/data_diff.ts +79 -0
  73. package/src/tools/builtin/data/data_transform.ts +74 -0
  74. package/src/tools/builtin/data/data_validate.ts +75 -0
  75. package/src/tools/builtin/data/json_parse.ts +71 -0
  76. package/src/tools/builtin/data/template_render.ts +58 -0
  77. package/src/tools/builtin/data/toml_parse.ts +42 -0
  78. package/src/tools/builtin/data/xml_parse.ts +79 -0
  79. package/src/tools/builtin/data/yaml_parse.ts +42 -0
  80. package/src/tools/builtin/database/db_backup.ts +53 -0
  81. package/src/tools/builtin/database/db_restore.ts +51 -0
  82. package/src/tools/builtin/database/db_schema.ts +66 -0
  83. package/src/tools/builtin/database/nosql_query.ts +50 -0
  84. package/src/tools/builtin/database/orm_generate.ts +66 -0
  85. package/src/tools/builtin/database/redis_command.ts +46 -0
  86. package/src/tools/builtin/database/sql_migrate.ts +55 -0
  87. package/src/tools/builtin/database/sql_query.ts +60 -0
  88. package/src/tools/builtin/filesystem/batch_read.ts +56 -0
  89. package/src/tools/builtin/filesystem/batch_write.ts +67 -0
  90. package/src/tools/builtin/filesystem/copy_file.ts +36 -0
  91. package/src/tools/builtin/filesystem/create_dir.ts +30 -0
  92. package/src/tools/builtin/filesystem/delete_file.ts +30 -0
  93. package/src/tools/builtin/filesystem/diff_files.ts +47 -0
  94. package/src/tools/builtin/filesystem/edit_file.ts +47 -0
  95. package/src/tools/builtin/filesystem/file_info.ts +52 -0
  96. package/src/tools/builtin/filesystem/glob_find.ts +44 -0
  97. package/src/tools/builtin/filesystem/list_dir.ts +51 -0
  98. package/src/tools/builtin/filesystem/merge_files.ts +44 -0
  99. package/src/tools/builtin/filesystem/move_file.ts +37 -0
  100. package/src/tools/builtin/filesystem/read_file.ts +55 -0
  101. package/src/tools/builtin/filesystem/watch_file.ts +33 -0
  102. package/src/tools/builtin/filesystem/write_file.ts +45 -0
  103. package/src/tools/builtin/index.ts +244 -0
  104. package/src/tools/builtin/network/api_call.ts +79 -0
  105. package/src/tools/builtin/network/browser_action.ts +54 -0
  106. package/src/tools/builtin/network/check_url.ts +59 -0
  107. package/src/tools/builtin/network/download_file.ts +64 -0
  108. package/src/tools/builtin/network/graphql_query.ts +46 -0
  109. package/src/tools/builtin/network/http_request.ts +61 -0
  110. package/src/tools/builtin/network/parse_html.ts +101 -0
  111. package/src/tools/builtin/network/proxy_request.ts +53 -0
  112. package/src/tools/builtin/network/screenshot_page.ts +58 -0
  113. package/src/tools/builtin/network/web_fetch.ts +70 -0
  114. package/src/tools/builtin/network/web_search.ts +128 -0
  115. package/src/tools/builtin/network/websocket_connect.ts +70 -0
  116. package/src/tools/builtin/project/build_project.ts +68 -0
  117. package/src/tools/builtin/project/config_manage.ts +99 -0
  118. package/src/tools/builtin/project/coverage_report.ts +59 -0
  119. package/src/tools/builtin/project/docker_manage.ts +90 -0
  120. package/src/tools/builtin/project/env_manage.ts +88 -0
  121. package/src/tools/builtin/project/npm_manage.ts +71 -0
  122. package/src/tools/builtin/project/project_init.ts +59 -0
  123. package/src/tools/builtin/project/run_test.ts +74 -0
  124. package/src/tools/builtin/search/codebase_search.ts +76 -0
  125. package/src/tools/builtin/search/find_definition.ts +84 -0
  126. package/src/tools/builtin/search/find_references.ts +75 -0
  127. package/src/tools/builtin/search/fuzzy_find.ts +75 -0
  128. package/src/tools/builtin/search/grep_search.ts +90 -0
  129. package/src/tools/builtin/search/regex_find.ts +91 -0
  130. package/src/tools/builtin/search/search_docs.ts +51 -0
  131. package/src/tools/builtin/search/search_package.ts +50 -0
  132. package/src/tools/builtin/search/symbol_search.ts +82 -0
  133. package/src/tools/builtin/search/text_search.ts +63 -0
  134. package/src/tools/builtin/security/decrypt_file.ts +54 -0
  135. package/src/tools/builtin/security/encrypt_file.ts +52 -0
  136. package/src/tools/builtin/security/hash_generate.ts +48 -0
  137. package/src/tools/builtin/security/jwt_decode.ts +53 -0
  138. package/src/tools/builtin/security/secret_scan.ts +82 -0
  139. package/src/tools/builtin/security/vulnerability_check.ts +71 -0
  140. package/src/tools/builtin/shell/background_terminal.ts +38 -0
  141. package/src/tools/builtin/shell/check_status.ts +48 -0
  142. package/src/tools/builtin/shell/interactive_terminal.ts +31 -0
  143. package/src/tools/builtin/shell/kill_terminal.ts +29 -0
  144. package/src/tools/builtin/shell/list_terminals.ts +61 -0
  145. package/src/tools/builtin/shell/pipe_commands.ts +55 -0
  146. package/src/tools/builtin/shell/process-pool.ts +150 -0
  147. package/src/tools/builtin/shell/run_async.ts +73 -0
  148. package/src/tools/builtin/shell/run_command.ts +60 -0
  149. package/src/tools/builtin/shell/send_ctrl_keys.ts +43 -0
  150. package/src/tools/builtin/shell/send_keys.ts +36 -0
  151. package/src/tools/builtin/shell/send_text.ts +35 -0
  152. package/src/tools/builtin/shell/shell_script.ts +65 -0
  153. package/src/tools/builtin/shell/stop_command.ts +40 -0
  154. package/src/tools/builtin/shell/terminal_resize.ts +31 -0
  155. package/src/tools/builtin/shell/terminal_screenshot.ts +28 -0
  156. package/src/tools/builtin/system/log_viewer.ts +89 -0
  157. package/src/tools/builtin/system/notify_user.ts +55 -0
  158. package/src/tools/builtin/system/process_list.ts +66 -0
  159. package/src/tools/builtin/system/resource_monitor.ts +66 -0
  160. package/src/tools/builtin/system/system_info.ts +41 -0
  161. package/src/tools/tool-types.ts +97 -0
  162. package/src/ui/AgentTree.tsx +98 -0
  163. package/src/ui/App.tsx +46 -0
  164. package/src/ui/ChatView.tsx +278 -0
  165. package/src/ui/ConfirmDialog.tsx +68 -0
  166. package/src/ui/DiffView.tsx +64 -0
  167. package/src/ui/FilePreview.tsx +59 -0
  168. package/src/ui/InputBox.tsx +267 -0
  169. package/src/ui/MessageBubble.tsx +30 -0
  170. package/src/ui/Spinner.tsx +35 -0
  171. package/src/ui/StatusBar.tsx +41 -0
  172. package/src/ui/ToolCallCard.tsx +73 -0
  173. package/src/ui/ansi.ts +50 -0
  174. package/src/ui/markdown.ts +238 -0
  175. package/src/ui/themes/dark.ts +4 -0
  176. package/src/ui/themes/default.ts +25 -0
  177. package/src/ui/themes/light.ts +14 -0
  178. package/tests/unit/BuiltinTools.test.ts +129 -0
  179. package/tests/unit/BuiltinToolsIntegration.test.ts +111 -0
  180. package/tests/unit/FilesystemTools.test.ts +211 -0
  181. package/tests/unit/SkillLoader.test.ts +141 -0
  182. package/tests/unit/SkillRegistry.test.ts +113 -0
  183. package/tests/unit/ToolExecutor.test.ts +160 -0
  184. package/tests/unit/ToolRegistry.test.ts +103 -0
  185. package/tests/unit/ToolValidator.test.ts +137 -0
  186. package/tsconfig.json +28 -0
  187. package/tsup.config.ts +17 -0
  188. package/vitest.config.ts +20 -0
package/README.md ADDED
@@ -0,0 +1,254 @@
1
+ <p align="center">
2
+ <img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen?logo=node.js" alt="Node">
3
+ <img src="https://img.shields.io/badge/TypeScript-5.9-blue?logo=typescript" alt="TS">
4
+ <img src="https://img.shields.io/npm/v/deeper" alt="npm">
5
+ <img src="https://img.shields.io/github/license/yourname/deeper-code" alt="License">
6
+ </p>
7
+
8
+ <h1 align="center">DeeperCode</h1>
9
+ <p align="center"><strong>全栈 AI 编程代理 CLI — 比 Claude Code 和 Codex 更好用</strong></p>
10
+
11
+ <p align="center">
12
+ <a href="#-特性">特性</a> ·
13
+ <a href="#-快速开始">快速开始</a> ·
14
+ <a href="#-使用指南">使用指南</a> ·
15
+ <a href="#-命令参考">命令参考</a> ·
16
+ <a href="#-内置工具">内置工具</a> ·
17
+ <a href="#-技能系统">技能系统</a> ·
18
+ <a href="#-架构">架构</a>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ## 什么是 DeeperCode?
24
+
25
+ DeeperCode 是一款运行在**终端**中的全栈 AI 编程代理,基于 DeepSeek 大模型。它能:
26
+ - 📖 **阅读**你的项目代码,理解架构和上下文
27
+ - ✍️ **编写**完整文件,零占位符,直接可用
28
+ - 🔧 **调用**终端命令,运行构建、测试、部署
29
+ - 🧠 **记住**跨会话的工作上下文(XMemory 四类记忆)
30
+ - 🎯 **管理**多步骤任务(自动跟踪进度)
31
+ - 🔌 **扩展**通过 Skill 系统和 MCP 协议
32
+
33
+ 一句话描述:**把需求告诉 DeeperCode,它会完成剩下的所有工作。**
34
+
35
+ ## ✨ 特性
36
+
37
+ | 特性 | 说明 |
38
+ |------|------|
39
+ | 🤖 **Agentic 循环** | 50 轮自动迭代,工具调用 + 结果解析 |
40
+ | 📡 **流式输出** | SSE 实时渲染,Markdown 表格/代码块/标题全支持 |
41
+ | 🛠️ **100+ 内置工具** | 文件、Shell、搜索、网络、数据库、代码分析… |
42
+ | 🎓 **Skill 系统** | 自定义技能,YAML frontmatter + JS 代码,触发器匹配 |
43
+ | 🧠 **XMemory** | 四类记忆(工作/情节/语义/过程),跨会话持久化 |
44
+ | 🔌 **MCP 协议** | 连接外部工具服务器(Stdio + SSE 传输) |
45
+ | 📋 **任务面板** | 自动跟踪多步骤任务进度 |
46
+ | 🐛 **BugScan** | 多语言静态代码扫描 |
47
+ | 📏 **Rules 系统** | 项目/全局规则自动注入 |
48
+ | 📊 **上下文压缩** | 超长对话自动摘要,防 OOM |
49
+ | ⚡ **异步 I/O** | 写入不阻塞事件循环,流畅动画 |
50
+ | 🔒 **安全分级** | safe / confirm / dangerous 三级权限 |
51
+
52
+ ## 📦 快速开始
53
+
54
+ ### 环境要求
55
+
56
+ - **Node.js** >= 20.0.0
57
+ - **DeepSeek API Key**([获取地址](https://platform.deepseek.com/api_keys))
58
+
59
+ ### 安装
60
+
61
+ ```bash
62
+ npm install -g deeper-cli
63
+ ```
64
+
65
+ ### 配置
66
+
67
+ ```bash
68
+ deeper config set api_key "sk-xxxxxxxx"
69
+ deeper config set model deepseek-chat
70
+ ```
71
+
72
+ ### 使用
73
+
74
+ ```bash
75
+ # 进入交互式 REPL
76
+ deeper
77
+
78
+ # 单次执行
79
+ deeper run "创建一个 React Todo 应用"
80
+
81
+ # 指定模型
82
+ deeper run "重构这个文件" -m deepseek-reasoner
83
+ ```
84
+
85
+ ## 📖 使用指南
86
+
87
+ ### REPL 交互
88
+
89
+ 进入后,直接输入任务描述即可:
90
+
91
+ ```
92
+ ❯ 帮我写一个 Express REST API,包含用户注册和登录
93
+ ```
94
+
95
+ AI 会:
96
+ 1. 分析需求 → 创建任务清单
97
+ 2. 按步骤执行(创建文件、安装依赖、写代码)
98
+ 3. 实时反馈进度
99
+ 4. 完成后显示摘要
100
+
101
+ ### 命令提示
102
+
103
+ 输入 `/` 回车即可查看所有可用命令:
104
+
105
+ | 命令 | 说明 |
106
+ |------|------|
107
+ | `/help` | 帮助信息 |
108
+ | `/clear` | 清空对话 |
109
+ | `/save [name]` | 保存会话 |
110
+ | `/load [name]` | 加载会话 |
111
+ | `/sessions` | 会话列表 |
112
+ | `/tools [cat]` | 工具列表 |
113
+ | `/rules` | 规则管理 |
114
+ | `/tasks` | 任务列表 |
115
+ | `/memory` | 记忆系统 |
116
+ | `/mcp` | MCP 服务器 |
117
+ | `/stats` | 统计信息 |
118
+ | `/model` | 模型设置 |
119
+ | `/config` | 配置管理 |
120
+ | `/init` | 初始化项目上下文 |
121
+ | `/export` | 导出对话 |
122
+ | `/quit` | 退出 |
123
+
124
+ ### 项目上下文
125
+
126
+ ```bash
127
+ # 在项目目录中初始化
128
+ deeper init
129
+ ```
130
+
131
+ 这会创建 `deeper.md`,AI 在每次对话中自动读取。你可以自由编辑,添加项目规则和背景信息。
132
+
133
+ ### Rules 规则系统
134
+
135
+ DeeperCode 支持三层规则:
136
+
137
+ ```bash
138
+ ~/.deeper/rules.md # 全局规则(所有项目生效)
139
+ .deeper/rules.md # 项目规则(当前项目生效)
140
+ deeper.md # 项目上下文(/init 生成)
141
+ ```
142
+
143
+ 规则文件使用 Markdown 编写,AI 在每次对话时自动加载。例如:
144
+
145
+ ```markdown
146
+ # 项目规则
147
+ - 所有组件使用 TypeScript
148
+ - API 路由统一放在 src/routes/
149
+ - 使用 pnpm 而非 npm
150
+ - React 组件必须使用函数组件
151
+ ```
152
+
153
+ ## 🛠️ 内置工具
154
+
155
+ 100+ 内置工具,覆盖 11 个分类:
156
+
157
+ | 分类 | 工具数 | 典型工具 |
158
+ |------|--------|---------|
159
+ | `filesystem` | 15 | read_file, write_file, edit_file, batch_write, glob_find |
160
+ | `shell` | 16 | run_command, background_terminal, read_terminal, process-pool |
161
+ | `search` | 10 | grep_search, codebase_search, find_references, fuzzy_find |
162
+ | `code` | 10 | parse_ast, format_code, lint_code, bug_scan, refactor_code |
163
+ | `network` | 12 | web_fetch, web_search, api_call, parse_html, download_file |
164
+ | `ai` | 8 | todo_manager, token_count, memory_store, subagent, context_summarize |
165
+ | `data` | 10 | json_parse, csv_parse, yaml_parse, data_transform |
166
+ | `database` | 8 | sql_query, db_schema, redis_command, nosql_query |
167
+ | `project` | 8 | npm_manage, build_project, run_test, docker_manage |
168
+ | `security` | 6 | secret_scan, encrypt_file, jwt_decode, vulnerability_check |
169
+ | `system` | 5 | system_info, process_list, resource_monitor |
170
+
171
+ 所有工具都有安全分级,危险操作需要用户确认。
172
+
173
+ ## 🎓 技能系统
174
+
175
+ 自定义技能的创建和使用:
176
+
177
+ ### Skill 格式
178
+
179
+ ```markdown
180
+ ---
181
+ name: my-skill
182
+ description: 分析 React 组件性能
183
+ version: 1.0.0
184
+ triggers:
185
+ - 性能分析
186
+ - 优化组件
187
+ tools:
188
+ - read_file
189
+ - grep_search
190
+ ---
191
+
192
+ # 组件性能分析
193
+
194
+ ## 工作流程
195
+ 1. 读取目标组件
196
+ 2. 检查不必要的 re-render
197
+ 3. 分析 useMemo/useCallback 使用
198
+ 4. 给出优化建议
199
+ ```
200
+
201
+ 保存到 `~/.deeper/skills/my-skill/skill.md`,AI 会在对话中自动识别触发词。
202
+
203
+ ### 带代码的 Skill
204
+
205
+ 在 `skill.js` 中编写辅助函数,Skill 引擎会在沙箱中执行。
206
+
207
+ ## 🏗️ 架构
208
+
209
+ ```
210
+ src/
211
+ ├── cli/ # CLI 入口 + REPL 主循环
212
+ │ ├── index.ts # 命令路由 (chat/run/config/skill/mcp)
213
+ │ ├── chat-repl.ts # 核心 REPL 循环 (API/SSE/工具/会话)
214
+ │ └── bootstrap.ts # 启动引导
215
+ ├── core/ # 基础设施
216
+ │ ├── config.ts # 多层配置管理
217
+ │ ├── eventbus.ts # 事件总线
218
+ │ ├── bugscan.ts # 静态代码扫描
219
+ │ └── xmemory.ts # 四类记忆
220
+ ├── model/ # AI 模型层
221
+ │ ├── DeepSeekClient.ts
222
+ │ ├── StreamHandler.ts
223
+ │ └── RetryManager.ts
224
+ ├── tools/ # 工具系统 (100+ 内置工具)
225
+ │ ├── builtin/ # 11 个分类
226
+ │ ├── ToolRegistry.ts
227
+ │ ├── ToolExecutor.ts
228
+ │ └── ToolValidator.ts
229
+ ├── skills/ # Skill 系统
230
+ │ ├── SkillEngine.ts
231
+ │ ├── SkillLoader.ts
232
+ │ └── SkillExecutor.ts
233
+ ├── mcp/ # MCP 协议客户端
234
+ ├── memory/ # XMemory 记忆系统
235
+ └── ui/ # 终端 UI
236
+ ├── ansi.ts # ANSI 颜色 + 动画
237
+ └── markdown.ts # Markdown 流式渲染
238
+ ```
239
+
240
+ ## 🔧 开发
241
+
242
+ ```bash
243
+ git clone https://github.com/yourname/deeper-code.git
244
+ cd deeper-code
245
+ npm install
246
+ npm run dev # tsup --watch
247
+ npm run build # tsup
248
+ npm run test # vitest run
249
+ npm run typecheck # tsc --noEmit
250
+ ```
251
+
252
+ ## 📄 License
253
+
254
+ MIT © DeeperCode
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node