thatgfsj-code 0.3.0 → 0.3.1

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 (262) hide show
  1. package/CHANGELOG.md +229 -0
  2. package/DEVELOPMENT.md +286 -0
  3. package/README.md +144 -79
  4. package/dist/agent/core.d.ts +56 -0
  5. package/dist/agent/core.d.ts.map +1 -0
  6. package/dist/agent/core.js +142 -0
  7. package/dist/agent/core.js.map +1 -0
  8. package/dist/agent/index.d.ts +8 -0
  9. package/dist/agent/index.d.ts.map +1 -0
  10. package/dist/agent/index.js +8 -0
  11. package/dist/agent/index.js.map +1 -0
  12. package/dist/agent/intent.d.ts +36 -0
  13. package/dist/agent/intent.d.ts.map +1 -0
  14. package/dist/agent/intent.js +146 -0
  15. package/dist/agent/intent.js.map +1 -0
  16. package/dist/agent/streaming.d.ts +50 -0
  17. package/dist/agent/streaming.d.ts.map +1 -0
  18. package/dist/agent/streaming.js +110 -0
  19. package/dist/agent/streaming.js.map +1 -0
  20. package/dist/core/ai-engine.d.ts +76 -0
  21. package/dist/core/ai-engine.d.ts.map +1 -0
  22. package/dist/core/ai-engine.js +394 -0
  23. package/dist/core/ai-engine.js.map +1 -0
  24. package/dist/core/cli.d.ts +21 -0
  25. package/dist/core/cli.d.ts.map +1 -0
  26. package/dist/core/cli.js +143 -0
  27. package/dist/core/cli.js.map +1 -0
  28. package/dist/core/config.d.ts +55 -0
  29. package/dist/core/config.d.ts.map +1 -0
  30. package/dist/core/config.js +162 -0
  31. package/dist/core/config.js.map +1 -0
  32. package/dist/core/context-compactor.d.ts +54 -0
  33. package/dist/core/context-compactor.d.ts.map +1 -0
  34. package/dist/core/context-compactor.js +197 -0
  35. package/dist/core/context-compactor.js.map +1 -0
  36. package/dist/core/hooks.d.ts +75 -0
  37. package/dist/core/hooks.d.ts.map +1 -0
  38. package/dist/core/hooks.js +146 -0
  39. package/dist/core/hooks.js.map +1 -0
  40. package/dist/core/permissions.d.ts +52 -0
  41. package/dist/core/permissions.d.ts.map +1 -0
  42. package/dist/core/permissions.js +237 -0
  43. package/dist/core/permissions.js.map +1 -0
  44. package/dist/core/session.d.ts +54 -0
  45. package/dist/core/session.d.ts.map +1 -0
  46. package/dist/core/session.js +147 -0
  47. package/dist/core/session.js.map +1 -0
  48. package/dist/core/skills.d.ts +60 -0
  49. package/dist/core/skills.d.ts.map +1 -0
  50. package/dist/core/skills.js +175 -0
  51. package/dist/core/skills.js.map +1 -0
  52. package/dist/core/state.d.ts +60 -0
  53. package/dist/core/state.d.ts.map +1 -0
  54. package/dist/core/state.js +106 -0
  55. package/dist/core/state.js.map +1 -0
  56. package/dist/core/subagent.d.ts +68 -0
  57. package/dist/core/subagent.d.ts.map +1 -0
  58. package/dist/core/subagent.js +142 -0
  59. package/dist/core/subagent.js.map +1 -0
  60. package/dist/core/system-prompt.d.ts +40 -0
  61. package/dist/core/system-prompt.d.ts.map +1 -0
  62. package/dist/core/system-prompt.js +138 -0
  63. package/dist/core/system-prompt.js.map +1 -0
  64. package/dist/core/tool-registry.d.ts +53 -0
  65. package/dist/core/tool-registry.d.ts.map +1 -0
  66. package/dist/core/tool-registry.js +138 -0
  67. package/dist/core/tool-registry.js.map +1 -0
  68. package/dist/core/types.d.ts +206 -0
  69. package/dist/core/types.d.ts.map +1 -0
  70. package/dist/core/types.js +127 -0
  71. package/dist/core/types.js.map +1 -0
  72. package/dist/index.d.ts +7 -0
  73. package/dist/{cmd/index.d.ts.map → index.d.ts.map} +1 -1
  74. package/dist/index.js +472 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/mcp/client.d.ts +1 -1
  77. package/dist/mcp/client.d.ts.map +1 -1
  78. package/dist/repl/index.d.ts +8 -0
  79. package/dist/repl/index.d.ts.map +1 -0
  80. package/dist/repl/index.js +8 -0
  81. package/dist/repl/index.js.map +1 -0
  82. package/dist/repl/input.d.ts +69 -0
  83. package/dist/repl/input.d.ts.map +1 -0
  84. package/dist/repl/input.js +139 -0
  85. package/dist/repl/input.js.map +1 -0
  86. package/dist/repl/loop.d.ts +184 -0
  87. package/dist/repl/loop.d.ts.map +1 -0
  88. package/dist/repl/loop.js +932 -0
  89. package/dist/repl/loop.js.map +1 -0
  90. package/dist/repl/output.d.ts +105 -0
  91. package/dist/repl/output.d.ts.map +1 -0
  92. package/dist/repl/output.js +199 -0
  93. package/dist/repl/output.js.map +1 -0
  94. package/dist/repl/welcome.d.ts +68 -0
  95. package/dist/repl/welcome.d.ts.map +1 -0
  96. package/dist/repl/welcome.js +254 -0
  97. package/dist/repl/welcome.js.map +1 -0
  98. package/dist/tools/file.d.ts +1 -1
  99. package/dist/tools/file.d.ts.map +1 -1
  100. package/dist/tools/git.d.ts +1 -1
  101. package/dist/tools/git.d.ts.map +1 -1
  102. package/dist/tools/index.d.ts +15 -35
  103. package/dist/tools/index.d.ts.map +1 -1
  104. package/dist/tools/index.js +31 -80
  105. package/dist/tools/index.js.map +1 -1
  106. package/dist/tools/search.d.ts +1 -1
  107. package/dist/tools/search.d.ts.map +1 -1
  108. package/dist/tools/shell.d.ts +11 -4
  109. package/dist/tools/shell.d.ts.map +1 -1
  110. package/dist/tools/shell.js +78 -42
  111. package/dist/tools/shell.js.map +1 -1
  112. package/dist/utils/diff-preview.d.ts +42 -0
  113. package/dist/utils/diff-preview.d.ts.map +1 -0
  114. package/dist/utils/diff-preview.js +174 -0
  115. package/dist/utils/diff-preview.js.map +1 -0
  116. package/dist/utils/index.d.ts +8 -0
  117. package/dist/utils/index.d.ts.map +1 -0
  118. package/dist/utils/index.js +8 -0
  119. package/dist/utils/index.js.map +1 -0
  120. package/dist/utils/memory.d.ts +81 -0
  121. package/dist/utils/memory.d.ts.map +1 -0
  122. package/dist/utils/memory.js +186 -0
  123. package/dist/utils/memory.js.map +1 -0
  124. package/dist/utils/project-context.d.ts +62 -0
  125. package/dist/utils/project-context.d.ts.map +1 -0
  126. package/dist/utils/project-context.js +197 -0
  127. package/dist/utils/project-context.js.map +1 -0
  128. package/docs/API_KEY_GUIDE.md +6 -0
  129. package/docs/FAQ.md +25 -3
  130. package/package.json +41 -9
  131. package/ROADMAP.md +0 -61
  132. package/dist/app/agent.d.ts +0 -31
  133. package/dist/app/agent.d.ts.map +0 -1
  134. package/dist/app/agent.js +0 -106
  135. package/dist/app/agent.js.map +0 -1
  136. package/dist/app/index.d.ts +0 -39
  137. package/dist/app/index.d.ts.map +0 -1
  138. package/dist/app/index.js +0 -80
  139. package/dist/app/index.js.map +0 -1
  140. package/dist/cmd/index.d.ts +0 -12
  141. package/dist/cmd/index.js +0 -85
  142. package/dist/cmd/index.js.map +0 -1
  143. package/dist/config/index.d.ts +0 -39
  144. package/dist/config/index.d.ts.map +0 -1
  145. package/dist/config/index.js +0 -110
  146. package/dist/config/index.js.map +0 -1
  147. package/dist/config/providers.d.ts +0 -23
  148. package/dist/config/providers.d.ts.map +0 -1
  149. package/dist/config/providers.js +0 -152
  150. package/dist/config/providers.js.map +0 -1
  151. package/dist/config/types.d.ts +0 -33
  152. package/dist/config/types.d.ts.map +0 -1
  153. package/dist/config/types.js +0 -5
  154. package/dist/config/types.js.map +0 -1
  155. package/dist/hooks/index.d.ts +0 -31
  156. package/dist/hooks/index.d.ts.map +0 -1
  157. package/dist/hooks/index.js +0 -71
  158. package/dist/hooks/index.js.map +0 -1
  159. package/dist/llm/anthropic.d.ts +0 -17
  160. package/dist/llm/anthropic.d.ts.map +0 -1
  161. package/dist/llm/anthropic.js +0 -126
  162. package/dist/llm/anthropic.js.map +0 -1
  163. package/dist/llm/gemini.d.ts +0 -16
  164. package/dist/llm/gemini.d.ts.map +0 -1
  165. package/dist/llm/gemini.js +0 -107
  166. package/dist/llm/gemini.js.map +0 -1
  167. package/dist/llm/index.d.ts +0 -48
  168. package/dist/llm/index.d.ts.map +0 -1
  169. package/dist/llm/index.js +0 -174
  170. package/dist/llm/index.js.map +0 -1
  171. package/dist/llm/openai.d.ts +0 -17
  172. package/dist/llm/openai.d.ts.map +0 -1
  173. package/dist/llm/openai.js +0 -113
  174. package/dist/llm/openai.js.map +0 -1
  175. package/dist/llm/provider.d.ts +0 -33
  176. package/dist/llm/provider.d.ts.map +0 -1
  177. package/dist/llm/provider.js +0 -6
  178. package/dist/llm/provider.js.map +0 -1
  179. package/dist/prompts/index.d.ts +0 -27
  180. package/dist/prompts/index.d.ts.map +0 -1
  181. package/dist/prompts/index.js +0 -102
  182. package/dist/prompts/index.js.map +0 -1
  183. package/dist/session/compactor.d.ts +0 -48
  184. package/dist/session/compactor.d.ts.map +0 -1
  185. package/dist/session/compactor.js +0 -77
  186. package/dist/session/compactor.js.map +0 -1
  187. package/dist/session/index.d.ts +0 -48
  188. package/dist/session/index.d.ts.map +0 -1
  189. package/dist/session/index.js +0 -69
  190. package/dist/session/index.js.map +0 -1
  191. package/dist/session/message.d.ts +0 -26
  192. package/dist/session/message.d.ts.map +0 -1
  193. package/dist/session/message.js +0 -34
  194. package/dist/session/message.js.map +0 -1
  195. package/dist/tools/types.d.ts +0 -68
  196. package/dist/tools/types.d.ts.map +0 -1
  197. package/dist/tools/types.js +0 -57
  198. package/dist/tools/types.js.map +0 -1
  199. package/dist/tui/index.d.ts +0 -8
  200. package/dist/tui/index.d.ts.map +0 -1
  201. package/dist/tui/index.js +0 -8
  202. package/dist/tui/index.js.map +0 -1
  203. package/dist/tui/input.d.ts +0 -14
  204. package/dist/tui/input.d.ts.map +0 -1
  205. package/dist/tui/input.js +0 -50
  206. package/dist/tui/input.js.map +0 -1
  207. package/dist/tui/output.d.ts +0 -20
  208. package/dist/tui/output.d.ts.map +0 -1
  209. package/dist/tui/output.js +0 -70
  210. package/dist/tui/output.js.map +0 -1
  211. package/dist/tui/repl.d.ts +0 -25
  212. package/dist/tui/repl.d.ts.map +0 -1
  213. package/dist/tui/repl.js +0 -114
  214. package/dist/tui/repl.js.map +0 -1
  215. package/dist/tui/welcome.d.ts +0 -15
  216. package/dist/tui/welcome.d.ts.map +0 -1
  217. package/dist/tui/welcome.js +0 -86
  218. package/dist/tui/welcome.js.map +0 -1
  219. package/dist/types.d.ts +0 -38
  220. package/dist/types.d.ts.map +0 -1
  221. package/dist/types.js +0 -6
  222. package/dist/types.js.map +0 -1
  223. package/dist/utils/diff.d.ts +0 -22
  224. package/dist/utils/diff.d.ts.map +0 -1
  225. package/dist/utils/diff.js +0 -60
  226. package/dist/utils/diff.js.map +0 -1
  227. package/dist/utils/project.d.ts +0 -32
  228. package/dist/utils/project.d.ts.map +0 -1
  229. package/dist/utils/project.js +0 -89
  230. package/dist/utils/project.js.map +0 -1
  231. package/src/app/agent.ts +0 -140
  232. package/src/app/index.ts +0 -101
  233. package/src/cmd/index.ts +0 -96
  234. package/src/config/index.ts +0 -130
  235. package/src/config/providers.ts +0 -160
  236. package/src/config/types.ts +0 -46
  237. package/src/hooks/index.ts +0 -111
  238. package/src/llm/anthropic.ts +0 -146
  239. package/src/llm/gemini.ts +0 -127
  240. package/src/llm/index.ts +0 -209
  241. package/src/llm/openai.ts +0 -132
  242. package/src/llm/provider.ts +0 -38
  243. package/src/mcp/client.ts +0 -330
  244. package/src/prompts/index.ts +0 -123
  245. package/src/session/compactor.ts +0 -103
  246. package/src/session/index.ts +0 -81
  247. package/src/session/message.ts +0 -42
  248. package/src/tools/file.ts +0 -117
  249. package/src/tools/git.ts +0 -132
  250. package/src/tools/index.ts +0 -108
  251. package/src/tools/search.ts +0 -263
  252. package/src/tools/shell.ts +0 -136
  253. package/src/tools/types.ts +0 -122
  254. package/src/tui/index.ts +0 -8
  255. package/src/tui/input.ts +0 -56
  256. package/src/tui/output.ts +0 -83
  257. package/src/tui/repl.ts +0 -131
  258. package/src/tui/welcome.ts +0 -101
  259. package/src/types.ts +0 -42
  260. package/src/utils/diff.ts +0 -71
  261. package/src/utils/project.ts +0 -99
  262. package/tsconfig.json +0 -19
