ace-tool 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 ADDED
@@ -0,0 +1,223 @@
1
+ # ace-tool
2
+
3
+ [English](#english) | [中文](#中文)
4
+
5
+ ---
6
+
7
+ ## English
8
+
9
+ MCP server for codebase indexing and semantic search.
10
+
11
+ ### Installation
12
+
13
+ ```bash
14
+ npm install -g ace-tool
15
+ ```
16
+
17
+ Or use directly with npx:
18
+
19
+ ```bash
20
+ npx ace-tool --base-url <URL> --token <TOKEN>
21
+ ```
22
+
23
+ ### Configuration
24
+
25
+ #### MCP Settings
26
+
27
+ Add to your MCP configuration (e.g., Claude Desktop `claude_desktop_config.json`):
28
+
29
+ ```json
30
+ {
31
+ "mcpServers": {
32
+ "ace-tool": {
33
+ "command": "npx",
34
+ "args": [
35
+ "ace-tool",
36
+ "--base-url", "YOUR_BASE_URL",
37
+ "--token", "YOUR_TOKEN"
38
+ ]
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ #### Command Line Arguments
45
+
46
+ | Argument | Required | Description |
47
+ |----------|----------|-------------|
48
+ | `--base-url` | Yes | API base URL for the indexing service |
49
+ | `--token` | Yes | Authentication token |
50
+ | `--enable-log` | No | Enable logging to `.ace-tool/ace-tool.log` in project directory |
51
+
52
+ ### Tools
53
+
54
+ #### search_context
55
+
56
+ Search for relevant code context based on a natural language query.
57
+
58
+ **Parameters:**
59
+
60
+ - `project_root_path` (required): Absolute path to the project root directory
61
+ - `query` (required): Natural language description of the code you're looking for
62
+
63
+ **Example queries:**
64
+
65
+ - "Where is the function that handles user authentication?"
66
+ - "Find the initialization flow of message queue consumers during startup"
67
+ - "How is the database connected to the application?"
68
+
69
+ ### Project Data
70
+
71
+ ace-tool stores index data in a `.ace-tool` directory within each project:
72
+
73
+ ```
74
+ your-project/
75
+ ├── .ace-tool/
76
+ │ ├── index.json # Index metadata
77
+ │ └── ace-tool.log # Logs (if --enable-log is set)
78
+ ├── src/
79
+ └── ...
80
+ ```
81
+
82
+ The `.ace-tool` directory is automatically added to `.gitignore`.
83
+
84
+ ### Supported File Types
85
+
86
+ - **Programming languages**: `.py`, `.js`, `.ts`, `.jsx`, `.tsx`, `.java`, `.go`, `.rs`, `.cpp`, `.c`, `.h`, `.hpp`, `.cs`, `.rb`, `.php`, `.swift`, `.kt`, `.scala`, `.clj`
87
+ - **Config/Data**: `.md`, `.txt`, `.json`, `.yaml`, `.yml`, `.toml`, `.xml`, `.ini`, `.conf`
88
+ - **Web**: `.html`, `.css`, `.scss`, `.sass`, `.less`, `.vue`, `.svelte`
89
+ - **Scripts**: `.sql`, `.sh`, `.bash`, `.ps1`, `.bat`
90
+
91
+ ### Error Handling
92
+
93
+ ace-tool provides friendly error messages for common issues:
94
+
95
+ | Error Type | Description |
96
+ |------------|-------------|
97
+ | Token Invalid (401) | Token has expired or is invalid. Update `ACE_TOKEN`. |
98
+ | Access Denied (403) | Token may have been disabled. Contact service provider. |
99
+ | Connection Refused | Cannot connect to server. Check network or service URL. |
100
+ | Connection Timeout | Request timed out. Check network status. |
101
+ | DNS Resolution Failed | Cannot resolve server address. Check `ACE_BASE_URL`. |
102
+
103
+ ### MCP Logging
104
+
105
+ ace-tool supports real-time logging via MCP protocol. Logs are automatically pushed to MCP clients that support the logging capability.
106
+
107
+ Log levels: `debug`, `info`, `warning`, `error`
108
+
109
+ To also save logs to a local file, use the `--enable-log` argument.
110
+
111
+ ### License
112
+
113
+ MIT
114
+
115
+ ---
116
+
117
+ ## 中文
118
+
119
+ 用于代码库索引和语义搜索的 MCP 服务器。
120
+
121
+ ### 安装
122
+
123
+ ```bash
124
+ npm install -g ace-tool
125
+ ```
126
+
127
+ 或直接使用 npx:
128
+
129
+ ```bash
130
+ npx ace-tool --base-url <URL> --token <TOKEN>
131
+ ```
132
+
133
+ ### 配置
134
+
135
+ #### MCP 设置
136
+
137
+ 添加到你的 MCP 配置文件(例如 Claude Desktop 的 `claude_desktop_config.json`):
138
+
139
+ ```json
140
+ {
141
+ "mcpServers": {
142
+ "ace-tool": {
143
+ "command": "npx",
144
+ "args": [
145
+ "ace-tool",
146
+ "--base-url", "YOUR_BASE_URL",
147
+ "--token", "YOUR_TOKEN"
148
+ ]
149
+ }
150
+ }
151
+ }
152
+ ```
153
+
154
+ #### 命令行参数
155
+
156
+ | 参数 | 必填 | 描述 |
157
+ |------|------|------|
158
+ | `--base-url` | 是 | 索引服务的 API 基础 URL |
159
+ | `--token` | 是 | 认证令牌 |
160
+ | `--enable-log` | 否 | 启用日志,保存到项目目录的 `.ace-tool/ace-tool.log` |
161
+
162
+ ### 工具
163
+
164
+ #### search_context
165
+
166
+ 基于自然语言查询搜索相关代码上下文。
167
+
168
+ **参数:**
169
+
170
+ - `project_root_path`(必填):项目根目录的绝对路径
171
+ - `query`(必填):描述你要查找的代码的自然语言
172
+
173
+ **查询示例:**
174
+
175
+ - "处理用户认证的函数在哪里?"
176
+ - "查找启动时消息队列消费者的初始化流程"
177
+ - "数据库是如何连接到应用程序的?"
178
+
179
+ ### 项目数据
180
+
181
+ ace-tool 在每个项目的 `.ace-tool` 目录中存储索引数据:
182
+
183
+ ```
184
+ your-project/
185
+ ├── .ace-tool/
186
+ │ ├── index.json # 索引元数据
187
+ │ └── ace-tool.log # 日志(如果设置了 --enable-log)
188
+ ├── src/
189
+ └── ...
190
+ ```
191
+
192
+ `.ace-tool` 目录会自动添加到 `.gitignore`。
193
+
194
+ ### 支持的文件类型
195
+
196
+ - **编程语言**:`.py`, `.js`, `.ts`, `.jsx`, `.tsx`, `.java`, `.go`, `.rs`, `.cpp`, `.c`, `.h`, `.hpp`, `.cs`, `.rb`, `.php`, `.swift`, `.kt`, `.scala`, `.clj`
197
+ - **配置/数据**:`.md`, `.txt`, `.json`, `.yaml`, `.yml`, `.toml`, `.xml`, `.ini`, `.conf`
198
+ - **Web**:`.html`, `.css`, `.scss`, `.sass`, `.less`, `.vue`, `.svelte`
199
+ - **脚本**:`.sql`, `.sh`, `.bash`, `.ps1`, `.bat`
200
+
201
+ ### 错误处理
202
+
203
+ ace-tool 为常见问题提供友好的错误提示:
204
+
205
+ | 错误类型 | 描述 |
206
+ | -------- | ---- |
207
+ | Token 无效 (401) | Token 已过期或无效,请更新 `ACE_TOKEN` |
208
+ | 访问被拒绝 (403) | Token 可能已被禁用,请联系服务提供商 |
209
+ | 连接被拒绝 | 无法连接到服务器,请检查网络或服务地址 |
210
+ | 连接超时 | 请求超时,请检查网络状况 |
211
+ | DNS 解析失败 | 无法解析服务器地址,请检查 `ACE_BASE_URL` |
212
+
213
+ ### MCP 日志
214
+
215
+ ace-tool 支持通过 MCP 协议实时推送日志。日志会自动推送到支持日志功能的 MCP 客户端。
216
+
217
+ 日志级别:`debug`, `info`, `warning`, `error`
218
+
219
+ 如需同时保存日志到本地文件,请使用 `--enable-log` 参数。
220
+
221
+ ### 许可证
222
+
223
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/index/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH;;GAEG;AACH,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAqDD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAgB;gBAGhC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,MAAY,EAC7B,eAAe,GAAE,MAAM,EAAO;IAqBhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;OAEG;YACW,YAAY;IAiD1B;;OAEG;YACW,YAAY;IAiC1B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAqG1C;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAsDpD"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/index/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH;;GAEG;AACH,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAoDD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,eAAe,CAAW;IAClC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAgB;gBAGhC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,MAAY,EAC7B,eAAe,GAAE,MAAM,EAAO;IAmBhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6CxB;;OAEG;YACW,YAAY;IAgD1B;;OAEG;YACW,YAAY;IAuD1B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAuG1C;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAyDpD"}
@@ -7,7 +7,7 @@ import path from 'path';
7
7
  import axios from 'axios';
8
8
  import iconv from 'iconv-lite';
9
9
  import ignore from 'ignore';
10
- import { logger } from '../logger.js';
10
+ import { sendMcpLog } from '../mcpLogger.js';
11
11
  import { getIndexFilePath } from '../utils/projectDetector.js';
12
12
  /**
13
13
  * 使用多种编码尝试读取文件
@@ -30,7 +30,7 @@ async function readFileWithEncoding(filePath) {
30
30
  }
31
31
  }
32
32
  if (encoding !== 'utf-8') {
33
- logger.debug(`Read ${filePath} with encoding: ${encoding}`);
33
+ // UTF-8 编码,静默处理
34
34
  }
35
35
  return content;
36
36
  }
@@ -39,7 +39,6 @@ async function readFileWithEncoding(filePath) {
39
39
  }
40
40
  }
41
41
  const content = iconv.decode(buffer, 'utf-8');
42
- logger.warning(`Read ${filePath} with utf-8 (some characters may be lost)`);
43
42
  return content;
44
43
  }
45
44
  /**
@@ -85,7 +84,6 @@ export class IndexManager {
85
84
  Authorization: `Bearer ${this.token}`,
86
85
  },
87
86
  });
88
- logger.info(`IndexManager initialized for project: ${projectRoot}`);
89
87
  }
90
88
  /**
91
89
  * 加载 .gitignore 文件
@@ -99,11 +97,9 @@ export class IndexManager {
99
97
  const content = fs.readFileSync(gitignorePath, 'utf-8');
100
98
  const patterns = content.split('\n');
101
99
  const ig = ignore().add(patterns);
102
- logger.debug(`Loaded .gitignore with ${patterns.length} patterns`);
103
100
  return ig;
104
101
  }
105
102
  catch (error) {
106
- logger.warning(`Failed to load .gitignore: ${error}`);
107
103
  return null;
108
104
  }
109
105
  }
@@ -158,7 +154,7 @@ export class IndexManager {
158
154
  return JSON.parse(content);
159
155
  }
160
156
  catch (error) {
161
- logger.error(`Failed to load index: ${error}`);
157
+ sendMcpLog('error', `❌ 加载索引失败: ${error}`);
162
158
  return [];
163
159
  }
164
160
  }
@@ -171,7 +167,7 @@ export class IndexManager {
171
167
  fs.writeFileSync(this.indexFilePath, content, 'utf-8');
172
168
  }
173
169
  catch (error) {
174
- logger.error(`Failed to save index: ${error}`);
170
+ sendMcpLog('error', `❌ 保存索引失败: ${error}`);
175
171
  throw error;
176
172
  }
177
173
  }
@@ -215,7 +211,6 @@ export class IndexManager {
215
211
  const chunkPath = `${filePath}#chunk${chunkIdx + 1}of${numChunks}`;
216
212
  blobs.push({ path: chunkPath, content: chunkContent });
217
213
  }
