n8n 2.30.5 → 2.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-library-bundle.js +9 -0
- package/dist/auth/auth.service.js +1 -0
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/blob-storage/azure-byte-store.ee.d.ts +1 -1
- package/dist/blob-storage/azure-byte-store.ee.js +3 -18
- package/dist/blob-storage/azure-byte-store.ee.js.map +1 -1
- package/dist/blob-storage/json-store.js +3 -0
- package/dist/blob-storage/json-store.js.map +1 -1
- package/dist/blob-storage/s3-byte-store.ee.d.ts +1 -1
- package/dist/blob-storage/s3-byte-store.ee.js +2 -17
- package/dist/blob-storage/s3-byte-store.ee.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/base-command.d.ts +2 -2
- package/dist/commands/base-command.js +5 -5
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/start.js +2 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/constants/workflow-reviews.d.ts +4 -0
- package/dist/constants/workflow-reviews.js +14 -0
- package/dist/constants/workflow-reviews.js.map +1 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/controllers/e2e.controller.js +1 -0
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/security-settings.controller.d.ts +15 -10
- package/dist/controllers/security-settings.controller.js +41 -65
- package/dist/controllers/security-settings.controller.js.map +1 -1
- package/dist/controllers/users.controller.d.ts +2 -2
- package/dist/credentials/credential-connection-status-provider.interface.d.ts +2 -1
- package/dist/credentials/credential-connection-status-proxy.d.ts +2 -1
- package/dist/credentials/credential-connection-status-proxy.js +7 -2
- package/dist/credentials/credential-connection-status-proxy.js.map +1 -1
- package/dist/credentials/credentials.controller.js +5 -5
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +1 -0
- package/dist/credentials/credentials.service.ee.d.ts +3 -1
- package/dist/credentials/credentials.service.ee.js +10 -2
- package/dist/credentials/credentials.service.ee.js.map +1 -1
- package/dist/credentials/credentials.service.js +14 -0
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/eventbus/event-message-classes/index.d.ts +2 -2
- package/dist/eventbus/event-message-classes/index.js +5 -2
- package/dist/eventbus/event-message-classes/index.js.map +1 -1
- package/dist/events/maps/relay.event-map.d.ts +23 -2
- package/dist/events/relays/log-streaming.event-relay.d.ts +3 -0
- package/dist/events/relays/log-streaming.event-relay.js +37 -2
- package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
- package/dist/events/relays/telemetry.event-relay.d.ts +3 -0
- package/dist/events/relays/telemetry.event-relay.js +88 -10
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js +21 -4
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
- package/dist/executions/execution-data/db-store.d.ts +8 -15
- package/dist/executions/execution-data/db-store.js +12 -25
- package/dist/executions/execution-data/db-store.js.map +1 -1
- package/dist/executions/execution-data/execution-data-json-store.d.ts +7 -0
- package/dist/executions/execution-data/execution-data-json-store.js +45 -0
- package/dist/executions/execution-data/execution-data-json-store.js.map +1 -0
- package/dist/executions/execution-data/types.d.ts +3 -14
- package/dist/executions/execution-data/types.js.map +1 -1
- package/dist/executions/execution-persistence.d.ts +7 -14
- package/dist/executions/execution-persistence.js +40 -88
- package/dist/executions/execution-persistence.js.map +1 -1
- package/dist/interfaces.d.ts +4 -1
- package/dist/load-nodes-and-credentials.js +1 -1
- package/dist/load-nodes-and-credentials.js.map +1 -1
- package/dist/metrics/prometheus/prometheus.service.d.ts +2 -1
- package/dist/metrics/prometheus/prometheus.service.js +5 -2
- package/dist/metrics/prometheus/prometheus.service.js.map +1 -1
- package/dist/metrics/prometheus/scheduler-metrics.service.d.ts +35 -0
- package/dist/metrics/prometheus/scheduler-metrics.service.js +187 -0
- package/dist/metrics/prometheus/scheduler-metrics.service.js.map +1 -0
- package/dist/modules/agents/adapters/agents-credential-provider.d.ts +1 -0
- package/dist/modules/agents/adapters/agents-credential-provider.js +13 -3
- package/dist/modules/agents/adapters/agents-credential-provider.js.map +1 -1
- package/dist/modules/agents/agent-config.service.js +11 -1
- package/dist/modules/agents/agent-config.service.js.map +1 -1
- package/dist/modules/agents/agent-knowledge.controller.js +1 -1
- package/dist/modules/agents/agent-knowledge.controller.js.map +1 -1
- package/dist/modules/agents/agent-upload.middleware.d.ts +2 -0
- package/dist/modules/agents/agent-upload.middleware.js +11 -0
- package/dist/modules/agents/agent-upload.middleware.js.map +1 -1
- package/dist/modules/agents/agent-validation.service.js +19 -2
- package/dist/modules/agents/agent-validation.service.js.map +1 -1
- package/dist/modules/agents/agent-vector-stores.controller.d.ts +11 -0
- package/dist/modules/agents/agent-vector-stores.controller.js +41 -0
- package/dist/modules/agents/agent-vector-stores.controller.js.map +1 -0
- package/dist/modules/agents/agent-vector-stores.service.d.ts +9 -0
- package/dist/modules/agents/agent-vector-stores.service.js +195 -0
- package/dist/modules/agents/agent-vector-stores.service.js.map +1 -0
- package/dist/modules/agents/agents-config.controller.d.ts +112 -69
- package/dist/modules/agents/agents.controller.d.ts +5 -1
- package/dist/modules/agents/agents.controller.js +11 -0
- package/dist/modules/agents/agents.controller.js.map +1 -1
- package/dist/modules/agents/agents.module.js +1 -0
- package/dist/modules/agents/agents.module.js.map +1 -1
- package/dist/modules/agents/agents.service.d.ts +7 -2
- package/dist/modules/agents/agents.service.js +65 -2
- package/dist/modules/agents/agents.service.js.map +1 -1
- package/dist/modules/agents/attachable-workflows.service.d.ts +12 -0
- package/dist/modules/agents/attachable-workflows.service.js +58 -0
- package/dist/modules/agents/attachable-workflows.service.js.map +1 -0
- package/dist/modules/agents/builder/agents-builder-model-recommendations.js +3 -2
- package/dist/modules/agents/builder/agents-builder-model-recommendations.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-prompts.d.ts +4 -4
- package/dist/modules/agents/builder/agents-builder-prompts.js +40 -27
- package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +3 -5
- package/dist/modules/agents/builder/agents-builder-tools.service.js +48 -194
- package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder.service.d.ts +10 -3
- package/dist/modules/agents/builder/agents-builder.service.js +22 -12
- package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
- package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
- package/dist/modules/agents/builder/errors.d.ts +3 -2
- package/dist/modules/agents/builder/errors.js +3 -2
- package/dist/modules/agents/builder/errors.js.map +1 -1
- package/dist/modules/agents/builder/get-resource-locator-options.tool.d.ts +99 -2
- package/dist/modules/agents/builder/get-resource-locator-options.tool.js +103 -101
- package/dist/modules/agents/builder/get-resource-locator-options.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js +48 -32
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/ask-questions.tool.d.ts +2 -0
- package/dist/modules/agents/builder/interactive/ask-questions.tool.js +108 -0
- package/dist/modules/agents/builder/interactive/ask-questions.tool.js.map +1 -0
- package/dist/modules/agents/builder/interactive/configure-channel.tool.d.ts +7 -0
- package/dist/modules/agents/builder/interactive/configure-channel.tool.js +52 -0
- package/dist/modules/agents/builder/interactive/configure-channel.tool.js.map +1 -0
- package/dist/modules/agents/builder/interactive/index.d.ts +2 -2
- package/dist/modules/agents/builder/interactive/index.js +5 -5
- package/dist/modules/agents/builder/interactive/index.js.map +1 -1
- package/dist/modules/agents/builder/interactive/resolve-llm.tool.js +2 -2
- package/dist/modules/agents/builder/interactive/resolve-llm.tool.js.map +1 -1
- package/dist/modules/agents/builder/prompts/config-mutation.prompt.js +1 -1
- package/dist/modules/agents/builder/prompts/config-rules.prompt.js +2 -2
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +10 -10
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js.map +1 -1
- package/dist/modules/agents/builder/prompts/memory.prompt.d.ts +1 -1
- package/dist/modules/agents/builder/prompts/memory.prompt.js +1 -1
- package/dist/modules/agents/builder/search-mcp-servers.tool.js +1 -63
- package/dist/modules/agents/builder/search-mcp-servers.tool.js.map +1 -1
- package/dist/modules/agents/builder/skills/index.d.ts +1 -1
- package/dist/modules/agents/builder/skills/index.js +5 -1
- package/dist/modules/agents/builder/skills/index.js.map +1 -1
- package/dist/modules/agents/builder/skills/integrations.skill.js +15 -6
- package/dist/modules/agents/builder/skills/integrations.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/mcp.skill.js +2 -2
- package/dist/modules/agents/builder/skills/mcp.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/resource-locators.skill.js +2 -2
- package/dist/modules/agents/builder/skills/resource-locators.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/sub-agents.skill.js +7 -5
- package/dist/modules/agents/builder/skills/sub-agents.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/target-skills.skill.js +5 -4
- package/dist/modules/agents/builder/skills/target-skills.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/target-tasks.skill.js +5 -5
- package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
- package/dist/modules/agents/instance-ai-builder-delegate.adapter.d.ts +14 -0
- package/dist/modules/agents/instance-ai-builder-delegate.adapter.js +96 -0
- package/dist/modules/agents/instance-ai-builder-delegate.adapter.js.map +1 -0
- package/dist/modules/agents/integrations/integration-action-executor.d.ts +72 -72
- package/dist/modules/agents/integrations/integration-tool-definitions.d.ts +574 -574
- package/dist/modules/agents/json-config/embedding-credential.d.ts +4 -0
- package/dist/modules/agents/json-config/embedding-credential.js +25 -0
- package/dist/modules/agents/json-config/embedding-credential.js.map +1 -0
- package/dist/modules/agents/json-config/from-json-config.d.ts +2 -6
- package/dist/modules/agents/json-config/from-json-config.js +16 -16
- package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
- package/dist/modules/agents/json-config/model-config.js +2 -2
- package/dist/modules/agents/json-config/model-config.js.map +1 -1
- package/dist/modules/agents/json-config/vector-store-factory.d.ts +5 -0
- package/dist/modules/agents/json-config/vector-store-factory.js +138 -0
- package/dist/modules/agents/json-config/vector-store-factory.js.map +1 -0
- package/dist/modules/breaking-changes/rules/index.d.ts +8 -0
- package/dist/modules/breaking-changes/rules/index.js +8 -0
- package/dist/modules/breaking-changes/rules/index.js.map +1 -1
- package/dist/modules/breaking-changes/rules/v3/compression-node-limits.rule.d.ts +6 -0
- package/dist/modules/breaking-changes/rules/v3/compression-node-limits.rule.js +59 -0
- package/dist/modules/breaking-changes/rules/v3/compression-node-limits.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/docker-only-deployment.rule.d.ts +9 -0
- package/dist/modules/breaking-changes/rules/v3/docker-only-deployment.rule.js +57 -0
- package/dist/modules/breaking-changes/rules/v3/docker-only-deployment.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/get-paired-item.rule.d.ts +10 -0
- package/dist/modules/breaking-changes/rules/v3/get-paired-item.rule.js +53 -0
- package/dist/modules/breaking-changes/rules/v3/get-paired-item.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/in-memory-binary-data.rule.d.ts +9 -0
- package/dist/modules/breaking-changes/rules/v3/in-memory-binary-data.rule.js +56 -0
- package/dist/modules/breaking-changes/rules/v3/in-memory-binary-data.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/offload-manual-executions.rule.d.ts +9 -0
- package/dist/modules/breaking-changes/rules/v3/offload-manual-executions.rule.js +57 -0
- package/dist/modules/breaking-changes/rules/v3/offload-manual-executions.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/task-runner-task-timeout.rule.d.ts +6 -0
- package/dist/modules/breaking-changes/rules/v3/task-runner-task-timeout.rule.js +50 -0
- package/dist/modules/breaking-changes/rules/v3/task-runner-task-timeout.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/unverified-packages.rule.d.ts +9 -0
- package/dist/modules/breaking-changes/rules/v3/unverified-packages.rule.js +57 -0
- package/dist/modules/breaking-changes/rules/v3/unverified-packages.rule.js.map +1 -0
- package/dist/modules/breaking-changes/rules/v3/workflow-import-url-removed.rule.d.ts +6 -0
- package/dist/modules/breaking-changes/rules/v3/workflow-import-url-removed.rule.js +47 -0
- package/dist/modules/breaking-changes/rules/v3/workflow-import-url-removed.rule.js.map +1 -0
- package/dist/modules/chat-hub/chat-hub.module.d.ts +1 -1
- package/dist/modules/chat-hub/chat-hub.settings.controller.d.ts +3 -3
- package/dist/modules/data-table/data-table-ddl.service.d.ts +2 -0
- package/dist/modules/data-table/data-table-ddl.service.js +16 -0
- package/dist/modules/data-table/data-table-ddl.service.js.map +1 -1
- package/dist/modules/data-table/data-table.service.d.ts +6 -3
- package/dist/modules/data-table/data-table.service.js +19 -0
- package/dist/modules/data-table/data-table.service.js.map +1 -1
- package/dist/modules/data-table/utils/sql-utils.d.ts +1 -0
- package/dist/modules/data-table/utils/sql-utils.js +4 -0
- package/dist/modules/data-table/utils/sql-utils.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +5 -2
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +32 -4
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +0 -2
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +1 -14
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.d.ts +1 -0
- package/dist/modules/dynamic-credentials.ee/services/authorize-intent.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.d.ts +3 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js +8 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-check-proxy.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.d.ts +5 -3
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +19 -7
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +9 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +21 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
- package/dist/modules/favorites/dto/add-favorite.dto.d.ts +2 -2
- package/dist/modules/favorites/favorites.event-relay.js +2 -3
- package/dist/modules/favorites/favorites.event-relay.js.map +1 -1
- package/dist/modules/favorites/favorites.service.d.ts +4 -1
- package/dist/modules/favorites/favorites.service.js +28 -3
- package/dist/modules/favorites/favorites.service.js.map +1 -1
- package/dist/modules/instance-ai/eval/execution.service.d.ts +4 -1
- package/dist/modules/instance-ai/eval/execution.service.js +26 -3
- package/dist/modules/instance-ai/eval/execution.service.js.map +1 -1
- package/dist/modules/instance-ai/eval/mock-handler.js +1 -1
- package/dist/modules/instance-ai/eval/mock-handler.js.map +1 -1
- package/dist/modules/instance-ai/eval/mock-quirks.js +7 -0
- package/dist/modules/instance-ai/eval/mock-quirks.js.map +1 -1
- package/dist/modules/instance-ai/eval/pin-data-generator.js +17 -17
- package/dist/modules/instance-ai/eval/pin-data-generator.js.map +1 -1
- package/dist/modules/instance-ai/event-bus/in-process-event-bus.d.ts +17 -6
- package/dist/modules/instance-ai/event-bus/in-process-event-bus.js +153 -30
- package/dist/modules/instance-ai/event-bus/in-process-event-bus.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +7 -2
- package/dist/modules/instance-ai/instance-ai-memory.service.js +12 -1
- package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-settings.service.js +0 -7
- package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.d.ts +4 -1
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +1 -0
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +89 -3
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +264 -29
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.js +9 -2
- package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +1 -1
- package/dist/modules/instance-ai/instance-ai.service.js +61 -108
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/workflow-templates.service.d.ts +17 -0
- package/dist/modules/instance-ai/workflow-templates.service.js +63 -0
- package/dist/modules/instance-ai/workflow-templates.service.js.map +1 -0
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.d.ts +1 -0
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.js +2 -0
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination.ee.js.map +1 -1
- package/dist/modules/mcp/dto/update-workflows-availability.dto.d.ts +2 -0
- package/dist/modules/mcp/dto/update-workflows-availability.dto.js +1 -0
- package/dist/modules/mcp/dto/update-workflows-availability.dto.js.map +1 -1
- package/dist/modules/mcp/mcp-protected-resource.d.ts +4 -1
- package/dist/modules/mcp/mcp-protected-resource.js +13 -3
- package/dist/modules/mcp/mcp-protected-resource.js.map +1 -1
- package/dist/modules/mcp/mcp.config.d.ts +1 -0
- package/dist/modules/mcp/mcp.config.js +20 -0
- package/dist/modules/mcp/mcp.config.js.map +1 -1
- package/dist/modules/mcp/mcp.module.d.ts +1 -0
- package/dist/modules/mcp/mcp.module.js +3 -1
- package/dist/modules/mcp/mcp.module.js.map +1 -1
- package/dist/modules/mcp/mcp.settings.service.d.ts +1 -1
- package/dist/modules/mcp/mcp.settings.service.js +33 -18
- package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
- package/dist/modules/mcp/tools/search-workflows.tool.js +4 -2
- package/dist/modules/mcp/tools/search-workflows.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.d.ts +2 -0
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +10 -5
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/restore-workflow-version.tool.js +4 -0
- package/dist/modules/mcp/tools/workflow-builder/restore-workflow-version.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/skills-used.d.ts +1 -0
- package/dist/modules/mcp/tools/workflow-builder/skills-used.js +5 -1
- package/dist/modules/mcp/tools/workflow-builder/skills-used.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +10 -5
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/version-metadata.d.ts +27 -0
- package/dist/modules/mcp/tools/workflow-builder/version-metadata.js +109 -0
- package/dist/modules/mcp/tools/workflow-builder/version-metadata.js.map +1 -0
- package/dist/modules/mcp-registry/registry/mcp-registry-search.d.ts +18 -0
- package/dist/modules/mcp-registry/registry/mcp-registry-search.js +64 -0
- package/dist/modules/mcp-registry/registry/mcp-registry-search.js.map +1 -0
- package/dist/modules/mcp-registry/registry/mcp-registry.service.d.ts +2 -0
- package/dist/modules/mcp-registry/registry/mcp-registry.service.js +4 -0
- package/dist/modules/mcp-registry/registry/mcp-registry.service.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-blocked.error.js +2 -1
- package/dist/modules/n8n-packages/engine/import-blocked.error.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-orchestrator.d.ts +30 -0
- package/dist/modules/n8n-packages/engine/import-orchestrator.js +86 -0
- package/dist/modules/n8n-packages/engine/import-orchestrator.js.map +1 -0
- package/dist/modules/n8n-packages/engine/import-result.d.ts +14 -0
- package/dist/modules/n8n-packages/engine/import-result.js +43 -0
- package/dist/modules/n8n-packages/engine/import-result.js.map +1 -0
- package/dist/modules/n8n-packages/engine/n8n-package-parser.d.ts +7 -0
- package/dist/modules/n8n-packages/engine/n8n-package-parser.js +72 -13
- package/dist/modules/n8n-packages/engine/n8n-package-parser.js.map +1 -1
- package/dist/modules/n8n-packages/engine/package-layout.d.ts +11 -0
- package/dist/modules/n8n-packages/engine/package-layout.js +21 -0
- package/dist/modules/n8n-packages/engine/package-layout.js.map +1 -0
- package/dist/modules/n8n-packages/engine/project-package-importer.d.ts +11 -0
- package/dist/modules/n8n-packages/engine/project-package-importer.js +44 -0
- package/dist/modules/n8n-packages/engine/project-package-importer.js.map +1 -0
- package/dist/modules/n8n-packages/engine/workflow-package-importer.d.ts +24 -0
- package/dist/modules/n8n-packages/engine/workflow-package-importer.js +168 -0
- package/dist/modules/n8n-packages/engine/workflow-package-importer.js.map +1 -0
- package/dist/modules/n8n-packages/entities/credential/credential-matcher-factory.d.ts +3 -1
- package/dist/modules/n8n-packages/entities/credential/credential-matcher-factory.js +8 -2
- package/dist/modules/n8n-packages/entities/credential/credential-matcher-factory.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.d.ts +6 -6
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.js +34 -4
- package/dist/modules/n8n-packages/entities/credential/credential-matcher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-tier-selection.d.ts +3 -0
- package/dist/modules/n8n-packages/entities/credential/credential-tier-selection.js +27 -0
- package/dist/modules/n8n-packages/entities/credential/credential-tier-selection.js.map +1 -0
- package/dist/modules/n8n-packages/entities/credential/credential.exporter.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/credential/credential.exporter.js +18 -2
- package/dist/modules/n8n-packages/entities/credential/credential.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.d.ts +3 -7
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js +8 -23
- package/dist/modules/n8n-packages/entities/credential/id-based-credential-matcher.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/name-and-type-credential-matcher.d.ts +8 -0
- package/dist/modules/n8n-packages/entities/credential/name-and-type-credential-matcher.js +31 -0
- package/dist/modules/n8n-packages/entities/credential/name-and-type-credential-matcher.js.map +1 -0
- package/dist/modules/n8n-packages/entities/credential/type-only-credential-matcher.d.ts +8 -0
- package/dist/modules/n8n-packages/entities/credential/type-only-credential-matcher.js +31 -0
- package/dist/modules/n8n-packages/entities/credential/type-only-credential-matcher.js.map +1 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table-requirements.extractor.d.ts +6 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table-requirements.extractor.js +38 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table-requirements.extractor.js.map +1 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.exporter.d.ts +26 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.exporter.js +97 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.exporter.js.map +1 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.d.ts +5 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js +31 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.serializer.js.map +1 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.types.d.ts +4 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.types.js +3 -0
- package/dist/modules/n8n-packages/entities/data-table/data-table.types.js.map +1 -0
- package/dist/modules/n8n-packages/entities/folder/folder-conflict-policy.d.ts +5 -0
- package/dist/modules/n8n-packages/entities/folder/folder-conflict-policy.js +11 -0
- package/dist/modules/n8n-packages/entities/folder/folder-conflict-policy.js.map +1 -0
- package/dist/modules/n8n-packages/entities/folder/folder-import.types.d.ts +20 -0
- package/dist/modules/n8n-packages/entities/folder/folder-import.types.js +3 -0
- package/dist/modules/n8n-packages/entities/folder/folder-import.types.js.map +1 -0
- package/dist/modules/n8n-packages/entities/folder/folder-importer.d.ts +10 -0
- package/dist/modules/n8n-packages/entities/folder/folder-importer.js +140 -0
- package/dist/modules/n8n-packages/entities/folder/folder-importer.js.map +1 -0
- package/dist/modules/n8n-packages/entities/folder/folder.exporter.d.ts +5 -2
- package/dist/modules/n8n-packages/entities/folder/folder.exporter.js +48 -44
- package/dist/modules/n8n-packages/entities/folder/folder.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/folder/folder.serializer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/package-export.errors.d.ts +8 -0
- package/dist/modules/n8n-packages/entities/package-export.errors.js +27 -0
- package/dist/modules/n8n-packages/entities/package-export.errors.js.map +1 -0
- package/dist/modules/n8n-packages/entities/project/project-import.types.d.ts +15 -0
- package/dist/modules/n8n-packages/entities/project/project-import.types.js +3 -0
- package/dist/modules/n8n-packages/entities/project/project-import.types.js.map +1 -0
- package/dist/modules/n8n-packages/entities/project/project-importer.d.ts +13 -0
- package/dist/modules/n8n-packages/entities/project/project-importer.js +97 -0
- package/dist/modules/n8n-packages/entities/project/project-importer.js.map +1 -0
- package/dist/modules/n8n-packages/entities/project/project.exporter.d.ts +22 -4
- package/dist/modules/n8n-packages/entities/project/project.exporter.js +71 -26
- package/dist/modules/n8n-packages/entities/project/project.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/entities/requirements.types.d.ts +2 -0
- package/dist/modules/n8n-packages/entities/requirements.types.js +1 -0
- package/dist/modules/n8n-packages/entities/requirements.types.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.d.ts +4 -3
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +11 -17
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.service.d.ts +12 -3
- package/dist/modules/n8n-packages/n8n-packages.service.js +51 -11
- package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +47 -22
- package/dist/modules/n8n-packages/n8n-packages.types.js +5 -1
- package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
- package/dist/modules/n8n-packages/package-failure-classifier.d.ts +2 -0
- package/dist/modules/n8n-packages/package-failure-classifier.js +29 -0
- package/dist/modules/n8n-packages/package-failure-classifier.js.map +1 -0
- package/dist/modules/n8n-packages/spec/manifest.schema.d.ts +62 -0
- package/dist/modules/n8n-packages/spec/requirements.schema.d.ts +55 -0
- package/dist/modules/n8n-packages/spec/requirements.schema.js +26 -15
- package/dist/modules/n8n-packages/spec/requirements.schema.js.map +1 -1
- package/dist/modules/n8n-packages/spec/serialized/data-table.schema.d.ts +49 -0
- package/dist/modules/n8n-packages/spec/serialized/data-table.schema.js +20 -0
- package/dist/modules/n8n-packages/spec/serialized/data-table.schema.js.map +1 -0
- package/dist/modules/redaction/executions/execution-redaction.service.js +1 -1
- package/dist/modules/redaction/executions/execution-redaction.service.js.map +1 -1
- package/dist/modules/source-control.ee/constants.d.ts +1 -0
- package/dist/modules/source-control.ee/constants.js +2 -1
- package/dist/modules/source-control.ee/constants.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-git.service.ee.d.ts +0 -1
- package/dist/modules/source-control.ee/source-control-git.service.ee.js +0 -22
- package/dist/modules/source-control.ee/source-control-git.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-helper.ee.d.ts +3 -1
- package/dist/modules/source-control.ee/source-control-helper.ee.js +13 -0
- package/dist/modules/source-control.ee/source-control-helper.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +10 -2
- package/dist/modules/source-control.ee/source-control-import.service.ee.js +94 -59
- package/dist/modules/source-control.ee/source-control-import.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-status.service.ee.d.ts +0 -1
- package/dist/modules/source-control.ee/source-control-status.service.ee.js +30 -30
- package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +6 -6
- package/dist/modules/source-control.ee/source-control.service.ee.d.ts +3 -3
- package/dist/modules/source-control.ee/source-control.service.ee.js +8 -1
- package/dist/modules/source-control.ee/source-control.service.ee.js.map +1 -1
- package/dist/public-api/types.d.ts +5 -1
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js +9 -0
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +87 -38
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/security-policy/security-policy.handler.d.ts +8 -0
- package/dist/public-api/v1/handlers/security-policy/security-policy.handler.js +39 -0
- package/dist/public-api/v1/handlers/security-policy/security-policy.handler.js.map +1 -0
- package/dist/public-api/v1/openapi.yml +243 -12
- package/dist/scaling/job-processor.js +44 -6
- package/dist/scaling/job-processor.js.map +1 -1
- package/dist/scaling/pubsub/pubsub.event-map.d.ts +4 -1
- package/dist/scheduling/durable-job-provisioner.d.ts +16 -0
- package/dist/scheduling/durable-job-provisioner.js +135 -0
- package/dist/scheduling/durable-job-provisioner.js.map +1 -0
- package/dist/scheduling/durable-scheduler.d.ts +16 -0
- package/dist/scheduling/durable-scheduler.js +117 -0
- package/dist/scheduling/durable-scheduler.js.map +1 -0
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-task-handler.d.ts +23 -0
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-task-handler.js +149 -0
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-task-handler.js.map +1 -0
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-task.d.ts +10 -0
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-task.js +33 -0
- package/dist/scheduling/schedule-trigger-node/schedule-trigger-task.js.map +1 -0
- package/dist/scheduling/scheduler-tracer.d.ts +3 -0
- package/dist/scheduling/scheduler-tracer.js +11 -0
- package/dist/scheduling/scheduler-tracer.js.map +1 -0
- package/dist/services/folder-finder.service.d.ts +2 -0
- package/dist/services/folder-finder.service.js +16 -0
- package/dist/services/folder-finder.service.js.map +1 -1
- package/dist/services/folder.service.d.ts +3 -2
- package/dist/services/folder.service.js +11 -1
- package/dist/services/folder.service.js.map +1 -1
- package/dist/services/frontend.service.d.ts +3 -1
- package/dist/services/frontend.service.js +14 -2
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/project.service.ee.d.ts +7 -1
- package/dist/services/project.service.ee.js +21 -4
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/protected-resource.registry.d.ts +1 -0
- package/dist/services/protected-resource.registry.js +11 -7
- package/dist/services/protected-resource.registry.js.map +1 -1
- package/dist/services/security-settings.service.d.ts +31 -1
- package/dist/services/security-settings.service.js +75 -2
- package/dist/services/security-settings.service.js.map +1 -1
- package/dist/services/workflow-review-policy.service.d.ts +11 -0
- package/dist/services/workflow-review-policy.service.js +52 -0
- package/dist/services/workflow-review-policy.service.js.map +1 -0
- package/dist/telemetry/index.js +2 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/workflow-execute-additional-data.js +5 -4
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-helpers.js +26 -0
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflows/triggers/webhook-trigger-registrar.js +22 -15
- package/dist/workflows/triggers/webhook-trigger-registrar.js.map +1 -1
- package/dist/workflows/triggers/workflow-trigger-activator.js +1 -7
- package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
- package/dist/workflows/workflow-creation.service.d.ts +2 -0
- package/dist/workflows/workflow-creation.service.js +4 -2
- package/dist/workflows/workflow-creation.service.js.map +1 -1
- package/dist/workflows/workflow-execution.service.js +8 -5
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow-finder.service.d.ts +5 -2
- package/dist/workflows/workflow-finder.service.js +25 -2
- package/dist/workflows/workflow-finder.service.js.map +1 -1
- package/dist/workflows/workflow-history/workflow-history.service.d.ts +4 -1
- package/dist/workflows/workflow-history/workflow-history.service.js +3 -1
- package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
- package/dist/workflows/workflow-validation.service.js +3 -3
- package/dist/workflows/workflow-validation.service.js.map +1 -1
- package/dist/workflows/workflow.request.d.ts +7 -22
- package/dist/workflows/workflow.service.d.ts +2 -0
- package/dist/workflows/workflow.service.js +4 -2
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +1 -1
- package/dist/workflows/workflows.controller.js +8 -3
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +44 -39
- package/templates/form-trigger-completion.handlebars +6 -6
- package/dist/executions/execution-data/azure-store.ee.d.ts +0 -15
- package/dist/executions/execution-data/azure-store.ee.js +0 -117
- package/dist/executions/execution-data/azure-store.ee.js.map +0 -1
- package/dist/executions/execution-data/fs-store.d.ts +0 -16
- package/dist/executions/execution-data/fs-store.js +0 -118
- package/dist/executions/execution-data/fs-store.js.map +0 -1
- package/dist/executions/execution-data/s3-store.ee.d.ts +0 -15
- package/dist/executions/execution-data/s3-store.ee.js +0 -116
- package/dist/executions/execution-data/s3-store.ee.js.map +0 -1
- package/dist/modules/agents/builder/from-ai-node-parameters.d.ts +0 -7
- package/dist/modules/agents/builder/from-ai-node-parameters.js +0 -43
- package/dist/modules/agents/builder/from-ai-node-parameters.js.map +0 -1
- package/dist/modules/agents/builder/interactive/ask-llm.tool.d.ts +0 -2
- package/dist/modules/agents/builder/interactive/ask-llm.tool.js +0 -25
- package/dist/modules/agents/builder/interactive/ask-llm.tool.js.map +0 -1
- package/dist/modules/agents/builder/interactive/ask-question.tool.d.ts +0 -2
- package/dist/modules/agents/builder/interactive/ask-question.tool.js +0 -27
- package/dist/modules/agents/builder/interactive/ask-question.tool.js.map +0 -1
- package/dist/modules/agents/json-config/model-id.d.ts +0 -1
- package/dist/modules/agents/json-config/model-id.js +0 -8
- package/dist/modules/agents/json-config/model-id.js.map +0 -1
- package/dist/modules/agents/json-config/native-web-search-provider-tools.d.ts +0 -7
- package/dist/modules/agents/json-config/native-web-search-provider-tools.js +0 -55
- package/dist/modules/agents/json-config/native-web-search-provider-tools.js.map +0 -1
- package/dist/modules/n8n-packages/engine/import-pipeline.d.ts +0 -28
- package/dist/modules/n8n-packages/engine/import-pipeline.js +0 -204
- package/dist/modules/n8n-packages/engine/import-pipeline.js.map +0 -1
|
@@ -46,6 +46,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
46
46
|
};
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
48
|
exports.InstanceAiAdapterService = void 0;
|
|
49
|
+
exports.buildEvaluationConfigDto = buildEvaluationConfigDto;
|
|
50
|
+
exports.evaluationConfigToSummary = evaluationConfigToSummary;
|
|
49
51
|
exports.resolveDataTableByIdOrName = resolveDataTableByIdOrName;
|
|
50
52
|
exports.truncateResultData = truncateResultData;
|
|
51
53
|
exports.extractExecutionResult = extractExecutionResult;
|
|
@@ -58,10 +60,13 @@ const promises_1 = require("node:fs/promises");
|
|
|
58
60
|
const node_path_1 = __importDefault(require("node:path"));
|
|
59
61
|
const ai_utilities_1 = require("@n8n/ai-utilities");
|
|
60
62
|
const instance_ai_1 = require("@n8n/instance-ai");
|
|
63
|
+
const api_types_1 = require("@n8n/api-types");
|
|
61
64
|
const config_1 = require("@n8n/config");
|
|
62
65
|
const constants_1 = require("@n8n/constants");
|
|
66
|
+
const nanoid_1 = require("nanoid");
|
|
63
67
|
const extract_resolved_node_parameters_1 = require("./extract-resolved-node-parameters");
|
|
64
68
|
const instance_ai_settings_service_1 = require("./instance-ai-settings.service");
|
|
69
|
+
const workflow_templates_service_1 = require("./workflow-templates.service");
|
|
65
70
|
const instance_ai_run_pin_data_1 = require("./instance-ai-run-pin-data");
|
|
66
71
|
const node_definition_resolver_1 = require("./node-definition-resolver");
|
|
67
72
|
const web_research_1 = require("./web-research");
|
|
@@ -73,13 +78,17 @@ const permissions_1 = require("@n8n/permissions");
|
|
|
73
78
|
const typeorm_1 = require("@n8n/typeorm");
|
|
74
79
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
75
80
|
const active_executions_1 = require("../../active-executions");
|
|
81
|
+
const conflict_error_1 = require("../../errors/response-errors/conflict.error");
|
|
76
82
|
const credentials_finder_service_1 = require("../../credentials/credentials-finder.service");
|
|
77
83
|
const credentials_service_1 = require("../../credentials/credentials.service");
|
|
84
|
+
const evaluation_config_service_1 = require("../../evaluation.ee/evaluation-config.service");
|
|
78
85
|
const event_service_1 = require("../../events/event.service");
|
|
79
86
|
const execution_persistence_1 = require("../../executions/execution-persistence");
|
|
80
87
|
const license_1 = require("../../license");
|
|
81
88
|
const load_nodes_and_credentials_1 = require("../../load-nodes-and-credentials");
|
|
82
89
|
const node_types_1 = require("../../node-types");
|
|
90
|
+
const agents_credential_provider_1 = require("../../modules/agents/adapters/agents-credential-provider");
|
|
91
|
+
const instance_ai_builder_delegate_adapter_1 = require("../../modules/agents/instance-ai-builder-delegate.adapter");
|
|
83
92
|
const node_catalog_1 = require("../../node-catalog");
|
|
84
93
|
const data_table_repository_1 = require("../../modules/data-table/data-table.repository");
|
|
85
94
|
const data_table_service_1 = require("../../modules/data-table/data-table.service");
|
|
@@ -126,7 +135,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
126
135
|
});
|
|
127
136
|
return await promise;
|
|
128
137
|
}
|
|
129
|
-
constructor(logger, globalConfig, workflowService, workflowFinderService, workflowRepository, sharedWorkflowRepository, projectRepository, executionRepository, credentialsService, credentialsFinderService, activeExecutions, workflowRunner, loadNodesAndCredentials, nodeTypes, instanceSettings, dataTableService, dataTableRepository, nodeResourceExplorerService, folderService, projectService, tagService, sourceControlPreferencesService, settingsService, workflowHistoryService, enterpriseWorkflowService, license, executionPersistence, eventService, roleService, telemetry, aiBuilderTemporaryWorkflowRepository, ssrfProtectionService, outboundHttp, aiGatewayService, nodeCatalogService) {
|
|
138
|
+
constructor(logger, globalConfig, workflowService, workflowFinderService, workflowRepository, sharedWorkflowRepository, projectRepository, executionRepository, credentialsService, credentialsFinderService, activeExecutions, workflowRunner, loadNodesAndCredentials, nodeTypes, instanceSettings, dataTableService, dataTableRepository, nodeResourceExplorerService, folderService, projectService, tagService, sourceControlPreferencesService, settingsService, workflowHistoryService, enterpriseWorkflowService, license, executionPersistence, eventService, roleService, telemetry, aiBuilderTemporaryWorkflowRepository, ssrfProtectionService, outboundHttp, aiGatewayService, workflowTemplatesService, nodeCatalogService, evaluationConfigService) {
|
|
130
139
|
this.globalConfig = globalConfig;
|
|
131
140
|
this.workflowService = workflowService;
|
|
132
141
|
this.workflowFinderService = workflowFinderService;
|
|
@@ -160,7 +169,9 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
160
169
|
this.ssrfProtectionService = ssrfProtectionService;
|
|
161
170
|
this.outboundHttp = outboundHttp;
|
|
162
171
|
this.aiGatewayService = aiGatewayService;
|
|
172
|
+
this.workflowTemplatesService = workflowTemplatesService;
|
|
163
173
|
this.nodeCatalogService = nodeCatalogService;
|
|
174
|
+
this.evaluationConfigService = evaluationConfigService;
|
|
164
175
|
this.nodesCache = null;
|
|
165
176
|
this.NODES_CACHE_TTL_MS = 5 * 60 * 1000;
|
|
166
177
|
this.webResearchCache = new web_research_1.LRUCache({
|
|
@@ -178,7 +189,9 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
178
189
|
});
|
|
179
190
|
}
|
|
180
191
|
createContext(user, options) {
|
|
181
|
-
const { searchProxyConfig, pushRef, threadId, projectId, credentialIdAllowlist } = options ?? {};
|
|
192
|
+
const { searchProxyConfig, pushRef, threadId, projectId, credentialIdAllowlist, agentId } = options ?? {};
|
|
193
|
+
void this.trackGatewayAvailability();
|
|
194
|
+
const builderDelegateAdapter = this.getBuilderDelegateAdapter();
|
|
182
195
|
return {
|
|
183
196
|
userId: user.id,
|
|
184
197
|
projectId,
|
|
@@ -187,15 +200,66 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
187
200
|
credentialService: this.createCredentialAdapter(user, projectId, credentialIdAllowlist),
|
|
188
201
|
nodeService: this.createNodeAdapter(user),
|
|
189
202
|
dataTableService: this.createDataTableAdapter(user, projectId),
|
|
203
|
+
...(this.evaluationConfigService
|
|
204
|
+
? {
|
|
205
|
+
evaluationConfigService: this.createEvaluationConfigAdapter(this.evaluationConfigService, user),
|
|
206
|
+
}
|
|
207
|
+
: {}),
|
|
190
208
|
webResearchService: this.createWebResearchAdapter(user, searchProxyConfig),
|
|
191
209
|
workspaceService: this.createWorkspaceAdapter(user),
|
|
192
210
|
templatesService: this.getTemplatesService(),
|
|
211
|
+
workflowTemplateService: this.createWorkflowTemplateAdapter(),
|
|
193
212
|
licenseHints: this.buildLicenseHints(),
|
|
194
213
|
logger: this.logger,
|
|
195
214
|
nodeTypesProvider: this.nodeTypes,
|
|
196
215
|
allowSendingParameterValues: this.allowSendingParameterValues,
|
|
216
|
+
...(builderDelegateAdapter && agentId && projectId
|
|
217
|
+
? { agentBuilderTarget: { agentId, projectId } }
|
|
218
|
+
: {}),
|
|
219
|
+
...(builderDelegateAdapter && projectId
|
|
220
|
+
? {
|
|
221
|
+
builderDelegate: builderDelegateAdapter.createDelegate(user, projectId, new agents_credential_provider_1.AgentsCredentialProvider(this.credentialsService, projectId, user)),
|
|
222
|
+
}
|
|
223
|
+
: {}),
|
|
197
224
|
};
|
|
198
225
|
}
|
|
226
|
+
getBuilderDelegateAdapter() {
|
|
227
|
+
if (!di_1.Container.get(backend_common_1.ModuleRegistry).isActive('agents'))
|
|
228
|
+
return null;
|
|
229
|
+
try {
|
|
230
|
+
return di_1.Container.get(instance_ai_builder_delegate_adapter_1.InstanceAiBuilderDelegateAdapterService);
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
async getGatewayConfigOrNull() {
|
|
237
|
+
if (!this.license.isLicensed(constants_1.LICENSE_FEATURES.AI_GATEWAY))
|
|
238
|
+
return null;
|
|
239
|
+
try {
|
|
240
|
+
return await this.aiGatewayService.getGatewayConfig();
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
buildAiGatewayNodeMeta(config, nodeName) {
|
|
247
|
+
if (!config)
|
|
248
|
+
return undefined;
|
|
249
|
+
if (!config.nodes.includes(nodeName))
|
|
250
|
+
return undefined;
|
|
251
|
+
const meta = { supported: true };
|
|
252
|
+
const operations = config.supportedActions?.[nodeName];
|
|
253
|
+
if (operations && Object.keys(operations).length > 0)
|
|
254
|
+
meta.operations = operations;
|
|
255
|
+
const minVersion = config.minNodeTypeVersion?.[nodeName];
|
|
256
|
+
if (minVersion !== undefined)
|
|
257
|
+
meta.minVersion = minVersion;
|
|
258
|
+
const hiddenProperties = config.hiddenNodeProperties?.[nodeName];
|
|
259
|
+
if (hiddenProperties && hiddenProperties.length > 0)
|
|
260
|
+
meta.hiddenProperties = hiddenProperties;
|
|
261
|
+
return meta;
|
|
262
|
+
}
|
|
199
263
|
getTemplatesService() {
|
|
200
264
|
if (!this.templatesService) {
|
|
201
265
|
this.templatesService = new instance_ai_1.BuilderTemplatesService({
|
|
@@ -206,6 +270,14 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
206
270
|
}
|
|
207
271
|
return this.templatesService;
|
|
208
272
|
}
|
|
273
|
+
createWorkflowTemplateAdapter() {
|
|
274
|
+
const workflowTemplatesService = this.workflowTemplatesService;
|
|
275
|
+
return {
|
|
276
|
+
async getTemplate(templateId) {
|
|
277
|
+
return await workflowTemplatesService.getTemplate(templateId);
|
|
278
|
+
},
|
|
279
|
+
};
|
|
280
|
+
}
|
|
209
281
|
buildLicenseHints() {
|
|
210
282
|
const hints = [];
|
|
211
283
|
if (!this.license.isLicensed('feat:namedVersions')) {
|
|
@@ -216,6 +288,15 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
216
288
|
}
|
|
217
289
|
return hints;
|
|
218
290
|
}
|
|
291
|
+
async trackGatewayAvailability() {
|
|
292
|
+
const config = await this.getGatewayConfigOrNull();
|
|
293
|
+
if (!config)
|
|
294
|
+
return;
|
|
295
|
+
this.telemetry.track('instance_ai_gateway_available', {
|
|
296
|
+
nodeCount: config.nodes.length,
|
|
297
|
+
credentialTypeCount: config.credentialTypes.length,
|
|
298
|
+
});
|
|
299
|
+
}
|
|
219
300
|
assertInstanceNotReadOnly(resourceType) {
|
|
220
301
|
if (this.sourceControlPreferencesService.getPreferences().branchReadOnly) {
|
|
221
302
|
throw new Error(`Cannot modify ${resourceType} on a protected instance. This instance is in read-only mode.`);
|
|
@@ -286,7 +367,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
286
367
|
if (!workflow) {
|
|
287
368
|
throw new Error(`Workflow ${workflowId} not found or not accessible`);
|
|
288
369
|
}
|
|
289
|
-
return
|
|
370
|
+
return await toWorkflowDetailWithChecksum(workflow, { redactParameters });
|
|
290
371
|
},
|
|
291
372
|
async archive(workflowId) {
|
|
292
373
|
assertNotReadOnly();
|
|
@@ -480,9 +561,9 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
480
561
|
workflow_id: updated.id,
|
|
481
562
|
});
|
|
482
563
|
}
|
|
483
|
-
return
|
|
564
|
+
return await toWorkflowDetailWithChecksum(updated, { redactParameters });
|
|
484
565
|
},
|
|
485
|
-
async updateFromWorkflowJSON(workflowId, json,
|
|
566
|
+
async updateFromWorkflowJSON(workflowId, json, options) {
|
|
486
567
|
assertNotReadOnly();
|
|
487
568
|
const settings = (json.settings ?? {});
|
|
488
569
|
if (settings.redactionPolicy !== undefined) {
|
|
@@ -516,9 +597,13 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
516
597
|
}
|
|
517
598
|
updated = await workflowService.update(user, updateData, workflowId, {
|
|
518
599
|
source: 'n8n-ai',
|
|
600
|
+
...(options?.expectedChecksum ? { expectedChecksum: options.expectedChecksum } : {}),
|
|
519
601
|
});
|
|
520
602
|
}
|
|
521
603
|
catch (error) {
|
|
604
|
+
if (error instanceof conflict_error_1.ConflictError) {
|
|
605
|
+
throw new instance_ai_1.WorkflowSaveConflictError(workflowId);
|
|
606
|
+
}
|
|
522
607
|
logger.warn('AI-builder workflow save failed', {
|
|
523
608
|
threadId,
|
|
524
609
|
workflowId,
|
|
@@ -532,7 +617,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
532
617
|
workflow_id: workflowId,
|
|
533
618
|
});
|
|
534
619
|
}
|
|
535
|
-
return
|
|
620
|
+
return await toWorkflowDetailWithChecksum(updated, { redactParameters });
|
|
536
621
|
},
|
|
537
622
|
async listVersions(workflowId, options) {
|
|
538
623
|
const take = options?.limit ?? 20;
|
|
@@ -871,7 +956,8 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
871
956
|
};
|
|
872
957
|
}
|
|
873
958
|
createCredentialAdapter(user, boundProjectId, credentialIdAllowlist) {
|
|
874
|
-
const { credentialsService, credentialsFinderService, loadNodesAndCredentials
|
|
959
|
+
const { credentialsService, credentialsFinderService, loadNodesAndCredentials } = this;
|
|
960
|
+
const getGatewayConfig = async () => await this.getGatewayConfigOrNull();
|
|
875
961
|
const adapter = {
|
|
876
962
|
async list(options) {
|
|
877
963
|
if (boundProjectId) {
|
|
@@ -1116,13 +1202,12 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1116
1202
|
}
|
|
1117
1203
|
},
|
|
1118
1204
|
async isAiGatewayCredentialType(credType) {
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
}
|
|
1205
|
+
const config = await getGatewayConfig();
|
|
1206
|
+
return config?.credentialTypes.includes(credType) ?? false;
|
|
1207
|
+
},
|
|
1208
|
+
async listAiGatewayCredentialTypes() {
|
|
1209
|
+
const config = await getGatewayConfig();
|
|
1210
|
+
return config?.credentialTypes ?? [];
|
|
1126
1211
|
},
|
|
1127
1212
|
};
|
|
1128
1213
|
if (!credentialIdAllowlist)
|
|
@@ -1133,6 +1218,46 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1133
1218
|
list: async (options) => allowed.size === 0 ? [] : (await adapter.list(options)).filter((c) => allowed.has(c.id)),
|
|
1134
1219
|
};
|
|
1135
1220
|
}
|
|
1221
|
+
createEvaluationConfigAdapter(evaluationConfigService, user) {
|
|
1222
|
+
const { workflowFinderService } = this;
|
|
1223
|
+
const assertNotReadOnly = () => this.assertInstanceNotReadOnly('evaluations');
|
|
1224
|
+
const findWorkflow = async (workflowId, scope) => {
|
|
1225
|
+
const workflow = await workflowFinderService.findWorkflowForUser(workflowId, user, [scope]);
|
|
1226
|
+
if (!workflow) {
|
|
1227
|
+
throw new Error(`Workflow ${workflowId} not found or not accessible`);
|
|
1228
|
+
}
|
|
1229
|
+
return workflow;
|
|
1230
|
+
};
|
|
1231
|
+
return {
|
|
1232
|
+
async list(workflowId) {
|
|
1233
|
+
await findWorkflow(workflowId, 'workflow:read');
|
|
1234
|
+
const configs = await evaluationConfigService.list(workflowId);
|
|
1235
|
+
return configs.map(evaluationConfigToSummary);
|
|
1236
|
+
},
|
|
1237
|
+
async get(workflowId, configId) {
|
|
1238
|
+
await findWorkflow(workflowId, 'workflow:read');
|
|
1239
|
+
const config = await evaluationConfigService.get(workflowId, configId);
|
|
1240
|
+
return config ? evaluationConfigToSummary(config) : null;
|
|
1241
|
+
},
|
|
1242
|
+
async create(workflowId, input) {
|
|
1243
|
+
assertNotReadOnly();
|
|
1244
|
+
const workflow = await findWorkflow(workflowId, 'workflow:update');
|
|
1245
|
+
const config = await evaluationConfigService.create(workflowId, workflow, user, buildEvaluationConfigDto(input));
|
|
1246
|
+
return evaluationConfigToSummary(config);
|
|
1247
|
+
},
|
|
1248
|
+
async update(workflowId, configId, input) {
|
|
1249
|
+
assertNotReadOnly();
|
|
1250
|
+
const workflow = await findWorkflow(workflowId, 'workflow:update');
|
|
1251
|
+
const config = await evaluationConfigService.update(workflowId, configId, workflow, user, buildEvaluationConfigDto(input));
|
|
1252
|
+
return evaluationConfigToSummary(config);
|
|
1253
|
+
},
|
|
1254
|
+
async delete(workflowId, configId) {
|
|
1255
|
+
assertNotReadOnly();
|
|
1256
|
+
await findWorkflow(workflowId, 'workflow:update');
|
|
1257
|
+
await evaluationConfigService.delete(workflowId, configId);
|
|
1258
|
+
},
|
|
1259
|
+
};
|
|
1260
|
+
}
|
|
1136
1261
|
createDataTableAdapter(user, boundProjectId) {
|
|
1137
1262
|
const { dataTableService, dataTableRepository } = this;
|
|
1138
1263
|
const assertNotReadOnly = () => this.assertInstanceNotReadOnly('data tables');
|
|
@@ -1394,6 +1519,8 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1394
1519
|
}
|
|
1395
1520
|
createNodeAdapter(user) {
|
|
1396
1521
|
const getNodes = async () => await this.getNodesFromCache();
|
|
1522
|
+
const getGatewayConfig = async () => await this.getGatewayConfigOrNull();
|
|
1523
|
+
const buildMeta = (config, nodeName) => this.buildAiGatewayNodeMeta(config, nodeName);
|
|
1397
1524
|
const findNodeByVersion = (nodes, nodeType, version) => {
|
|
1398
1525
|
if (version !== undefined) {
|
|
1399
1526
|
const exact = nodes.find((n) => {
|
|
@@ -1410,24 +1537,34 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1410
1537
|
};
|
|
1411
1538
|
return {
|
|
1412
1539
|
async listAvailable(options) {
|
|
1413
|
-
const nodes = await
|
|
1540
|
+
const [nodes, gatewayConfig] = await Promise.all([
|
|
1541
|
+
getNodes(),
|
|
1542
|
+
options?.n8nConnectOnly ? getGatewayConfig() : Promise.resolve(null),
|
|
1543
|
+
]);
|
|
1414
1544
|
let filtered = nodes;
|
|
1415
1545
|
if (options?.query) {
|
|
1416
1546
|
const q = options.query.toLowerCase();
|
|
1417
|
-
filtered =
|
|
1547
|
+
filtered = filtered.filter((n) => n.displayName.toLowerCase().includes(q) ||
|
|
1418
1548
|
n.name.toLowerCase().includes(q) ||
|
|
1419
1549
|
n.description?.toLowerCase().includes(q));
|
|
1420
1550
|
}
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1551
|
+
const summaries = filtered.map((n) => {
|
|
1552
|
+
const summary = {
|
|
1553
|
+
name: n.name,
|
|
1554
|
+
displayName: n.displayName,
|
|
1555
|
+
description: n.description ?? '',
|
|
1556
|
+
group: n.group ?? [],
|
|
1557
|
+
version: Array.isArray(n.version) ? n.version[n.version.length - 1] : n.version,
|
|
1558
|
+
};
|
|
1559
|
+
const meta = buildMeta(gatewayConfig, n.name);
|
|
1560
|
+
if (meta)
|
|
1561
|
+
summary.aiGateway = meta;
|
|
1562
|
+
return summary;
|
|
1563
|
+
});
|
|
1564
|
+
return options?.n8nConnectOnly ? summaries.filter((s) => s.aiGateway) : summaries;
|
|
1428
1565
|
},
|
|
1429
1566
|
async listSearchable() {
|
|
1430
|
-
const nodes = await getNodes();
|
|
1567
|
+
const [nodes, gatewayConfig] = await Promise.all([getNodes(), getGatewayConfig()]);
|
|
1431
1568
|
const toStringArray = (value) => {
|
|
1432
1569
|
if (typeof value === 'string')
|
|
1433
1570
|
return value;
|
|
@@ -1442,6 +1579,9 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1442
1579
|
inputs: toStringArray(n.inputs),
|
|
1443
1580
|
outputs: toStringArray(n.outputs),
|
|
1444
1581
|
};
|
|
1582
|
+
const meta = buildMeta(gatewayConfig, n.name);
|
|
1583
|
+
if (meta)
|
|
1584
|
+
result.aiGateway = meta;
|
|
1445
1585
|
if (n.codex?.alias) {
|
|
1446
1586
|
result.codex = { alias: n.codex.alias };
|
|
1447
1587
|
}
|
|
@@ -1479,7 +1619,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1479
1619
|
});
|
|
1480
1620
|
},
|
|
1481
1621
|
async getDescription(nodeType, version) {
|
|
1482
|
-
const nodes = await getNodes();
|
|
1622
|
+
const [nodes, gatewayConfig] = await Promise.all([getNodes(), getGatewayConfig()]);
|
|
1483
1623
|
let desc = version !== undefined
|
|
1484
1624
|
? nodes.find((n) => {
|
|
1485
1625
|
if (n.name !== nodeType)
|
|
@@ -1495,6 +1635,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1495
1635
|
if (!desc) {
|
|
1496
1636
|
throw new Error(`Node type ${nodeType} not found`);
|
|
1497
1637
|
}
|
|
1638
|
+
const meta = buildMeta(gatewayConfig, desc.name);
|
|
1498
1639
|
return {
|
|
1499
1640
|
name: desc.name,
|
|
1500
1641
|
displayName: desc.displayName,
|
|
@@ -1529,6 +1670,7 @@ let InstanceAiAdapterService = class InstanceAiAdapterService {
|
|
|
1529
1670
|
...(desc.webhooks ? { webhooks: desc.webhooks } : {}),
|
|
1530
1671
|
...(desc.polling ? { polling: desc.polling } : {}),
|
|
1531
1672
|
...(desc.triggerPanel !== undefined ? { triggerPanel: desc.triggerPanel } : {}),
|
|
1673
|
+
...(meta ? { aiGateway: meta } : {}),
|
|
1532
1674
|
};
|
|
1533
1675
|
},
|
|
1534
1676
|
getNodeTypeDefinition: async (nodeType, options) => {
|
|
@@ -1853,10 +1995,60 @@ exports.InstanceAiAdapterService = InstanceAiAdapterService = __decorate([
|
|
|
1853
1995
|
backend_network_1.SsrfProtectionService,
|
|
1854
1996
|
backend_network_1.OutboundHttp,
|
|
1855
1997
|
ai_gateway_service_1.AiGatewayService,
|
|
1856
|
-
|
|
1998
|
+
workflow_templates_service_1.WorkflowTemplatesService,
|
|
1999
|
+
node_catalog_1.NodeCatalogService,
|
|
2000
|
+
evaluation_config_service_1.EvaluationConfigService])
|
|
1857
2001
|
], InstanceAiAdapterService);
|
|
1858
2002
|
const MAX_RESULT_CHARS = 20_000;
|
|
1859
2003
|
const MAX_NODE_OUTPUT_CHARS = 1_000;
|
|
2004
|
+
function buildEvaluationConfigDto(input) {
|
|
2005
|
+
return api_types_1.upsertEvaluationConfigSchema.parse({
|
|
2006
|
+
name: input.name,
|
|
2007
|
+
startNodeName: input.startNodeName,
|
|
2008
|
+
endNodeName: input.endNodeName,
|
|
2009
|
+
datasetSource: 'data_table',
|
|
2010
|
+
datasetRef: { dataTableId: input.dataTableId },
|
|
2011
|
+
metrics: input.metrics.map((metric) => ({
|
|
2012
|
+
id: (0, nanoid_1.nanoid)(),
|
|
2013
|
+
name: metric.name,
|
|
2014
|
+
type: 'llm_judge',
|
|
2015
|
+
config: {
|
|
2016
|
+
preset: metric.preset,
|
|
2017
|
+
...(metric.prompt ? { prompt: metric.prompt } : {}),
|
|
2018
|
+
provider: metric.provider,
|
|
2019
|
+
credentialId: metric.credentialId,
|
|
2020
|
+
model: metric.model,
|
|
2021
|
+
outputType: metric.outputType,
|
|
2022
|
+
inputs: {
|
|
2023
|
+
actualAnswer: metric.actualAnswer,
|
|
2024
|
+
...(metric.userQuery ? { userQuery: metric.userQuery } : {}),
|
|
2025
|
+
...(metric.expectedAnswer ? { expectedAnswer: metric.expectedAnswer } : {}),
|
|
2026
|
+
},
|
|
2027
|
+
},
|
|
2028
|
+
})),
|
|
2029
|
+
});
|
|
2030
|
+
}
|
|
2031
|
+
function evaluationConfigToSummary(config) {
|
|
2032
|
+
const dataTableId = config.datasetSource === 'data_table' && 'dataTableId' in config.datasetRef
|
|
2033
|
+
? config.datasetRef.dataTableId
|
|
2034
|
+
: undefined;
|
|
2035
|
+
return {
|
|
2036
|
+
id: config.id,
|
|
2037
|
+
workflowId: config.workflowId,
|
|
2038
|
+
name: config.name,
|
|
2039
|
+
status: config.status,
|
|
2040
|
+
invalidReason: config.invalidReason,
|
|
2041
|
+
startNodeName: config.startNodeName,
|
|
2042
|
+
endNodeName: config.endNodeName,
|
|
2043
|
+
metrics: config.metrics.map((metric) => ({
|
|
2044
|
+
id: metric.id,
|
|
2045
|
+
name: metric.name,
|
|
2046
|
+
type: metric.type,
|
|
2047
|
+
})),
|
|
2048
|
+
datasetSource: config.datasetSource,
|
|
2049
|
+
...(dataTableId !== undefined ? { dataTableId } : {}),
|
|
2050
|
+
};
|
|
2051
|
+
}
|
|
1860
2052
|
async function resolveDataTableByIdOrName(repository, logger, idOrName, options) {
|
|
1861
2053
|
const byId = await repository.findOneBy({ id: idOrName });
|
|
1862
2054
|
if (byId) {
|
|
@@ -1918,6 +2110,42 @@ function wrapResultDataEntries(data) {
|
|
|
1918
2110
|
}
|
|
1919
2111
|
return wrapped;
|
|
1920
2112
|
}
|
|
2113
|
+
const MAX_NODE_ERRORS = 10;
|
|
2114
|
+
function isFailedNodeRun(nodeRun) {
|
|
2115
|
+
return (nodeRun.executionStatus === 'error' ||
|
|
2116
|
+
nodeRun.error !== undefined ||
|
|
2117
|
+
nodeRun.redactedError !== undefined);
|
|
2118
|
+
}
|
|
2119
|
+
function nodeContinuesOnError(node) {
|
|
2120
|
+
return (node?.continueOnFail === true ||
|
|
2121
|
+
node?.onError === 'continueRegularOutput' ||
|
|
2122
|
+
node?.onError === 'continueErrorOutput');
|
|
2123
|
+
}
|
|
2124
|
+
function extractNodeErrors(runData, includeUpstreamDetails, workflowNodes = []) {
|
|
2125
|
+
if (!runData)
|
|
2126
|
+
return [];
|
|
2127
|
+
const nodesByName = new Map(workflowNodes.map((node) => [node.name, node]));
|
|
2128
|
+
const nodeErrors = [];
|
|
2129
|
+
for (const [nodeName, nodeRuns] of Object.entries(runData)) {
|
|
2130
|
+
if (nodeErrors.length >= MAX_NODE_ERRORS)
|
|
2131
|
+
break;
|
|
2132
|
+
if (nodeContinuesOnError(nodesByName.get(nodeName)))
|
|
2133
|
+
continue;
|
|
2134
|
+
const failedRun = nodeRuns.find(isFailedNodeRun);
|
|
2135
|
+
if (!failedRun)
|
|
2136
|
+
continue;
|
|
2137
|
+
const message = failedRun.error
|
|
2138
|
+
? formatExecutionError(failedRun.error, includeUpstreamDetails)
|
|
2139
|
+
: failedRun.redactedError
|
|
2140
|
+
? `${failedRun.redactedError.type} error${failedRun.redactedError.httpCode ? ` (${failedRun.redactedError.httpCode})` : ''}`
|
|
2141
|
+
: undefined;
|
|
2142
|
+
nodeErrors.push({
|
|
2143
|
+
nodeName,
|
|
2144
|
+
...(message ? { message } : {}),
|
|
2145
|
+
});
|
|
2146
|
+
}
|
|
2147
|
+
return nodeErrors;
|
|
2148
|
+
}
|
|
1921
2149
|
async function extractExecutionResult(executionId, includeOutputData = true) {
|
|
1922
2150
|
const execution = await di_1.Container.get(execution_persistence_1.ExecutionPersistence).findSingleExecution(executionId, {
|
|
1923
2151
|
includeData: true,
|
|
@@ -1934,9 +2162,9 @@ async function extractExecutionResult(executionId, includeOutputData = true) {
|
|
|
1934
2162
|
? 'waiting'
|
|
1935
2163
|
: 'success';
|
|
1936
2164
|
const resultData = {};
|
|
1937
|
-
const
|
|
2165
|
+
const runData = execution.data?.resultData?.runData;
|
|
2166
|
+
const executedNodeNames = Object.keys(runData ?? {});
|
|
1938
2167
|
if (includeOutputData) {
|
|
1939
|
-
const runData = execution.data?.resultData?.runData;
|
|
1940
2168
|
if (runData) {
|
|
1941
2169
|
for (const [nodeName, nodeRuns] of Object.entries(runData)) {
|
|
1942
2170
|
const lastRun = nodeRuns[nodeRuns.length - 1];
|
|
@@ -1954,6 +2182,7 @@ async function extractExecutionResult(executionId, includeOutputData = true) {
|
|
|
1954
2182
|
}
|
|
1955
2183
|
const error = execution.data?.resultData?.error;
|
|
1956
2184
|
const errorMessage = error ? formatExecutionError(error, includeOutputData) : undefined;
|
|
2185
|
+
const nodeErrors = extractNodeErrors(runData, includeOutputData, execution.workflowData?.nodes);
|
|
1957
2186
|
return {
|
|
1958
2187
|
executionId,
|
|
1959
2188
|
status,
|
|
@@ -1961,6 +2190,7 @@ async function extractExecutionResult(executionId, includeOutputData = true) {
|
|
|
1961
2190
|
? wrapResultDataEntries(truncateResultData(resultData))
|
|
1962
2191
|
: undefined,
|
|
1963
2192
|
executedNodeNames: executedNodeNames.length > 0 ? executedNodeNames : undefined,
|
|
2193
|
+
nodeErrors: nodeErrors.length > 0 ? nodeErrors : undefined,
|
|
1964
2194
|
lastNodeExecuted: execution.data?.resultData?.lastNodeExecuted,
|
|
1965
2195
|
error: errorMessage,
|
|
1966
2196
|
startedAt: execution.startedAt?.toISOString(),
|
|
@@ -2113,7 +2343,7 @@ async function extractExecutionDebugInfo(executionId, includeOutputData = true,
|
|
|
2113
2343
|
nodeTrace.push({
|
|
2114
2344
|
name: nodeName,
|
|
2115
2345
|
type: nodeType,
|
|
2116
|
-
status: lastRun
|
|
2346
|
+
status: isFailedNodeRun(lastRun) ? 'error' : 'success',
|
|
2117
2347
|
startedAt: lastRun.startTime !== undefined ? new Date(lastRun.startTime).toISOString() : undefined,
|
|
2118
2348
|
finishedAt: lastRun.startTime !== undefined && lastRun.executionTime !== undefined
|
|
2119
2349
|
? new Date(lastRun.startTime + lastRun.executionTime).toISOString()
|
|
@@ -2247,4 +2477,9 @@ function toWorkflowDetail(workflow, options) {
|
|
|
2247
2477
|
settings: workflow.settings,
|
|
2248
2478
|
};
|
|
2249
2479
|
}
|
|
2480
|
+
async function toWorkflowDetailWithChecksum(workflow, options) {
|
|
2481
|
+
const detail = toWorkflowDetail(workflow, options);
|
|
2482
|
+
detail.checksum = await (0, n8n_workflow_1.calculateWorkflowChecksum)(workflow);
|
|
2483
|
+
return detail;
|
|
2484
|
+
}
|
|
2250
2485
|
//# sourceMappingURL=instance-ai.adapter.service.js.map
|