package/README.md CHANGED
@@ -1,136 +1,201 @@
1
1
  # Thatgfsj Code 🤖
2
2
 
3
- AI 编程助手 - 终端里的 AI 编程伙伴
3
+ 你的 CLI 工具 - Claude Code 一样使用 AI 编程。
4
+
5
+ > 当前版本: **0.2.2** · Node.js ≥ 18 · MIT 许可证
4
6
 
5
7
  ---
6
8
 
7
9
  ## ⭐ 特性
8
10
 
9
- - 🤖 **AI 对话** - 用自然语言让 AI 帮你写代码
10
- - 🔧 **工具调用** - AI 可以读写文件、执行命令、搜索代码、操作 Git
11
- - 💬 **交互模式** - 持续对话,像聊天一样编程
12
- - 📡 **流式输出** - 实时显示 AI 回复
13
- - 🔌 **多 Provider** - 支持 SiliconFlow、OpenAI、Anthropic、Gemini、DeepSeek、Kimi 等
11
+ - 🤖 **AI 对话** 用自然语言让 AI 帮你写代码
12
+ - 📖 **代码解释** 通俗易懂地解释代码含义
13
+ - 🔧 **代码调试** 找出 bug 并给出修复方案
14
+ - 📦 **代码模板** 快速生成项目代码
15
+ - 💬 **交互模式** 持续对话,像聊天一样编程
16
+ - 🧰 **内置工具** — 文件读写 / Shell 执行 / Git 操作 / 代码搜索
17
+ - 🚫 **抗污染防御** — `SessionManager` 自动过滤 `[已中断]` 等历史污染
14
18
 
