centaurus-cli 2.7.1 → 2.7.3
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/dist/cli-adapter.d.ts +15 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +380 -122
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/mcp-config-manager.d.ts +53 -0
- package/dist/config/mcp-config-manager.d.ts.map +1 -0
- package/dist/config/mcp-config-manager.js +210 -0
- package/dist/config/mcp-config-manager.js.map +1 -0
- package/dist/config/slash-commands.d.ts +14 -0
- package/dist/config/slash-commands.d.ts.map +1 -0
- package/dist/config/slash-commands.js +65 -0
- package/dist/config/slash-commands.js.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/mcp-command-handler.d.ts +16 -0
- package/dist/mcp/mcp-command-handler.d.ts.map +1 -0
- package/dist/mcp/mcp-command-handler.js +196 -0
- package/dist/mcp/mcp-command-handler.js.map +1 -0
- package/dist/mcp/mcp-server-manager.d.ts +30 -0
- package/dist/mcp/mcp-server-manager.d.ts.map +1 -0
- package/dist/mcp/mcp-server-manager.js +165 -0
- package/dist/mcp/mcp-server-manager.js.map +1 -0
- package/dist/mcp/mcp-tool-wrapper.d.ts +12 -0
- package/dist/mcp/mcp-tool-wrapper.d.ts.map +1 -0
- package/dist/mcp/mcp-tool-wrapper.js +57 -0
- package/dist/mcp/mcp-tool-wrapper.js.map +1 -0
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +1 -0
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/services/environment-context-injector.d.ts +2 -2
- package/dist/services/environment-context-injector.d.ts.map +1 -1
- package/dist/services/environment-context-injector.js +4 -4
- package/dist/services/environment-context-injector.js.map +1 -1
- package/dist/tools/command.d.ts +1 -2
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +39 -131
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts +3 -3
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +125 -99
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/get-diff.d.ts +5 -0
- package/dist/tools/get-diff.d.ts.map +1 -1
- package/dist/tools/get-diff.js +67 -5
- package/dist/tools/get-diff.js.map +1 -1
- package/dist/tools/grep-search.d.ts +13 -21
- package/dist/tools/grep-search.d.ts.map +1 -1
- package/dist/tools/grep-search.js +309 -280
- package/dist/tools/grep-search.js.map +1 -1
- package/dist/tools/inspect-symbol.d.ts +5 -0
- package/dist/tools/inspect-symbol.d.ts.map +1 -1
- package/dist/tools/inspect-symbol.js +102 -20
- package/dist/tools/inspect-symbol.js.map +1 -1
- package/dist/tools/types.d.ts +2 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +8 -10
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tools/validation.js +35 -37
- package/dist/tools/validation.js.map +1 -1
- package/dist/ui/components/App.d.ts +4 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +182 -70
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/AuthWelcomeScreen.d.ts.map +1 -1
- package/dist/ui/components/AuthWelcomeScreen.js +1 -9
- package/dist/ui/components/AuthWelcomeScreen.js.map +1 -1
- package/dist/ui/components/CodeBlock.d.ts.map +1 -1
- package/dist/ui/components/CodeBlock.js +24 -13
- package/dist/ui/components/CodeBlock.js.map +1 -1
- package/dist/ui/components/DiffViewer.d.ts +1 -0
- package/dist/ui/components/DiffViewer.d.ts.map +1 -1
- package/dist/ui/components/DiffViewer.js +107 -70
- package/dist/ui/components/DiffViewer.js.map +1 -1
- package/dist/ui/components/FileCreationPreview.d.ts +8 -0
- package/dist/ui/components/FileCreationPreview.d.ts.map +1 -0
- package/dist/ui/components/FileCreationPreview.js +63 -0
- package/dist/ui/components/FileCreationPreview.js.map +1 -0
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +134 -10
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/InteractiveShell.d.ts +1 -0
- package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/components/InteractiveShell.js +30 -8
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +8 -30
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/SlashCommandAutocomplete.d.ts +11 -0
- package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +1 -0
- package/dist/ui/components/SlashCommandAutocomplete.js +15 -0
- package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -0
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +212 -53
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.js +28 -1
- package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +3 -1
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/shell.d.ts +2 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +71 -0
- package/dist/utils/shell.js.map +1 -1
- package/package.json +2 -1
- package/prompts/system-prompt-autonomous.md +22 -73
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MCPConfigManager } from '../config/mcp-config-manager.js';
|
|
2
|
+
import { MCPServerManager } from './mcp-server-manager.js';
|
|
3
|
+
import { ToolRegistry } from '../tools/registry.js';
|
|
4
|
+
export declare class MCPCommandHandler {
|
|
5
|
+
private mcpConfigManager;
|
|
6
|
+
private mcpServerManager;
|
|
7
|
+
private toolRegistry;
|
|
8
|
+
constructor(mcpConfigManager: MCPConfigManager, mcpServerManager: MCPServerManager, toolRegistry: ToolRegistry);
|
|
9
|
+
initializeMCP(): Promise<void>;
|
|
10
|
+
handleCommand(args: string[]): Promise<string>;
|
|
11
|
+
private handleList;
|
|
12
|
+
private handleStatus;
|
|
13
|
+
private handleRefresh;
|
|
14
|
+
private handleConfig;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=mcp-command-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-command-handler.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-command-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;gBAFZ,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY;IAGhC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB9B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCpD,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,YAAY;YAkCN,aAAa;IA0C3B,OAAO,CAAC,YAAY;CAiCvB"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { createMCPToolWrappers } from './mcp-tool-wrapper.js';
|
|
2
|
+
export class MCPCommandHandler {
|
|
3
|
+
mcpConfigManager;
|
|
4
|
+
mcpServerManager;
|
|
5
|
+
toolRegistry;
|
|
6
|
+
constructor(mcpConfigManager, mcpServerManager, toolRegistry) {
|
|
7
|
+
this.mcpConfigManager = mcpConfigManager;
|
|
8
|
+
this.mcpServerManager = mcpServerManager;
|
|
9
|
+
this.toolRegistry = toolRegistry;
|
|
10
|
+
}
|
|
11
|
+
async initializeMCP() {
|
|
12
|
+
try {
|
|
13
|
+
// Auto-connect to configured servers
|
|
14
|
+
const servers = this.mcpConfigManager.getServers();
|
|
15
|
+
for (const serverConfig of servers) {
|
|
16
|
+
try {
|
|
17
|
+
await this.mcpServerManager.connect(serverConfig);
|
|
18
|
+
// Register MCP tools to tool registry
|
|
19
|
+
const tools = await this.mcpServerManager.listTools(serverConfig.name);
|
|
20
|
+
const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
|
|
21
|
+
for (const tool of wrappedTools) {
|
|
22
|
+
this.toolRegistry.register(tool);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
// Silent fail - user can check status with /mcp status
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('Failed to initialize MCP:', error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async handleCommand(args) {
|
|
35
|
+
const subcommand = args[0]?.toLowerCase();
|
|
36
|
+
if (!subcommand) {
|
|
37
|
+
return '## MCP (Model Context Protocol) Server Management\n\n' +
|
|
38
|
+
'Available subcommands:\n\n' +
|
|
39
|
+
'/mcp list - List configured MCP servers and tools\n' +
|
|
40
|
+
'/mcp desc - List servers and tools with descriptions\n' +
|
|
41
|
+
'/mcp schema - List servers, tools with full schemas\n' +
|
|
42
|
+
'/mcp status - Show connection status of all servers\n' +
|
|
43
|
+
'/mcp refresh - Restart all MCP servers\n' +
|
|
44
|
+
'/mcp config - Show MCP configuration file location\n\n' +
|
|
45
|
+
'Type any subcommand for more details.';
|
|
46
|
+
}
|
|
47
|
+
switch (subcommand) {
|
|
48
|
+
case 'list':
|
|
49
|
+
return this.handleList(false, false);
|
|
50
|
+
case 'desc':
|
|
51
|
+
return this.handleList(true, false);
|
|
52
|
+
case 'schema':
|
|
53
|
+
return this.handleList(true, true);
|
|
54
|
+
case 'status':
|
|
55
|
+
return this.handleStatus();
|
|
56
|
+
case 'refresh':
|
|
57
|
+
return await this.handleRefresh();
|
|
58
|
+
case 'config':
|
|
59
|
+
return this.handleConfig();
|
|
60
|
+
default:
|
|
61
|
+
return `❌ Unknown MCP subcommand: ${subcommand}\nType /mcp for help.`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
handleList(showDesc, showSchema) {
|
|
65
|
+
const servers = this.mcpConfigManager.getAllServers();
|
|
66
|
+
if (servers.length === 0) {
|
|
67
|
+
return '## No MCP Servers Configured\n\n' +
|
|
68
|
+
`Configuration file: \`${this.mcpConfigManager.getConfigPath()}\`\n\n` +
|
|
69
|
+
'Add MCP servers to the config file and run `/mcp refresh` to load them.\n\n' +
|
|
70
|
+
'Use `/mcp config` for an example configuration.';
|
|
71
|
+
}
|
|
72
|
+
let output = '## MCP Servers and Tools\n\n';
|
|
73
|
+
for (const serverConfig of servers) {
|
|
74
|
+
const statuses = this.mcpServerManager.getStatus(serverConfig.name);
|
|
75
|
+
const status = statuses[0];
|
|
76
|
+
const tools = status?.tools || [];
|
|
77
|
+
const statusIcon = status?.status === 'connected' ? '✅' :
|
|
78
|
+
status?.status === 'error' ? '❌' : '⚠️';
|
|
79
|
+
output += `### ${statusIcon} ${serverConfig.name}\n\n`;
|
|
80
|
+
output += `- **Command**: \`${serverConfig.command}\`\n`;
|
|
81
|
+
output += `- **Status**: ${status?.status || 'unknown'}\n`;
|
|
82
|
+
output += `- **Tools**: ${tools.length}\n\n`;
|
|
83
|
+
if (tools.length > 0) {
|
|
84
|
+
for (const tool of tools) {
|
|
85
|
+
output += ` - **${tool.name}**`;
|
|
86
|
+
if (showDesc && tool.description) {
|
|
87
|
+
output += `: ${tool.description}`;
|
|
88
|
+
}
|
|
89
|
+
output += '\n';
|
|
90
|
+
if (showSchema && tool.inputSchema) {
|
|
91
|
+
output += ' ```json\n';
|
|
92
|
+
output += ` ${JSON.stringify(tool.inputSchema, null, 2).replace(/\n/g, '\n ')}\n`;
|
|
93
|
+
output += ' ```\n';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
output += '\n';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return output;
|
|
100
|
+
}
|
|
101
|
+
handleStatus() {
|
|
102
|
+
const statuses = this.mcpServerManager.getStatus();
|
|
103
|
+
if (statuses.length === 0) {
|
|
104
|
+
return '## No MCP Servers Configured\n\n' +
|
|
105
|
+
'Add servers to your MCP configuration and run `/mcp refresh`.\n\n' +
|
|
106
|
+
'Use `/mcp config` for more information.';
|
|
107
|
+
}
|
|
108
|
+
let output = '## MCP Server Status\n\n';
|
|
109
|
+
for (const status of statuses) {
|
|
110
|
+
const icon = status.status === 'connected' ? '✅' :
|
|
111
|
+
status.status === 'error' ? '❌' :
|
|
112
|
+
status.status === 'connecting' ? '⏳' : '⚠️';
|
|
113
|
+
output += `${icon} **${status.name}**: ${status.status}\n`;
|
|
114
|
+
if (status.error) {
|
|
115
|
+
output += ` Error: ${status.error}\n`;
|
|
116
|
+
}
|
|
117
|
+
if (status.uptime && status.status === 'connected') {
|
|
118
|
+
const minutes = Math.floor(status.uptime / 60);
|
|
119
|
+
const seconds = status.uptime % 60;
|
|
120
|
+
output += ` Uptime: ${minutes}m ${seconds}s\n`;
|
|
121
|
+
}
|
|
122
|
+
output += ` Tools: ${status.tools.length}\n\n`;
|
|
123
|
+
}
|
|
124
|
+
return output;
|
|
125
|
+
}
|
|
126
|
+
async handleRefresh() {
|
|
127
|
+
try {
|
|
128
|
+
// Get fresh config
|
|
129
|
+
const config = this.mcpConfigManager.load();
|
|
130
|
+
const servers = config.servers.filter(s => s.enabled !== false);
|
|
131
|
+
if (servers.length === 0) {
|
|
132
|
+
return '⚠️ No enabled MCP servers in configuration.';
|
|
133
|
+
}
|
|
134
|
+
// Refresh servers
|
|
135
|
+
await this.mcpServerManager.refresh(servers);
|
|
136
|
+
// Re-register tools
|
|
137
|
+
for (const serverConfig of servers) {
|
|
138
|
+
try {
|
|
139
|
+
if (this.mcpServerManager.isConnected(serverConfig.name)) {
|
|
140
|
+
const tools = await this.mcpServerManager.listTools(serverConfig.name);
|
|
141
|
+
const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
|
|
142
|
+
for (const tool of wrappedTools) {
|
|
143
|
+
this.toolRegistry.register(tool);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
// Continue with other servers
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const statuses = this.mcpServerManager.getStatus();
|
|
152
|
+
const connectedCount = statuses.filter(s => s.status === 'connected').length;
|
|
153
|
+
const errorCount = statuses.filter(s => s.status === 'error').length;
|
|
154
|
+
return `✅ MCP servers refreshed!\n\n` +
|
|
155
|
+
`Connected: ${connectedCount}\n` +
|
|
156
|
+
`Errors: ${errorCount}\n\n` +
|
|
157
|
+
`Use \`/mcp status\` for details.`;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
return `❌ Failed to refresh MCP servers: ${error.message}`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
handleConfig() {
|
|
164
|
+
const configPath = this.mcpConfigManager.getConfigPath();
|
|
165
|
+
return `## MCP Configuration\n\n` +
|
|
166
|
+
`📄 **Configuration file**: \`${configPath}\`\n\n` +
|
|
167
|
+
`### Example Configuration\n\n` +
|
|
168
|
+
'```json\n' +
|
|
169
|
+
JSON.stringify({
|
|
170
|
+
mcp_servers: {
|
|
171
|
+
'shadcn': {
|
|
172
|
+
command: 'npx',
|
|
173
|
+
args: ['shadcn@latest', 'mcp']
|
|
174
|
+
},
|
|
175
|
+
'filesystem': {
|
|
176
|
+
command: 'npx',
|
|
177
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', '/path/to/directory']
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}, null, 2) + '\n' +
|
|
181
|
+
'```\n\n' +
|
|
182
|
+
'### Configuration Fields\n\n' +
|
|
183
|
+
'- Server key (e.g., `shadcn`, `filesystem`): Unique server identifier\n' +
|
|
184
|
+
'- `command`: Command to start the server (required)\n' +
|
|
185
|
+
'- `args`: Command arguments (optional)\n' +
|
|
186
|
+
'- `env`: Environment variables (optional)\n' +
|
|
187
|
+
'- `enabled`: Enable/disable server (default: true)\n\n' +
|
|
188
|
+
'### Next Steps\n\n' +
|
|
189
|
+
'1. Edit the configuration file\n' +
|
|
190
|
+
'2. Add your MCP servers to `mcp_servers`\n' +
|
|
191
|
+
'3. Run `/mcp refresh` to load them\n' +
|
|
192
|
+
'4. Use `/mcp status` to verify connections\n' +
|
|
193
|
+
'5. Use `/mcp list` to see available tools';
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=mcp-command-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-command-handler.js","sourceRoot":"","sources":["../../src/mcp/mcp-command-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { MCPServerConfig } from '../config/mcp-config-manager.js';
|
|
3
|
+
export interface MCPTool {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
inputSchema?: any;
|
|
7
|
+
}
|
|
8
|
+
export interface MCPServerStatus {
|
|
9
|
+
name: string;
|
|
10
|
+
status: 'connected' | 'disconnected' | 'error' | 'connecting';
|
|
11
|
+
tools: MCPTool[];
|
|
12
|
+
error?: string;
|
|
13
|
+
uptime?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare class MCPServerManager {
|
|
16
|
+
private servers;
|
|
17
|
+
private statuses;
|
|
18
|
+
private startTimes;
|
|
19
|
+
connect(config: MCPServerConfig): Promise<void>;
|
|
20
|
+
disconnect(name: string): Promise<void>;
|
|
21
|
+
disconnectAll(): Promise<void>;
|
|
22
|
+
getClient(name: string): Client | undefined;
|
|
23
|
+
getStatus(serverName?: string): MCPServerStatus[];
|
|
24
|
+
private enrichStatus;
|
|
25
|
+
listTools(serverName?: string): Promise<MCPTool[]>;
|
|
26
|
+
callTool(serverName: string, toolName: string, args: any): Promise<any>;
|
|
27
|
+
refresh(configs: MCPServerConfig[]): Promise<void>;
|
|
28
|
+
isConnected(serverName: string): boolean;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=mcp-server-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,YAAY,CAAC;IAC9D,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,OAAO,CAA8F;IAC7G,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,UAAU,CAAkC;IAE9C,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA6E/C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IASjD,OAAO,CAAC,YAAY;IAWd,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAgBlD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAcvE,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAI3C"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
export class MCPServerManager {
|
|
5
|
+
servers = new Map();
|
|
6
|
+
statuses = new Map();
|
|
7
|
+
startTimes = new Map();
|
|
8
|
+
async connect(config) {
|
|
9
|
+
try {
|
|
10
|
+
// Set status to connecting
|
|
11
|
+
this.statuses.set(config.name, {
|
|
12
|
+
name: config.name,
|
|
13
|
+
status: 'connecting',
|
|
14
|
+
tools: []
|
|
15
|
+
});
|
|
16
|
+
// Spawn the MCP server process
|
|
17
|
+
const serverProcess = spawn(config.command, config.args || [], {
|
|
18
|
+
env: { ...process.env, ...config.env },
|
|
19
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
20
|
+
});
|
|
21
|
+
// Handle process errors
|
|
22
|
+
serverProcess.on('error', (error) => {
|
|
23
|
+
this.statuses.set(config.name, {
|
|
24
|
+
name: config.name,
|
|
25
|
+
status: 'error',
|
|
26
|
+
tools: [],
|
|
27
|
+
error: `Process error: ${error.message}`
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
serverProcess.stderr?.on('data', (data) => {
|
|
31
|
+
console.error(`[MCP ${config.name}] stderr:`, data.toString());
|
|
32
|
+
});
|
|
33
|
+
// Create transport
|
|
34
|
+
const transport = new StdioClientTransport({
|
|
35
|
+
command: config.command,
|
|
36
|
+
args: config.args || [],
|
|
37
|
+
env: config.env
|
|
38
|
+
});
|
|
39
|
+
// Create client
|
|
40
|
+
const client = new Client({
|
|
41
|
+
name: 'centaurus-cli',
|
|
42
|
+
version: '1.0.0'
|
|
43
|
+
}, {
|
|
44
|
+
capabilities: {}
|
|
45
|
+
});
|
|
46
|
+
// Connect to the server
|
|
47
|
+
await client.connect(transport);
|
|
48
|
+
// List available tools
|
|
49
|
+
const toolsResponse = await client.listTools();
|
|
50
|
+
const tools = toolsResponse.tools.map(tool => ({
|
|
51
|
+
name: tool.name,
|
|
52
|
+
description: tool.description,
|
|
53
|
+
inputSchema: tool.inputSchema
|
|
54
|
+
}));
|
|
55
|
+
// Store client and process
|
|
56
|
+
this.servers.set(config.name, { client, process: serverProcess, config });
|
|
57
|
+
this.startTimes.set(config.name, Date.now());
|
|
58
|
+
// Update status
|
|
59
|
+
this.statuses.set(config.name, {
|
|
60
|
+
name: config.name,
|
|
61
|
+
status: 'connected',
|
|
62
|
+
tools
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
this.statuses.set(config.name, {
|
|
67
|
+
name: config.name,
|
|
68
|
+
status: 'error',
|
|
69
|
+
tools: [],
|
|
70
|
+
error: error.message || 'Failed to connect'
|
|
71
|
+
});
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async disconnect(name) {
|
|
76
|
+
const server = this.servers.get(name);
|
|
77
|
+
if (!server)
|
|
78
|
+
return;
|
|
79
|
+
try {
|
|
80
|
+
// Gracefully close the client
|
|
81
|
+
await server.client.close();
|
|
82
|
+
// Kill the process
|
|
83
|
+
server.process.kill();
|
|
84
|
+
// Clean up
|
|
85
|
+
this.servers.delete(name);
|
|
86
|
+
this.startTimes.delete(name);
|
|
87
|
+
// Update status
|
|
88
|
+
this.statuses.set(name, {
|
|
89
|
+
name,
|
|
90
|
+
status: 'disconnected',
|
|
91
|
+
tools: []
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
console.error(`Error disconnecting from ${name}:`, error);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async disconnectAll() {
|
|
99
|
+
const disconnectPromises = Array.from(this.servers.keys()).map(name => this.disconnect(name));
|
|
100
|
+
await Promise.all(disconnectPromises);
|
|
101
|
+
}
|
|
102
|
+
getClient(name) {
|
|
103
|
+
return this.servers.get(name)?.client;
|
|
104
|
+
}
|
|
105
|
+
getStatus(serverName) {
|
|
106
|
+
if (serverName) {
|
|
107
|
+
const status = this.statuses.get(serverName);
|
|
108
|
+
return status ? [this.enrichStatus(status)] : [];
|
|
109
|
+
}
|
|
110
|
+
return Array.from(this.statuses.values()).map(status => this.enrichStatus(status));
|
|
111
|
+
}
|
|
112
|
+
enrichStatus(status) {
|
|
113
|
+
const startTime = this.startTimes.get(status.name);
|
|
114
|
+
if (startTime && status.status === 'connected') {
|
|
115
|
+
return {
|
|
116
|
+
...status,
|
|
117
|
+
uptime: Math.floor((Date.now() - startTime) / 1000)
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
return status;
|
|
121
|
+
}
|
|
122
|
+
async listTools(serverName) {
|
|
123
|
+
if (serverName) {
|
|
124
|
+
const status = this.statuses.get(serverName);
|
|
125
|
+
return status?.tools || [];
|
|
126
|
+
}
|
|
127
|
+
// Return tools from all connected servers
|
|
128
|
+
const allTools = [];
|
|
129
|
+
for (const status of this.statuses.values()) {
|
|
130
|
+
if (status.status === 'connected') {
|
|
131
|
+
allTools.push(...status.tools);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return allTools;
|
|
135
|
+
}
|
|
136
|
+
async callTool(serverName, toolName, args) {
|
|
137
|
+
const server = this.servers.get(serverName);
|
|
138
|
+
if (!server) {
|
|
139
|
+
throw new Error(`Server ${serverName} not connected`);
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
const result = await server.client.callTool({ name: toolName, arguments: args });
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
throw new Error(`Tool execution failed: ${error.message}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async refresh(configs) {
|
|
150
|
+
// Disconnect all servers
|
|
151
|
+
await this.disconnectAll();
|
|
152
|
+
// Reconnect enabled servers
|
|
153
|
+
const connectPromises = configs
|
|
154
|
+
.filter(config => config.enabled !== false)
|
|
155
|
+
.map(config => this.connect(config).catch(error => {
|
|
156
|
+
console.error(`Failed to connect to ${config.name}:`, error);
|
|
157
|
+
}));
|
|
158
|
+
await Promise.all(connectPromises);
|
|
159
|
+
}
|
|
160
|
+
isConnected(serverName) {
|
|
161
|
+
const status = this.statuses.get(serverName);
|
|
162
|
+
return status?.status === 'connected';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=mcp-server-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-manager.js","sourceRoot":"","sources":["../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Tool } from '../tools/types.js';
|
|
2
|
+
import { MCPServerManager, MCPTool } from './mcp-server-manager.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a Tool wrapper for an MCP tool
|
|
5
|
+
* This allows MCP tools to be registered in the Centaurus tool registry
|
|
6
|
+
*/
|
|
7
|
+
export declare function createMCPToolWrapper(serverName: string, mcpTool: MCPTool, serverManager: MCPServerManager): Tool;
|
|
8
|
+
/**
|
|
9
|
+
* Create tool wrappers for all tools from an MCP server
|
|
10
|
+
*/
|
|
11
|
+
export declare function createMCPToolWrappers(serverName: string, tools: MCPTool[], serverManager: MCPServerManager): Tool[];
|
|
12
|
+
//# sourceMappingURL=mcp-tool-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-wrapper.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-tool-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,gBAAgB,GAChC,IAAI,CA6CN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,aAAa,EAAE,gBAAgB,GAChC,IAAI,EAAE,CAER"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a Tool wrapper for an MCP tool
|
|
3
|
+
* This allows MCP tools to be registered in the Centaurus tool registry
|
|
4
|
+
*/
|
|
5
|
+
export function createMCPToolWrapper(serverName, mcpTool, serverManager) {
|
|
6
|
+
return {
|
|
7
|
+
schema: {
|
|
8
|
+
name: `mcp_${serverName}_${mcpTool.name}`,
|
|
9
|
+
description: mcpTool.description || `${mcpTool.name} from ${serverName} MCP server`,
|
|
10
|
+
parameters: mcpTool.inputSchema || {
|
|
11
|
+
type: 'object',
|
|
12
|
+
properties: {},
|
|
13
|
+
required: []
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
async execute(args, context) {
|
|
17
|
+
try {
|
|
18
|
+
// Check if server is still connected
|
|
19
|
+
if (!serverManager.isConnected(serverName)) {
|
|
20
|
+
throw new Error(`MCP server '${serverName}' is not connected`);
|
|
21
|
+
}
|
|
22
|
+
// Call the MCP tool
|
|
23
|
+
const result = await serverManager.callTool(serverName, mcpTool.name, args);
|
|
24
|
+
// Extract content from result
|
|
25
|
+
if (result.content && Array.isArray(result.content)) {
|
|
26
|
+
// MCP tools return content as an array of content items
|
|
27
|
+
return result.content
|
|
28
|
+
.map((item) => {
|
|
29
|
+
if (item.type === 'text') {
|
|
30
|
+
return item.text;
|
|
31
|
+
}
|
|
32
|
+
else if (item.type === 'image') {
|
|
33
|
+
return `[Image: ${item.data}]`;
|
|
34
|
+
}
|
|
35
|
+
else if (item.type === 'resource') {
|
|
36
|
+
return `[Resource: ${item.resource?.uri}]`;
|
|
37
|
+
}
|
|
38
|
+
return JSON.stringify(item);
|
|
39
|
+
})
|
|
40
|
+
.join('\n');
|
|
41
|
+
}
|
|
42
|
+
// Fallback: return JSON stringified result
|
|
43
|
+
return JSON.stringify(result, null, 2);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
throw new Error(`MCP tool execution failed: ${error.message}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create tool wrappers for all tools from an MCP server
|
|
53
|
+
*/
|
|
54
|
+
export function createMCPToolWrappers(serverName, tools, serverManager) {
|
|
55
|
+
return tools.map(tool => createMCPToolWrapper(serverName, tool, serverManager));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=mcp-tool-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-wrapper.js","sourceRoot":"","sources":["../../src/mcp/mcp-tool-wrapper.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,UAAkB,EAClB,OAAgB,EAChB,aAA+B;IAE/B,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,OAAO,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE;YACzC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG,OAAO,CAAC,IAAI,SAAS,UAAU,aAAa;YACnF,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI;gBAC/B,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACf;SACJ;QACD,KAAK,CAAC,OAAO,CAAC,IAAyB,EAAE,OAA6B;YAClE,IAAI,CAAC;gBACD,qCAAqC;gBACrC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,eAAe,UAAU,oBAAoB,CAAC,CAAC;gBACnE,CAAC;gBAED,oBAAoB;gBACpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAE5E,8BAA8B;gBAC9B,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClD,wDAAwD;oBACxD,OAAO,MAAM,CAAC,OAAO;yBAChB,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;wBACf,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACvB,OAAO,IAAI,CAAC,IAAI,CAAC;wBACrB,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC/B,OAAO,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC;wBACnC,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;4BAClC,OAAO,cAAc,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;wBAC/C,CAAC;wBACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChC,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;gBAED,2CAA2C;gBAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACjC,UAAkB,EAClB,KAAgB,EAChB,aAA+B;IAE/B,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service-client.d.ts","sourceRoot":"","sources":["../../src/services/ai-service-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAK5D;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-service-client.d.ts","sourceRoot":"","sources":["../../src/services/ai-service-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAK5D;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAgB5F;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAgB;;IAQlC;;;OAGG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;;;;;OASG;IACI,UAAU,CACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,UAAU,EAAE,EACnB,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,IAAI,CAAC,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,WAAW,CAAC,EAAE,WAAW,GACxB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAkK7C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;OAKG;YACY,cAAc;CAuD9B;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service-client.js","sourceRoot":"","sources":["../../src/services/ai-service-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-service-client.js","sourceRoot":"","sources":["../../src/services/ai-service-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export declare class EnvironmentContextInjector {
|
|
|
29
29
|
* Uses caching to avoid re-detecting on every request
|
|
30
30
|
* Updates cache when CWD changes
|
|
31
31
|
*/
|
|
32
|
-
detectContext(): EnhancedEnvironmentContext;
|
|
32
|
+
detectContext(cwdOverride?: string): EnhancedEnvironmentContext;
|
|
33
33
|
/**
|
|
34
34
|
* Format context as structured markdown block for system prompt
|
|
35
35
|
*/
|
|
@@ -38,7 +38,7 @@ export declare class EnvironmentContextInjector {
|
|
|
38
38
|
* Get enhanced system prompt with injected environment context
|
|
39
39
|
* Prepends context block to the base system prompt
|
|
40
40
|
*/
|
|
41
|
-
getEnhancedSystemPrompt(basePrompt: string): string;
|
|
41
|
+
getEnhancedSystemPrompt(basePrompt: string, cwdOverride?: string): string;
|
|
42
42
|
/**
|
|
43
43
|
* Detect detailed OS name with version
|
|
44
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-context-injector.d.ts","sourceRoot":"","sources":["../../src/services/environment-context-injector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,aAAa,CAA2C;IAChE,OAAO,CAAC,OAAO,CAAc;IAE7B;;;;OAIG;IACH,aAAa,
|
|
1
|
+
{"version":3,"file":"environment-context-injector.d.ts","sourceRoot":"","sources":["../../src/services/environment-context-injector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,aAAa,CAA2C;IAChE,OAAO,CAAC,OAAO,CAAc;IAE7B;;;;OAIG;IACH,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,0BAA0B;IA8B/D;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM;IAgB/D;;;OAGG;IACH,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAQzE;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,UAAU,IAAI,IAAI;CAInB;AAGD,eAAO,MAAM,0BAA0B,4BAAmC,CAAC"}
|
|
@@ -20,8 +20,8 @@ export class EnvironmentContextInjector {
|
|
|
20
20
|
* Uses caching to avoid re-detecting on every request
|
|
21
21
|
* Updates cache when CWD changes
|
|
22
22
|
*/
|
|
23
|
-
detectContext() {
|
|
24
|
-
const currentCwd = process.cwd();
|
|
23
|
+
detectContext(cwdOverride) {
|
|
24
|
+
const currentCwd = cwdOverride || process.cwd();
|
|
25
25
|
// Return cached context if CWD hasn't changed
|
|
26
26
|
if (this.cachedContext && this.lastCwd === currentCwd) {
|
|
27
27
|
// Update date even when using cache
|
|
@@ -66,8 +66,8 @@ export class EnvironmentContextInjector {
|
|
|
66
66
|
* Get enhanced system prompt with injected environment context
|
|
67
67
|
* Prepends context block to the base system prompt
|
|
68
68
|
*/
|
|
69
|
-
getEnhancedSystemPrompt(basePrompt) {
|
|
70
|
-
const context = this.detectContext();
|
|
69
|
+
getEnhancedSystemPrompt(basePrompt, cwdOverride) {
|
|
70
|
+
const context = this.detectContext(cwdOverride);
|
|
71
71
|
const contextBlock = this.formatContextBlock(context);
|
|
72
72
|
// Prepend context block to base prompt
|
|
73
73
|
return contextBlock + basePrompt;
|