openai-cli-unofficial
Version:
A powerful OpenAI CLI Coding Agent built with TypeScript
114 lines • 4.59 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MCPServiceManager = exports.TodosService = exports.FileSystemService = exports.GlobalMCPManager = exports.BaseMCPService = exports.BuiltInMCPAPI = void 0;
// MCP模块主导出文件
__exportStar(require("./api"), exports);
__exportStar(require("./base-service"), exports);
__exportStar(require("./manager"), exports);
__exportStar(require("./services"), exports);
__exportStar(require("./types"), exports);
// 导入主要服务和工具
var api_1 = require("./api");
Object.defineProperty(exports, "BuiltInMCPAPI", { enumerable: true, get: function () { return api_1.BuiltInMCPAPI; } });
var base_service_1 = require("./base-service");
Object.defineProperty(exports, "BaseMCPService", { enumerable: true, get: function () { return base_service_1.BaseMCPService; } });
var manager_1 = require("./manager");
Object.defineProperty(exports, "GlobalMCPManager", { enumerable: true, get: function () { return manager_1.GlobalMCPManager; } });
var file_system_1 = require("./services/file-system");
Object.defineProperty(exports, "FileSystemService", { enumerable: true, get: function () { return file_system_1.FileSystemService; } });
var todos_service_1 = require("./services/todos-service");
Object.defineProperty(exports, "TodosService", { enumerable: true, get: function () { return todos_service_1.TodosService; } });
const services_1 = require("./services");
class MCPServiceManager {
constructor() {
this.services = new Map();
this.initializeServices();
}
// 初始化所有服务
initializeServices() {
const availableServices = (0, services_1.getServices)();
for (const service of availableServices) {
try {
const serviceName = service.getServiceInfo().name;
this.services.set(serviceName, service);
console.log(`MCP服务已初始化: ${serviceName}`);
}
catch (error) {
console.error(`初始化MCP服务失败:`, error);
}
}
}
// 获取所有服务信息
getServicesInfo() {
const servicesInfo = [];
for (const [serviceName, service] of this.services) {
servicesInfo.push({
serviceName,
...service.getServiceInfo()
});
}
return servicesInfo;
}
// 处理MCP请求
async handleRequest(serviceName, request) {
const service = this.services.get(serviceName);
if (!service) {
return {
id: request.id,
error: {
code: -32601,
message: `未找到MCP服务: ${serviceName}`
}
};
}
try {
return await service.handleRequest(request);
}
catch (error) {
return {
id: request.id,
error: {
code: -32603,
message: '服务处理请求时发生错误',
data: error instanceof Error ? error.message : String(error)
}
};
}
}
// 获取指定服务的工具列表
getServiceTools(serviceName) {
const service = this.services.get(serviceName);
if (!service) {
throw new Error(`未找到MCP服务: ${serviceName}`);
}
return service.getTools();
}
// 获取所有服务的工具列表
getAllTools() {
const allTools = [];
for (const [serviceName, service] of this.services) {
const tools = service.getTools().map(tool => ({
...tool,
serviceName
}));
allTools.push(...tools);
}
return allTools;
}
}
exports.MCPServiceManager = MCPServiceManager;
//# sourceMappingURL=index.js.map