15
19
  ---
16
20
 
17
21
  ## 🚀 快速开始
18
22
 
19
- ### 安装
23
+ ### 🎯 一键安装(推荐)
20
24
 
21
- ```bash
22
- # 克隆仓库
23
- git clone https://github.com/Thatgfsj/thatgfsj-code.git
24
- cd thatgfsj-code
25
+ 安装脚本全部托管在 GitHub 上、`install.sh` / `install.ps1` / `install.bat`
26
+ 可直接 curl / iwr:
25
27
 
26
- # 安装依赖
27
- npm install
28
-
29
- # 编译
30
- npm run build
28
+ **macOS / Linux**:
31
29
 
32
- # 全局链接
33
- npm link
30
+ ```bash
31
+ curl -L https://raw.githubusercontent.com/Thatgfsj/thatgfsj-code/main/install.sh | bash
34
32
  ```
35
33
 
36
- ### 配置
34
+ **Windows (PowerShell)**:
37
35
 
38
- ```bash
39
- # 交互式配置向导(推荐)
40
- gfcode init
36
+ ```powershell
37
+ irm https://raw.githubusercontent.com/Thatgfsj/thatgfsj-code/main/install.ps1 | iex
38
+ ```
41
39
 
42
- # 或手动设置环境变量
43
- export OPENAI_API_KEY="sk-..."
44
- export SILICONFLOW_API_KEY="sk-..."
40
+ **Windows (CMD)**:
41
+
42
+ ```cmd
43
+ curl -L https://raw.githubusercontent.com/Thatgfsj/thatgfsj-code/main/install.bat -o install.bat && install.bat
45
44
  ```
