@kelvinjhu/lexiang-search 1.0.0 → 1.0.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.
Files changed (55) hide show
  1. package/README.md +48 -183
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +8 -9
  5. package/dist/cli.js.map +1 -1
  6. package/dist/constants/api.constants.d.ts.map +1 -1
  7. package/dist/constants/api.constants.js +17 -15
  8. package/dist/constants/api.constants.js.map +1 -1
  9. package/dist/dto/ai-qa-request.dto.d.ts +8 -9
  10. package/dist/dto/ai-qa-request.dto.d.ts.map +1 -1
  11. package/dist/dto/ai-qa-request.dto.js +49 -62
  12. package/dist/dto/ai-qa-request.dto.js.map +1 -1
  13. package/dist/dto/ai-qa-response.dto.d.ts.map +1 -1
  14. package/dist/dto/ai-qa-response.dto.js +16 -20
  15. package/dist/dto/ai-qa-response.dto.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +6 -7
  19. package/dist/index.js.map +1 -1
  20. package/dist/server.d.ts.map +1 -1
  21. package/dist/server.js +57 -32
  22. package/dist/server.js.map +1 -1
  23. package/dist/services/ai-qa.service.d.ts +12 -3
  24. package/dist/services/ai-qa.service.d.ts.map +1 -1
  25. package/dist/services/ai-qa.service.js +60 -34
  26. package/dist/services/ai-qa.service.js.map +1 -1
  27. package/dist/services/lexiang-api.service.d.ts +6 -2
  28. package/dist/services/lexiang-api.service.d.ts.map +1 -1
  29. package/dist/services/lexiang-api.service.js +76 -57
  30. package/dist/services/lexiang-api.service.js.map +1 -1
  31. package/dist/tools/ai-qa-stream.tool.d.ts +1 -9
  32. package/dist/tools/ai-qa-stream.tool.d.ts.map +1 -1
  33. package/dist/tools/ai-qa-stream.tool.js +36 -71
  34. package/dist/tools/ai-qa-stream.tool.js.map +1 -1
  35. package/dist/tools/ai-qa.tool.d.ts +1 -9
  36. package/dist/tools/ai-qa.tool.d.ts.map +1 -1
  37. package/dist/tools/ai-qa.tool.js +11 -23
  38. package/dist/tools/ai-qa.tool.js.map +1 -1
  39. package/dist/types/lexiang-api.types.js +1 -2
  40. package/dist/types/lexiang-api.types.js.map +1 -1
  41. package/dist/types/mcp.types.js +1 -2
  42. package/dist/types/mcp.types.js.map +1 -1
  43. package/dist/utils/error-handler.d.ts +37 -32
  44. package/dist/utils/error-handler.d.ts.map +1 -1
  45. package/dist/utils/error-handler.js +46 -79
  46. package/dist/utils/error-handler.js.map +1 -1
  47. package/dist/utils/logger.d.ts +1 -0
  48. package/dist/utils/logger.d.ts.map +1 -1
  49. package/dist/utils/logger.js +6 -8
  50. package/dist/utils/logger.js.map +1 -1
  51. package/dist/utils/validator.d.ts +4 -15
  52. package/dist/utils/validator.d.ts.map +1 -1
  53. package/dist/utils/validator.js +17 -66
  54. package/dist/utils/validator.js.map +1 -1
  55. package/package.json +6 -5
@@ -1,45 +1,50 @@
1
1
  /**
2
2
  * 错误处理工具
3
3
  */
