@n8n-plus/n8n-plus
Version:
n8n Workflow Automation Tool (plus edition)
117 lines • 5.55 kB
JavaScript
;
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