46
45
 
46
+ > ⚠️ 旧版本 README 里出现的 `https://git.io/thatgfsj` 短链已失效(GitHub 在 2022
47
+ > 年下线了 `git.io`),请使用上面的原始 GitHub 链接。
48
+
49
+ 安装过程会自动完成:
50
+ 1. 检查/安装 Node.js(≥ 18)
51
+ 2. 下载代码 / 链接 npm 全局命令
52
+ 3. 安装依赖并构建 `dist/`
53
+ 4. 引导你设置 API Key
54
+
47
55
  ---
48
56
 
49
57
  ## 📖 使用方法
50
58
 
59
+ 安装完成后,在终端里直接用 `gfcode`(或 `thatgfsj`,两个 bin 都指向同一入口):
60
+
51
61
  ```bash
52
62
  # 交互模式(推荐)
53
63
  gfcode
54
64
 
55
- # 单次 prompt
56
- gfcode "帮我写一个 Python 的 Hello World"
65
+ # AI 帮你写代码(单命令模式,自动流式输出)
66
+ gfcode "写一个 Python 的 Hello World"
67
+ gfcode -m Qwen/Qwen2.5-32B-Instruct "重构 src/index.ts"
68
+
69
+ # 解释代码:直接传字符串,或 -f 指定文件
70
+ gfcode explain "const add = (a, b) => a + b;"
71
+ gfcode explain -f src/index.ts
57
72
 
58
- # 指定模型
59
- gfcode -m gpt-4o "你的任务"
73
+ # 调试代码:可附加 -e 错误信息
74
+ gfcode debug "你的代码"
75
+ gfcode debug -f src/foo.ts -e "TypeError: x is not a function"
60
76
 
61
- # 启用审计日志
62
- gfcode --hooks "你的任务"
77
+ # 问答(带当前项目上下文)
78
+ gfcode chat "怎么用 Node.js 写 API?"
79
+
80
+ # 生成代码模板
81
+ gfcode template react -n MyButton -o ./components
63
82
  ```
