jiva-core 0.1.0

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 (94) hide show
  1. package/.env.example +18 -0
  2. package/.fluen/cache/state.json +7 -0
  3. package/README.md +350 -0
  4. package/actions/action_registry.py +75 -0
  5. package/actions/python_coder.py +470 -0
  6. package/api/main.py +269 -0
  7. package/dist/core/agent.d.ts +69 -0
  8. package/dist/core/agent.d.ts.map +1 -0
  9. package/dist/core/agent.js +214 -0
  10. package/dist/core/agent.js.map +1 -0
  11. package/dist/core/config.d.ts +222 -0
  12. package/dist/core/config.d.ts.map +1 -0
  13. package/dist/core/config.js +138 -0
  14. package/dist/core/config.js.map +1 -0
  15. package/dist/core/workspace.d.ts +53 -0
  16. package/dist/core/workspace.d.ts.map +1 -0
  17. package/dist/core/workspace.js +164 -0
  18. package/dist/core/workspace.js.map +1 -0
  19. package/dist/index.d.ts +17 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +17 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/interfaces/cli/index.d.ts +6 -0
  24. package/dist/interfaces/cli/index.d.ts.map +1 -0
  25. package/dist/interfaces/cli/index.js +257 -0
  26. package/dist/interfaces/cli/index.js.map +1 -0
  27. package/dist/interfaces/cli/repl.d.ts +9 -0
  28. package/dist/interfaces/cli/repl.d.ts.map +1 -0
  29. package/dist/interfaces/cli/repl.js +139 -0
  30. package/dist/interfaces/cli/repl.js.map +1 -0
  31. package/dist/interfaces/cli/setup-wizard.d.ts +9 -0
  32. package/dist/interfaces/cli/setup-wizard.d.ts.map +1 -0
  33. package/dist/interfaces/cli/setup-wizard.js +321 -0
  34. package/dist/interfaces/cli/setup-wizard.js.map +1 -0
  35. package/dist/mcp/client.d.ts +58 -0
  36. package/dist/mcp/client.d.ts.map +1 -0
  37. package/dist/mcp/client.js +178 -0
  38. package/dist/mcp/client.js.map +1 -0
  39. package/dist/mcp/server-manager.d.ts +58 -0
  40. package/dist/mcp/server-manager.d.ts.map +1 -0
  41. package/dist/mcp/server-manager.js +135 -0
  42. package/dist/mcp/server-manager.js.map +1 -0
  43. package/dist/models/base.d.ts +57 -0
  44. package/dist/models/base.d.ts.map +1 -0
  45. package/dist/models/base.js +5 -0
  46. package/dist/models/base.js.map +1 -0
  47. package/dist/models/harmony.d.ts +78 -0
  48. package/dist/models/harmony.d.ts.map +1 -0
  49. package/dist/models/harmony.js +226 -0
  50. package/dist/models/harmony.js.map +1 -0
  51. package/dist/models/krutrim.d.ts +30 -0
  52. package/dist/models/krutrim.d.ts.map +1 -0
  53. package/dist/models/krutrim.js +185 -0
  54. package/dist/models/krutrim.js.map +1 -0
  55. package/dist/models/orchestrator.d.ts +49 -0
  56. package/dist/models/orchestrator.d.ts.map +1 -0
  57. package/dist/models/orchestrator.js +140 -0
  58. package/dist/models/orchestrator.js.map +1 -0
  59. package/dist/utils/errors.d.ts +23 -0
  60. package/dist/utils/errors.d.ts.map +1 -0
  61. package/dist/utils/errors.js +45 -0
  62. package/dist/utils/errors.js.map +1 -0
  63. package/dist/utils/logger.d.ts +24 -0
  64. package/dist/utils/logger.d.ts.map +1 -0
  65. package/dist/utils/logger.js +74 -0
  66. package/dist/utils/logger.js.map +1 -0
  67. package/docs/BUILD.md +317 -0
  68. package/docs/DEV_WORKFLOW.md +197 -0
  69. package/docs/FILESYSTEM_ACCESS.md +244 -0
  70. package/docs/IMPLEMENTATION_SUMMARY.md +459 -0
  71. package/docs/QUICKSTART.md +162 -0
  72. package/docs/TROUBLESHOOTING.md +393 -0
  73. package/examples/code-review-directive.md +26 -0
  74. package/examples/data-analysis-directive.md +26 -0
  75. package/examples/programmatic-usage.ts +120 -0
  76. package/jiva-directive.md +24 -0
  77. package/package.json +46 -0
  78. package/setup.sh +65 -0
  79. package/src/core/agent.ts +275 -0
  80. package/src/core/config.ts +177 -0
  81. package/src/core/workspace.ts +205 -0
  82. package/src/index.ts +21 -0
  83. package/src/interfaces/cli/index.ts +290 -0
  84. package/src/interfaces/cli/repl.ts +182 -0
  85. package/src/interfaces/cli/setup-wizard.ts +355 -0
  86. package/src/mcp/client.ts +231 -0
  87. package/src/mcp/server-manager.ts +168 -0
  88. package/src/models/base.ts +63 -0
  89. package/src/models/harmony.ts +301 -0
  90. package/src/models/krutrim.ts +236 -0
  91. package/src/models/orchestrator.ts +180 -0
  92. package/src/utils/errors.ts +41 -0
  93. package/src/utils/logger.ts +87 -0
  94. package/tsconfig.json +22 -0
