UNPKG

mira-app-server

Version:

Mira Server - standalone server application using mira-app-core

105 lines 4.25 kB
"use strict"; /** * libraries 模块工具 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.registerLibraryTools = registerLibraryTools; const zod_1 = require("zod"); const helpers_1 = require("../helpers"); function registerLibraryTools(mcp, ctx) { mcp.registerTool('libraries_list', { description: '获取所有素材库列表', inputSchema: { status: zod_1.z .enum(['active', 'inactive', 'error']) .optional() .describe('按状态筛选'), }, }, async (args) => { return (0, helpers_1.run)(async () => { const client = ctx.getClient(); let list = await client.libraries().getAll(); if (args.status) list = list.filter(l => l.status === args.status); return list; }); }); mcp.registerTool('libraries_get', { description: '根据 ID 获取单个素材库详情', inputSchema: { id: zod_1.z.string().describe('素材库 ID') }, }, async (args) => { return (0, helpers_1.run)(async () => { const client = ctx.getClient(); return await client.libraries().getById(args.id); }); }); mcp.registerTool('libraries_create', { description: '创建新的素材库', inputSchema: { name: zod_1.z.string().describe('素材库名称'), path: zod_1.z.string().describe('素材库在磁盘上的目录路径'), description: zod_1.z.string().optional().describe('描述'), icon: zod_1.z.string().optional().describe('图标标识'), pluginsDir: zod_1.z.string().optional().describe('自定义插件目录'), enableHash: zod_1.z.boolean().optional().describe('是否启用 hash 校验(默认 true)'), }, }, async (args) => { return (0, helpers_1.run)(async () => { const client = ctx.getClient(); const data = { name: args.name, path: args.path, description: args.description || '', }; if (args.icon) data.icon = args.icon; if (args.pluginsDir) data.pluginsDir = args.pluginsDir; data.customFields = { enableHash: args.enableHash !== false }; return await client.libraries().create(data); }); }); mcp.registerTool('libraries_update', { description: '更新素材库信息', inputSchema: { id: zod_1.z.string().describe('素材库 ID'), name: zod_1.z.string().optional(), description: zod_1.z.string().optional(), enableHash: zod_1.z.boolean().optional(), }, }, async (args) => { return (0, helpers_1.run)(async () => { const client = ctx.getClient(); const data = {}; if (args.name !== undefined) data.name = args.name; if (args.description !== undefined) data.description = args.description; if (args.enableHash !== undefined) { data.customFields = { enableHash: args.enableHash }; } return await client.libraries().update(args.id, data); }); }); mcp.registerTool('libraries_delete', { description: '删除素材库', inputSchema: { id: zod_1.z.string().describe('素材库 ID') }, }, async (args) => { return (0, helpers_1.run)(async () => { const client = ctx.getClient(); return await client.libraries().delete(args.id); }); }); for (const action of ['start', 'stop', 'restart']) { mcp.registerTool(`libraries_${action}`, { description: `${action === 'start' ? '启动' : action === 'stop' ? '停止' : '重启'}素材库服务`, inputSchema: { id: zod_1.z.string().describe('素材库 ID') }, }, async (args) => { return (0, helpers_1.run)(async () => { const client = ctx.getClient(); return await client.libraries()[action](args.id); }); }); } } //# sourceMappingURL=libraries.js.map