64
83
 
65
- ### 交互模式内置命令
84
+ > `--stream` / `--no-auto` / `-m` 接受任意命令并对当次调用生效;`-i` 强制进入 REPL。
85
+ > 详细 flag 见 [`DEVELOPMENT.md`](./DEVELOPMENT.md) 第 5 节。
66
86
 
67
- | 命令 | 说明 |
68
- |------|------|
69
- | `help` | 显示帮助 |
70
- | `tools` | 列出可用工具 |
71
- | `model` | 显示当前模型 |
72
- | `clear` | 清屏 |
73
- | `exit` | 退出 |
87
+ ### REPL 内置命令
74
88
 
75
- ---
89
+ 进入交互模式(直接运行 `gfcode`)后,可以输入下列命令(带或不带前导 `/` 都行):
76
90
 
77
- ## 🏗️ 架构
91
+ | 命令 | 作用 |
92
+ | -------------- | --------------------------------------------------- |
93
+ | `help` | 显示所有内置命令 |
94
+ | `exit` | 退出 REPL |
95
+ | `clear` | 清屏 |
96
+ | `context` | 显示当前项目上下文 |
97
+ | `history` | 显示本次会话的命令历史 |
98
+ | `tools` | 列出已注册的工具(file / shell / git / search) |
99
+ | `models` | 只读地列出当前 provider 的可用模型 |
100
+ | `providers` | 只读地列出支持的 provider |
101
+ | `/model` | **交互式切换当前 provider 下的模型**,立即生效并持久化到 `~/.thatgfsj/config.json` |
102
+ | `/provider` | **交互式切换 provider**,切换后自动跟进选模型 |
103
+ | `Ctrl+C` | 单次:停止当前流式生成;空输入连续两次退出 REPL |
104
+
105
+ #### `/model` / `/provider` 示例
78
106
 
79
107
  ```
80
- src/
81
- ├── cmd/ # CLI 入口 (commander)
82
- ├── app/ # 核心应用服务 + Agent Loop
83
- ├── config/ # 配置管理 + Provider 定义
84
- ├── llm/ # LLM Provider 抽象层
85
- │ ├── openai.ts # OpenAI 兼容 (SiliconFlow/DeepSeek/Kimi/...)
86
- │ ├── anthropic.ts # Anthropic Claude
87
- │ └── gemini.ts # Google Gemini
88
- ├── session/ # 会话与消息管理
89
- ├── tools/ # 工具系统 (file/shell/git/search)
90
- ├── tui/ # 终端 UI (REPL)
91
- ├── mcp/ # MCP 协议支持
92
- ├── hooks/ # 生命周期钩子
93
- ├── prompts/ # 系统提示构建
94
- ├── utils/ # 工具函数
95
- └── types.ts # 全局类型
108
+ > /model
109
+ 🤖 /model 切换模型 (provider: siliconflow)
110
+
111
+ 最近使用:
112
+ r1. Qwen/Qwen2.5-32B-Instruct
113
+ r2. Pro/moonshotai/Kimi-K2.5
114
+
115
+ 内置模型:
116
+ 1. Qwen2.5-7B (推荐) Qwen/Qwen2.5-7B-Instruct ✓
117
+ 2. Qwen2.5-32B Qwen/Qwen2.5-32B-Instruct
118
+ 3. Qwen2.5-72B Qwen/Qwen2.5-72B-Instruct
119
+ 4. Kimi-K2.5 (私有) Pro/moonshotai/Kimi-K2.5
120
+ 5. DeepSeek-V3 Pro/deepseek-ai/DeepSeek-V3
121
+
122
+
123
+ 输入编号 (r1-r2 / 1-10)、完整 model id、或任意自定义 id。回车保持当前。
124
+ model > r2
125
+ ✅ 模型已切换为: Pro/moonshotai/Kimi-K2.5 (Pro/moonshotai/Kimi-K2.5)
126
+
127
+ # 也可以直接粘一个自定义 model id(适合 OpenAI-compatible 中转/Ollama):
128
+ model > my-custom-fine-tune
129
+ ✅ 模型已切换为: my-custom-fine-tune (自定义)
96
130
  ```
