UNPKG

n8n

Version:

n8n Workflow Automation Tool

187 lines 10.9 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.AgentsModule = void 0; const backend_common_1 = require("@n8n/backend-common"); const config_1 = require("@n8n/config"); const decorators_1 = require("@n8n/decorators"); const di_1 = require("@n8n/di"); const n8n_core_1 = require("n8n-core"); let AgentsModule = class AgentsModule { async init() { await import('./agents-catalog.controller.js'); await import('./agent-threads.controller.js'); await import('./agents.controller.js'); await import('./agents-config.controller.js'); await import('./agents-skills.controller.js'); await import('./agent-knowledge.controller.js'); await import('./agent-publish.controller.js'); await import('./agent-chat.controller.js'); await import('./agent-integrations.controller.js'); await import('./agent-slack-integrations.controller.js'); await import('./agent-vector-stores.controller.js'); await import('./agent-tasks.controller.js'); await import('./agent-sandbox.controller.js'); await import('./agents-list.controller.js'); await import('./agent-mcp-access.controller.js'); await import('./builder/agents-builder-settings.controller.js'); const { AgentsService } = await import('./agents.service.js'); di_1.Container.get(AgentsService); const { AgentCredentialIndexListener } = await import('./agent-credential-index.listener.js'); di_1.Container.get(AgentCredentialIndexListener).init(); const { AgentsBuilderSettingsService } = await import('./builder/agents-builder-settings.service.js'); di_1.Container.get(AgentsBuilderSettingsService); const { AgentExecutionService } = await import('./agent-execution.service.js'); di_1.Container.get(AgentExecutionService); const { AgentExecutionLogStore } = await import('./execution-log/agent-execution-log-store.js'); const { AgentKnowledgeFileStore } = await import('./agent-knowledge-file-store.js'); const { ExecutionDataJsonStore } = await import('../../executions/execution-data/execution-data-json-store.js'); const { registerAgentBlobByteStores } = await import('./register-blob-byte-stores.js'); await registerAgentBlobByteStores({ executionDataJsonStore: di_1.Container.get(ExecutionDataJsonStore), agentExecutionLogStore: di_1.Container.get(AgentExecutionLogStore), agentKnowledgeFileStore: di_1.Container.get(AgentKnowledgeFileStore), }); const { AgentRuntimeCacheService } = await import('./agent-runtime-cache.service.js'); di_1.Container.get(AgentRuntimeCacheService); const { AgentHistoryRepository } = await import('./repositories/agent-history.repository.js'); di_1.Container.get(AgentHistoryRepository); const { AgentSecureRuntime } = await import('./runtime/agent-secure-runtime.js'); di_1.Container.get(AgentSecureRuntime); const { ChatIntegrationRegistry } = await import('./integrations/agent-chat-integration.js'); const { SlackIntegration } = await import('./integrations/platforms/slack/slack-integration.js'); const { TelegramIntegration } = await import('./integrations/platforms/telegram-integration.js'); const { LinearIntegration } = await import('./integrations/platforms/linear-integration.js'); const { DiscordIntegration } = await import('./integrations/platforms/discord-integration.js'); const { N8nChatIntegration } = await import('./integrations/platforms/n8n-chat-integration.js'); const registry = di_1.Container.get(ChatIntegrationRegistry); registry.register(di_1.Container.get(SlackIntegration)); registry.register(di_1.Container.get(TelegramIntegration)); registry.register(di_1.Container.get(LinearIntegration)); registry.register(di_1.Container.get(DiscordIntegration)); registry.register(di_1.Container.get(N8nChatIntegration)); const { ChatIntegrationService } = await import('./integrations/chat-integration.service.js'); const { AgentTaskService } = await import('./agent-task.service.js'); const chatService = di_1.Container.get(ChatIntegrationService); const taskService = di_1.Container.get(AgentTaskService); const logger = di_1.Container.get(backend_common_1.Logger); const instanceSettings = di_1.Container.get(n8n_core_1.InstanceSettings); if (instanceSettings.instanceType === 'main') { const { AgentInterruptedExecutionSweeper } = await import('./agent-interrupted-execution-sweeper.js'); const sweep = () => { void di_1.Container.get(AgentInterruptedExecutionSweeper) .sweep() .catch((error) => { logger.error('[Agents] Interrupted execution sweep failed', { error }); }); }; sweep(); this.interruptedExecutionSweepTimer = setInterval(sweep, AgentInterruptedExecutionSweeper.LIVENESS_GRACE_MS); this.interruptedExecutionSweepTimer.unref(); } void chatService.reconnectAll().catch((error) => { logger.error('[Agents] Failed to reconnect integrations on startup', { error: error instanceof Error ? error.message : String(error), }); }); if (instanceSettings.isLeader) { void taskService.reconnectAll().catch((error) => { logger.error('[Agents] Failed to reconnect tasks on startup', { error: error instanceof Error ? error.message : String(error), }); }); } else { logger.debug('[Agents] Skipping task reconnect on startup — not leader'); } } async shutdown() { if (this.interruptedExecutionSweepTimer) { clearInterval(this.interruptedExecutionSweepTimer); } } async settings() { const config = di_1.Container.get(config_1.AgentsConfig); const { isAgentKnowledgeBaseEnabled } = await import('./agent-knowledge-gate.js'); const { AiService } = await import('../../services/ai.service.js'); const aiService = di_1.Container.get(AiService); const proxyEnabled = aiService.isProxyEnabled(); return { enabled: true, modules: [...config.modules], knowledgeBaseEnabled: isAgentKnowledgeBaseEnabled(config, proxyEnabled), proxyEnabled, }; } async entities() { const { Agent } = await import('./entities/agent.entity.js'); const { AgentFile } = await import('./entities/agent-file.entity.js'); const { AgentChatAttachment } = await import('./entities/agent-chat-attachment.entity.js'); const { AgentChatSubscription } = await import('./entities/agent-chat-subscription.entity.js'); const { AgentCheckpoint } = await import('./entities/agent-checkpoint.entity.js'); const { AgentResourceEntity } = await import('./entities/agent-resource.entity.js'); const { AgentThreadEntity } = await import('./entities/agent-thread.entity.js'); const { AgentMessageEntity } = await import('./entities/agent-message.entity.js'); const { AgentExecutionThread } = await import('./entities/agent-execution-thread.entity.js'); const { AgentExecution } = await import('./entities/agent-execution.entity.js'); const { AgentHistory } = await import('./entities/agent-history.entity.js'); const { AgentCredentialDependency } = await import('./entities/agent-credential-dependency.entity.js'); const { AgentTask } = await import('./entities/agent-task.entity.js'); const { AgentTaskRunLock } = await import('./entities/agent-task-run-lock.entity.js'); const { AgentTaskSnapshot } = await import('./entities/agent-task-snapshot.entity.js'); const { AgentObservationEntity } = await import('./entities/agent-observation.entity.js'); const { AgentObservationCursorEntity } = await import('./entities/agent-observation-cursor.entity.js'); const { AgentObservationLockEntity } = await import('./entities/agent-observation-lock.entity.js'); const { AgentMemoryEntryEntity } = await import('./entities/agent-memory-entry.entity.js'); const { AgentMemoryEntryLockEntity } = await import('./entities/agent-memory-entry-lock.entity.js'); const { AgentMemoryEntrySourceEntity } = await import('./entities/agent-memory-entry-source.entity.js'); const { AgentMemoryEntryCursorEntity } = await import('./entities/agent-memory-entry-cursor.entity.js'); return [ Agent, AgentFile, AgentChatAttachment, AgentChatSubscription, AgentCheckpoint, AgentResourceEntity, AgentThreadEntity, AgentMessageEntity, AgentExecutionThread, AgentExecution, AgentHistory, AgentCredentialDependency, AgentTask, AgentTaskRunLock, AgentTaskSnapshot, AgentObservationEntity, AgentObservationCursorEntity, AgentObservationLockEntity, AgentMemoryEntryEntity, AgentMemoryEntryLockEntity, AgentMemoryEntrySourceEntity, AgentMemoryEntryCursorEntity, ]; } async context() { const { AgentsService } = await import('./agents.service.js'); return { agentsService: di_1.Container.get(AgentsService) }; } }; exports.AgentsModule = AgentsModule; __decorate([ (0, decorators_1.OnShutdown)(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise) ], AgentsModule.prototype, "shutdown", null); exports.AgentsModule = AgentsModule = __decorate([ (0, decorators_1.BackendModule)({ name: 'agents' }) ], AgentsModule); //# sourceMappingURL=agents.module.js.map