4
- export declare enum ErrorCode {
5
- INVALID_PARAMS = "INVALID_PARAMS",
6
- TOKEN_ERROR = "TOKEN_ERROR",
7
- API_ERROR = "API_ERROR",
8
- NETWORK_ERROR = "NETWORK_ERROR",
9
- TIMEOUT_ERROR = "TIMEOUT_ERROR",
10
- STREAM_ERROR = "STREAM_ERROR",
11
- UNKNOWN_ERROR = "UNKNOWN_ERROR"
12
- }
13
- export declare class McpError extends Error {
14
- code: ErrorCode;
15
- details?: Record<string, unknown> | undefined;
16
- constructor(code: ErrorCode, message: string, details?: Record<string, unknown> | undefined);
17
- toJSON(): Record<string, unknown>;
18
- }
19
- export declare class ValidationError extends McpError {
20
- constructor(message: string, details?: Record<string, unknown>);
21
- }
22
- export declare class TokenError extends McpError {
23
- constructor(message: string, details?: Record<string, unknown>);
4
+ /**
5
+ * 基础错误类
6
+ */
7
+ export declare class BaseError extends Error {
8
+ readonly meta?: Record<string, unknown> | undefined;
9
+ constructor(message: string, meta?: Record<string, unknown> | undefined);
10
+ toJSON(): {
11
+ error: string;
12
+ message: string;
13
+ meta: Record<string, unknown> | undefined;
14
+ };
24
15
  }
25
- export declare class ApiError extends McpError {
26
- constructor(message: string, details?: Record<string, unknown>);
16
+ /**
17
+ * 验证错误
18
+ */
19
+ export declare class ValidationError extends BaseError {
20
+ constructor(message: string, meta?: Record<string, unknown>);
27
21
  }
28
- export declare class NetworkError extends McpError {
29
- constructor(message: string, details?: Record<string, unknown>);
22
+ /**
23
+ * Token错误
24
+ */
25
+ export declare class TokenError extends BaseError {
26
+ constructor(message: string, meta?: Record<string, unknown>);
30
27
  }
31
- export declare class TimeoutError extends McpError {
32
- constructor(message: string, details?: Record<string, unknown>);
28
+ /**
29
+ * API错误
30
+ */
31
+ export declare class ApiError extends BaseError {
32
+ constructor(message: string, meta?: Record<string, unknown>);
33
33
  }
34
- export declare class StreamError extends McpError {
35
- constructor(message: string, details?: Record<string, unknown>);
34
+ /**
35
+ * 网络错误
36
+ */
37
+ export declare class NetworkError extends BaseError {
38
+ constructor(message: string, meta?: Record<string, unknown>);
36
39
  }
37
40
  /**
38
- * 统一错误处理函数
41
+ * 超时错误
39
42
  */
40
- export declare function handleError(error: unknown): McpError;
43
+ export declare class TimeoutError extends BaseError {
44
+ constructor(message: string, meta?: Record<string, unknown>);
45
+ }
41
46
  /**
42
- * 异步错误处理包装器
47
+ * 统一错误处理
43
48
  */
44
- export declare function asyncHandler<T extends (...args: unknown[]) => Promise<unknown>>(fn: T): (...args: Parameters<T>) => Promise<unknown>;
49
+ export declare function handleError(error: unknown): BaseError;
45
50
  //# sourceMappingURL=error-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,oBAAY,SAAS;IACnB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAChC;AAED,qBAAa,QAAS,SAAQ,KAAK;IAExB,IAAI,EAAE,SAAS;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAM1C,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOlC;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,QAAS,SAAQ,QAAQ;gBACxB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,WAAY,SAAQ,QAAQ;gBAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAapD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7E,EAAE,EAAE,CAAC,GACJ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAQ9C"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aACW,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAA/D,OAAO,EAAE,MAAM,EAAkB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAM3E,MAAM;;;;;CAOP;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG5D;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG5D;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,SAAS;gBACzB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG5D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG5D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAUrD"}
@@ -1,108 +1,75 @@
1
- "use strict";
2
1
  /**
3
2
  * 错误处理工具
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StreamError = exports.TimeoutError = exports.NetworkError = exports.ApiError = exports.TokenError = exports.ValidationError = exports.McpError = exports.ErrorCode = void 0;
7
- exports.handleError = handleError;
8
- exports.asyncHandler = asyncHandler;
9
- const logger_1 = require("./logger");
10
- var ErrorCode;
11
- (function (ErrorCode) {
12
- ErrorCode["INVALID_PARAMS"] = "INVALID_PARAMS";
13
- ErrorCode["TOKEN_ERROR"] = "TOKEN_ERROR";
14
- ErrorCode["API_ERROR"] = "API_ERROR";
15
- ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
16
- ErrorCode["TIMEOUT_ERROR"] = "TIMEOUT_ERROR";
17
- ErrorCode["STREAM_ERROR"] = "STREAM_ERROR";
18
- ErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
19
- })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
20
- class McpError extends Error {
21
- code;
22
- details;
23
- constructor(code, message, details) {
4
+ /**
5
+ * 基础错误类
6
+ */
7
+ export class BaseError extends Error {
8
+ meta;
9
+ constructor(message, meta) {
24
10
  super(message);
25
- this.code = code;
26
- this.details = details;
27
- this.name = 'McpError';
11
+ this.meta = meta;
12
+ this.name = this.constructor.name;
13
+ Error.captureStackTrace(this, this.constructor);
28
14
  }
29
15
  toJSON() {
30
16
  return {
31
- code: this.code,
17
+ error: this.name,
32
18
  message: this.message,
33
- details: this.details,
19
+ meta: this.meta,
34
20
  };
35
21
  }
36
22
  }
37
- exports.McpError = McpError;
38
- class ValidationError extends McpError {
39
- constructor(message, details) {
40
- super(ErrorCode.INVALID_PARAMS, message, details);
41
- this.name = 'ValidationError';
42
- }
43
- }
44
- exports.ValidationError = ValidationError;
45
- class TokenError extends McpError {
46
- constructor(message, details) {
47
- super(ErrorCode.TOKEN_ERROR, message, details);
48
- this.name = 'TokenError';
23
+ /**
24
+ * 验证错误
25
+ */
26
+ export class ValidationError extends BaseError {
27
+ constructor(message, meta) {
28
+ super(message, meta);
49
29
  }
50
30
  }
51
- exports.TokenError = TokenError;
52
- class ApiError extends McpError {
53
- constructor(message, details) {
54
- super(ErrorCode.API_ERROR, message, details);
55
- this.name = 'ApiError';
31
+ /**
32
+ * Token错误
33
+ */
34
+ export class TokenError extends BaseError {
35
+ constructor(message, meta) {
36
+ super(message, meta);
56
37
  }
57
38
  }
58
- exports.ApiError = ApiError;
59
- class NetworkError extends McpError {
60
- constructor(message, details) {
61
- super(ErrorCode.NETWORK_ERROR, message, details);
62
- this.name = 'NetworkError';
39
+ /**
40
+ * API错误
41
+ */
42
+ export class ApiError extends BaseError {
43
+ constructor(message, meta) {
44
+ super(message, meta);
63
45
  }
64
46
  }
65
- exports.NetworkError = NetworkError;
66
- class TimeoutError extends McpError {
67
- constructor(message, details) {
68
- super(ErrorCode.TIMEOUT_ERROR, message, details);
69
- this.name = 'TimeoutError';
47
+ /**
48
+ * 网络错误
49
+ */
50
+ export class NetworkError extends BaseError {
51
+ constructor(message, meta) {
52
+ super(message, meta);
70
53
  }
71
54
  }
72
- exports.TimeoutError = TimeoutError;
73
- class StreamError extends McpError {
74
- constructor(message, details) {
75
- super(ErrorCode.STREAM_ERROR, message, details);
76
- this.name = 'StreamError';
55
+ /**
56
+ * 超时错误
57
+ */
58
+ export class TimeoutError extends BaseError {
59
+ constructor(message, meta) {
60
+ super(message, meta);
77
61
  }
78
62
  }
79
- exports.StreamError = StreamError;
80
63
  /**
81
- * 统一错误处理函数
64
+ * 统一错误处理
82
65
  */
83
- function handleError(error) {
84
- if (error instanceof McpError) {
85
- logger_1.logger.error('MCP Error', { code: error.code, message: error.message, details: error.details });
66
+ export function handleError(error) {
67
+ if (error instanceof BaseError) {
86
68
  return error;
87
69
  }
88
70
  if (error instanceof Error) {
89
- logger_1.logger.error('Error', { name: error.name, message: error.message });
90
- return new McpError(ErrorCode.UNKNOWN_ERROR, error.message);
71
+ return new BaseError(error.message, { stack: error.stack });
91
72
  }
92
- logger_1.logger.error('Unknown Error', { error });
93
- return new McpError(ErrorCode.UNKNOWN_ERROR, 'Unknown error occurred');
94
- }
95
- /**
96
- * 异步错误处理包装器
97
- */
98
- function asyncHandler(fn) {
99
- return async (...args) => {
100
- try {
101
- return await fn(...args);
102
- }
103
- catch (error) {
104
- throw handleError(error);
105
- }
106
- };
73
+ return new BaseError('Unknown error', { error });
107
74
  }
108
75
  //# sourceMappingURL=error-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACW;IAA7C,YAAY,OAAe,EAAkB,IAA8B;QACzE,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAA0B;QAEzE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC5C,YAAY,OAAe,EAAE,IAA8B;QACzD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IACvC,YAAY,OAAe,EAAE,IAA8B;QACzD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,SAAS;IACrC,YAAY,OAAe,EAAE,IAA8B;QACzD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAe,EAAE,IAA8B;QACzD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAe,EAAE,IAA8B;QACzD,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * 日志工具
3
+ * 注意:MCP服务器使用Stdio通信,所有日志必须输出到stderr,严禁使用stdout (console.log)
3
4
  */
4
5
  export declare enum LogLevel {
5
6
  ERROR = "ERROR",
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAW;;IAOxB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,MAAM;IAMd,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAK7D;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAW;;IAOxB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,MAAM;IAMd,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAK7D;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -1,16 +1,14 @@
1
- "use strict";
2
1
  /**
3
2
  * 日志工具
3
+ * 注意:MCP服务器使用Stdio通信,所有日志必须输出到stderr,严禁使用stdout (console.log)
4
4
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logger = exports.LogLevel = void 0;
7
- var LogLevel;
5
+ export var LogLevel;
8
6
  (function (LogLevel) {
9
7
  LogLevel["ERROR"] = "ERROR";
10
8
  LogLevel["WARN"] = "WARN";
11
9
  LogLevel["INFO"] = "INFO";
12
10
  LogLevel["DEBUG"] = "DEBUG";
13
- })(LogLevel || (exports.LogLevel = LogLevel = {}));
11
+ })(LogLevel || (LogLevel = {}));
14
12
  class Logger {
15
13
  level;
16
14
  constructor() {
@@ -38,14 +36,14 @@ class Logger {
38
36
  }
39
37
  info(message, meta) {
40
38
  if (this.shouldLog(LogLevel.INFO)) {
41
- console.log(this.format(LogLevel.INFO, message, meta));
39
+ console.error(this.format(LogLevel.INFO, message, meta));
42
40
  }
43
41
  }
44
42
  debug(message, meta) {
45
43
  if (this.shouldLog(LogLevel.DEBUG)) {
46
- console.log(this.format(LogLevel.DEBUG, message, meta));
44
+ console.error(this.format(LogLevel.DEBUG, message, meta));
47
45
  }
48
46
  }
49
47
  }
50
- exports.logger = new Logger();
48
+ export const logger = new Logger();
51
49
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED,MAAM,MAAM;IACF,KAAK,CAAW;IAExB;QACE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAc,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrF,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,KAAe,EAAE,OAAe,EAAE,IAA8B;QAC7E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,SAAS,MAAM,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA8B;QACnD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA8B;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA8B;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA8B;QACnD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,MAAM;IACF,KAAK,CAAW;IAExB;QACE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAc,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACrF,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,KAAe,EAAE,OAAe,EAAE,IAA8B;QAC7E,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,SAAS,MAAM,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA8B;QACnD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA8B;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAA8B;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAA8B;QACnD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -1,20 +1,9 @@
1
1
  /**
2
- * 参数校验工具
2
+ * 数据验证工具
3
3
  */
4
+ import { ClassConstructor } from 'class-transformer';
4
5
  /**
5
- * 校验DTO
6
+ * 验证DTO
6
7
  */
7
- export declare function validateDto<T extends object>(dtoClass: new () => T, data: unknown): Promise<T>;
8
- /**
9
- * 校验字符串长度
10
- */
11
- export declare function validateStringLength(value: string, min: number, max: number): void;
12
- /**
13
- * 校验枚举值
14
- */
15
- export declare function validateEnum<T extends string>(value: string, enumValues: readonly T[], enumName: string): void;
16
- /**
17
- * 校验数组长度
18
- */
19
- export declare function validateArrayLength<T>(array: T[], min: number, max: number, itemName: string): void;
8
+ export declare function validateDto<T extends object>(cls: ClassConstructor<T>, plain: unknown): Promise<T>;
20
9
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,MAAM,EAChD,QAAQ,EAAE,UAAU,CAAC,EACrB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CASlF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,SAAS,CAAC,EAAE,EACxB,QAAQ,EAAE,MAAM,GACf,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQnG"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAmB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAItE;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,MAAM,EAChD,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC,CAoBZ"}
@@ -1,76 +1,27 @@
1
- "use strict";
2
1
  /**
3
- * 参数校验工具
2
+ * 数据验证工具
4
3
  */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateDto = validateDto;
7
- exports.validateStringLength = validateStringLength;
8
- exports.validateEnum = validateEnum;
9
- exports.validateArrayLength = validateArrayLength;
10
- const class_validator_1 = require("class-validator");
11
- const class_transformer_1 = require("class-transformer");
12
- const error_handler_1 = require("./error-handler");
4
+ import { validate } from 'class-validator';
5
+ import { plainToInstance } from 'class-transformer';
6
+ import { ValidationError as CustomValidationError } from './error-handler.js';
7
+ import { logger } from './logger.js';
13
8
  /**
14
- * 校验DTO
9
+ * 验证DTO
15
10
  */
16
- async function validateDto(dtoClass, data) {
17
- if (!data || typeof data !== 'object') {
18
- throw new error_handler_1.ValidationError('Invalid input data', { provided: typeof data });
11
+ export async function validateDto(cls, plain) {
12
+ if (typeof plain !== 'object' || plain === null) {
13
+ throw new CustomValidationError('Invalid input: expected object');
19
14
  }
20
- const dto = (0, class_transformer_1.plainToClass)(dtoClass, data);
21
- const errors = await (0, class_validator_1.validate)(dto, { whitelist: true, forbidNonWhitelisted: true });
15
+ const object = plainToInstance(cls, plain);
16
+ const errors = await validate(object);
22
17
  if (errors.length > 0) {
23
- const errorMessages = errors
24
- .map((error) => {
25
- const constraints = error.constraints;
26
- return Object.values(constraints || {}).join(', ');
27
- })
28
- .filter(Boolean)
29
- .join('; ');
30
- throw new error_handler_1.ValidationError('Validation failed', {
31
- errors: errors.map((e) => ({
32
- property: e.property,
33
- constraints: e.constraints,
34
- })),
35
- message: errorMessages,
36
- });
37
- }
38
- return dto;
39
- }
40
- /**
41
- * 校验字符串长度
42
- */
43
- function validateStringLength(value, min, max) {
44
- if (value.length < min || value.length > max) {
45
- throw new error_handler_1.ValidationError(`String length must be between ${min} and ${max}`, {
46
- value,
47
- length: value.length,
48
- min,
49
- max,
50
- });
51
- }
52
- }
53
- /**
54
- * 校验枚举值
55
- */
56
- function validateEnum(value, enumValues, enumName) {
57
- if (!enumValues.includes(value)) {
58
- throw new error_handler_1.ValidationError(`Invalid ${enumName}`, {
59
- value,
60
- allowed: enumValues,
61
- });
62
- }
63
- }
64
- /**
65
- * 校验数组长度
66
- */
67
- function validateArrayLength(array, min, max, itemName) {
68
- if (array.length < min || array.length > max) {
69
- throw new error_handler_1.ValidationError(`${itemName} length must be between ${min} and ${max}`, {
70
- length: array.length,
71
- min,
72
- max,
18
+ const messages = errors.map((error) => {
19
+ return Object.values(error.constraints || {}).join(', ');
73
20
  });
21
+ const message = `Validation failed: ${messages.join('; ')}`;
22
+ logger.warn('Validation failed', { errors: messages });
23
+ throw new CustomValidationError(message, { errors: messages });
74
24
  }
25
+ return object;
75
26
  }
76
27
  //# sourceMappingURL=validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":";AAAA;;GAEG;;AASH,kCA8BC;AAKD,oDASC;AAKD,oCAWC;AAKD,kDAQC;AAhFD,qDAA4D;AAC5D,yDAAiD;AACjD,mDAA2E;AAE3E;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,QAAqB,EACrB,IAAa;IAEb,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,+BAAqB,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,gCAAY,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,aAAa,GAAG,MAAM;aACzB,GAAG,CAAC,CAAC,KAAsB,EAAE,EAAE;YAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACtC,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,IAAI,+BAAqB,CAAC,mBAAmB,EAAE;YACnD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;YACH,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IAC1E,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7C,MAAM,IAAI,+BAAqB,CAAC,iCAAiC,GAAG,QAAQ,GAAG,EAAE,EAAE;YACjF,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG;YACH,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,UAAwB,EACxB,QAAgB;IAEhB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAU,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,+BAAqB,CAAC,WAAW,QAAQ,EAAE,EAAE;YACrD,KAAK;YACL,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAI,KAAU,EAAE,GAAW,EAAE,GAAW,EAAE,QAAgB;IAC3F,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC7C,MAAM,IAAI,+BAAqB,CAAC,GAAG,QAAQ,2BAA2B,GAAG,QAAQ,GAAG,EAAE,EAAE;YACtF,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG;YACH,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/utils/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAA0C,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAwB,EACxB,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,qBAAqB,CAAC,gCAAgC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;YACzD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,sBAAsB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEvD,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@kelvinjhu/lexiang-search",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "乐享知识库AI问答MCP服务器",
5
+ "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
7
8
  "bin": {
@@ -14,7 +15,7 @@
14
15
  "scripts": {
15
16
  "build": "tsc",
16
17
  "start": "node dist/cli.js",
17
- "dev": "ts-node src/index.ts",
18
+ "dev": "node --loader ts-node/esm src/index.ts",
18
19
  "test": "jest",
19
20
  "test:watch": "jest --watch",
20
21
  "lint": "eslint src --ext .ts",
@@ -34,10 +35,11 @@
34
35
  "node": ">=18.0.0"
35
36
  },
36
37
  "dependencies": {
37
- "@modelcontextprotocol/sdk": "^1.0.4",
38
+ "@modelcontextprotocol/sdk": "^1.0.0",
38
39
  "axios": "^1.7.9",
39
40
  "class-transformer": "^0.5.1",
40
- "class-validator": "^0.14.1"
41
+ "class-validator": "^0.14.1",
42
+ "reflect-metadata": "^0.2.2"
41
43
  },
42
44
  "devDependencies": {
43
45
  "@types/node": "^22.10.2",
@@ -45,7 +47,6 @@
45
47
  "@typescript-eslint/parser": "^8.18.2",
46
48
  "eslint": "^9.17.0",
47
49
  "jest": "^29.7.0",
48
- "reflect-metadata": "^0.2.2",
49
50
  "ts-jest": "^29.2.5",
50
51
  "ts-node": "^10.9.2",
51
52
  "typescript": "^5.7.2"