97
131
 
132
+ `/provider` 的工作流类似,但会让你先选 9 个提供商之一(SiliconFlow /
133
+ MiniMax / OpenAI / Anthropic / Gemini / Kimi / DeepSeek / ERNIE / Ollama),
134
+ 然后自动跟进模型选择。如果新 provider 缺少对应的环境变量,会提示先
135
+ `gfcode init` 或手动 `export`。
136
+
137
+ 切换过的 model 会写入 `~/.thatgfsj/models.json` 历史文件,下次打开
138
+ `/model` 时按时间倒序展示在「最近使用」段。
139
+
98
140
  ---
99
141
 
100
- ## 🔌 支持的 Provider
142
+ ## 常见问题
101
143
 
102
- | Provider | 格式 | 默认模型 |
103
- |----------|------|----------|
104
- | SiliconFlow | OpenAI | Qwen2.5-7B |
105
- | MiniMax | Anthropic | MiniMax-M2.5 |
106
- | OpenAI | OpenAI | gpt-4o-mini |
107
- | Anthropic | Anthropic | claude-3-haiku |
108
- | Gemini | Gemini | gemini-1.5-flash |
109
- | DeepSeek | OpenAI | deepseek-chat |
110
- | Kimi | OpenAI | moonshot-v1-8k |
111
- | ERNIE | OpenAI | ernie-4.0-8k |
112
- | Ollama | OpenAI | llama2 |
144
+ ### Q: 安装后命令找不到?
113
145
 
114
- ---
146
+ **A**: 重启终端,然后运行 `gfcode`。Windows 上确认 PowerShell / CMD 已重新加载 `%PATH%`。
147
+
148
+ ### Q: 怎么配置 API Key?
115
149
 
116
- ## 🔧 可用工具
150
+ **A**: 运行 `gfcode init`,按提示选择提供商、粘贴 key、挑选模型。也可以直接设置环境变量
151
+ (`SILICONFLOW_API_KEY` / `OPENAI_API_KEY` / `MINIMAX_API_KEY` /
152
+ `ANTHROPIC_API_KEY` / `GEMINI_API_KEY` / `KIMI_API_KEY` / `DEEPSEEK_API_KEY` /
153
+ `ERNIE_API_KEY`),或者把配置写到 `~/.thatgfsj/config.json`。
117
154
 
118
- | 工具 | 功能 | 权限 |
119
- |------|------|------|
120
- | `file` | 读/写/列表/删除文件 | read, write |
121
- | `shell` | 执行 shell 命令 | execute, network |
122
- | `git` | Git 操作 (status/log/diff/commit/branch) | execute |
123
- | `search` | 代码搜索 (grep/find/tree) | read |
155
+ ### Q: 哪个 Provider 最好?
156
+
157
+ **A**: 新手推荐 **SiliconFlow**(性价比高,国产),可选用 Qwen2.5 / Kimi-K2.5 / DeepSeek-V3 等模型。
158
+
159
+ ### Q: `--version` 显示老版本号?
160
+
161
+ **A**: 升级到 0.2.2+,版本号现在从 `package.json` 动态读取,CI / re-install 都会自动同步。
162
+
163
+ ### Q: 启动瞬间报错 `ReferenceError: require is not defined`?
164
+
165
+ **A**: 那是 0.2.1 之前的 bug,0.2.2 已经修复(使用 `createRequire(import.meta.url)` 兼容)。
166
+
167
+ 更多问题 → [`docs/FAQ.md`](./docs/FAQ.md)。
124
168
 
125
169
  ---
126
170
 
127
171
  ## 📚 文档
128
172
 
129
- - [API Key 获取教程](./docs/API_KEY_GUIDE.md)
130
- - [常见问题 FAQ](./docs/FAQ.md)
173
+ - [DEVELOPMENT.md](./DEVELOPMENT.md) — 架构 / 构建 / 扩展 / 发布(贡献者必读)
174
+ - [CHANGELOG.md](./CHANGELOG.md) — 每次版本的变更说明
175
+ - [docs/API_KEY_GUIDE.md](./docs/API_KEY_GUIDE.md) — 9 个 Provider 的 API Key 获取教程
176
+ - [docs/FAQ.md](./docs/FAQ.md) — 详细 FAQ
177
+
178
+ ---
179
+
180
+ ## 🧪 本地自检
181
+
182
+ ```bash
183
+ npm install
184
+ npm test # node --test tests/
185
+ npm run build
186
+ node dist/index.js --version
187
+ ```
131
188
 