218
- logger.info(`Split file ${filePath} (${totalLines} lines) into ${numChunks} chunks`);
219
214
  return blobs;
220
215
  }
221
216
  /**
@@ -256,13 +251,12 @@ export class IndexManager {
256
251
  blobs.push(...fileBlobs);
257
252
  }
258
253
  catch (error) {
259
- logger.warning(`Failed to read file: ${fullPath} - ${error}`);
254
+ // 静默处理读取失败
260
255
  }
261
256
  }
262
257
  }
263
258
  };
264
259
  await walkDir(this.projectRoot);
265
- logger.info(`Collected ${blobs.length} blobs (excluded ${excludedCount} items)`);
266
260
  return blobs;
267
261
  }
268
262
  /**
@@ -277,16 +271,37 @@ export class IndexManager {
277
271
  catch (error) {
278
272
  lastError = error instanceof Error ? error : new Error(String(error));
279
273
  const axiosError = error;
274
+ // Token 失效检测 - 不重试,直接抛出友好错误
275
+ if (axiosError.response?.status === 401) {
276
+ sendMcpLog('error', '🔑 Token 已失效或无效,请检查配置');
277
+ throw new Error('Token 已失效或无效,请更新 ACE_TOKEN 环境变量');
278
+ }
279
+ // 权限被拒绝 - 可能被官方制裁
280
+ if (axiosError.response?.status === 403) {
281
+ sendMcpLog('error', '🚫 访问被拒绝,Token 可能已被禁用');
282
+ throw new Error('访问被拒绝,Token 可能已被官方禁用,请联系服务提供商');
283
+ }
280
284
  const isRetryable = axiosError.code === 'ECONNREFUSED' ||
281
285
  axiosError.code === 'ETIMEDOUT' ||
282
286
  axiosError.code === 'ENOTFOUND' ||
283
287
  (axiosError.response && axiosError.response.status >= 500);
284
288
  if (!isRetryable || attempt === maxRetries - 1) {
285
- logger.error(`Request failed after ${attempt + 1} attempts: ${lastError.message}`);
286
- throw error;
289
+ // 提供更友好的网络错误提示
290
+ let friendlyMessage = lastError.message;
291
+ if (axiosError.code === 'ECONNREFUSED') {
292
+ friendlyMessage = '无法连接到服务器,请检查网络或服务地址';
293
+ }
294
+ else if (axiosError.code === 'ETIMEDOUT') {
295
+ friendlyMessage = '连接超时,请检查网络状况';
296
+ }
297
+ else if (axiosError.code === 'ENOTFOUND') {
298
+ friendlyMessage = '无法解析服务器地址,请检查 ACE_BASE_URL 配置';
299
+ }
300
+ sendMcpLog('error', `❌ 请求失败 (${attempt + 1}次尝试): ${friendlyMessage}`);
301
+ throw new Error(friendlyMessage);
287
302
  }
288
303
  const waitTime = retryDelay * Math.pow(2, attempt);
289
- logger.warning(`Request failed (attempt ${attempt + 1}/${maxRetries}). Retrying in ${waitTime}ms...`);
304
+ sendMcpLog('warning', `⚠️ 请求失败 (${attempt + 1}/${maxRetries}),${waitTime}ms 后重试...`);
290
305
  await sleep(waitTime);
291
306
  }
292
307
  }
@@ -296,12 +311,15 @@ export class IndexManager {
296
311
  * 对项目进行索引(支持增量索引)
297
312
  */
