UNPKG

n8n

Version:

n8n Workflow Automation Tool

67 lines 3.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createN8nDelegateSubAgentTool = createN8nDelegateSubAgentTool; exports.formatSubAgentToolOutput = formatSubAgentToolOutput; const agents_1 = require("@n8n/agents"); function createN8nDelegateSubAgentTool(options) { const { runner, sourcesById, availableSubAgents, policy, inlineSubAgentModelsByDifficulty, resolveInlineSubAgentProviderTools, ...runContext } = options; return (0, agents_1.createDelegateSubAgentTool)({ ...(availableSubAgents !== undefined ? { availableSubAgents } : {}), ...(policy !== undefined ? { policy } : {}), ...(inlineSubAgentModelsByDifficulty !== undefined ? { inlineSubAgentModelsByDifficulty } : {}), ...(resolveInlineSubAgentProviderTools !== undefined ? { resolveInlineSubAgentProviderTools } : {}), runSubAgent: async (request, helpers) => { if (request.subAgentId === agents_1.INLINE_SUB_AGENT_ID) { return await helpers.runInlineSubAgent(request); } const selectedSource = selectSubAgentSource({ sourcesById, subAgentId: request.subAgentId, }); if (!selectedSource) { return { status: 'failed', taskPath: request.taskPath, answer: '', error: `No configured subagent matched "${request.subAgentId}". Use "inline" for an inline sub-agent, or pass one of the configured subagent IDs.`, }; } const result = await runner.runForeground({ goal: request.goal, source: selectedSource, executionMode: 'foreground', ...(request.context !== undefined ? { context: request.context } : {}), ...(request.expectedOutput !== undefined ? { expectedOutput: request.expectedOutput } : {}), ...(policy !== undefined ? { policy } : {}), ...(request.parentThreadId !== undefined ? { parentThreadId: request.parentThreadId } : {}), ...(request.parentResourceId !== undefined ? { parentResourceId: request.parentResourceId } : {}), taskPath: request.taskPath, }, { ...runContext, ...(request.parentAbortSignal !== undefined ? { abortSignal: request.parentAbortSignal } : {}), ...(request.parentTelemetry !== undefined ? { telemetry: request.parentTelemetry } : {}), }); return formatSubAgentToolOutput(result); }, }); } function selectSubAgentSource(options) { const { sourcesById, subAgentId } = options; if (subAgentId === agents_1.INLINE_SUB_AGENT_ID) return undefined; return sourcesById?.[subAgentId]; } function formatSubAgentToolOutput(result) { return (0, agents_1.generateResultToDelegateSubAgentOutput)(result.taskPath, result.result, result.threadId); } //# sourceMappingURL=delegate-sub-agent-tool.js.map