n8n 2.22.4 → 2.23.0
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/auth/auth.service.d.ts +2 -0
- package/dist/auth/auth.service.js +15 -4
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/chat/chat-service.types.d.ts +4 -4
- package/dist/commands/execute.d.ts +2 -2
- package/dist/commands/export/workflow.js +1 -0
- package/dist/commands/export/workflow.js.map +1 -1
- package/dist/commands/license/info.js +4 -4
- package/dist/commands/license/info.js.map +1 -1
- package/dist/commands/start.js +21 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/controllers/annotation-tags.controller.ee.d.ts +1 -1
- package/dist/controllers/e2e.controller.js +1 -0
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/oauth/oauth1-credential.controller.d.ts +1 -1
- package/dist/controllers/oauth/oauth1-credential.controller.js +4 -7
- package/dist/controllers/oauth/oauth1-credential.controller.js.map +1 -1
- package/dist/controllers/oauth/oauth2-credential.controller.js +3 -6
- package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
- package/dist/controllers/redaction-enforcement-mapper.d.ts +3 -0
- package/dist/controllers/redaction-enforcement-mapper.js +27 -0
- package/dist/controllers/redaction-enforcement-mapper.js.map +1 -0
- package/dist/controllers/security-settings.controller.d.ts +8 -2
- package/dist/controllers/security-settings.controller.js +35 -25
- package/dist/controllers/security-settings.controller.js.map +1 -1
- package/dist/credentials/credential-connection-status-provider.interface.d.ts +3 -0
- package/dist/credentials/credential-connection-status-provider.interface.js +3 -0
- package/dist/credentials/credential-connection-status-provider.interface.js.map +1 -0
- package/dist/credentials/credential-connection-status-proxy.d.ts +6 -0
- package/dist/credentials/credential-connection-status-proxy.js +25 -0
- package/dist/credentials/credential-connection-status-proxy.js.map +1 -0
- package/dist/credentials/credential-resolution-provider.interface.d.ts +1 -0
- package/dist/credentials/credentials.controller.d.ts +2 -0
- package/dist/credentials/credentials.service.d.ts +10 -1
- package/dist/credentials/credentials.service.ee.d.ts +2 -0
- package/dist/credentials/credentials.service.ee.js +13 -3
- package/dist/credentials/credentials.service.ee.js.map +1 -1
- package/dist/credentials/credentials.service.js +34 -7
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/credentials/dynamic-credentials-proxy.d.ts +2 -0
- package/dist/credentials/dynamic-credentials-proxy.js +9 -0
- package/dist/credentials/dynamic-credentials-proxy.js.map +1 -1
- package/dist/credentials-helper.js +2 -1
- package/dist/credentials-helper.js.map +1 -1
- package/dist/errors/feature-not-licensed.error.d.ts +3 -1
- package/dist/errors/feature-not-licensed.error.js +2 -2
- package/dist/errors/feature-not-licensed.error.js.map +1 -1
- package/dist/evaluation.ee/evaluation-collection.service.js +2 -0
- package/dist/evaluation.ee/evaluation-collection.service.js.map +1 -1
- package/dist/evaluation.ee/insights/eval-insights.controller.ee.d.ts +41 -0
- package/dist/evaluation.ee/insights/eval-insights.controller.ee.js +62 -0
- package/dist/evaluation.ee/insights/eval-insights.controller.ee.js.map +1 -0
- package/dist/evaluation.ee/insights/eval-insights.service.d.ts +25 -0
- package/dist/evaluation.ee/insights/eval-insights.service.js +206 -0
- package/dist/evaluation.ee/insights/eval-insights.service.js.map +1 -0
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.d.ts +3 -2
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.js +16 -2
- package/dist/evaluation.ee/test-runner/test-runner.service.ee.js.map +1 -1
- package/dist/events/relays/telemetry.event-relay.d.ts +3 -1
- package/dist/events/relays/telemetry.event-relay.js +9 -3
- package/dist/events/relays/telemetry.event-relay.js.map +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.d.ts +1 -1
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js +4 -2
- package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
- package/dist/executions/execution-data/db-store.d.ts +4 -2
- package/dist/executions/execution-data/db-store.js +9 -4
- package/dist/executions/execution-data/db-store.js.map +1 -1
- package/dist/executions/execution-data/missing-execution-data.error.d.ts +5 -0
- package/dist/executions/execution-data/missing-execution-data.error.js +11 -0
- package/dist/executions/execution-data/missing-execution-data.error.js.map +1 -0
- package/dist/executions/execution-data/types.d.ts +3 -2
- package/dist/executions/execution-data/types.js.map +1 -1
- package/dist/executions/execution-persistence.d.ts +12 -3
- package/dist/executions/execution-persistence.js +102 -26
- package/dist/executions/execution-persistence.js.map +1 -1
- package/dist/external-hooks.d.ts +6 -1
- package/dist/external-hooks.js.map +1 -1
- package/dist/instance-settings-loader/loaders/sso/provisioning.instance-settings-loader.d.ts +3 -2
- package/dist/instance-settings-loader/loaders/sso/provisioning.instance-settings-loader.js +17 -12
- package/dist/instance-settings-loader/loaders/sso/provisioning.instance-settings-loader.js.map +1 -1
- package/dist/interfaces.d.ts +1 -0
- package/dist/license.d.ts +2 -0
- package/dist/license.js +6 -0
- package/dist/license.js.map +1 -1
- package/dist/load-nodes-and-credentials.d.ts +32 -4
- package/dist/manual-execution.service.js +3 -0
- package/dist/manual-execution.service.js.map +1 -1
- package/dist/modules/agents/agent-execution.service.js +5 -5
- package/dist/modules/agents/agent-execution.service.js.map +1 -1
- package/dist/modules/agents/agent-sse-stream.js +17 -1
- package/dist/modules/agents/agent-sse-stream.js.map +1 -1
- package/dist/modules/agents/agents-tools.service.js +7 -5
- package/dist/modules/agents/agents-tools.service.js.map +1 -1
- package/dist/modules/agents/agents.controller.d.ts +29 -3
- package/dist/modules/agents/agents.controller.js +88 -7
- package/dist/modules/agents/agents.controller.js.map +1 -1
- package/dist/modules/agents/agents.module.d.ts +1 -1
- package/dist/modules/agents/agents.module.js +12 -6
- package/dist/modules/agents/agents.module.js.map +1 -1
- package/dist/modules/agents/agents.service.d.ts +7 -8
- package/dist/modules/agents/agents.service.js +120 -65
- package/dist/modules/agents/agents.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-model-recommendations.d.ts +1 -1
- package/dist/modules/agents/builder/agents-builder-model-recommendations.js +3 -3
- package/dist/modules/agents/builder/agents-builder-model-recommendations.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-prompts.d.ts +9 -17
- package/dist/modules/agents/builder/agents-builder-prompts.js +145 -549
- package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-settings.service.js +2 -2
- package/dist/modules/agents/builder/agents-builder-settings.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder-tools.service.js +10 -10
- package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder.service.d.ts +3 -1
- package/dist/modules/agents/builder/agents-builder.service.js +58 -9
- package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js +2 -2
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/ask-llm.tool.js +2 -2
- package/dist/modules/agents/builder/interactive/ask-llm.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/ask-question.tool.js +2 -2
- package/dist/modules/agents/builder/interactive/ask-question.tool.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.d.ts +1 -0
- package/dist/modules/agents/builder/prompts/config-mutation.prompt.js +132 -0
- package/dist/modules/agents/builder/prompts/config-mutation.prompt.js.map +1 -0
- package/dist/modules/agents/builder/prompts/config-rules.prompt.d.ts +2 -0
- package/dist/modules/agents/builder/prompts/config-rules.prompt.js +63 -0
- package/dist/modules/agents/builder/prompts/config-rules.prompt.js.map +1 -0
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.d.ts +1 -0
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +47 -0
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js.map +1 -0
- package/dist/modules/agents/builder/prompts/memory.prompt.d.ts +1 -0
- package/dist/modules/agents/builder/prompts/memory.prompt.js +60 -0
- package/dist/modules/agents/builder/prompts/memory.prompt.js.map +1 -0
- package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -0
- package/dist/modules/agents/builder/prompts/tools.prompt.js +81 -0
- package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -0
- package/dist/modules/agents/builder/skills/index.d.ts +2 -0
- package/dist/modules/agents/builder/skills/index.js +12 -0
- package/dist/modules/agents/builder/skills/index.js.map +1 -0
- package/dist/modules/agents/builder/skills/integrations.skill.d.ts +2 -0
- package/dist/modules/agents/builder/skills/integrations.skill.js +53 -0
- package/dist/modules/agents/builder/skills/integrations.skill.js.map +1 -0
- package/dist/modules/agents/builder/skills/research.skill.d.ts +2 -0
- package/dist/modules/agents/builder/skills/research.skill.js +42 -0
- package/dist/modules/agents/builder/skills/research.skill.js.map +1 -0
- package/dist/modules/agents/builder/skills/target-skills.skill.d.ts +2 -0
- package/dist/modules/agents/builder/skills/target-skills.skill.js +59 -0
- package/dist/modules/agents/builder/skills/target-skills.skill.js.map +1 -0
- package/dist/modules/agents/entities/{agent-published-version.entity.d.ts → agent-history.entity.d.ts} +4 -7
- package/dist/modules/agents/entities/{agent-published-version.entity.js → agent-history.entity.js} +22 -34
- package/dist/modules/agents/entities/agent-history.entity.js.map +1 -0
- package/dist/modules/agents/entities/agent-memory-entry-cursor.entity.d.ts +7 -0
- package/dist/modules/agents/entities/agent-memory-entry-cursor.entity.js +38 -0
- package/dist/modules/agents/entities/agent-memory-entry-cursor.entity.js.map +1 -0
- package/dist/modules/agents/entities/agent-memory-entry-lock.entity.d.ts +7 -0
- package/dist/modules/{instance-ai/entities/instance-ai-workflow-snapshot.entity.js → agents/entities/agent-memory-entry-lock.entity.js} +16 -19
- package/dist/modules/agents/entities/agent-memory-entry-lock.entity.js.map +1 -0
- package/dist/modules/agents/entities/agent-memory-entry-source.entity.d.ts +9 -0
- package/dist/modules/agents/entities/agent-memory-entry-source.entity.js +49 -0
- package/dist/modules/agents/entities/agent-memory-entry-source.entity.js.map +1 -0
- package/dist/modules/agents/entities/agent-memory-entry.entity.d.ts +15 -0
- package/dist/modules/agents/entities/agent-memory-entry.entity.js +65 -0
- package/dist/modules/agents/entities/agent-memory-entry.entity.js.map +1 -0
- package/dist/modules/agents/entities/agent-observation-cursor.entity.d.ts +2 -3
- package/dist/modules/agents/entities/agent-observation-cursor.entity.js +5 -4
- package/dist/modules/agents/entities/agent-observation-cursor.entity.js.map +1 -1
- package/dist/modules/agents/entities/agent-observation-lock.entity.d.ts +2 -3
- package/dist/modules/agents/entities/agent-observation-lock.entity.js +5 -4
- package/dist/modules/agents/entities/agent-observation-lock.entity.js.map +1 -1
- package/dist/modules/agents/entities/agent-observation.entity.d.ts +2 -3
- package/dist/modules/agents/entities/agent-observation.entity.js +6 -5
- package/dist/modules/agents/entities/agent-observation.entity.js.map +1 -1
- package/dist/modules/agents/entities/agent.entity.d.ts +3 -5
- package/dist/modules/agents/entities/agent.entity.js +7 -14
- package/dist/modules/agents/entities/agent.entity.js.map +1 -1
- package/dist/modules/agents/episodic-memory.d.ts +2 -0
- package/dist/modules/agents/episodic-memory.js +12 -0
- package/dist/modules/agents/episodic-memory.js.map +1 -0
- package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +2 -1
- package/dist/modules/agents/integrations/agent-chat-bridge.js +19 -5
- package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
- package/dist/modules/agents/integrations/agent-schedule.service.js +10 -6
- package/dist/modules/agents/integrations/agent-schedule.service.js.map +1 -1
- package/dist/modules/agents/integrations/chat-integration.service.js +1 -1
- package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
- package/dist/modules/agents/integrations/n8n-memory.d.ts +41 -18
- package/dist/modules/agents/integrations/n8n-memory.js +519 -77
- package/dist/modules/agents/integrations/n8n-memory.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack-integration.js +2 -12
- package/dist/modules/agents/integrations/platforms/slack-integration.js.map +1 -1
- package/dist/modules/agents/integrations/rich-interaction-tool.d.ts +1 -1
- package/dist/modules/agents/integrations/rich-interaction-tool.js +2 -2
- package/dist/modules/agents/integrations/rich-interaction-tool.js.map +1 -1
- package/dist/modules/agents/integrations/slack-app-setup.service.d.ts +52 -0
- package/dist/modules/agents/integrations/slack-app-setup.service.js +316 -0
- package/dist/modules/agents/integrations/slack-app-setup.service.js.map +1 -0
- package/dist/modules/agents/json-config/from-json-config.d.ts +2 -3
- package/dist/modules/agents/json-config/from-json-config.js +76 -61
- package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
- package/dist/modules/agents/json-config/schema-text-serializer.js +2 -1
- package/dist/modules/agents/json-config/schema-text-serializer.js.map +1 -1
- package/dist/modules/agents/repositories/agent-history.repository.d.ts +19 -0
- package/dist/modules/agents/repositories/agent-history.repository.js +51 -0
- package/dist/modules/agents/repositories/agent-history.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent-memory-entry-cursor.repository.d.ts +5 -0
- package/dist/modules/{instance-ai/repositories/instance-ai-workflow-snapshot.repository.js → agents/repositories/agent-memory-entry-cursor.repository.js} +8 -8
- package/dist/modules/agents/repositories/agent-memory-entry-cursor.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent-memory-entry-lock.repository.d.ts +5 -0
- package/dist/modules/{instance-ai/repositories/instance-ai-observational-memory.repository.js → agents/repositories/agent-memory-entry-lock.repository.js} +8 -8
- package/dist/modules/agents/repositories/agent-memory-entry-lock.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent-memory-entry-source.repository.d.ts +5 -0
- package/dist/modules/agents/repositories/agent-memory-entry-source.repository.js +26 -0
- package/dist/modules/agents/repositories/agent-memory-entry-source.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent-memory-entry.repository.d.ts +5 -0
- package/dist/modules/agents/repositories/agent-memory-entry.repository.js +26 -0
- package/dist/modules/agents/repositories/agent-memory-entry.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent.repository.js +3 -3
- package/dist/modules/agents/repositories/agent.repository.js.map +1 -1
- package/dist/modules/agents/runtime/agent-secure-runtime.js +5 -5
- package/dist/modules/agents/runtime/agent-secure-runtime.js.map +1 -1
- package/dist/modules/agents/tools/environment-tool.d.ts +1 -1
- package/dist/modules/agents/tools/environment-tool.js +3 -3
- package/dist/modules/agents/tools/environment-tool.js.map +1 -1
- package/dist/modules/agents/tools/node-tool-factory.js +5 -5
- package/dist/modules/agents/tools/node-tool-factory.js.map +1 -1
- package/dist/modules/agents/tools/workflow-tool-factory.js +3 -3
- package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
- package/dist/modules/agents/tracing/builder-telemetry.d.ts +2 -3
- package/dist/modules/agents/tracing/builder-telemetry.js +36 -3
- package/dist/modules/agents/tracing/builder-telemetry.js.map +1 -1
- package/dist/modules/agents/utils/agent-draft.utils.js +1 -2
- package/dist/modules/agents/utils/agent-draft.utils.js.map +1 -1
- package/dist/modules/agents/utils/agent-memory-scope.d.ts +3 -0
- package/dist/modules/agents/utils/agent-memory-scope.js +15 -0
- package/dist/modules/agents/utils/agent-memory-scope.js.map +1 -0
- package/dist/modules/chat-hub/chat-hub.constants.js +4 -0
- package/dist/modules/chat-hub/chat-hub.constants.js.map +1 -1
- package/dist/modules/chat-hub/context-limits.js +1 -0
- package/dist/modules/chat-hub/context-limits.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/constants.d.ts +3 -0
- package/dist/modules/dynamic-credentials.ee/constants.js +7 -0
- package/dist/modules/dynamic-credentials.ee/constants.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js +14 -2
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/n8n-identifier.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +2 -2
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js +18 -4
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.d.ts +1 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js +4 -1
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.module.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/errors/system-resolver-modification.error.d.ts +4 -0
- package/dist/modules/dynamic-credentials.ee/errors/system-resolver-modification.error.js +11 -0
- package/dist/modules/dynamic-credentials.ee/errors/system-resolver-modification.error.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.d.ts +7 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +40 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.d.ts +3 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js +6 -3
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver-workflow.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +2 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +22 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.d.ts +3 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js +7 -3
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential-storage.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.d.ts +4 -1
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +11 -3
- package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/index.d.ts +2 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js +2 -0
- package/dist/modules/dynamic-credentials.ee/services/index.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/n8n-resolver-seeder.service.d.ts +14 -0
- package/dist/modules/dynamic-credentials.ee/services/n8n-resolver-seeder.service.js +70 -0
- package/dist/modules/dynamic-credentials.ee/services/n8n-resolver-seeder.service.js.map +1 -0
- package/dist/modules/insights/insights-collection.service.js +1 -1
- package/dist/modules/insights/insights-collection.service.js.map +1 -1
- package/dist/modules/instance-ai/entities/index.d.ts +6 -2
- package/dist/modules/instance-ai/entities/index.js +9 -5
- package/dist/modules/instance-ai/entities/index.js.map +1 -1
- package/dist/modules/instance-ai/entities/instance-ai-checkpoint.entity.d.ts +12 -0
- package/dist/modules/instance-ai/entities/instance-ai-checkpoint.entity.js +54 -0
- package/dist/modules/instance-ai/entities/instance-ai-checkpoint.entity.js.map +1 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation-cursor.entity.d.ts +6 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation-cursor.entity.js +33 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation-cursor.entity.js.map +1 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation-lock.entity.d.ts +8 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation-lock.entity.js +37 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation-lock.entity.js.map +1 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation.entity.d.ts +12 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation.entity.js +52 -0
- package/dist/modules/instance-ai/entities/instance-ai-observation.entity.js.map +1 -0
- package/dist/modules/instance-ai/entities/instance-ai-pending-confirmation.entity.d.ts +19 -0
- package/dist/modules/instance-ai/entities/instance-ai-pending-confirmation.entity.js +82 -0
- package/dist/modules/instance-ai/entities/instance-ai-pending-confirmation.entity.js.map +1 -0
- package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.d.ts +2 -0
- package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.js +8 -0
- package/dist/modules/instance-ai/entities/instance-ai-run-snapshot.entity.js.map +1 -1
- package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.d.ts +12 -2
- package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js +40 -4
- package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js.map +1 -1
- package/dist/modules/instance-ai/eval/execution.service.d.ts +8 -2
- package/dist/modules/instance-ai/eval/execution.service.js +137 -47
- package/dist/modules/instance-ai/eval/execution.service.js.map +1 -1
- package/dist/modules/instance-ai/eval/llm-wire-server.d.ts +31 -0
- package/dist/modules/instance-ai/eval/llm-wire-server.js +127 -0
- package/dist/modules/instance-ai/eval/llm-wire-server.js.map +1 -0
- package/dist/modules/instance-ai/eval/openai-envelope.d.ts +6 -0
- package/dist/modules/instance-ai/eval/openai-envelope.js +96 -0
- package/dist/modules/instance-ai/eval/openai-envelope.js.map +1 -0
- package/dist/modules/instance-ai/eval/proxy-loopback.d.ts +1 -0
- package/dist/modules/instance-ai/eval/proxy-loopback.js +44 -0
- package/dist/modules/instance-ai/eval/proxy-loopback.js.map +1 -0
- package/dist/modules/instance-ai/eval/sub-agent-eval.service.js +29 -7
- package/dist/modules/instance-ai/eval/sub-agent-eval.service.js.map +1 -1
- package/dist/modules/instance-ai/eval/workflow-analysis.d.ts +7 -1
- package/dist/modules/instance-ai/eval/workflow-analysis.js +178 -3
- package/dist/modules/instance-ai/eval/workflow-analysis.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +6 -6
- package/dist/modules/instance-ai/instance-ai-memory.service.js +44 -85
- package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-settings.service.d.ts +2 -1
- package/dist/modules/instance-ai/instance-ai-settings.service.js +11 -22
- package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +2 -0
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +105 -13
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.module.d.ts +1 -1
- package/dist/modules/instance-ai/instance-ai.module.js +10 -6
- package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +34 -12
- package/dist/modules/instance-ai/instance-ai.service.js +724 -264
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.d.ts +4 -1
- package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.js +3 -1
- package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.js.map +1 -1
- package/dist/modules/instance-ai/message-parser.d.ts +3 -3
- package/dist/modules/instance-ai/message-parser.js +65 -61
- package/dist/modules/instance-ai/message-parser.js.map +1 -1
- package/dist/modules/instance-ai/node-definition-resolver.js +12 -48
- package/dist/modules/instance-ai/node-definition-resolver.js.map +1 -1
- package/dist/modules/instance-ai/repositories/index.d.ts +4 -2
- package/dist/modules/instance-ai/repositories/index.js +9 -5
- package/dist/modules/instance-ai/repositories/index.js.map +1 -1
- package/dist/modules/instance-ai/repositories/instance-ai-checkpoint.repository.d.ts +5 -0
- package/dist/modules/instance-ai/repositories/instance-ai-checkpoint.repository.js +26 -0
- package/dist/modules/instance-ai/repositories/instance-ai-checkpoint.repository.js.map +1 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation-cursor.repository.d.ts +5 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation-cursor.repository.js +26 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation-cursor.repository.js.map +1 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation-lock.repository.d.ts +5 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation-lock.repository.js +26 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation-lock.repository.js.map +1 -0
- package/dist/modules/instance-ai/repositories/instance-ai-observation.repository.d.ts +5 -0
- package/dist/modules/{agents/repositories/agent-published-version.repository.js → instance-ai/repositories/instance-ai-observation.repository.js} +8 -17
- package/dist/modules/instance-ai/repositories/instance-ai-observation.repository.js.map +1 -0
- package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +2 -0
- package/dist/modules/instance-ai/storage/db-snapshot-storage.js +12 -2
- package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -1
- package/dist/modules/instance-ai/storage/index.d.ts +2 -3
- package/dist/modules/instance-ai/storage/index.js +5 -7
- package/dist/modules/instance-ai/storage/index.js.map +1 -1
- package/dist/modules/instance-ai/storage/typeorm-agent-checkpoint-store.d.ts +15 -0
- package/dist/modules/instance-ai/storage/typeorm-agent-checkpoint-store.js +94 -0
- package/dist/modules/instance-ai/storage/typeorm-agent-checkpoint-store.js.map +1 -0
- package/dist/modules/instance-ai/storage/typeorm-agent-memory.d.ts +94 -0
- package/dist/modules/instance-ai/storage/typeorm-agent-memory.js +324 -0
- package/dist/modules/instance-ai/storage/typeorm-agent-memory.js.map +1 -0
- package/dist/modules/instance-ai/storage/typeorm-observation-log-store.d.ts +37 -0
- package/dist/modules/instance-ai/storage/typeorm-observation-log-store.js +212 -0
- package/dist/modules/instance-ai/storage/typeorm-observation-log-store.js.map +1 -0
- package/dist/modules/instance-ai/web-research/fetch-and-extract.js +34 -11
- package/dist/modules/instance-ai/web-research/fetch-and-extract.js.map +1 -1
- package/dist/modules/mcp/mcp.service.js +5 -5
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/tools/schemas.d.ts +24 -24
- package/dist/modules/mcp/tools/search-projects.tool.js +59 -13
- package/dist/modules/mcp/tools/search-projects.tool.js.map +1 -1
- package/dist/modules/mcp/tools/test-workflow.tool.d.ts +2 -2
- package/dist/modules/mcp/tools/workflow-builder/connection-structure-check.d.ts +35 -0
- package/dist/modules/mcp/tools/workflow-builder/connection-structure-check.js +88 -0
- package/dist/modules/mcp/tools/workflow-builder/connection-structure-check.js.map +1 -0
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.d.ts +3 -2
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js +41 -9
- package/dist/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/data-table-validation.d.ts +13 -0
- package/dist/modules/mcp/tools/workflow-builder/data-table-validation.js +87 -0
- package/dist/modules/mcp/tools/workflow-builder/data-table-validation.js.map +1 -0
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +2 -1
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js +42 -6
- package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.d.ts +2 -1
- package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js +5 -1
- package/dist/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.js.map +1 -1
- package/dist/modules/mcp/tools/workflow-validation.utils.js +1 -1
- package/dist/modules/mcp/tools/workflow-validation.utils.js.map +1 -1
- package/dist/modules/mcp-registry/mcp-registry-test.controller.js +5 -1
- package/dist/modules/mcp-registry/mcp-registry-test.controller.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.d.ts +18 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +73 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.d.ts +5 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +31 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -0
- package/dist/modules/n8n-packages/io/package-writer.d.ts +6 -0
- package/dist/{scaling/multi-main-setup.types.js → modules/n8n-packages/io/package-writer.js} +1 -1
- package/dist/modules/n8n-packages/io/package-writer.js.map +1 -0
- package/dist/modules/n8n-packages/io/slug.utils.d.ts +1 -0
- package/dist/modules/n8n-packages/io/slug.utils.js +16 -0
- package/dist/modules/n8n-packages/io/slug.utils.js.map +1 -0
- package/dist/modules/n8n-packages/io/tar/tar-package-writer.d.ts +9 -0
- package/dist/modules/n8n-packages/io/tar/tar-package-writer.js +71 -0
- package/dist/modules/n8n-packages/io/tar/tar-package-writer.js.map +1 -0
- package/dist/modules/n8n-packages/n8n-packages.controller.d.ts +10 -0
- package/dist/modules/n8n-packages/n8n-packages.controller.js +45 -0
- package/dist/modules/n8n-packages/n8n-packages.controller.js.map +1 -0
- package/dist/modules/{inbound-secrets/inbound-secrets.module.d.ts → n8n-packages/n8n-packages.module.d.ts} +1 -1
- package/dist/modules/{inbound-secrets/inbound-secrets.module.js → n8n-packages/n8n-packages.module.js} +12 -16
- package/dist/modules/n8n-packages/n8n-packages.module.js.map +1 -0
- package/dist/modules/n8n-packages/n8n-packages.service.d.ts +10 -0
- package/dist/modules/n8n-packages/n8n-packages.service.js +49 -0
- package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -0
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +5 -0
- package/dist/modules/n8n-packages/n8n-packages.types.js +3 -0
- package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -0
- package/dist/modules/n8n-packages/spec/constants.d.ts +1 -0
- package/dist/modules/n8n-packages/spec/constants.js +5 -0
- package/dist/modules/n8n-packages/spec/constants.js.map +1 -0
- package/dist/modules/n8n-packages/spec/manifest.schema.d.ts +55 -0
- package/dist/modules/n8n-packages/spec/manifest.schema.js +17 -0
- package/dist/modules/n8n-packages/spec/manifest.schema.js.map +1 -0
- package/dist/modules/n8n-packages/spec/serialized/workflow.schema.d.ts +169 -0
- package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js +46 -0
- package/dist/modules/n8n-packages/spec/serialized/workflow.schema.js.map +1 -0
- package/dist/modules/oauth-jwe/oauth-jwe-decrypt.service.d.ts +5 -1
- package/dist/modules/oauth-jwe/oauth-jwe-decrypt.service.js +18 -2
- package/dist/modules/oauth-jwe/oauth-jwe-decrypt.service.js.map +1 -1
- package/dist/modules/oauth-jwe/oauth-jwe.utils.js +27 -2
- package/dist/modules/oauth-jwe/oauth-jwe.utils.js.map +1 -1
- package/dist/modules/otel/execution-level-tracer.js +1 -0
- package/dist/modules/otel/execution-level-tracer.js.map +1 -1
- package/dist/modules/otel/execution-level-tracer.types.d.ts +11 -6
- package/dist/modules/otel/execution-level-tracer.types.js.map +1 -1
- package/dist/modules/otel/otel-lifecycle-handler.d.ts +5 -1
- package/dist/modules/otel/otel-lifecycle-handler.js +30 -2
- package/dist/modules/otel/otel-lifecycle-handler.js.map +1 -1
- package/dist/modules/otel/otel.constants.d.ts +1 -0
- package/dist/modules/otel/otel.constants.js +1 -0
- package/dist/modules/otel/otel.constants.js.map +1 -1
- package/dist/modules/runtime-credentials/path-traversal.js.map +1 -0
- package/dist/modules/runtime-credentials/runtime-credentials-access.service.d.ts +8 -0
- package/dist/modules/runtime-credentials/runtime-credentials-access.service.js +35 -0
- package/dist/modules/runtime-credentials/runtime-credentials-access.service.js.map +1 -0
- package/dist/modules/{inbound-secrets/inbound-secrets-context-hook.d.ts → runtime-credentials/runtime-credentials-context-hook.d.ts} +4 -5
- package/dist/modules/{inbound-secrets/inbound-secrets-context-hook.js → runtime-credentials/runtime-credentials-context-hook.js} +14 -22
- package/dist/modules/runtime-credentials/runtime-credentials-context-hook.js.map +1 -0
- package/dist/modules/runtime-credentials/runtime-credentials.config.d.ts +3 -0
- package/dist/modules/{inbound-secrets/inbound-secrets.config.js → runtime-credentials/runtime-credentials.config.js} +7 -7
- package/dist/modules/runtime-credentials/runtime-credentials.config.js.map +1 -0
- package/dist/modules/runtime-credentials/runtime-credentials.module.d.ts +4 -0
- package/dist/modules/runtime-credentials/runtime-credentials.module.js +65 -0
- package/dist/modules/runtime-credentials/runtime-credentials.module.js.map +1 -0
- package/dist/modules/runtime-credentials/runtime-credentials.schemas.d.ts +23 -0
- package/dist/modules/runtime-credentials/runtime-credentials.schemas.js +10 -0
- package/dist/modules/runtime-credentials/runtime-credentials.schemas.js.map +1 -0
- package/dist/modules/runtime-credentials/runtime-credentials.service.d.ts +18 -0
- package/dist/modules/{inbound-secrets/inbound-secrets.service.js → runtime-credentials/runtime-credentials.service.js} +31 -28
- package/dist/modules/runtime-credentials/runtime-credentials.service.js.map +1 -0
- package/dist/modules/source-control.ee/source-control-export.service.ee.d.ts +1 -1
- package/dist/modules/source-control.ee/source-control-export.service.ee.js +3 -1
- package/dist/modules/source-control.ee/source-control-export.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +2 -2
- package/dist/modules/source-control.ee/source-control-import.service.ee.js +29 -8
- 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.js +4 -4
- 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 +2 -2
- package/dist/modules/source-control.ee/source-control.service.ee.d.ts +1 -1
- package/dist/modules/source-control.ee/types/exportable-workflow.d.ts +2 -1
- package/dist/modules/sso-saml/saml.service.ee.js +5 -1
- package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
- package/dist/modules/workflow-index/workflow-dependency.controller.d.ts +1 -4
- package/dist/modules/workflow-index/workflow-dependency.controller.js +2 -13
- package/dist/modules/workflow-index/workflow-dependency.controller.js.map +1 -1
- package/dist/node-catalog/node-catalog.service.d.ts +1 -2
- package/dist/node-catalog/node-catalog.service.js +6 -10
- package/dist/node-catalog/node-catalog.service.js.map +1 -1
- package/dist/node-execution/ephemeral-node-executor.js +19 -11
- package/dist/node-execution/ephemeral-node-executor.js.map +1 -1
- package/dist/oauth/oauth-jwe-service.proxy.d.ts +12 -2
- package/dist/oauth/oauth-jwe-service.proxy.js +5 -0
- package/dist/oauth/oauth-jwe-service.proxy.js.map +1 -1
- package/dist/oauth/oauth.service.d.ts +6 -1
- package/dist/oauth/oauth.service.js +42 -4
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/permissions.ee/check-access.d.ts +2 -2
- package/dist/permissions.ee/check-access.js +15 -11
- package/dist/permissions.ee/check-access.js.map +1 -1
- package/dist/posthog/index.d.ts +2 -0
- package/dist/posthog/index.js +28 -6
- package/dist/posthog/index.js.map +1 -1
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.d.ts +10 -0
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +42 -0
- package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -0
- package/dist/public-api/v1/openapi.yml +55 -0
- package/dist/requests.d.ts +1 -1
- package/dist/scaling/constants.js +3 -0
- package/dist/scaling/constants.js.map +1 -1
- package/dist/scaling/multi-main-setup.ee.d.ts +12 -7
- package/dist/scaling/multi-main-setup.ee.js +125 -22
- package/dist/scaling/multi-main-setup.ee.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.js +3 -4
- package/dist/server.js.map +1 -1
- package/dist/services/dynamic-node-parameters.service.d.ts +0 -1
- package/dist/services/dynamic-node-parameters.service.js +6 -14
- package/dist/services/dynamic-node-parameters.service.js.map +1 -1
- package/dist/services/frontend.service.js +1 -1
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/import.service.js +3 -1
- package/dist/services/import.service.js.map +1 -1
- package/dist/services/proxy-token-manager.js +2 -13
- package/dist/services/proxy-token-manager.js.map +1 -1
- package/dist/services/runtime-credential-proxy.service.d.ts +9 -0
- package/dist/services/runtime-credential-proxy.service.js +29 -0
- package/dist/services/runtime-credential-proxy.service.js.map +1 -0
- package/dist/services/url.service.d.ts +1 -0
- package/dist/services/url.service.js +3 -0
- package/dist/services/url.service.js.map +1 -1
- package/dist/telemetry/index.d.ts +4 -1
- package/dist/telemetry/index.js +16 -8
- package/dist/telemetry/index.js.map +1 -1
- package/dist/utils.d.ts +2 -1
- package/dist/utils.js +10 -0
- package/dist/utils.js.map +1 -1
- package/dist/webhooks/live-webhooks.js +2 -2
- package/dist/webhooks/live-webhooks.js.map +1 -1
- package/dist/webhooks/webhook-helpers.js +1 -1
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/workflow-execute-additional-data.d.ts +3 -1
- package/dist/workflow-execute-additional-data.js +26 -3
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-helpers.d.ts +3 -1
- package/dist/workflow-helpers.js +39 -5
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflow-hook-context.service.d.ts +6 -0
- package/dist/workflow-hook-context.service.js +32 -0
- package/dist/workflow-hook-context.service.js.map +1 -0
- package/dist/workflow-runner.js +2 -1
- package/dist/workflow-runner.js.map +1 -1
- package/dist/workflows/utils.d.ts +3 -0
- package/dist/workflows/utils.js +19 -0
- package/dist/workflows/utils.js.map +1 -1
- 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.d.ts +4 -3
- package/dist/workflows/workflow-execution.service.js +8 -3
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow-finder.service.d.ts +6 -2
- package/dist/workflows/workflow-finder.service.js +18 -0
- package/dist/workflows/workflow-finder.service.js.map +1 -1
- package/dist/workflows/workflow-history/workflow-history.controller.d.ts +1 -1
- package/dist/workflows/workflow-history/workflow-history.service.d.ts +2 -1
- package/dist/workflows/workflow-history/workflow-history.service.js +1 -0
- package/dist/workflows/workflow-history/workflow-history.service.js.map +1 -1
- package/dist/workflows/workflow-validation.service.d.ts +3 -1
- package/dist/workflows/workflow-validation.service.js +6 -3
- package/dist/workflows/workflow-validation.service.js.map +1 -1
- package/dist/workflows/workflow.service.d.ts +3 -3
- package/dist/workflows/workflow.service.js +26 -4
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +31 -21
- package/dist/workflows/workflows.controller.js +6 -2
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +36 -34
- package/dist/modules/agents/entities/agent-published-version.entity.js.map +0 -1
- package/dist/modules/agents/repositories/agent-published-version.repository.d.ts +0 -20
- package/dist/modules/agents/repositories/agent-published-version.repository.js.map +0 -1
- package/dist/modules/inbound-secrets/inbound-secrets-context-hook.js.map +0 -1
- package/dist/modules/inbound-secrets/inbound-secrets.config.d.ts +0 -3
- package/dist/modules/inbound-secrets/inbound-secrets.config.js.map +0 -1
- package/dist/modules/inbound-secrets/inbound-secrets.module.js.map +0 -1
- package/dist/modules/inbound-secrets/inbound-secrets.schemas.d.ts +0 -3
- package/dist/modules/inbound-secrets/inbound-secrets.schemas.js +0 -6
- package/dist/modules/inbound-secrets/inbound-secrets.schemas.js.map +0 -1
- package/dist/modules/inbound-secrets/inbound-secrets.service.d.ts +0 -17
- package/dist/modules/inbound-secrets/inbound-secrets.service.js.map +0 -1
- package/dist/modules/inbound-secrets/path-traversal.js.map +0 -1
- package/dist/modules/instance-ai/compaction.service.d.ts +0 -24
- package/dist/modules/instance-ai/compaction.service.js +0 -213
- package/dist/modules/instance-ai/compaction.service.js.map +0 -1
- package/dist/modules/instance-ai/entities/instance-ai-observational-memory.entity.d.ts +0 -33
- package/dist/modules/instance-ai/entities/instance-ai-observational-memory.entity.js +0 -145
- package/dist/modules/instance-ai/entities/instance-ai-observational-memory.entity.js.map +0 -1
- package/dist/modules/instance-ai/entities/instance-ai-workflow-snapshot.entity.d.ts +0 -8
- package/dist/modules/instance-ai/entities/instance-ai-workflow-snapshot.entity.js.map +0 -1
- package/dist/modules/instance-ai/repositories/instance-ai-observational-memory.repository.d.ts +0 -5
- package/dist/modules/instance-ai/repositories/instance-ai-observational-memory.repository.js.map +0 -1
- package/dist/modules/instance-ai/repositories/instance-ai-workflow-snapshot.repository.d.ts +0 -5
- package/dist/modules/instance-ai/repositories/instance-ai-workflow-snapshot.repository.js.map +0 -1
- package/dist/modules/instance-ai/snapshot-pruning.service.d.ts +0 -17
- package/dist/modules/instance-ai/snapshot-pruning.service.js +0 -89
- package/dist/modules/instance-ai/snapshot-pruning.service.js.map +0 -1
- package/dist/modules/instance-ai/storage/typeorm-composite-store.d.ts +0 -9
- package/dist/modules/instance-ai/storage/typeorm-composite-store.js +0 -33
- package/dist/modules/instance-ai/storage/typeorm-composite-store.js.map +0 -1
- package/dist/modules/instance-ai/storage/typeorm-memory-storage.d.ts +0 -96
- package/dist/modules/instance-ai/storage/typeorm-memory-storage.js +0 -864
- package/dist/modules/instance-ai/storage/typeorm-memory-storage.js.map +0 -1
- package/dist/modules/instance-ai/storage/typeorm-workflows-storage.d.ts +0 -44
- package/dist/modules/instance-ai/storage/typeorm-workflows-storage.js +0 -156
- package/dist/modules/instance-ai/storage/typeorm-workflows-storage.js.map +0 -1
- package/dist/scaling/multi-main-setup-legacy.d.ts +0 -25
- package/dist/scaling/multi-main-setup-legacy.js +0 -75
- package/dist/scaling/multi-main-setup-legacy.js.map +0 -1
- package/dist/scaling/multi-main-setup-v2.d.ts +0 -25
- package/dist/scaling/multi-main-setup-v2.js +0 -143
- package/dist/scaling/multi-main-setup-v2.js.map +0 -1
- package/dist/scaling/multi-main-setup.types.d.ts +0 -6
- package/dist/scaling/multi-main-setup.types.js.map +0 -1
- /package/dist/modules/{inbound-secrets → runtime-credentials}/path-traversal.d.ts +0 -0
- /package/dist/modules/{inbound-secrets → runtime-credentials}/path-traversal.js +0 -0
|
@@ -39,10 +39,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.createCreateWorkflowFromCodeTool = void 0;
|
|
40
40
|
const db_1 = require("@n8n/db");
|
|
41
41
|
const zod_1 = __importDefault(require("zod"));
|
|
42
|
+
const connection_structure_check_1 = require("./connection-structure-check");
|
|
42
43
|
const constants_1 = require("./constants");
|
|
43
44
|
const credentials_auto_assign_1 = require("./credentials-auto-assign");
|
|
45
|
+
const data_table_validation_1 = require("./data-table-validation");
|
|
44
46
|
const mcp_constants_1 = require("../../mcp.constants");
|
|
45
47
|
const workflow_validation_utils_1 = require("../workflow-validation.utils");
|
|
48
|
+
const not_found_error_1 = require("../../../../errors/response-errors/not-found.error");
|
|
46
49
|
const workflow_helpers_1 = require("../../../../workflow-helpers");
|
|
47
50
|
const inputSchema = {
|
|
48
51
|
code: zod_1.default
|
|
@@ -61,7 +64,7 @@ const inputSchema = {
|
|
|
61
64
|
projectId: zod_1.default
|
|
62
65
|
.string()
|
|
63
66
|
.optional()
|
|
64
|
-
.describe("
|
|
67
|
+
.describe("Project ID to create the workflow in. If the user named a project (e.g. 'in my Marketing project'), you MUST call search_projects first to resolve the name to an ID and pass it here — do not guess. If search_projects returns multiple partial matches with no exact match, ask the user to clarify before creating the workflow. Only omit this field when the user did not mention a project at all; in that case it defaults to the user's personal project."),
|
|
65
68
|
folderId: zod_1.default
|
|
66
69
|
.string()
|
|
67
70
|
.optional()
|
|
@@ -79,6 +82,15 @@ const outputSchema = {
|
|
|
79
82
|
credentialType: zod_1.default.string().describe('The credential type that was auto-assigned'),
|
|
80
83
|
}))
|
|
81
84
|
.describe('List of credentials that were automatically assigned to nodes'),
|
|
85
|
+
targetProject: zod_1.default
|
|
86
|
+
.object({
|
|
87
|
+
id: zod_1.default.string().describe('The ID of the project the workflow was created in'),
|
|
88
|
+
name: zod_1.default.string().describe('The display name of the project the workflow was created in'),
|
|
89
|
+
type: zod_1.default
|
|
90
|
+
.enum(['personal', 'team'])
|
|
91
|
+
.describe('Whether the workflow landed in a personal or team project'),
|
|
92
|
+
})
|
|
93
|
+
.describe('The project the workflow was actually created in.'),
|
|
82
94
|
note: zod_1.default
|
|
83
95
|
.string()
|
|
84
96
|
.optional()
|
|
@@ -88,10 +100,10 @@ const outputSchema = {
|
|
|
88
100
|
.optional()
|
|
89
101
|
.describe('Actionable hint for recovering from the error. When present, follow the suggested action before retrying.'),
|
|
90
102
|
};
|
|
91
|
-
const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflowFinderService, urlService, telemetry, nodeTypes, credentialsService, projectRepository) => ({
|
|
103
|
+
const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflowFinderService, urlService, telemetry, nodeTypes, credentialsService, projectRepository, dataTableOps) => ({
|
|
92
104
|
name: constants_1.MCP_CREATE_WORKFLOW_FROM_CODE_TOOL.toolName,
|
|
93
105
|
config: {
|
|
94
|
-
description: `Create a workflow in n8n from validated SDK code. This tool expects code that already follows the n8n Workflow SDK patterns and has passed ${constants_1.CODE_BUILDER_VALIDATE_TOOL.toolName}. If code fails to parse, call get_sdk_reference, rewrite the code using the reference, validate again, then retry creation.`,
|
|
106
|
+
description: `Create a workflow in n8n from validated SDK code. This tool expects code that already follows the n8n Workflow SDK patterns and has passed ${constants_1.CODE_BUILDER_VALIDATE_TOOL.toolName}. If code fails to parse, call get_sdk_reference, rewrite the code using the reference, validate again, then retry creation. If the user named a target project, resolve it via search_projects before calling this tool; when projectId is omitted, the workflow is created in the user's personal project. After creation, always tell the user which project the workflow landed in (see the targetProject field in the response).`,
|
|
95
107
|
inputSchema,
|
|
96
108
|
outputSchema,
|
|
97
109
|
annotations: {
|
|
@@ -124,12 +136,16 @@ const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflo
|
|
|
124
136
|
};
|
|
125
137
|
}
|
|
126
138
|
let newWorkflow;
|
|
139
|
+
let landingProject = null;
|
|
127
140
|
try {
|
|
128
141
|
const { ParseValidateHandler, stripImportStatements } = await Promise.resolve().then(() => __importStar(require('@n8n/ai-workflow-builder')));
|
|
129
142
|
const handler = new ParseValidateHandler({ generatePinData: false });
|
|
130
143
|
const strippedCode = stripImportStatements(code);
|
|
131
144
|
const result = await handler.parseAndValidate(strippedCode);
|
|
132
145
|
const workflowJson = result.workflow;
|
|
146
|
+
const invalidToolSourceResponse = (0, connection_structure_check_1.buildInvalidAiToolSourceErrorResponse)(workflowJson, nodeTypes, (errorMessage) => ({ error: errorMessage }), telemetryPayload, telemetry);
|
|
147
|
+
if (invalidToolSourceResponse)
|
|
148
|
+
return invalidToolSourceResponse;
|
|
133
149
|
newWorkflow = new db_1.WorkflowEntity();
|
|
134
150
|
Object.assign(newWorkflow, {
|
|
135
151
|
name: name ?? workflowJson.name ?? 'Untitled Workflow',
|
|
@@ -142,14 +158,20 @@ const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflo
|
|
|
142
158
|
});
|
|
143
159
|
(0, workflow_helpers_1.resolveNodeWebhookIds)(newWorkflow, nodeTypes);
|
|
144
160
|
(0, credentials_auto_assign_1.stripNullCredentialStubs)(newWorkflow.nodes);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
161
|
+
landingProject = projectId
|
|
162
|
+
? await projectRepository.findOneBy({ id: projectId })
|
|
163
|
+
: await projectRepository.getPersonalProjectForUserOrFail(user.id);
|
|
164
|
+
if (!landingProject) {
|
|
165
|
+
throw new not_found_error_1.NotFoundError(`Project with id "${projectId}" was not found. Use search_projects to look up a valid project id.`);
|
|
166
|
+
}
|
|
167
|
+
const effectiveProjectId = landingProject.id;
|
|
168
|
+
const dataTableCheck = await (0, data_table_validation_1.validateDataTableReferencesForWorkflow)(newWorkflow.nodes, effectiveProjectId, dataTableOps);
|
|
169
|
+
if (!dataTableCheck.ok) {
|
|
170
|
+
throw new Error(dataTableCheck.error);
|
|
149
171
|
}
|
|
150
172
|
const { assignments: credentialAssignments, skippedHttpNodes } = await (0, credentials_auto_assign_1.autoPopulateNodeCredentials)(newWorkflow, user, nodeTypes, credentialsService, effectiveProjectId);
|
|
151
173
|
const savedWorkflow = await workflowCreationService.createWorkflow(user, newWorkflow, {
|
|
152
|
-
projectId,
|
|
174
|
+
projectId: effectiveProjectId,
|
|
153
175
|
parentFolderId: folderId,
|
|
154
176
|
source: 'n8n-mcp',
|
|
155
177
|
});
|
|
@@ -169,6 +191,11 @@ const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflo
|
|
|
169
191
|
nodeCount: savedWorkflow.nodes.length,
|
|
170
192
|
url: workflowUrl,
|
|
171
193
|
autoAssignedCredentials: credentialAssignments,
|
|
194
|
+
targetProject: {
|
|
195
|
+
id: landingProject.id,
|
|
196
|
+
name: landingProject.name,
|
|
197
|
+
type: landingProject.type,
|
|
198
|
+
},
|
|
172
199
|
note: skippedHttpNodes.length
|
|
173
200
|
? `HTTP Request nodes (${skippedHttpNodes.join(', ')}) were skipped during credential auto-assignment. Their credentials must be configured manually.`
|
|
174
201
|
: undefined,
|
|
@@ -189,7 +216,7 @@ const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflo
|
|
|
189
216
|
}
|
|
190
217
|
catch {
|
|
191
218
|
}
|
|
192
|
-
if (persisted) {
|
|
219
|
+
if (persisted && landingProject) {
|
|
193
220
|
const baseUrl = urlService.getInstanceBaseUrl();
|
|
194
221
|
const workflowUrl = `${baseUrl}/workflow/${persisted.id}`;
|
|
195
222
|
telemetryPayload.results = {
|
|
@@ -207,6 +234,11 @@ const createCreateWorkflowFromCodeTool = (user, workflowCreationService, workflo
|
|
|
207
234
|
nodeCount: persisted.nodes.length,
|
|
208
235
|
url: workflowUrl,
|
|
209
236
|
autoAssignedCredentials: [],
|
|
237
|
+
targetProject: {
|
|
238
|
+
id: landingProject.id,
|
|
239
|
+
name: landingProject.name,
|
|
240
|
+
type: landingProject.type,
|
|
241
|
+
},
|
|
210
242
|
note: `Workflow was created successfully, but a post-save operation failed: ${errorMessage}`,
|
|
211
243
|
};
|
|
212
244
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-workflow-from-code.tool.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"create-workflow-from-code.tool.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/create-workflow-from-code.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { INode } from 'n8n-workflow';
|
|
2
|
+
import { type DataTableUserOperations } from '../../../../modules/data-table/data-table-proxy.service';
|
|
3
|
+
export interface DataTableValidationFailure {
|
|
4
|
+
ok: false;
|
|
5
|
+
error: string;
|
|
6
|
+
opIndex?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface DataTableValidationSuccess {
|
|
9
|
+
ok: true;
|
|
10
|
+
}
|
|
11
|
+
export type DataTableValidationResult = DataTableValidationSuccess | DataTableValidationFailure;
|
|
12
|
+
export declare function validateDataTableReferencesForWorkflow(nodes: INode[], projectId: string, dataTableOps: DataTableUserOperations): Promise<DataTableValidationResult>;
|
|
13
|
+
export declare function validateDataTableReferencesForUpdate(nodesAfterApply: INode[], touchedNodes: Map<string, number>, projectId: string, dataTableOps: DataTableUserOperations): Promise<DataTableValidationResult>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateDataTableReferencesForWorkflow = validateDataTableReferencesForWorkflow;
|
|
4
|
+
exports.validateDataTableReferencesForUpdate = validateDataTableReferencesForUpdate;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const data_table_proxy_service_1 = require("../../../../modules/data-table/data-table-proxy.service");
|
|
7
|
+
const isResourceLocatorMode = (v) => v === 'list' || v === 'id' || v === 'name';
|
|
8
|
+
function extractDataTableReference(node) {
|
|
9
|
+
if (!(0, data_table_proxy_service_1.isAllowedNode)(node.type))
|
|
10
|
+
return null;
|
|
11
|
+
const rl = node.parameters?.dataTableId;
|
|
12
|
+
if (!(0, n8n_workflow_1.isResourceLocatorValue)(rl))
|
|
13
|
+
return null;
|
|
14
|
+
if (typeof rl.value !== 'string' || rl.value === '')
|
|
15
|
+
return null;
|
|
16
|
+
if ((0, n8n_workflow_1.isExpression)(rl.value))
|
|
17
|
+
return null;
|
|
18
|
+
const mode = isResourceLocatorMode(rl.mode) ? rl.mode : 'id';
|
|
19
|
+
return { mode, value: rl.value };
|
|
20
|
+
}
|
|
21
|
+
async function checkDataTableReference(ref, projectId, dataTableOps, cache) {
|
|
22
|
+
const cacheKey = `${ref.mode}:${ref.value}:${projectId}`;
|
|
23
|
+
const cached = cache.get(cacheKey);
|
|
24
|
+
if (cached === true)
|
|
25
|
+
return null;
|
|
26
|
+
if (cached === false)
|
|
27
|
+
return buildNotFoundError(ref);
|
|
28
|
+
const filter = ref.mode === 'name' ? { name: ref.value, projectId } : { id: ref.value, projectId };
|
|
29
|
+
try {
|
|
30
|
+
const result = await dataTableOps.getManyAndCount({
|
|
31
|
+
filter,
|
|
32
|
+
take: 1,
|
|
33
|
+
});
|
|
34
|
+
if (result.data.length === 0) {
|
|
35
|
+
cache.set(cacheKey, false);
|
|
36
|
+
return buildNotFoundError(ref);
|
|
37
|
+
}
|
|
38
|
+
cache.set(cacheKey, true);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
cache.set(cacheKey, false);
|
|
43
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
44
|
+
return `${buildNotFoundError(ref)} (lookup failed: ${message})`;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function buildNotFoundError(ref) {
|
|
48
|
+
const lookupBy = ref.mode === 'name' ? 'name' : 'id';
|
|
49
|
+
return (`data table with ${lookupBy} '${ref.value}' not found or not accessible in this project. ` +
|
|
50
|
+
'Use `create_data_table` to create it first, or `search_data_tables` to find an existing one.');
|
|
51
|
+
}
|
|
52
|
+
async function validateDataTableReferencesForWorkflow(nodes, projectId, dataTableOps) {
|
|
53
|
+
const cache = new Map();
|
|
54
|
+
for (const node of nodes) {
|
|
55
|
+
const ref = extractDataTableReference(node);
|
|
56
|
+
if (!ref)
|
|
57
|
+
continue;
|
|
58
|
+
const error = await checkDataTableReference(ref, projectId, dataTableOps, cache);
|
|
59
|
+
if (error) {
|
|
60
|
+
return { ok: false, error: `node '${node.name}': ${error}` };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return { ok: true };
|
|
64
|
+
}
|
|
65
|
+
async function validateDataTableReferencesForUpdate(nodesAfterApply, touchedNodes, projectId, dataTableOps) {
|
|
66
|
+
if (touchedNodes.size === 0)
|
|
67
|
+
return { ok: true };
|
|
68
|
+
const cache = new Map();
|
|
69
|
+
for (const node of nodesAfterApply) {
|
|
70
|
+
const opIndex = touchedNodes.get(node.name);
|
|
71
|
+
if (opIndex === undefined)
|
|
72
|
+
continue;
|
|
73
|
+
const ref = extractDataTableReference(node);
|
|
74
|
+
if (!ref)
|
|
75
|
+
continue;
|
|
76
|
+
const error = await checkDataTableReference(ref, projectId, dataTableOps, cache);
|
|
77
|
+
if (error) {
|
|
78
|
+
return {
|
|
79
|
+
ok: false,
|
|
80
|
+
opIndex,
|
|
81
|
+
error: `Operation ${opIndex} failed: node '${node.name}': ${error}`,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return { ok: true };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data-table-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-validation.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/data-table-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import z from 'zod';
|
|
|
3
3
|
import type { ToolDefinition } from '../../mcp.types';
|
|
4
4
|
import type { CollaborationService } from '../../../../collaboration/collaboration.service';
|
|
5
5
|
import type { CredentialsService } from '../../../../credentials/credentials.service';
|
|
6
|
+
import type { DataTableUserOperations } from '../../../../modules/data-table/data-table-proxy.service';
|
|
6
7
|
import type { NodeTypes } from '../../../../node-types';
|
|
7
8
|
import type { UrlService } from '../../../../services/url.service';
|
|
8
9
|
import type { Telemetry } from '../../../../telemetry';
|
|
@@ -239,5 +240,5 @@ declare const inputSchema: {
|
|
|
239
240
|
name?: string | undefined;
|
|
240
241
|
}>]>, "many">;
|
|
241
242
|
};
|
|
242
|
-
export declare const createUpdateWorkflowTool: (user: User, workflowFinderService: WorkflowFinderService, workflowService: WorkflowService, urlService: UrlService, telemetry: Telemetry, nodeTypes: NodeTypes, credentialsService: CredentialsService, sharedWorkflowRepository: SharedWorkflowRepository, collaborationService: CollaborationService) => ToolDefinition<typeof inputSchema>;
|
|
243
|
+
export declare const createUpdateWorkflowTool: (user: User, workflowFinderService: WorkflowFinderService, workflowService: WorkflowService, urlService: UrlService, telemetry: Telemetry, nodeTypes: NodeTypes, credentialsService: CredentialsService, sharedWorkflowRepository: SharedWorkflowRepository, collaborationService: CollaborationService, dataTableOps: DataTableUserOperations) => ToolDefinition<typeof inputSchema>;
|
|
243
244
|
export {};
|
|
@@ -40,13 +40,42 @@ exports.createUpdateWorkflowTool = void 0;
|
|
|
40
40
|
const db_1 = require("@n8n/db");
|
|
41
41
|
const zod_1 = __importDefault(require("zod"));
|
|
42
42
|
const mcp_constants_1 = require("../../mcp.constants");
|
|
43
|
+
const connection_structure_check_1 = require("./connection-structure-check");
|
|
43
44
|
const constants_1 = require("./constants");
|
|
44
45
|
const credential_validation_1 = require("./credential-validation");
|
|
45
46
|
const credentials_auto_assign_1 = require("./credentials-auto-assign");
|
|
47
|
+
const data_table_validation_1 = require("./data-table-validation");
|
|
46
48
|
const workflow_operations_1 = require("./workflow-operations");
|
|
47
49
|
const workflow_helpers_1 = require("../../../../workflow-helpers");
|
|
48
50
|
const workflow_validation_utils_1 = require("../workflow-validation.utils");
|
|
49
51
|
const MAX_OPERATIONS_PER_CALL = 100;
|
|
52
|
+
function collectTouchedNodes(operations) {
|
|
53
|
+
const touched = new Map();
|
|
54
|
+
const recordTouch = (name, opIndex) => {
|
|
55
|
+
if (!touched.has(name))
|
|
56
|
+
touched.set(name, opIndex);
|
|
57
|
+
};
|
|
58
|
+
for (let i = 0; i < operations.length; i++) {
|
|
59
|
+
const op = operations[i];
|
|
60
|
+
if (op.type === 'addNode') {
|
|
61
|
+
recordTouch(op.node.name, i);
|
|
62
|
+
}
|
|
63
|
+
else if (op.type === 'updateNodeParameters' || op.type === 'setNodeParameter') {
|
|
64
|
+
recordTouch(op.nodeName, i);
|
|
65
|
+
}
|
|
66
|
+
else if (op.type === 'renameNode') {
|
|
67
|
+
const idx = touched.get(op.oldName);
|
|
68
|
+
if (idx !== undefined) {
|
|
69
|
+
touched.delete(op.oldName);
|
|
70
|
+
touched.set(op.newName, idx);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (op.type === 'removeNode') {
|
|
74
|
+
touched.delete(op.nodeName);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return touched;
|
|
78
|
+
}
|
|
50
79
|
const inputSchema = {
|
|
51
80
|
workflowId: zod_1.default.string().describe('The ID of the workflow to update.'),
|
|
52
81
|
operations: zod_1.default
|
|
@@ -77,7 +106,7 @@ const outputSchema = {
|
|
|
77
106
|
.describe('Graph and JSON validation warnings on the resulting workflow. Use these to self-correct on the next call.'),
|
|
78
107
|
note: zod_1.default.string().optional(),
|
|
79
108
|
};
|
|
80
|
-
const createUpdateWorkflowTool = (user, workflowFinderService, workflowService, urlService, telemetry, nodeTypes, credentialsService, sharedWorkflowRepository, collaborationService) => ({
|
|
109
|
+
const createUpdateWorkflowTool = (user, workflowFinderService, workflowService, urlService, telemetry, nodeTypes, credentialsService, sharedWorkflowRepository, collaborationService, dataTableOps) => ({
|
|
81
110
|
name: constants_1.MCP_UPDATE_WORKFLOW_TOOL.toolName,
|
|
82
111
|
config: {
|
|
83
112
|
description: 'Apply a small list of operations to an existing workflow (see the operations input schema for the supported op types). The whole batch is atomic: if any op fails the workflow is left unchanged.',
|
|
@@ -112,6 +141,17 @@ const createUpdateWorkflowTool = (user, workflowFinderService, workflowService,
|
|
|
112
141
|
if (!credentialCheck.ok) {
|
|
113
142
|
throw new Error(credentialCheck.error);
|
|
114
143
|
}
|
|
144
|
+
const invalidToolSourceResponse = (0, connection_structure_check_1.buildInvalidAiToolSourceErrorResponse)({ nodes: result.workflow.nodes, connections: result.workflow.connections }, nodeTypes, (errorMessage) => ({ error: errorMessage }), telemetryPayload, telemetry);
|
|
145
|
+
if (invalidToolSourceResponse)
|
|
146
|
+
return invalidToolSourceResponse;
|
|
147
|
+
const { projectId: workflowProjectId } = await sharedWorkflowRepository.findOneOrFail({
|
|
148
|
+
where: { workflowId, role: 'workflow:owner' },
|
|
149
|
+
select: ['projectId'],
|
|
150
|
+
});
|
|
151
|
+
const dataTableCheck = await (0, data_table_validation_1.validateDataTableReferencesForUpdate)(result.workflow.nodes, collectTouchedNodes(operations), workflowProjectId, dataTableOps);
|
|
152
|
+
if (!dataTableCheck.ok) {
|
|
153
|
+
throw new Error(dataTableCheck.error);
|
|
154
|
+
}
|
|
115
155
|
const workflowUpdateData = new db_1.WorkflowEntity();
|
|
116
156
|
Object.assign(workflowUpdateData, {
|
|
117
157
|
name: result.workflow.name,
|
|
@@ -132,11 +172,7 @@ const createUpdateWorkflowTool = (user, workflowFinderService, workflowService,
|
|
|
132
172
|
if (result.addedNodeNames.length > 0) {
|
|
133
173
|
const addedNodeSet = new Set(result.addedNodeNames);
|
|
134
174
|
const addedNodes = workflowUpdateData.nodes.filter((n) => addedNodeSet.has(n.name));
|
|
135
|
-
const
|
|
136
|
-
where: { workflowId, role: 'workflow:owner' },
|
|
137
|
-
select: ['projectId'],
|
|
138
|
-
});
|
|
139
|
-
const autoAssign = await (0, credentials_auto_assign_1.autoPopulateNodeCredentials)({ ...workflowUpdateData, nodes: addedNodes }, user, nodeTypes, credentialsService, sharedWorkflow.projectId);
|
|
175
|
+
const autoAssign = await (0, credentials_auto_assign_1.autoPopulateNodeCredentials)({ ...workflowUpdateData, nodes: addedNodes }, user, nodeTypes, credentialsService, workflowProjectId);
|
|
140
176
|
credentialAssignments = autoAssign.assignments;
|
|
141
177
|
skippedHttpNodes = autoAssign.skippedHttpNodes;
|
|
142
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-workflow.tool.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/update-workflow.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gCAAmF;AAEnF,8CAAoB;AAEpB,uDAAiE;AAEjE,2CAAuD;AACvD,mEAAuE;AACvE,uEAAwE;AACxE,+DAK+B;
|
|
1
|
+
{"version":3,"file":"update-workflow.tool.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/update-workflow.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { User } from '@n8n/db';
|
|
2
2
|
import z from 'zod';
|
|
3
3
|
import type { ToolDefinition } from '../../mcp.types';
|
|
4
|
+
import type { NodeTypes } from '../../../../node-types';
|
|
4
5
|
import type { Telemetry } from '../../../../telemetry';
|
|
5
6
|
declare const inputSchema: {
|
|
6
7
|
code: z.ZodString;
|
|
7
8
|
};
|
|
8
|
-
export declare const createValidateWorkflowCodeTool: (user: User, telemetry: Telemetry) => ToolDefinition<typeof inputSchema>;
|
|
9
|
+
export declare const createValidateWorkflowCodeTool: (user: User, telemetry: Telemetry, nodeTypes: NodeTypes) => ToolDefinition<typeof inputSchema>;
|
|
9
10
|
export {};
|
|
@@ -40,6 +40,7 @@ exports.createValidateWorkflowCodeTool = void 0;
|
|
|
40
40
|
const zod_1 = __importDefault(require("zod"));
|
|
41
41
|
const mcp_constants_1 = require("../../mcp.constants");
|
|
42
42
|
const workflow_validation_utils_1 = require("../workflow-validation.utils");
|
|
43
|
+
const connection_structure_check_1 = require("./connection-structure-check");
|
|
43
44
|
const constants_1 = require("./constants");
|
|
44
45
|
const inputSchema = {
|
|
45
46
|
code: zod_1.default
|
|
@@ -67,7 +68,7 @@ const outputSchema = {
|
|
|
67
68
|
.optional()
|
|
68
69
|
.describe('Actionable hint for recovering from the error. When present, follow the suggested action before retrying.'),
|
|
69
70
|
};
|
|
70
|
-
const createValidateWorkflowCodeTool = (user, telemetry) => ({
|
|
71
|
+
const createValidateWorkflowCodeTool = (user, telemetry, nodeTypes) => ({
|
|
71
72
|
name: constants_1.CODE_BUILDER_VALIDATE_TOOL.toolName,
|
|
72
73
|
config: {
|
|
73
74
|
description: 'Validate n8n Workflow SDK code. Required before creating or updating workflows from code. If you have not already read get_sdk_reference, call that first; guessing SDK syntax commonly creates invalid workflows.',
|
|
@@ -92,6 +93,9 @@ const createValidateWorkflowCodeTool = (user, telemetry) => ({
|
|
|
92
93
|
const handler = new ParseValidateHandler({ generatePinData: false });
|
|
93
94
|
const strippedCode = stripImportStatements(code);
|
|
94
95
|
const result = await handler.parseAndValidate(strippedCode);
|
|
96
|
+
const invalidToolSourceResponse = (0, connection_structure_check_1.buildInvalidAiToolSourceErrorResponse)(result.workflow, nodeTypes, (errorMessage) => ({ valid: false, errors: [errorMessage] }), telemetryPayload, telemetry);
|
|
97
|
+
if (invalidToolSourceResponse)
|
|
98
|
+
return invalidToolSourceResponse;
|
|
95
99
|
telemetryPayload.results = {
|
|
96
100
|
success: true,
|
|
97
101
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-workflow-code.tool.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAoB;AAEpB,uDAAiE;AAEjE,4EAAmE;
|
|
1
|
+
{"version":3,"file":"validate-workflow-code.tool.js","sourceRoot":"","sources":["../../../../../src/modules/mcp/tools/workflow-builder/validate-workflow-code.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ async function getMcpWorkflow(workflowId, user, scopes, workflowFinderService, o
|
|
|
24
24
|
throw new mcp_errors_1.WorkflowAccessError(`Workflow '${workflowId}' is archived and cannot be accessed.`, 'workflow_archived');
|
|
25
25
|
}
|
|
26
26
|
if (!workflow.settings?.availableInMCP) {
|
|
27
|
-
throw new mcp_errors_1.WorkflowAccessError('Workflow is not available in MCP. Enable MCP access in workflow settings.', 'not_available_in_mcp');
|
|
27
|
+
throw new mcp_errors_1.WorkflowAccessError('Workflow is not available in MCP. Enable MCP access from the workflow card in the workflows list, or from the workflow settings.', 'not_available_in_mcp');
|
|
28
28
|
}
|
|
29
29
|
return workflow;
|
|
30
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-validation.utils.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tools/workflow-validation.utils.ts"],"names":[],"mappings":";;AAmBA,kDAcC;AAgBD,wCAiCC;AA7ED,8CAAoD;AACpD,4DAGsC;AAUtC,SAAgB,mBAAmB,CAClC,KAAc,EACd,UAAmC,EAAE;IAErC,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK;QACtB,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB,IAAI,KAAK,YAAY,WAAW,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,cAAc,GACnB,OAAO,CAAC,cAAc;QACtB,6DAA6D,sCAA0B,CAAC,QAAQ,gDAAgD,CAAC;IAElJ,OAAO,6IAA6I,sCAA0B,CAAC,QAAQ,2IAA2I,cAAc,EAAE,CAAC;AACpV,CAAC;AAgBM,KAAK,UAAU,cAAc,CACnC,UAAkB,EAClB,IAAU,EACV,MAAe,EACf,qBAA4C,EAC5C,OAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1F,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;KACnD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,gCAAmB,CAC5B,+DAA+D,EAC/D,eAAe,CACf,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAmB,CAC5B,aAAa,UAAU,uCAAuC,EAC9D,mBAAmB,CACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;QACxC,MAAM,IAAI,gCAAmB,CAC5B,
|
|
1
|
+
{"version":3,"file":"workflow-validation.utils.js","sourceRoot":"","sources":["../../../../src/modules/mcp/tools/workflow-validation.utils.ts"],"names":[],"mappings":";;AAmBA,kDAcC;AAgBD,wCAiCC;AA7ED,8CAAoD;AACpD,4DAGsC;AAUtC,SAAgB,mBAAmB,CAClC,KAAc,EACd,UAAmC,EAAE;IAErC,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK;QACtB,CAAC,KAAK,CAAC,IAAI,KAAK,wBAAwB,IAAI,KAAK,YAAY,WAAW,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,cAAc,GACnB,OAAO,CAAC,cAAc;QACtB,6DAA6D,sCAA0B,CAAC,QAAQ,gDAAgD,CAAC;IAElJ,OAAO,6IAA6I,sCAA0B,CAAC,QAAQ,2IAA2I,cAAc,EAAE,CAAC;AACpV,CAAC;AAgBM,KAAK,UAAU,cAAc,CACnC,UAAkB,EAClB,IAAU,EACV,MAAe,EACf,qBAA4C,EAC5C,OAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;QAC1F,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;KACnD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,gCAAmB,CAC5B,+DAA+D,EAC/D,eAAe,CACf,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,gCAAmB,CAC5B,aAAa,UAAU,uCAAuC,EAC9D,mBAAmB,CACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;QACxC,MAAM,IAAI,gCAAmB,CAC5B,kIAAkI,EAClI,sBAAsB,CACtB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.McpRegistryTestController = void 0;
|
|
13
13
|
const decorators_1 = require("@n8n/decorators");
|
|
14
14
|
const forbidden_error_1 = require("../../errors/response-errors/forbidden.error");
|
|
15
|
+
const mcp_registry_server_entity_1 = require("./registry/mcp-registry-server.entity");
|
|
15
16
|
const mcp_registry_server_repository_1 = require("./registry/mcp-registry-server.repository");
|
|
16
17
|
const mcp_registry_service_1 = require("./registry/mcp-registry.service");
|
|
17
18
|
const mcp_registry_types_1 = require("./registry/mcp-registry.types");
|
|
@@ -24,7 +25,10 @@ let McpRegistryTestController = class McpRegistryTestController {
|
|
|
24
25
|
async seed() {
|
|
25
26
|
this.assertE2ETestsEnabled();
|
|
26
27
|
const entities = [mock_servers_1.notionMockServer, mock_servers_1.linearMockServer].map(mcp_registry_types_1.toEntity);
|
|
27
|
-
await this.repository.
|
|
28
|
+
await this.repository.manager.transaction(async (manager) => {
|
|
29
|
+
await manager.createQueryBuilder().delete().from(mcp_registry_server_entity_1.McpRegistryServerEntity).execute();
|
|
30
|
+
await manager.insert(mcp_registry_server_entity_1.McpRegistryServerEntity, entities);
|
|
31
|
+
});
|
|
28
32
|
await this.service.handleReloadMcpRegistry();
|
|
29
33
|
return { ok: true, count: entities.length };
|
|
30
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-registry-test.controller.js","sourceRoot":"","sources":["../../../src/modules/mcp-registry/mcp-registry-test.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAuD;AAEvD,8EAA0E;AAE1E,8FAAwF;AACxF,0EAAqE;AACrE,sEAAyD;AACzD,0DAA6E;AAOtE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACrC,YACkB,UAAuC,EACvC,OAA2B;QAD3B,eAAU,GAAV,UAAU,CAA6B;QACvC,YAAO,GAAP,OAAO,CAAoB;IAC1C,CAAC;IAGE,AAAN,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,MAAM,QAAQ,GAAG,CAAC,+BAAgB,EAAE,+BAAgB,CAAC,CAAC,GAAG,CAAC,6BAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-registry-test.controller.js","sourceRoot":"","sources":["../../../src/modules/mcp-registry/mcp-registry-test.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAuD;AAEvD,8EAA0E;AAE1E,sFAAgF;AAChF,8FAAwF;AACxF,0EAAqE;AACrE,sEAAyD;AACzD,0DAA6E;AAOtE,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACrC,YACkB,UAAuC,EACvC,OAA2B;QAD3B,eAAU,GAAV,UAAU,CAA6B;QACvC,YAAO,GAAP,OAAO,CAAoB;IAC1C,CAAC;IAGE,AAAN,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,MAAM,QAAQ,GAAG,CAAC,+BAAgB,EAAE,+BAAgB,CAAC,CAAC,GAAG,CAAC,6BAAQ,CAAC,CAAC;QAGpE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3D,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,oDAAuB,CAAC,CAAC,OAAO,EAAE,CAAC;YACpF,MAAM,OAAO,CAAC,MAAM,CAAC,oDAAuB,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAE7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC7C,CAAC;IAEO,qBAAqB;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC/E,MAAM,IAAI,gCAAc,CAAC,6CAA6C,CAAC,CAAC;QACzE,CAAC;IACF,CAAC;CACD,CAAA;AA3BY,8DAAyB;AAO/B;IADL,IAAA,iBAAI,EAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;;;qDActC;oCApBW,yBAAyB;IADrC,IAAA,2BAAc,EAAC,eAAe,CAAC;qCAGD,4DAA2B;QAC9B,yCAAkB;GAHjC,yBAAyB,CA2BrC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { User } from '@n8n/db';
|
|
2
|
+
import { WorkflowFinderService } from '../../../../workflows/workflow-finder.service';
|
|
3
|
+
import { WorkflowSerializer } from './workflow.serializer';
|
|
4
|
+
import type { PackageWriter } from '../../io/package-writer';
|
|
5
|
+
import type { ManifestEntry } from '../../spec/manifest.schema';
|
|
6
|
+
export interface WorkflowExportRequest {
|
|
7
|
+
user: User;
|
|
8
|
+
workflowIds: string[];
|
|
9
|
+
writer: PackageWriter;
|
|
10
|
+
}
|
|
11
|
+
export declare class WorkflowExporter {
|
|
12
|
+
private readonly workflowFinder;
|
|
13
|
+
private readonly workflowSerializer;
|
|
14
|
+
constructor(workflowFinder: WorkflowFinderService, workflowSerializer: WorkflowSerializer);
|
|
15
|
+
export(request: WorkflowExportRequest): Promise<ManifestEntry[]>;
|
|
16
|
+
private allocateUniqueFileName;
|
|
17
|
+
private assertAllRequestedWorkflowsFound;
|
|
18
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WorkflowExporter = void 0;
|
|
13
|
+
const di_1 = require("@n8n/di");
|
|
14
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
15
|
+
const workflow_finder_service_1 = require("../../../../workflows/workflow-finder.service");
|
|
16
|
+
const workflow_serializer_1 = require("./workflow.serializer");
|
|
17
|
+
const slug_utils_1 = require("../../io/slug.utils");
|
|
18
|
+
let WorkflowExporter = class WorkflowExporter {
|
|
19
|
+
constructor(workflowFinder, workflowSerializer) {
|
|
20
|
+
this.workflowFinder = workflowFinder;
|
|
21
|
+
this.workflowSerializer = workflowSerializer;
|
|
22
|
+
}
|
|
23
|
+
async export(request) {
|
|
24
|
+
const workflows = await this.workflowFinder.findWorkflowsByIdsForUser(request.workflowIds, request.user, ['workflow:export'], { includeParentFolder: true });
|
|
25
|
+
this.assertAllRequestedWorkflowsFound(request.workflowIds, workflows);
|
|
26
|
+
const entries = [];
|
|
27
|
+
const usedTargets = new Set();
|
|
28
|
+
for (const workflow of workflows) {
|
|
29
|
+
const target = this.allocateUniqueFileName(workflow.name, usedTargets);
|
|
30
|
+
const serialized = this.workflowSerializer.serialize(workflow);
|
|
31
|
+
request.writer.writeDirectory(target);
|
|
32
|
+
request.writer.writeFile(`${target}/workflow.json`, JSON.stringify(serialized, null, '\t'));
|
|
33
|
+
entries.push({
|
|
34
|
+
id: workflow.id,
|
|
35
|
+
name: workflow.name,
|
|
36
|
+
target,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return entries;
|
|
40
|
+
}
|
|
41
|
+
allocateUniqueFileName(name, used) {
|
|
42
|
+
const base = `workflows/${(0, slug_utils_1.generateSlug)(name)}`;
|
|
43
|
+
if (!used.has(base)) {
|
|
44
|
+
used.add(base);
|
|
45
|
+
return base;
|
|
46
|
+
}
|
|
47
|
+
for (let suffix = 2;; suffix++) {
|
|
48
|
+
const candidate = `${base}-${suffix}`;
|
|
49
|
+
if (!used.has(candidate)) {
|
|
50
|
+
used.add(candidate);
|
|
51
|
+
return candidate;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
assertAllRequestedWorkflowsFound(requestedWorkflowIds, foundWorkflows) {
|
|
56
|
+
const foundWorkflowIds = new Set(foundWorkflows.map(({ id }) => id));
|
|
57
|
+
const missingWorkflowIds = requestedWorkflowIds.filter((id) => !foundWorkflowIds.has(id));
|
|
58
|
+
if (missingWorkflowIds.length > 0) {
|
|
59
|
+
const displayedWorkflowIds = missingWorkflowIds.slice(0, 20);
|
|
60
|
+
const omittedCount = missingWorkflowIds.length - displayedWorkflowIds.length;
|
|
61
|
+
throw new n8n_workflow_1.UserError(`${missingWorkflowIds.length} workflow(s) not found or not accessible. Export aborted.`, {
|
|
62
|
+
description: `Missing workflow IDs: ${displayedWorkflowIds.join(', ')}${omittedCount > 0 ? `, and ${omittedCount} more` : ''}`,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.WorkflowExporter = WorkflowExporter;
|
|
68
|
+
exports.WorkflowExporter = WorkflowExporter = __decorate([
|
|
69
|
+
(0, di_1.Service)(),
|
|
70
|
+
__metadata("design:paramtypes", [workflow_finder_service_1.WorkflowFinderService,
|
|
71
|
+
workflow_serializer_1.WorkflowSerializer])
|
|
72
|
+
], WorkflowExporter);
|
|
73
|
+
//# sourceMappingURL=workflow.exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.exporter.js","sourceRoot":"","sources":["../../../../../src/modules/n8n-packages/entities/workflow/workflow.exporter.ts"],"names":[],"mappings":"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"}
|