agent-ide 0.1.0 → 0.1.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.
- package/README.md +83 -598
- package/dist/interfaces/mcp/mcp.d.ts +8 -0
- package/dist/interfaces/mcp/mcp.d.ts.map +1 -1
- package/dist/interfaces/mcp/mcp.js +303 -29
- package/dist/interfaces/mcp/mcp.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,678 +1,163 @@
|
|
|
1
1
|
# Agent IDE
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
為 AI 代理設計的程式碼智能工具集,提供索引、搜尋、重構、依賴分析等功能。
|
|
4
4
|
|
|
5
|
-
## 🚀
|
|
5
|
+
## 🚀 快速開始
|
|
6
6
|
|
|
7
|
-
###
|
|
8
|
-
- **🔍 智能搜尋**:文字搜尋、正則表達式搜尋、符號搜尋
|
|
9
|
-
- **📝 重新命名**:智能重新命名變數、函式、類別等程式碼元素
|
|
10
|
-
- **📁 檔案移動**:自動更新 import 路徑的檔案移動
|
|
11
|
-
- **🔗 依賴分析**:分析程式碼依賴關係和影響範圍
|
|
12
|
-
- **📚 程式碼索引**:建立高效的程式碼索引系統
|
|
13
|
-
- **🔌 可插拔 Parser**:支援多種程式語言的可插拔 Parser 系統
|
|
7
|
+
### Claude Code 整合(推薦)
|
|
14
8
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
### AI 工具整合
|
|
21
|
-
- **Claude Code**:透過 MCP Server 直接使用
|
|
22
|
-
- **其他 AI 工具**:支援 CLI 和程式化 API
|
|
23
|
-
|
|
24
|
-
## 🔌 Claude Code 整合
|
|
25
|
-
|
|
26
|
-
Agent IDE 可以直接在 Claude Code 中使用,透過 MCP (Model Context Protocol) 提供所有功能。
|
|
27
|
-
|
|
28
|
-
### 快速設定
|
|
29
|
-
|
|
30
|
-
1. **安裝 Agent IDE**:
|
|
31
|
-
```bash
|
|
32
|
-
npm install -g agent-ide
|
|
33
|
-
# 或從原始碼: cd agent-ide && pnpm install && pnpm build && npm link
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
2. **設定 Claude Code MCP**:
|
|
9
|
+
一行指令安裝:
|
|
10
|
+
```bash
|
|
11
|
+
claude mcp add agent-ide npx https://github.com/vivalalova/agent-ide.git agent-ide-mcp
|
|
12
|
+
```
|
|
37
13
|
|
|
38
|
-
|
|
39
|
-
- **macOS/Linux**: `~/.config/claude/mcp_settings.json`
|
|
40
|
-
- **Windows**: `%APPDATA%\Claude\mcp_settings.json`
|
|
14
|
+
重新啟動 Claude Code,輸入「請列出所有可用的 agent-ide 工具」驗證安裝。
|
|
41
15
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{
|
|
45
|
-
"mcpServers": {
|
|
46
|
-
"agent-ide": {
|
|
47
|
-
"command": "agent-ide-mcp",
|
|
48
|
-
"args": [],
|
|
49
|
-
"env": {}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
```
|
|
16
|
+
<details>
|
|
17
|
+
<summary>手動設定 MCP(Claude Desktop / 其他)</summary>
|
|
54
18
|
|
|
55
|
-
|
|
19
|
+
編輯設定檔:
|
|
20
|
+
- **Claude Desktop**: `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) 或 `%APPDATA%/Claude/claude_desktop_config.json` (Windows)
|
|
21
|
+
- **Claude Code**: `~/.config/claude/mcp_settings.json` (macOS/Linux) 或 `%APPDATA%\Claude\mcp_settings.json` (Windows)
|
|
56
22
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
23
|
+
加入:
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"mcpServers": {
|
|
27
|
+
"agent-ide": {
|
|
28
|
+
"command": "npx",
|
|
29
|
+
"args": ["https://github.com/vivalalova/agent-ide.git", "agent-ide-mcp"],
|
|
30
|
+
"env": {}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
</details>
|
|
61
36
|
|
|
62
37
|
### 可用工具
|
|
63
38
|
|
|
64
|
-
在 Claude Code 中,你可以使用以下 7 個工具:
|
|
65
|
-
|
|
66
39
|
| 工具 | 功能 |
|
|
67
40
|
|------|------|
|
|
68
|
-
| `code_index` |
|
|
69
|
-
| `code_search` |
|
|
70
|
-
| `code_rename` |
|
|
41
|
+
| `code_index` | 建立程式碼索引 |
|
|
42
|
+
| `code_search` | 搜尋符號、文字 |
|
|
43
|
+
| `code_rename` | 重新命名符號 |
|
|
71
44
|
| `code_move` | 移動檔案並更新 import |
|
|
72
|
-
| `code_analyze` |
|
|
73
|
-
| `code_deps` |
|
|
74
|
-
| `parser_plugins` |
|
|
45
|
+
| `code_analyze` | 分析程式碼品質 |
|
|
46
|
+
| `code_deps` | 依賴關係分析 |
|
|
47
|
+
| `parser_plugins` | Parser 插件管理 |
|
|
75
48
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
# 索引專案
|
|
80
|
-
請使用 agent-ide 索引 /path/to/my/project
|
|
81
|
-
|
|
82
|
-
# 搜尋符號
|
|
83
|
-
在專案中搜尋 UserService 類別
|
|
84
|
-
|
|
85
|
-
# 分析依賴
|
|
86
|
-
分析專案的依賴關係並檢查循環依賴
|
|
87
|
-
|
|
88
|
-
# 重新命名
|
|
89
|
-
將 src/user.ts 第 10 行第 14 列的符號重新命名為 CustomerService(預覽模式)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
📖 **完整設定指南**:查看 [MCP_SETUP.md](./MCP_SETUP.md) 瞭解詳細步驟和疑難排解
|
|
49
|
+
📖 完整設定指南:[MCP_SETUP.md](./MCP_SETUP.md)
|
|
93
50
|
|
|
94
51
|
---
|
|
95
52
|
|
|
96
|
-
##
|
|
53
|
+
## 💻 CLI 使用
|
|
97
54
|
|
|
98
|
-
###
|
|
55
|
+
### 安裝
|
|
99
56
|
|
|
100
57
|
```bash
|
|
101
|
-
#
|
|
58
|
+
# 從 npm(發布後)
|
|
102
59
|
npm install -g agent-ide
|
|
103
60
|
|
|
104
|
-
#
|
|
105
|
-
pnpm add -g agent-ide
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### 方法二:從原始碼安裝(開發版)
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
# 1. Clone 專案
|
|
61
|
+
# 從原始碼
|
|
112
62
|
git clone https://github.com/vivalalova/agent-ide.git
|
|
113
63
|
cd agent-ide
|
|
114
|
-
|
|
115
|
-
# 2. 安裝依賴
|
|
116
|
-
pnpm install
|
|
117
|
-
|
|
118
|
-
# 3. 建置專案
|
|
119
|
-
pnpm build
|
|
120
|
-
|
|
121
|
-
# 4. 連結到全域(開發模式)
|
|
122
|
-
npm link
|
|
123
|
-
|
|
124
|
-
# 5. 驗證安裝
|
|
125
|
-
agent-ide --version
|
|
126
|
-
agent-ide --help
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### 方法三:直接使用(不安裝)
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
# 在專案目錄中執行
|
|
133
|
-
cd agent-ide
|
|
134
|
-
pnpm install
|
|
135
|
-
pnpm build
|
|
136
|
-
|
|
137
|
-
# 使用 npx 執行
|
|
138
|
-
npx agent-ide index
|
|
139
|
-
npx agent-ide search "pattern"
|
|
64
|
+
pnpm install && pnpm build && npm link
|
|
140
65
|
```
|
|
141
66
|
|
|
142
|
-
###
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
# 解除全域連結
|
|
146
|
-
npm unlink -g agent-ide
|
|
147
|
-
|
|
148
|
-
# 或使用 npm
|
|
149
|
-
npm uninstall -g agent-ide
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
## 🛠️ 使用方法
|
|
153
|
-
|
|
154
|
-
### 建立索引
|
|
67
|
+
### 基本用法
|
|
155
68
|
|
|
156
69
|
```bash
|
|
157
|
-
#
|
|
70
|
+
# 索引專案
|
|
158
71
|
agent-ide index
|
|
159
72
|
|
|
160
|
-
#
|
|
161
|
-
agent-ide
|
|
162
|
-
|
|
163
|
-
# 增量更新索引
|
|
164
|
-
agent-ide index --update
|
|
165
|
-
|
|
166
|
-
# 自訂檔案類型
|
|
167
|
-
agent-ide index --extensions ".ts,.tsx,.js,.jsx"
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### 程式碼搜尋
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
# 文字搜尋
|
|
174
|
-
agent-ide search "function getUserById"
|
|
175
|
-
|
|
176
|
-
# 正則表達式搜尋
|
|
177
|
-
agent-ide search "export.*function" --regex
|
|
178
|
-
|
|
179
|
-
# 大小寫敏感搜尋
|
|
180
|
-
agent-ide search "User" --case-sensitive
|
|
181
|
-
|
|
182
|
-
# 全字匹配
|
|
183
|
-
agent-ide search "user" --whole-word
|
|
184
|
-
|
|
185
|
-
# 限制結果數量
|
|
186
|
-
agent-ide search "import" --max-results 10
|
|
187
|
-
|
|
188
|
-
# 顯示上下文
|
|
189
|
-
agent-ide search "class" --context 3
|
|
190
|
-
|
|
191
|
-
# JSON 輸出格式
|
|
192
|
-
agent-ide search "interface" --format json
|
|
193
|
-
```
|
|
73
|
+
# 搜尋程式碼
|
|
74
|
+
agent-ide search "UserService" --format json
|
|
194
75
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
```bash
|
|
198
|
-
# 重新命名變數
|
|
199
|
-
agent-ide rename --from oldName --to newName
|
|
200
|
-
|
|
201
|
-
# 重新命名類別
|
|
202
|
-
agent-ide rename --from OldClass --to NewClass --type class
|
|
203
|
-
|
|
204
|
-
# 預覽變更(不實際修改)
|
|
76
|
+
# 重新命名(預覽)
|
|
205
77
|
agent-ide rename --from oldName --to newName --dry-run
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### 檔案移動
|
|
209
78
|
|
|
210
|
-
```bash
|
|
211
79
|
# 移動檔案
|
|
212
|
-
agent-ide move src/old
|
|
80
|
+
agent-ide move src/old.ts src/new.ts
|
|
213
81
|
|
|
214
|
-
#
|
|
215
|
-
agent-ide move src/components src/ui/components
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### 依賴分析
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
# 分析專案依賴
|
|
222
|
-
agent-ide deps
|
|
223
|
-
|
|
224
|
-
# 分析特定檔案的依賴
|
|
225
|
-
agent-ide deps --file src/utils.ts
|
|
226
|
-
|
|
227
|
-
# 檢查循環依賴
|
|
82
|
+
# 依賴分析
|
|
228
83
|
agent-ide deps --check-cycles
|
|
229
|
-
|
|
230
|
-
# 影響分析
|
|
231
|
-
agent-ide deps --impact src/api.ts
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### 插件管理
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
# 查看已安裝的插件
|
|
238
|
-
agent-ide plugins list
|
|
239
|
-
|
|
240
|
-
# 啟用插件
|
|
241
|
-
agent-ide plugins enable typescript
|
|
242
|
-
|
|
243
|
-
# 停用插件
|
|
244
|
-
agent-ide plugins disable javascript
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
## 🔧 配置
|
|
248
|
-
|
|
249
|
-
Agent IDE 支援多種配置選項,可以透過配置檔案或命令列參數設定。
|
|
250
|
-
|
|
251
|
-
### 配置檔案
|
|
252
|
-
|
|
253
|
-
在專案根目錄建立 `agent-ide.config.json`:
|
|
254
|
-
|
|
255
|
-
```json
|
|
256
|
-
{
|
|
257
|
-
"indexing": {
|
|
258
|
-
"extensions": [".ts", ".tsx", ".js", ".jsx"],
|
|
259
|
-
"exclude": ["node_modules/**", "dist/**", "*.test.*"],
|
|
260
|
-
"maxDepth": 10
|
|
261
|
-
},
|
|
262
|
-
"search": {
|
|
263
|
-
"maxResults": 100,
|
|
264
|
-
"contextLines": 2,
|
|
265
|
-
"caseSensitive": false
|
|
266
|
-
},
|
|
267
|
-
"rename": {
|
|
268
|
-
"safeMode": true,
|
|
269
|
-
"backupFiles": false
|
|
270
|
-
},
|
|
271
|
-
"plugins": {
|
|
272
|
-
"typescript": {
|
|
273
|
-
"enabled": true,
|
|
274
|
-
"strictMode": true
|
|
275
|
-
},
|
|
276
|
-
"swift": {
|
|
277
|
-
"enabled": false
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### 環境變數
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
# 設定預設專案路徑
|
|
287
|
-
export AGENT_IDE_PROJECT_PATH=/path/to/project
|
|
288
|
-
|
|
289
|
-
# 設定快取目錄
|
|
290
|
-
export AGENT_IDE_CACHE_DIR=~/.agent-ide
|
|
291
|
-
|
|
292
|
-
# 啟用除錯模式
|
|
293
|
-
export AGENT_IDE_DEBUG=true
|
|
294
84
|
```
|
|
295
85
|
|
|
296
|
-
|
|
86
|
+
---
|
|
297
87
|
|
|
298
|
-
|
|
88
|
+
## 🏗️ 架構
|
|
299
89
|
|
|
300
90
|
```
|
|
301
91
|
Agent IDE
|
|
302
|
-
├──
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
│ ├── 移動服務 # 檔案移動和路徑更新
|
|
307
|
-
│ └── 依賴分析器 # 依賴關係分析
|
|
308
|
-
├── 基礎設施
|
|
309
|
-
│ ├── Parser 框架 # 可插拔 Parser 系統
|
|
310
|
-
│ ├── 快取管理 # 多層快取策略
|
|
311
|
-
│ └── 儲存抽象 # 統一儲存介面
|
|
312
|
-
├── 插件系統
|
|
313
|
-
│ ├── TypeScript Parser
|
|
314
|
-
│ ├── JavaScript Parser
|
|
315
|
-
│ └── Swift Parser (計畫中)
|
|
316
|
-
└── 介面層
|
|
317
|
-
├── CLI 介面 # 命令列工具
|
|
318
|
-
└── MCP 介面 (計畫中) # MCP 協議支援
|
|
92
|
+
├── 核心模組:索引、搜尋、重構、移動、依賴分析
|
|
93
|
+
├── 基礎設施:Parser 框架、快取、儲存
|
|
94
|
+
├── 插件系統:TypeScript、JavaScript、Swift
|
|
95
|
+
└── 介面層:CLI、MCP
|
|
319
96
|
```
|
|
320
97
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
-
|
|
324
|
-
-
|
|
325
|
-
-
|
|
326
|
-
- **記憶體優化**:使用 LRU 快取控制記憶體使用
|
|
327
|
-
|
|
328
|
-
## 🔌 插件開發
|
|
329
|
-
|
|
330
|
-
### 建立新的 Parser 插件
|
|
331
|
-
|
|
332
|
-
```typescript
|
|
333
|
-
import { ParserPlugin } from 'agent-ide';
|
|
334
|
-
|
|
335
|
-
export class MyLanguageParser implements ParserPlugin {
|
|
336
|
-
readonly name = 'my-language';
|
|
337
|
-
readonly version = '1.0.0';
|
|
338
|
-
readonly supportedExtensions = ['.my'];
|
|
339
|
-
readonly supportedLanguages = ['mylang'];
|
|
340
|
-
|
|
341
|
-
async parse(code: string, filePath: string): Promise<AST> {
|
|
342
|
-
// 實作語法解析邏輯
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
async extractSymbols(ast: AST): Promise<Symbol[]> {
|
|
346
|
-
// 實作符號提取邏輯
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
async extractDependencies(ast: AST): Promise<Dependency[]> {
|
|
350
|
-
// 實作依賴提取邏輯
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
async rename(ast: AST, position: Position, newName: string): Promise<CodeEdit[]> {
|
|
354
|
-
// 實作重新命名邏輯
|
|
355
|
-
}
|
|
98
|
+
**效能特色**:
|
|
99
|
+
- 增量索引(~1000 檔案/秒)
|
|
100
|
+
- 多層快取(查詢 <50ms)
|
|
101
|
+
- 並行處理
|
|
102
|
+
- 記憶體優化(~100MB / 10k 檔案)
|
|
356
103
|
|
|
357
|
-
|
|
358
|
-
return { valid: true, errors: [] };
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
async dispose(): Promise<void> {
|
|
362
|
-
// 清理資源
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
```
|
|
366
|
-
|
|
367
|
-
### 註冊插件
|
|
368
|
-
|
|
369
|
-
```typescript
|
|
370
|
-
import { ParserRegistry } from 'agent-ide';
|
|
371
|
-
import { MyLanguageParser } from './my-language-parser';
|
|
372
|
-
|
|
373
|
-
const registry = ParserRegistry.getInstance();
|
|
374
|
-
const parser = new MyLanguageParser();
|
|
375
|
-
registry.register(parser);
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
## 🧪 測試
|
|
379
|
-
|
|
380
|
-
```bash
|
|
381
|
-
# 執行所有測試
|
|
382
|
-
npm test
|
|
383
|
-
|
|
384
|
-
# 執行特定測試
|
|
385
|
-
npm test -- tests/core/search
|
|
386
|
-
|
|
387
|
-
# 監看模式
|
|
388
|
-
npm run test:watch
|
|
389
|
-
|
|
390
|
-
# 型別檢查
|
|
391
|
-
npm run typecheck
|
|
392
|
-
|
|
393
|
-
# 建置專案
|
|
394
|
-
npm run build
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
## 🤖 AI 代理使用指南
|
|
398
|
-
|
|
399
|
-
### 給 Claude Code、Cursor、Copilot 等 AI 工具的完整使用指南
|
|
400
|
-
|
|
401
|
-
#### 1️⃣ 安裝(給 AI 的步驟)
|
|
402
|
-
|
|
403
|
-
如果用戶想讓你使用 Agent IDE,請依序執行:
|
|
404
|
-
|
|
405
|
-
```bash
|
|
406
|
-
# 檢查是否已安裝
|
|
407
|
-
which agent-ide
|
|
408
|
-
|
|
409
|
-
# 如果未安裝,從專案目錄安裝
|
|
410
|
-
cd /path/to/agent-ide
|
|
411
|
-
pnpm install
|
|
412
|
-
pnpm build
|
|
413
|
-
npm link
|
|
414
|
-
|
|
415
|
-
# 驗證安裝
|
|
416
|
-
agent-ide --version
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
#### 2️⃣ 基本工作流程
|
|
420
|
-
|
|
421
|
-
```bash
|
|
422
|
-
# Step 1: 在用戶專案中建立索引(只需執行一次)
|
|
423
|
-
cd /path/to/user/project
|
|
424
|
-
agent-ide index
|
|
425
|
-
|
|
426
|
-
# Step 2: 搜尋程式碼
|
|
427
|
-
agent-ide search "目標關鍵字" --format json
|
|
428
|
-
|
|
429
|
-
# Step 3: 分析影響範圍
|
|
430
|
-
agent-ide deps --impact src/target-file.ts
|
|
431
|
-
|
|
432
|
-
# Step 4: 預覽變更
|
|
433
|
-
agent-ide rename --from oldName --to newName --dry-run
|
|
434
|
-
|
|
435
|
-
# Step 5: 執行變更
|
|
436
|
-
agent-ide rename --from oldName --to newName
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
#### 3️⃣ Token 優化技巧
|
|
440
|
-
|
|
441
|
-
**始終使用 JSON 格式輸出**:
|
|
442
|
-
```bash
|
|
443
|
-
agent-ide search "pattern" --format json
|
|
444
|
-
agent-ide deps --format json
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
**限制結果數量**:
|
|
448
|
-
```bash
|
|
449
|
-
agent-ide search "pattern" --max-results 5
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
**使用 dry-run 預覽**:
|
|
453
|
-
```bash
|
|
454
|
-
agent-ide rename --from old --to new --dry-run
|
|
455
|
-
agent-ide move old.ts new.ts --dry-run
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
#### 4️⃣ 完整重構範例
|
|
459
|
-
|
|
460
|
-
```bash
|
|
461
|
-
# 場景:重新命名類別並移動檔案
|
|
462
|
-
|
|
463
|
-
# 1. 搜尋現有使用
|
|
464
|
-
agent-ide search "OldClassName" --format json --max-results 20
|
|
465
|
-
|
|
466
|
-
# 2. 分析依賴
|
|
467
|
-
agent-ide deps --impact src/models/old-class.ts
|
|
468
|
-
|
|
469
|
-
# 3. 預覽重新命名
|
|
470
|
-
agent-ide rename --from OldClassName --to NewClassName --dry-run
|
|
471
|
-
|
|
472
|
-
# 4. 執行重新命名
|
|
473
|
-
agent-ide rename --from OldClassName --to NewClassName
|
|
474
|
-
|
|
475
|
-
# 5. 移動檔案
|
|
476
|
-
agent-ide move src/models/old-class.ts src/models/new-class.ts
|
|
477
|
-
|
|
478
|
-
# 6. 驗證
|
|
479
|
-
agent-ide search "NewClassName" --format json
|
|
480
|
-
agent-ide deps --check-cycles
|
|
481
|
-
```
|
|
482
|
-
|
|
483
|
-
#### 5️⃣ 常用命令速查
|
|
484
|
-
|
|
485
|
-
| 目的 | 命令 |
|
|
486
|
-
|------|------|
|
|
487
|
-
| 建立索引 | `agent-ide index` |
|
|
488
|
-
| 更新索引 | `agent-ide index --update` |
|
|
489
|
-
| 搜尋程式碼 | `agent-ide search "pattern" --format json` |
|
|
490
|
-
| 重新命名 | `agent-ide rename --from A --to B` |
|
|
491
|
-
| 移動檔案 | `agent-ide move old.ts new.ts` |
|
|
492
|
-
| 依賴分析 | `agent-ide deps --check-cycles` |
|
|
493
|
-
| 影響分析 | `agent-ide deps --impact file.ts` |
|
|
494
|
-
| 複雜度分析 | `agent-ide analyze --type complexity` |
|
|
495
|
-
|
|
496
|
-
#### 6️⃣ 輸出格式範例
|
|
497
|
-
|
|
498
|
-
**JSON 格式**(推薦):
|
|
499
|
-
```json
|
|
500
|
-
{
|
|
501
|
-
"results": [
|
|
502
|
-
{
|
|
503
|
-
"file": "src/user.ts",
|
|
504
|
-
"line": 10,
|
|
505
|
-
"match": "export class User"
|
|
506
|
-
}
|
|
507
|
-
]
|
|
508
|
-
}
|
|
509
|
-
```
|
|
510
|
-
|
|
511
|
-
**Minimal 格式**(最省 token):
|
|
512
|
-
```
|
|
513
|
-
src/user.ts:10: export class User
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
#### 7️⃣ 錯誤處理
|
|
517
|
-
|
|
518
|
-
如果命令失敗,檢查:
|
|
519
|
-
1. 索引是否已建立:`agent-ide index`
|
|
520
|
-
2. 路徑是否正確:使用絕對路徑
|
|
521
|
-
3. 語法是否正確:查看 `agent-ide --help`
|
|
104
|
+
**支援語言**:TypeScript、JavaScript、Swift(開發中)
|
|
522
105
|
|
|
523
106
|
---
|
|
524
107
|
|
|
525
|
-
## 🔌 程式化 API
|
|
526
|
-
|
|
527
|
-
Agent IDE 也可以在你的程式碼中使用:
|
|
108
|
+
## 🔌 程式化 API
|
|
528
109
|
|
|
529
110
|
```typescript
|
|
530
111
|
import { AgentIdeMCP } from 'agent-ide';
|
|
531
112
|
|
|
532
113
|
const mcp = new AgentIdeMCP();
|
|
533
114
|
|
|
534
|
-
//
|
|
535
|
-
const tools = mcp.getTools();
|
|
536
|
-
|
|
537
|
-
// 執行工具
|
|
538
|
-
const result = await mcp.executeTool('code_index', {
|
|
539
|
-
action: 'create',
|
|
540
|
-
path: '/path/to/project'
|
|
541
|
-
});
|
|
542
|
-
|
|
543
|
-
if (result.success) {
|
|
544
|
-
console.log('索引成功:', result.data);
|
|
545
|
-
}
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
### API 文件
|
|
549
|
-
|
|
550
|
-
完整的 MCP 工具參數和使用方式,請參考 [MCP_SETUP.md](./MCP_SETUP.md)
|
|
551
|
-
|
|
552
|
-
---
|
|
553
|
-
|
|
554
|
-
## 📚 MCP 工具快速參考
|
|
555
|
-
|
|
556
|
-
| 工具 | 功能 | 主要參數 |
|
|
557
|
-
|------|------|----------|
|
|
558
|
-
| `code_index` | 程式碼索引 | `action`, `path`, `query` |
|
|
559
|
-
| `code_search` | 程式碼搜尋 | `query`, `mode`, `limit` |
|
|
560
|
-
| `code_rename` | 重新命名 | `file`, `line`, `column`, `newName` |
|
|
561
|
-
| `code_move` | 檔案移動 | `source`, `destination` |
|
|
562
|
-
| `code_analyze` | 程式碼分析 | `path`, `type` |
|
|
563
|
-
| `code_deps` | 依賴分析 | `path` |
|
|
564
|
-
| `parser_plugins` | Parser 管理 | `action`, `plugin` |
|
|
565
|
-
|
|
566
|
-
### 工作流程範例
|
|
567
|
-
|
|
568
|
-
```typescript
|
|
569
|
-
const mcp = new AgentIdeMCP();
|
|
570
|
-
|
|
571
|
-
// 1. 建立索引
|
|
115
|
+
// 建立索引
|
|
572
116
|
await mcp.executeTool('code_index', {
|
|
573
117
|
action: 'create',
|
|
574
|
-
path:
|
|
118
|
+
path: '/path/to/project'
|
|
575
119
|
});
|
|
576
120
|
|
|
577
|
-
//
|
|
578
|
-
const
|
|
121
|
+
// 搜尋程式碼
|
|
122
|
+
const result = await mcp.executeTool('code_search', {
|
|
579
123
|
query: 'UserService',
|
|
580
|
-
path:
|
|
581
|
-
});
|
|
582
|
-
|
|
583
|
-
// 3. 分析依賴
|
|
584
|
-
await mcp.executeTool('code_deps', {
|
|
585
|
-
path: projectPath
|
|
586
|
-
});
|
|
587
|
-
|
|
588
|
-
// 4. 重新命名(預覽)
|
|
589
|
-
const renameResult = await mcp.executeTool('code_rename', {
|
|
590
|
-
file: filePath,
|
|
591
|
-
line: 10,
|
|
592
|
-
column: 14,
|
|
593
|
-
newName: 'CustomerService',
|
|
594
|
-
preview: true
|
|
124
|
+
path: '/path/to/project'
|
|
595
125
|
});
|
|
596
|
-
|
|
597
|
-
// 5. 執行重新命名
|
|
598
|
-
if (renameResult.success) {
|
|
599
|
-
await mcp.executeTool('code_rename', {
|
|
600
|
-
file: filePath,
|
|
601
|
-
line: 10,
|
|
602
|
-
column: 14,
|
|
603
|
-
newName: 'CustomerService',
|
|
604
|
-
preview: false
|
|
605
|
-
});
|
|
606
|
-
}
|
|
607
126
|
```
|
|
608
127
|
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
## 📊 效能基準
|
|
612
|
-
|
|
613
|
-
在典型的 TypeScript 專案中:
|
|
614
|
-
|
|
615
|
-
- **索引速度**:~1000 檔案/秒
|
|
616
|
-
- **搜尋響應**:<50ms(已索引檔案)
|
|
617
|
-
- **重新命名**:<200ms(中等複雜度)
|
|
618
|
-
- **記憶體使用**:~100MB(10,000 檔案專案)
|
|
619
|
-
|
|
620
|
-
## 🤝 貢獻指南
|
|
621
|
-
|
|
622
|
-
1. Fork 專案
|
|
623
|
-
2. 建立功能分支:`git checkout -b feature/amazing-feature`
|
|
624
|
-
3. 提交變更:`git commit -m 'Add amazing feature'`
|
|
625
|
-
4. 推送到分支:`git push origin feature/amazing-feature`
|
|
626
|
-
5. 建立 Pull Request
|
|
128
|
+
---
|
|
627
129
|
|
|
628
|
-
|
|
130
|
+
## 🧪 開發
|
|
629
131
|
|
|
630
132
|
```bash
|
|
631
|
-
#
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
# 安裝依賴
|
|
636
|
-
pnpm install
|
|
637
|
-
|
|
638
|
-
# 執行開發模式
|
|
639
|
-
pnpm run dev
|
|
640
|
-
|
|
641
|
-
# 執行測試
|
|
642
|
-
pnpm test
|
|
133
|
+
pnpm install # 安裝依賴
|
|
134
|
+
pnpm build # 建置
|
|
135
|
+
pnpm test # 測試
|
|
136
|
+
pnpm typecheck # 型別檢查
|
|
643
137
|
```
|
|
644
138
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
### 常見問題
|
|
648
|
-
|
|
649
|
-
**Q: 索引速度很慢**
|
|
650
|
-
A: 檢查是否有大量檔案被包含,考慮調整 `exclude` 設定
|
|
651
|
-
|
|
652
|
-
**Q: 搜尋結果不準確**
|
|
653
|
-
A: 確保索引是最新的,執行 `agent-ide index --update`
|
|
654
|
-
|
|
655
|
-
**Q: 重新命名後有錯誤**
|
|
656
|
-
A: 使用 `--dry-run` 預覽變更,或啟用 `safeMode`
|
|
139
|
+
---
|
|
657
140
|
|
|
658
|
-
|
|
659
|
-
A: 調整快取設定或限制索引深度
|
|
141
|
+
## 📖 文件
|
|
660
142
|
|
|
661
|
-
|
|
143
|
+
- [MCP 設定指南](./MCP_SETUP.md) - 詳細安裝和疑難排解
|
|
144
|
+
- [API 文件](./API.md) - 完整 API 參考
|
|
145
|
+
- [貢獻指南](./CONTRIBUTING.md) - 開發指南
|
|
146
|
+
- [發布檢查清單](./PUBLISH_CHECKLIST.md) - 發布流程
|
|
662
147
|
|
|
663
|
-
|
|
664
|
-
- 💬 加入 [討論](https://github.com/vivalalova/agent-ide/discussions)
|
|
148
|
+
---
|
|
665
149
|
|
|
666
150
|
## 📄 授權
|
|
667
151
|
|
|
668
|
-
|
|
152
|
+
MIT License - 查看 [LICENSE](LICENSE) 瞭解詳情
|
|
153
|
+
|
|
154
|
+
## 🤝 貢獻
|
|
669
155
|
|
|
670
|
-
|
|
156
|
+
歡迎貢獻!請查看 [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
671
157
|
|
|
672
|
-
-
|
|
673
|
-
-
|
|
674
|
-
- 開源社群的持續支持
|
|
158
|
+
- 🐛 [回報問題](https://github.com/vivalalova/agent-ide/issues)
|
|
159
|
+
- 💬 [參與討論](https://github.com/vivalalova/agent-ide/discussions)
|
|
675
160
|
|
|
676
161
|
---
|
|
677
162
|
|
|
678
|
-
**讓 AI 代理更聰明地理解和操作程式碼** 🤖✨
|
|
163
|
+
**讓 AI 代理更聰明地理解和操作程式碼** 🤖✨
|
|
@@ -21,6 +21,12 @@ export declare class AgentIdeMCP {
|
|
|
21
21
|
private dependencyAnalyzer?;
|
|
22
22
|
private renameEngine?;
|
|
23
23
|
private importResolver?;
|
|
24
|
+
private parsersInitialized;
|
|
25
|
+
constructor();
|
|
26
|
+
/**
|
|
27
|
+
* 初始化 Parser
|
|
28
|
+
*/
|
|
29
|
+
private initializeParsers;
|
|
24
30
|
/**
|
|
25
31
|
* 獲取所有可用的 MCP 工具定義
|
|
26
32
|
*/
|
|
@@ -34,7 +40,9 @@ export declare class AgentIdeMCP {
|
|
|
34
40
|
private handleCodeMove;
|
|
35
41
|
private handleCodeSearch;
|
|
36
42
|
private handleCodeAnalyze;
|
|
43
|
+
private formatAnalysisSummary;
|
|
37
44
|
private handleCodeDeps;
|
|
45
|
+
private formatDependencySummary;
|
|
38
46
|
/**
|
|
39
47
|
* 格式化相對路徑
|
|
40
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAGD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,kBAAkB,CAAS;;IAMnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE;IAoNrB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;YAgC1D,eAAe;YAqFf,gBAAgB;YAmEhB,cAAc;YAiDd,gBAAgB;YA2FhB,iBAAiB;IAoG/B,OAAO,CAAC,qBAAqB;YAuBf,cAAc;IAqG5B,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;YASZ,mBAAmB;CA2DlC"}
|
|
@@ -3,15 +3,43 @@
|
|
|
3
3
|
* 提供給 Claude Code 等 AI 工具使用的 MCP 工具
|
|
4
4
|
*/
|
|
5
5
|
import * as path from 'path';
|
|
6
|
+
import * as fs from 'fs/promises';
|
|
6
7
|
import { IndexEngine } from '../../core/indexing/index-engine.js';
|
|
8
|
+
import { DependencyAnalyzer } from '../../core/dependency/dependency-analyzer.js';
|
|
7
9
|
import { RenameEngine } from '../../core/rename/rename-engine.js';
|
|
10
|
+
import { MoveService } from '../../core/move/move-service.js';
|
|
11
|
+
import { ComplexityAnalyzer } from '../../core/analysis/complexity-analyzer.js';
|
|
12
|
+
import { QualityMetricsAnalyzer } from '../../core/analysis/quality-metrics.js';
|
|
8
13
|
import { createIndexConfig } from '../../core/indexing/types.js';
|
|
9
14
|
import { ParserRegistry } from '../../infrastructure/parser/registry.js';
|
|
15
|
+
import { TypeScriptParser } from '../../plugins/typescript/parser.js';
|
|
16
|
+
import { JavaScriptParser } from '../../plugins/javascript/parser.js';
|
|
17
|
+
import { glob } from 'glob';
|
|
10
18
|
export class AgentIdeMCP {
|
|
11
19
|
indexEngine;
|
|
12
20
|
dependencyAnalyzer;
|
|
13
21
|
renameEngine;
|
|
14
22
|
importResolver;
|
|
23
|
+
parsersInitialized = false;
|
|
24
|
+
constructor() {
|
|
25
|
+
this.initializeParsers();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 初始化 Parser
|
|
29
|
+
*/
|
|
30
|
+
initializeParsers() {
|
|
31
|
+
if (this.parsersInitialized) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const registry = ParserRegistry.getInstance();
|
|
35
|
+
// 註冊 TypeScript Parser
|
|
36
|
+
const tsParser = new TypeScriptParser();
|
|
37
|
+
registry.register(tsParser);
|
|
38
|
+
// 註冊 JavaScript Parser
|
|
39
|
+
const jsParser = new JavaScriptParser();
|
|
40
|
+
registry.register(jsParser);
|
|
41
|
+
this.parsersInitialized = true;
|
|
42
|
+
}
|
|
15
43
|
/**
|
|
16
44
|
* 獲取所有可用的 MCP 工具定義
|
|
17
45
|
*/
|
|
@@ -398,16 +426,45 @@ export class AgentIdeMCP {
|
|
|
398
426
|
}
|
|
399
427
|
}
|
|
400
428
|
async handleCodeMove(params) {
|
|
401
|
-
const { source, target, updateImports, preview } = params;
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
429
|
+
const { source, target, updateImports = true, preview = false } = params;
|
|
430
|
+
if (!source || !target) {
|
|
431
|
+
return { success: false, error: '需要指定來源路徑和目標路徑' };
|
|
432
|
+
}
|
|
433
|
+
try {
|
|
434
|
+
const workspacePath = process.cwd();
|
|
435
|
+
const sourcePath = path.isAbsolute(source) ? source : path.resolve(workspacePath, source);
|
|
436
|
+
const targetPath = path.isAbsolute(target) ? target : path.resolve(workspacePath, target);
|
|
437
|
+
const moveService = new MoveService();
|
|
438
|
+
const result = await moveService.moveFile({ source: sourcePath, target: targetPath, updateImports }, { preview, projectRoot: workspacePath });
|
|
439
|
+
if (!result.success) {
|
|
440
|
+
return {
|
|
441
|
+
success: false,
|
|
442
|
+
error: result.error || result.message
|
|
443
|
+
};
|
|
409
444
|
}
|
|
410
|
-
|
|
445
|
+
return {
|
|
446
|
+
success: true,
|
|
447
|
+
data: {
|
|
448
|
+
from: this.formatRelativePath(sourcePath, workspacePath),
|
|
449
|
+
to: this.formatRelativePath(targetPath, workspacePath),
|
|
450
|
+
filesUpdated: result.pathUpdates.length,
|
|
451
|
+
importUpdates: result.pathUpdates.map(update => ({
|
|
452
|
+
file: this.formatRelativePath(update.filePath, workspacePath),
|
|
453
|
+
line: update.line,
|
|
454
|
+
oldImport: update.oldImport,
|
|
455
|
+
newImport: update.newImport
|
|
456
|
+
})),
|
|
457
|
+
preview,
|
|
458
|
+
message: result.message
|
|
459
|
+
}
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
catch (error) {
|
|
463
|
+
return {
|
|
464
|
+
success: false,
|
|
465
|
+
error: `移動檔案失敗: ${error instanceof Error ? error.message : String(error)}`
|
|
466
|
+
};
|
|
467
|
+
}
|
|
411
468
|
}
|
|
412
469
|
async handleCodeSearch(params) {
|
|
413
470
|
const query = params.query;
|
|
@@ -448,13 +505,41 @@ export class AgentIdeMCP {
|
|
|
448
505
|
};
|
|
449
506
|
}
|
|
450
507
|
else {
|
|
451
|
-
// 文字搜尋
|
|
508
|
+
// 文字搜尋
|
|
509
|
+
const files = await glob('**/*.{ts,tsx,js,jsx}', {
|
|
510
|
+
cwd: workspacePath,
|
|
511
|
+
ignore: ['node_modules/**', 'dist/**', '*.test.*', '*.d.ts'],
|
|
512
|
+
absolute: true
|
|
513
|
+
});
|
|
514
|
+
const results = [];
|
|
515
|
+
for (const file of files.slice(0, 100)) {
|
|
516
|
+
try {
|
|
517
|
+
const content = await fs.readFile(file, 'utf-8');
|
|
518
|
+
const lines = content.split('\n');
|
|
519
|
+
lines.forEach((line, index) => {
|
|
520
|
+
if (line.includes(query)) {
|
|
521
|
+
results.push({
|
|
522
|
+
file: this.formatRelativePath(file, workspacePath),
|
|
523
|
+
line: index + 1,
|
|
524
|
+
column: line.indexOf(query) + 1,
|
|
525
|
+
content: line.trim()
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
catch (error) {
|
|
531
|
+
// 忽略讀取錯誤
|
|
532
|
+
}
|
|
533
|
+
if (results.length >= limit) {
|
|
534
|
+
break;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
452
537
|
return {
|
|
453
538
|
success: true,
|
|
454
539
|
data: {
|
|
455
540
|
query,
|
|
456
541
|
type: searchType,
|
|
457
|
-
results:
|
|
542
|
+
results: results.slice(0, limit)
|
|
458
543
|
}
|
|
459
544
|
};
|
|
460
545
|
}
|
|
@@ -467,28 +552,217 @@ export class AgentIdeMCP {
|
|
|
467
552
|
}
|
|
468
553
|
}
|
|
469
554
|
async handleCodeAnalyze(params) {
|
|
470
|
-
const
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
555
|
+
const analyzePath = params.path || '.';
|
|
556
|
+
const analyzeType = params.type || 'all';
|
|
557
|
+
const format = params.format || 'summary';
|
|
558
|
+
try {
|
|
559
|
+
const workspacePath = process.cwd();
|
|
560
|
+
const targetPath = path.isAbsolute(analyzePath)
|
|
561
|
+
? analyzePath
|
|
562
|
+
: path.resolve(workspacePath, analyzePath);
|
|
563
|
+
const results = {
|
|
564
|
+
path: this.formatRelativePath(targetPath, workspacePath),
|
|
565
|
+
type: analyzeType,
|
|
566
|
+
format
|
|
567
|
+
};
|
|
568
|
+
// 檢查路徑是否存在
|
|
569
|
+
try {
|
|
570
|
+
await fs.access(targetPath);
|
|
571
|
+
}
|
|
572
|
+
catch {
|
|
573
|
+
return { success: false, error: `路徑不存在: ${analyzePath}` };
|
|
574
|
+
}
|
|
575
|
+
const stat = await fs.stat(targetPath);
|
|
576
|
+
if (stat.isFile()) {
|
|
577
|
+
// 分析單一檔案
|
|
578
|
+
const content = await fs.readFile(targetPath, 'utf-8');
|
|
579
|
+
if (analyzeType === 'complexity' || analyzeType === 'all') {
|
|
580
|
+
const complexityAnalyzer = new ComplexityAnalyzer();
|
|
581
|
+
const complexityResult = await complexityAnalyzer.analyzeCode(content);
|
|
582
|
+
results.complexity = complexityResult;
|
|
583
|
+
}
|
|
584
|
+
if (analyzeType === 'quality' || analyzeType === 'all') {
|
|
585
|
+
const qualityAnalyzer = new QualityMetricsAnalyzer();
|
|
586
|
+
const qualityResult = await qualityAnalyzer.assess(content);
|
|
587
|
+
results.quality = qualityResult;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
else if (stat.isDirectory()) {
|
|
591
|
+
// 分析目錄中的檔案
|
|
592
|
+
const files = await glob('**/*.{ts,tsx,js,jsx}', {
|
|
593
|
+
cwd: targetPath,
|
|
594
|
+
ignore: ['node_modules/**', 'dist/**', '*.test.*', '*.d.ts'],
|
|
595
|
+
absolute: true
|
|
596
|
+
});
|
|
597
|
+
const fileResults = [];
|
|
598
|
+
for (const file of files.slice(0, 10)) {
|
|
599
|
+
try {
|
|
600
|
+
const content = await fs.readFile(file, 'utf-8');
|
|
601
|
+
const fileResult = {
|
|
602
|
+
file: this.formatRelativePath(file, workspacePath)
|
|
603
|
+
};
|
|
604
|
+
if (analyzeType === 'complexity' || analyzeType === 'all') {
|
|
605
|
+
const complexityAnalyzer = new ComplexityAnalyzer();
|
|
606
|
+
fileResult.complexity = await complexityAnalyzer.analyzeCode(content);
|
|
607
|
+
}
|
|
608
|
+
if (analyzeType === 'quality' || analyzeType === 'all') {
|
|
609
|
+
const qualityAnalyzer = new QualityMetricsAnalyzer();
|
|
610
|
+
fileResult.quality = await qualityAnalyzer.assess(content);
|
|
611
|
+
}
|
|
612
|
+
fileResults.push(fileResult);
|
|
613
|
+
}
|
|
614
|
+
catch (error) {
|
|
615
|
+
// 忽略讀取錯誤
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
results.files = fileResults;
|
|
619
|
+
results.totalFiles = fileResults.length;
|
|
620
|
+
}
|
|
621
|
+
if (format === 'summary') {
|
|
622
|
+
return {
|
|
623
|
+
success: true,
|
|
624
|
+
data: {
|
|
625
|
+
...results,
|
|
626
|
+
summary: this.formatAnalysisSummary(results)
|
|
627
|
+
}
|
|
628
|
+
};
|
|
478
629
|
}
|
|
479
|
-
|
|
630
|
+
return {
|
|
631
|
+
success: true,
|
|
632
|
+
data: results
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
catch (error) {
|
|
636
|
+
return {
|
|
637
|
+
success: false,
|
|
638
|
+
error: `分析失敗: ${error instanceof Error ? error.message : String(error)}`
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
formatAnalysisSummary(results) {
|
|
643
|
+
const lines = [];
|
|
644
|
+
if (results.complexity) {
|
|
645
|
+
lines.push(`複雜度: ${results.complexity.evaluation} (循環: ${results.complexity.cyclomaticComplexity}, 認知: ${results.complexity.cognitiveComplexity})`);
|
|
646
|
+
}
|
|
647
|
+
if (results.quality) {
|
|
648
|
+
lines.push(`品質: ${results.quality.grade} (可維護性指數: ${results.quality.maintainabilityIndex})`);
|
|
649
|
+
if (results.quality.codeSmells?.length > 0) {
|
|
650
|
+
lines.push(`程式碼異味: ${results.quality.codeSmells.length} 個`);
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
if (results.files) {
|
|
654
|
+
const avgComplexity = results.files.reduce((sum, f) => sum + (f.complexity?.cyclomaticComplexity || 0), 0) / results.files.length;
|
|
655
|
+
lines.push(`平均循環複雜度: ${avgComplexity.toFixed(2)}`);
|
|
656
|
+
}
|
|
657
|
+
return lines.join('\n');
|
|
480
658
|
}
|
|
481
659
|
async handleCodeDeps(params) {
|
|
482
|
-
const
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
660
|
+
const analyzePath = params.path || '.';
|
|
661
|
+
const analyzeType = params.type || 'all';
|
|
662
|
+
const targetFile = params.file;
|
|
663
|
+
const format = params.format || 'summary';
|
|
664
|
+
try {
|
|
665
|
+
const workspacePath = process.cwd();
|
|
666
|
+
const projectPath = path.isAbsolute(analyzePath)
|
|
667
|
+
? analyzePath
|
|
668
|
+
: path.resolve(workspacePath, analyzePath);
|
|
669
|
+
// 檢查路徑是否存在
|
|
670
|
+
try {
|
|
671
|
+
await fs.access(projectPath);
|
|
490
672
|
}
|
|
491
|
-
|
|
673
|
+
catch {
|
|
674
|
+
return { success: false, error: `路徑不存在: ${analyzePath}` };
|
|
675
|
+
}
|
|
676
|
+
const depAnalyzer = new DependencyAnalyzer({
|
|
677
|
+
includeNodeModules: false,
|
|
678
|
+
excludePatterns: ['node_modules', 'dist', '*.test.*', '*.d.ts'],
|
|
679
|
+
includePatterns: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx']
|
|
680
|
+
});
|
|
681
|
+
const results = {
|
|
682
|
+
path: this.formatRelativePath(projectPath, workspacePath),
|
|
683
|
+
type: analyzeType,
|
|
684
|
+
format
|
|
685
|
+
};
|
|
686
|
+
if (analyzeType === 'graph' || analyzeType === 'all') {
|
|
687
|
+
// 分析依賴圖
|
|
688
|
+
await depAnalyzer.analyzeProject(projectPath);
|
|
689
|
+
const stats = depAnalyzer.getStats();
|
|
690
|
+
results.graph = {
|
|
691
|
+
totalFiles: stats.totalFiles,
|
|
692
|
+
totalDependencies: stats.totalDependencies,
|
|
693
|
+
averageDependenciesPerFile: stats.averageDependenciesPerFile,
|
|
694
|
+
maxDependenciesInFile: stats.maxDependenciesInFile
|
|
695
|
+
};
|
|
696
|
+
}
|
|
697
|
+
if (analyzeType === 'cycles' || analyzeType === 'all') {
|
|
698
|
+
// 檢測循環依賴
|
|
699
|
+
await depAnalyzer.analyzeProject(projectPath);
|
|
700
|
+
const stats = depAnalyzer.getStats();
|
|
701
|
+
results.cycles = {
|
|
702
|
+
circularDependencies: stats.circularDependencies,
|
|
703
|
+
orphanedFiles: stats.orphanedFiles
|
|
704
|
+
};
|
|
705
|
+
}
|
|
706
|
+
if ((analyzeType === 'impact' || analyzeType === 'all') && targetFile) {
|
|
707
|
+
// 影響分析
|
|
708
|
+
const filePath = path.isAbsolute(targetFile)
|
|
709
|
+
? targetFile
|
|
710
|
+
: path.resolve(projectPath, targetFile);
|
|
711
|
+
try {
|
|
712
|
+
await fs.access(filePath);
|
|
713
|
+
await depAnalyzer.analyzeProject(projectPath);
|
|
714
|
+
const impactAnalysis = depAnalyzer.getImpactAnalysis(filePath);
|
|
715
|
+
results.impact = {
|
|
716
|
+
targetFile: this.formatRelativePath(filePath, workspacePath),
|
|
717
|
+
directlyAffected: impactAnalysis.directlyAffected.length,
|
|
718
|
+
transitivelyAffected: impactAnalysis.transitivelyAffected.length,
|
|
719
|
+
affectedTests: impactAnalysis.affectedTests.length,
|
|
720
|
+
impactScore: impactAnalysis.impactScore,
|
|
721
|
+
directlyAffectedFiles: impactAnalysis.directlyAffected.map(f => this.formatRelativePath(f, workspacePath)).slice(0, 10)
|
|
722
|
+
};
|
|
723
|
+
}
|
|
724
|
+
catch {
|
|
725
|
+
results.impact = { error: `檔案不存在: ${targetFile}` };
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
if (format === 'summary') {
|
|
729
|
+
return {
|
|
730
|
+
success: true,
|
|
731
|
+
data: {
|
|
732
|
+
...results,
|
|
733
|
+
summary: this.formatDependencySummary(results)
|
|
734
|
+
}
|
|
735
|
+
};
|
|
736
|
+
}
|
|
737
|
+
return {
|
|
738
|
+
success: true,
|
|
739
|
+
data: results
|
|
740
|
+
};
|
|
741
|
+
}
|
|
742
|
+
catch (error) {
|
|
743
|
+
return {
|
|
744
|
+
success: false,
|
|
745
|
+
error: `依賴分析失敗: ${error instanceof Error ? error.message : String(error)}`
|
|
746
|
+
};
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
formatDependencySummary(results) {
|
|
750
|
+
const lines = [];
|
|
751
|
+
if (results.graph) {
|
|
752
|
+
lines.push(`總檔案數: ${results.graph.totalFiles}`);
|
|
753
|
+
lines.push(`總依賴數: ${results.graph.totalDependencies}`);
|
|
754
|
+
lines.push(`平均每檔案依賴數: ${results.graph.averageDependenciesPerFile}`);
|
|
755
|
+
}
|
|
756
|
+
if (results.cycles) {
|
|
757
|
+
lines.push(`循環依賴: ${results.cycles.circularDependencies} 個`);
|
|
758
|
+
lines.push(`孤立檔案: ${results.cycles.orphanedFiles} 個`);
|
|
759
|
+
}
|
|
760
|
+
if (results.impact && !results.impact.error) {
|
|
761
|
+
lines.push(`直接影響: ${results.impact.directlyAffected} 個檔案`);
|
|
762
|
+
lines.push(`間接影響: ${results.impact.transitivelyAffected} 個檔案`);
|
|
763
|
+
lines.push(`影響分數: ${results.impact.impactScore.toFixed(2)}`);
|
|
764
|
+
}
|
|
765
|
+
return lines.join('\n');
|
|
492
766
|
}
|
|
493
767
|
/**
|
|
494
768
|
* 格式化相對路徑
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/interfaces/mcp/mcp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-ide",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "程式碼智能工具集 for AI Agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/shared/index.js",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"agent-ide-mcp": "./bin/mcp-server.js"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
+
"prepare": "npm run build",
|
|
13
14
|
"build": "tsc",
|
|
14
15
|
"test": "NODE_OPTIONS='--expose-gc --max-old-space-size=4096' npx vitest run",
|
|
15
16
|
"test:watch": "NODE_OPTIONS='--expose-gc --max-old-space-size=4096' npx vitest --watch",
|