@1mcp/agent 0.21.0 → 0.22.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 +123 -148
- package/build/commands/app/backups.d.ts +13 -1
- package/build/commands/app/backups.d.ts.map +1 -1
- package/build/commands/app/backups.js +25 -0
- package/build/commands/app/backups.js.map +1 -1
- package/build/commands/app/consolidate.d.ts +21 -1
- package/build/commands/app/consolidate.d.ts.map +1 -1
- package/build/commands/app/consolidate.js +63 -0
- package/build/commands/app/consolidate.js.map +1 -1
- package/build/commands/app/discover.d.ts +11 -1
- package/build/commands/app/discover.d.ts.map +1 -1
- package/build/commands/app/discover.js +21 -0
- package/build/commands/app/discover.js.map +1 -1
- package/build/commands/app/index.d.ts.map +1 -1
- package/build/commands/app/index.js +15 -193
- package/build/commands/app/index.js.map +1 -1
- package/build/commands/app/list.d.ts +11 -1
- package/build/commands/app/list.d.ts.map +1 -1
- package/build/commands/app/list.js +21 -0
- package/build/commands/app/list.js.map +1 -1
- package/build/commands/app/restore.d.ts +21 -1
- package/build/commands/app/restore.d.ts.map +1 -1
- package/build/commands/app/restore.js +59 -0
- package/build/commands/app/restore.js.map +1 -1
- package/build/commands/app/status.d.ts +11 -1
- package/build/commands/app/status.d.ts.map +1 -1
- package/build/commands/app/status.js +21 -0
- package/build/commands/app/status.js.map +1 -1
- package/build/commands/mcp/add.d.ts +35 -2
- package/build/commands/mcp/add.d.ts.map +1 -1
- package/build/commands/mcp/add.js +86 -0
- package/build/commands/mcp/add.js.map +1 -1
- package/build/commands/mcp/enable.d.ts +15 -2
- package/build/commands/mcp/enable.d.ts.map +1 -1
- package/build/commands/mcp/enable.js +24 -0
- package/build/commands/mcp/enable.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +18 -302
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/list.d.ts +15 -2
- package/build/commands/mcp/list.d.ts.map +1 -1
- package/build/commands/mcp/list.js +35 -1
- package/build/commands/mcp/list.js.map +1 -1
- package/build/commands/mcp/remove.d.ts +11 -2
- package/build/commands/mcp/remove.d.ts.map +1 -1
- package/build/commands/mcp/remove.js +21 -0
- package/build/commands/mcp/remove.js.map +1 -1
- package/build/commands/mcp/status.d.ts +11 -2
- package/build/commands/mcp/status.d.ts.map +1 -1
- package/build/commands/mcp/status.js +23 -1
- package/build/commands/mcp/status.js.map +1 -1
- package/build/commands/mcp/tokens.d.ts +13 -3
- package/build/commands/mcp/tokens.d.ts.map +1 -1
- package/build/commands/mcp/tokens.js +31 -0
- package/build/commands/mcp/tokens.js.map +1 -1
- package/build/commands/mcp/update.d.ts +33 -2
- package/build/commands/mcp/update.d.ts.map +1 -1
- package/build/commands/mcp/update.js +72 -0
- package/build/commands/mcp/update.js.map +1 -1
- package/build/commands/preset/create.d.ts +26 -0
- package/build/commands/preset/create.d.ts.map +1 -0
- package/build/commands/preset/create.js +117 -0
- package/build/commands/preset/create.js.map +1 -0
- package/build/commands/preset/delete.d.ts +20 -0
- package/build/commands/preset/delete.d.ts.map +1 -0
- package/build/commands/preset/delete.js +46 -0
- package/build/commands/preset/delete.js.map +1 -0
- package/build/commands/preset/edit.d.ts +23 -0
- package/build/commands/preset/edit.d.ts.map +1 -0
- package/build/commands/preset/edit.js +68 -0
- package/build/commands/preset/edit.js.map +1 -0
- package/build/commands/preset/index.d.ts +6 -0
- package/build/commands/preset/index.d.ts.map +1 -0
- package/build/commands/preset/index.js +141 -0
- package/build/commands/preset/index.js.map +1 -0
- package/build/commands/preset/interactive.d.ts +12 -0
- package/build/commands/preset/interactive.d.ts.map +1 -0
- package/build/commands/preset/interactive.js +131 -0
- package/build/commands/preset/interactive.js.map +1 -0
- package/build/commands/preset/list.d.ts +16 -0
- package/build/commands/preset/list.d.ts.map +1 -0
- package/build/commands/preset/list.js +128 -0
- package/build/commands/preset/list.js.map +1 -0
- package/build/commands/preset/show.d.ts +19 -0
- package/build/commands/preset/show.d.ts.map +1 -0
- package/build/commands/preset/show.js +114 -0
- package/build/commands/preset/show.js.map +1 -0
- package/build/commands/preset/test.d.ts +20 -0
- package/build/commands/preset/test.d.ts.map +1 -0
- package/build/commands/preset/test.js +46 -0
- package/build/commands/preset/test.js.map +1 -0
- package/build/commands/preset/url.d.ts +20 -0
- package/build/commands/preset/url.d.ts.map +1 -0
- package/build/commands/preset/url.js +47 -0
- package/build/commands/preset/url.js.map +1 -0
- package/build/commands/serve/index.d.ts +106 -0
- package/build/commands/serve/index.d.ts.map +1 -0
- package/build/commands/serve/index.js +143 -0
- package/build/commands/serve/index.js.map +1 -0
- package/build/commands/serve/serve.d.ts +28 -0
- package/build/commands/serve/serve.d.ts.map +1 -0
- package/build/commands/serve/serve.js +213 -0
- package/build/commands/serve/serve.js.map +1 -0
- package/build/constants.d.ts +6 -1
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +13 -5
- package/build/constants.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +6 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +9 -1
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +41 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/types/server.d.ts +4 -1
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/server.js.map +1 -1
- package/build/core/types/transport.d.ts +16 -77
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +2 -2
- package/build/core/types/transport.js.map +1 -1
- package/build/globalOptions.d.ts +46 -0
- package/build/globalOptions.d.ts.map +1 -0
- package/build/globalOptions.js +37 -0
- package/build/globalOptions.js.map +1 -0
- package/build/handlers/requestHandlers.d.ts.map +1 -1
- package/build/handlers/requestHandlers.js +23 -1
- package/build/handlers/requestHandlers.js.map +1 -1
- package/build/index.js +58 -347
- package/build/index.js.map +1 -1
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +4 -2
- package/build/logger/logger.js.map +1 -1
- package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -1
- package/build/logger/mcpLoggingEnhancer.js +10 -6
- package/build/logger/mcpLoggingEnhancer.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +26 -0
- package/build/server.js.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +10 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.js +12 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.d.ts +7 -3
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js +128 -6
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
- package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/sseRoutes.js +5 -1
- package/build/transport/http/routes/sseRoutes.js.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +5 -1
- package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
- package/build/transport/transportFactory.js +1 -1
- package/build/transport/transportFactory.js.map +1 -1
- package/build/utils/configureGlobalLogger.d.ts +12 -0
- package/build/utils/configureGlobalLogger.d.ts.map +1 -0
- package/build/utils/configureGlobalLogger.js +18 -0
- package/build/utils/configureGlobalLogger.js.map +1 -0
- package/build/utils/interactiveSelector.d.ts +88 -0
- package/build/utils/interactiveSelector.d.ts.map +1 -0
- package/build/utils/interactiveSelector.js +616 -0
- package/build/utils/interactiveSelector.js.map +1 -0
- package/build/utils/presetErrorHandler.d.ts +62 -0
- package/build/utils/presetErrorHandler.d.ts.map +1 -0
- package/build/utils/presetErrorHandler.js +159 -0
- package/build/utils/presetErrorHandler.js.map +1 -0
- package/build/utils/presetManager.d.ts +114 -0
- package/build/utils/presetManager.d.ts.map +1 -0
- package/build/utils/presetManager.js +565 -0
- package/build/utils/presetManager.js.map +1 -0
- package/build/utils/presetNotificationService.d.ts +62 -0
- package/build/utils/presetNotificationService.d.ts.map +1 -0
- package/build/utils/presetNotificationService.js +214 -0
- package/build/utils/presetNotificationService.js.map +1 -0
- package/build/utils/presetServerChangeDetector.d.ts +50 -0
- package/build/utils/presetServerChangeDetector.d.ts.map +1 -0
- package/build/utils/presetServerChangeDetector.js +100 -0
- package/build/utils/presetServerChangeDetector.js.map +1 -0
- package/build/utils/presetTypes.d.ts +52 -0
- package/build/utils/presetTypes.d.ts.map +1 -0
- package/build/utils/presetTypes.js +5 -0
- package/build/utils/presetTypes.js.map +1 -0
- package/build/utils/tagQueryEvaluator.d.ts +68 -0
- package/build/utils/tagQueryEvaluator.d.ts.map +1 -0
- package/build/utils/tagQueryEvaluator.js +292 -0
- package/build/utils/tagQueryEvaluator.js.map +1 -0
- package/build/utils/tagQueryParser.d.ts +11 -0
- package/build/utils/tagQueryParser.d.ts.map +1 -1
- package/build/utils/tagQueryParser.js +46 -0
- package/build/utils/tagQueryParser.js.map +1 -1
- package/build/utils/urlGenerator.d.ts +68 -0
- package/build/utils/urlGenerator.d.ts.map +1 -0
- package/build/utils/urlGenerator.js +208 -0
- package/build/utils/urlGenerator.js.map +1 -0
- package/package.json +21 -17
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standardized error handling utilities for preset operations
|
|
3
|
+
*/
|
|
4
|
+
export interface PresetErrorOptions {
|
|
5
|
+
context?: string;
|
|
6
|
+
userMessage?: string;
|
|
7
|
+
exit?: boolean;
|
|
8
|
+
exitCode?: number;
|
|
9
|
+
logLevel?: 'error' | 'warn' | 'info' | 'debug';
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Standardized error class for preset operations
|
|
13
|
+
*/
|
|
14
|
+
export declare class PresetError extends Error {
|
|
15
|
+
readonly context?: string;
|
|
16
|
+
readonly userMessage?: string;
|
|
17
|
+
readonly exitCode?: number;
|
|
18
|
+
readonly logLevel: 'error' | 'warn' | 'info' | 'debug';
|
|
19
|
+
constructor(message: string, options?: PresetErrorOptions);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error handler with consistent formatting and behavior
|
|
23
|
+
*/
|
|
24
|
+
export declare class PresetErrorHandler {
|
|
25
|
+
/**
|
|
26
|
+
* Create and throw a standardized preset error
|
|
27
|
+
*/
|
|
28
|
+
static throwError(message: string, options?: PresetErrorOptions): never;
|
|
29
|
+
/**
|
|
30
|
+
* Handle CLI error with proper exit codes and user-friendly messages
|
|
31
|
+
*/
|
|
32
|
+
static handleCliError(error: unknown, context?: string): never;
|
|
33
|
+
/**
|
|
34
|
+
* Create a validation error with consistent formatting
|
|
35
|
+
*/
|
|
36
|
+
static validationError(message: string, field?: string, options?: PresetErrorOptions): never;
|
|
37
|
+
/**
|
|
38
|
+
* Create a file operation error
|
|
39
|
+
*/
|
|
40
|
+
static fileError(operation: 'read' | 'write' | 'delete', filePath: string, error: unknown): never;
|
|
41
|
+
/**
|
|
42
|
+
* Create a parsing error for invalid filter expressions
|
|
43
|
+
*/
|
|
44
|
+
static parseError(expression: string, error: unknown, options?: PresetErrorOptions): never;
|
|
45
|
+
/**
|
|
46
|
+
* Create a not found error
|
|
47
|
+
*/
|
|
48
|
+
static notFoundError(type: 'preset' | 'server' | 'config', name: string, options?: PresetErrorOptions): never;
|
|
49
|
+
/**
|
|
50
|
+
* Wrap a function with standardized error handling
|
|
51
|
+
*/
|
|
52
|
+
static withErrorHandling<T>(fn: () => T, context?: string, options?: PresetErrorOptions): T;
|
|
53
|
+
/**
|
|
54
|
+
* Create a user-friendly error message for filter examples
|
|
55
|
+
*/
|
|
56
|
+
static createFilterError(expression: string): never;
|
|
57
|
+
/**
|
|
58
|
+
* Log error with structured format
|
|
59
|
+
*/
|
|
60
|
+
static logError(error: unknown, context?: string): void;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=presetErrorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presetErrorHandler.d.ts","sourceRoot":"","sources":["../../src/utils/presetErrorHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClC,SAAgB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;gBAElD,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;CAQ9D;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IAK3E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK;IAmB9D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IAShG;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK;IAWjG;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IAW9F;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK;IASjH;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,CAAC;IAgB/F;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK;IAcnD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAyBxD"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standardized error handling utilities for preset operations
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Standardized error class for preset operations
|
|
6
|
+
*/
|
|
7
|
+
export class PresetError extends Error {
|
|
8
|
+
context;
|
|
9
|
+
userMessage;
|
|
10
|
+
exitCode;
|
|
11
|
+
logLevel;
|
|
12
|
+
constructor(message, options = {}) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = 'PresetError';
|
|
15
|
+
this.context = options.context;
|
|
16
|
+
this.userMessage = options.userMessage;
|
|
17
|
+
this.exitCode = options.exitCode;
|
|
18
|
+
this.logLevel = options.logLevel || 'error';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error handler with consistent formatting and behavior
|
|
23
|
+
*/
|
|
24
|
+
export class PresetErrorHandler {
|
|
25
|
+
/**
|
|
26
|
+
* Create and throw a standardized preset error
|
|
27
|
+
*/
|
|
28
|
+
static throwError(message, options = {}) {
|
|
29
|
+
const error = new PresetError(message, options);
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Handle CLI error with proper exit codes and user-friendly messages
|
|
34
|
+
*/
|
|
35
|
+
static handleCliError(error, context) {
|
|
36
|
+
if (error instanceof PresetError) {
|
|
37
|
+
if (error.userMessage) {
|
|
38
|
+
console.error(`❌ ${error.userMessage}`);
|
|
39
|
+
}
|
|
40
|
+
if (error.context || context) {
|
|
41
|
+
console.error(`Context: ${error.context || context}`);
|
|
42
|
+
}
|
|
43
|
+
process.exit(error.exitCode || 1);
|
|
44
|
+
}
|
|
45
|
+
// Handle unknown errors
|
|
46
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
47
|
+
console.error(`❌ ${context ? `${context}: ` : ''}${errorMessage}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a validation error with consistent formatting
|
|
52
|
+
*/
|
|
53
|
+
static validationError(message, field, options = {}) {
|
|
54
|
+
const userMessage = field ? `Invalid ${field}: ${message}` : message;
|
|
55
|
+
this.throwError(message, {
|
|
56
|
+
...options,
|
|
57
|
+
userMessage,
|
|
58
|
+
context: options.context || 'validation',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create a file operation error
|
|
63
|
+
*/
|
|
64
|
+
static fileError(operation, filePath, error) {
|
|
65
|
+
const operationPast = operation === 'read' ? 'reading' : operation === 'write' ? 'writing' : 'deleting';
|
|
66
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
67
|
+
this.throwError(`Failed to ${operationPast} file: ${errorMessage}`, {
|
|
68
|
+
context: `file ${operation}`,
|
|
69
|
+
userMessage: `Could not ${operationPast} preset file: ${filePath}`,
|
|
70
|
+
exitCode: 2,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a parsing error for invalid filter expressions
|
|
75
|
+
*/
|
|
76
|
+
static parseError(expression, error, options = {}) {
|
|
77
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
78
|
+
this.throwError(`Failed to parse filter expression: ${errorMessage}`, {
|
|
79
|
+
context: 'filter parsing',
|
|
80
|
+
userMessage: `Invalid filter expression: "${expression}"`,
|
|
81
|
+
exitCode: 1,
|
|
82
|
+
...options,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create a not found error
|
|
87
|
+
*/
|
|
88
|
+
static notFoundError(type, name, options = {}) {
|
|
89
|
+
this.throwError(`${type} '${name}' not found`, {
|
|
90
|
+
context: `${type} lookup`,
|
|
91
|
+
userMessage: `No ${type} found with name: ${name}`,
|
|
92
|
+
exitCode: 4,
|
|
93
|
+
...options,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Wrap a function with standardized error handling
|
|
98
|
+
*/
|
|
99
|
+
static withErrorHandling(fn, context, options = {}) {
|
|
100
|
+
try {
|
|
101
|
+
return fn();
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (error instanceof PresetError) {
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
108
|
+
this.throwError(`${context}: ${errorMessage}`, {
|
|
109
|
+
...options,
|
|
110
|
+
context: context || options.context,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a user-friendly error message for filter examples
|
|
116
|
+
*/
|
|
117
|
+
static createFilterError(expression) {
|
|
118
|
+
console.error(`❌ Invalid filter expression: ${expression}`);
|
|
119
|
+
console.error('Examples:');
|
|
120
|
+
console.error(' --filter "web,api,database" # OR logic (comma-separated)');
|
|
121
|
+
console.error(' --filter "web AND database" # AND logic');
|
|
122
|
+
console.error(' --filter "(web OR api) AND database" # Complex expressions');
|
|
123
|
+
this.parseError(expression, 'Invalid syntax', {
|
|
124
|
+
userMessage: `Invalid filter expression: "${expression}"`,
|
|
125
|
+
context: 'filter parsing',
|
|
126
|
+
exitCode: 1,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Log error with structured format
|
|
131
|
+
*/
|
|
132
|
+
static logError(error, context) {
|
|
133
|
+
// Import logger dynamically to avoid circular dependencies
|
|
134
|
+
import('../logger/logger.js')
|
|
135
|
+
.then(({ default: logger }) => {
|
|
136
|
+
if (error instanceof PresetError) {
|
|
137
|
+
logger[error.logLevel](error.message, {
|
|
138
|
+
context: error.context || context,
|
|
139
|
+
userMessage: error.userMessage,
|
|
140
|
+
exitCode: error.exitCode,
|
|
141
|
+
stack: error.stack,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
146
|
+
logger.error('Unexpected error', {
|
|
147
|
+
context,
|
|
148
|
+
error: errorMessage,
|
|
149
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
.catch(() => {
|
|
154
|
+
// Fallback to console if logger import fails
|
|
155
|
+
console.error('Error logging failed:', error);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=presetErrorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presetErrorHandler.js","sourceRoot":"","sources":["../../src/utils/presetErrorHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { PresetConfig, PresetValidationResult, PresetListItem } from './presetTypes.js';
|
|
2
|
+
/**
|
|
3
|
+
* PresetManager handles dynamic preset storage, validation, and hot-reloading.
|
|
4
|
+
* Integrates with client notification system for real-time updates.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PresetManager {
|
|
7
|
+
private static instance;
|
|
8
|
+
private presets;
|
|
9
|
+
private configPath;
|
|
10
|
+
private watcher;
|
|
11
|
+
private reloadTimeout;
|
|
12
|
+
private readonly DEBOUNCE_DELAY;
|
|
13
|
+
private notificationCallbacks;
|
|
14
|
+
private configDirOption?;
|
|
15
|
+
private changeDetector;
|
|
16
|
+
private constructor();
|
|
17
|
+
static getInstance(configDirOption?: string): PresetManager;
|
|
18
|
+
/**
|
|
19
|
+
* Reset the singleton instance. Primarily for testing.
|
|
20
|
+
*/
|
|
21
|
+
static resetInstance(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize preset manager and start file watching
|
|
24
|
+
*/
|
|
25
|
+
initialize(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Register callback for preset change notifications
|
|
28
|
+
*/
|
|
29
|
+
onPresetChange(callback: (presetName: string) => Promise<void>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Remove notification callback
|
|
32
|
+
*/
|
|
33
|
+
offPresetChange(callback: (presetName: string) => Promise<void>): void;
|
|
34
|
+
/**
|
|
35
|
+
* Load presets from storage file
|
|
36
|
+
*/
|
|
37
|
+
private loadPresets;
|
|
38
|
+
/**
|
|
39
|
+
* Reload presets and notify clients of any server list changes
|
|
40
|
+
*/
|
|
41
|
+
private reloadAndNotifyChanges;
|
|
42
|
+
/**
|
|
43
|
+
* Initialize change detector with current preset server lists
|
|
44
|
+
*/
|
|
45
|
+
private initializeChangeDetector;
|
|
46
|
+
/**
|
|
47
|
+
* Save presets to storage file
|
|
48
|
+
*/
|
|
49
|
+
private savePresets;
|
|
50
|
+
/**
|
|
51
|
+
* Ensure config directory exists
|
|
52
|
+
*/
|
|
53
|
+
private ensureConfigDirectory;
|
|
54
|
+
/**
|
|
55
|
+
* Start watching preset file for changes
|
|
56
|
+
*/
|
|
57
|
+
private startWatching;
|
|
58
|
+
/**
|
|
59
|
+
* Stop watching preset file
|
|
60
|
+
*/
|
|
61
|
+
cleanup(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Create or update a preset
|
|
64
|
+
*/
|
|
65
|
+
savePreset(name: string, config: Omit<PresetConfig, 'name' | 'created' | 'lastModified'>): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Get a preset by name
|
|
68
|
+
*/
|
|
69
|
+
getPreset(name: string): PresetConfig | null;
|
|
70
|
+
/**
|
|
71
|
+
* Get all presets as list items
|
|
72
|
+
*/
|
|
73
|
+
getPresetList(): PresetListItem[];
|
|
74
|
+
/**
|
|
75
|
+
* Delete a preset
|
|
76
|
+
*/
|
|
77
|
+
deletePreset(name: string): Promise<boolean>;
|
|
78
|
+
/**
|
|
79
|
+
* Update preset usage timestamp
|
|
80
|
+
*/
|
|
81
|
+
markPresetUsed(name: string): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Validate a preset configuration
|
|
84
|
+
*/
|
|
85
|
+
validatePreset(name: string, config: Omit<PresetConfig, 'name' | 'created' | 'lastModified'>): Promise<PresetValidationResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve preset to tag expression for filtering
|
|
88
|
+
*/
|
|
89
|
+
resolvePresetToExpression(name: string): string | null;
|
|
90
|
+
/**
|
|
91
|
+
* Test a preset against current server configuration
|
|
92
|
+
*/
|
|
93
|
+
testPreset(name: string): Promise<{
|
|
94
|
+
servers: string[];
|
|
95
|
+
tags: string[];
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Notify clients of preset changes
|
|
99
|
+
*/
|
|
100
|
+
private notifyPresetChange;
|
|
101
|
+
/**
|
|
102
|
+
* Check if a preset exists
|
|
103
|
+
*/
|
|
104
|
+
hasPreset(name: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Get preset names
|
|
107
|
+
*/
|
|
108
|
+
getPresetNames(): string[];
|
|
109
|
+
/**
|
|
110
|
+
* Get the configuration path
|
|
111
|
+
*/
|
|
112
|
+
getConfigPath(): string;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=presetManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presetManager.d.ts","sourceRoot":"","sources":["../../src/utils/presetManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAiB,sBAAsB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvG;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IACrD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,qBAAqB,CAAyD;IACtF,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,cAAc,CAAgE;IAEtF,OAAO;WAOO,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,aAAa;IAOlE;;OAEG;WACW,aAAa,IAAI,IAAI;IASnC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxC;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI5E;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI7E;;OAEG;YACW,WAAW;IA2CzB;;OAEG;YACW,sBAAsB;IA4FpC;;OAEG;YACW,wBAAwB;IAmBtC;;OAEG;YACW,WAAW;IAuBzB;;OAEG;YACW,qBAAqB;IAWnC;;OAEG;YACW,aAAa;IAmC3B;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDrC;;OAEG;IACU,UAAU,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAInD;;OAEG;IACI,aAAa,IAAI,cAAc,EAAE;IAUxC;;OAEG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYzD;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD;;OAEG;IACU,cAAc,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAAC,GAC9D,OAAO,CAAC,sBAAsB,CAAC;IA8ClC;;OAEG;IACI,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAgC7D;;OAEG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAuDrF;;OAEG;YACW,kBAAkB;IAchC;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACI,aAAa,IAAI,MAAM;CAG/B"}
|