@defai.digital/ax-cli 3.7.2 → 3.8.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 +148 -53
- package/dist/agent/context-manager.d.ts +15 -1
- package/dist/agent/context-manager.js +50 -19
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/dependency-resolver.js +13 -7
- package/dist/agent/dependency-resolver.js.map +1 -1
- package/dist/agent/llm-agent.d.ts +37 -0
- package/dist/agent/llm-agent.js +318 -98
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/status-reporter.d.ts +114 -0
- package/dist/agent/status-reporter.js +335 -0
- package/dist/agent/status-reporter.js.map +1 -0
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +8 -2
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +1 -1
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +3 -1
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +1 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +3 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +1 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +3 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +1 -1
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +9 -3
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +1 -1
- package/dist/analyzers/git/churn-calculator.d.ts +2 -0
- package/dist/analyzers/git/churn-calculator.js +42 -8
- package/dist/analyzers/git/churn-calculator.js.map +1 -1
- package/dist/analyzers/git/hotspot-detector.js +2 -2
- package/dist/analyzers/git/hotspot-detector.js.map +1 -1
- package/dist/analyzers/metrics/metrics-analyzer.js +1 -1
- package/dist/analyzers/metrics/metrics-analyzer.js.map +1 -1
- package/dist/analyzers/security/security-analyzer.js +1 -1
- package/dist/analyzers/security/security-analyzer.js.map +1 -1
- package/dist/checkpoint/manager.d.ts +1 -0
- package/dist/checkpoint/manager.js +49 -9
- package/dist/checkpoint/manager.js.map +1 -1
- package/dist/checkpoint/storage.js +2 -2
- package/dist/checkpoint/storage.js.map +1 -1
- package/dist/commands/mcp-migrate.d.ts +9 -0
- package/dist/commands/mcp-migrate.js +172 -0
- package/dist/commands/mcp-migrate.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.js +211 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/vscode.d.ts +7 -0
- package/dist/commands/vscode.js +363 -0
- package/dist/commands/vscode.js.map +1 -0
- package/dist/index.js +79 -30
- package/dist/index.js.map +1 -1
- package/dist/llm/client.js +33 -4
- package/dist/llm/client.js.map +1 -1
- package/dist/mcp/automatosx-loader.d.ts +84 -0
- package/dist/mcp/automatosx-loader.js +238 -0
- package/dist/mcp/automatosx-loader.js.map +1 -0
- package/dist/mcp/client-mutex-patch.d.ts +36 -0
- package/dist/mcp/client-mutex-patch.js +75 -0
- package/dist/mcp/client-mutex-patch.js.map +1 -0
- package/dist/mcp/client-v2.d.ts +229 -0
- package/dist/mcp/client-v2.js +740 -0
- package/dist/mcp/client-v2.js.map +1 -0
- package/dist/mcp/client.d.ts +111 -13
- package/dist/mcp/client.js +168 -253
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/config-detector-v2.d.ts +83 -0
- package/dist/mcp/config-detector-v2.js +328 -0
- package/dist/mcp/config-detector-v2.js.map +1 -0
- package/dist/mcp/config-detector.d.ts +90 -0
- package/dist/mcp/config-detector.js +242 -0
- package/dist/mcp/config-detector.js.map +1 -0
- package/dist/mcp/config-migrator-v2.d.ts +89 -0
- package/dist/mcp/config-migrator-v2.js +288 -0
- package/dist/mcp/config-migrator-v2.js.map +1 -0
- package/dist/mcp/config-migrator.d.ts +63 -0
- package/dist/mcp/config-migrator.js +269 -0
- package/dist/mcp/config-migrator.js.map +1 -0
- package/dist/mcp/config-v2.d.ts +106 -0
- package/dist/mcp/config-v2.js +417 -0
- package/dist/mcp/config-v2.js.map +1 -0
- package/dist/mcp/config.d.ts +12 -1
- package/dist/mcp/config.js +95 -10
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/error-formatter.d.ts +46 -0
- package/dist/mcp/error-formatter.js +244 -0
- package/dist/mcp/error-formatter.js.map +1 -0
- package/dist/mcp/health.d.ts +5 -0
- package/dist/mcp/health.js +22 -2
- package/dist/mcp/health.js.map +1 -1
- package/dist/mcp/invariants.d.ts +141 -0
- package/dist/mcp/invariants.js +243 -0
- package/dist/mcp/invariants.js.map +1 -0
- package/dist/mcp/mutex-safe.d.ts +153 -0
- package/dist/mcp/mutex-safe.js +260 -0
- package/dist/mcp/mutex-safe.js.map +1 -0
- package/dist/mcp/mutex.d.ts +73 -0
- package/dist/mcp/mutex.js +137 -0
- package/dist/mcp/mutex.js.map +1 -0
- package/dist/mcp/reconnection.d.ts +4 -0
- package/dist/mcp/reconnection.js +25 -1
- package/dist/mcp/reconnection.js.map +1 -1
- package/dist/mcp/transports-v2.d.ts +152 -0
- package/dist/mcp/transports-v2.js +481 -0
- package/dist/mcp/transports-v2.js.map +1 -0
- package/dist/mcp/type-safety.d.ts +231 -0
- package/dist/mcp/type-safety.js +273 -0
- package/dist/mcp/type-safety.js.map +1 -0
- package/dist/planner/task-planner.js +13 -0
- package/dist/planner/task-planner.js.map +1 -1
- package/dist/planner/types.d.ts +6 -6
- package/dist/schemas/confirmation-schemas.d.ts +2 -2
- package/dist/schemas/settings-schemas.d.ts +196 -0
- package/dist/schemas/settings-schemas.js +146 -5
- package/dist/schemas/settings-schemas.js.map +1 -1
- package/dist/sdk/index.d.ts +118 -2
- package/dist/sdk/index.js +146 -4
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +182 -0
- package/dist/sdk/testing.js +231 -0
- package/dist/sdk/testing.js.map +1 -1
- package/dist/sdk/version.d.ts +114 -15
- package/dist/sdk/version.js +137 -15
- package/dist/sdk/version.js.map +1 -1
- package/dist/tools/bash.js +54 -9
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/registry.d.ts +146 -0
- package/dist/tools/registry.js +170 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search.js +12 -2
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/text-editor.js +84 -26
- package/dist/tools/text-editor.js.map +1 -1
- package/dist/ui/components/chat-history.js +6 -1
- package/dist/ui/components/chat-history.js.map +1 -1
- package/dist/ui/components/chat-input.d.ts +2 -1
- package/dist/ui/components/chat-input.js +5 -2
- package/dist/ui/components/chat-input.js.map +1 -1
- package/dist/ui/components/chat-interface.js +187 -5
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/components/context-breakdown.d.ts +23 -0
- package/dist/ui/components/context-breakdown.js +124 -0
- package/dist/ui/components/context-breakdown.js.map +1 -0
- package/dist/ui/components/keyboard-help.d.ts +17 -0
- package/dist/ui/components/keyboard-help.js +116 -0
- package/dist/ui/components/keyboard-help.js.map +1 -0
- package/dist/ui/components/keyboard-hints.js +2 -2
- package/dist/ui/components/keyboard-hints.js.map +1 -1
- package/dist/ui/components/quick-actions.js +43 -7
- package/dist/ui/components/quick-actions.js.map +1 -1
- package/dist/ui/components/status-bar.d.ts +3 -0
- package/dist/ui/components/status-bar.js +25 -16
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/components/toast-notification.d.ts +42 -0
- package/dist/ui/components/toast-notification.js +30 -2
- package/dist/ui/components/toast-notification.js.map +1 -1
- package/dist/ui/components/tool-group-display.js +34 -4
- package/dist/ui/components/tool-group-display.js.map +1 -1
- package/dist/ui/components/welcome-panel.js +2 -2
- package/dist/ui/components/welcome-panel.js.map +1 -1
- package/dist/ui/hooks/use-enhanced-input.d.ts +9 -1
- package/dist/ui/hooks/use-enhanced-input.js +901 -90
- package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
- package/dist/ui/hooks/use-input-handler.d.ts +11 -1
- package/dist/ui/hooks/use-input-handler.js +67 -3
- package/dist/ui/hooks/use-input-handler.js.map +1 -1
- package/dist/ui/hooks/use-input-history.d.ts +1 -1
- package/dist/ui/hooks/use-input-history.js +50 -14
- package/dist/ui/hooks/use-input-history.js.map +1 -1
- package/dist/ui/utils/bracketed-paste-handler.d.ts +97 -0
- package/dist/ui/utils/bracketed-paste-handler.js +322 -0
- package/dist/ui/utils/bracketed-paste-handler.js.map +1 -0
- package/dist/ui/utils/change-summarizer.js +16 -6
- package/dist/ui/utils/change-summarizer.js.map +1 -1
- package/dist/ui/utils/tool-grouper.d.ts +10 -1
- package/dist/ui/utils/tool-grouper.js +143 -30
- package/dist/ui/utils/tool-grouper.js.map +1 -1
- package/dist/utils/auto-accept-logger.d.ts +173 -0
- package/dist/utils/auto-accept-logger.js +420 -0
- package/dist/utils/auto-accept-logger.js.map +1 -0
- package/dist/utils/background-task-manager.d.ts +11 -0
- package/dist/utils/background-task-manager.js +124 -38
- package/dist/utils/background-task-manager.js.map +1 -1
- package/dist/utils/confirmation-service.d.ts +1 -0
- package/dist/utils/confirmation-service.js +6 -1
- package/dist/utils/confirmation-service.js.map +1 -1
- package/dist/utils/encryption.d.ts +8 -0
- package/dist/utils/encryption.js +44 -27
- package/dist/utils/encryption.js.map +1 -1
- package/dist/utils/enhanced-error-messages.d.ts +33 -0
- package/dist/utils/enhanced-error-messages.js +420 -0
- package/dist/utils/enhanced-error-messages.js.map +1 -0
- package/dist/utils/error-handler.d.ts +13 -3
- package/dist/utils/error-handler.js +16 -4
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/external-editor.d.ts +47 -0
- package/dist/utils/external-editor.js +179 -0
- package/dist/utils/external-editor.js.map +1 -0
- package/dist/utils/history-migration.d.ts +9 -0
- package/dist/utils/history-migration.js +36 -0
- package/dist/utils/history-migration.js.map +1 -0
- package/dist/utils/paste-utils.js +12 -11
- package/dist/utils/paste-utils.js.map +1 -1
- package/dist/utils/rate-limiter.js +20 -1
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/safety-rules.d.ts +64 -0
- package/dist/utils/safety-rules.js +225 -0
- package/dist/utils/safety-rules.js.map +1 -0
- package/dist/utils/settings-manager.d.ts +89 -1
- package/dist/utils/settings-manager.js +359 -3
- package/dist/utils/settings-manager.js.map +1 -1
- package/dist/utils/token-counter.d.ts +2 -0
- package/dist/utils/token-counter.js +32 -9
- package/dist/utils/token-counter.js.map +1 -1
- package/dist/utils/version.d.ts +11 -2
- package/dist/utils/version.js +54 -21
- package/dist/utils/version.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-v2.js","sourceRoot":"","sources":["../../src/mcp/client-v2.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/client.d.ts
CHANGED
|
@@ -1,37 +1,135 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* MCP Manager (v1 - Legacy API)
|
|
3
|
+
*
|
|
4
|
+
* @deprecated Use MCPManagerV2 from './client-v2.js' instead.
|
|
5
|
+
* This class will be removed in v4.0.0.
|
|
6
|
+
*
|
|
7
|
+
* This is now a thin wrapper around MCPManagerV2 for backward compatibility.
|
|
8
|
+
* All new code should use MCPManagerV2 directly for better type safety and
|
|
9
|
+
* explicit error handling with Result types.
|
|
10
|
+
*
|
|
11
|
+
* ## Migration Guide
|
|
12
|
+
*
|
|
13
|
+
* ### Before (v1 - throws on error):
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { MCPManager } from './mcp/client.js';
|
|
16
|
+
* const manager = new MCPManager();
|
|
17
|
+
*
|
|
18
|
+
* try {
|
|
19
|
+
* await manager.addServer(config); // throws on failure
|
|
20
|
+
* const tools = manager.getTools();
|
|
21
|
+
* } catch (error) {
|
|
22
|
+
* console.error('Failed:', error);
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* ### After (v2 - returns Result):
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { MCPManagerV2 } from './mcp/client-v2.js';
|
|
29
|
+
* const manager = new MCPManagerV2();
|
|
30
|
+
*
|
|
31
|
+
* const result = await manager.addServer(config);
|
|
32
|
+
* if (!result.success) {
|
|
33
|
+
* console.error('Failed:', result.error);
|
|
34
|
+
* return;
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* const tools = manager.getTools(); // Same API
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* ## Key Differences
|
|
41
|
+
*
|
|
42
|
+
* 1. **Error Handling**: v2 uses Result types instead of exceptions
|
|
43
|
+
* 2. **Type Safety**: v2 uses branded types (ServerName, ToolName)
|
|
44
|
+
* 3. **State Tracking**: v2 has explicit connection state machine
|
|
45
|
+
* 4. **Concurrency**: v2 uses SafeMutex for better race condition prevention
|
|
46
|
+
*
|
|
47
|
+
* @see {@link MCPManagerV2} for the new implementation
|
|
48
|
+
*/
|
|
2
49
|
import { EventEmitter } from "events";
|
|
3
|
-
import {
|
|
50
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
51
|
+
import type { TransportType } from "./transports.js";
|
|
4
52
|
import type { MCPServerConfig, MCPTransportConfig } from "../schemas/settings-schemas.js";
|
|
53
|
+
import { MCPManagerV2 } from './client-v2.js';
|
|
5
54
|
export type { MCPServerConfig, MCPTransportConfig };
|
|
55
|
+
/**
|
|
56
|
+
* MCP Tool (v1 interface)
|
|
57
|
+
* Compatible with v2 but uses plain strings instead of branded types
|
|
58
|
+
*/
|
|
6
59
|
export interface MCPTool {
|
|
7
60
|
name: string;
|
|
8
61
|
description: string;
|
|
9
62
|
inputSchema: any;
|
|
10
63
|
serverName: string;
|
|
11
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* MCP Manager - Legacy v1 API
|
|
67
|
+
*
|
|
68
|
+
* This class now wraps MCPManagerV2 internally. All operations are
|
|
69
|
+
* delegated to v2 with Result types converted to exceptions for
|
|
70
|
+
* backward compatibility.
|
|
71
|
+
*
|
|
72
|
+
* @deprecated Use MCPManagerV2 instead
|
|
73
|
+
*/
|
|
12
74
|
export declare class MCPManager extends EventEmitter {
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
75
|
+
/** @internal v2 implementation */
|
|
76
|
+
private v2;
|
|
77
|
+
constructor();
|
|
78
|
+
/**
|
|
79
|
+
* Add MCP server
|
|
80
|
+
*
|
|
81
|
+
* @throws {Error} If connection fails
|
|
82
|
+
* @deprecated Use MCPManagerV2.addServer() which returns Result type
|
|
83
|
+
*/
|
|
19
84
|
addServer(config: MCPServerConfig): Promise<void>;
|
|
20
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Remove MCP server
|
|
87
|
+
*
|
|
88
|
+
* @throws {Error} If server not found or removal fails
|
|
89
|
+
* @deprecated Use MCPManagerV2.removeServer() which returns Result type
|
|
90
|
+
*/
|
|
21
91
|
removeServer(serverName: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Call MCP tool
|
|
94
|
+
*
|
|
95
|
+
* @throws {Error} If tool not found or call fails
|
|
96
|
+
* @deprecated Use MCPManagerV2.callTool() which returns Result type
|
|
97
|
+
*/
|
|
22
98
|
callTool(toolName: string, arguments_: Record<string, unknown> | null | undefined): Promise<CallToolResult>;
|
|
23
99
|
/**
|
|
24
|
-
*
|
|
100
|
+
* Get all registered tools
|
|
25
101
|
*/
|
|
26
|
-
private truncateToTokenLimit;
|
|
27
102
|
getTools(): MCPTool[];
|
|
103
|
+
/**
|
|
104
|
+
* Get all connected server names
|
|
105
|
+
*/
|
|
28
106
|
getServers(): string[];
|
|
29
|
-
|
|
107
|
+
/**
|
|
108
|
+
* Get transport type for a server
|
|
109
|
+
*/
|
|
30
110
|
getTransportType(serverName: string): TransportType | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Shutdown all servers
|
|
113
|
+
*
|
|
114
|
+
* @throws {Error} If shutdown fails
|
|
115
|
+
*/
|
|
116
|
+
shutdown(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Ensure MCP servers are initialized from config
|
|
119
|
+
*/
|
|
31
120
|
ensureServersInitialized(): Promise<void>;
|
|
32
121
|
/**
|
|
33
122
|
* Cleanup all resources and remove event listeners
|
|
34
|
-
* Uses Promise.allSettled to ensure all servers are cleaned up even if some fail
|
|
35
123
|
*/
|
|
36
124
|
dispose(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Get underlying v2 instance (for advanced use cases)
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
getV2Instance(): MCPManagerV2;
|
|
130
|
+
/**
|
|
131
|
+
* Get token counter instance (for testing)
|
|
132
|
+
* @internal
|
|
133
|
+
*/
|
|
134
|
+
get tokenCounter(): any;
|
|
37
135
|
}
|
package/dist/mcp/client.js
CHANGED
|
@@ -1,286 +1,201 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* MCP Manager (v1 - Legacy API)
|
|
3
|
+
*
|
|
4
|
+
* @deprecated Use MCPManagerV2 from './client-v2.js' instead.
|
|
5
|
+
* This class will be removed in v4.0.0.
|
|
6
|
+
*
|
|
7
|
+
* This is now a thin wrapper around MCPManagerV2 for backward compatibility.
|
|
8
|
+
* All new code should use MCPManagerV2 directly for better type safety and
|
|
9
|
+
* explicit error handling with Result types.
|
|
10
|
+
*
|
|
11
|
+
* ## Migration Guide
|
|
12
|
+
*
|
|
13
|
+
* ### Before (v1 - throws on error):
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { MCPManager } from './mcp/client.js';
|
|
16
|
+
* const manager = new MCPManager();
|
|
17
|
+
*
|
|
18
|
+
* try {
|
|
19
|
+
* await manager.addServer(config); // throws on failure
|
|
20
|
+
* const tools = manager.getTools();
|
|
21
|
+
* } catch (error) {
|
|
22
|
+
* console.error('Failed:', error);
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* ### After (v2 - returns Result):
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { MCPManagerV2 } from './mcp/client-v2.js';
|
|
29
|
+
* const manager = new MCPManagerV2();
|
|
30
|
+
*
|
|
31
|
+
* const result = await manager.addServer(config);
|
|
32
|
+
* if (!result.success) {
|
|
33
|
+
* console.error('Failed:', result.error);
|
|
34
|
+
* return;
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* const tools = manager.getTools(); // Same API
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* ## Key Differences
|
|
41
|
+
*
|
|
42
|
+
* 1. **Error Handling**: v2 uses Result types instead of exceptions
|
|
43
|
+
* 2. **Type Safety**: v2 uses branded types (ServerName, ToolName)
|
|
44
|
+
* 3. **State Tracking**: v2 has explicit connection state machine
|
|
45
|
+
* 4. **Concurrency**: v2 uses SafeMutex for better race condition prevention
|
|
46
|
+
*
|
|
47
|
+
* @see {@link MCPManagerV2} for the new implementation
|
|
48
|
+
*/
|
|
2
49
|
import { EventEmitter } from "events";
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
50
|
+
// Import v2 implementation
|
|
51
|
+
import { MCPManagerV2, createServerName, createToolName } from './client-v2.js';
|
|
52
|
+
/**
|
|
53
|
+
* MCP Manager - Legacy v1 API
|
|
54
|
+
*
|
|
55
|
+
* This class now wraps MCPManagerV2 internally. All operations are
|
|
56
|
+
* delegated to v2 with Result types converted to exceptions for
|
|
57
|
+
* backward compatibility.
|
|
58
|
+
*
|
|
59
|
+
* @deprecated Use MCPManagerV2 instead
|
|
60
|
+
*/
|
|
7
61
|
export class MCPManager extends EventEmitter {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
// Create a promise for this connection attempt
|
|
26
|
-
const connectionPromise = this._addServerInternal(config);
|
|
27
|
-
this.pendingConnections.set(config.name, connectionPromise);
|
|
28
|
-
try {
|
|
29
|
-
await connectionPromise;
|
|
30
|
-
}
|
|
31
|
-
finally {
|
|
32
|
-
this.pendingConnections.delete(config.name);
|
|
33
|
-
}
|
|
62
|
+
/** @internal v2 implementation */
|
|
63
|
+
v2;
|
|
64
|
+
constructor() {
|
|
65
|
+
super();
|
|
66
|
+
this.v2 = new MCPManagerV2();
|
|
67
|
+
// Forward all v2 events to v1 listeners
|
|
68
|
+
this.v2.on('serverAdded', (...args) => this.emit('serverAdded', ...args));
|
|
69
|
+
this.v2.on('serverError', (...args) => this.emit('serverError', ...args));
|
|
70
|
+
this.v2.on('serverRemoved', (...args) => this.emit('serverRemoved', ...args));
|
|
71
|
+
this.v2.on('token-limit-exceeded', (...args) => this.emit('token-limit-exceeded', ...args));
|
|
72
|
+
this.v2.on('token-warning', (...args) => this.emit('token-warning', ...args));
|
|
73
|
+
// Forward new v2 events (for users who might be listening)
|
|
74
|
+
this.v2.on('reconnection-scheduled', (...args) => this.emit('reconnection-scheduled', ...args));
|
|
75
|
+
this.v2.on('reconnection-succeeded', (...args) => this.emit('reconnection-succeeded', ...args));
|
|
76
|
+
this.v2.on('reconnection-failed', (...args) => this.emit('reconnection-failed', ...args));
|
|
77
|
+
this.v2.on('server-unhealthy', (...args) => this.emit('server-unhealthy', ...args));
|
|
34
78
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (!transportConfig && validatedConfig.command) {
|
|
46
|
-
transportConfig = {
|
|
47
|
-
type: 'stdio',
|
|
48
|
-
command: validatedConfig.command,
|
|
49
|
-
args: validatedConfig.args,
|
|
50
|
-
env: validatedConfig.env
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
if (!transportConfig) {
|
|
54
|
-
throw new Error(ERROR_MESSAGES.TRANSPORT_CONFIG_REQUIRED);
|
|
55
|
-
}
|
|
56
|
-
// Create transport
|
|
57
|
-
const transport = createTransport(transportConfig);
|
|
58
|
-
this.transports.set(validatedConfig.name, transport);
|
|
59
|
-
// Create client
|
|
60
|
-
const client = new Client({
|
|
61
|
-
name: MCP_CONFIG.CLIENT_NAME,
|
|
62
|
-
version: MCP_CONFIG.CLIENT_VERSION
|
|
63
|
-
}, {
|
|
64
|
-
capabilities: {
|
|
65
|
-
tools: {}
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
// Connect before adding to map to avoid zombie entries on connection failure
|
|
69
|
-
const sdkTransport = await transport.connect();
|
|
70
|
-
await client.connect(sdkTransport);
|
|
71
|
-
// Only add to clients map after successful connection
|
|
72
|
-
this.clients.set(config.name, client);
|
|
73
|
-
// List available tools
|
|
74
|
-
const toolsResult = await client.listTools();
|
|
75
|
-
// Register tools
|
|
76
|
-
for (const tool of toolsResult.tools) {
|
|
77
|
-
const mcpTool = {
|
|
78
|
-
name: `mcp__${config.name}__${tool.name}`,
|
|
79
|
-
description: tool.description || `Tool from ${config.name} server`,
|
|
80
|
-
inputSchema: tool.inputSchema,
|
|
81
|
-
serverName: config.name
|
|
82
|
-
};
|
|
83
|
-
this.tools.set(mcpTool.name, mcpTool);
|
|
84
|
-
}
|
|
85
|
-
this.emit('serverAdded', config.name, toolsResult.tools.length);
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
// Clean up on error
|
|
89
|
-
this.clients.delete(config.name);
|
|
90
|
-
const transport = this.transports.get(config.name);
|
|
91
|
-
if (transport) {
|
|
92
|
-
await transport.disconnect().catch(() => { });
|
|
93
|
-
this.transports.delete(config.name);
|
|
94
|
-
}
|
|
95
|
-
this.emit('serverError', config.name, error);
|
|
96
|
-
throw error;
|
|
79
|
+
/**
|
|
80
|
+
* Add MCP server
|
|
81
|
+
*
|
|
82
|
+
* @throws {Error} If connection fails
|
|
83
|
+
* @deprecated Use MCPManagerV2.addServer() which returns Result type
|
|
84
|
+
*/
|
|
85
|
+
async addServer(config) {
|
|
86
|
+
const result = await this.v2.addServer(config);
|
|
87
|
+
if (!result.success) {
|
|
88
|
+
throw result.error;
|
|
97
89
|
}
|
|
98
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Remove MCP server
|
|
93
|
+
*
|
|
94
|
+
* @throws {Error} If server not found or removal fails
|
|
95
|
+
* @deprecated Use MCPManagerV2.removeServer() which returns Result type
|
|
96
|
+
*/
|
|
99
97
|
async removeServer(serverName) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
this.tools.delete(toolName);
|
|
104
|
-
}
|
|
98
|
+
const name = createServerName(serverName);
|
|
99
|
+
if (!name) {
|
|
100
|
+
throw new Error(`Invalid server name: "${serverName}"`);
|
|
105
101
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
try {
|
|
110
|
-
await client.close();
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
// Log error but continue cleanup
|
|
114
|
-
console.warn(`Error closing MCP client ${serverName}:`, error);
|
|
115
|
-
}
|
|
116
|
-
this.clients.delete(serverName);
|
|
102
|
+
const result = await this.v2.removeServer(name);
|
|
103
|
+
if (!result.success) {
|
|
104
|
+
throw result.error;
|
|
117
105
|
}
|
|
118
|
-
// Close transport with error handling
|
|
119
|
-
const transport = this.transports.get(serverName);
|
|
120
|
-
if (transport) {
|
|
121
|
-
try {
|
|
122
|
-
await transport.disconnect();
|
|
123
|
-
}
|
|
124
|
-
catch (error) {
|
|
125
|
-
// Log error but continue cleanup
|
|
126
|
-
console.warn(`Error disconnecting MCP transport ${serverName}:`, error);
|
|
127
|
-
}
|
|
128
|
-
this.transports.delete(serverName);
|
|
129
|
-
}
|
|
130
|
-
this.emit('serverRemoved', serverName);
|
|
131
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Call MCP tool
|
|
109
|
+
*
|
|
110
|
+
* @throws {Error} If tool not found or call fails
|
|
111
|
+
* @deprecated Use MCPManagerV2.callTool() which returns Result type
|
|
112
|
+
*/
|
|
132
113
|
async callTool(toolName, arguments_) {
|
|
133
|
-
const tool =
|
|
114
|
+
const tool = createToolName(toolName);
|
|
134
115
|
if (!tool) {
|
|
135
|
-
throw new Error(`
|
|
116
|
+
throw new Error(`Invalid tool name: "${toolName}"`);
|
|
136
117
|
}
|
|
137
|
-
const
|
|
138
|
-
if (!
|
|
139
|
-
throw
|
|
118
|
+
const result = await this.v2.callTool(tool, arguments_);
|
|
119
|
+
if (!result.success) {
|
|
120
|
+
throw result.error;
|
|
140
121
|
}
|
|
141
|
-
|
|
142
|
-
// Use a more robust approach that only removes the prefix once
|
|
143
|
-
const prefix = `mcp__${tool.serverName}__`;
|
|
144
|
-
const originalToolName = toolName.startsWith(prefix)
|
|
145
|
-
? toolName.substring(prefix.length)
|
|
146
|
-
: toolName;
|
|
147
|
-
// Validate arguments - ensure it's an object or default to empty object
|
|
148
|
-
const safeArgs = (arguments_ && typeof arguments_ === 'object' && !Array.isArray(arguments_))
|
|
149
|
-
? arguments_
|
|
150
|
-
: {};
|
|
151
|
-
const result = await client.callTool({
|
|
152
|
-
name: originalToolName,
|
|
153
|
-
arguments: safeArgs
|
|
154
|
-
});
|
|
155
|
-
// Apply token limiting (Phase 4)
|
|
156
|
-
if (MCP_CONFIG.TRUNCATION_ENABLED) {
|
|
157
|
-
const resultText = JSON.stringify(result.content);
|
|
158
|
-
const tokenCount = this.tokenCounter.countTokens(resultText);
|
|
159
|
-
if (tokenCount > MCP_CONFIG.TOKEN_HARD_LIMIT) {
|
|
160
|
-
// Truncate output at hard limit
|
|
161
|
-
const truncatedText = this.truncateToTokenLimit(resultText, MCP_CONFIG.TOKEN_HARD_LIMIT);
|
|
162
|
-
result.content = [
|
|
163
|
-
{ type: 'text', text: truncatedText },
|
|
164
|
-
{
|
|
165
|
-
type: 'text',
|
|
166
|
-
text: `\n\n⚠️ Output truncated: ${tokenCount.toLocaleString()} tokens exceeded limit of ${MCP_CONFIG.TOKEN_HARD_LIMIT.toLocaleString()} tokens`
|
|
167
|
-
}
|
|
168
|
-
];
|
|
169
|
-
this.emit('token-limit-exceeded', {
|
|
170
|
-
toolName,
|
|
171
|
-
serverName: tool.serverName,
|
|
172
|
-
originalTokens: tokenCount,
|
|
173
|
-
truncatedTokens: MCP_CONFIG.TOKEN_HARD_LIMIT
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
else if (tokenCount > MCP_CONFIG.TOKEN_WARNING_THRESHOLD) {
|
|
177
|
-
// Emit warning but don't truncate
|
|
178
|
-
this.emit('token-warning', {
|
|
179
|
-
toolName,
|
|
180
|
-
serverName: tool.serverName,
|
|
181
|
-
tokenCount,
|
|
182
|
-
threshold: MCP_CONFIG.TOKEN_WARNING_THRESHOLD
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return result;
|
|
122
|
+
return result.value;
|
|
187
123
|
}
|
|
188
124
|
/**
|
|
189
|
-
*
|
|
125
|
+
* Get all registered tools
|
|
190
126
|
*/
|
|
191
|
-
truncateToTokenLimit(text, maxTokens) {
|
|
192
|
-
// Binary search to find the right truncation point
|
|
193
|
-
let low = 0;
|
|
194
|
-
let high = text.length;
|
|
195
|
-
let result = text;
|
|
196
|
-
while (low <= high) {
|
|
197
|
-
const mid = Math.floor((low + high) / 2);
|
|
198
|
-
const truncated = text.substring(0, mid);
|
|
199
|
-
const tokens = this.tokenCounter.countTokens(truncated);
|
|
200
|
-
if (tokens <= maxTokens) {
|
|
201
|
-
result = truncated;
|
|
202
|
-
low = mid + 1;
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
high = mid - 1;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return result;
|
|
209
|
-
}
|
|
210
127
|
getTools() {
|
|
211
|
-
|
|
128
|
+
// Convert v2 tools (with branded types) to v1 tools (plain strings)
|
|
129
|
+
return this.v2.getTools().map(tool => ({
|
|
130
|
+
name: tool.name, // Cast branded type to string
|
|
131
|
+
description: tool.description,
|
|
132
|
+
inputSchema: tool.inputSchema,
|
|
133
|
+
serverName: tool.serverName // Cast branded type to string
|
|
134
|
+
}));
|
|
212
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Get all connected server names
|
|
138
|
+
*/
|
|
213
139
|
getServers() {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
async shutdown() {
|
|
217
|
-
const serverNames = Array.from(this.clients.keys());
|
|
218
|
-
// Use Promise.allSettled to ensure all servers are attempted even if some fail
|
|
219
|
-
const results = await Promise.allSettled(serverNames.map(name => this.removeServer(name)));
|
|
220
|
-
// Log any failures but don't throw
|
|
221
|
-
results.forEach((result, index) => {
|
|
222
|
-
if (result.status === 'rejected') {
|
|
223
|
-
console.warn(`Failed to remove server ${serverNames[index]}:`, result.reason);
|
|
224
|
-
}
|
|
225
|
-
});
|
|
140
|
+
// Convert ServerName[] to string[]
|
|
141
|
+
return this.v2.getServers().map(name => name);
|
|
226
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Get transport type for a server
|
|
145
|
+
*/
|
|
227
146
|
getTransportType(serverName) {
|
|
228
|
-
const
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
async ensureServersInitialized() {
|
|
232
|
-
// Prevent race condition with concurrent calls
|
|
233
|
-
if (this.initializationPromise) {
|
|
234
|
-
return this.initializationPromise;
|
|
235
|
-
}
|
|
236
|
-
if (this.clients.size > 0) {
|
|
237
|
-
return; // Already initialized
|
|
147
|
+
const name = createServerName(serverName);
|
|
148
|
+
if (!name) {
|
|
149
|
+
return undefined;
|
|
238
150
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
console.warn(`Failed to initialize MCP server ${serverConfig.name}:`, error);
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
await Promise.all(initPromises);
|
|
255
|
-
}
|
|
256
|
-
catch (error) {
|
|
257
|
-
// Catch config loading errors to prevent unhandled rejection
|
|
258
|
-
console.error('Failed to initialize MCP servers:', error);
|
|
259
|
-
}
|
|
260
|
-
})();
|
|
261
|
-
try {
|
|
262
|
-
await this.initializationPromise;
|
|
151
|
+
const result = this.v2.getTransportType(name);
|
|
152
|
+
return result.success ? result.value : undefined;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Shutdown all servers
|
|
156
|
+
*
|
|
157
|
+
* @throws {Error} If shutdown fails
|
|
158
|
+
*/
|
|
159
|
+
async shutdown() {
|
|
160
|
+
const result = await this.v2.shutdown();
|
|
161
|
+
if (!result.success) {
|
|
162
|
+
throw result.error;
|
|
263
163
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Ensure MCP servers are initialized from config
|
|
167
|
+
*/
|
|
168
|
+
async ensureServersInitialized() {
|
|
169
|
+
const result = await this.v2.ensureServersInitialized();
|
|
170
|
+
if (!result.success) {
|
|
171
|
+
// Don't throw - v1 behavior was to log warnings
|
|
172
|
+
console.warn('Failed to initialize MCP servers:', result.error);
|
|
267
173
|
}
|
|
268
174
|
}
|
|
269
175
|
/**
|
|
270
176
|
* Cleanup all resources and remove event listeners
|
|
271
|
-
* Uses Promise.allSettled to ensure all servers are cleaned up even if some fail
|
|
272
177
|
*/
|
|
273
178
|
async dispose() {
|
|
274
|
-
const
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
if (result.status === 'rejected') {
|
|
280
|
-
console.warn(`Failed to dispose server ${serverNames[index]}:`, result.reason);
|
|
281
|
-
}
|
|
282
|
-
});
|
|
179
|
+
const result = await this.v2.dispose();
|
|
180
|
+
if (!result.success) {
|
|
181
|
+
// Don't throw during cleanup - v1 behavior was to log warnings
|
|
182
|
+
console.warn('Error during MCP manager disposal:', result.error);
|
|
183
|
+
}
|
|
283
184
|
this.removeAllListeners();
|
|
284
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Get underlying v2 instance (for advanced use cases)
|
|
188
|
+
* @internal
|
|
189
|
+
*/
|
|
190
|
+
getV2Instance() {
|
|
191
|
+
return this.v2;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Get token counter instance (for testing)
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
get tokenCounter() {
|
|
198
|
+
return this.v2.tokenCounter;
|
|
199
|
+
}
|
|
285
200
|
}
|
|
286
201
|
//# sourceMappingURL=client.js.map
|