@@ -0,0 +1,321 @@
1
+ /**
2
+ * Setup Wizard for first-time configuration
3
+ */
4
+ import inquirer from 'inquirer';
5
+ import { configManager } from '../../core/config.js';
6
+ import { logger } from '../../utils/logger.js';
7
+ import chalk from 'chalk';
8
+ export async function runSetupWizard() {
9
+ console.log(chalk.bold.cyan('\n🤖 Welcome to Jiva Setup Wizard\n'));
10
+ console.log('This wizard will help you configure Jiva for the first time.\n');
11
+ // Reasoning Model Configuration
12
+ console.log(chalk.bold('Reasoning Model Configuration (gpt-oss-120b)'));
13
+ console.log(chalk.gray('This model will be used for reasoning and tool calling.\n'));
14
+ const reasoningAnswers = await inquirer.prompt([
15
+ {
16
+ type: 'input',
17
+ name: 'endpoint',
18
+ message: 'API Endpoint URL:',
19
+ default: 'https://cloud.olakrutrim.com/v1/chat/completions',
20
+ validate: (input) => {
21
+ try {
22
+ new URL(input);
23
+ return true;
24
+ }
25
+ catch {
26
+ return 'Please enter a valid URL';
27
+ }
28
+ },
29
+ },
30
+ {
31
+ type: 'password',
32
+ name: 'apiKey',
33
+ message: 'API Key:',
34
+ validate: (input) => input.length > 0 || 'API key is required',
35
+ },
36
+ {
37
+ type: 'input',
38
+ name: 'model',
39
+ message: 'Model name:',
40
+ default: 'gpt-oss-120b',
41
+ },
42
+ ]);
43
+ configManager.setReasoningModel({
44
+ name: 'reasoning',
45
+ endpoint: reasoningAnswers.endpoint,
46
+ apiKey: reasoningAnswers.apiKey,
47
+ type: 'reasoning',
48
+ defaultModel: reasoningAnswers.model,
49
+ });
50
+ logger.success('Reasoning model configured');
51
+ // Multimodal Model Configuration (Optional)
52
+ console.log(chalk.bold('\nMultimodal Model Configuration (Optional)'));
53
+ console.log(chalk.gray('This model will be used for understanding images.\n'));
54
+ const { configureMultimodal } = await inquirer.prompt([
55
+ {
56
+ type: 'confirm',
57
+ name: 'configureMultimodal',
58
+ message: 'Would you like to configure a multimodal model?',
59
+ default: true,
60
+ },
61
+ ]);
62
+ if (configureMultimodal) {
63
+ const multimodalAnswers = await inquirer.prompt([
64
+ {
65
+ type: 'input',
66
+ name: 'endpoint',
67
+ message: 'Multimodal API Endpoint URL:',
68
+ default: 'https://cloud.olakrutrim.com/v1/chat/completions',
69
+ validate: (input) => {
70
+ try {
71
+ new URL(input);
72
+ return true;
73
+ }
74
+ catch {
75
+ return 'Please enter a valid URL';
76
+ }
77
+ },
78
+ },
79
+ {
80
+ type: 'password',
81
+ name: 'apiKey',
82
+ message: 'Multimodal API Key:',
83
+ default: reasoningAnswers.apiKey,
84
+ validate: (input) => input.length > 0 || 'API key is required',
85
+ },
86
+ {
87
+ type: 'input',
88
+ name: 'model',
89
+ message: 'Multimodal model name:',
90
+ default: 'Llama-4-Maverick-17B-128E-Instruct',
91
+ },
92
+ ]);
93
+ configManager.setMultimodalModel({
94
+ name: 'multimodal',
95
+ endpoint: multimodalAnswers.endpoint,
96
+ apiKey: multimodalAnswers.apiKey,
97
+ type: 'multimodal',
98
+ defaultModel: multimodalAnswers.model,
99
+ });
100
+ logger.success('Multimodal model configured');
101
+ }
102
+ // MCP Servers Configuration
103
+ console.log(chalk.bold('\nMCP Servers Configuration'));
104
+ console.log(chalk.gray('Setting up default MCP servers (filesystem, commands)...\n'));
105
+ configManager.initializeDefaultServers();
106
+ logger.success('Default MCP servers configured');
107
+ // Debug Mode
108
+ const { enableDebug } = await inquirer.prompt([
109
+ {
110
+ type: 'confirm',
111
+ name: 'enableDebug',
112
+ message: 'Enable debug mode?',
113
+ default: false,
114
+ },
115
+ ]);
116
+ configManager.setDebug(enableDebug);
117
+ console.log(chalk.bold.green('\n✓ Setup complete!\n'));
118
+ console.log(`Configuration saved to: ${chalk.cyan(configManager.getConfigPath())}`);
119
+ console.log('\nYou can now run:', chalk.cyan('jiva'));
120
+ console.log('');
121
+ }
122
+ /**
123
+ * Update existing configuration interactively
124
+ */
125
+ export async function updateConfiguration() {
126
+ console.log(chalk.bold.cyan('\n🔧 Update Jiva Configuration\n'));
127
+ const { choice } = await inquirer.prompt([
128
+ {
129
+ type: 'list',
130
+ name: 'choice',
131
+ message: 'What would you like to update?',
132
+ choices: [
133
+ { name: 'Reasoning Model', value: 'reasoning' },
134
+ { name: 'Multimodal Model', value: 'multimodal' },
135
+ { name: 'MCP Servers', value: 'mcp' },
136
+ { name: 'Debug Mode', value: 'debug' },
137
+ { name: 'View Configuration', value: 'view' },
138
+ { name: 'Reset All', value: 'reset' },
139
+ { name: 'Cancel', value: 'cancel' },
140
+ ],
141
+ },
142
+ ]);
143
+ switch (choice) {
144
+ case 'reasoning':
145
+ await updateReasoningModel();
146
+ break;
147
+ case 'multimodal':
148
+ await updateMultimodalModel();
149
+ break;
150
+ case 'mcp':
151
+ await manageMCPServers();
152
+ break;
153
+ case 'debug':
154
+ await toggleDebugMode();
155
+ break;
156
+ case 'view':
157
+ viewConfiguration();
158
+ break;
159
+ case 'reset':
160
+ await resetConfiguration();
161
+ break;
162
+ case 'cancel':
163
+ console.log('Cancelled');
164
+ break;
165
+ }
166
+ }
167
+ async function updateReasoningModel() {
168
+ const current = configManager.getReasoningModel();
169
+ const answers = await inquirer.prompt([
170
+ {
171
+ type: 'input',
172
+ name: 'endpoint',
173
+ message: 'API Endpoint URL:',
174
+ default: current?.endpoint,
175
+ },
176
+ {
177
+ type: 'password',
178
+ name: 'apiKey',
179
+ message: 'API Key:',
180
+ default: current?.apiKey,
181
+ },
182
+ {
183
+ type: 'input',
184
+ name: 'model',
185
+ message: 'Model name:',
186
+ default: current?.defaultModel,
187
+ },
188
+ ]);
189
+ configManager.setReasoningModel({
190
+ name: 'reasoning',
191
+ endpoint: answers.endpoint,
192
+ apiKey: answers.apiKey,
193
+ type: 'reasoning',
194
+ defaultModel: answers.model,
195
+ });
196
+ logger.success('Reasoning model updated');
197
+ }
198
+ async function updateMultimodalModel() {
199
+ const current = configManager.getMultimodalModel();
200
+ const answers = await inquirer.prompt([
201
+ {
202
+ type: 'input',
203
+ name: 'endpoint',
204
+ message: 'Multimodal API Endpoint URL:',
205
+ default: current?.endpoint || 'https://cloud.olakrutrim.com/v1/chat/completions',
206
+ },
207
+ {
208
+ type: 'password',
209
+ name: 'apiKey',
210
+ message: 'Multimodal API Key:',
211
+ default: current?.apiKey,
212
+ },
213
+ {
214
+ type: 'input',
215
+ name: 'model',
216
+ message: 'Multimodal model name:',
217
+ default: current?.defaultModel || 'Llama-4-Maverick-17B-128E-Instruct',
218
+ },
219
+ ]);
220
+ configManager.setMultimodalModel({
221
+ name: 'multimodal',
222
+ endpoint: answers.endpoint,
223
+ apiKey: answers.apiKey,
224
+ type: 'multimodal',
225
+ defaultModel: answers.model,
226
+ });
227
+ logger.success('Multimodal model updated');
228
+ }
229
+ async function manageMCPServers() {
230
+ const servers = configManager.getMCPServers();
231
+ const serverNames = Object.keys(servers);
232
+ const { action } = await inquirer.prompt([
233
+ {
234
+ type: 'list',
235
+ name: 'action',
236
+ message: 'MCP Server Action:',
237
+ choices: [
238
+ { name: 'List Servers', value: 'list' },
239
+ { name: 'Add Server', value: 'add' },
240
+ { name: 'Remove Server', value: 'remove' },
241
+ { name: 'Back', value: 'back' },
242
+ ],
243
+ },
244
+ ]);
245
+ if (action === 'list') {
246
+ console.log('\nConfigured MCP Servers:');
247
+ Object.entries(servers).forEach(([name, config]) => {
248
+ console.log(` ${config.enabled ? '✓' : '✗'} ${name}: ${config.command} ${config.args?.join(' ') || ''}`);
249
+ });
250
+ }
251
+ else if (action === 'add') {
252
+ const answers = await inquirer.prompt([
253
+ {
254
+ type: 'input',
255
+ name: 'name',
256
+ message: 'Server name:',
257
+ },
258
+ {
259
+ type: 'input',
260
+ name: 'command',
261
+ message: 'Command:',
262
+ },
263
+ {
264
+ type: 'input',
265
+ name: 'args',
266
+ message: 'Arguments (space-separated):',
267
+ },
268
+ ]);
269
+ configManager.addMCPServer(answers.name, {
270
+ command: answers.command,
271
+ args: answers.args ? answers.args.split(' ') : [],
272
+ enabled: true,
273
+ });
274
+ logger.success(`MCP server '${answers.name}' added`);
275
+ }
276
+ else if (action === 'remove' && serverNames.length > 0) {
277
+ const { serverName } = await inquirer.prompt([
278
+ {
279
+ type: 'list',
280
+ name: 'serverName',
281
+ message: 'Select server to remove:',
282
+ choices: serverNames,
283
+ },
284
+ ]);
285
+ configManager.removeMCPServer(serverName);
286
+ logger.success(`MCP server '${serverName}' removed`);
287
+ }
288
+ }
289
+ async function toggleDebugMode() {
290
+ const current = configManager.isDebug();
291
+ const { enabled } = await inquirer.prompt([
292
+ {
293
+ type: 'confirm',
294
+ name: 'enabled',
295
+ message: 'Enable debug mode?',
296
+ default: current,
297
+ },
298
+ ]);
299
+ configManager.setDebug(enabled);
300
+ logger.success(`Debug mode ${enabled ? 'enabled' : 'disabled'}`);
301
+ }
302
+ function viewConfiguration() {
303
+ const config = configManager.getConfig();
304
+ console.log('\nCurrent Configuration:');
305
+ console.log(JSON.stringify(config, null, 2));
306
+ }
307
+ async function resetConfiguration() {
308
+ const { confirm } = await inquirer.prompt([
309
+ {
310
+ type: 'confirm',
311
+ name: 'confirm',
312
+ message: chalk.red('Are you sure you want to reset all configuration?'),
313
+ default: false,
314
+ },
315
+ ]);
316
+ if (confirm) {
317
+ configManager.reset();
318
+ logger.success('Configuration reset');
319
+ }
320
+ }
321
+ //# sourceMappingURL=setup-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../../src/interfaces/cli/setup-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * MCP Client Implementation
3
+ *
4
+ * Manages connections to MCP servers and provides tool discovery/execution.
5
+ */
6
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
8
+ import { Tool } from '../models/base.js';
9
+ export interface MCPServerConnection {
10
+ name: string;
11
+ client: Client;
12
+ transport: StdioClientTransport;
13
+ tools: Tool[];
14
+ }
15
+ export declare class MCPClient {
16
+ private connections;
17
+ /**
18
+ * Connect to an MCP server
19
+ */
20
+ connect(name: string, command: string, args?: string[], env?: Record<string, string>): Promise<void>;
21
+ /**
22
+ * Disconnect from an MCP server
23
+ */
24
+ disconnect(name: string): Promise<void>;
25
+ /**
26
+ * Disconnect from all MCP servers
27
+ */
28
+ disconnectAll(): Promise<void>;
29
+ /**
30
+ * Get all available tools from all connected servers
31
+ */
32
+ getAllTools(): Tool[];
33
+ /**
34
+ * Get tools from a specific server
35
+ */
36
+ getServerTools(serverName: string): Tool[];
37
+ /**
38
+ * Execute a tool call
39
+ */
40
+ executeTool(toolName: string, args: Record<string, any>): Promise<any>;
41
+ /**
42
+ * Convert MCP tool definitions to our internal Tool format
43
+ */
44
+ private convertMCPTools;
45
+ /**
46
+ * Check if a server is connected
47
+ */
48
+ isConnected(serverName: string): boolean;
49
+ /**
50
+ * Get list of connected server names
51
+ */
52
+ getConnectedServers(): string[];
53
+ /**
54
+ * Refresh tools from a specific server
55
+ */
56
+ refreshTools(serverName: string): Promise<void>;
57
+ }
58
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAOjF,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAA+C;IAElE;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IA6ChB;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC;;OAEG;IACH,WAAW,IAAI,IAAI,EAAE;IAgBrB;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAa1C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAsC5E;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBtD"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * MCP Client Implementation
3
+ *
4
+ * Manages connections to MCP servers and provides tool discovery/execution.
5
+ */
6
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
8
+ import { MCPError } from '../utils/errors.js';
9
+ import { logger } from '../utils/logger.js';
10
+ export class MCPClient {
11
+ connections = new Map();
12
+ /**
13
+ * Connect to an MCP server
14
+ */
15
+ async connect(name, command, args = [], env) {
16
+ try {
17
+ logger.info(`Connecting to MCP server: ${name}`);
18
+ logger.debug(`Command: ${command}`);
19
+ logger.debug(`Args: ${JSON.stringify(args)}`);
20
+ logger.debug(`Args length: ${args.length}, values: ${args.map((a, i) => `[${i}]="${a}"`).join(', ')}`);
21
+ const transport = new StdioClientTransport({
22
+ command,
23
+ args,
24
+ env: env || {},
25
+ });
26
+ const client = new Client({
27
+ name: 'jiva-agent',
28
+ version: '0.1.0',
29
+ }, {
30
+ capabilities: {},
31
+ });
32
+ await client.connect(transport);
33
+ // List available tools
34
+ const toolsResult = await client.listTools();
35
+ const tools = this.convertMCPTools(toolsResult.tools || []);
36
+ this.connections.set(name, {
37
+ name,
38
+ client,
39
+ transport,
40
+ tools,
41
+ });
42
+ logger.success(`Connected to MCP server: ${name} (${tools.length} tools available)`);
43
+ }
44
+ catch (error) {
45
+ throw new MCPError(`Failed to connect to MCP server '${name}': ${error instanceof Error ? error.message : String(error)}`, name);
46
+ }
47
+ }
48
+ /**
49
+ * Disconnect from an MCP server
50
+ */
51
+ async disconnect(name) {
52
+ const connection = this.connections.get(name);
53
+ if (!connection) {
54
+ logger.warn(`MCP server '${name}' not connected`);
55
+ return;
56
+ }
57
+ try {
58
+ await connection.client.close();
59
+ this.connections.delete(name);
60
+ logger.info(`Disconnected from MCP server: ${name}`);
61
+ }
62
+ catch (error) {
63
+ logger.error(`Error disconnecting from MCP server '${name}'`, error);
64
+ }
65
+ }
66
+ /**
67
+ * Disconnect from all MCP servers
68
+ */
69
+ async disconnectAll() {
70
+ const names = Array.from(this.connections.keys());
71
+ await Promise.all(names.map(name => this.disconnect(name)));
72
+ }
73
+ /**
74
+ * Get all available tools from all connected servers
75
+ */
76
+ getAllTools() {
77
+ const allTools = [];
78
+ for (const connection of this.connections.values()) {
79
+ // Prefix tool names with server name to avoid conflicts
80
+ const prefixedTools = connection.tools.map(tool => ({
81
+ ...tool,
82
+ name: `${connection.name}__${tool.name}`,
83
+ description: `[${connection.name}] ${tool.description}`,
84
+ }));
85
+ allTools.push(...prefixedTools);
86
+ }
87
+ return allTools;
88
+ }
89
+ /**
90
+ * Get tools from a specific server
91
+ */
92
+ getServerTools(serverName) {
93
+ const connection = this.connections.get(serverName);
94
+ if (!connection) {
95
+ return [];
96
+ }
97
+ return connection.tools.map(tool => ({
98
+ ...tool,
99
+ name: `${serverName}__${tool.name}`,
100
+ description: `[${serverName}] ${tool.description}`,
101
+ }));
102
+ }
103
+ /**
104
+ * Execute a tool call
105
+ */
106
+ async executeTool(toolName, args) {
107
+ // Parse server name and actual tool name
108
+ const [serverName, ...toolParts] = toolName.split('__');
109
+ const actualToolName = toolParts.join('__');
110
+ const connection = this.connections.get(serverName);
111
+ if (!connection) {
112
+ throw new MCPError(`MCP server '${serverName}' not connected`, serverName);
113
+ }
114
+ try {
115
+ logger.debug(`Executing tool: ${toolName}`, args);
116
+ const result = await connection.client.callTool({
117
+ name: actualToolName,
118
+ arguments: args,
119
+ });
120
+ logger.debug(`Tool result from ${toolName}:`, result);
121
+ // Extract content from MCP response
122
+ if (result.content && Array.isArray(result.content)) {
123
+ const textContent = result.content
124
+ .filter((c) => c.type === 'text')
125
+ .map((c) => c.text)
126
+ .join('\n');
127
+ return textContent || result;
128
+ }
129
+ return result;
130
+ }
131
+ catch (error) {
132
+ throw new MCPError(`Failed to execute tool '${toolName}': ${error instanceof Error ? error.message : String(error)}`, serverName);
133
+ }
134
+ }
135
+ /**
136
+ * Convert MCP tool definitions to our internal Tool format
137
+ */
138
+ convertMCPTools(mcpTools) {
139
+ return mcpTools.map(tool => ({
140
+ name: tool.name,
141
+ description: tool.description || tool.name,
142
+ parameters: tool.inputSchema || {
143
+ type: 'object',
144
+ properties: {},
145
+ },
146
+ }));
147
+ }
148
+ /**
149
+ * Check if a server is connected
150
+ */
151
+ isConnected(serverName) {
152
+ return this.connections.has(serverName);
153
+ }
154
+ /**
155
+ * Get list of connected server names
156
+ */
157
+ getConnectedServers() {
158
+ return Array.from(this.connections.keys());
159
+ }
160
+ /**
161
+ * Refresh tools from a specific server
162
+ */
163
+ async refreshTools(serverName) {
164
+ const connection = this.connections.get(serverName);
165
+ if (!connection) {
166
+ throw new MCPError(`MCP server '${serverName}' not connected`, serverName);
167
+ }
168
+ try {
169
+ const toolsResult = await connection.client.listTools();
170
+ connection.tools = this.convertMCPTools(toolsResult.tools || []);
171
+ logger.info(`Refreshed tools for MCP server: ${serverName} (${connection.tools.length} tools)`);
172
+ }
173
+ catch (error) {
174
+ throw new MCPError(`Failed to refresh tools for '${serverName}': ${error instanceof Error ? error.message : String(error)}`, serverName);
175
+ }
176
+ }
177
+ }
178
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * MCP Server Manager
3
+ *
4
+ * Manages lifecycle of MCP servers based on configuration
5
+ */
6
+ import { MCPClient } from './client.js';
7
+ import { MCPServerConfig } from '../core/config.js';
8
+ export declare class MCPServerManager {
9
+ private mcpClient;
10
+ private serverConfigs;
11
+ constructor();
12
+ /**
13
+ * Initialize servers from configuration
14
+ */
15
+ initialize(servers: Record<string, MCPServerConfig>): Promise<void>;
16
+ /**
17
+ * Connect to a specific server
18
+ */
19
+ private connectServer;
20
+ /**
21
+ * Add and connect to a new server
22
+ */
23
+ addServer(name: string, config: MCPServerConfig): Promise<void>;
24
+ /**
25
+ * Remove and disconnect from a server
26
+ */
27
+ removeServer(name: string): Promise<void>;
28
+ /**
29
+ * Enable a server and connect
30
+ */
31
+ enableServer(name: string): Promise<void>;
32
+ /**
33
+ * Disable a server and disconnect
34
+ */
35
+ disableServer(name: string): Promise<void>;
36
+ /**
37
+ * Get the MCP client instance
38
+ */
39
+ getClient(): MCPClient;
40
+ /**
41
+ * Get all server configurations
42
+ */
43
+ getServerConfigs(): Map<string, MCPServerConfig>;
44
+ /**
45
+ * Cleanup all servers
46
+ */
47
+ cleanup(): Promise<void>;
48
+ /**
49
+ * Get server status
50
+ */
51
+ getServerStatus(): Array<{
52
+ name: string;
53
+ enabled: boolean;
54
+ connected: boolean;
55
+ toolCount: number;
56
+ }>;
57
+ }
58
+ //# sourceMappingURL=server-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/server-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAA2C;;IAMhE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCzE;;OAEG;YACW,aAAa;IAS3B;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/C;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD;;OAEG;IACH,SAAS,IAAI,SAAS;IAItB;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAIhD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAaH"}