n8n 2.37.6 → 2.38.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/active-executions.js +2 -1
- package/dist/active-executions.js.map +1 -1
- package/dist/active-workflow-manager.d.ts +5 -1
- package/dist/active-workflow-manager.js +64 -33
- package/dist/active-workflow-manager.js.map +1 -1
- package/dist/binary-data/binary-data-access.service.d.ts +11 -0
- package/dist/binary-data/binary-data-access.service.js +50 -0
- package/dist/binary-data/binary-data-access.service.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/base-command.d.ts +2 -0
- package/dist/commands/base-command.js +8 -0
- package/dist/commands/base-command.js.map +1 -1
- package/dist/commands/import/workflow.d.ts +1 -0
- package/dist/commands/import/workflow.js +12 -3
- package/dist/commands/import/workflow.js.map +1 -1
- package/dist/commands/start.d.ts +1 -0
- package/dist/commands/start.js +2 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/controllers/binary-data.controller.d.ts +5 -2
- package/dist/controllers/binary-data.controller.js +11 -3
- package/dist/controllers/binary-data.controller.js.map +1 -1
- package/dist/controllers/e2e.controller.d.ts +1 -6
- package/dist/controllers/e2e.controller.js +7 -20
- package/dist/controllers/e2e.controller.js.map +1 -1
- package/dist/controllers/invitation.controller.d.ts +1 -5
- package/dist/controllers/invitation.controller.js +3 -32
- package/dist/controllers/invitation.controller.js.map +1 -1
- package/dist/controllers/project.controller.d.ts +4 -10
- package/dist/controllers/project.controller.js +14 -114
- package/dist/controllers/project.controller.js.map +1 -1
- package/dist/controllers/telemetry.controller.js +1 -1
- package/dist/controllers/telemetry.controller.js.map +1 -1
- package/dist/controllers/users.controller.d.ts +2 -27
- package/dist/controllers/users.controller.js +6 -132
- package/dist/controllers/users.controller.js.map +1 -1
- package/dist/credentials/credentials-finder.service.d.ts +2 -0
- package/dist/credentials/credentials-finder.service.js +46 -12
- package/dist/credentials/credentials-finder.service.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +5 -2
- package/dist/credentials/credentials.service.js +4 -1
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/credentials-helper.d.ts +3 -1
- package/dist/credentials-helper.js +10 -2
- package/dist/credentials-helper.js.map +1 -1
- package/dist/deprecation/deprecation.service.js +5 -0
- package/dist/deprecation/deprecation.service.js.map +1 -1
- package/dist/errors/http-error-serializers.js +3 -0
- package/dist/errors/http-error-serializers.js.map +1 -1
- package/dist/errors/variable-validation.error.d.ts +2 -2
- package/dist/errors/variable-validation.error.js +1 -1
- package/dist/errors/variable-validation.error.js.map +1 -1
- package/dist/evaluation.ee/evaluation-config-validator.js +3 -2
- package/dist/evaluation.ee/evaluation-config-validator.js.map +1 -1
- package/dist/evaluation.ee/evaluation-dataset.service.js +8 -1
- package/dist/evaluation.ee/evaluation-dataset.service.js.map +1 -1
- package/dist/evaluation.ee/evaluation-test-run.service.d.ts +46 -0
- package/dist/evaluation.ee/evaluation-test-run.service.js +65 -0
- package/dist/evaluation.ee/evaluation-test-run.service.js.map +1 -0
- package/dist/evaluation.ee/insights/insights-context-builder.js +4 -2
- package/dist/evaluation.ee/insights/insights-context-builder.js.map +1 -1
- package/dist/evaluation.ee/test-runner/workflow-compiler.service.js +96 -45
- package/dist/evaluation.ee/test-runner/workflow-compiler.service.js.map +1 -1
- package/dist/evaluation.ee/test-runs.controller.ee.d.ts +1 -1
- package/dist/evaluation.ee/test-runs.controller.ee.js +5 -2
- package/dist/evaluation.ee/test-runs.controller.ee.js.map +1 -1
- package/dist/execution-lifecycle/execute-error-workflow.js +3 -0
- package/dist/execution-lifecycle/execute-error-workflow.js.map +1 -1
- package/dist/executions/engine-v2-execution-reader.service.d.ts +11 -0
- package/dist/executions/engine-v2-execution-reader.service.js +68 -0
- package/dist/executions/engine-v2-execution-reader.service.js.map +1 -0
- package/dist/executions/execution-id.d.ts +5 -0
- package/dist/executions/execution-id.js +10 -0
- package/dist/executions/execution-id.js.map +1 -0
- package/dist/executions/execution.service.d.ts +3 -1
- package/dist/executions/execution.service.js +16 -8
- package/dist/executions/execution.service.js.map +1 -1
- package/dist/executions/executions.controller.d.ts +1 -0
- package/dist/executions/executions.controller.js +12 -6
- package/dist/executions/executions.controller.js.map +1 -1
- package/dist/expression-observability/expression-observability.provider.js +3 -2
- package/dist/expression-observability/expression-observability.provider.js.map +1 -1
- package/dist/license/license.service.js +1 -1
- package/dist/license/license.service.js.map +1 -1
- package/dist/metrics/prometheus/instance-ai-metrics.service.js.map +1 -1
- package/dist/middlewares/content-security-policy.d.ts +10 -0
- package/dist/middlewares/content-security-policy.js +53 -0
- package/dist/middlewares/content-security-policy.js.map +1 -0
- package/dist/middlewares/index.d.ts +1 -0
- package/dist/middlewares/index.js +1 -0
- package/dist/middlewares/index.js.map +1 -1
- package/dist/modules/agents/agent-config.service.js +0 -3
- package/dist/modules/agents/agent-config.service.js.map +1 -1
- package/dist/modules/agents/agent-default-model-resolver.service.js +2 -4
- package/dist/modules/agents/agent-default-model-resolver.service.js.map +1 -1
- package/dist/modules/agents/agent-execution-orchestrator.service.js +13 -6
- package/dist/modules/agents/agent-execution-orchestrator.service.js.map +1 -1
- package/dist/modules/agents/agent-execution.service.d.ts +1 -0
- package/dist/modules/agents/agent-execution.service.js +3 -0
- package/dist/modules/agents/agent-execution.service.js.map +1 -1
- package/dist/modules/agents/agent-integrations.controller.d.ts +7 -5
- package/dist/modules/agents/agent-integrations.controller.js +10 -17
- package/dist/modules/agents/agent-integrations.controller.js.map +1 -1
- package/dist/modules/agents/agent-interrupted-execution-sweeper.d.ts +5 -1
- package/dist/modules/agents/agent-interrupted-execution-sweeper.js +14 -2
- package/dist/modules/agents/agent-interrupted-execution-sweeper.js.map +1 -1
- package/dist/modules/agents/agent-model-catalog.service.js +6 -12
- package/dist/modules/agents/agent-model-catalog.service.js.map +1 -1
- package/dist/modules/agents/agent-publish.service.d.ts +2 -3
- package/dist/modules/agents/agent-publish.service.js +12 -5
- package/dist/modules/agents/agent-publish.service.js.map +1 -1
- package/dist/modules/agents/agent-runtime-cache.service.d.ts +5 -0
- package/dist/modules/agents/agent-runtime-cache.service.js +57 -3
- package/dist/modules/agents/agent-runtime-cache.service.js.map +1 -1
- package/dist/modules/agents/agent-runtime-reconstruction.service.d.ts +15 -7
- package/dist/modules/agents/agent-runtime-reconstruction.service.js +123 -37
- package/dist/modules/agents/agent-runtime-reconstruction.service.js.map +1 -1
- package/dist/modules/agents/agent-sandbox-runtime.service.d.ts +4 -2
- package/dist/modules/agents/agent-sandbox-runtime.service.js +21 -11
- package/dist/modules/agents/agent-sandbox-runtime.service.js.map +1 -1
- package/dist/modules/agents/agent-validation.service.js +0 -4
- package/dist/modules/agents/agent-validation.service.js.map +1 -1
- package/dist/modules/agents/agent-workflow-execution.service.js +1 -1
- package/dist/modules/agents/agent-workflow-execution.service.js.map +1 -1
- package/dist/modules/agents/agent-workflow-tool-resume.service.d.ts +32 -0
- package/dist/modules/agents/agent-workflow-tool-resume.service.js +168 -0
- package/dist/modules/agents/agent-workflow-tool-resume.service.js.map +1 -0
- package/dist/modules/agents/agent-workspace.service.d.ts +8 -2
- package/dist/modules/agents/agent-workspace.service.js +15 -4
- package/dist/modules/agents/agent-workspace.service.js.map +1 -1
- package/dist/modules/agents/agents.module.d.ts +1 -1
- package/dist/modules/agents/agents.module.js +11 -7
- package/dist/modules/agents/agents.module.js.map +1 -1
- package/dist/modules/agents/background/agent-background-job.service.d.ts +34 -0
- package/dist/modules/agents/background/agent-background-job.service.js +168 -0
- package/dist/modules/agents/background/agent-background-job.service.js.map +1 -0
- package/dist/modules/agents/background/background-job-tools.d.ts +21 -0
- package/dist/modules/agents/background/background-job-tools.js +157 -0
- package/dist/modules/agents/background/background-job-tools.js.map +1 -0
- package/dist/modules/agents/background/sub-agent-background-runner.d.ts +27 -0
- package/dist/modules/agents/background/sub-agent-background-runner.js +123 -0
- package/dist/modules/agents/background/sub-agent-background-runner.js.map +1 -0
- package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +4 -6
- package/dist/modules/agents/builder/agents-builder-tools.service.js +16 -21
- package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
- package/dist/modules/agents/builder/agents-builder.service.d.ts +5 -7
- package/dist/modules/agents/builder/agents-builder.service.js +27 -36
- package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
- package/dist/modules/agents/builder/call-agent-failure.d.ts +5 -0
- package/dist/modules/agents/builder/call-agent-failure.js +28 -0
- package/dist/modules/agents/builder/call-agent-failure.js.map +1 -0
- package/dist/modules/agents/builder/get-resource-locator-options.tool.d.ts +2 -2
- package/dist/modules/agents/builder/interactive/ask-credential.tool.d.ts +3 -2
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js +8 -9
- package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/finish-setup.tool.d.ts +3 -2
- package/dist/modules/agents/builder/interactive/finish-setup.tool.js +16 -6
- package/dist/modules/agents/builder/interactive/finish-setup.tool.js.map +1 -1
- package/dist/modules/agents/builder/interactive/resolve-llm.tool.js +57 -44
- package/dist/modules/agents/builder/interactive/resolve-llm.tool.js.map +1 -1
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +3 -2
- package/dist/modules/agents/builder/prompts/llm-selection.prompt.js.map +1 -1
- package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
- package/dist/modules/agents/builder/prompts/tools.prompt.js +6 -0
- package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -1
- package/dist/modules/agents/builder/skills/external-services.skill.js +51 -8
- package/dist/modules/agents/builder/skills/external-services.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/sub-agents.skill.js +15 -12
- package/dist/modules/agents/builder/skills/sub-agents.skill.js.map +1 -1
- package/dist/modules/agents/builder/skills/target-tasks.skill.js +16 -5
- package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -1
- package/dist/modules/agents/entities/agent-background-job.entity.d.ts +18 -0
- package/dist/modules/agents/entities/agent-background-job.entity.js +78 -0
- package/dist/modules/agents/entities/agent-background-job.entity.js.map +1 -0
- package/dist/modules/agents/entities/agent-channel-status.entity.d.ts +16 -0
- package/dist/modules/agents/entities/agent-channel-status.entity.js +99 -0
- package/dist/modules/agents/entities/agent-channel-status.entity.js.map +1 -0
- package/dist/modules/agents/instance-ai-builder-delegate.adapter.d.ts +3 -3
- package/dist/modules/agents/instance-ai-builder-delegate.adapter.js +17 -7
- package/dist/modules/agents/instance-ai-builder-delegate.adapter.js.map +1 -1
- package/dist/modules/agents/integrations/agent-channel-reconciler.service.d.ts +38 -0
- package/dist/modules/agents/integrations/agent-channel-reconciler.service.js +260 -0
- package/dist/modules/agents/integrations/agent-channel-reconciler.service.js.map +1 -0
- package/dist/modules/agents/integrations/agent-channel-status-reporter.d.ts +23 -0
- package/dist/modules/agents/integrations/agent-channel-status-reporter.js +114 -0
- package/dist/modules/agents/integrations/agent-channel-status-reporter.js.map +1 -0
- package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +9 -0
- package/dist/modules/agents/integrations/agent-chat-bridge.js +53 -1
- package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-hitl-resume-handler.d.ts +1 -1
- package/dist/modules/agents/integrations/agent-chat-hitl-resume-handler.js +3 -2
- package/dist/modules/agents/integrations/agent-chat-hitl-resume-handler.js.map +1 -1
- package/dist/modules/agents/integrations/agent-chat-integration.d.ts +5 -2
- package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
- package/dist/modules/agents/integrations/channel-status-report.d.ts +4 -0
- package/dist/modules/agents/integrations/channel-status-report.js +58 -0
- package/dist/modules/agents/integrations/channel-status-report.js.map +1 -0
- package/dist/modules/agents/integrations/chat-integration.service.d.ts +17 -2
- package/dist/modules/agents/integrations/chat-integration.service.js +63 -35
- package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
- package/dist/modules/agents/integrations/credential-claim.d.ts +3 -0
- package/dist/modules/agents/integrations/credential-claim.js +12 -0
- package/dist/modules/agents/integrations/credential-claim.js.map +1 -0
- package/dist/modules/agents/integrations/n8n-checkpoint-storage.d.ts +2 -0
- package/dist/modules/agents/integrations/n8n-checkpoint-storage.js +25 -0
- package/dist/modules/agents/integrations/n8n-checkpoint-storage.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/discord-integration.d.ts +2 -1
- package/dist/modules/agents/integrations/platforms/discord-integration.js +9 -6
- package/dist/modules/agents/integrations/platforms/discord-integration.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/linear-integration.js +1 -1
- package/dist/modules/agents/integrations/platforms/linear-integration.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-integration.d.ts +2 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-integration.js +7 -6
- package/dist/modules/agents/integrations/platforms/slack/slack-integration.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js +1 -1
- package/dist/modules/agents/integrations/platforms/slack/slack-methods.service.js.map +1 -1
- package/dist/modules/agents/integrations/platforms/telegram-integration.d.ts +4 -6
- package/dist/modules/agents/integrations/platforms/telegram-integration.js +11 -14
- package/dist/modules/agents/integrations/platforms/telegram-integration.js.map +1 -1
- package/dist/modules/agents/json-config/credential-field-mapping.js +3 -0
- package/dist/modules/agents/json-config/credential-field-mapping.js.map +1 -1
- package/dist/modules/agents/llm-provider-defaults.js +16 -1
- package/dist/modules/agents/llm-provider-defaults.js.map +1 -1
- package/dist/modules/agents/repositories/agent-background-job.repository.d.ts +37 -0
- package/dist/modules/agents/repositories/agent-background-job.repository.js +61 -0
- package/dist/modules/agents/repositories/agent-background-job.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent-channel-status.repository.d.ts +29 -0
- package/dist/modules/agents/repositories/agent-channel-status.repository.js +63 -0
- package/dist/modules/agents/repositories/agent-channel-status.repository.js.map +1 -0
- package/dist/modules/agents/repositories/agent-execution.repository.d.ts +1 -0
- package/dist/modules/agents/repositories/agent-execution.repository.js +4 -0
- package/dist/modules/agents/repositories/agent-execution.repository.js.map +1 -1
- package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.d.ts +4 -5
- package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js +32 -32
- package/dist/modules/agents/sub-agents/delegate-sub-agent-tool.js.map +1 -1
- package/dist/modules/agents/sub-agents/format-sub-agent-tool-output.d.ts +3 -0
- package/dist/modules/agents/sub-agents/format-sub-agent-tool-output.js +14 -0
- package/dist/modules/agents/sub-agents/format-sub-agent-tool-output.js.map +1 -0
- package/dist/modules/agents/sub-agents/sub-agent-cleanup.service.js.map +1 -1
- package/dist/modules/agents/sub-agents/{sub-agent-foreground-runner.d.ts → sub-agent-runner.d.ts} +10 -7
- package/dist/modules/agents/sub-agents/{sub-agent-foreground-runner.js → sub-agent-runner.js} +51 -27
- package/dist/modules/agents/sub-agents/sub-agent-runner.js.map +1 -0
- package/dist/modules/agents/sub-agents/sub-agent-source-resolver.d.ts +1 -0
- package/dist/modules/agents/sub-agents/sub-agent-source-resolver.js +18 -6
- package/dist/modules/agents/sub-agents/sub-agent-source-resolver.js.map +1 -1
- package/dist/modules/agents/tools/workflow-tool-factory.d.ts +24 -13
- package/dist/modules/agents/tools/workflow-tool-factory.js +147 -9
- package/dist/modules/agents/tools/workflow-tool-factory.js.map +1 -1
- package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.d.ts +10 -2
- package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js +23 -4
- package/dist/modules/agents/tools/workflow-tool-workflow-loader.service.js.map +1 -1
- package/dist/modules/agents/utils/provider-model-id.d.ts +2 -0
- package/dist/modules/agents/utils/provider-model-id.js +21 -0
- package/dist/modules/agents/utils/provider-model-id.js.map +1 -0
- package/dist/modules/community-packages/community-packages.service.d.ts +4 -0
- package/dist/modules/community-packages/community-packages.service.js +96 -92
- package/dist/modules/community-packages/community-packages.service.js.map +1 -1
- package/dist/modules/community-packages/npm-utils.js +1 -5
- package/dist/modules/community-packages/npm-utils.js.map +1 -1
- package/dist/modules/data-table/data-table-aggregate.service.d.ts +1 -1
- package/dist/modules/data-table/data-table-aggregate.service.js +1 -1
- package/dist/modules/data-table/data-table-aggregate.service.js.map +1 -1
- package/dist/modules/data-table/data-table.service.d.ts +9 -4
- package/dist/modules/data-table/data-table.service.js +34 -4
- package/dist/modules/data-table/data-table.service.js.map +1 -1
- package/dist/modules/data-table/errors/data-table-access-denied.error.d.ts +4 -0
- package/dist/modules/data-table/errors/data-table-access-denied.error.js +13 -0
- package/dist/modules/data-table/errors/data-table-access-denied.error.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/config-redaction.d.ts +5 -0
- package/dist/modules/dynamic-credentials.ee/config-redaction.js +81 -0
- package/dist/modules/dynamic-credentials.ee/config-redaction.js.map +1 -0
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.d.ts +2 -3
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js +2 -4
- package/dist/modules/dynamic-credentials.ee/credential-resolvers/identifiers/oauth2-metadata-http-client.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/credential-resolvers.controller.d.ts +1 -0
- 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.controller.js +3 -2
- package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +22 -4
- package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.d.ts +1 -0
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js +12 -2
- package/dist/modules/dynamic-credentials.ee/services/credential-resolver.service.js.map +1 -1
- package/dist/modules/encryption-key-manager/key-manager.service.d.ts +7 -2
- package/dist/modules/encryption-key-manager/key-manager.service.js +27 -8
- package/dist/modules/encryption-key-manager/key-manager.service.js.map +1 -1
- package/dist/modules/engine-v2/engine-control-plane-auth.middleware.d.ts +6 -0
- package/dist/modules/engine-v2/engine-control-plane-auth.middleware.js +31 -0
- package/dist/modules/engine-v2/engine-control-plane-auth.middleware.js.map +1 -0
- package/dist/modules/engine-v2/engine-control-plane-client.d.ts +9 -0
- package/dist/modules/engine-v2/engine-control-plane-client.js +51 -0
- package/dist/modules/engine-v2/engine-control-plane-client.js.map +1 -0
- package/dist/modules/engine-v2/engine-control-plane-server.d.ts +14 -0
- package/dist/modules/engine-v2/engine-control-plane-server.js +84 -0
- package/dist/modules/engine-v2/engine-control-plane-server.js.map +1 -0
- package/dist/modules/engine-v2/engine-data-plane-client.d.ts +3 -1
- package/dist/modules/engine-v2/engine-data-plane-client.js +16 -1
- package/dist/modules/engine-v2/engine-data-plane-client.js.map +1 -1
- package/dist/modules/engine-v2/engine-lifecycle-event-push-relay.d.ts +18 -0
- package/dist/modules/engine-v2/engine-lifecycle-event-push-relay.js +150 -0
- package/dist/modules/engine-v2/engine-lifecycle-event-push-relay.js.map +1 -0
- package/dist/modules/engine-v2/engine-lifecycle-event.controller.d.ts +7 -0
- package/dist/modules/engine-v2/engine-lifecycle-event.controller.js +34 -0
- package/dist/modules/engine-v2/engine-lifecycle-event.controller.js.map +1 -0
- package/dist/modules/engine-v2/engine-v2.constants.d.ts +2 -0
- package/dist/modules/engine-v2/engine-v2.constants.js +6 -0
- package/dist/modules/engine-v2/engine-v2.constants.js.map +1 -0
- package/dist/modules/engine-v2/engine-v2.module.js +4 -0
- package/dist/modules/engine-v2/engine-v2.module.js.map +1 -1
- package/dist/modules/engine-v2/engine-v2.runtime.d.ts +3 -1
- package/dist/modules/engine-v2/engine-v2.runtime.js +6 -2
- package/dist/modules/engine-v2/engine-v2.runtime.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js +1 -1
- package/dist/modules/external-secrets.ee/providers/aws-secrets-manager.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/infisical.js +1 -1
- package/dist/modules/external-secrets.ee/providers/infisical.js.map +1 -1
- package/dist/modules/external-secrets.ee/providers/vault.js +1 -1
- package/dist/modules/external-secrets.ee/providers/vault.js.map +1 -1
- package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.d.ts +5 -3
- package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.js +16 -4
- package/dist/modules/git-connections.ee/database/repositories/git-connection-project.repository.js.map +1 -1
- package/dist/modules/git-connections.ee/git-connections.service.d.ts +4 -2
- package/dist/modules/git-connections.ee/git-connections.service.js +87 -4
- package/dist/modules/git-connections.ee/git-connections.service.js.map +1 -1
- package/dist/modules/instance-ai/browser/browser-local-mcp-server.d.ts +3 -2
- package/dist/modules/instance-ai/browser/browser-local-mcp-server.js +48 -30
- package/dist/modules/instance-ai/browser/browser-local-mcp-server.js.map +1 -1
- package/dist/modules/instance-ai/event-bus/durable-event-log.js.map +1 -1
- package/dist/modules/instance-ai/event-bus/in-process-event-bus.d.ts +2 -28
- package/dist/modules/instance-ai/event-bus/in-process-event-bus.js +5 -228
- package/dist/modules/instance-ai/event-bus/in-process-event-bus.js.map +1 -1
- package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.d.ts +1 -3
- package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.js +2 -8
- package/dist/modules/instance-ai/event-bus/interrupted-run-sweeper.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai-memory.service.js +1 -3
- 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 -0
- package/dist/modules/instance-ai/instance-ai-settings.service.js +10 -2
- 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 +0 -2
- package/dist/modules/instance-ai/instance-ai-terminal-outcome.service.js +1 -2
- 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 +2 -3
- package/dist/modules/instance-ai/instance-ai.adapter.service.js +101 -44
- package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.d.ts +1 -1
- package/dist/modules/instance-ai/instance-ai.controller.js +75 -83
- package/dist/modules/instance-ai/instance-ai.controller.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.module.js +8 -16
- package/dist/modules/instance-ai/instance-ai.module.js.map +1 -1
- package/dist/modules/instance-ai/instance-ai.service.d.ts +2 -0
- package/dist/modules/instance-ai/instance-ai.service.js +55 -11
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/internal-messages.d.ts +7 -0
- package/dist/modules/instance-ai/internal-messages.js +32 -2
- package/dist/modules/instance-ai/internal-messages.js.map +1 -1
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.d.ts +2 -5
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js +4 -7
- package/dist/modules/instance-ai/mcp/instance-ai-mcp-registry.service.js.map +1 -1
- package/dist/modules/instance-ai/repositories/instance-ai-event-log.repository.js.map +1 -1
- package/dist/modules/instance-ai/tracing/instance-ai-tracing.service.js.map +1 -1
- package/dist/modules/instance-ai/workflow-templates.service.js +1 -1
- package/dist/modules/instance-ai/workflow-templates.service.js.map +1 -1
- package/dist/modules/ldap.ee/ldap.controller.ee.d.ts +4 -2
- package/dist/modules/ldap.ee/ldap.controller.ee.js +9 -2
- package/dist/modules/ldap.ee/ldap.controller.ee.js.map +1 -1
- package/dist/modules/ldap.ee/ldap.service.ee.js +4 -0
- package/dist/modules/ldap.ee/ldap.service.ee.js.map +1 -1
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js +1 -1
- package/dist/modules/log-streaming.ee/destinations/message-event-bus-destination-webhook.ee.js.map +1 -1
- package/dist/modules/mcp/mcp-server-middleware.service.js +1 -0
- package/dist/modules/mcp/mcp-server-middleware.service.js.map +1 -1
- package/dist/modules/mcp/mcp.constants.d.ts +2 -0
- package/dist/modules/mcp/mcp.constants.js +3 -1
- package/dist/modules/mcp/mcp.constants.js.map +1 -1
- package/dist/modules/mcp/mcp.controller.js +20 -6
- package/dist/modules/mcp/mcp.controller.js.map +1 -1
- package/dist/modules/mcp/mcp.types.d.ts +1 -0
- package/dist/modules/mcp/tools/agents/agent-reference.d.ts +1 -1
- package/dist/modules/mcp/tools/agents/agent-reference.js +2 -2
- package/dist/modules/mcp/tools/agents/agent-tools.service.d.ts +2 -5
- package/dist/modules/mcp/tools/agents/agent-tools.service.js +5 -9
- package/dist/modules/mcp/tools/agents/agent-tools.service.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-result.d.ts +2 -1
- package/dist/modules/n8n-packages/engine/import-result.js +1 -0
- package/dist/modules/n8n-packages/engine/import-result.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-telemetry.d.ts +5 -1
- package/dist/modules/n8n-packages/engine/import-telemetry.js.map +1 -1
- package/dist/modules/n8n-packages/engine/project-package-importer.d.ts +4 -5
- package/dist/modules/n8n-packages/engine/project-package-importer.js +9 -7
- package/dist/modules/n8n-packages/engine/project-package-importer.js.map +1 -1
- package/dist/modules/n8n-packages/engine/workflow-package-importer.d.ts +4 -5
- package/dist/modules/n8n-packages/engine/workflow-package-importer.js +18 -20
- package/dist/modules/n8n-packages/engine/workflow-package-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-importer.js +1 -0
- package/dist/modules/n8n-packages/entities/credential/credential-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.js +12 -12
- package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.js.map +1 -1
- package/dist/modules/n8n-packages/entities/credential/workflow-credential-references.d.ts +4 -0
- package/dist/modules/n8n-packages/entities/credential/workflow-credential-references.js +34 -0
- package/dist/modules/n8n-packages/entities/credential/workflow-credential-references.js.map +1 -0
- package/dist/modules/n8n-packages/entities/project/project-importer.js +1 -1
- package/dist/modules/n8n-packages/entities/project/project-importer.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +22 -14
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
- package/dist/modules/n8n-packages/io/directory/directory-package-reader.d.ts +21 -0
- package/dist/modules/n8n-packages/io/directory/directory-package-reader.js +146 -0
- package/dist/modules/n8n-packages/io/directory/directory-package-reader.js.map +1 -0
- package/dist/modules/n8n-packages/n8n-packages.service.d.ts +5 -1
- package/dist/modules/n8n-packages/n8n-packages.service.js +36 -0
- package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +10 -2
- package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
- package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.d.ts +1 -0
- package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.js +4 -0
- package/dist/modules/oauth-server/database/entities/oauth-refresh-token.entity.js.map +1 -1
- package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.d.ts +1 -0
- package/dist/modules/oauth-server/database/repositories/oauth-refresh-token.repository.js.map +1 -1
- package/dist/modules/oauth-server/oauth-server.service.d.ts +1 -1
- package/dist/modules/oauth-server/oauth-server.service.js +12 -16
- package/dist/modules/oauth-server/oauth-server.service.js.map +1 -1
- package/dist/modules/oauth-server/oauth-token.service.d.ts +2 -1
- package/dist/modules/oauth-server/oauth-token.service.js +15 -3
- package/dist/modules/oauth-server/oauth-token.service.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.base.d.ts +22 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.base.js +60 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.base.js.map +1 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.resolver.d.ts +24 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.resolver.js +62 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-resource.resolver.js.map +1 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-test-resource.resolver.d.ts +22 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-test-resource.resolver.js +56 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/chat-trigger-test-resource.resolver.js.map +1 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/index.js +4 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/index.js.map +1 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.d.ts +4 -0
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.js +17 -1
- package/dist/modules/oauth-server/protected-resource-resolvers/utils.js.map +1 -1
- package/dist/modules/oauth-server/resource-identity.d.ts +2 -0
- package/dist/modules/oauth-server/resource-identity.js +15 -0
- package/dist/modules/oauth-server/resource-identity.js.map +1 -0
- package/dist/modules/otel/otel.service.js +14 -7
- package/dist/modules/otel/otel.service.js.map +1 -1
- package/dist/modules/policy-infrastructure/policy-decision.service.d.ts +1 -0
- package/dist/modules/policy-infrastructure/policy-decision.service.js +3 -0
- package/dist/modules/policy-infrastructure/policy-decision.service.js.map +1 -1
- package/dist/modules/policy-infrastructure/policy-infrastructure.module.js +1 -0
- package/dist/modules/policy-infrastructure/policy-infrastructure.module.js.map +1 -1
- package/dist/modules/policy-infrastructure/policy-lifecycle-handler.d.ts +9 -0
- package/dist/modules/policy-infrastructure/policy-lifecycle-handler.js +45 -0
- package/dist/modules/policy-infrastructure/policy-lifecycle-handler.js.map +1 -0
- package/dist/modules/quick-connect/handlers/firecrawl.handler.js +1 -1
- package/dist/modules/quick-connect/handlers/firecrawl.handler.js.map +1 -1
- package/dist/modules/source-control.ee/source-control-import.service.ee.d.ts +18 -1
- package/dist/modules/source-control.ee/source-control-import.service.ee.js +11 -3
- 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 +2 -0
- 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 +32 -0
- package/dist/modules/source-control.ee/source-control.service.ee.d.ts +16 -0
- package/dist/modules/source-control.ee/source-control.service.ee.js +11 -2
- package/dist/modules/source-control.ee/source-control.service.ee.js.map +1 -1
- package/dist/modules/source-control.ee/types/import-result.d.ts +2 -1
- package/dist/modules/sso-oidc/oidc.controller.ee.js +2 -2
- package/dist/modules/sso-oidc/oidc.controller.ee.js.map +1 -1
- package/dist/modules/sso-oidc/oidc.service.ee.js +1 -1
- package/dist/modules/sso-oidc/oidc.service.ee.js.map +1 -1
- package/dist/modules/sso-oidc/views/oidc-test-result.d.ts +2 -2
- package/dist/modules/sso-oidc/views/oidc-test-result.js +10 -4
- package/dist/modules/sso-oidc/views/oidc-test-result.js.map +1 -1
- package/dist/modules/sso-saml/saml.controller.ee.js +2 -2
- package/dist/modules/sso-saml/saml.controller.ee.js.map +1 -1
- package/dist/modules/sso-saml/saml.service.ee.js +1 -1
- package/dist/modules/sso-saml/saml.service.ee.js.map +1 -1
- package/dist/modules/sso-saml/views/init-sso-post.d.ts +1 -1
- package/dist/modules/sso-saml/views/init-sso-post.js +2 -2
- package/dist/modules/sso-saml/views/init-sso-post.js.map +1 -1
- package/dist/modules/token-exchange/services/jwks-resolver.js +1 -1
- package/dist/modules/token-exchange/services/jwks-resolver.js.map +1 -1
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy-attachment.entity.d.ts +7 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy-attachment.entity.js +38 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy-attachment.entity.js.map +1 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy-scope.entity.d.ts +9 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy-scope.entity.js +41 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy-scope.entity.js.map +1 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy.entity.d.ts +8 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy.entity.js +37 -0
- package/dist/modules/type-availability-policies/database/entities/type-availability-policy.entity.js.map +1 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-attachment.repository.d.ts +17 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-attachment.repository.js +96 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-attachment.repository.js.map +1 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-scope.repository.d.ts +20 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-scope.repository.js +69 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy-scope.repository.js.map +1 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy.repository.d.ts +18 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy.repository.js +63 -0
- package/dist/modules/type-availability-policies/database/repositories/type-availability-policy.repository.js.map +1 -0
- package/dist/modules/type-availability-policies/type-availability-policies.module.d.ts +1 -0
- package/dist/modules/type-availability-policies/type-availability-policies.module.js +6 -0
- package/dist/modules/type-availability-policies/type-availability-policies.module.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.d.ts +3 -5
- package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js +7 -9
- package/dist/modules/workflow-reviews.ee/workflow-review-activity.service.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/{workflow-review-access.service.d.ts → workflow-review-authorization.service.d.ts} +12 -3
- package/dist/modules/workflow-reviews.ee/{workflow-review-access.service.js → workflow-review-authorization.service.js} +52 -17
- package/dist/modules/workflow-reviews.ee/workflow-review-authorization.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-decision-policy.d.ts +14 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-decision-policy.js +17 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-decision-policy.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.d.ts +8 -12
- package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js +28 -82
- package/dist/modules/workflow-reviews.ee/workflow-review-inbox.service.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.d.ts +7 -6
- package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.js +80 -110
- package/dist/modules/workflow-reviews.ee/workflow-review-lifecycle.service.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-participant.resolver.d.ts +17 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-participant.resolver.js +69 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-participant.resolver.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-decision.service.d.ts +34 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-decision.service.js +237 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-decision.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-mutation-guard.service.d.ts +10 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-mutation-guard.service.js +57 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-mutation-guard.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-status.service.d.ts +17 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-status.service.js +93 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-status.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-submission.service.d.ts +34 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-submission.service.js +268 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-request-submission.service.js.map +1 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.d.ts +7 -3
- package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js +13 -9
- package/dist/modules/workflow-reviews.ee/workflow-review-requests.controller.js.map +1 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-state-notifier.service.d.ts +9 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-state-notifier.service.js +37 -0
- package/dist/modules/workflow-reviews.ee/workflow-review-state-notifier.service.js.map +1 -0
- package/dist/oauth/oauth.service.js +0 -1
- package/dist/oauth/oauth.service.js.map +1 -1
- package/dist/permissions.ee/check-access.js +11 -7
- package/dist/permissions.ee/check-access.js.map +1 -1
- package/dist/permissions.ee/project-scope.service.d.ts +1 -0
- package/dist/permissions.ee/project-scope.service.js +7 -2
- package/dist/permissions.ee/project-scope.service.js.map +1 -1
- package/dist/policy/evaluate-content-import-safely.d.ts +5 -0
- package/dist/policy/evaluate-content-import-safely.js +18 -0
- package/dist/policy/evaluate-content-import-safely.js.map +1 -0
- package/dist/policy/policy-enforcement-backend.d.ts +1 -0
- package/dist/policy/policy-enforcement.service.d.ts +2 -2
- package/dist/policy/policy-enforcement.service.js +10 -14
- package/dist/policy/policy-enforcement.service.js.map +1 -1
- package/dist/policy/policy-violation.error.d.ts +2 -0
- package/dist/policy/policy-violation.error.js +10 -0
- package/dist/policy/policy-violation.error.js.map +1 -1
- package/dist/public-api/types.d.ts +1 -14
- package/dist/public-api/v1/controllers/git-connections.public.controller.d.ts +2 -1
- package/dist/public-api/v1/controllers/git-connections.public.controller.js +24 -3
- package/dist/public-api/v1/controllers/git-connections.public.controller.js.map +1 -1
- package/dist/public-api/v1/controllers/workflows.public.controller.d.ts +8 -1
- package/dist/public-api/v1/controllers/workflows.public.controller.js +151 -14
- package/dist/public-api/v1/controllers/workflows.public.controller.js.map +1 -1
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js +1 -0
- package/dist/public-api/v1/handlers/credentials/credentials.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js +33 -44
- package/dist/public-api/v1/handlers/data-tables/data-tables.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/discover/discover.handler.d.ts +1 -1
- package/dist/public-api/v1/handlers/discover/discover.handler.js +3 -13
- package/dist/public-api/v1/handlers/discover/discover.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/discover/discover.service.d.ts +2 -3
- package/dist/public-api/v1/handlers/discover/discover.service.js.map +1 -1
- package/dist/public-api/v1/handlers/evaluations/evaluations.handler.js +11 -35
- package/dist/public-api/v1/handlers/evaluations/evaluations.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/projects/projects.handler.d.ts +1 -1
- package/dist/public-api/v1/handlers/projects/projects.handler.js +23 -21
- package/dist/public-api/v1/handlers/projects/projects.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/users/users.handler.ee.d.ts +1 -1
- package/dist/public-api/v1/handlers/users/users.handler.ee.js +16 -18
- package/dist/public-api/v1/handlers/users/users.handler.ee.js.map +1 -1
- package/dist/public-api/v1/handlers/users/users.mapper.d.ts +12 -0
- package/dist/public-api/v1/handlers/users/users.mapper.js +27 -0
- package/dist/public-api/v1/handlers/users/users.mapper.js.map +1 -0
- package/dist/public-api/v1/handlers/variables/variables.handler.d.ts +1 -1
- package/dist/public-api/v1/handlers/variables/variables.handler.js +5 -6
- package/dist/public-api/v1/handlers/variables/variables.handler.js.map +1 -1
- package/dist/public-api/v1/handlers/workflows/workflows.handler.d.ts +0 -4
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js +0 -102
- package/dist/public-api/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +4779 -2848
- package/dist/response-helper.js +3 -0
- package/dist/response-helper.js.map +1 -1
- package/dist/scaling/constants.d.ts +2 -2
- package/dist/scaling/constants.js +2 -0
- package/dist/scaling/constants.js.map +1 -1
- package/dist/scaling/pubsub/pubsub.event-map.d.ts +8 -1
- package/dist/scaling/pubsub/pubsub.types.d.ts +3 -1
- package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js +2 -7
- package/dist/scheduling/poll-trigger-node/poll-trigger-task-handler.js.map +1 -1
- package/dist/security/content-security-policy.d.ts +8 -0
- package/dist/security/content-security-policy.js +18 -0
- package/dist/security/content-security-policy.js.map +1 -0
- package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
- package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
- package/dist/server.js +22 -21
- package/dist/server.js.map +1 -1
- package/dist/services/active-workflows.service.d.ts +3 -1
- package/dist/services/active-workflows.service.js +11 -9
- package/dist/services/active-workflows.service.js.map +1 -1
- package/dist/services/ai-gateway.service.js +1 -1
- package/dist/services/ai-gateway.service.js.map +1 -1
- package/dist/services/credentials-tester.service.js +7 -1
- package/dist/services/credentials-tester.service.js.map +1 -1
- package/dist/services/engine-data-plane-proxy.service.d.ts +4 -1
- package/dist/services/engine-data-plane-proxy.service.js +5 -0
- package/dist/services/engine-data-plane-proxy.service.js.map +1 -1
- package/dist/services/engine-v2-dispatcher.service.d.ts +5 -2
- package/dist/services/engine-v2-dispatcher.service.js +46 -24
- package/dist/services/engine-v2-dispatcher.service.js.map +1 -1
- package/dist/services/engine-v2-push-registry.service.d.ts +8 -0
- package/dist/services/engine-v2-push-registry.service.js +51 -0
- package/dist/services/engine-v2-push-registry.service.js.map +1 -0
- package/dist/services/engine-v2-push-session.d.ts +23 -0
- package/dist/services/engine-v2-push-session.js +24 -0
- package/dist/services/engine-v2-push-session.js.map +1 -0
- package/dist/services/folder-finder.service.js +10 -8
- package/dist/services/folder-finder.service.js.map +1 -1
- package/dist/services/folder.service.d.ts +1 -1
- package/dist/services/folder.service.js +1 -7
- package/dist/services/folder.service.js.map +1 -1
- package/dist/services/import.service.d.ts +14 -3
- package/dist/services/import.service.js +27 -2
- package/dist/services/import.service.js.map +1 -1
- package/dist/services/ownership-transfer/ownership-transfer.manifest.json +5 -0
- package/dist/services/project.service.ee.d.ts +48 -9
- package/dist/services/project.service.ee.js +131 -17
- package/dist/services/project.service.ee.js.map +1 -1
- package/dist/services/role.service.js +10 -5
- package/dist/services/role.service.js.map +1 -1
- package/dist/services/user.service.d.ts +41 -8
- package/dist/services/user.service.js +174 -8
- package/dist/services/user.service.js.map +1 -1
- package/dist/task-runners/task-runner-process-py.d.ts +1 -1
- package/dist/task-runners/task-runner-process-py.js.map +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/utils/ai-proxy-fetch.d.ts +3 -4
- package/dist/utils/ai-proxy-fetch.js +3 -5
- package/dist/utils/ai-proxy-fetch.js.map +1 -1
- package/dist/utils/strapi-utils.js +1 -1
- package/dist/utils/strapi-utils.js.map +1 -1
- package/dist/utils/ttl-map.d.ts +1 -0
- package/dist/utils/ttl-map.js +9 -0
- package/dist/utils/ttl-map.js.map +1 -1
- package/dist/webhooks/constants.d.ts +2 -0
- package/dist/webhooks/constants.js +2 -1
- package/dist/webhooks/constants.js.map +1 -1
- package/dist/webhooks/live-webhooks.js +1 -1
- package/dist/webhooks/live-webhooks.js.map +1 -1
- package/dist/webhooks/test-webhook-registrations.service.d.ts +1 -0
- package/dist/webhooks/test-webhook-registrations.service.js.map +1 -1
- package/dist/webhooks/test-webhooks.d.ts +6 -2
- package/dist/webhooks/test-webhooks.js +29 -6
- package/dist/webhooks/test-webhooks.js.map +1 -1
- package/dist/webhooks/waiting-forms.js +3 -4
- package/dist/webhooks/waiting-forms.js.map +1 -1
- package/dist/webhooks/waiting-webhooks.js +4 -0
- package/dist/webhooks/waiting-webhooks.js.map +1 -1
- package/dist/webhooks/webhook-helpers.d.ts +3 -1
- package/dist/webhooks/webhook-helpers.js +24 -1
- package/dist/webhooks/webhook-helpers.js.map +1 -1
- package/dist/webhooks/webhook-response-headers.d.ts +1 -0
- package/dist/webhooks/webhook-response-headers.js +6 -0
- package/dist/webhooks/webhook-response-headers.js.map +1 -1
- package/dist/workflow-execute-additional-data.js +5 -0
- package/dist/workflow-execute-additional-data.js.map +1 -1
- package/dist/workflow-helpers.d.ts +3 -2
- package/dist/workflow-helpers.js +35 -24
- package/dist/workflow-helpers.js.map +1 -1
- package/dist/workflows/publication/publication-result.d.ts +5 -0
- package/dist/workflows/publication/publication-status-reporter.d.ts +1 -0
- package/dist/workflows/publication/publication-status-reporter.js +23 -5
- package/dist/workflows/publication/publication-status-reporter.js.map +1 -1
- package/dist/workflows/publication/workflow-publication-applier.d.ts +6 -1
- package/dist/workflows/publication/workflow-publication-applier.js +63 -10
- package/dist/workflows/publication/workflow-publication-applier.js.map +1 -1
- package/dist/workflows/triggers/poll-backoff.service.d.ts +2 -2
- package/dist/workflows/triggers/poll-backoff.service.js +3 -3
- package/dist/workflows/triggers/poll-backoff.service.js.map +1 -1
- package/dist/workflows/triggers/poll-cursor.service.d.ts +2 -2
- package/dist/workflows/triggers/poll-cursor.service.js +4 -1
- package/dist/workflows/triggers/poll-cursor.service.js.map +1 -1
- package/dist/workflows/triggers/trigger-execution-context.factory.d.ts +6 -4
- package/dist/workflows/triggers/trigger-execution-context.factory.js +13 -7
- package/dist/workflows/triggers/trigger-execution-context.factory.js.map +1 -1
- package/dist/workflows/triggers/webhook-trigger-registrar.d.ts +1 -0
- package/dist/workflows/triggers/webhook-trigger-registrar.js +3 -0
- package/dist/workflows/triggers/webhook-trigger-registrar.js.map +1 -1
- package/dist/workflows/triggers/workflow-trigger-activator.d.ts +10 -1
- package/dist/workflows/triggers/workflow-trigger-activator.js +78 -38
- package/dist/workflows/triggers/workflow-trigger-activator.js.map +1 -1
- package/dist/workflows/workflow-creation.service.d.ts +17 -4
- package/dist/workflows/workflow-creation.service.js +96 -16
- package/dist/workflows/workflow-creation.service.js.map +1 -1
- package/dist/workflows/workflow-execution.service.js +2 -0
- package/dist/workflows/workflow-execution.service.js.map +1 -1
- package/dist/workflows/workflow-finder.service.js +67 -56
- package/dist/workflows/workflow-finder.service.js.map +1 -1
- package/dist/workflows/workflow-validation.service.js +3 -2
- package/dist/workflows/workflow-validation.service.js.map +1 -1
- package/dist/workflows/workflow.service.d.ts +4 -1
- package/dist/workflows/workflow.service.ee.d.ts +9 -3
- package/dist/workflows/workflow.service.ee.js +16 -2
- package/dist/workflows/workflow.service.ee.js.map +1 -1
- package/dist/workflows/workflow.service.js +25 -4
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +3 -5
- package/dist/workflows/workflows.controller.js +3 -7
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/package.json +37 -37
- package/templates/oauth-callback.handlebars +1 -1
- package/templates/oauth-error-callback.handlebars +1 -1
- package/templates/saml-connection-test-failed.handlebars +4 -1
- package/templates/saml-connection-test-success.handlebars +4 -1
- package/dist/modules/agents/sub-agents/sub-agent-foreground-runner.js.map +0 -1
- package/dist/modules/instance-ai/output-redaction-config.d.ts +0 -3
- package/dist/modules/instance-ai/output-redaction-config.js +0 -21
- package/dist/modules/instance-ai/output-redaction-config.js.map +0 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-access.service.js.map +0 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.d.ts +0 -18
- package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js +0 -77
- package/dist/modules/workflow-reviews.ee/workflow-review-eligibility.service.js.map +0 -1
- package/dist/modules/workflow-reviews.ee/workflow-review-request.service.d.ts +0 -51
- package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js +0 -538
- package/dist/modules/workflow-reviews.ee/workflow-review-request.service.js.map +0 -1
- package/dist/policy/policy-cleared.d.ts +0 -20
- package/dist/policy/policy-cleared.js +0 -22
- package/dist/policy/policy-cleared.js.map +0 -1
- package/dist/public-api/v1/handlers/data-tables/data-tables.service.d.ts +0 -4
- package/dist/public-api/v1/handlers/data-tables/data-tables.service.js +0 -44
- package/dist/public-api/v1/handlers/data-tables/data-tables.service.js.map +0 -1
- package/dist/public-api/v1/handlers/users/users.service.ee.d.ts +0 -21
- package/dist/public-api/v1/handlers/users/users.service.ee.js +0 -68
- package/dist/public-api/v1/handlers/users/users.service.ee.js.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Logger } from '@n8n/backend-common';
|
|
2
|
+
import { Publisher } from '../../../scaling/pubsub/publisher.service';
|
|
3
|
+
import type { AgentBackgroundJob } from '../entities/agent-background-job.entity';
|
|
4
|
+
import { AgentBackgroundJobRepository, type AgentBackgroundJobSettlement, type NewSubAgentJob } from '../repositories/agent-background-job.repository';
|
|
5
|
+
import { AgentExecutionRepository } from '../repositories/agent-execution.repository';
|
|
6
|
+
export declare const MAX_RUNNING_JOBS_PER_THREAD = 5;
|
|
7
|
+
export declare const SUB_AGENT_BACKGROUND_TIMEOUT_MS: number;
|
|
8
|
+
export declare const SETTLED_JOB_RETENTION_MS: number;
|
|
9
|
+
export type BackgroundJobReceipt = {
|
|
10
|
+
status: 'started';
|
|
11
|
+
jobId: string;
|
|
12
|
+
} | {
|
|
13
|
+
status: 'limit-reached';
|
|
14
|
+
};
|
|
15
|
+
export type BackgroundJobView = Pick<AgentBackgroundJob, 'id' | 'kind' | 'title' | 'status' | 'result' | 'error' | 'createdAt' | 'timeoutAt' | 'settledAt'>;
|
|
16
|
+
export declare class AgentBackgroundJobService {
|
|
17
|
+
private readonly jobRepository;
|
|
18
|
+
private readonly executionRepository;
|
|
19
|
+
private readonly publisher;
|
|
20
|
+
private readonly logger;
|
|
21
|
+
private readonly abortControllers;
|
|
22
|
+
constructor(jobRepository: AgentBackgroundJobRepository, executionRepository: AgentExecutionRepository, publisher: Publisher, logger: Logger);
|
|
23
|
+
registerSubAgentJob(params: Omit<NewSubAgentJob, 'kind' | 'timeoutAt'>): Promise<BackgroundJobReceipt>;
|
|
24
|
+
settle(jobId: string, settlement: AgentBackgroundJobSettlement): Promise<boolean>;
|
|
25
|
+
registerAbortController(jobId: string, controller: AbortController): void;
|
|
26
|
+
listForThread(parentThreadId: string, ids?: string[]): Promise<BackgroundJobView[]>;
|
|
27
|
+
cancel(parentThreadId: string, jobId: string): Promise<'cancelled' | 'not-found' | 'already-settled'>;
|
|
28
|
+
handleCancelRelay({ jobId }: {
|
|
29
|
+
jobId: string;
|
|
30
|
+
}): void;
|
|
31
|
+
reconcile(): Promise<void>;
|
|
32
|
+
private failJobsPastTimeout;
|
|
33
|
+
private failOrphanedSubAgentJobs;
|
|
34
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
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.AgentBackgroundJobService = exports.SETTLED_JOB_RETENTION_MS = exports.SUB_AGENT_BACKGROUND_TIMEOUT_MS = exports.MAX_RUNNING_JOBS_PER_THREAD = void 0;
|
|
13
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
14
|
+
const constants_1 = require("@n8n/constants");
|
|
15
|
+
const decorators_1 = require("@n8n/decorators");
|
|
16
|
+
const di_1 = require("@n8n/di");
|
|
17
|
+
const publisher_service_1 = require("../../../scaling/pubsub/publisher.service");
|
|
18
|
+
const agent_background_job_repository_1 = require("../repositories/agent-background-job.repository");
|
|
19
|
+
const agent_execution_repository_1 = require("../repositories/agent-execution.repository");
|
|
20
|
+
exports.MAX_RUNNING_JOBS_PER_THREAD = 5;
|
|
21
|
+
exports.SUB_AGENT_BACKGROUND_TIMEOUT_MS = 30 * constants_1.Time.minutes.toMilliseconds;
|
|
22
|
+
exports.SETTLED_JOB_RETENTION_MS = 30 * constants_1.Time.days.toMilliseconds;
|
|
23
|
+
let AgentBackgroundJobService = class AgentBackgroundJobService {
|
|
24
|
+
constructor(jobRepository, executionRepository, publisher, logger) {
|
|
25
|
+
this.jobRepository = jobRepository;
|
|
26
|
+
this.executionRepository = executionRepository;
|
|
27
|
+
this.publisher = publisher;
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
this.abortControllers = new Map();
|
|
30
|
+
this.logger = this.logger.scoped('agents');
|
|
31
|
+
}
|
|
32
|
+
async registerSubAgentJob(params) {
|
|
33
|
+
const running = await this.jobRepository.countRunningByParentThread(params.parentThreadId);
|
|
34
|
+
if (running >= exports.MAX_RUNNING_JOBS_PER_THREAD)
|
|
35
|
+
return { status: 'limit-reached' };
|
|
36
|
+
await this.jobRepository.insertJob({
|
|
37
|
+
...params,
|
|
38
|
+
kind: 'subagent',
|
|
39
|
+
timeoutAt: new Date(Date.now() + exports.SUB_AGENT_BACKGROUND_TIMEOUT_MS),
|
|
40
|
+
});
|
|
41
|
+
return { status: 'started', jobId: params.id };
|
|
42
|
+
}
|
|
43
|
+
async settle(jobId, settlement) {
|
|
44
|
+
try {
|
|
45
|
+
return await this.jobRepository.settleIfRunning(jobId, settlement);
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
this.abortControllers.delete(jobId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
registerAbortController(jobId, controller) {
|
|
52
|
+
this.abortControllers.set(jobId, controller);
|
|
53
|
+
}
|
|
54
|
+
async listForThread(parentThreadId, ids) {
|
|
55
|
+
let jobs = await this.jobRepository.findByParentThread(parentThreadId, ids);
|
|
56
|
+
const reconciled = await this.failOrphanedSubAgentJobs(jobs);
|
|
57
|
+
if (reconciled)
|
|
58
|
+
jobs = await this.jobRepository.findByParentThread(parentThreadId, ids);
|
|
59
|
+
return jobs.map((job) => ({
|
|
60
|
+
id: job.id,
|
|
61
|
+
kind: job.kind,
|
|
62
|
+
title: job.title,
|
|
63
|
+
status: job.status,
|
|
64
|
+
result: job.result,
|
|
65
|
+
error: job.error,
|
|
66
|
+
createdAt: job.createdAt,
|
|
67
|
+
timeoutAt: job.timeoutAt,
|
|
68
|
+
settledAt: job.settledAt,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
async cancel(parentThreadId, jobId) {
|
|
72
|
+
const [job] = await this.jobRepository.findByParentThread(parentThreadId, [jobId]);
|
|
73
|
+
if (!job)
|
|
74
|
+
return 'not-found';
|
|
75
|
+
const claimed = await this.jobRepository.settleIfRunning(jobId, { status: 'cancelled' });
|
|
76
|
+
if (!claimed)
|
|
77
|
+
return 'already-settled';
|
|
78
|
+
const controller = this.abortControllers.get(jobId);
|
|
79
|
+
if (controller) {
|
|
80
|
+
controller.abort();
|
|
81
|
+
this.abortControllers.delete(jobId);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
try {
|
|
85
|
+
await this.publisher.publishCommand({
|
|
86
|
+
command: 'cancel-agent-background-job',
|
|
87
|
+
payload: { jobId },
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
this.logger.warn('Failed to relay background job cancellation', { jobId, error });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return 'cancelled';
|
|
95
|
+
}
|
|
96
|
+
handleCancelRelay({ jobId }) {
|
|
97
|
+
const controller = this.abortControllers.get(jobId);
|
|
98
|
+
if (!controller)
|
|
99
|
+
return;
|
|
100
|
+
controller.abort();
|
|
101
|
+
this.abortControllers.delete(jobId);
|
|
102
|
+
this.logger.debug('Aborted background job after relayed cancellation', { jobId });
|
|
103
|
+
}
|
|
104
|
+
async reconcile() {
|
|
105
|
+
await this.failJobsPastTimeout();
|
|
106
|
+
await this.failOrphanedSubAgentJobs(await this.jobRepository.findRunningJobs('subagent'));
|
|
107
|
+
await this.jobRepository.deleteSettledBefore(new Date(Date.now() - exports.SETTLED_JOB_RETENTION_MS));
|
|
108
|
+
}
|
|
109
|
+
async failJobsPastTimeout() {
|
|
110
|
+
const timedOut = await this.jobRepository.findRunningPastTimeout(new Date());
|
|
111
|
+
for (const job of timedOut) {
|
|
112
|
+
const controller = this.abortControllers.get(job.id);
|
|
113
|
+
try {
|
|
114
|
+
const settled = await this.settle(job.id, {
|
|
115
|
+
status: 'failed',
|
|
116
|
+
error: `Timed out after ${Math.round(exports.SUB_AGENT_BACKGROUND_TIMEOUT_MS / 60_000)} minutes`,
|
|
117
|
+
});
|
|
118
|
+
if (settled) {
|
|
119
|
+
this.logger.debug('Failed background job past its timeout', { jobId: job.id });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
this.logger.error('Failed to settle background job past its timeout', {
|
|
124
|
+
jobId: job.id,
|
|
125
|
+
error,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
controller?.abort();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async failOrphanedSubAgentJobs(jobs) {
|
|
134
|
+
const orphans = jobs.flatMap((job) => job.kind === 'subagent' &&
|
|
135
|
+
job.status === 'running' &&
|
|
136
|
+
job.childThreadId !== null &&
|
|
137
|
+
!this.abortControllers.has(job.id)
|
|
138
|
+
? [{ job, childThreadId: job.childThreadId }]
|
|
139
|
+
: []);
|
|
140
|
+
if (orphans.length === 0)
|
|
141
|
+
return false;
|
|
142
|
+
const statuses = await this.executionRepository.findLatestStatusesByThreadIds(orphans.map(({ childThreadId }) => childThreadId));
|
|
143
|
+
let settledAny = false;
|
|
144
|
+
for (const { job, childThreadId } of orphans) {
|
|
145
|
+
const childStatus = statuses.get(childThreadId);
|
|
146
|
+
if (childStatus !== 'interrupted' && childStatus !== 'error')
|
|
147
|
+
continue;
|
|
148
|
+
const settled = await this.settle(job.id, {
|
|
149
|
+
status: 'failed',
|
|
150
|
+
error: `Sub-agent run ended with status "${childStatus}" and its result was not recovered`,
|
|
151
|
+
});
|
|
152
|
+
settledAny ||= settled;
|
|
153
|
+
}
|
|
154
|
+
return settledAny;
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
exports.AgentBackgroundJobService = AgentBackgroundJobService;
|
|
158
|
+
__decorate([
|
|
159
|
+
(0, decorators_1.OnPubSubEvent)('cancel-agent-background-job', { instanceType: 'main' }),
|
|
160
|
+
__metadata("design:type", Function),
|
|
161
|
+
__metadata("design:paramtypes", [Object]),
|
|
162
|
+
__metadata("design:returntype", void 0)
|
|
163
|
+
], AgentBackgroundJobService.prototype, "handleCancelRelay", null);
|
|
164
|
+
exports.AgentBackgroundJobService = AgentBackgroundJobService = __decorate([
|
|
165
|
+
(0, di_1.Service)(),
|
|
166
|
+
__metadata("design:paramtypes", [agent_background_job_repository_1.AgentBackgroundJobRepository, agent_execution_repository_1.AgentExecutionRepository, publisher_service_1.Publisher, backend_common_1.Logger])
|
|
167
|
+
], AgentBackgroundJobService);
|
|
168
|
+
//# sourceMappingURL=agent-background-job.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-background-job.service.js","sourceRoot":"","sources":["../../../../src/modules/agents/background/agent-background-job.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BuiltTool } from '@n8n/agents';
|
|
2
|
+
import { type SubAgentSource } from '@n8n/api-types';
|
|
3
|
+
import type { AgentBackgroundJobService } from './agent-background-job.service';
|
|
4
|
+
import type { SubAgentBackgroundRunner } from './sub-agent-background-runner';
|
|
5
|
+
import type { SubAgentRunContext } from '../sub-agents/sub-agent-runner';
|
|
6
|
+
export interface BackgroundJobToolsOptions {
|
|
7
|
+
jobService: AgentBackgroundJobService;
|
|
8
|
+
backgroundRunner: SubAgentBackgroundRunner;
|
|
9
|
+
sourcesById: Record<string, SubAgentSource>;
|
|
10
|
+
availableSubAgents: Array<{
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
useWhen?: string;
|
|
14
|
+
}>;
|
|
15
|
+
projectId: string;
|
|
16
|
+
parentAgentId: string;
|
|
17
|
+
runContext: Pick<SubAgentRunContext, 'credentialProvider' | 'runType' | 'workflowToolExecutionMode' | 'user' | 'instrumentation'>;
|
|
18
|
+
}
|
|
19
|
+
export declare function createSpawnBackgroundSubAgentTool(options: BackgroundJobToolsOptions): BuiltTool;
|
|
20
|
+
export declare function createCheckBackgroundJobsTool(jobService: AgentBackgroundJobService): BuiltTool;
|
|
21
|
+
export declare function createCancelBackgroundJobTool(jobService: AgentBackgroundJobService): BuiltTool;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSpawnBackgroundSubAgentTool = createSpawnBackgroundSubAgentTool;
|
|
4
|
+
exports.createCheckBackgroundJobsTool = createCheckBackgroundJobsTool;
|
|
5
|
+
exports.createCancelBackgroundJobTool = createCancelBackgroundJobTool;
|
|
6
|
+
const agents_1 = require("@n8n/agents");
|
|
7
|
+
const tool_1 = require("@n8n/agents/tool");
|
|
8
|
+
const api_types_1 = require("@n8n/api-types");
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const agent_sandbox_principal_1 = require("../agent-sandbox-principal");
|
|
11
|
+
const RESULT_ECHO_MAX_CHARS = 8000;
|
|
12
|
+
function threadIdOf(ctx) {
|
|
13
|
+
return ctx.persistence?.threadId;
|
|
14
|
+
}
|
|
15
|
+
function createSpawnBackgroundSubAgentTool(options) {
|
|
16
|
+
const roster = options.availableSubAgents
|
|
17
|
+
.map((agent) => `- ${agent.id}: ${agent.name}${agent.useWhen ? ` — ${agent.useWhen}` : ''}`)
|
|
18
|
+
.join('\n');
|
|
19
|
+
return new tool_1.Tool('spawn_background_subagent')
|
|
20
|
+
.description('Dispatch a sub-agent as a detached background job. Returns a receipt immediately; the ' +
|
|
21
|
+
'sub-agent keeps working after your turn ends. Pass "inline" as subAgentId to spawn a ' +
|
|
22
|
+
'copy of yourself for a self-contained subtask.' +
|
|
23
|
+
(roster ? ` Available configured sub-agents:\n${roster}` : ''))
|
|
24
|
+
.systemInstruction('Prefer spawn_background_subagent for independent pieces of work that can run in parallel ' +
|
|
25
|
+
'while you continue. After spawning, either continue with non-overlapping work or end ' +
|
|
26
|
+
'your turn telling the user that work continues in the background — never poll ' +
|
|
27
|
+
'check_background_jobs in a loop waiting for jobs to finish; check once in a later turn ' +
|
|
28
|
+
'instead. The final answer is the contract; never expect the full trace. Instruct ' +
|
|
29
|
+
'sub-agents producing large outputs to write them to the shared workspace and return a ' +
|
|
30
|
+
'summary.')
|
|
31
|
+
.input(zod_1.z.object({
|
|
32
|
+
subAgentId: zod_1.z
|
|
33
|
+
.string()
|
|
34
|
+
.describe('Id of a configured sub-agent from the roster, or "inline" for a copy of yourself'),
|
|
35
|
+
taskName: zod_1.z
|
|
36
|
+
.string()
|
|
37
|
+
.min(1)
|
|
38
|
+
.max(255)
|
|
39
|
+
.describe('Short label for the job, echoed in status checks'),
|
|
40
|
+
goal: zod_1.z.string().describe('What the sub-agent should accomplish'),
|
|
41
|
+
context: zod_1.z.string().optional().describe('Background information the sub-agent needs'),
|
|
42
|
+
expectedOutput: zod_1.z.string().optional().describe('Shape of the answer to return'),
|
|
43
|
+
difficulty: zod_1.z
|
|
44
|
+
.enum(api_types_1.SUB_AGENT_TASK_DIFFICULTIES)
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('Inline spawns only: picks the model tier configured for this difficulty'),
|
|
47
|
+
}))
|
|
48
|
+
.output(zod_1.z.object({
|
|
49
|
+
status: zod_1.z.enum(['started', 'limit-reached', 'rejected']),
|
|
50
|
+
jobId: zod_1.z.string().optional(),
|
|
51
|
+
note: zod_1.z.string().optional(),
|
|
52
|
+
}))
|
|
53
|
+
.handler(async (input, ctx) => {
|
|
54
|
+
const parentThreadId = threadIdOf(ctx);
|
|
55
|
+
const parentResourceId = ctx.persistence?.resourceId;
|
|
56
|
+
if (!parentThreadId || !parentResourceId) {
|
|
57
|
+
return {
|
|
58
|
+
status: 'rejected',
|
|
59
|
+
note: 'Background jobs need a persisted conversation thread; none is active.',
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const isSelfDelegation = input.subAgentId === agents_1.INLINE_SUB_AGENT_ID;
|
|
63
|
+
const source = isSelfDelegation
|
|
64
|
+
? { agentId: options.parentAgentId }
|
|
65
|
+
: options.sourcesById[input.subAgentId];
|
|
66
|
+
if (!source) {
|
|
67
|
+
const ids = [...options.availableSubAgents.map((agent) => agent.id), 'inline'].join(', ');
|
|
68
|
+
return {
|
|
69
|
+
status: 'rejected',
|
|
70
|
+
note: `No sub-agent matched "${input.subAgentId}". Available: ${ids}.`,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const sandboxScope = (0, agent_sandbox_principal_1.decodeAgentSandboxHostMetadata)(ctx.persistence?.hostMetadata);
|
|
74
|
+
const receipt = await options.backgroundRunner.spawn({
|
|
75
|
+
subAgentId: source.agentId,
|
|
76
|
+
source,
|
|
77
|
+
taskName: input.taskName,
|
|
78
|
+
goal: input.goal,
|
|
79
|
+
context: input.context,
|
|
80
|
+
expectedOutput: input.expectedOutput,
|
|
81
|
+
...(isSelfDelegation && input.difficulty !== undefined
|
|
82
|
+
? { difficulty: input.difficulty }
|
|
83
|
+
: {}),
|
|
84
|
+
parentThreadId,
|
|
85
|
+
parentResourceId,
|
|
86
|
+
...(sandboxScope?.projectId === options.projectId
|
|
87
|
+
? { parentSandboxPrincipalHash: sandboxScope.principalHash }
|
|
88
|
+
: {}),
|
|
89
|
+
}, {
|
|
90
|
+
projectId: options.projectId,
|
|
91
|
+
parentAgentId: options.parentAgentId,
|
|
92
|
+
...options.runContext,
|
|
93
|
+
});
|
|
94
|
+
if (receipt.status === 'started') {
|
|
95
|
+
return {
|
|
96
|
+
status: 'started',
|
|
97
|
+
jobId: receipt.jobId,
|
|
98
|
+
note: 'Job dispatched. Check on it later with check_background_jobs.',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
status: 'limit-reached',
|
|
103
|
+
note: 'This conversation already has the maximum number of running background jobs. Wait for one to finish or cancel one.',
|
|
104
|
+
};
|
|
105
|
+
})
|
|
106
|
+
.build();
|
|
107
|
+
}
|
|
108
|
+
function createCheckBackgroundJobsTool(jobService) {
|
|
109
|
+
return new tool_1.Tool('check_background_jobs')
|
|
110
|
+
.description('List the background jobs of this conversation with their status and, once settled, ' +
|
|
111
|
+
'their result or error. Pass an empty object {} to list all jobs (required — do not pass null). ' +
|
|
112
|
+
'Call this at most once per turn: when jobs are still running, tell the user and end your ' +
|
|
113
|
+
'turn — repeated checks within one turn only burn time and tokens.')
|
|
114
|
+
.input(zod_1.z.object({
|
|
115
|
+
jobIds: zod_1.z.array(zod_1.z.string()).max(50).optional().describe('Limit the check to these job ids'),
|
|
116
|
+
}))
|
|
117
|
+
.handler(async (input, ctx) => {
|
|
118
|
+
const parentThreadId = threadIdOf(ctx);
|
|
119
|
+
if (!parentThreadId) {
|
|
120
|
+
return { jobs: [], note: 'No persisted conversation thread is active.' };
|
|
121
|
+
}
|
|
122
|
+
const jobs = await jobService.listForThread(parentThreadId, input.jobIds);
|
|
123
|
+
return {
|
|
124
|
+
jobs: jobs.map((job) => ({
|
|
125
|
+
jobId: job.id,
|
|
126
|
+
kind: job.kind,
|
|
127
|
+
title: job.title,
|
|
128
|
+
status: job.status,
|
|
129
|
+
...(job.result !== null ? { result: truncateResult(job.result) } : {}),
|
|
130
|
+
...(job.error !== null ? { error: truncateResult(job.error) } : {}),
|
|
131
|
+
startedAt: job.createdAt.toISOString(),
|
|
132
|
+
...(job.timeoutAt !== null ? { timeoutAt: job.timeoutAt.toISOString() } : {}),
|
|
133
|
+
})),
|
|
134
|
+
runningCount: jobs.filter((job) => job.status === 'running').length,
|
|
135
|
+
};
|
|
136
|
+
})
|
|
137
|
+
.build();
|
|
138
|
+
}
|
|
139
|
+
function createCancelBackgroundJobTool(jobService) {
|
|
140
|
+
return new tool_1.Tool('cancel_background_job')
|
|
141
|
+
.description('Cancel a running background job of this conversation by its job id.')
|
|
142
|
+
.input(zod_1.z.object({ jobId: zod_1.z.string() }))
|
|
143
|
+
.output(zod_1.z.object({ status: zod_1.z.enum(['cancelled', 'not-found', 'already-settled']) }))
|
|
144
|
+
.handler(async (input, ctx) => {
|
|
145
|
+
const parentThreadId = threadIdOf(ctx);
|
|
146
|
+
if (!parentThreadId)
|
|
147
|
+
return { status: 'not-found' };
|
|
148
|
+
return { status: await jobService.cancel(parentThreadId, input.jobId) };
|
|
149
|
+
})
|
|
150
|
+
.build();
|
|
151
|
+
}
|
|
152
|
+
function truncateResult(result) {
|
|
153
|
+
if (result.length <= RESULT_ECHO_MAX_CHARS)
|
|
154
|
+
return result;
|
|
155
|
+
return `${result.slice(0, RESULT_ECHO_MAX_CHARS)}\n[... truncated, ${result.length} characters total]`;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=background-job-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-job-tools.js","sourceRoot":"","sources":["../../../../src/modules/agents/background/background-job-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SubAgentSource, SubAgentTaskDifficulty } from '@n8n/api-types';
|
|
2
|
+
import { Logger } from '@n8n/backend-common';
|
|
3
|
+
import { AgentBackgroundJobService, type BackgroundJobReceipt } from './agent-background-job.service';
|
|
4
|
+
import { SubAgentRunner, type SubAgentRunContext } from '../sub-agents/sub-agent-runner';
|
|
5
|
+
export interface BackgroundSpawnRequest {
|
|
6
|
+
subAgentId: string;
|
|
7
|
+
source: SubAgentSource;
|
|
8
|
+
taskName: string;
|
|
9
|
+
goal: string;
|
|
10
|
+
context?: string;
|
|
11
|
+
expectedOutput?: string;
|
|
12
|
+
difficulty?: SubAgentTaskDifficulty;
|
|
13
|
+
parentThreadId: string;
|
|
14
|
+
parentResourceId: string;
|
|
15
|
+
parentSandboxPrincipalHash?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class SubAgentBackgroundRunner {
|
|
18
|
+
private readonly runner;
|
|
19
|
+
private readonly jobService;
|
|
20
|
+
private readonly logger;
|
|
21
|
+
private dispatchCounter;
|
|
22
|
+
constructor(runner: SubAgentRunner, jobService: AgentBackgroundJobService, logger: Logger);
|
|
23
|
+
spawn(request: BackgroundSpawnRequest, context: {
|
|
24
|
+
projectId: string;
|
|
25
|
+
parentAgentId: string;
|
|
26
|
+
} & Pick<SubAgentRunContext, 'credentialProvider' | 'runType' | 'workflowToolExecutionMode' | 'user' | 'instrumentation'>): Promise<BackgroundJobReceipt>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
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.SubAgentBackgroundRunner = void 0;
|
|
13
|
+
const agents_1 = require("@n8n/agents");
|
|
14
|
+
const backend_common_1 = require("@n8n/backend-common");
|
|
15
|
+
const di_1 = require("@n8n/di");
|
|
16
|
+
const uuid_1 = require("uuid");
|
|
17
|
+
const agent_background_job_service_1 = require("./agent-background-job.service");
|
|
18
|
+
const format_sub_agent_tool_output_1 = require("../sub-agents/format-sub-agent-tool-output");
|
|
19
|
+
const sub_agent_runner_1 = require("../sub-agents/sub-agent-runner");
|
|
20
|
+
let SubAgentBackgroundRunner = class SubAgentBackgroundRunner {
|
|
21
|
+
constructor(runner, jobService, logger) {
|
|
22
|
+
this.runner = runner;
|
|
23
|
+
this.jobService = jobService;
|
|
24
|
+
this.logger = logger;
|
|
25
|
+
this.dispatchCounter = 0;
|
|
26
|
+
this.logger = this.logger.scoped('agents');
|
|
27
|
+
}
|
|
28
|
+
async spawn(request, context) {
|
|
29
|
+
const taskPath = (0, agents_1.createChildSubAgentTaskPath)(request.taskName, this.dispatchCounter++);
|
|
30
|
+
const jobId = (0, uuid_1.v4)();
|
|
31
|
+
const childThreadId = (0, uuid_1.v4)();
|
|
32
|
+
const receipt = await this.jobService.registerSubAgentJob({
|
|
33
|
+
id: jobId,
|
|
34
|
+
parentAgentId: context.parentAgentId,
|
|
35
|
+
parentThreadId: request.parentThreadId,
|
|
36
|
+
title: request.taskName,
|
|
37
|
+
subAgentId: request.subAgentId,
|
|
38
|
+
childThreadId,
|
|
39
|
+
});
|
|
40
|
+
if (receipt.status !== 'started')
|
|
41
|
+
return receipt;
|
|
42
|
+
const abortController = new AbortController();
|
|
43
|
+
this.jobService.registerAbortController(jobId, abortController);
|
|
44
|
+
const timeout = setTimeout(() => {
|
|
45
|
+
void this.jobService
|
|
46
|
+
.settle(jobId, {
|
|
47
|
+
status: 'failed',
|
|
48
|
+
error: `Timed out after ${Math.round(agent_background_job_service_1.SUB_AGENT_BACKGROUND_TIMEOUT_MS / 60_000)} minutes`,
|
|
49
|
+
})
|
|
50
|
+
.catch((error) => {
|
|
51
|
+
this.logger.error('Failed to settle timed-out background job', { jobId, error });
|
|
52
|
+
})
|
|
53
|
+
.finally(() => abortController.abort());
|
|
54
|
+
}, agent_background_job_service_1.SUB_AGENT_BACKGROUND_TIMEOUT_MS);
|
|
55
|
+
timeout.unref();
|
|
56
|
+
void this.runner
|
|
57
|
+
.run({
|
|
58
|
+
goal: request.goal,
|
|
59
|
+
source: request.source,
|
|
60
|
+
...(request.context !== undefined ? { context: request.context } : {}),
|
|
61
|
+
...(request.expectedOutput !== undefined
|
|
62
|
+
? { expectedOutput: request.expectedOutput }
|
|
63
|
+
: {}),
|
|
64
|
+
parentThreadId: request.parentThreadId,
|
|
65
|
+
parentResourceId: request.parentResourceId,
|
|
66
|
+
...(request.parentSandboxPrincipalHash !== undefined
|
|
67
|
+
? { parentSandboxPrincipalHash: request.parentSandboxPrincipalHash }
|
|
68
|
+
: {}),
|
|
69
|
+
childThreadId,
|
|
70
|
+
taskPath,
|
|
71
|
+
}, {
|
|
72
|
+
projectId: context.projectId,
|
|
73
|
+
parentAgentId: context.parentAgentId,
|
|
74
|
+
credentialProvider: context.credentialProvider,
|
|
75
|
+
runType: context.runType,
|
|
76
|
+
workflowToolExecutionMode: context.workflowToolExecutionMode,
|
|
77
|
+
user: context.user,
|
|
78
|
+
instrumentation: context.instrumentation,
|
|
79
|
+
abortSignal: abortController.signal,
|
|
80
|
+
...(request.difficulty !== undefined
|
|
81
|
+
? { selfDelegationDifficulty: request.difficulty }
|
|
82
|
+
: {}),
|
|
83
|
+
})
|
|
84
|
+
.then((result) => settlementFor(result))
|
|
85
|
+
.catch((error) => ({
|
|
86
|
+
status: 'failed',
|
|
87
|
+
error: error instanceof Error ? error.message : String(error),
|
|
88
|
+
}))
|
|
89
|
+
.then(async (settlement) => {
|
|
90
|
+
const settled = await this.jobService.settle(jobId, settlement);
|
|
91
|
+
if (settled && settlement.status === 'failed') {
|
|
92
|
+
this.logger.warn('Background sub-agent job failed', { jobId, error: settlement.error });
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
.catch((error) => {
|
|
96
|
+
this.logger.error('Failed to settle background sub-agent job', { jobId, error });
|
|
97
|
+
})
|
|
98
|
+
.finally(() => clearTimeout(timeout));
|
|
99
|
+
return receipt;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
exports.SubAgentBackgroundRunner = SubAgentBackgroundRunner;
|
|
103
|
+
exports.SubAgentBackgroundRunner = SubAgentBackgroundRunner = __decorate([
|
|
104
|
+
(0, di_1.Service)(),
|
|
105
|
+
__metadata("design:paramtypes", [sub_agent_runner_1.SubAgentRunner, agent_background_job_service_1.AgentBackgroundJobService, backend_common_1.Logger])
|
|
106
|
+
], SubAgentBackgroundRunner);
|
|
107
|
+
function settlementFor(result) {
|
|
108
|
+
const output = (0, format_sub_agent_tool_output_1.formatSubAgentToolOutput)(result);
|
|
109
|
+
if (output.status === 'completed') {
|
|
110
|
+
return { status: 'completed', result: output.answer };
|
|
111
|
+
}
|
|
112
|
+
if (output.status === 'suspended') {
|
|
113
|
+
return {
|
|
114
|
+
status: 'failed',
|
|
115
|
+
error: 'Sub-agent suspended awaiting human input, which background runs do not support',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
status: output.status === 'cancelled' ? 'cancelled' : 'failed',
|
|
120
|
+
error: output.error ?? null,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=sub-agent-background-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-agent-background-runner.js","sourceRoot":"","sources":["../../../../src/modules/agents/background/sub-agent-background-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type BuiltTool, type CredentialProvider } from '@n8n/agents';
|
|
2
|
-
import { OutboundHttp
|
|
3
|
-
import { SsrfProtectionConfig } from '@n8n/config';
|
|
2
|
+
import { OutboundHttp } from '@n8n/backend-network';
|
|
4
3
|
import type { User } from '@n8n/db';
|
|
4
|
+
import type { InstanceAiCredentialService } from '@n8n/instance-ai';
|
|
5
5
|
import { CredentialTypes } from '../../../credential-types';
|
|
6
6
|
import { McpRegistryService } from '../../../modules/mcp-registry/registry/mcp-registry.service';
|
|
7
7
|
import { NodeTypes } from '../../../node-types';
|
|
@@ -52,13 +52,11 @@ export declare class AgentsBuilderToolsService {
|
|
|
52
52
|
private readonly outboundHttp;
|
|
53
53
|
private readonly dynamicNodeParametersService;
|
|
54
54
|
private readonly nodeTypes;
|
|
55
|
-
private readonly ssrfConfig;
|
|
56
|
-
private readonly ssrfProtectionService;
|
|
57
55
|
private readonly freeAiCreditsService;
|
|
58
56
|
private readonly telemetry;
|
|
59
|
-
constructor(agentsService: AgentsService, agentConfigService: AgentConfigService, agentCustomToolsService: AgentCustomToolsService, agentIntegrationPersistenceService: AgentIntegrationPersistenceService, agentSkillsService: AgentSkillsService, secureRuntime: AgentSecureRuntime, attachableWorkflowsService: AttachableWorkflowsService, agentsToolsService: AgentsToolsService, builderModelLiveLookupService: BuilderModelLiveLookupService, mcpRegistryService: McpRegistryService, oauthService: OauthService, credentialTypes: CredentialTypes, agentTaskService: AgentTaskService, agentPublishService: AgentPublishService, agentTestRunService: AgentTestRunService, aiService: AiService, aiGatewayService: AiGatewayService, outboundHttp: OutboundHttp, dynamicNodeParametersService: DynamicNodeParametersService, nodeTypes: NodeTypes,
|
|
57
|
+
constructor(agentsService: AgentsService, agentConfigService: AgentConfigService, agentCustomToolsService: AgentCustomToolsService, agentIntegrationPersistenceService: AgentIntegrationPersistenceService, agentSkillsService: AgentSkillsService, secureRuntime: AgentSecureRuntime, attachableWorkflowsService: AttachableWorkflowsService, agentsToolsService: AgentsToolsService, builderModelLiveLookupService: BuilderModelLiveLookupService, mcpRegistryService: McpRegistryService, oauthService: OauthService, credentialTypes: CredentialTypes, agentTaskService: AgentTaskService, agentPublishService: AgentPublishService, agentTestRunService: AgentTestRunService, aiService: AiService, aiGatewayService: AiGatewayService, outboundHttp: OutboundHttp, dynamicNodeParametersService: DynamicNodeParametersService, nodeTypes: NodeTypes, freeAiCreditsService: FreeAiCreditsService, telemetry: Telemetry);
|
|
60
58
|
private withConfigMutationMarker;
|
|
61
|
-
getTools(agentId: string, projectId: string, credentialProvider: CredentialProvider, user: User, telemetryContext?: BuilderTelemetryContext): BuilderTools;
|
|
59
|
+
getTools(agentId: string, projectId: string, credentialProvider: CredentialProvider, credentialService: InstanceAiCredentialService, user: User, telemetryContext?: BuilderTelemetryContext): BuilderTools;
|
|
62
60
|
private getJsonTools;
|
|
63
61
|
private getSharedTools;
|
|
64
62
|
private getConfigSnapshot;
|