ace-tool 0.2.1 → 0.2.2

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 CHANGED
@@ -60,6 +60,15 @@ Search for relevant code context based on a natural language query.
60
60
  - `project_root_path` (required): Absolute path to the project root directory
61
61
  - `query` (required): Natural language description of the code you're looking for
62
62
 
63
+ **How AI Gets the Path:**
64
+
65
+ When used in an IDE (like Cursor, VS Code with MCP support), the AI automatically obtains the project path from:
66
+ 1. **IDE Workspace field** - The `Workspace` field in IDE State/System Prompt
67
+ 2. **Terminal `pwd` command** - Running `pwd` to get current directory
68
+ 3. **User input** - Asking user to provide the path if not available
69
+
70
+ > **Note:** In most IDE environments, you don't need to manually specify the path. The AI will automatically detect it from the IDE's workspace information.
71
+
63
72
  **Example queries:**
64
73
 
65
74
  - "Where is the function that handles user authentication?"
@@ -200,6 +209,15 @@ npx -y ace-tool@latest --base-url <URL> --token <TOKEN>
200
209
  - `project_root_path`(必填):项目根目录的绝对路径
201
210
  - `query`(必填):描述你要查找的代码的自然语言
202
211
 
212
+ **AI 如何获取路径:**
213
+
214
+ 在 IDE 中使用时(如 Cursor、支持 MCP 的 VS Code),AI 会自动从以下来源获取项目路径:
215
+ 1. **IDE Workspace 字段** - IDE 状态/系统提示中的 `Workspace` 字段
216
+ 2. **终端 `pwd` 命令** - 运行 `pwd` 获取当前目录
217
+ 3. **用户输入** - 如果无法自动获取,会询问用户提供路径
218
+
219
+ > **注意:** 在大多数 IDE 环境中,你不需要手动指定路径。AI 会自动从 IDE 的工作区信息中检测路径。
220
+
203
221
  **查询示例:**
204
222
 
205
223
  - "处理用户认证的函数在哪里?"
