grok-cli-hurry-mode 1.0.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/.grok/settings.json +3 -0
- package/LICENSE +21 -0
- package/README.md +452 -0
- package/dist/agent/grok-agent.d.ts +54 -0
- package/dist/agent/grok-agent.js +674 -0
- package/dist/agent/grok-agent.js.map +1 -0
- package/dist/agent/index.d.ts +14 -0
- package/dist/agent/index.js +137 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +245 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/grok/client.d.ts +49 -0
- package/dist/grok/client.js +85 -0
- package/dist/grok/client.js.map +1 -0
- package/dist/grok/tools.d.ts +8 -0
- package/dist/grok/tools.js +357 -0
- package/dist/grok/tools.js.map +1 -0
- package/dist/hooks/use-enhanced-input.d.ts +37 -0
- package/dist/hooks/use-enhanced-input.js +217 -0
- package/dist/hooks/use-enhanced-input.js.map +1 -0
- package/dist/hooks/use-input-handler.d.ts +34 -0
- package/dist/hooks/use-input-handler.js +611 -0
- package/dist/hooks/use-input-handler.js.map +1 -0
- package/dist/hooks/use-input-history.d.ts +9 -0
- package/dist/hooks/use-input-history.js +64 -0
- package/dist/hooks/use-input-history.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +151949 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/client.d.ts +29 -0
- package/dist/mcp/client.js +167 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config.d.ts +13 -0
- package/dist/mcp/config.js +51 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/transports.d.ts +51 -0
- package/dist/mcp/transports.js +229 -0
- package/dist/mcp/transports.js.map +1 -0
- package/dist/node_modules/react/index.js +1841 -0
- package/dist/tools/bash.d.ts +10 -0
- package/dist/tools/bash.js +81 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/confirmation-tool.d.ts +16 -0
- package/dist/tools/confirmation-tool.js +75 -0
- package/dist/tools/confirmation-tool.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/morph-editor.d.ts +36 -0
- package/dist/tools/morph-editor.js +347 -0
- package/dist/tools/morph-editor.js.map +1 -0
- package/dist/tools/search.d.ts +69 -0
- package/dist/tools/search.js +341 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/text-editor.d.ts +16 -0
- package/dist/tools/text-editor.js +565 -0
- package/dist/tools/text-editor.js.map +1 -0
- package/dist/tools/todo-tool.d.ts +20 -0
- package/dist/tools/todo-tool.js +135 -0
- package/dist/tools/todo-tool.js.map +1 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/app.d.ts +7 -0
- package/dist/ui/app.js +160 -0
- package/dist/ui/app.js.map +1 -0
- package/dist/ui/components/api-key-input.d.ts +7 -0
- package/dist/ui/components/api-key-input.js +124 -0
- package/dist/ui/components/api-key-input.js.map +1 -0
- package/dist/ui/components/chat-history.d.ts +8 -0
- package/dist/ui/components/chat-history.js +177 -0
- package/dist/ui/components/chat-history.js.map +1 -0
- package/dist/ui/components/chat-input.d.ts +9 -0
- package/dist/ui/components/chat-input.js +87 -0
- package/dist/ui/components/chat-input.js.map +1 -0
- package/dist/ui/components/chat-interface.d.ts +8 -0
- package/dist/ui/components/chat-interface.js +344 -0
- package/dist/ui/components/chat-interface.js.map +1 -0
- package/dist/ui/components/command-suggestions.d.ts +17 -0
- package/dist/ui/components/command-suggestions.js +68 -0
- package/dist/ui/components/command-suggestions.js.map +1 -0
- package/dist/ui/components/confirmation-dialog.d.ts +11 -0
- package/dist/ui/components/confirmation-dialog.js +167 -0
- package/dist/ui/components/confirmation-dialog.js.map +1 -0
- package/dist/ui/components/diff-renderer.d.ts +13 -0
- package/dist/ui/components/diff-renderer.js +217 -0
- package/dist/ui/components/diff-renderer.js.map +1 -0
- package/dist/ui/components/loading-spinner.d.ts +8 -0
- package/dist/ui/components/loading-spinner.js +92 -0
- package/dist/ui/components/loading-spinner.js.map +1 -0
- package/dist/ui/components/mcp-status.d.ts +5 -0
- package/dist/ui/components/mcp-status.js +74 -0
- package/dist/ui/components/mcp-status.js.map +1 -0
- package/dist/ui/components/model-selection.d.ts +12 -0
- package/dist/ui/components/model-selection.js +28 -0
- package/dist/ui/components/model-selection.js.map +1 -0
- package/dist/ui/shared/max-sized-box.d.ts +8 -0
- package/dist/ui/shared/max-sized-box.js +15 -0
- package/dist/ui/shared/max-sized-box.js.map +1 -0
- package/dist/ui/utils/code-colorizer.d.ts +2 -0
- package/dist/ui/utils/code-colorizer.js +18 -0
- package/dist/ui/utils/code-colorizer.js.map +1 -0
- package/dist/ui/utils/colors.d.ts +14 -0
- package/dist/ui/utils/colors.js +18 -0
- package/dist/ui/utils/colors.js.map +1 -0
- package/dist/ui/utils/markdown-renderer.d.ts +4 -0
- package/dist/ui/utils/markdown-renderer.js +29 -0
- package/dist/ui/utils/markdown-renderer.js.map +1 -0
- package/dist/utils/confirmation-service.d.ts +33 -0
- package/dist/utils/confirmation-service.js +113 -0
- package/dist/utils/confirmation-service.js.map +1 -0
- package/dist/utils/custom-instructions.d.ts +1 -0
- package/dist/utils/custom-instructions.js +53 -0
- package/dist/utils/custom-instructions.js.map +1 -0
- package/dist/utils/model-config.d.ts +28 -0
- package/dist/utils/model-config.js +49 -0
- package/dist/utils/model-config.js.map +1 -0
- package/dist/utils/settings-manager.d.ts +94 -0
- package/dist/utils/settings-manager.js +275 -0
- package/dist/utils/settings-manager.js.map +1 -0
- package/dist/utils/settings.d.ts +1 -0
- package/dist/utils/settings.js +8 -0
- package/dist/utils/settings.js.map +1 -0
- package/dist/utils/text-utils.d.ts +80 -0
- package/dist/utils/text-utils.js +197 -0
- package/dist/utils/text-utils.js.map +1 -0
- package/dist/utils/token-counter.d.ts +33 -0
- package/dist/utils/token-counter.js +83 -0
- package/dist/utils/token-counter.js.map +1 -0
- package/dist/yoga.wasm +0 -0
- package/eslint.config.mjs +28 -0
- package/fix.awk +41 -0
- package/grok-logo-screenshot.png +0 -0
- package/package.json +68 -0
- package/sed_cmd.sh +35 -0
- package/temp.txt +29 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
2
|
+
import { EventEmitter } from "events";
|
3
|
+
import { TransportType, TransportConfig } from "./transports.js";
|
4
|
+
export interface MCPServerConfig {
|
5
|
+
name: string;
|
6
|
+
transport: TransportConfig;
|
7
|
+
command?: string;
|
8
|
+
args?: string[];
|
9
|
+
env?: Record<string, string>;
|
10
|
+
}
|
11
|
+
export interface MCPTool {
|
12
|
+
name: string;
|
13
|
+
description: string;
|
14
|
+
inputSchema: any;
|
15
|
+
serverName: string;
|
16
|
+
}
|
17
|
+
export declare class MCPManager extends EventEmitter {
|
18
|
+
private clients;
|
19
|
+
private transports;
|
20
|
+
private tools;
|
21
|
+
addServer(config: MCPServerConfig): Promise<void>;
|
22
|
+
removeServer(serverName: string): Promise<void>;
|
23
|
+
callTool(toolName: string, arguments_: any): Promise<CallToolResult>;
|
24
|
+
getTools(): MCPTool[];
|
25
|
+
getServers(): string[];
|
26
|
+
shutdown(): Promise<void>;
|
27
|
+
getTransportType(serverName: string): TransportType | undefined;
|
28
|
+
ensureServersInitialized(): Promise<void>;
|
29
|
+
}
|
@@ -0,0 +1,167 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
36
|
+
exports.MCPManager = void 0;
|
37
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
38
|
+
const events_1 = require("events");
|
39
|
+
const transports_js_1 = require("./transports.js");
|
40
|
+
class MCPManager extends events_1.EventEmitter {
|
41
|
+
constructor() {
|
42
|
+
super(...arguments);
|
43
|
+
this.clients = new Map();
|
44
|
+
this.transports = new Map();
|
45
|
+
this.tools = new Map();
|
46
|
+
}
|
47
|
+
async addServer(config) {
|
48
|
+
try {
|
49
|
+
// Handle legacy stdio-only configuration
|
50
|
+
let transportConfig = config.transport;
|
51
|
+
if (!transportConfig && config.command) {
|
52
|
+
transportConfig = {
|
53
|
+
type: 'stdio',
|
54
|
+
command: config.command,
|
55
|
+
args: config.args,
|
56
|
+
env: config.env
|
57
|
+
};
|
58
|
+
}
|
59
|
+
if (!transportConfig) {
|
60
|
+
throw new Error('Transport configuration is required');
|
61
|
+
}
|
62
|
+
// Create transport
|
63
|
+
const transport = (0, transports_js_1.createTransport)(transportConfig);
|
64
|
+
this.transports.set(config.name, transport);
|
65
|
+
// Create client
|
66
|
+
const client = new index_js_1.Client({
|
67
|
+
name: "grok-cli",
|
68
|
+
version: "1.0.0"
|
69
|
+
}, {
|
70
|
+
capabilities: {
|
71
|
+
tools: {}
|
72
|
+
}
|
73
|
+
});
|
74
|
+
this.clients.set(config.name, client);
|
75
|
+
// Connect
|
76
|
+
const sdkTransport = await transport.connect();
|
77
|
+
await client.connect(sdkTransport);
|
78
|
+
// List available tools
|
79
|
+
const toolsResult = await client.listTools();
|
80
|
+
// Register tools
|
81
|
+
for (const tool of toolsResult.tools) {
|
82
|
+
const mcpTool = {
|
83
|
+
name: `mcp__${config.name}__${tool.name}`,
|
84
|
+
description: tool.description || `Tool from ${config.name} server`,
|
85
|
+
inputSchema: tool.inputSchema,
|
86
|
+
serverName: config.name
|
87
|
+
};
|
88
|
+
this.tools.set(mcpTool.name, mcpTool);
|
89
|
+
}
|
90
|
+
this.emit('serverAdded', config.name, toolsResult.tools.length);
|
91
|
+
}
|
92
|
+
catch (error) {
|
93
|
+
this.emit('serverError', config.name, error);
|
94
|
+
throw error;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
async removeServer(serverName) {
|
98
|
+
// Remove tools
|
99
|
+
for (const [toolName, tool] of this.tools.entries()) {
|
100
|
+
if (tool.serverName === serverName) {
|
101
|
+
this.tools.delete(toolName);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
// Disconnect client
|
105
|
+
const client = this.clients.get(serverName);
|
106
|
+
if (client) {
|
107
|
+
await client.close();
|
108
|
+
this.clients.delete(serverName);
|
109
|
+
}
|
110
|
+
// Close transport
|
111
|
+
const transport = this.transports.get(serverName);
|
112
|
+
if (transport) {
|
113
|
+
await transport.disconnect();
|
114
|
+
this.transports.delete(serverName);
|
115
|
+
}
|
116
|
+
this.emit('serverRemoved', serverName);
|
117
|
+
}
|
118
|
+
async callTool(toolName, arguments_) {
|
119
|
+
const tool = this.tools.get(toolName);
|
120
|
+
if (!tool) {
|
121
|
+
throw new Error(`Tool ${toolName} not found`);
|
122
|
+
}
|
123
|
+
const client = this.clients.get(tool.serverName);
|
124
|
+
if (!client) {
|
125
|
+
throw new Error(`Server ${tool.serverName} not connected`);
|
126
|
+
}
|
127
|
+
// Extract the original tool name (remove mcp__servername__ prefix)
|
128
|
+
const originalToolName = toolName.replace(`mcp__${tool.serverName}__`, '');
|
129
|
+
return await client.callTool({
|
130
|
+
name: originalToolName,
|
131
|
+
arguments: arguments_
|
132
|
+
});
|
133
|
+
}
|
134
|
+
getTools() {
|
135
|
+
return Array.from(this.tools.values());
|
136
|
+
}
|
137
|
+
getServers() {
|
138
|
+
return Array.from(this.clients.keys());
|
139
|
+
}
|
140
|
+
async shutdown() {
|
141
|
+
const serverNames = Array.from(this.clients.keys());
|
142
|
+
await Promise.all(serverNames.map(name => this.removeServer(name)));
|
143
|
+
}
|
144
|
+
getTransportType(serverName) {
|
145
|
+
const transport = this.transports.get(serverName);
|
146
|
+
return transport?.getType();
|
147
|
+
}
|
148
|
+
async ensureServersInitialized() {
|
149
|
+
if (this.clients.size > 0) {
|
150
|
+
return; // Already initialized
|
151
|
+
}
|
152
|
+
const { loadMCPConfig } = await Promise.resolve().then(() => __importStar(require('../mcp/config')));
|
153
|
+
const config = loadMCPConfig();
|
154
|
+
// Initialize servers in parallel to avoid blocking
|
155
|
+
const initPromises = config.servers.map(async (serverConfig) => {
|
156
|
+
try {
|
157
|
+
await this.addServer(serverConfig);
|
158
|
+
}
|
159
|
+
catch (error) {
|
160
|
+
console.warn(`Failed to initialize MCP server ${serverConfig.name}:`, error);
|
161
|
+
}
|
162
|
+
});
|
163
|
+
await Promise.all(initPromises);
|
164
|
+
}
|
165
|
+
}
|
166
|
+
exports.MCPManager = MCPManager;
|
167
|
+
//# 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,13 @@
|
|
1
|
+
import { MCPServerConfig } from "./client.js";
|
2
|
+
export interface MCPConfig {
|
3
|
+
servers: MCPServerConfig[];
|
4
|
+
}
|
5
|
+
/**
|
6
|
+
* Load MCP configuration from project settings
|
7
|
+
*/
|
8
|
+
export declare function loadMCPConfig(): MCPConfig;
|
9
|
+
export declare function saveMCPConfig(config: MCPConfig): void;
|
10
|
+
export declare function addMCPServer(config: MCPServerConfig): void;
|
11
|
+
export declare function removeMCPServer(serverName: string): void;
|
12
|
+
export declare function getMCPServer(serverName: string): MCPServerConfig | undefined;
|
13
|
+
export declare const PREDEFINED_SERVERS: Record<string, MCPServerConfig>;
|
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.PREDEFINED_SERVERS = void 0;
|
4
|
+
exports.loadMCPConfig = loadMCPConfig;
|
5
|
+
exports.saveMCPConfig = saveMCPConfig;
|
6
|
+
exports.addMCPServer = addMCPServer;
|
7
|
+
exports.removeMCPServer = removeMCPServer;
|
8
|
+
exports.getMCPServer = getMCPServer;
|
9
|
+
const settings_manager_js_1 = require("../utils/settings-manager.js");
|
10
|
+
/**
|
11
|
+
* Load MCP configuration from project settings
|
12
|
+
*/
|
13
|
+
function loadMCPConfig() {
|
14
|
+
const manager = (0, settings_manager_js_1.getSettingsManager)();
|
15
|
+
const projectSettings = manager.loadProjectSettings();
|
16
|
+
const servers = projectSettings.mcpServers ? Object.values(projectSettings.mcpServers) : [];
|
17
|
+
return { servers };
|
18
|
+
}
|
19
|
+
function saveMCPConfig(config) {
|
20
|
+
const manager = (0, settings_manager_js_1.getSettingsManager)();
|
21
|
+
const mcpServers = {};
|
22
|
+
// Convert servers array to object keyed by name
|
23
|
+
for (const server of config.servers) {
|
24
|
+
mcpServers[server.name] = server;
|
25
|
+
}
|
26
|
+
manager.updateProjectSetting('mcpServers', mcpServers);
|
27
|
+
}
|
28
|
+
function addMCPServer(config) {
|
29
|
+
const manager = (0, settings_manager_js_1.getSettingsManager)();
|
30
|
+
const projectSettings = manager.loadProjectSettings();
|
31
|
+
const mcpServers = projectSettings.mcpServers || {};
|
32
|
+
mcpServers[config.name] = config;
|
33
|
+
manager.updateProjectSetting('mcpServers', mcpServers);
|
34
|
+
}
|
35
|
+
function removeMCPServer(serverName) {
|
36
|
+
const manager = (0, settings_manager_js_1.getSettingsManager)();
|
37
|
+
const projectSettings = manager.loadProjectSettings();
|
38
|
+
const mcpServers = projectSettings.mcpServers;
|
39
|
+
if (mcpServers) {
|
40
|
+
delete mcpServers[serverName];
|
41
|
+
manager.updateProjectSetting('mcpServers', mcpServers);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
function getMCPServer(serverName) {
|
45
|
+
const manager = (0, settings_manager_js_1.getSettingsManager)();
|
46
|
+
const projectSettings = manager.loadProjectSettings();
|
47
|
+
return projectSettings.mcpServers?.[serverName];
|
48
|
+
}
|
49
|
+
// Predefined server configurations
|
50
|
+
exports.PREDEFINED_SERVERS = {};
|
51
|
+
//# sourceMappingURL=config.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/mcp/config.ts"],"names":[],"mappings":";;;AAUA,sCAKC;AAED,sCAUC;AAED,oCAOC;AAED,0CASC;AAED,oCAIC;AArDD,sEAAkE;AAOlE;;GAEG;AACH,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,SAAgB,aAAa,CAAC,MAAiB;IAC7C,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,gDAAgD;IAChD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,oBAAoB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,YAAY,CAAC,MAAuB;IAClD,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC;IAEpD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,oBAAoB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;IAE9C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,CAAC,oBAAoB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,UAAkB;IAC7C,MAAM,OAAO,GAAG,IAAA,wCAAkB,GAAE,CAAC;IACrC,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtD,OAAO,eAAe,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,mCAAmC;AACtB,QAAA,kBAAkB,GAAoC,EAAE,CAAC"}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
2
|
+
import { EventEmitter } from "events";
|
3
|
+
export type TransportType = 'stdio' | 'http' | 'sse' | 'streamable_http';
|
4
|
+
export interface TransportConfig {
|
5
|
+
type: TransportType;
|
6
|
+
command?: string;
|
7
|
+
args?: string[];
|
8
|
+
env?: Record<string, string>;
|
9
|
+
url?: string;
|
10
|
+
headers?: Record<string, string>;
|
11
|
+
}
|
12
|
+
export interface MCPTransport {
|
13
|
+
connect(): Promise<Transport>;
|
14
|
+
disconnect(): Promise<void>;
|
15
|
+
getType(): TransportType;
|
16
|
+
}
|
17
|
+
export declare class StdioTransport implements MCPTransport {
|
18
|
+
private config;
|
19
|
+
private transport?;
|
20
|
+
private process?;
|
21
|
+
constructor(config: TransportConfig);
|
22
|
+
connect(): Promise<Transport>;
|
23
|
+
disconnect(): Promise<void>;
|
24
|
+
getType(): TransportType;
|
25
|
+
}
|
26
|
+
export declare class HttpTransport extends EventEmitter implements MCPTransport {
|
27
|
+
private config;
|
28
|
+
private client?;
|
29
|
+
private connected;
|
30
|
+
constructor(config: TransportConfig);
|
31
|
+
connect(): Promise<Transport>;
|
32
|
+
disconnect(): Promise<void>;
|
33
|
+
getType(): TransportType;
|
34
|
+
}
|
35
|
+
export declare class SSETransport extends EventEmitter implements MCPTransport {
|
36
|
+
private config;
|
37
|
+
private connected;
|
38
|
+
constructor(config: TransportConfig);
|
39
|
+
connect(): Promise<Transport>;
|
40
|
+
disconnect(): Promise<void>;
|
41
|
+
getType(): TransportType;
|
42
|
+
}
|
43
|
+
export declare class StreamableHttpTransport extends EventEmitter implements MCPTransport {
|
44
|
+
private config;
|
45
|
+
private connected;
|
46
|
+
constructor(config: TransportConfig);
|
47
|
+
connect(): Promise<Transport>;
|
48
|
+
disconnect(): Promise<void>;
|
49
|
+
getType(): TransportType;
|
50
|
+
}
|
51
|
+
export declare function createTransport(config: TransportConfig): MCPTransport;
|
@@ -0,0 +1,229 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.StreamableHttpTransport = exports.SSETransport = exports.HttpTransport = exports.StdioTransport = void 0;
|
7
|
+
exports.createTransport = createTransport;
|
8
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
9
|
+
const events_1 = require("events");
|
10
|
+
const axios_1 = __importDefault(require("axios"));
|
11
|
+
class StdioTransport {
|
12
|
+
constructor(config) {
|
13
|
+
this.config = config;
|
14
|
+
if (!config.command) {
|
15
|
+
throw new Error('Command is required for stdio transport');
|
16
|
+
}
|
17
|
+
}
|
18
|
+
async connect() {
|
19
|
+
// Create transport with environment variables to suppress verbose output
|
20
|
+
const env = {
|
21
|
+
...process.env,
|
22
|
+
...this.config.env,
|
23
|
+
// Try to suppress verbose output from mcp-remote
|
24
|
+
MCP_REMOTE_QUIET: '1',
|
25
|
+
MCP_REMOTE_SILENT: '1',
|
26
|
+
DEBUG: '',
|
27
|
+
NODE_ENV: 'production'
|
28
|
+
};
|
29
|
+
this.transport = new stdio_js_1.StdioClientTransport({
|
30
|
+
command: this.config.command,
|
31
|
+
args: this.config.args || [],
|
32
|
+
env
|
33
|
+
});
|
34
|
+
return this.transport;
|
35
|
+
}
|
36
|
+
async disconnect() {
|
37
|
+
if (this.transport) {
|
38
|
+
await this.transport.close();
|
39
|
+
this.transport = undefined;
|
40
|
+
}
|
41
|
+
if (this.process) {
|
42
|
+
this.process.kill();
|
43
|
+
this.process = undefined;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
getType() {
|
47
|
+
return 'stdio';
|
48
|
+
}
|
49
|
+
}
|
50
|
+
exports.StdioTransport = StdioTransport;
|
51
|
+
class HttpTransport extends events_1.EventEmitter {
|
52
|
+
constructor(config) {
|
53
|
+
super();
|
54
|
+
this.config = config;
|
55
|
+
this.connected = false;
|
56
|
+
if (!config.url) {
|
57
|
+
throw new Error('URL is required for HTTP transport');
|
58
|
+
}
|
59
|
+
}
|
60
|
+
async connect() {
|
61
|
+
this.client = axios_1.default.create({
|
62
|
+
baseURL: this.config.url,
|
63
|
+
headers: {
|
64
|
+
'Content-Type': 'application/json',
|
65
|
+
...this.config.headers
|
66
|
+
}
|
67
|
+
});
|
68
|
+
// Test connection
|
69
|
+
try {
|
70
|
+
await this.client.get('/health');
|
71
|
+
this.connected = true;
|
72
|
+
}
|
73
|
+
catch (error) {
|
74
|
+
// If health endpoint doesn't exist, try a basic request
|
75
|
+
this.connected = true;
|
76
|
+
}
|
77
|
+
return new HttpClientTransport(this.client);
|
78
|
+
}
|
79
|
+
async disconnect() {
|
80
|
+
this.connected = false;
|
81
|
+
this.client = undefined;
|
82
|
+
}
|
83
|
+
getType() {
|
84
|
+
return 'http';
|
85
|
+
}
|
86
|
+
}
|
87
|
+
exports.HttpTransport = HttpTransport;
|
88
|
+
class SSETransport extends events_1.EventEmitter {
|
89
|
+
constructor(config) {
|
90
|
+
super();
|
91
|
+
this.config = config;
|
92
|
+
this.connected = false;
|
93
|
+
if (!config.url) {
|
94
|
+
throw new Error('URL is required for SSE transport');
|
95
|
+
}
|
96
|
+
}
|
97
|
+
async connect() {
|
98
|
+
return new Promise((resolve, reject) => {
|
99
|
+
try {
|
100
|
+
// For Node.js environment, we'll use a simple HTTP-based approach
|
101
|
+
// In a real implementation, you'd use a proper SSE library like 'eventsource'
|
102
|
+
this.connected = true;
|
103
|
+
resolve(new SSEClientTransport(this.config.url));
|
104
|
+
}
|
105
|
+
catch (error) {
|
106
|
+
reject(error);
|
107
|
+
}
|
108
|
+
});
|
109
|
+
}
|
110
|
+
async disconnect() {
|
111
|
+
this.connected = false;
|
112
|
+
}
|
113
|
+
getType() {
|
114
|
+
return 'sse';
|
115
|
+
}
|
116
|
+
}
|
117
|
+
exports.SSETransport = SSETransport;
|
118
|
+
// Custom HTTP Transport implementation
|
119
|
+
class HttpClientTransport extends events_1.EventEmitter {
|
120
|
+
constructor(client) {
|
121
|
+
super();
|
122
|
+
this.client = client;
|
123
|
+
}
|
124
|
+
async start() {
|
125
|
+
// HTTP transport is connection-less, so we're always "started"
|
126
|
+
}
|
127
|
+
async close() {
|
128
|
+
// Nothing to close for HTTP transport
|
129
|
+
}
|
130
|
+
async send(message) {
|
131
|
+
try {
|
132
|
+
const response = await this.client.post('/rpc', message);
|
133
|
+
return response.data;
|
134
|
+
}
|
135
|
+
catch (error) {
|
136
|
+
throw new Error(`HTTP transport error: ${error}`);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
// Custom SSE Transport implementation
|
141
|
+
class SSEClientTransport extends events_1.EventEmitter {
|
142
|
+
constructor(url) {
|
143
|
+
super();
|
144
|
+
this.url = url;
|
145
|
+
}
|
146
|
+
async start() {
|
147
|
+
// SSE transport is event-driven, so we're always "started"
|
148
|
+
}
|
149
|
+
async close() {
|
150
|
+
// Nothing to close for basic SSE transport
|
151
|
+
}
|
152
|
+
async send(message) {
|
153
|
+
// For bidirectional communication over SSE, we typically use HTTP POST
|
154
|
+
// for sending messages and SSE for receiving
|
155
|
+
try {
|
156
|
+
const response = await axios_1.default.post(this.url.replace('/sse', '/rpc'), message, {
|
157
|
+
headers: { 'Content-Type': 'application/json' }
|
158
|
+
});
|
159
|
+
return response.data;
|
160
|
+
}
|
161
|
+
catch (error) {
|
162
|
+
throw new Error(`SSE transport error: ${error}`);
|
163
|
+
}
|
164
|
+
}
|
165
|
+
}
|
166
|
+
class StreamableHttpTransport extends events_1.EventEmitter {
|
167
|
+
constructor(config) {
|
168
|
+
super();
|
169
|
+
this.config = config;
|
170
|
+
this.connected = false;
|
171
|
+
if (!config.url) {
|
172
|
+
throw new Error('URL is required for streamable_http transport');
|
173
|
+
}
|
174
|
+
}
|
175
|
+
async connect() {
|
176
|
+
return new Promise((resolve, reject) => {
|
177
|
+
try {
|
178
|
+
this.connected = true;
|
179
|
+
resolve(new StreamableHttpClientTransport(this.config.url, this.config.headers));
|
180
|
+
}
|
181
|
+
catch (error) {
|
182
|
+
reject(error);
|
183
|
+
}
|
184
|
+
});
|
185
|
+
}
|
186
|
+
async disconnect() {
|
187
|
+
this.connected = false;
|
188
|
+
}
|
189
|
+
getType() {
|
190
|
+
return 'streamable_http';
|
191
|
+
}
|
192
|
+
}
|
193
|
+
exports.StreamableHttpTransport = StreamableHttpTransport;
|
194
|
+
// Custom Streamable HTTP Transport implementation for GitHub Copilot MCP
|
195
|
+
class StreamableHttpClientTransport extends events_1.EventEmitter {
|
196
|
+
constructor(url, headers) {
|
197
|
+
super();
|
198
|
+
this.url = url;
|
199
|
+
this.headers = headers;
|
200
|
+
}
|
201
|
+
async start() {
|
202
|
+
// Streamable HTTP transport is connection-less, so we're always "started"
|
203
|
+
}
|
204
|
+
async close() {
|
205
|
+
// Nothing to close for streamable HTTP transport
|
206
|
+
}
|
207
|
+
async send(message) {
|
208
|
+
console.log('StreamableHttpTransport: SSE endpoints require persistent connections, not suitable for MCP request-response pattern');
|
209
|
+
console.log('StreamableHttpTransport: Message that would be sent:', JSON.stringify(message));
|
210
|
+
// For now, return a mock response to indicate the transport type is not compatible
|
211
|
+
// with the MCP protocol's request-response pattern
|
212
|
+
throw new Error('StreamableHttpTransport: SSE endpoints are not compatible with MCP request-response pattern. GitHub Copilot MCP may require a different integration approach.');
|
213
|
+
}
|
214
|
+
}
|
215
|
+
function createTransport(config) {
|
216
|
+
switch (config.type) {
|
217
|
+
case 'stdio':
|
218
|
+
return new StdioTransport(config);
|
219
|
+
case 'http':
|
220
|
+
return new HttpTransport(config);
|
221
|
+
case 'sse':
|
222
|
+
return new SSETransport(config);
|
223
|
+
case 'streamable_http':
|
224
|
+
return new StreamableHttpTransport(config);
|
225
|
+
default:
|
226
|
+
throw new Error(`Unsupported transport type: ${config.type}`);
|
227
|
+
}
|
228
|
+
}
|
229
|
+
//# sourceMappingURL=transports.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/mcp/transports.ts"],"names":[],"mappings":"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"}
|