298
313
  async indexProject() {
299
- logger.info(`Indexing project: ${this.projectRoot}`);
314
+ sendMcpLog('info', `📂 开始索引项目: ${this.projectRoot}`);
300
315
  try {
316
+ sendMcpLog('info', '🔍 正在扫描文件...');
301
317
  const blobs = await this.collectFiles();
302
318
  if (blobs.length === 0) {
319
+ sendMcpLog('warning', '⚠️ 未找到可索引的文本文件');
303
320
  return { status: 'error', message: 'No text files found in project' };
304
321
  }
322
+ sendMcpLog('info', `📄 扫描完成,共发现 ${blobs.length} 个文件块`);
305
323
  // 加载已存在的索引数据
306
324
  const existingBlobNames = new Set(this.loadIndex());
307
325
  // 为所有收集的 blob 计算哈希值
@@ -315,18 +333,18 @@ export class IndexManager {
315
333
  const existingHashes = new Set([...allBlobHashes].filter((hash) => existingBlobNames.has(hash)));
316
334
  const newHashes = [...allBlobHashes].filter((hash) => !existingBlobNames.has(hash));
317
335
  const blobsToUpload = newHashes.map((hash) => blobHashMap.get(hash));
318
- logger.info(`Incremental indexing: total=${blobs.length}, existing=${existingHashes.size}, new=${newHashes.length}`);
336
+ sendMcpLog('info', `📊 增量索引: 已有 ${existingHashes.size} 个, 新增 ${newHashes.length} 个`);
319
337
  // 只上传新的 blob
320
338
  const uploadedBlobNames = [];
321
339
  const failedBatches = [];
322
340
  if (blobsToUpload.length > 0) {
323
341
  const totalBatches = Math.ceil(blobsToUpload.length / this.batchSize);
324
- logger.info(`Uploading ${blobsToUpload.length} new blobs in ${totalBatches} batches`);
342
+ sendMcpLog('info', `⬆️ 开始上传 ${blobsToUpload.length} 个新文件块,共 ${totalBatches} 批`);
325
343
  for (let batchIdx = 0; batchIdx < totalBatches; batchIdx++) {
326
344
  const startIdx = batchIdx * this.batchSize;
327
345
  const endIdx = Math.min(startIdx + this.batchSize, blobsToUpload.length);
328
346
  const batchBlobs = blobsToUpload.slice(startIdx, endIdx);
329
- logger.info(`Uploading batch ${batchIdx + 1}/${totalBatches} (${batchBlobs.length} blobs)`);
347
+ sendMcpLog('info', `📤 上传批次 ${batchIdx + 1}/${totalBatches}...`);
330
348
  try {
331
349
  const result = await this.retryRequest(async () => {
332
350
  const response = await this.httpClient.post(`${this.baseUrl}/batch-upload`, {
@@ -336,31 +354,31 @@ export class IndexManager {
336
354
  });
337
355
  const batchBlobNames = result.blob_names || [];
338
356
  if (batchBlobNames.length === 0) {
339
- logger.warning(`Batch ${batchIdx + 1} returned no blob names`);
357
+ sendMcpLog('warning', `⚠️ 批次 ${batchIdx + 1} 返回空结果`);
340
358
  failedBatches.push(batchIdx + 1);
341
359
  continue;
342
360
  }
343
361
  uploadedBlobNames.push(...batchBlobNames);
344
- logger.info(`Batch ${batchIdx + 1} uploaded successfully`);
345
362
  }
346
363
  catch (error) {
347
364
  const errorMessage = error instanceof Error ? error.message : String(error);
348
- logger.error(`Batch ${batchIdx + 1} failed: ${errorMessage}`);
365
+ sendMcpLog('error', `❌ 批次 ${batchIdx + 1} 上传失败: ${errorMessage}`);
349
366
  failedBatches.push(batchIdx + 1);
350
367
  }
351
368
  }
352
369
  if (uploadedBlobNames.length === 0 && blobsToUpload.length > 0 && existingHashes.size === 0) {
370
+ sendMcpLog('error', '❌ 所有批次上传失败');
353
371
  return { status: 'error', message: 'All batches failed on first indexing' };
354
372
  }
355
373
  }
356
374
  else {
357
- logger.info('No new blobs to upload');
375
+ sendMcpLog('info', '✅ 无需上传新文件,使用缓存索引');
358
376
  }
359
377
  // 合并已存在和新上传的 blob 名称
360
378
  const allBlobNames = [...existingHashes, ...uploadedBlobNames];
361
379
  this.saveIndex(allBlobNames);
362
380
  const message = `Indexed ${allBlobNames.length} blobs (existing: ${existingHashes.size}, new: ${uploadedBlobNames.length})`;
363
- logger.info(message);
381
+ sendMcpLog('info', `✅ 索引完成: 共 ${allBlobNames.length} 个文件块`);
364
382
  return {
365
383
  status: failedBatches.length === 0 ? 'success' : 'partial_success',
366
384
  message,
@@ -373,7 +391,7 @@ export class IndexManager {
373
391
  }
374
392
  catch (error) {
375
393
  const errorMessage = error instanceof Error ? error.message : String(error);
376
- logger.error(`Failed to index project: ${errorMessage}`);
394
+ sendMcpLog('error', `❌ 索引项目失败: ${errorMessage}`);
377
395
  return { status: 'error', message: errorMessage };
378
396
  }
379
397
  }
@@ -381,20 +399,22 @@ export class IndexManager {
381
399
  * 搜索代码上下文(自动增量索引)
382
400
  */
383
401
  async searchContext(query) {
384
- logger.info(`Searching with query: ${query}`);
402
+ sendMcpLog('info', `🔎 开始搜索: ${query}`);
385
403
  try {
386
404
  // 自动索引
387
405
  const indexResult = await this.indexProject();
388
406
  if (indexResult.status === 'error') {
407
+ sendMcpLog('error', `❌ 索引失败: ${indexResult.message}`);
389
408
  return `Error: Failed to index project. ${indexResult.message}`;
390
409
  }
391
410
  // 加载索引
392
411
  const blobNames = this.loadIndex();
393
412
  if (blobNames.length === 0) {
413
+ sendMcpLog('error', '❌ 索引为空');
394
414
  return 'Error: No blobs found after indexing.';
395
415
  }
396
416
  // 执行搜索
397
- logger.info(`Searching with ${blobNames.length} blobs...`);
417
+ sendMcpLog('info', `🔍 正在搜索 ${blobNames.length} 个文件块...`);
398
418
  const payload = {
399
419
  information_request: query,
400
420
  blobs: {
@@ -413,14 +433,15 @@ export class IndexManager {
413
433
  }, 3, 2000);
414
434
  const formattedRetrieval = result.formatted_retrieval || '';
415
435
  if (!formattedRetrieval) {
436
+ sendMcpLog('info', '📭 未找到相关代码');
416
437
  return 'No relevant code context found for your query.';
417
438
  }
418
- logger.info('Search completed');
439
+ sendMcpLog('info', '✅ 搜索完成');
419
440
  return formattedRetrieval;
420
441
  }
421
442
  catch (error) {
422
443
  const errorMessage = error instanceof Error ? error.message : String(error);
423
- logger.error(`Search failed: ${errorMessage}`);
444
+ sendMcpLog('error', `❌ 搜索失败: ${errorMessage}`);
424
445
  return `Error: ${errorMessage}`;
425
446
  }
426
447
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/index/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/index/manager.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
7
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
8
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
9
  import { initConfig } from './config.js';
10
- import { logger } from './logger.js';
10
+ import { initMcpLogger, sendMcpLog } from './mcpLogger.js';
11
11
  import { SEARCH_CONTEXT_TOOL } from './prompts/searchContext.js';
12
12
  import { searchContextTool } from './tools/searchContext.js';
13
13
  /**
@@ -19,8 +19,11 @@ const server = new Server({
19
19
  }, {
20
20
  capabilities: {
21
21
  tools: {},
22
+ logging: {},
22
23
  },
23
24
  });
25
+ // 初始化 MCP 日志模块
26
+ initMcpLogger(server);
24
27
  /**
25
28
  * 列出可用工具
26
29
  */
@@ -39,11 +42,9 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
39
42
  */
40
43
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
41
44
  const { name, arguments: args } = request.params;
42
- logger.info(`Tool called: ${name}, args: ${JSON.stringify(args)}`);
43
45
  try {
44
46
  if (name === 'search_context') {
45
47
  const result = await searchContextTool(args);
46
- logger.info(`Tool result: ${result?.text?.substring(0, 100)}...`);
47
48
  return {
48
49
  content: [
49
50
  {
@@ -64,7 +65,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
64
65
  }
65
66
  catch (error) {
66
67
  const errorMessage = error instanceof Error ? error.message : String(error);
67
- logger.error(`Tool execution error: ${errorMessage}`);
68
+ sendMcpLog('error', `❌ 工具执行错误: ${errorMessage}`);
68
69
  return {
69
70
  content: [
70
71
  {
@@ -81,16 +82,14 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
81
82
  async function main() {
82
83
  try {
83
84
  // 初始化配置
84
- const config = initConfig();
85
- logger.info('Starting ace-tool MCP server...');
86
- logger.info(`API: ${config.baseUrl}`);
85
+ initConfig();
87
86
  // 启动 MCP 服务器
88
87
  const transport = new StdioServerTransport();
89
88
  await server.connect(transport);
90
- logger.info('MCP server connected via stdio');
91
89
  }
92
90
  catch (error) {
93
- logger.exception('Server error', error);
91
+ const errorMessage = error instanceof Error ? error.message : String(error);
92
+ sendMcpLog('error', `❌ 服务器错误: ${errorMessage}`);
94
93
  process.exit(1);
95
94
  }
96
95
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 统一日志模块 - 同时支持 MCP 客户端推送和本地文件写入
3
+ */
4
+ import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
+ type LogLevel = 'debug' | 'info' | 'warning' | 'error';
6
+ /**
7
+ * 初始化 MCP 日志模块
8
+ */
9
+ export declare function initMcpLogger(server: Server): void;
10
+ /**
11
+ * 启用文件日志
12
+ */
13
+ export declare function enableFileLog(): void;
14
+ /**
15
+ * 设置项目路径(用于文件日志)
16
+ */
17
+ export declare function setLogProjectPath(projectRoot: string): void;
18
+ /**
19
+ * 关闭日志流
20
+ */
21
+ export declare function closeLog(): void;
22
+ /**
23
+ * 发送日志(同时推送到 MCP 客户端和写入文件)
24
+ */
25
+ export declare function sendMcpLog(level: LogLevel, message: string): void;
26
+ export {};
27
+ //# sourceMappingURL=mcpLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpLogger.d.ts","sourceRoot":"","sources":["../src/mcpLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAExE,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAOvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA0B3D;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAK/B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAkBjE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 统一日志模块 - 同时支持 MCP 客户端推送和本地文件写入
3
+ */
4
+ import fs from 'fs';
5
+ import path from 'path';
6
+ let mcpServer = null;
7
+ let fileEnabled = false;
8
+ let logFilePath = null;
9
+ let logStream = null;
10
+ /**
11
+ * 初始化 MCP 日志模块
12
+ */
13
+ export function initMcpLogger(server) {
14
+ mcpServer = server;
15
+ }
16
+ /**
17
+ * 启用文件日志
18
+ */
19
+ export function enableFileLog() {
20
+ fileEnabled = true;
21
+ }
22
+ /**
23
+ * 设置项目路径(用于文件日志)
24
+ */
25
+ export function setLogProjectPath(projectRoot) {
26
+ if (!fileEnabled) {
27
+ return;
28
+ }
29
+ const aceDir = path.join(projectRoot, '.ace-tool');
30
+ // 确保 .ace-tool 目录存在
31
+ if (!fs.existsSync(aceDir)) {
32
+ fs.mkdirSync(aceDir, { recursive: true });
33
+ }
34
+ logFilePath = path.join(aceDir, 'ace-tool.log');
35
+ // 关闭旧的流
36
+ if (logStream) {
37
+ logStream.end();
38
+ }
39
+ // 创建新的写入流(追加模式)
40
+ logStream = fs.createWriteStream(logFilePath, { flags: 'a' });
41
+ // 写入分隔线
42
+ const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 19);
43
+ const separator = `\n${'='.repeat(60)}\n${timestamp} | Session started\n${'='.repeat(60)}\n`;
44
+ logStream.write(separator);
45
+ }
46
+ /**
47
+ * 关闭日志流
48
+ */
49
+ export function closeLog() {
50
+ if (logStream) {
51
+ logStream.end();
52
+ logStream = null;
53
+ }
54
+ }
55
+ /**
56
+ * 发送日志(同时推送到 MCP 客户端和写入文件)
57
+ */
58
+ export function sendMcpLog(level, message) {
59
+ // 1. 推送到 MCP 客户端
60
+ if (mcpServer) {
61
+ mcpServer.sendLoggingMessage({
62
+ level,
63
+ data: message,
64
+ }).catch(() => {
65
+ // 忽略发送失败(可能客户端未连接)
66
+ });
67
+ }
68
+ // 2. 写入本地文件(如果启用)
69
+ if (fileEnabled && logStream) {
70
+ const timestamp = new Date().toISOString().replace('T', ' ').substring(0, 19);
71
+ const levelStr = level.toUpperCase().padEnd(7);
72
+ const logLine = `${timestamp} | ${levelStr} | ${message}\n`;
73
+ logStream.write(logLine);
74
+ }
75
+ }
76
+ //# sourceMappingURL=mcpLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpLogger.js","sourceRoot":"","sources":["../src/mcpLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAKxB,IAAI,SAAS,GAAkB,IAAI,CAAC;AACpC,IAAI,WAAW,GAAY,KAAK,CAAC;AACjC,IAAI,WAAW,GAAkB,IAAI,CAAC;AACtC,IAAI,SAAS,GAA0B,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,SAAS,GAAG,MAAM,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEnD,oBAAoB;IACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEhD,QAAQ;IACR,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9D,QAAQ;IACR,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,uBAAuB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7F,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,GAAG,EAAE,CAAC;QAChB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAe,EAAE,OAAe;IACzD,iBAAiB;IACjB,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,kBAAkB,CAAC;YAC3B,KAAK;YACL,IAAI,EAAE,OAAO;SACd,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,mBAAmB;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,SAAS,MAAM,QAAQ,MAAM,OAAO,IAAI,CAAC;QAC5D,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -4,7 +4,7 @@
4
4
  import fs from 'fs';
5
5
  import { getConfig } from '../config.js';
6
6
  import { IndexManager } from '../index/manager.js';
7
- import { logger } from '../logger.js';
7
+ import { enableFileLog, setLogProjectPath, sendMcpLog } from '../mcpLogger.js';
8
8
  /**
9
9
  * search_context 工具实现
10
10
  */
@@ -30,19 +30,18 @@ export async function searchContextTool(args) {
30
30
  return { type: 'text', text: `Error: Project path is not a directory: ${projectRoot}` };
31
31
  }
32
32
  const config = getConfig();
33
- // 根据配置启用日志
33
+ // 根据配置启用文件日志
34
34
  if (config.enableLog) {
35
- logger.enable();
36
- logger.setProjectPath(projectRoot);
35
+ enableFileLog();
36
+ setLogProjectPath(projectRoot);
37
37
  }
38
- logger.info(`Tool invoked: search_context for project ${projectRoot}`);
39
38
  const indexManager = new IndexManager(projectRoot, config.baseUrl, config.token, config.textExtensions, config.batchSize, config.maxLinesPerBlob, config.excludePatterns);
40
39
  const result = await indexManager.searchContext(query);
41
40
  return { type: 'text', text: result };
42
41
  }
43
42
  catch (error) {
44
43
  const errorMessage = error instanceof Error ? error.message : String(error);
45
- logger.exception('Error in search_context_tool', error);
44
+ sendMcpLog('error', `❌ 工具执行错误: ${errorMessage}`);
46
45
  return { type: 'text', text: `Error: ${errorMessage}` };
47
46
  }
48
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"searchContext.js","sourceRoot":"","sources":["../../src/tools/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAkBtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAuB;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sCAAsC,EAAE,CAAC;QACxE,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAExD,WAAW;QACX,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,WAAW,EAAE,EAAE,CAAC;QACtF,CAAC;QAED,UAAU;QACV,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2CAA2C,WAAW,EAAE,EAAE,CAAC;QAC1F,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,WAAW;QACX,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,4CAA4C,WAAW,EAAE,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,WAAW,EACX,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,CACvB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,SAAS,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"searchContext.js","sourceRoot":"","sources":["../../src/tools/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkB/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAuB;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sCAAsC,EAAE,CAAC;QACxE,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAExD,WAAW;QACX,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,WAAW,EAAE,EAAE,CAAC;QACtF,CAAC;QAED,UAAU;QACV,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2CAA2C,WAAW,EAAE,EAAE,CAAC;QAC1F,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,aAAa;QACb,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,aAAa,EAAE,CAAC;YAChB,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,WAAW,EACX,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,CACvB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACxC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,UAAU,CAAC,OAAO,EAAE,aAAa,YAAY,EAAE,CAAC,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectDetector.d.ts","sourceRoot":"","sources":["../../src/utils/projectDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAmC1C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAYrD;AA+BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"projectDetector.d.ts","sourceRoot":"","sources":["../../src/utils/projectDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA+B1C;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAWrD;AA8BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -4,7 +4,6 @@
4
4
  */
5
5
  import fs from 'fs';
6
6
  import path from 'path';
7
- import { logger } from '../logger.js';
8
7
  /**
9
8
  * 检测项目根目录
10
9
  * 优先级:.ace-tool/ > .git/
@@ -14,19 +13,16 @@ import { logger } from '../logger.js';
14
13
  */
15
14
  export function detectProjectRoot() {
16
15
  const cwd = process.cwd();
17
- logger.debug(`Detecting project root from: ${cwd}`);
18
16
  let currentDir = cwd;
19
17
  while (true) {
20
18
  // 优先检查 .ace-tool 目录
21
19
  const acePath = path.join(currentDir, '.ace-tool');
22
20
  if (fs.existsSync(acePath) && fs.statSync(acePath).isDirectory()) {
23
- logger.info(`Found project root (via .ace-tool): ${currentDir}`);
24
21
  return currentDir;
25
22
  }
26
23
  // 其次检查 .git 目录
27
24
  const gitPath = path.join(currentDir, '.git');
28
25
  if (fs.existsSync(gitPath)) {
29
- logger.info(`Found project root (via .git): ${currentDir}`);
30
26
  return currentDir;
31
27
  }
32
28
  // 向上一级目录
@@ -38,7 +34,6 @@ export function detectProjectRoot() {
38
34
  currentDir = parentDir;
39
35
  }
40
36
  // 如果找不到 .ace-tool 或 .git,使用当前工作目录
41
- logger.warning(`No .ace-tool or .git found, using current directory: ${cwd}`);
42
37
  return cwd;
43
38
  }
44
39
  /**
@@ -52,7 +47,6 @@ export function getAceDir(projectRoot) {
52
47
  const aceDir = path.join(projectRoot, '.ace-tool');
53
48
  if (!fs.existsSync(aceDir)) {
54
49
  fs.mkdirSync(aceDir, { recursive: true });
55
- logger.info(`Created .ace-tool directory: ${aceDir}`);
56
50
  // 尝试将 .ace-tool 添加到 .gitignore
57
51
  addToGitignore(projectRoot);
58
52
  }
@@ -77,10 +71,9 @@ function addToGitignore(projectRoot) {
77
71
  ? `${content}.ace-tool/\n`
78
72
  : `${content}\n.ace-tool/\n`;
79
73
  fs.writeFileSync(gitignorePath, newContent, 'utf-8');
80
- logger.info('Added .ace-tool/ to .gitignore');
81
74
  }
82
75
  catch (error) {
83
- logger.warning(`Failed to update .gitignore: ${error}`);
76
+ // 静默处理错误
84
77
  }
85
78
  }
86
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"projectDetector.js","sourceRoot":"","sources":["../../src/utils/projectDetector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectDetector.js","sourceRoot":"","sources":["../../src/utils/projectDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,UAAU,GAAG,GAAG,CAAC;IAErB,OAAO,IAAI,EAAE,CAAC;QACZ,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,SAAS;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,SAAS;QACT,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QAED,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,kCAAkC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,WAAmB;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,+BAA+B;QAC/B,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAmB;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAElD,qBAAqB;YACrB,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,EAAE;YACzD,CAAC,CAAC,GAAG,OAAO,cAAc;YAC1B,CAAC,CAAC,GAAG,OAAO,gBAAgB,CAAC;QAE/B,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS;IACX,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ace-tool",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "MCP server for codebase indexing and semantic search",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -30,7 +30,7 @@
30
30
  "license": "MIT",
31
31
  "repository": {
32
32
  "type": "git",
33
- "url": "https://github.com/xie/ace-tool"
33
+ "url": "https://github.com/eastxiaodong/ace-tool.git"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">=18.0.0"