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
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Type definitions for Thatgfsj Code
3
+ * S02: Enhanced Tool interface with Builder pattern, inputSchema, and metadata
4
+ */
5
+ /**
6
+ * S02: Tool Builder — fluent API to construct tools
7
+ */
8
+ export class ToolBuilder {
9
+ _name = '';
10
+ _description = '';
11
+ _parameters = [];
12
+ _inputSchema = { type: 'object', properties: {} };
13
+ _metadata = {};
14
+ _fn;
15
+ name(n) { this._name = n; return this; }
16
+ description(d) { this._description = d; return this; }
17
+ param(p) {
18
+ this._parameters.push(p);
19
+ this._inputSchema.properties[p.name] = {
20
+ type: p.type,
21
+ description: p.description,
22
+ default: p.default,
23
+ enum: p.enum
24
+ };
25
+ return this;
26
+ }
27
+ stringParam(name, description, required = true, defaultVal) {
28
+ return this.param({ name, type: 'string', description, required, default: defaultVal });
29
+ }
30
+ numberParam(name, description, required = true, defaultVal) {
31
+ return this.param({ name, type: 'number', description, required, default: defaultVal });
32
+ }
33
+ booleanParam(name, description, required = false, defaultVal) {
34
+ return this.param({ name, type: 'boolean', description, required, default: defaultVal });
35
+ }
36
+ required(...names) {
37
+ this._inputSchema.required = names;
38
+ return this;
39
+ }
40
+ meta(m) {
41
+ this._metadata = { ...this._metadata, ...m };
42
+ return this;
43
+ }
44
+ permissions(...perms) {
45
+ this._metadata.permissions = perms;
46
+ return this;
47
+ }
48
+ tags(...t) {
49
+ this._metadata.tags = t;
50
+ return this;
51
+ }
52
+ handle(fn) {
53
+ this._fn = fn;
54
+ return this;
55
+ }
56
+ build() {
57
+ if (!this._name || !this._fn) {
58
+ throw new Error('Tool name and handler are required');
59
+ }
60
+ return {
61
+ name: this._name,
62
+ description: this._description,
63
+ parameters: this._parameters,
64
+ inputSchema: this._inputSchema,
65
+ metadata: this._metadata,
66
+ execute: this._fn
67
+ };
68
+ }
69
+ }
70
+ // Provider configurations
71
+ export const PROVIDERS = {
72
+ minimax: {
73
+ name: 'MiniMax',
74
+ baseUrl: 'https://api.minimax.io/anthropic/v1',
75
+ defaultModel: 'MiniMax-M3',
76
+ envKeys: ['MINIMAX_API_KEY', 'OPENAI_API_KEY']
77
+ },
78
+ siliconflow: {
79
+ name: 'SiliconFlow (硅基流动)',
80
+ baseUrl: 'https://api.siliconflow.cn/v1',
81
+ defaultModel: 'Qwen/Qwen3-32B',
82
+ envKeys: ['SILICONFLOW_API_KEY', 'OPENAI_API_KEY']
83
+ },
84
+ openai: {
85
+ name: 'OpenAI',
86
+ baseUrl: 'https://api.openai.com/v1',
87
+ defaultModel: 'gpt-4.1-mini',
88
+ envKeys: ['OPENAI_API_KEY']
89
+ },
90
+ anthropic: {
91
+ name: 'Anthropic',
92
+ baseUrl: 'https://api.anthropic.com/v1',
93
+ defaultModel: 'claude-haiku-4-5-20251001',
94
+ envKeys: ['ANTHROPIC_API_KEY']
95
+ },
96
+ ollama: {
97
+ name: 'Ollama (Local)',
98
+ baseUrl: process.env.OLLAMA_BASE_URL || 'http://localhost:11434',
99
+ defaultModel: 'llama3',
100
+ envKeys: []
101
+ },
102
+ gemini: {
103
+ name: 'Google Gemini',
104
+ baseUrl: 'https://generativelanguage.googleapis.com/v1beta',
105
+ defaultModel: 'gemini-2.5-flash',
106
+ envKeys: ['GEMINI_API_KEY']
107
+ },
108
+ kimi: {
109
+ name: 'Kimi (Moonshot AI)',
110
+ baseUrl: 'https://api.moonshot.cn/v1',
111
+ defaultModel: 'kimi-k2-instruct',
112
+ envKeys: ['KIMI_API_KEY', 'MOONSHOT_API_KEY']
113
+ },
114
+ deepseek: {
115
+ name: 'DeepSeek',
116
+ baseUrl: 'https://api.deepseek.com/v1',
117
+ defaultModel: 'deepseek-chat',
118
+ envKeys: ['DEEPSEEK_API_KEY']
119
+ },
120
+ ernie: {
121
+ name: 'Baidu ERNIE (文心一言)',
122
+ baseUrl: 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1',
123
+ defaultModel: 'ernie-4.5-8k',
124
+ envKeys: ['ERNIE_API_KEY', 'BAIDU_API_KEY']
125
+ }
126
+ };
127
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Thatgfsj Code - AI Coding Assistant
4
+ * Claude Code-like interactive CLI
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cmd/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
package/dist/index.js ADDED
@@ -0,0 +1,472 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Thatgfsj Code - AI Coding Assistant
4
+ * Claude Code-like interactive CLI
5
+ */
6
+ // 强制 UTF-8 编码 (Windows) - 必须在任何输出之前
7
+ // 注意:此项目是 ESM(package.json "type":"module"),绝不能在源码里直接
8
+ // 调用顶层 `require()`,否则会在所有平台上抛 ReferenceError。Windows 上
9
+ // 需要用 `createRequire(import.meta.url)` 才能拿到 CJS 风格的 `require`。
10
+ import { createRequire } from 'module';
11
+ const require = createRequire(import.meta.url);
12
+ if (process.platform === 'win32') {
13
+ try {
14
+ // 执行 chcp 65001 设置代码页
15
+ require('child_process').execSync('chcp 65001', { stdio: 'ignore', windowsHide: true });
16
+ }
17
+ catch { }
18
+ }
19
+ import { program } from 'commander';
20
+ import chalk from 'chalk';
21
+ import ora from 'ora';
22
+ import { fileURLToPath } from 'url';
23
+ import { dirname, join } from 'path';
24
+ import { existsSync, readdirSync, statSync, readFileSync } from 'fs';
25
+ // package.json 信息:便于把版本号与 README/CHANGELOG 保持同步
26
+ import pkg from '../package.json' with { type: 'json' };
27
+ import { AIEngine } from './core/ai-engine.js';
28
+ import { SessionManager } from './core/session.js';
29
+ import { ConfigManager } from './core/config.js';
30
+ import { FileTool, ShellTool, GitTool, SearchTool } from './tools/index.js';
31
+ import { WelcomeScreen } from './repl/welcome.js';
32
+ import { REPLLoop } from './repl/loop.js';
33
+ const __filename = fileURLToPath(import.meta.url);
34
+ const __dirname = dirname(__filename);
35
+ const VERSION = pkg.version;
36
+ // ============== Global Error Handling ==============
37
+ process.on('uncaughtException', (error) => {
38
+ console.error(chalk.red('\n❌ Error:'), error.message);
39
+ process.exit(1);
40
+ });
41
+ process.on('unhandledRejection', (reason) => {
42
+ console.error(chalk.red('\n❌ Error:'), reason);
43
+ process.exit(1);
44
+ });
45
+ // ============== CLI Program ==============
46
+ // Add init command
47
+ program
48
+ .command('init')
49
+ .description('初始化配置/设置向导')
50
+ .action(async () => {
51
+ await WelcomeScreen.interactiveSetup();
52
+ });
53
+ // Add explain command
54
+ program
55
+ .command('explain')
56
+ .description('解释代码含义 (Explain code in plain language)')
57
+ .argument('[file or code]', '要解释的代码或文件路径')
58
+ .option('-f, --file <path>', '从文件读取代码')
59
+ .action(async (code, options) => {
60
+ await executeExplain(code, options);
61
+ });
62
+ // Add debug command
63
+ program
64
+ .command('debug')
65
+ .description('Debug 代码问题 (Find and fix bugs)')
66
+ .argument('[file or code]', '需要调试的代码或文件路径')
67
+ .option('-f, --file <path>', '从文件读取代码')
68
+ .option('-e, --error <message>', '附加的错误信息')
69
+ .action(async (code, options) => {
70
+ await executeDebug(code, options);
71
+ });
72
+ // Add chat command (simple Q&A)
73
+ program
74
+ .command('chat')
75
+ .description('与 AI 问答 (Simple Q&A about your project)')
76
+ .argument('[question]', '问题')
77
+ .action(async (question) => {
78
+ await executeChat(question);
79
+ });
80
+ // Add template command
81
+ program
82
+ .command('template')
83
+ .description('代码模板生成 (Generate common code templates)')
84
+ .argument('[type]', '模板类型: react, vue, express, python-script, api-client, etc.')
85
+ .option('-n, --name <name>', '项目/组件名称')
86
+ .option('-o, --output <dir>', '输出目录')
87
+ .action(async (type, options) => {
88
+ await executeTemplate(type, options);
89
+ });
90
+ program
91
+ .name('gfcode')
92
+ .description('🤖 AI Coding Assistant - Like Claude Code')
93
+ .version(VERSION)
94
+ .argument('[prompt]', 'Task to execute (omit to start interactive mode)')
95
+ .option('-i, --interactive', 'Start interactive mode')
96
+ .option('-s, --stream', 'Stream output')
97
+ .option('-m, --model <model>', 'Specify model')
98
+ .option('--no-auto', 'Disable auto-read project files')
99
+ .action(async (prompt, options) => {
100
+ // Check for API key and show welcome if needed
101
+ const hasApiKey = checkApiKey();
102
+ if (!hasApiKey) {
103
+ WelcomeScreen.show();
104
+ }
105
+ // Default to interactive mode if no prompt provided
106
+ if (!prompt && !options.interactive) {
107
+ await startInteractive();
108
+ }
109
+ else if (prompt) {
110
+ await executeTask(prompt, options);
111
+ }
112
+ else {
113
+ await startInteractive();
114
+ }
115
+ });
116
+ // Helper to check API key
117
+ function checkApiKey() {
118
+ return !!(process.env.SILICONFLOW_API_KEY ||
119
+ process.env.OPENAI_API_KEY ||
120
+ process.env.MINIMAX_API_KEY ||
121
+ process.env.ANTHROPIC_API_KEY ||
122
+ process.env.GEMINI_API_KEY ||
123
+ process.env.KIMI_API_KEY ||
124
+ process.env.MOONSHOT_API_KEY ||
125
+ process.env.DEEPSEEK_API_KEY ||
126
+ process.env.OLLAMA_BASE_URL);
127
+ }
128
+ // Parse
129
+ program.parse(process.argv);
130
+ // ============== Core Functions ==============
131
+ /**
132
+ * Get project context
133
+ */
134
+ function getProjectContext() {
135
+ const cwd = process.cwd();
136
+ const info = [];
137
+ try {
138
+ // Package info
139
+ const pkgPath = join(cwd, 'package.json');
140
+ if (existsSync(pkgPath)) {
141
+ info.push(`📦 Project: ${cwd}`);
142
+ // 使用顶部静态导入的 readFileSync,避免在 ESM 模块里 require('fs')
143
+ const userPkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
144
+ info.push(` Name: ${userPkg.name || 'unknown'}`);
145
+ if (userPkg.dependencies && Object.keys(userPkg.dependencies).length > 0) {
146
+ info.push(` Deps: ${Object.keys(userPkg.dependencies).length} packages`);
147
+ }
148
+ }
149
+ else {
150
+ info.push(`📁 Working dir: ${cwd}`);
151
+ }
152
+ // Count files
153
+ let fileCount = 0;
154
+ const countFiles = (dir) => {
155
+ try {
156
+ const items = readdirSync(dir);
157
+ for (const item of items) {
158
+ if (item === 'node_modules' || item === '.git')
159
+ continue;
160
+ const fullPath = join(dir, item);
161
+ const stat = statSync(fullPath);
162
+ if (stat.isDirectory()) {
163
+ countFiles(fullPath);
164
+ }
165
+ else if (/\.(ts|js|py|go|rs|java|cpp|c|h)$/.test(item)) {
166
+ fileCount++;
167
+ }
168
+ }
169
+ }
170
+ catch { }
171
+ };
172
+ countFiles(cwd);
173
+ if (fileCount > 0) {
174
+ info.push(` Files: ${fileCount} code files`);
175
+ }
176
+ }
177
+ catch { }
178
+ return info.join('\n');
179
+ }
180
+ /**
181
+ * Execute a task (Claude Code style)
182
+ */
183
+ async function executeTask(prompt, options) {
184
+ console.log(chalk.cyan('\n🤖 Thatgfsj Code\n'));
185
+ console.log(chalk.gray(getProjectContext()));
186
+ console.log(chalk.gray('─'.repeat(40)));
187
+ console.log(chalk.cyan('\n> ') + prompt + '\n');
188
+ try {
189
+ const config = await ConfigManager.load();
190
+ if (options.model)
191
+ config.model = options.model;
192
+ const ai = new AIEngine(config);
193
+ const session = new SessionManager();
194
+ // Register tools - all available tools
195
+ const shellTool = new ShellTool();
196
+ const fileTool = new FileTool();
197
+ const gitTool = new GitTool();
198
+ const searchTool = new SearchTool();
199
+ ai.registerTool(shellTool);
200
+ ai.registerTool(fileTool);
201
+ ai.registerTool(gitTool);
202
+ ai.registerTool(searchTool);
203
+ // System prompt - Claude Code style
204
+ const systemPrompt = `You are Thatgfsj Code, an AI coding assistant like Claude Code.
205
+ You can read files, write files, and execute shell commands to complete coding tasks.
206
+
207
+ When working on a task:
208
+ 1. First understand what files are involved
209
+ 2. Read necessary files to understand the codebase
210
+ 3. Make changes
211
+ 4. Verify the changes work
212
+
213
+ Be concise but thorough. Show your reasoning.`;
214
+ session.addMessage('system', systemPrompt);
215
+ session.addMessage('user', prompt);
216
+ const spinner = ora(chalk.gray('Thinking...')).start();
217
+ let fullResponse = '';
218
+ for await (const chunk of ai.chatStream(session.getMessages())) {
219
+ spinner.stop();
220
+ process.stdout.write(chunk);
221
+ fullResponse += chunk;
222
+ }
223
+ console.log(chalk.gray('\n' + '─'.repeat(40)));
224
+ // 把助手回复写回会话,便于后续轮次保留上下文
225
+ session.addMessage('assistant', fullResponse);
226
+ }
227
+ catch (error) {
228
+ console.error(chalk.red(`\n❌ Error: ${error.message}`));
229
+ process.exit(1);
230
+ }
231
+ }
232
+ /**
233
+ * Start interactive mode (Claude Code style)
234
+ *
235
+ * 委托给 REPLLoop,它使用 @inquirer/input,支持方向键(含数字小键盘)、行内
236
+ * 编辑、命令历史、可滚动流式输出。原生 readline 在 Windows 终端下对小键盘
237
+ * 方向键的 ANSI 转义序列不友好 (Bug #1),所以这里不再直接用 readline。
238
+ */
239
+ async function startInteractive() {
240
+ console.log(chalk.cyan('\n🤖 Thatgfsj Code - Interactive Mode\n'));
241
+ console.log(chalk.gray(getProjectContext()));
242
+ console.log(chalk.gray('─'.repeat(40)));
243
+ console.log(chalk.gray('\nCommands:'));
244
+ console.log(chalk.gray(' exit, Ctrl+C - Quit'));
245
+ console.log(chalk.gray(' clear - Clear screen'));
246
+ console.log(chalk.gray(' context - Show project context'));
247
+ console.log(chalk.gray(' history - Show command history'));
248
+ console.log(chalk.gray(' help - Show all commands'));
249
+ console.log(chalk.gray('\n' + '─'.repeat(40) + '\n'));
250
+ try {
251
+ const repl = new REPLLoop();
252
+ await repl.start();
253
+ }
254
+ catch (error) {
255
+ console.error(chalk.red(`\n❌ Failed to start: ${error.message}`));
256
+ process.exit(1);
257
+ }
258
+ }
259
+ /**
260
+ * Execute explain command - explain code in plain language
261
+ */
262
+ async function executeExplain(code, options) {
263
+ let codeContent = code;
264
+ // Read from file if specified
265
+ if (options.file) {
266
+ try {
267
+ const { readFileSync } = await import('fs');
268
+ codeContent = readFileSync(options.file, 'utf-8');
269
+ console.log(chalk.gray(`📄 Reading from: ${options.file}\n`));
270
+ }
271
+ catch (error) {
272
+ console.error(chalk.red(`❌ 无法读取文件: ${error.message}`));
273
+ process.exit(1);
274
+ }
275
+ }
276
+ if (!codeContent) {
277
+ console.error(chalk.red('❌ 请提供要解释的代码或使用 -f <file> 指定文件'));
278
+ console.log(chalk.gray('用法: gfcode explain "代码" 或 gfcode explain -f path/to/file'));
279
+ process.exit(1);
280
+ }
281
+ console.log(chalk.cyan('\n📖 Thatgfsj Code - 代码解释\n'));
282
+ console.log(chalk.gray('─'.repeat(40)));
283
+ console.log(chalk.gray('\n📝 要解释的代码:\n'));
284
+ console.log(chalk.white(codeContent.slice(0, 500) + (codeContent.length > 500 ? '...' : '')));
285
+ console.log(chalk.gray('\n' + '─'.repeat(40)));
286
+ try {
287
+ const config = await ConfigManager.load();
288
+ const ai = new AIEngine(config);
289
+ const prompt = `请用通俗易懂的语言解释以下代码的功能和工作原理。
290
+ 如果代码有问题或可以优化,也请指出。
291
+
292
+ \`\`\`
293
+ ${codeContent}
294
+ \`\`\`
295
+
296
+ 请用中文回复,解释要清晰详细,适合编程新手理解。`;
297
+ const spinner = ora(chalk.gray('AI 正在分析代码...')).start();
298
+ const response = await ai.chat([
299
+ { role: 'system', content: '你是一个耐心的编程老师,善于用通俗易懂的语言解释代码。' },
300
+ { role: 'user', content: prompt }
301
+ ]);
302
+ spinner.stop();
303
+ console.log(chalk.cyan('\n💡 解释结果:\n'));
304
+ console.log(chalk.white(response.content));
305
+ }
306
+ catch (error) {
307
+ console.error(chalk.red(`\n❌ 解释失败: ${error.message}`));
308
+ process.exit(1);
309
+ }
310
+ }
311
+ /**
312
+ * Execute debug command - find and fix bugs
313
+ */
314
+ async function executeDebug(code, options) {
315
+ let codeContent = code;
316
+ // Read from file if specified
317
+ if (options.file) {
318
+ try {
319
+ const { readFileSync } = await import('fs');
320
+ codeContent = readFileSync(options.file, 'utf-8');
321
+ console.log(chalk.gray(`📄 Reading from: ${options.file}\n`));
322
+ }
323
+ catch (error) {
324
+ console.error(chalk.red(`❌ 无法读取文件: ${error.message}`));
325
+ process.exit(1);
326
+ }
327
+ }
328
+ if (!codeContent) {
329
+ console.error(chalk.red('❌ 请提供要调试的代码或使用 -f <file> 指定文件'));
330
+ console.log(chalk.gray('用法: gfcode debug "代码" 或 gfcode debug -f path/to/file'));
331
+ process.exit(1);
332
+ }
333
+ console.log(chalk.cyan('\n🔧 Thatgfsj Code - 代码调试\n'));
334
+ console.log(chalk.gray('─'.repeat(40)));
335
+ if (options.error) {
336
+ console.log(chalk.yellow('\n⚠️ 附加的错误信息:'));
337
+ console.log(chalk.red(options.error));
338
+ }
339
+ console.log(chalk.gray('\n📝 待调试的代码:\n'));
340
+ console.log(chalk.white(codeContent.slice(0, 500) + (codeContent.length > 500 ? '...' : '')));
341
+ console.log(chalk.gray('\n' + '─'.repeat(40)));
342
+ try {
343
+ const config = await ConfigManager.load();
344
+ const ai = new AIEngine(config);
345
+ const errorInfo = options.error ? `\n附加的错误信息: ${options.error}` : '';
346
+ const prompt = `请分析以下代码,找出潜在的问题和 bug,并给出修复建议。
347
+
348
+ \`\`\`
349
+ ${codeContent}
350
+ \`\`\`
351
+ ${errorInfo}
352
+
353
+ 请用中文回复,包括:
354
+ 1. 发现的问题列表
355
+ 2. 问题的原因分析
356
+ 3. 修复后的代码
357
+ 4. 预防此类问题的建议`;
358
+ const spinner = ora(chalk.gray('AI 正在分析代码...')).start();
359
+ const response = await ai.chat([
360
+ { role: 'system', content: '你是一个专业的代码调试专家,善于找出 bug 并提供修复方案。' },
361
+ { role: 'user', content: prompt }
362
+ ]);
363
+ spinner.stop();
364
+ console.log(chalk.cyan('\n🔍 调试结果:\n'));
365
+ console.log(chalk.white(response.content));
366
+ }
367
+ catch (error) {
368
+ console.error(chalk.red(`\n❌ 调试失败: ${error.message}`));
369
+ process.exit(1);
370
+ }
371
+ }
372
+ /**
373
+ * Execute chat command - simple Q&A about the project
374
+ */
375
+ async function executeChat(question) {
376
+ if (!question) {
377
+ console.error(chalk.red('❌ 请提供问题'));
378
+ console.log(chalk.gray('用法: gfcode chat "你的问题"'));
379
+ process.exit(1);
380
+ }
381
+ console.log(chalk.cyan('\n💬 Thatgfsj Code - 问答\n'));
382
+ console.log(chalk.gray('─'.repeat(40)));
383
+ console.log(chalk.cyan('\n❓ 问题: ') + question + '\n');
384
+ try {
385
+ const config = await ConfigManager.load();
386
+ const ai = new AIEngine(config);
387
+ // Get project context
388
+ const context = getProjectContext();
389
+ const prompt = `你是一个专业的编程助手。请回答用户的问题。
390
+
391
+ 项目上下文:
392
+ ${context}
393
+
394
+ 用户问题: ${question}
395
+
396
+ 请用中文回答,如果涉及到代码,请给出完整的代码示例。`;
397
+ const spinner = ora(chalk.gray('AI 正在思考...')).start();
398
+ const response = await ai.chat([
399
+ { role: 'system', content: '你是一个专业、友好的编程助手,善于用通俗易懂的语言回答问题。' },
400
+ { role: 'user', content: prompt }
401
+ ]);
402
+ spinner.stop();
403
+ console.log(chalk.cyan('\n💡 回答:\n'));
404
+ console.log(chalk.white(response.content));
405
+ }
406
+ catch (error) {
407
+ console.error(chalk.red(`\n❌ 问答失败: ${error.message}`));
408
+ process.exit(1);
409
+ }
410
+ }
411
+ /**
412
+ * Execute template command - generate code templates
413
+ */
414
+ async function executeTemplate(type, options) {
415
+ if (!type) {
416
+ console.error(chalk.red('❌ 请指定模板类型'));
417
+ console.log(chalk.gray('\n可用模板类型:'));
418
+ console.log(chalk.gray(' react - React 组件'));
419
+ console.log(chalk.gray(' vue - Vue 3 组件'));
420
+ console.log(chalk.gray(' express - Express API'));
421
+ console.log(chalk.gray(' python - Python 脚本'));
422
+ console.log(chalk.gray(' api-client - API 客户端'));
423
+ console.log(chalk.gray(' component - 通用组件'));
424
+ console.log(chalk.gray('\n用法: gfcode template react -n MyComponent'));
425
+ process.exit(1);
426
+ }
427
+ const name = options.name || 'MyProject';
428
+ const output = options.output || '.';
429
+ console.log(chalk.cyan('\n📦 Thatgfsj Code - 代码模板\n'));
430
+ console.log(chalk.gray('─'.repeat(40)));
431
+ console.log(chalk.gray(`模板类型: ${type}`));
432
+ console.log(chalk.gray(`项目名称: ${name}`));
433
+ console.log(chalk.gray(`输出目录: ${output}\n`));
434
+ try {
435
+ const config = await ConfigManager.load();
436
+ const ai = new AIEngine(config);
437
+ const templates = {
438
+ 'react': 'React 组件 (TypeScript)',
439
+ 'vue': 'Vue 3 组件 (TypeScript)',
440
+ 'express': 'Express API 路由',
441
+ 'python': 'Python 脚本',
442
+ 'api-client': 'API 客户端封装',
443
+ 'component': '通用前端组件'
444
+ };
445
+ const templateDesc = templates[type] || type;
446
+ const prompt = `请生成一个 ${templateDesc} 的代码模板。
447
+
448
+ 要求:
449
+ 1. 代码要完整、可运行
450
+ 2. 使用现代最佳实践
451
+ 3. 包含适当的注释
452
+ 4. 项目名称: ${name}
453
+
454
+ 请只返回代码,不要解释。如果需要多个文件,请用 ---FILE:filename--- 分隔。`;
455
+ const spinner = ora(chalk.gray('AI 正在生成模板...')).start();
456
+ const response = await ai.chat([
457
+ { role: 'system', content: '你是一个代码生成专家,擅长生成高质量、可运行的代码模板。' },
458
+ { role: 'user', content: prompt }
459
+ ]);
460
+ spinner.stop();
461
+ console.log(chalk.cyan('\n📄 生成的代码:\n'));
462
+ console.log(chalk.white(response.content));
463
+ // Ask if user wants to save
464
+ console.log(chalk.gray('\n' + '─'.repeat(40)));
465
+ console.log(chalk.gray('\n💡 要保存到文件吗? (y/n): '));
466
+ }
467
+ catch (error) {
468
+ console.error(chalk.red(`\n❌ 模板生成失败: ${error.message}`));
469
+ process.exit(1);
470
+ }
471
+ }
472
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * MCP turns the agent from a closed system into an open platform.
6
6
  * Any server can expose tools via the MCP JSON-RPC 2.0 protocol.
7
7
  */
8
- import type { Tool, ToolResult } from '../tools/types.js';
8
+ import { Tool, ToolResult } from '../core/types.js';
9
9
  export declare class MCPClient {
10
10
  private process;
11
11
  private tools;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA8B1D,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAGR;IACf,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,MAAM;IAIxB;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD7D;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBlF;;OAEG;YACW,SAAS;IAgBvB;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAgBlB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,UAAU,IAAI,IAAI;CASnB;AAID,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAqC;IAEpD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E;;OAEG;IACH,WAAW,IAAI,IAAI,EAAE;IAQrB;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAU3B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOrC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8BpD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAGR;IACf,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,MAAM;IAIxB;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD7D;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBlF;;OAEG;YACW,SAAS;IAgBvB;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAgBlB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,UAAU,IAAI,IAAI;CASnB;AAID,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAqC;IAEpD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E;;OAEG;IACH,WAAW,IAAI,IAAI,EAAE;IAQrB;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAU3B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOrC"}