@qodo/sdk 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.
- package/LICENSE +118 -0
- package/README.md +121 -0
- package/dist/api/agent.d.ts +69 -0
- package/dist/api/agent.d.ts.map +1 -0
- package/dist/api/agent.js +1034 -0
- package/dist/api/agent.js.map +1 -0
- package/dist/api/analytics.d.ts +43 -0
- package/dist/api/analytics.d.ts.map +1 -0
- package/dist/api/analytics.js +163 -0
- package/dist/api/analytics.js.map +1 -0
- package/dist/api/http.d.ts +5 -0
- package/dist/api/http.d.ts.map +1 -0
- package/dist/api/http.js +59 -0
- package/dist/api/http.js.map +1 -0
- package/dist/api/index.d.ts +12 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +17 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/taskTracking.d.ts +54 -0
- package/dist/api/taskTracking.d.ts.map +1 -0
- package/dist/api/taskTracking.js +208 -0
- package/dist/api/taskTracking.js.map +1 -0
- package/dist/api/types.d.ts +92 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utils.d.ts +8 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/api/utils.js +54 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/api/websocket.d.ts +74 -0
- package/dist/api/websocket.d.ts.map +1 -0
- package/dist/api/websocket.js +685 -0
- package/dist/api/websocket.js.map +1 -0
- package/dist/auth/index.d.ts +25 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +85 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/clients/index.d.ts +8 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +7 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/info/InfoClient.d.ts +37 -0
- package/dist/clients/info/InfoClient.d.ts.map +1 -0
- package/dist/clients/info/InfoClient.js +69 -0
- package/dist/clients/info/InfoClient.js.map +1 -0
- package/dist/clients/info/index.d.ts +4 -0
- package/dist/clients/info/index.d.ts.map +1 -0
- package/dist/clients/info/index.js +2 -0
- package/dist/clients/info/index.js.map +1 -0
- package/dist/clients/info/types.d.ts +21 -0
- package/dist/clients/info/types.d.ts.map +1 -0
- package/dist/clients/info/types.js +2 -0
- package/dist/clients/info/types.js.map +1 -0
- package/dist/clients/sessions/SessionsClient.d.ts +34 -0
- package/dist/clients/sessions/SessionsClient.d.ts.map +1 -0
- package/dist/clients/sessions/SessionsClient.js +71 -0
- package/dist/clients/sessions/SessionsClient.js.map +1 -0
- package/dist/clients/sessions/index.d.ts +4 -0
- package/dist/clients/sessions/index.d.ts.map +1 -0
- package/dist/clients/sessions/index.js +2 -0
- package/dist/clients/sessions/index.js.map +1 -0
- package/dist/clients/sessions/types.d.ts +20 -0
- package/dist/clients/sessions/types.d.ts.map +1 -0
- package/dist/clients/sessions/types.js +2 -0
- package/dist/clients/sessions/types.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +43 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +472 -0
- package/dist/config/ConfigManager.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/urlConfig.d.ts +15 -0
- package/dist/config/urlConfig.d.ts.map +1 -0
- package/dist/config/urlConfig.js +75 -0
- package/dist/config/urlConfig.js.map +1 -0
- package/dist/constants/errors.d.ts +2 -0
- package/dist/constants/errors.d.ts.map +1 -0
- package/dist/constants/errors.js +2 -0
- package/dist/constants/errors.js.map +1 -0
- package/dist/constants/index.d.ts +7 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +11 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/tools.d.ts +4 -0
- package/dist/constants/tools.d.ts.map +1 -0
- package/dist/constants/tools.js +4 -0
- package/dist/constants/tools.js.map +1 -0
- package/dist/constants/versions.d.ts +2 -0
- package/dist/constants/versions.d.ts.map +1 -0
- package/dist/constants/versions.js +2 -0
- package/dist/constants/versions.js.map +1 -0
- package/dist/context/buildUserContext.d.ts +18 -0
- package/dist/context/buildUserContext.d.ts.map +1 -0
- package/dist/context/buildUserContext.js +34 -0
- package/dist/context/buildUserContext.js.map +1 -0
- package/dist/context/index.d.ts +9 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +9 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/messageManager.d.ts +42 -0
- package/dist/context/messageManager.d.ts.map +1 -0
- package/dist/context/messageManager.js +322 -0
- package/dist/context/messageManager.js.map +1 -0
- package/dist/context/taskFocus.d.ts +2 -0
- package/dist/context/taskFocus.d.ts.map +1 -0
- package/dist/context/taskFocus.js +26 -0
- package/dist/context/taskFocus.js.map +1 -0
- package/dist/context/userInput.d.ts +3 -0
- package/dist/context/userInput.d.ts.map +1 -0
- package/dist/context/userInput.js +20 -0
- package/dist/context/userInput.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/MCPManager.d.ts +125 -0
- package/dist/mcp/MCPManager.d.ts.map +1 -0
- package/dist/mcp/MCPManager.js +616 -0
- package/dist/mcp/MCPManager.js.map +1 -0
- package/dist/mcp/approvedTools.d.ts +4 -0
- package/dist/mcp/approvedTools.d.ts.map +1 -0
- package/dist/mcp/approvedTools.js +19 -0
- package/dist/mcp/approvedTools.js.map +1 -0
- package/dist/mcp/baseServer.d.ts +75 -0
- package/dist/mcp/baseServer.d.ts.map +1 -0
- package/dist/mcp/baseServer.js +107 -0
- package/dist/mcp/baseServer.js.map +1 -0
- package/dist/mcp/builtinServers.d.ts +15 -0
- package/dist/mcp/builtinServers.d.ts.map +1 -0
- package/dist/mcp/builtinServers.js +155 -0
- package/dist/mcp/builtinServers.js.map +1 -0
- package/dist/mcp/dynamicBEServer.d.ts +20 -0
- package/dist/mcp/dynamicBEServer.d.ts.map +1 -0
- package/dist/mcp/dynamicBEServer.js +52 -0
- package/dist/mcp/dynamicBEServer.js.map +1 -0
- package/dist/mcp/index.d.ts +19 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +24 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcpInitialization.d.ts +2 -0
- package/dist/mcp/mcpInitialization.d.ts.map +1 -0
- package/dist/mcp/mcpInitialization.js +56 -0
- package/dist/mcp/mcpInitialization.js.map +1 -0
- package/dist/mcp/servers/filesystem.d.ts +75 -0
- package/dist/mcp/servers/filesystem.d.ts.map +1 -0
- package/dist/mcp/servers/filesystem.js +992 -0
- package/dist/mcp/servers/filesystem.js.map +1 -0
- package/dist/mcp/servers/gerrit.d.ts +19 -0
- package/dist/mcp/servers/gerrit.d.ts.map +1 -0
- package/dist/mcp/servers/gerrit.js +515 -0
- package/dist/mcp/servers/gerrit.js.map +1 -0
- package/dist/mcp/servers/git.d.ts +18 -0
- package/dist/mcp/servers/git.d.ts.map +1 -0
- package/dist/mcp/servers/git.js +441 -0
- package/dist/mcp/servers/git.js.map +1 -0
- package/dist/mcp/servers/ripgrep.d.ts +34 -0
- package/dist/mcp/servers/ripgrep.d.ts.map +1 -0
- package/dist/mcp/servers/ripgrep.js +517 -0
- package/dist/mcp/servers/ripgrep.js.map +1 -0
- package/dist/mcp/servers/shell.d.ts +20 -0
- package/dist/mcp/servers/shell.d.ts.map +1 -0
- package/dist/mcp/servers/shell.js +603 -0
- package/dist/mcp/servers/shell.js.map +1 -0
- package/dist/mcp/serversRegistry.d.ts +55 -0
- package/dist/mcp/serversRegistry.d.ts.map +1 -0
- package/dist/mcp/serversRegistry.js +410 -0
- package/dist/mcp/serversRegistry.js.map +1 -0
- package/dist/mcp/toolProcessor.d.ts +42 -0
- package/dist/mcp/toolProcessor.d.ts.map +1 -0
- package/dist/mcp/toolProcessor.js +200 -0
- package/dist/mcp/toolProcessor.js.map +1 -0
- package/dist/mcp/types.d.ts +29 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +2 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/parser/index.d.ts +72 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +967 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/types.d.ts +153 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +6 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/parser/utils.d.ts +18 -0
- package/dist/parser/utils.d.ts.map +1 -0
- package/dist/parser/utils.js +64 -0
- package/dist/parser/utils.js.map +1 -0
- package/dist/sdk/QodoSDK.d.ts +152 -0
- package/dist/sdk/QodoSDK.d.ts.map +1 -0
- package/dist/sdk/QodoSDK.js +786 -0
- package/dist/sdk/QodoSDK.js.map +1 -0
- package/dist/sdk/bootstrap.d.ts +16 -0
- package/dist/sdk/bootstrap.d.ts.map +1 -0
- package/dist/sdk/bootstrap.js +21 -0
- package/dist/sdk/bootstrap.js.map +1 -0
- package/dist/sdk/builders.d.ts +54 -0
- package/dist/sdk/builders.d.ts.map +1 -0
- package/dist/sdk/builders.js +117 -0
- package/dist/sdk/builders.js.map +1 -0
- package/dist/sdk/defaults.d.ts +11 -0
- package/dist/sdk/defaults.d.ts.map +1 -0
- package/dist/sdk/defaults.js +39 -0
- package/dist/sdk/defaults.js.map +1 -0
- package/dist/sdk/discovery.d.ts +2 -0
- package/dist/sdk/discovery.d.ts.map +1 -0
- package/dist/sdk/discovery.js +25 -0
- package/dist/sdk/discovery.js.map +1 -0
- package/dist/sdk/events.d.ts +168 -0
- package/dist/sdk/events.d.ts.map +1 -0
- package/dist/sdk/events.js +52 -0
- package/dist/sdk/events.js.map +1 -0
- package/dist/sdk/index.d.ts +17 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +17 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/runner/AgentRunner.d.ts +22 -0
- package/dist/sdk/runner/AgentRunner.d.ts.map +1 -0
- package/dist/sdk/runner/AgentRunner.js +222 -0
- package/dist/sdk/runner/AgentRunner.js.map +1 -0
- package/dist/sdk/runner/finalize.d.ts +9 -0
- package/dist/sdk/runner/finalize.d.ts.map +1 -0
- package/dist/sdk/runner/finalize.js +115 -0
- package/dist/sdk/runner/finalize.js.map +1 -0
- package/dist/sdk/runner/formats.d.ts +7 -0
- package/dist/sdk/runner/formats.d.ts.map +1 -0
- package/dist/sdk/runner/formats.js +91 -0
- package/dist/sdk/runner/formats.js.map +1 -0
- package/dist/sdk/runner/index.d.ts +9 -0
- package/dist/sdk/runner/index.d.ts.map +1 -0
- package/dist/sdk/runner/index.js +9 -0
- package/dist/sdk/runner/index.js.map +1 -0
- package/dist/sdk/runner/progress.d.ts +3 -0
- package/dist/sdk/runner/progress.d.ts.map +1 -0
- package/dist/sdk/runner/progress.js +16 -0
- package/dist/sdk/runner/progress.js.map +1 -0
- package/dist/sdk/schemas.d.ts +50 -0
- package/dist/sdk/schemas.d.ts.map +1 -0
- package/dist/sdk/schemas.js +145 -0
- package/dist/sdk/schemas.js.map +1 -0
- package/dist/session/SessionContext.d.ts +86 -0
- package/dist/session/SessionContext.d.ts.map +1 -0
- package/dist/session/SessionContext.js +395 -0
- package/dist/session/SessionContext.js.map +1 -0
- package/dist/session/environment.d.ts +42 -0
- package/dist/session/environment.d.ts.map +1 -0
- package/dist/session/environment.js +27 -0
- package/dist/session/environment.js.map +1 -0
- package/dist/session/history.d.ts +3 -0
- package/dist/session/history.d.ts.map +1 -0
- package/dist/session/history.js +67 -0
- package/dist/session/history.js.map +1 -0
- package/dist/session/index.d.ts +10 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +9 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/serverData.d.ts +38 -0
- package/dist/session/serverData.d.ts.map +1 -0
- package/dist/session/serverData.js +241 -0
- package/dist/session/serverData.js.map +1 -0
- package/dist/tracking/Tracker.d.ts +55 -0
- package/dist/tracking/Tracker.d.ts.map +1 -0
- package/dist/tracking/Tracker.js +217 -0
- package/dist/tracking/Tracker.js.map +1 -0
- package/dist/tracking/index.d.ts +8 -0
- package/dist/tracking/index.d.ts.map +1 -0
- package/dist/tracking/index.js +8 -0
- package/dist/tracking/index.js.map +1 -0
- package/dist/tracking/schemas.d.ts +292 -0
- package/dist/tracking/schemas.d.ts.map +1 -0
- package/dist/tracking/schemas.js +91 -0
- package/dist/tracking/schemas.js.map +1 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/extractSetFlags.d.ts +6 -0
- package/dist/utils/extractSetFlags.d.ts.map +1 -0
- package/dist/utils/extractSetFlags.js +16 -0
- package/dist/utils/extractSetFlags.js.map +1 -0
- package/dist/utils/formatTimeAgo.d.ts +2 -0
- package/dist/utils/formatTimeAgo.d.ts.map +1 -0
- package/dist/utils/formatTimeAgo.js +20 -0
- package/dist/utils/formatTimeAgo.js.map +1 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/machineId.d.ts +14 -0
- package/dist/utils/machineId.d.ts.map +1 -0
- package/dist/utils/machineId.js +66 -0
- package/dist/utils/machineId.js.map +1 -0
- package/dist/utils/pathUtils.d.ts +22 -0
- package/dist/utils/pathUtils.d.ts.map +1 -0
- package/dist/utils/pathUtils.js +54 -0
- package/dist/utils/pathUtils.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const READ_TOOLS = new Set([
|
|
2
|
+
'read_files', 'list_files_in_directories', 'list_allowed_directories',
|
|
3
|
+
'directory_tree', 'get_file_info', 'stat',
|
|
4
|
+
'grep', 'glob', 'ls', 'cat', 'head', 'tail', 'ripgrep_search', 'ripgrep_file_types',
|
|
5
|
+
'git_status', 'git_diff_unstaged', 'git_diff_staged', 'git_diff', 'git_diff_files', 'git_log', 'git_show',
|
|
6
|
+
]);
|
|
7
|
+
export const READ_ONLY_TOOLS = "read_only_tools";
|
|
8
|
+
export function getToolGroup(toolName) {
|
|
9
|
+
if (READ_TOOLS.has(toolName)) {
|
|
10
|
+
return READ_ONLY_TOOLS;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function isUniqueServer(serverId) {
|
|
14
|
+
const uniqueServerIds = new Set([
|
|
15
|
+
'filesystem', 'ripgrep', 'git', 'shell'
|
|
16
|
+
]);
|
|
17
|
+
return uniqueServerIds.has(serverId.toLowerCase());
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=approvedTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvedTools.js","sourceRoot":"","sources":["../../src/mcp/approvedTools.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,YAAY,EAAE,2BAA2B,EAAE,0BAA0B;IACrE,gBAAgB,EAAE,eAAe,EAAE,MAAM;IACzC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB;IACnF,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU;CAC1G,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEhD,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC9B,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO;KACxC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
|
2
|
+
import { JSONRPCRequest, Tool, JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
export type BuiltinTool = Tool & {
|
|
4
|
+
autoApproved?: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Base interface for tool registration and execution
|
|
8
|
+
*/
|
|
9
|
+
export interface InternalMCPBaseServer {
|
|
10
|
+
/**
|
|
11
|
+
* Name of the server
|
|
12
|
+
*/
|
|
13
|
+
name: string;
|
|
14
|
+
/**
|
|
15
|
+
* Version of the server
|
|
16
|
+
* @example "1.0.0"
|
|
17
|
+
*/
|
|
18
|
+
version: string;
|
|
19
|
+
/**
|
|
20
|
+
* Initializes the server
|
|
21
|
+
* @returns Promise that resolves when the server is initialized
|
|
22
|
+
* @throws Error if initialization fails
|
|
23
|
+
* @remarks This method is optional and can be used to perform any necessary setup
|
|
24
|
+
* before the server is ready to execute tools
|
|
25
|
+
*/
|
|
26
|
+
initialize(): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Lists all available tools with their metadata and input schemas
|
|
29
|
+
*
|
|
30
|
+
* @returns Promise containing an array of registered tools
|
|
31
|
+
*/
|
|
32
|
+
listTools(): Promise<{
|
|
33
|
+
tools: BuiltinTool[];
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Executes a specific tool with provided arguments
|
|
37
|
+
*
|
|
38
|
+
* @param request Object containing tool name and arguments
|
|
39
|
+
* @param request.name Name of the tool to execute
|
|
40
|
+
* @param request.arguments Arguments for the tool execution
|
|
41
|
+
* @returns Promise containing the tool's execution result
|
|
42
|
+
* @throws Error if tool is not found or execution fails
|
|
43
|
+
*/
|
|
44
|
+
callTool(request: {
|
|
45
|
+
name: string;
|
|
46
|
+
arguments: Record<string, any>;
|
|
47
|
+
}, extra?: {
|
|
48
|
+
progressToken?: string;
|
|
49
|
+
reportProgress?: (payload: any) => void;
|
|
50
|
+
}): Promise<unknown>;
|
|
51
|
+
/**
|
|
52
|
+
* Checks if a tool should be auto-approved based on its arguments
|
|
53
|
+
* This is an optional method that servers can implement for argument-based approval
|
|
54
|
+
*
|
|
55
|
+
* @param toolName Name of the tool
|
|
56
|
+
* @param args Arguments for the tool
|
|
57
|
+
* @returns True if the tool should be auto-approved with these arguments
|
|
58
|
+
*/
|
|
59
|
+
isToolAutoApprovedForArgs?(toolName: string, args: Record<string, any>): boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Transport implementation that delegates to InternalTransport
|
|
63
|
+
*/
|
|
64
|
+
export declare class InternalTransport implements Transport {
|
|
65
|
+
private readonly internalMCPBaseServer;
|
|
66
|
+
private messageCounter;
|
|
67
|
+
onerror?: (error: Error) => void;
|
|
68
|
+
onclose?: () => void;
|
|
69
|
+
onmessage?: (message: JSONRPCMessage) => void;
|
|
70
|
+
constructor(internalMCPBaseServer: InternalMCPBaseServer);
|
|
71
|
+
start(): Promise<void>;
|
|
72
|
+
send(message: JSONRPCRequest): Promise<any>;
|
|
73
|
+
close(): Promise<void>;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=baseServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseServer.d.ts","sourceRoot":"","sources":["../../src/mcp/baseServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAG1F,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC,CAAC;IAE/C;;;;;;;;OAQG;IACH,QAAQ,CACN,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,EACzD,KAAK,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,GAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;;OAOG;IACH,yBAAyB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;CAClF;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IASrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IARlD,OAAO,CAAC,cAAc,CAAK;IAGpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAE5B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAEjB,qBAAqB,EAAE,qBAAqB;IAEnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IA+F3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport implementation that delegates to InternalTransport
|
|
3
|
+
*/
|
|
4
|
+
export class InternalTransport {
|
|
5
|
+
internalMCPBaseServer;
|
|
6
|
+
messageCounter = 0;
|
|
7
|
+
// Using the exact message type from the SDK
|
|
8
|
+
onerror;
|
|
9
|
+
onclose;
|
|
10
|
+
onmessage;
|
|
11
|
+
constructor(internalMCPBaseServer) {
|
|
12
|
+
this.internalMCPBaseServer = internalMCPBaseServer;
|
|
13
|
+
}
|
|
14
|
+
async start() {
|
|
15
|
+
// No initialization needed
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
async send(message) {
|
|
19
|
+
try {
|
|
20
|
+
const id = message.id ?? ++this.messageCounter;
|
|
21
|
+
let result;
|
|
22
|
+
switch (message.method) {
|
|
23
|
+
case "initialize": {
|
|
24
|
+
const initialized = await this.internalMCPBaseServer.initialize();
|
|
25
|
+
if (!initialized) {
|
|
26
|
+
this.onmessage?.({
|
|
27
|
+
jsonrpc: "2.0",
|
|
28
|
+
id,
|
|
29
|
+
result: undefined,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.onmessage?.({
|
|
34
|
+
jsonrpc: "2.0",
|
|
35
|
+
id,
|
|
36
|
+
result: {
|
|
37
|
+
protocolVersion: "2024-11-05",
|
|
38
|
+
capabilities: {
|
|
39
|
+
tools: {},
|
|
40
|
+
},
|
|
41
|
+
serverInfo: {
|
|
42
|
+
name: this.internalMCPBaseServer.name,
|
|
43
|
+
version: this.internalMCPBaseServer.version,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return Promise.resolve();
|
|
49
|
+
}
|
|
50
|
+
case "tools/list": {
|
|
51
|
+
result = await this.internalMCPBaseServer.listTools();
|
|
52
|
+
this.onmessage?.({
|
|
53
|
+
jsonrpc: "2.0",
|
|
54
|
+
id,
|
|
55
|
+
result: result,
|
|
56
|
+
});
|
|
57
|
+
return Promise.resolve();
|
|
58
|
+
}
|
|
59
|
+
case "tools/call": {
|
|
60
|
+
if (!message.params || typeof message.params !== "object") {
|
|
61
|
+
throw new Error("Invalid parameters for tools/call");
|
|
62
|
+
}
|
|
63
|
+
// Extract progress token from _meta and provide a reportProgress helper
|
|
64
|
+
const params = message.params;
|
|
65
|
+
const _meta = params?._meta || {};
|
|
66
|
+
const progressToken = _meta.progressToken || undefined;
|
|
67
|
+
const reportProgress = (payload) => {
|
|
68
|
+
if (!progressToken)
|
|
69
|
+
return; // no token, no progress routing
|
|
70
|
+
try {
|
|
71
|
+
this.onmessage?.({
|
|
72
|
+
jsonrpc: "2.0",
|
|
73
|
+
method: "notifications/progress",
|
|
74
|
+
params: {
|
|
75
|
+
progressToken,
|
|
76
|
+
progress: payload,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch { }
|
|
81
|
+
};
|
|
82
|
+
result = await this.internalMCPBaseServer.callTool(params, { progressToken, reportProgress });
|
|
83
|
+
this.onmessage?.({
|
|
84
|
+
jsonrpc: "2.0",
|
|
85
|
+
id,
|
|
86
|
+
result: result,
|
|
87
|
+
});
|
|
88
|
+
return Promise.resolve();
|
|
89
|
+
}
|
|
90
|
+
default:
|
|
91
|
+
throw new Error(`Unsupported method: ${message.method}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (error instanceof Error) {
|
|
96
|
+
this.onerror?.(error);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.onerror?.(new Error("Unknown error occurred"));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async close() {
|
|
104
|
+
this.onclose?.();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=baseServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseServer.js","sourceRoot":"","sources":["../../src/mcp/baseServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ServerConfig } from "./types.js";
|
|
2
|
+
import { InternalMCPBaseServer } from "./baseServer.js";
|
|
3
|
+
export declare class BuiltInServers {
|
|
4
|
+
private readonly servers;
|
|
5
|
+
private readonly serversInstances;
|
|
6
|
+
private validatedDirectories;
|
|
7
|
+
constructor();
|
|
8
|
+
private registerServer;
|
|
9
|
+
getServers(): Promise<ServerConfig[]>;
|
|
10
|
+
getValidatedDirectories(): string[];
|
|
11
|
+
getBuiltInServer(serverId: string): InternalMCPBaseServer | undefined;
|
|
12
|
+
private updateFilesystemServer;
|
|
13
|
+
private registerBuiltInServers;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=builtinServers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtinServers.d.ts","sourceRoot":"","sources":["../../src/mcp/builtinServers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AASxC,OAAO,EAAC,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAItD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAC9E,OAAO,CAAC,oBAAoB,CAA6B;;IAMzD,OAAO,CAAC,cAAc;IAIT,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAc3C,uBAAuB,IAAI,MAAM,EAAE;IAInC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;YAO9D,sBAAsB;IA6DpC,OAAO,CAAC,sBAAsB;CAyD/B"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { serverTypes } from "./serversRegistry.js";
|
|
2
|
+
import { DynamicBEMCPServer } from "./dynamicBEServer.js";
|
|
3
|
+
import { RipgrepServerEnhanced } from "./servers/ripgrep.js";
|
|
4
|
+
import { FilesystemServerEnhanced } from "./servers/filesystem.js";
|
|
5
|
+
import { GitServerEnhanced } from "./servers/git.js";
|
|
6
|
+
import { GerritServerEnhanced } from "./servers/gerrit.js";
|
|
7
|
+
import { ShellServerEnhanced } from "./servers/shell.js";
|
|
8
|
+
import * as process from "node:process";
|
|
9
|
+
import { SessionContext } from "../session/index.js";
|
|
10
|
+
import { canonicalizePathSync } from "../utils/index.js";
|
|
11
|
+
export class BuiltInServers {
|
|
12
|
+
servers = [];
|
|
13
|
+
serversInstances = {};
|
|
14
|
+
validatedDirectories = [process.cwd()];
|
|
15
|
+
constructor() {
|
|
16
|
+
this.registerBuiltInServers();
|
|
17
|
+
}
|
|
18
|
+
registerServer(config) {
|
|
19
|
+
this.servers.push(config);
|
|
20
|
+
}
|
|
21
|
+
async getServers() {
|
|
22
|
+
// If additional directories are provided, recreate the filesystem server with updated allowed directories
|
|
23
|
+
try {
|
|
24
|
+
const sessionContext = SessionContext.getInstance();
|
|
25
|
+
const additionalAllowedDirectories = sessionContext.getProjectRootPaths();
|
|
26
|
+
if (additionalAllowedDirectories && additionalAllowedDirectories.length > 0) {
|
|
27
|
+
await this.updateFilesystemServer(additionalAllowedDirectories);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// SessionContext not initialized yet (e.g., in-process SDK early init); use defaults
|
|
32
|
+
}
|
|
33
|
+
return this.servers;
|
|
34
|
+
}
|
|
35
|
+
getValidatedDirectories() {
|
|
36
|
+
return this.validatedDirectories;
|
|
37
|
+
}
|
|
38
|
+
getBuiltInServer(serverId) {
|
|
39
|
+
if (this.serversInstances[serverId]) {
|
|
40
|
+
return this.serversInstances[serverId];
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
async updateFilesystemServer(additionalAllowedDirectories) {
|
|
45
|
+
// Find and update the filesystem server
|
|
46
|
+
const filesystemServerIndex = this.servers.findIndex(server => server.id === "filesystem");
|
|
47
|
+
if (filesystemServerIndex !== -1) {
|
|
48
|
+
const fs = await import('fs');
|
|
49
|
+
// Prefer the session's execution CWD and project root paths when available.
|
|
50
|
+
// This ensures SDK-created sessions that set an explicit cwd/projectRoots
|
|
51
|
+
// get consistent behavior across filesystem, shell, ripgrep, and git tools.
|
|
52
|
+
let candidateDirs;
|
|
53
|
+
try {
|
|
54
|
+
const sessionContext = SessionContext.getInstance();
|
|
55
|
+
const execCwd = sessionContext?.getExecutionCwd?.();
|
|
56
|
+
const projectRoots = sessionContext.getProjectRootPaths();
|
|
57
|
+
candidateDirs = [
|
|
58
|
+
// 1) Explicit execution cwd (SDK `cwd` option), if set
|
|
59
|
+
...(execCwd ? [execCwd] : []),
|
|
60
|
+
// 2) Current process cwd (preserves existing CLI semantics when execCwd is not set)
|
|
61
|
+
process.cwd(),
|
|
62
|
+
// 3) All project roots from the session
|
|
63
|
+
...projectRoots,
|
|
64
|
+
// 4) Any additional directories passed in (for backward compatibility)
|
|
65
|
+
...additionalAllowedDirectories,
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// SessionContext not initialized (e.g., very early init). Fall back to cwd + additional dirs.
|
|
70
|
+
candidateDirs = [process.cwd(), ...additionalAllowedDirectories];
|
|
71
|
+
}
|
|
72
|
+
// Validate access to each directory and de-duplicate while preserving order
|
|
73
|
+
const validatedDirectories = [];
|
|
74
|
+
for (const dir of candidateDirs) {
|
|
75
|
+
try {
|
|
76
|
+
// Canonicalize to collapse aliases like Windows `subst` drives and
|
|
77
|
+
// normalize drive letters so the list is stable regardless of how
|
|
78
|
+
// paths are expressed.
|
|
79
|
+
const resolvedDir = canonicalizePathSync(dir);
|
|
80
|
+
if (validatedDirectories.includes(resolvedDir)) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
await fs.promises.access(resolvedDir, fs.constants.R_OK);
|
|
84
|
+
validatedDirectories.push(resolvedDir);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.warn(`Warning: Directory ${dir} is not accessible and will be skipped:`, error instanceof Error ? error.message : String(error));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Create new filesystem server with validated allowed directories
|
|
91
|
+
const filesystemServer = new FilesystemServerEnhanced(validatedDirectories);
|
|
92
|
+
this.validatedDirectories = validatedDirectories;
|
|
93
|
+
this.servers[filesystemServerIndex] = {
|
|
94
|
+
id: "filesystem",
|
|
95
|
+
type: serverTypes.BUILTIN,
|
|
96
|
+
command: serverTypes.BUILTIN,
|
|
97
|
+
serverClass: new DynamicBEMCPServer("filesystem", [], filesystemServer),
|
|
98
|
+
};
|
|
99
|
+
this.serversInstances["filesystem"] = filesystemServer;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
registerBuiltInServers() {
|
|
103
|
+
// Register enhanced ripgrep server with bundled binary support
|
|
104
|
+
const ripgrepServer = new RipgrepServerEnhanced();
|
|
105
|
+
this.registerServer({
|
|
106
|
+
id: "ripgrep",
|
|
107
|
+
type: serverTypes.BUILTIN,
|
|
108
|
+
command: serverTypes.BUILTIN,
|
|
109
|
+
serverClass: new DynamicBEMCPServer("ripgrep", [], ripgrepServer),
|
|
110
|
+
});
|
|
111
|
+
this.serversInstances["ripgrep"] = ripgrepServer;
|
|
112
|
+
// Register enhanced filesystem server
|
|
113
|
+
// Get allowed directories from current working directory by default
|
|
114
|
+
const allowedDirectories = [canonicalizePathSync(process.cwd())];
|
|
115
|
+
const filesystemServer = new FilesystemServerEnhanced(allowedDirectories);
|
|
116
|
+
this.registerServer({
|
|
117
|
+
id: "filesystem",
|
|
118
|
+
type: serverTypes.BUILTIN,
|
|
119
|
+
command: serverTypes.BUILTIN,
|
|
120
|
+
serverClass: new DynamicBEMCPServer("filesystem", [], filesystemServer),
|
|
121
|
+
});
|
|
122
|
+
this.serversInstances["filesystem"] = filesystemServer;
|
|
123
|
+
// Register enhanced git server
|
|
124
|
+
const gitServer = new GitServerEnhanced();
|
|
125
|
+
this.registerServer({
|
|
126
|
+
id: "git",
|
|
127
|
+
type: serverTypes.BUILTIN,
|
|
128
|
+
command: serverTypes.BUILTIN,
|
|
129
|
+
serverClass: new DynamicBEMCPServer("git", [], gitServer),
|
|
130
|
+
});
|
|
131
|
+
this.serversInstances["git"] = gitServer;
|
|
132
|
+
// Register enhanced shell server
|
|
133
|
+
const shellServer = new ShellServerEnhanced();
|
|
134
|
+
this.registerServer({
|
|
135
|
+
id: "shell",
|
|
136
|
+
type: serverTypes.BUILTIN,
|
|
137
|
+
command: serverTypes.BUILTIN,
|
|
138
|
+
serverClass: new DynamicBEMCPServer("shell", [], shellServer),
|
|
139
|
+
});
|
|
140
|
+
this.serversInstances["shell"] = shellServer;
|
|
141
|
+
if (process.env.QODO_MODE?.toLowerCase() === 'gerrit') {
|
|
142
|
+
const gerritServer = new GerritServerEnhanced();
|
|
143
|
+
this.registerServer({
|
|
144
|
+
id: "gerrit",
|
|
145
|
+
type: serverTypes.BUILTIN,
|
|
146
|
+
command: serverTypes.BUILTIN,
|
|
147
|
+
serverClass: new DynamicBEMCPServer("gerrit", [], gerritServer),
|
|
148
|
+
});
|
|
149
|
+
this.serversInstances["gerrit"] = gerritServer;
|
|
150
|
+
}
|
|
151
|
+
// Note: SubAgents server is CLI-only and not available in the SDK package.
|
|
152
|
+
// Use the Qodo CLI with --subagents flag for multi-agent orchestration.
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=builtinServers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtinServers.js","sourceRoot":"","sources":["../../src/mcp/builtinServers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { BuiltinTool, InternalMCPBaseServer } from "./baseServer.js";
|
|
3
|
+
export declare class DynamicBEMCPServer implements InternalMCPBaseServer {
|
|
4
|
+
private readonly tools;
|
|
5
|
+
private readonly internalServer?;
|
|
6
|
+
version: string;
|
|
7
|
+
name: string;
|
|
8
|
+
constructor(name: string, tools: Tool[], internalServer?: InternalMCPBaseServer);
|
|
9
|
+
listAutoApprovedTools(): Promise<string[]>;
|
|
10
|
+
initialize(): Promise<boolean>;
|
|
11
|
+
listTools(): Promise<{
|
|
12
|
+
tools: BuiltinTool[];
|
|
13
|
+
}>;
|
|
14
|
+
callTool(request: {
|
|
15
|
+
name: string;
|
|
16
|
+
arguments: Record<string, any>;
|
|
17
|
+
}): Promise<unknown>;
|
|
18
|
+
isToolAutoApprovedForArgs(toolName: string, args: Record<string, any>): boolean;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=dynamicBEServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicBEServer.d.ts","sourceRoot":"","sources":["../../src/mcp/dynamicBEServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAErE,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAwB;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,EAAE,qBAAqB;IAgB/E,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIpC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAO9B,SAAS,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAS9C,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ3F,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;CAMhF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export class DynamicBEMCPServer {
|
|
2
|
+
tools = [];
|
|
3
|
+
internalServer;
|
|
4
|
+
version;
|
|
5
|
+
name;
|
|
6
|
+
constructor(name, tools, internalServer) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.version = "1.0.0";
|
|
9
|
+
this.internalServer = internalServer;
|
|
10
|
+
if (internalServer) {
|
|
11
|
+
// Tools will be loaded from the internal server
|
|
12
|
+
this.tools = [];
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
this.tools = tools.map((tool) => ({
|
|
16
|
+
...tool,
|
|
17
|
+
autoApproved: true,
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
listAutoApprovedTools() {
|
|
22
|
+
throw new Error("Method not implemented.");
|
|
23
|
+
}
|
|
24
|
+
async initialize() {
|
|
25
|
+
if (this.internalServer) {
|
|
26
|
+
return await this.internalServer.initialize();
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
async listTools() {
|
|
31
|
+
if (this.internalServer) {
|
|
32
|
+
return await this.internalServer.listTools();
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
tools: this.tools,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async callTool(request) {
|
|
39
|
+
if (this.internalServer) {
|
|
40
|
+
return await this.internalServer.callTool(request);
|
|
41
|
+
}
|
|
42
|
+
// Implementation left empty as requested
|
|
43
|
+
throw new Error("Method not implemented.");
|
|
44
|
+
}
|
|
45
|
+
isToolAutoApprovedForArgs(toolName, args) {
|
|
46
|
+
if (this.internalServer && this.internalServer.isToolAutoApprovedForArgs) {
|
|
47
|
+
return this.internalServer.isToolAutoApprovedForArgs(toolName, args);
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=dynamicBEServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicBEServer.js","sourceRoot":"","sources":["../../src/mcp/dynamicBEServer.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBAAkB;IACZ,KAAK,GAAkB,EAAE,CAAC;IAC1B,cAAc,CAAyB;IACxD,OAAO,CAAS;IAChB,IAAI,CAAS;IAEb,YAAY,IAAY,EAAE,KAAa,EAAE,cAAsC;QAC7E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,cAAc,EAAE,CAAC;YACnB,gDAAgD;YAChD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,GAAG,IAAI;gBACP,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAyD;QACtE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QACD,yCAAyC;QACzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,yBAAyB,CAAC,QAAgB,EAAE,IAAyB;QACnE,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP (Model Context Protocol) server management
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export { ServerRegistry, serverTypes, ConfigValidationError } from './serversRegistry.js';
|
|
6
|
+
export { mcpInitialization } from './mcpInitialization.js';
|
|
7
|
+
export { BuiltInServers } from './builtinServers.js';
|
|
8
|
+
export { ToolProcessorManager, toolProcessorManager } from './toolProcessor.js';
|
|
9
|
+
export type { ToolProcessor } from './toolProcessor.js';
|
|
10
|
+
export type { ServerConfig, MCPServer, MCPServers, MCPTool, ConnectionState, } from './types.js';
|
|
11
|
+
export type { InternalMCPBaseServer, BuiltinTool } from './baseServer.js';
|
|
12
|
+
export { InternalTransport } from './baseServer.js';
|
|
13
|
+
export { READ_ONLY_TOOLS, getToolGroup, isUniqueServer } from './approvedTools.js';
|
|
14
|
+
export { FilesystemServerEnhanced } from './servers/filesystem.js';
|
|
15
|
+
export { GitServerEnhanced } from './servers/git.js';
|
|
16
|
+
export { GerritServerEnhanced } from './servers/gerrit.js';
|
|
17
|
+
export { RipgrepServerEnhanced } from './servers/ripgrep.js';
|
|
18
|
+
export { ShellServerEnhanced } from './servers/shell.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,OAAO,EACP,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP (Model Context Protocol) server management
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
// Main manager
|
|
6
|
+
export { MCPManager, ClientInitializationError } from './MCPManager.js';
|
|
7
|
+
// Server registry
|
|
8
|
+
export { ServerRegistry, serverTypes, ConfigValidationError } from './serversRegistry.js';
|
|
9
|
+
// MCP initialization
|
|
10
|
+
export { mcpInitialization } from './mcpInitialization.js';
|
|
11
|
+
// Built-in servers
|
|
12
|
+
export { BuiltInServers } from './builtinServers.js';
|
|
13
|
+
// Tool processor (moved from api/)
|
|
14
|
+
export { ToolProcessorManager, toolProcessorManager } from './toolProcessor.js';
|
|
15
|
+
export { InternalTransport } from './baseServer.js';
|
|
16
|
+
// Approval helpers
|
|
17
|
+
export { READ_ONLY_TOOLS, getToolGroup, isUniqueServer } from './approvedTools.js';
|
|
18
|
+
// Server implementations
|
|
19
|
+
export { FilesystemServerEnhanced } from './servers/filesystem.js';
|
|
20
|
+
export { GitServerEnhanced } from './servers/git.js';
|
|
21
|
+
export { GerritServerEnhanced } from './servers/gerrit.js';
|
|
22
|
+
export { RipgrepServerEnhanced } from './servers/ripgrep.js';
|
|
23
|
+
export { ShellServerEnhanced } from './servers/shell.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAExE,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE1F,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,mCAAmC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAchF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnF,yBAAyB;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpInitialization.d.ts","sourceRoot":"","sources":["../../src/mcp/mcpInitialization.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB,GAAU,QAAQ,OAAO,kBAwCtD,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { MCPManager } from "./MCPManager.js";
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { getCurrentEnvironment } from '../session/index.js';
|
|
4
|
+
function shouldSdkLog() {
|
|
5
|
+
const env = getCurrentEnvironment();
|
|
6
|
+
// In SDK mode we are silent by default unless explicitly enabled.
|
|
7
|
+
if (env?.sdkMode) {
|
|
8
|
+
return !!env.sdkDebug || process.env.QODO_DEBUG === 'true';
|
|
9
|
+
}
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
function sdkLog(...args) {
|
|
13
|
+
if (shouldSdkLog()) {
|
|
14
|
+
// eslint-disable-next-line no-console
|
|
15
|
+
console.log(...args);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export const mcpInitialization = async (force) => {
|
|
19
|
+
sdkLog('Initializing MCP Servers...');
|
|
20
|
+
await MCPManager.init(force);
|
|
21
|
+
const manager = MCPManager.getInstance();
|
|
22
|
+
const connectionStates = manager.getConnectionStates();
|
|
23
|
+
const failedServers = [];
|
|
24
|
+
const successfulServers = [];
|
|
25
|
+
connectionStates.forEach((state, serverId) => {
|
|
26
|
+
if (state.status === 'failed') {
|
|
27
|
+
failedServers.push(serverId);
|
|
28
|
+
}
|
|
29
|
+
else if (state.status === 'connected') {
|
|
30
|
+
successfulServers.push(serverId);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
// Display sandbox warning if enabled
|
|
34
|
+
const sandboxMode = process.env.QODO_SHELL_SANDBOX;
|
|
35
|
+
if (sandboxMode && sandboxMode !== 'off') {
|
|
36
|
+
if (sandboxMode === 'permissive' || sandboxMode === 'restrictive') {
|
|
37
|
+
sdkLog(`Shell sandbox mode: ${sandboxMode}`);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
sdkLog(`Shell sandbox mode: custom profile (${path.basename(sandboxMode)})`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (successfulServers.length > 0) {
|
|
44
|
+
sdkLog(`Successfully initialized ${successfulServers.length} MCP Servers: [${successfulServers.join(', ')}]`);
|
|
45
|
+
}
|
|
46
|
+
if (failedServers.length > 0) {
|
|
47
|
+
failedServers.forEach(serverId => {
|
|
48
|
+
const state = connectionStates.get(serverId);
|
|
49
|
+
if (state?.errorMessage) {
|
|
50
|
+
sdkLog(`\nMCP server "${serverId}": ${state.errorMessage.split('\n')[0]}`);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
sdkLog('These servers will be unavailable during this session.');
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=mcpInitialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpInitialization.js","sourceRoot":"","sources":["../../src/mcp/mcpInitialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC;IACpC,kEAAkE;IAClE,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,MAAM,CAAC,GAAG,IAAW;IAC5B,IAAI,YAAY,EAAE,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAe,EAAE,EAAE;IACzD,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACtC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAEvD,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACxC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACnD,IAAI,WAAW,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QACzC,IAAI,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;YAClE,MAAM,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,uCAAuC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,4BAA4B,iBAAiB,CAAC,MAAM,kBAAkB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC/G,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,KAAK,EAAE,YAAY,EAAE,CAAC;gBACxB,MAAM,CAAC,iBAAiB,QAAQ,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,wDAAwD,CAAC,CAAC;IACnE,CAAC;AACH,CAAC,CAAC"}
|