@@ -9,7 +9,7 @@ export const ENHANCE_PROMPT_TOOL = {
9
9
  properties: {
10
10
  project_root_path: {
11
11
  type: 'string',
12
- description: '项目根目录的绝对路径(可选,默认使用当前工作目录)',
12
+ description: '项目根目录的绝对路径。重要:从 IDE 的工作区/项目根目录信息获取(如 IDE State 中的 Workspace 字段,或在终端使用 pwd 命令)。',
13
13
  },
14
14
  prompt: {
15
15
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"enhancePrompt.js","sourceRoot":"","sources":["../../src/prompts/enhancePrompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,isBAAisB;IACnsB,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gBAAgB;aAC9B;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAa;KACzD;CACF,CAAC"}
1
+ {"version":3,"file":"enhancePrompt.js","sourceRoot":"","sources":["../../src/prompts/enhancePrompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,isBAAisB;IACnsB,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gFAAgF;aAC9F;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gBAAgB;aAC9B;YACD,oBAAoB,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAa;KACzD;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"searchContext.d.ts","sourceRoot":"","sources":["../../src/prompts/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;kBA8EgB,MAAM,EAAE;;CAEvD,CAAC"}
1
+ {"version":3,"file":"searchContext.d.ts","sourceRoot":"","sources":["../../src/prompts/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;kBAgFgB,MAAM,EAAE;;CAEvD,CAAC"}
@@ -57,7 +57,9 @@ For example:
57
57
  properties: {
58
58
  project_root_path: {
59
59
  type: 'string',
60
- description: `Absolute path to the project root directory. Use forward slashes (/) as separators. Example: /Users/username/projects/myproject or C:/Users/username/projects/myproject`
60
+ description: `Absolute path to the project root directory.
61
+ IMPORTANT: Get this path from your IDE's workspace/project root information (e.g., the 'Workspace' field in IDE State, or use 'pwd' command in terminal).
62
+ Use forward slashes (/) as separators. Example: /Users/username/projects/myproject or C:/Users/username/projects/myproject`
61
63
  },
62
64
  query: {
63
65
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"searchContext.js","sourceRoot":"","sources":["../../src/prompts/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,gBAAgB;IAEtB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAgDmC;IAEhD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yKAAyK;aACvL;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;;;;;;;;;;;;;sDAaiC;aAC/C;SACF;QACD,QAAQ,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAa;KACrD;CACF,CAAC"}
1
+ {"version":3,"file":"searchContext.js","sourceRoot":"","sources":["../../src/prompts/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,gBAAgB;IAEtB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAgDmC;IAEhD,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;;2HAEsG;aACpH;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;;;;;;;;;;;;;sDAaiC;aAC/C;SACF;QACD,QAAQ,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAa;KACrD;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"searchContext.d.ts","sourceRoot":"","sources":["../../src/tools/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,UAAU,iBAAiB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqDpF"}
1
+ {"version":3,"file":"searchContext.d.ts","sourceRoot":"","sources":["../../src/tools/searchContext.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,UAAU,iBAAiB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoEpF"}
@@ -16,7 +16,22 @@ export async function searchContextTool(args) {
16
16
  return { type: 'text', text: 'Error: query is required' };
17
17
  }
18
18
  if (!projectRootPath) {
19
- return { type: 'text', text: 'Error: project_root_path is required' };
19
+ return {
20
+ type: 'text',
21
+ text: `Error: project_root_path is required.
22
+
23
+ To fix this, please:
24
+ 1. Get the path from IDE's Workspace field (shown in IDE State/System Prompt)
25
+ 2. Or run 'pwd' command in terminal to get current directory
26
+ 3. Or ask user to provide the path by saying: "请告诉我你的项目目录路径" / "What is your project directory path?"
27
+
28
+ User can also say:
29
+ - "请在 /path/to/project 创建索引" (Chinese)
30
+ - "Create index in /path/to/project" (English)
31
+ - "使用当前目录创建索引" (then use pwd to get path)
32
+
33
+ Example path format: /Users/username/projects/myproject or C:/Users/username/projects/myproject`
34
+ };
20
35
  }
21
36
  // 规范化路径(统一使用正斜杠)
22
37
  const projectRoot = projectRootPath.replace(/\\/g, '/');
@@ -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,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
+ {"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;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;;;;;;;;;;;;gGAYkF;aACzF,CAAC;QACJ,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ace-tool",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for codebase indexing and semantic search",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/dist/logger.d.ts DELETED
@@ -1,34 +0,0 @@
1
- /**
2
- * 日志模块 - 支持输出到项目 .ace-tool 目录
3
- */
4
- type LogLevel = 'debug' | 'info' | 'warning' | 'error';
5
- export declare const logger: {
6
- /**
7
- * 启用日志
8
- */
9
- enable(): void;
10
- /**
11
- * 禁用日志
12
- */
13
- disable(): void;
14
- /**
15
- * 设置日志级别
16
- */
17
- setLevel(level: LogLevel): void;
18
- /**
19
- * 设置日志输出到项目的 .ace-tool 目录
20
- * 只有在日志启用时才会创建文件
21
- */
22
- setProjectPath(projectRoot: string): void;
23
- /**
24
- * 关闭日志流
25
- */
26
- close(): void;
27
- debug(message: string, ...args: unknown[]): void;
28
- info(message: string, ...args: unknown[]): void;
29
- warning(message: string, ...args: unknown[]): void;
30
- error(message: string, ...args: unknown[]): void;
31
- exception(message: string, error: unknown): void;
32
- };
33
- export {};
34
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAiDvD,eAAO,MAAM,MAAM;IACjB;;OAEG;cACO,IAAI;IAId;;OAEG;eACQ,IAAI;IAIf;;OAEG;oBACa,QAAQ,GAAG,IAAI;IAI/B;;;OAGG;gCACyB,MAAM,GAAG,IAAI;IA4BzC;;OAEG;aACM,IAAI;mBAOE,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;kBAIlC,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;qBAI9B,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;mBAInC,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;uBAI7B,MAAM,SAAS,OAAO,GAAG,IAAI;CAQjD,CAAC"}
package/dist/logger.js DELETED
@@ -1,116 +0,0 @@
1
- /**
2
- * 日志模块 - 支持输出到项目 .ace-tool 目录
3
- */
4
- import fs from 'fs';
5
- import path from 'path';
6
- const LOG_LEVELS = {
7
- debug: 0,
8
- info: 1,
9
- warning: 2,
10
- error: 3
11
- };
12
- // 默认日志级别
13
- let currentLevel = 'info';
14
- // 日志是否启用(默认关闭)
15
- let enabled = false;
16
- // 日志文件路径
17
- let logFilePath = null;
18
- // 日志文件流
19
- let logStream = null;
20
- function formatTimestamp() {
21
- return new Date().toISOString().replace('T', ' ').substring(0, 19);
22
- }
23
- function log(level, message, ...args) {
24
- // 如果日志未启用,直接返回
25
- if (!enabled) {
26
- return;
27
- }
28
- if (LOG_LEVELS[level] < LOG_LEVELS[currentLevel]) {
29
- return;
30
- }
31
- const timestamp = formatTimestamp();
32
- const levelStr = level.toUpperCase().padEnd(7);
33
- const formattedMessage = args.length > 0
34
- ? `${message} ${args.map(a => JSON.stringify(a)).join(' ')}`
35
- : message;
36
- const logLine = `${timestamp} | ${levelStr} | ${formattedMessage}\n`;
37
- // 如果有日志文件,写入文件
38
- if (logStream) {
39
- logStream.write(logLine);
40
- }
41
- }
42
- export const logger = {
43
- /**
44
- * 启用日志
45
- */
46
- enable() {
47
- enabled = true;
48
- },
49
- /**
50
- * 禁用日志
51
- */
52
- disable() {
53
- enabled = false;
54
- },
55
- /**
56
- * 设置日志级别
57
- */
58
- setLevel(level) {
59
- currentLevel = level;
60
- },
61
- /**
62
- * 设置日志输出到项目的 .ace-tool 目录
63
- * 只有在日志启用时才会创建文件
64
- */
65
- setProjectPath(projectRoot) {
66
- // 如果日志未启用,不创建文件
67
- if (!enabled) {
68
- return;
69
- }
70
- const aceDir = path.join(projectRoot, '.ace-tool');
71
- // 确保 .ace-tool 目录存在
72
- if (!fs.existsSync(aceDir)) {
73
- fs.mkdirSync(aceDir, { recursive: true });
74
- }
75
- logFilePath = path.join(aceDir, 'ace-tool.log');
76
- // 关闭旧的流
77
- if (logStream) {
78
- logStream.end();
79
- }
80
- // 创建新的写入流(追加模式)
81
- logStream = fs.createWriteStream(logFilePath, { flags: 'a' });
82
- // 写入分隔线
83
- const separator = `\n${'='.repeat(60)}\n${formatTimestamp()} | Session started\n${'='.repeat(60)}\n`;
84
- logStream.write(separator);
85
- },
86
- /**
87
- * 关闭日志流
88
- */
89
- close() {
90
- if (logStream) {
91
- logStream.end();
92
- logStream = null;
93
- }
94
- },
95
- debug(message, ...args) {
96
- log('debug', message, ...args);
97
- },
98
- info(message, ...args) {
99
- log('info', message, ...args);
100
- },
101
- warning(message, ...args) {
102
- log('warning', message, ...args);
103
- },
104
- error(message, ...args) {
105
- log('error', message, ...args);
106
- },
107
- exception(message, error) {
108
- const errorMessage = error instanceof Error ? error.message : String(error);
109
- const stack = error instanceof Error ? error.stack : '';
110
- log('error', `${message}: ${errorMessage}`);
111
- if (stack && logStream) {
112
- logStream.write(stack + '\n');
113
- }
114
- }
115
- };
116
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAS;AACT,IAAI,YAAY,GAAa,MAAM,CAAC;AAEpC,eAAe;AACf,IAAI,OAAO,GAAY,KAAK,CAAC;AAE7B,SAAS;AACT,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,QAAQ;AACR,IAAI,SAAS,GAA0B,IAAI,CAAC;AAE5C,SAAS,eAAe;IACtB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,GAAG,IAAe;IAC/D,eAAe;IACf,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QACtC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC5D,CAAC,CAAC,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,GAAG,SAAS,MAAM,QAAQ,MAAM,gBAAgB,IAAI,CAAC;IAErE,eAAe;IACf,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;OAEG;IACH,MAAM;QACJ,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAe;QACtB,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,WAAmB;QAChC,gBAAgB;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEnD,oBAAoB;QACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAEhD,QAAQ;QACR,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,gBAAgB;QAChB,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9D,QAAQ;QACR,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,eAAe,EAAE,uBAAuB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;QACrG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,GAAG,EAAE,CAAC;YAChB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QACtC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,GAAG,IAAe;QACzC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QACvC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,OAAe,EAAE,KAAc;QACvC,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,KAAK,YAAY,EAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF,CAAC"}