UNPKG

@eggjs/controller-decorator

Version:

tegg controller decorator

83 lines 8.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MCPControllerMetaBuilder = void 0; const assert_1 = __importDefault(require("assert")); const core_decorator_1 = require("@eggjs/core-decorator"); const ControllerValidator_1 = require("../../util/validator/ControllerValidator"); const ControllerInfoUtil_1 = __importDefault(require("../../util/ControllerInfoUtil")); const MCPControllerPromptMetaBuilder_1 = require("./MCPControllerPromptMetaBuilder"); const MCPControllerResourceMetaBuilder_1 = require("./MCPControllerResourceMetaBuilder"); const MCPControllerToolMetaBuilder_1 = require("./MCPControllerToolMetaBuilder"); const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil"); const tegg_types_1 = require("@eggjs/tegg-types"); const MCPControllerMeta_1 = require("../../../src/model/MCPControllerMeta"); const ControllerMetaBuilderFactory_1 = require("../../builder/ControllerMetaBuilderFactory"); class MCPControllerMetaBuilder { constructor(clazz) { this.clazz = clazz; } buildResource() { const methodNames = MCPInfoUtil_1.MCPInfoUtil.getMCPResource(this.clazz); const methods = []; for (const methodName of methodNames) { const builder = new MCPControllerResourceMetaBuilder_1.MCPControllerResourceMetaBuilder(this.clazz, methodName); const methodMeta = builder.build(); if (methodMeta) { methods.push(methodMeta); } } return methods; } buildPrompt() { const methodNames = MCPInfoUtil_1.MCPInfoUtil.getMCPPrompt(this.clazz); const methods = []; for (const methodName of methodNames) { const builder = new MCPControllerPromptMetaBuilder_1.MCPControllerPromptMetaBuilder(this.clazz, methodName); const methodMeta = builder.build(); if (methodMeta) { methods.push(methodMeta); } } return methods; } buildTool() { const methodNames = MCPInfoUtil_1.MCPInfoUtil.getMCPTool(this.clazz); const methods = []; for (const methodName of methodNames) { const builder = new MCPControllerToolMetaBuilder_1.MCPControllerToolMetaBuilder(this.clazz, methodName); const methodMeta = builder.build(); if (methodMeta) { methods.push(methodMeta); } } return methods; } build() { ControllerValidator_1.ControllerValidator.validate(this.clazz); const controllerType = ControllerInfoUtil_1.default.getControllerType(this.clazz); (0, assert_1.default)(controllerType === tegg_types_1.ControllerType.MCP, 'invalidate controller type'); const mcpMiddlewares = ControllerInfoUtil_1.default.getControllerMiddlewares(this.clazz); const resources = this.buildResource(); const prompts = this.buildPrompt(); const tools = this.buildTool(); const property = core_decorator_1.PrototypeUtil.getProperty(this.clazz); const protoName = property.name; const clazzName = this.clazz.name; const controllerName = ControllerInfoUtil_1.default.getControllerName(this.clazz) || clazzName; const name = MCPInfoUtil_1.MCPInfoUtil.getMCPName(this.clazz); const version = MCPInfoUtil_1.MCPInfoUtil.getMCPVersion(this.clazz) || '1.0.0'; const needAcl = ControllerInfoUtil_1.default.hasControllerAcl(this.clazz); const aclCode = ControllerInfoUtil_1.default.getControllerAcl(this.clazz); const meta = MCPInfoUtil_1.MCPInfoUtil.getMCPControllerParams(this.clazz); return new MCPControllerMeta_1.MCPControllerMeta(clazzName, protoName, controllerName, version, tools, resources, prompts, mcpMiddlewares, name, needAcl, aclCode, meta); } static create(clazz) { return new MCPControllerMetaBuilder(clazz); } } exports.MCPControllerMetaBuilder = MCPControllerMetaBuilder; ControllerMetaBuilderFactory_1.ControllerMetaBuilderFactory.registerControllerMetaBuilder(tegg_types_1.ControllerType.MCP, MCPControllerMetaBuilder.create); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlck1ldGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvbWNwL01DUENvbnRyb2xsZXJNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsMERBQXNEO0FBRXRELGtGQUErRTtBQUMvRSx1RkFBK0Q7QUFDL0QscUZBQWtGO0FBQ2xGLHlGQUFzRjtBQUN0RixpRkFBOEU7QUFDOUUsK0RBQTREO0FBQzVELGtEQUFzRTtBQUN0RSw0RUFBeUU7QUFDekUsNkZBQTBGO0FBRTFGLE1BQWEsd0JBQXdCO0lBR25DLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxXQUFXLEdBQUcseUJBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELE1BQU0sT0FBTyxHQUFzQixFQUFFLENBQUM7UUFDdEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG1FQUFnQyxDQUNsRCxJQUFJLENBQUMsS0FBSyxFQUNWLFVBQVUsQ0FDWCxDQUFDO1lBQ0YsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLHlCQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxV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