132
189
  ---
133
190
 
134
191
  ## 🤝 问题反馈
135
192
 
193
+ 有问题?去 GitHub 提 Issue:
194
+
136
195
  https://github.com/Thatgfsj/thatgfsj-code/issues
196
+
197
+ ---
198
+
199
+ ## 📜 License
200
+
201
+ MIT © Thatgfsj
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Agent Module
3
+ * Core agent logic with intent recognition, task planning, and streaming
4
+ */
5
+ import { AIEngine } from '../core/ai-engine.js';
6
+ import { SessionManager } from '../core/session.js';
7
+ export interface AgentConfig {
8
+ maxIterations?: number;
9
+ streaming?: boolean;
10
+ verbose?: boolean;
11
+ }
12
+ export declare class Agent {
13
+ private ai;
14
+ private session;
15
+ private intentRecognizer;
16
+ private config;
17
+ private streaming;
18
+ constructor(ai: AIEngine, session: SessionManager, config?: AgentConfig);
19
+ /**
20
+ * Process user input through the agent
21
+ */
22
+ process(input: string): Promise<string>;
23
+ /**
24
+ * Handle complex multi-step tasks
25
+ */
26
+ private handleComplexTask;
27
+ /**
28
+ * Handle command intent
29
+ */
30
+ private handleCommand;
31
+ /**
32
+ * Handle query intent
33
+ */
34
+ private handleQuery;
35
+ /**
36
+ * Handle general/code/chat intents
37
+ */
38
+ private handleGeneral;
39
+ /**
40
+ * Process with streaming output
41
+ */
42
+ processStream(input: string, onChunk: (chunk: string) => void): Promise<string>;
43
+ /**
44
+ * Get session
45
+ */
46
+ getSession(): SessionManager;
47
+ /**
48
+ * Clear session
49
+ */
50
+ clearSession(): void;
51
+ /**
52
+ * Interrupt ongoing operation
53
+ */
54
+ interrupt(): void;
55
+ }
56
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/agent/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,WAAW;IAavE;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B7C;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;YACW,aAAa;IAgB3B;;OAEG;YACW,WAAW;IAUzB;;OAEG;YACW,aAAa;IAU3B;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBrF;;OAEG;IACH,UAAU,IAAI,cAAc;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,SAAS,IAAI,IAAI;CAGlB"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Agent Module
3
+ * Core agent logic with intent recognition, task planning, and streaming
4
+ */
5
+ import { IntentRecognizer } from './intent.js';
6
+ import { StreamingOutput } from './streaming.js';
7
+ import chalk from 'chalk';
8
+ export class Agent {
9
+ ai;
10
+ session;
11
+ intentRecognizer;
12
+ config;
13
+ streaming;
14
+ constructor(ai, session, config) {
15
+ this.ai = ai;
16
+ this.session = session;
17
+ this.intentRecognizer = new IntentRecognizer(ai);
18
+ this.config = {
19
+ maxIterations: 5,
20
+ streaming: false,
21
+ verbose: false,
22
+ ...config
23
+ };
24
+ this.streaming = new StreamingOutput();
25
+ }
26
+ /**
27
+ * Process user input through the agent
28
+ */
29
+ async process(input) {
30
+ // Step 1: Recognize intent
31
+ const intent = await this.intentRecognizer.recognize(input);
32
+ if (this.config.verbose) {
33
+ console.log(chalk.gray(`\n📍 Intent: ${intent.type} (${intent.confidence}) - ${intent.reason}`));
34
+ }
35
+ // Step 2: Handle complex tasks
36
+ if (intent.type === 'complex') {
37
+ return await this.handleComplexTask(input, intent);
38
+ }
39
+ // Step 3: Route to appropriate handler
40
+ switch (intent.type) {
41
+ case 'command':
42
+ return await this.handleCommand(input);
43
+ case 'query':
44
+ return await this.handleQuery(input);
45
+ case 'code':
46
+ case 'chat':
47
+ default:
48
+ return await this.handleGeneral(input);
49
+ }
50
+ }
51
+ /**
52
+ * Handle complex multi-step tasks
53
+ */
54
+ async handleComplexTask(input, intent) {
55
+ const subtasks = await this.intentRecognizer.breakIntoSubtasks(input);
56
+ if (this.config.verbose) {
57
+ console.log(chalk.cyan(`\n📋 Breaking into ${subtasks.length} subtasks:`));
58
+ subtasks.forEach((task, i) => {
59
+ console.log(chalk.gray(` ${i + 1}. ${task.description} [${task.action}]`));
60
+ });
61
+ }
62
+ let results = [];
63
+ for (let i = 0; i < subtasks.length; i++) {
64
+ const task = subtasks[i];
65
+ console.log(chalk.cyan(`\n[${i + 1}/${subtasks.length}] ${task.description}...`));
66
+ const result = await this.process(task.description);
67
+ results.push(result);
68
+ }
69
+ return results.join('\n\n');
70
+ }
71
+ /**
72
+ * Handle command intent
73
+ */
74
+ async handleCommand(input) {
75
+ // Extract command from input
76
+ const command = input
77
+ .replace(/^(run|execute|exec)\s+/i, '')
78
+ .trim();
79
+ // Add to session and get response
80
+ this.session.addMessage('user', input);
81
+ const response = await this.ai.chat(this.session.getMessages(), this.config.maxIterations);
82
+ this.session.addMessage('assistant', response.content);
83
+ return response.content;
84
+ }
85
+ /**
86
+ * Handle query intent
87
+ */
88
+ async handleQuery(input) {
89
+ this.session.addMessage('user', input);
90
+ const response = await this.ai.chat(this.session.getMessages(), this.config.maxIterations);
91
+ this.session.addMessage('assistant', response.content);
92
+ return response.content;
93
+ }
94
+ /**
95
+ * Handle general/code/chat intents
96
+ */
97
+ async handleGeneral(input) {
98
+ this.session.addMessage('user', input);
99
+ const response = await this.ai.chat(this.session.getMessages(), this.config.maxIterations);
100
+ this.session.addMessage('assistant', response.content);
101
+ return response.content;
102
+ }
103
+ /**
104
+ * Process with streaming output
105
+ */
106
+ async processStream(input, onChunk) {
107
+ const wasStreaming = this.config.streaming;
108
+ this.config.streaming = true;
109
+ this.streaming.start({ onChunk });
110
+ try {
111
+ const result = await this.process(input);
112
+ this.streaming.end();
113
+ return result;
114
+ }
115
+ catch (error) {
116
+ this.streaming.stop();
117
+ throw error;
118
+ }
119
+ finally {
120
+ this.config.streaming = wasStreaming;
121
+ }
122
+ }
123
+ /**
124
+ * Get session
125
+ */
126
+ getSession() {
127
+ return this.session;
128
+ }
129
+ /**
130
+ * Clear session
131
+ */
132
+ clearSession() {
133
+ this.session.clear();
134
+ }
135
+ /**
136
+ * Interrupt ongoing operation
137
+ */
138
+ interrupt() {
139
+ this.streaming.stop();
140
+ }
141
+ }
142
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/agent/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Agent Module
3
+ * Core agent logic with intent recognition and task planning
4
+ */
5
+ export { Agent, type AgentConfig } from './core.js';
6
+ export { IntentRecognizer, type Intent, type SubTask } from './intent.js';
7
+ export { StreamingOutput } from './streaming.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Agent Module
3
+ * Core agent logic with intent recognition and task planning
4
+ */
5
+ export { Agent } from './core.js';
6
+ export { IntentRecognizer } from './intent.js';
7
+ export { StreamingOutput } from './streaming.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAoB,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAA6B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Intent Recognition
3
+ * Identifies user intent: chat, code, command, or query
4
+ */
5
+ export interface Intent {
6
+ type: 'chat' | 'code' | 'command' | 'query' | 'complex';
7
+ confidence: number;
8
+ reason?: string;
9
+ subTasks?: SubTask[];
10
+ }
11
+ export interface SubTask {
12
+ description: string;
13
+ action: string;
14
+ target?: string;
15
+ }
16
+ export declare class IntentRecognizer {
17
+ private ai;
18
+ constructor(aiEngine: any);
19
+ /**
20
+ * Recognize intent from user message
21
+ */
22
+ recognize(message: string): Promise<Intent>;
23
+ /**
24
+ * Fast keyword-based recognition
25
+ */
26
+ private fastRecognize;
27
+ /**
28
+ * AI-powered recognition for ambiguous cases
29
+ */
30
+ private aiRecognize;
31
+ /**
32
+ * Break complex task into subtasks
33
+ */
34
+ breakIntoSubtasks(message: string): Promise<SubTask[]>;
35
+ }
36
+ //# sourceMappingURL=intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/agent/intent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAwBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAM;gBAEJ,QAAQ,EAAE,GAAG;IAIzB;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWjD;;OAEG;IACH,OAAO,CAAC,aAAa;IAwErB;;OAEG;YACW,WAAW;IAMzB;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAgC7D"}