UNPKG

@n8n-plus/n8n-plus

Version:

n8n Workflow Automation Tool (plus edition)

117 lines 5.55 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ChatHubAgentService = void 0; const backend_common_1 = require("@n8n/backend-common"); const di_1 = require("@n8n/di"); const uuid_1 = require("uuid"); const not_found_error_1 = require("../../errors/response-errors/not-found.error"); const chat_hub_agent_repository_1 = require("./chat-hub-agent.repository"); const chat_hub_credentials_service_1 = require("./chat-hub-credentials.service"); const chat_hub_constants_1 = require("./chat-hub.constants"); let ChatHubAgentService = class ChatHubAgentService { constructor(logger, chatAgentRepository, chatHubCredentialsService) { this.logger = logger; this.chatAgentRepository = chatAgentRepository; this.chatHubCredentialsService = chatHubCredentialsService; } async getAgentsByUserIdAsModels(userId) { const agents = await this.getAgentsByUserId(userId); return agents.map((agent) => this.convertAgentEntityToModel(agent)); } convertAgentEntityToModel(agent) { return { name: agent.name, description: agent.description ?? null, icon: agent.icon, model: { provider: 'custom-agent', agentId: agent.id, }, createdAt: agent.createdAt.toISOString(), updatedAt: agent.updatedAt.toISOString(), metadata: (0, chat_hub_constants_1.getModelMetadata)(agent.provider, agent.model), }; } async getAgentsByUserId(userId) { return await this.chatAgentRepository.getManyByUserId(userId); } async getAgentById(id, userId) { const agent = await this.chatAgentRepository.getOneById(id, userId); if (!agent) { throw new not_found_error_1.NotFoundError('Chat agent not found'); } return agent; } async createAgent(user, data) { await this.chatHubCredentialsService.ensureCredentialAccess(user, data.credentialId); const id = (0, uuid_1.v4)(); const agent = await this.chatAgentRepository.createAgent({ id, name: data.name, description: data.description ?? null, icon: data.icon, systemPrompt: data.systemPrompt, ownerId: user.id, credentialId: data.credentialId, provider: data.provider, model: data.model, tools: data.tools, }); this.logger.debug(`Chat agent created: ${id} by user ${user.id}`); return agent; } async updateAgent(id, user, updates) { const existingAgent = await this.chatAgentRepository.getOneById(id, user.id); if (!existingAgent) { throw new not_found_error_1.NotFoundError('Chat agent not found'); } if (updates.credentialId !== undefined && updates.credentialId !== null) { await this.chatHubCredentialsService.ensureCredentialAccess(user, updates.credentialId); } const updateData = {}; if (updates.name !== undefined) updateData.name = updates.name; if (updates.description !== undefined) updateData.description = updates.description ?? null; if (updates.icon !== undefined) updateData.icon = updates.icon; if (updates.systemPrompt !== undefined) updateData.systemPrompt = updates.systemPrompt; if (updates.credentialId !== undefined) updateData.credentialId = updates.credentialId ?? null; if (updates.provider !== undefined) updateData.provider = updates.provider; if (updates.model !== undefined) updateData.model = updates.model ?? null; if (updates.tools !== undefined) updateData.tools = updates.tools; const agent = await this.chatAgentRepository.updateAgent(id, updateData); this.logger.debug(`Chat agent updated: ${id} by user ${user.id}`); return agent; } async deleteAgent(id, userId) { const existingAgent = await this.chatAgentRepository.getOneById(id, userId); if (!existingAgent) { throw new not_found_error_1.NotFoundError('Chat agent not found'); } await this.chatAgentRepository.deleteAgent(id); this.logger.debug(`Chat agent deleted: ${id} by user ${userId}`); } }; exports.ChatHubAgentService = ChatHubAgentService; exports.ChatHubAgentService = ChatHubAgentService = __decorate([ (0, di_1.Service)(), __metadata("design:paramtypes", [backend_common_1.Logger, chat_hub_agent_repository_1.ChatHubAgentRepository, chat_hub_credentials_service_1.ChatHubCredentialsService]) ], ChatHubAgentService); //# sourceMappingURL=chat-hub-agent.service.js.map