@atom8n/ai-workflow-builder 1.2.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/agents/responder.agent.d.ts +21 -0
- package/dist/agents/responder.agent.js +71 -0
- package/dist/agents/responder.agent.js.map +1 -0
- package/dist/agents/supervisor.agent.d.ts +31 -0
- package/dist/agents/supervisor.agent.js +68 -0
- package/dist/agents/supervisor.agent.js.map +1 -0
- package/dist/ai-workflow-builder-agent.service.d.ts +32 -0
- package/dist/ai-workflow-builder-agent.service.js +236 -0
- package/dist/ai-workflow-builder-agent.service.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -0
- package/dist/chains/conversation-compact.d.ts +7 -0
- package/dist/chains/conversation-compact.js +56 -0
- package/dist/chains/conversation-compact.js.map +1 -0
- package/dist/chains/parameter-updater.d.ts +16 -0
- package/dist/chains/parameter-updater.js +112 -0
- package/dist/chains/parameter-updater.js.map +1 -0
- package/dist/chains/prompt-categorization.d.ts +3 -0
- package/dist/chains/prompt-categorization.js +31 -0
- package/dist/chains/prompt-categorization.js.map +1 -0
- package/dist/chains/test/integration/test-helpers.d.ts +3 -0
- package/dist/chains/test/integration/test-helpers.js +16 -0
- package/dist/chains/test/integration/test-helpers.js.map +1 -0
- package/dist/chains/workflow-name.d.ts +4 -0
- package/dist/chains/workflow-name.js +22 -0
- package/dist/chains/workflow-name.js.map +1 -0
- package/dist/constants.d.ts +14 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors/index.d.ts +52 -0
- package/dist/errors/index.js +137 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/llm-config.d.ts +11 -0
- package/dist/llm-config.js +126 -0
- package/dist/llm-config.js.map +1 -0
- package/dist/multi-agent-workflow-subgraphs.d.ts +122 -0
- package/dist/multi-agent-workflow-subgraphs.js +159 -0
- package/dist/multi-agent-workflow-subgraphs.js.map +1 -0
- package/dist/parent-graph-state.d.ts +27 -0
- package/dist/parent-graph-state.js +47 -0
- package/dist/parent-graph-state.js.map +1 -0
- package/dist/prompts/agents/builder.prompt.d.ts +1 -0
- package/dist/prompts/agents/builder.prompt.js +320 -0
- package/dist/prompts/agents/builder.prompt.js.map +1 -0
- package/dist/prompts/agents/configurator.prompt.d.ts +2 -0
- package/dist/prompts/agents/configurator.prompt.js +143 -0
- package/dist/prompts/agents/configurator.prompt.js.map +1 -0
- package/dist/prompts/agents/discovery.prompt.d.ts +11 -0
- package/dist/prompts/agents/discovery.prompt.js +260 -0
- package/dist/prompts/agents/discovery.prompt.js.map +1 -0
- package/dist/prompts/agents/responder.prompt.d.ts +1 -0
- package/dist/prompts/agents/responder.prompt.js +41 -0
- package/dist/prompts/agents/responder.prompt.js.map +1 -0
- package/dist/prompts/agents/supervisor.prompt.d.ts +1 -0
- package/dist/prompts/agents/supervisor.prompt.js +43 -0
- package/dist/prompts/agents/supervisor.prompt.js.map +1 -0
- package/dist/prompts/builder/index.d.ts +2 -0
- package/dist/prompts/builder/index.js +7 -0
- package/dist/prompts/builder/index.js.map +1 -0
- package/dist/prompts/builder/prompt-builder.d.ts +17 -0
- package/dist/prompts/builder/prompt-builder.js +147 -0
- package/dist/prompts/builder/prompt-builder.js.map +1 -0
- package/dist/prompts/builder/types.d.ts +22 -0
- package/dist/prompts/builder/types.js +3 -0
- package/dist/prompts/builder/types.js.map +1 -0
- package/dist/prompts/chains/categorization.prompt.d.ts +43 -0
- package/dist/prompts/chains/categorization.prompt.js +86 -0
- package/dist/prompts/chains/categorization.prompt.js.map +1 -0
- package/dist/prompts/chains/compact.prompt.d.ts +2 -0
- package/dist/prompts/chains/compact.prompt.js +16 -0
- package/dist/prompts/chains/compact.prompt.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/if-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/if-node.js +141 -0
- package/dist/prompts/chains/parameter-updater/examples/if-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/index.d.ts +6 -0
- package/dist/prompts/chains/parameter-updater/examples/index.js +16 -0
- package/dist/prompts/chains/parameter-updater/examples/index.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/resource-locator.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/resource-locator.js +83 -0
- package/dist/prompts/chains/parameter-updater/examples/resource-locator.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/set-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/set-node.js +151 -0
- package/dist/prompts/chains/parameter-updater/examples/set-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/simple-updates.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/simple-updates.js +54 -0
- package/dist/prompts/chains/parameter-updater/examples/simple-updates.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/switch-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/switch-node.js +131 -0
- package/dist/prompts/chains/parameter-updater/examples/switch-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/examples/tool-nodes.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/examples/tool-nodes.js +74 -0
- package/dist/prompts/chains/parameter-updater/examples/tool-nodes.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/embedding-nodes.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/embedding-nodes.js +70 -0
- package/dist/prompts/chains/parameter-updater/guides/embedding-nodes.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/gmail.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/gmail.js +28 -0
- package/dist/prompts/chains/parameter-updater/guides/gmail.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/http-request.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/http-request.js +139 -0
- package/dist/prompts/chains/parameter-updater/guides/http-request.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/if-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/if-node.js +159 -0
- package/dist/prompts/chains/parameter-updater/guides/if-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/index.d.ts +10 -0
- package/dist/prompts/chains/parameter-updater/guides/index.js +24 -0
- package/dist/prompts/chains/parameter-updater/guides/index.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/resource-locator.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/resource-locator.js +99 -0
- package/dist/prompts/chains/parameter-updater/guides/resource-locator.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/set-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/set-node.js +94 -0
- package/dist/prompts/chains/parameter-updater/guides/set-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/switch-node.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/switch-node.js +75 -0
- package/dist/prompts/chains/parameter-updater/guides/switch-node.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/system-message.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/system-message.js +96 -0
- package/dist/prompts/chains/parameter-updater/guides/system-message.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/text-fields.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/text-fields.js +31 -0
- package/dist/prompts/chains/parameter-updater/guides/text-fields.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/guides/tool-nodes.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/guides/tool-nodes.js +76 -0
- package/dist/prompts/chains/parameter-updater/guides/tool-nodes.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/index.d.ts +8 -0
- package/dist/prompts/chains/parameter-updater/index.js +35 -0
- package/dist/prompts/chains/parameter-updater/index.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/instance-url.d.ts +1 -0
- package/dist/prompts/chains/parameter-updater/instance-url.js +15 -0
- package/dist/prompts/chains/parameter-updater/instance-url.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.d.ts +4 -0
- package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.js +52 -0
- package/dist/prompts/chains/parameter-updater/parameter-updater.prompt.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/registry.d.ts +4 -0
- package/dist/prompts/chains/parameter-updater/registry.js +66 -0
- package/dist/prompts/chains/parameter-updater/registry.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/types.d.ts +18 -0
- package/dist/prompts/chains/parameter-updater/types.js +3 -0
- package/dist/prompts/chains/parameter-updater/types.js.map +1 -0
- package/dist/prompts/chains/parameter-updater/utils.d.ts +2 -0
- package/dist/prompts/chains/parameter-updater/utils.js +16 -0
- package/dist/prompts/chains/parameter-updater/utils.js.map +1 -0
- package/dist/prompts/chains/workflow-name.prompt.d.ts +2 -0
- package/dist/prompts/chains/workflow-name.prompt.js +11 -0
- package/dist/prompts/chains/workflow-name.prompt.js.map +1 -0
- package/dist/prompts/index.d.ts +12 -0
- package/dist/prompts/index.js +50 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/legacy-agent.prompt.d.ts +6 -0
- package/dist/prompts/legacy-agent.prompt.js +594 -0
- package/dist/prompts/legacy-agent.prompt.js.map +1 -0
- package/dist/session-manager.service.d.ts +16 -0
- package/dist/session-manager.service.js +125 -0
- package/dist/session-manager.service.js.map +1 -0
- package/dist/subgraphs/builder.subgraph.d.ts +132 -0
- package/dist/subgraphs/builder.subgraph.js +173 -0
- package/dist/subgraphs/builder.subgraph.js.map +1 -0
- package/dist/subgraphs/configurator.subgraph.d.ts +142 -0
- package/dist/subgraphs/configurator.subgraph.js +173 -0
- package/dist/subgraphs/configurator.subgraph.js.map +1 -0
- package/dist/subgraphs/discovery.subgraph.d.ts +158 -0
- package/dist/subgraphs/discovery.subgraph.js +221 -0
- package/dist/subgraphs/discovery.subgraph.js.map +1 -0
- package/dist/subgraphs/subgraph-interface.d.ts +23 -0
- package/dist/subgraphs/subgraph-interface.js +7 -0
- package/dist/subgraphs/subgraph-interface.js.map +1 -0
- package/dist/tools/add-node.tool.d.ts +54 -0
- package/dist/tools/add-node.tool.js +176 -0
- package/dist/tools/add-node.tool.js.map +1 -0
- package/dist/tools/best-practices/chatbot.d.ts +7 -0
- package/dist/tools/best-practices/chatbot.js +118 -0
- package/dist/tools/best-practices/chatbot.js.map +1 -0
- package/dist/tools/best-practices/content-generation.d.ts +7 -0
- package/dist/tools/best-practices/content-generation.js +115 -0
- package/dist/tools/best-practices/content-generation.js.map +1 -0
- package/dist/tools/best-practices/data-analysis.d.ts +7 -0
- package/dist/tools/best-practices/data-analysis.js +367 -0
- package/dist/tools/best-practices/data-analysis.js.map +1 -0
- package/dist/tools/best-practices/data-extraction.d.ts +7 -0
- package/dist/tools/best-practices/data-extraction.js +122 -0
- package/dist/tools/best-practices/data-extraction.js.map +1 -0
- package/dist/tools/best-practices/data-transformation.d.ts +7 -0
- package/dist/tools/best-practices/data-transformation.js +162 -0
- package/dist/tools/best-practices/data-transformation.js.map +1 -0
- package/dist/tools/best-practices/document-processing.d.ts +7 -0
- package/dist/tools/best-practices/document-processing.js +335 -0
- package/dist/tools/best-practices/document-processing.js.map +1 -0
- package/dist/tools/best-practices/enrichment.d.ts +7 -0
- package/dist/tools/best-practices/enrichment.js +271 -0
- package/dist/tools/best-practices/enrichment.js.map +1 -0
- package/dist/tools/best-practices/form-input.d.ts +7 -0
- package/dist/tools/best-practices/form-input.js +173 -0
- package/dist/tools/best-practices/form-input.js.map +1 -0
- package/dist/tools/best-practices/human-in-the-loop.d.ts +7 -0
- package/dist/tools/best-practices/human-in-the-loop.js +268 -0
- package/dist/tools/best-practices/human-in-the-loop.js.map +1 -0
- package/dist/tools/best-practices/index.d.ts +3 -0
- package/dist/tools/best-practices/index.js +29 -0
- package/dist/tools/best-practices/index.js.map +1 -0
- package/dist/tools/best-practices/knowledge-base.d.ts +7 -0
- package/dist/tools/best-practices/knowledge-base.js +268 -0
- package/dist/tools/best-practices/knowledge-base.js.map +1 -0
- package/dist/tools/best-practices/monitoring.d.ts +7 -0
- package/dist/tools/best-practices/monitoring.js +178 -0
- package/dist/tools/best-practices/monitoring.js.map +1 -0
- package/dist/tools/best-practices/notification.d.ts +7 -0
- package/dist/tools/best-practices/notification.js +229 -0
- package/dist/tools/best-practices/notification.js.map +1 -0
- package/dist/tools/best-practices/scheduling.d.ts +7 -0
- package/dist/tools/best-practices/scheduling.js +281 -0
- package/dist/tools/best-practices/scheduling.js.map +1 -0
- package/dist/tools/best-practices/scraping-and-research.d.ts +7 -0
- package/dist/tools/best-practices/scraping-and-research.js +161 -0
- package/dist/tools/best-practices/scraping-and-research.js.map +1 -0
- package/dist/tools/best-practices/triage.d.ts +7 -0
- package/dist/tools/best-practices/triage.js +211 -0
- package/dist/tools/best-practices/triage.js.map +1 -0
- package/dist/tools/builder-tools.d.ts +16 -0
- package/dist/tools/builder-tools.js +36 -0
- package/dist/tools/builder-tools.js.map +1 -0
- package/dist/tools/categorize-prompt.tool.d.ts +5 -0
- package/dist/tools/categorize-prompt.tool.js +85 -0
- package/dist/tools/categorize-prompt.tool.js.map +1 -0
- package/dist/tools/connect-nodes.tool.d.ts +22 -0
- package/dist/tools/connect-nodes.tool.js +231 -0
- package/dist/tools/connect-nodes.tool.js.map +1 -0
- package/dist/tools/engines/node-search-engine.d.ts +16 -0
- package/dist/tools/engines/node-search-engine.js +123 -0
- package/dist/tools/engines/node-search-engine.js.map +1 -0
- package/dist/tools/get-best-practices.tool.d.ts +33 -0
- package/dist/tools/get-best-practices.tool.js +94 -0
- package/dist/tools/get-best-practices.tool.js.map +1 -0
- package/dist/tools/get-node-examples.tool.d.ts +119 -0
- package/dist/tools/get-node-examples.tool.js +189 -0
- package/dist/tools/get-node-examples.tool.js.map +1 -0
- package/dist/tools/get-node-parameter.tool.d.ts +4 -0
- package/dist/tools/get-node-parameter.tool.js +114 -0
- package/dist/tools/get-node-parameter.tool.js.map +1 -0
- package/dist/tools/get-workflow-examples.tool.d.ts +34 -0
- package/dist/tools/get-workflow-examples.tool.js +138 -0
- package/dist/tools/get-workflow-examples.tool.js.map +1 -0
- package/dist/tools/helpers/index.d.ts +4 -0
- package/dist/tools/helpers/index.js +21 -0
- package/dist/tools/helpers/index.js.map +1 -0
- package/dist/tools/helpers/progress.d.ts +9 -0
- package/dist/tools/helpers/progress.js +126 -0
- package/dist/tools/helpers/progress.js.map +1 -0
- package/dist/tools/helpers/response.d.ts +7 -0
- package/dist/tools/helpers/response.js +33 -0
- package/dist/tools/helpers/response.js.map +1 -0
- package/dist/tools/helpers/state.d.ts +14 -0
- package/dist/tools/helpers/state.js +85 -0
- package/dist/tools/helpers/state.js.map +1 -0
- package/dist/tools/helpers/validation.d.ts +13 -0
- package/dist/tools/helpers/validation.js +83 -0
- package/dist/tools/helpers/validation.js.map +1 -0
- package/dist/tools/node-details.tool.d.ts +31 -0
- package/dist/tools/node-details.tool.js +201 -0
- package/dist/tools/node-details.tool.js.map +1 -0
- package/dist/tools/node-search.tool.d.ts +62 -0
- package/dist/tools/node-search.tool.js +155 -0
- package/dist/tools/node-search.tool.js.map +1 -0
- package/dist/tools/remove-connection.tool.d.ts +24 -0
- package/dist/tools/remove-connection.tool.js +234 -0
- package/dist/tools/remove-connection.tool.js.map +1 -0
- package/dist/tools/remove-node.tool.d.ts +4 -0
- package/dist/tools/remove-node.tool.js +106 -0
- package/dist/tools/remove-node.tool.js.map +1 -0
- package/dist/tools/update-node-parameters.tool.d.ts +5 -0
- package/dist/tools/update-node-parameters.tool.js +156 -0
- package/dist/tools/update-node-parameters.tool.js.map +1 -0
- package/dist/tools/utils/connection-parameters.utils.d.ts +8 -0
- package/dist/tools/utils/connection-parameters.utils.js +47 -0
- package/dist/tools/utils/connection-parameters.utils.js.map +1 -0
- package/dist/tools/utils/connection.utils.d.ts +15 -0
- package/dist/tools/utils/connection.utils.js +321 -0
- package/dist/tools/utils/connection.utils.js.map +1 -0
- package/dist/tools/utils/mermaid.utils.d.ts +13 -0
- package/dist/tools/utils/mermaid.utils.js +647 -0
- package/dist/tools/utils/mermaid.utils.js.map +1 -0
- package/dist/tools/utils/node-configuration.utils.d.ts +13 -0
- package/dist/tools/utils/node-configuration.utils.js +75 -0
- package/dist/tools/utils/node-configuration.utils.js.map +1 -0
- package/dist/tools/utils/node-creation.utils.d.ts +8 -0
- package/dist/tools/utils/node-creation.utils.js +56 -0
- package/dist/tools/utils/node-creation.utils.js.map +1 -0
- package/dist/tools/utils/node-positioning.utils.d.ts +17 -0
- package/dist/tools/utils/node-positioning.utils.js +87 -0
- package/dist/tools/utils/node-positioning.utils.js.map +1 -0
- package/dist/tools/utils/parameter-update.utils.d.ts +6 -0
- package/dist/tools/utils/parameter-update.utils.js +75 -0
- package/dist/tools/utils/parameter-update.utils.js.map +1 -0
- package/dist/tools/utils/test/workflows/ai-assistant.workflow.d.ts +2 -0
- package/dist/tools/utils/test/workflows/ai-assistant.workflow.js +542 -0
- package/dist/tools/utils/test/workflows/ai-assistant.workflow.js.map +1 -0
- package/dist/tools/validate-configuration.tool.d.ts +4 -0
- package/dist/tools/validate-configuration.tool.js +70 -0
- package/dist/tools/validate-configuration.tool.js.map +1 -0
- package/dist/tools/validate-structure.tool.d.ts +4 -0
- package/dist/tools/validate-structure.tool.js +66 -0
- package/dist/tools/validate-structure.tool.js.map +1 -0
- package/dist/tools/validate-workflow.tool.d.ts +5 -0
- package/dist/tools/validate-workflow.tool.js +73 -0
- package/dist/tools/validate-workflow.tool.js.map +1 -0
- package/dist/tools/web/templates.d.ts +23 -0
- package/dist/tools/web/templates.js +106 -0
- package/dist/tools/web/templates.js.map +1 -0
- package/dist/types/best-practices.d.ts +6 -0
- package/dist/types/best-practices.js +3 -0
- package/dist/types/best-practices.js.map +1 -0
- package/dist/types/categorization.d.ts +23 -0
- package/dist/types/categorization.js +38 -0
- package/dist/types/categorization.js.map +1 -0
- package/dist/types/config.d.ts +55 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/connections.d.ts +30 -0
- package/dist/types/connections.js +3 -0
- package/dist/types/connections.js.map +1 -0
- package/dist/types/coordination.d.ts +42 -0
- package/dist/types/coordination.js +23 -0
- package/dist/types/coordination.js.map +1 -0
- package/dist/types/discovery-types.d.ts +12 -0
- package/dist/types/discovery-types.js +3 -0
- package/dist/types/discovery-types.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/langchain.d.ts +3 -0
- package/dist/types/langchain.js +15 -0
- package/dist/types/langchain.js.map +1 -0
- package/dist/types/messages.d.ts +32 -0
- package/dist/types/messages.js +3 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/nodes.d.ts +27 -0
- package/dist/types/nodes.js +3 -0
- package/dist/types/nodes.js.map +1 -0
- package/dist/types/sessions.d.ts +8 -0
- package/dist/types/sessions.js +34 -0
- package/dist/types/sessions.js.map +1 -0
- package/dist/types/streaming.d.ts +33 -0
- package/dist/types/streaming.js +3 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/tools.d.ts +120 -0
- package/dist/types/tools.js +3 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types/utils.d.ts +2 -0
- package/dist/types/utils.js +3 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/types/web/templates.d.ts +45 -0
- package/dist/types/web/templates.js +37 -0
- package/dist/types/web/templates.js.map +1 -0
- package/dist/types/workflow.d.ts +31 -0
- package/dist/types/workflow.js +3 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/utils/cache-control/helpers.d.ts +5 -0
- package/dist/utils/cache-control/helpers.js +126 -0
- package/dist/utils/cache-control/helpers.js.map +1 -0
- package/dist/utils/cache-control/index.d.ts +1 -0
- package/dist/utils/cache-control/index.js +9 -0
- package/dist/utils/cache-control/index.js.map +1 -0
- package/dist/utils/cleanup-dangling-tool-call-messages.d.ts +3 -0
- package/dist/utils/cleanup-dangling-tool-call-messages.js +10 -0
- package/dist/utils/cleanup-dangling-tool-call-messages.js.map +1 -0
- package/dist/utils/context-builders.d.ts +10 -0
- package/dist/utils/context-builders.js +71 -0
- package/dist/utils/context-builders.js.map +1 -0
- package/dist/utils/coordination-log.d.ts +15 -0
- package/dist/utils/coordination-log.js +75 -0
- package/dist/utils/coordination-log.js.map +1 -0
- package/dist/utils/http-proxy-agent.d.ts +2 -0
- package/dist/utils/http-proxy-agent.js +16 -0
- package/dist/utils/http-proxy-agent.js.map +1 -0
- package/dist/utils/node-helpers.d.ts +2 -0
- package/dist/utils/node-helpers.js +54 -0
- package/dist/utils/node-helpers.js.map +1 -0
- package/dist/utils/operations-processor.d.ts +14 -0
- package/dist/utils/operations-processor.js +196 -0
- package/dist/utils/operations-processor.js.map +1 -0
- package/dist/utils/state-modifier.d.ts +32 -0
- package/dist/utils/state-modifier.js +112 -0
- package/dist/utils/state-modifier.js.map +1 -0
- package/dist/utils/state-reducers.d.ts +3 -0
- package/dist/utils/state-reducers.js +20 -0
- package/dist/utils/state-reducers.js.map +1 -0
- package/dist/utils/stream-processor.d.ts +20 -0
- package/dist/utils/stream-processor.js +277 -0
- package/dist/utils/stream-processor.js.map +1 -0
- package/dist/utils/subgraph-helpers.d.ts +16 -0
- package/dist/utils/subgraph-helpers.js +117 -0
- package/dist/utils/subgraph-helpers.js.map +1 -0
- package/dist/utils/token-usage.d.ts +21 -0
- package/dist/utils/token-usage.js +45 -0
- package/dist/utils/token-usage.js.map +1 -0
- package/dist/utils/tool-executor.d.ts +3 -0
- package/dist/utils/tool-executor.js +108 -0
- package/dist/utils/tool-executor.js.map +1 -0
- package/dist/utils/trim-workflow-context.d.ts +2 -0
- package/dist/utils/trim-workflow-context.js +53 -0
- package/dist/utils/trim-workflow-context.js.map +1 -0
- package/dist/utils/workflow-validation.d.ts +2 -0
- package/dist/utils/workflow-validation.js +37 -0
- package/dist/utils/workflow-validation.js.map +1 -0
- package/dist/validation/checks/agent-prompt.d.ts +3 -0
- package/dist/validation/checks/agent-prompt.js +47 -0
- package/dist/validation/checks/agent-prompt.js.map +1 -0
- package/dist/validation/checks/connections.d.ts +4 -0
- package/dist/validation/checks/connections.js +163 -0
- package/dist/validation/checks/connections.js.map +1 -0
- package/dist/validation/checks/credentials.d.ts +3 -0
- package/dist/validation/checks/credentials.js +125 -0
- package/dist/validation/checks/credentials.js.map +1 -0
- package/dist/validation/checks/from-ai.d.ts +4 -0
- package/dist/validation/checks/from-ai.js +62 -0
- package/dist/validation/checks/from-ai.js.map +1 -0
- package/dist/validation/checks/index.d.ts +7 -0
- package/dist/validation/checks/index.js +18 -0
- package/dist/validation/checks/index.js.map +1 -0
- package/dist/validation/checks/nodes.d.ts +4 -0
- package/dist/validation/checks/nodes.js +44 -0
- package/dist/validation/checks/nodes.js.map +1 -0
- package/dist/validation/checks/tools.d.ts +4 -0
- package/dist/validation/checks/tools.js +38 -0
- package/dist/validation/checks/tools.js.map +1 -0
- package/dist/validation/checks/trigger.d.ts +8 -0
- package/dist/validation/checks/trigger.js +33 -0
- package/dist/validation/checks/trigger.js.map +1 -0
- package/dist/validation/programmatic.d.ts +3 -0
- package/dist/validation/programmatic.js +24 -0
- package/dist/validation/programmatic.js.map +1 -0
- package/dist/validation/types.d.ts +52 -0
- package/dist/validation/types.js +31 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/utils/expressions.d.ts +3 -0
- package/dist/validation/utils/expressions.js +37 -0
- package/dist/validation/utils/expressions.js.map +1 -0
- package/dist/validation/utils/is-tool.d.ts +2 -0
- package/dist/validation/utils/is-tool.js +7 -0
- package/dist/validation/utils/is-tool.js.map +1 -0
- package/dist/validation/utils/node-type-map.d.ts +8 -0
- package/dist/validation/utils/node-type-map.js +50 -0
- package/dist/validation/utils/node-type-map.js.map +1 -0
- package/dist/validation/utils/resolve-connections.d.ts +8 -0
- package/dist/validation/utils/resolve-connections.js +64 -0
- package/dist/validation/utils/resolve-connections.js.map +1 -0
- package/dist/workflow-builder-agent.d.ts +72 -0
- package/dist/workflow-builder-agent.js +401 -0
- package/dist/workflow-builder-agent.js.map +1 -0
- package/dist/workflow-state.d.ts +26 -0
- package/dist/workflow-state.js +79 -0
- package/dist/workflow-state.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createProgressReporter = createProgressReporter;
|
|
4
|
+
exports.reportStart = reportStart;
|
|
5
|
+
exports.reportProgress = reportProgress;
|
|
6
|
+
exports.reportComplete = reportComplete;
|
|
7
|
+
exports.reportError = reportError;
|
|
8
|
+
exports.createBatchProgressReporter = createBatchProgressReporter;
|
|
9
|
+
function createProgressReporter(config, toolName, displayTitle, customTitle) {
|
|
10
|
+
const toolCallId = config.toolCall?.id;
|
|
11
|
+
let customDisplayTitle = customTitle;
|
|
12
|
+
const emit = (message) => {
|
|
13
|
+
config.writer?.(message);
|
|
14
|
+
};
|
|
15
|
+
const start = (input, options) => {
|
|
16
|
+
if (options?.customDisplayTitle) {
|
|
17
|
+
customDisplayTitle = options.customDisplayTitle;
|
|
18
|
+
}
|
|
19
|
+
emit({
|
|
20
|
+
type: 'tool',
|
|
21
|
+
toolName,
|
|
22
|
+
toolCallId,
|
|
23
|
+
displayTitle,
|
|
24
|
+
customDisplayTitle,
|
|
25
|
+
status: 'running',
|
|
26
|
+
updates: [
|
|
27
|
+
{
|
|
28
|
+
type: 'input',
|
|
29
|
+
data: input,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const progress = (message, data) => {
|
|
35
|
+
emit({
|
|
36
|
+
type: 'tool',
|
|
37
|
+
toolName,
|
|
38
|
+
toolCallId,
|
|
39
|
+
displayTitle,
|
|
40
|
+
customDisplayTitle,
|
|
41
|
+
status: 'running',
|
|
42
|
+
updates: [
|
|
43
|
+
{
|
|
44
|
+
type: 'progress',
|
|
45
|
+
data: data ?? { message },
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const complete = (output) => {
|
|
51
|
+
emit({
|
|
52
|
+
type: 'tool',
|
|
53
|
+
toolName,
|
|
54
|
+
toolCallId,
|
|
55
|
+
displayTitle,
|
|
56
|
+
customDisplayTitle,
|
|
57
|
+
status: 'completed',
|
|
58
|
+
updates: [
|
|
59
|
+
{
|
|
60
|
+
type: 'output',
|
|
61
|
+
data: output,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
const error = (error) => {
|
|
67
|
+
emit({
|
|
68
|
+
type: 'tool',
|
|
69
|
+
toolName,
|
|
70
|
+
toolCallId,
|
|
71
|
+
displayTitle,
|
|
72
|
+
customDisplayTitle,
|
|
73
|
+
status: 'error',
|
|
74
|
+
updates: [
|
|
75
|
+
{
|
|
76
|
+
type: 'error',
|
|
77
|
+
data: {
|
|
78
|
+
message: error.message,
|
|
79
|
+
code: error.code,
|
|
80
|
+
details: error.details,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
const createBatchReporter = (scope) => {
|
|
87
|
+
let currentIndex = 0;
|
|
88
|
+
let totalItems = 0;
|
|
89
|
+
return {
|
|
90
|
+
init: (total) => {
|
|
91
|
+
totalItems = total;
|
|
92
|
+
currentIndex = 0;
|
|
93
|
+
},
|
|
94
|
+
next: (itemDescription) => {
|
|
95
|
+
currentIndex++;
|
|
96
|
+
progress(`${scope}: Processing item ${currentIndex} of ${totalItems}: ${itemDescription}`);
|
|
97
|
+
},
|
|
98
|
+
complete: () => {
|
|
99
|
+
progress(`${scope}: Completed all ${totalItems} items`);
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
return {
|
|
104
|
+
start,
|
|
105
|
+
progress,
|
|
106
|
+
complete,
|
|
107
|
+
error,
|
|
108
|
+
createBatchReporter,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function reportStart(reporter, input) {
|
|
112
|
+
reporter.start(input);
|
|
113
|
+
}
|
|
114
|
+
function reportProgress(reporter, message, data) {
|
|
115
|
+
reporter.progress(message, data);
|
|
116
|
+
}
|
|
117
|
+
function reportComplete(reporter, output) {
|
|
118
|
+
reporter.complete(output);
|
|
119
|
+
}
|
|
120
|
+
function reportError(reporter, error) {
|
|
121
|
+
reporter.error(error);
|
|
122
|
+
}
|
|
123
|
+
function createBatchProgressReporter(reporter, scope) {
|
|
124
|
+
return reporter.createBatchReporter(scope);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/tools/helpers/progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolRunnableConfig } from '@langchain/core/tools';
|
|
2
|
+
import { Command } from '@langchain/langgraph';
|
|
3
|
+
import type { ToolError } from '../../types/tools';
|
|
4
|
+
import type { StateUpdater } from '../../types/utils';
|
|
5
|
+
import type { WorkflowState } from '../../workflow-state';
|
|
6
|
+
export declare function createSuccessResponse<TState = typeof WorkflowState.State>(config: ToolRunnableConfig, message: string, stateUpdates?: StateUpdater<TState>): Command;
|
|
7
|
+
export declare function createErrorResponse(config: ToolRunnableConfig, error: ToolError): Command;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSuccessResponse = createSuccessResponse;
|
|
4
|
+
exports.createErrorResponse = createErrorResponse;
|
|
5
|
+
const messages_1 = require("@langchain/core/messages");
|
|
6
|
+
const langgraph_1 = require("@langchain/langgraph");
|
|
7
|
+
function createSuccessResponse(config, message, stateUpdates) {
|
|
8
|
+
const toolCallId = config.toolCall?.id;
|
|
9
|
+
const messages = [
|
|
10
|
+
new messages_1.ToolMessage({
|
|
11
|
+
content: message,
|
|
12
|
+
tool_call_id: toolCallId,
|
|
13
|
+
name: config.toolCall?.name,
|
|
14
|
+
}),
|
|
15
|
+
];
|
|
16
|
+
const update = { messages };
|
|
17
|
+
if (stateUpdates) {
|
|
18
|
+
Object.assign(update, stateUpdates);
|
|
19
|
+
}
|
|
20
|
+
return new langgraph_1.Command({ update });
|
|
21
|
+
}
|
|
22
|
+
function createErrorResponse(config, error) {
|
|
23
|
+
const toolCallId = config.toolCall?.id;
|
|
24
|
+
const messages = [
|
|
25
|
+
new messages_1.ToolMessage({
|
|
26
|
+
content: `Error: ${error.message}`,
|
|
27
|
+
tool_call_id: toolCallId,
|
|
28
|
+
name: config.toolCall?.name,
|
|
29
|
+
}),
|
|
30
|
+
];
|
|
31
|
+
return new langgraph_1.Command({ update: { messages } });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/tools/helpers/response.ts"],"names":[],"mappings":";;AAWA,sDAsBC;AAKD,kDAYC;AAlDD,uDAAuD;AAEvD,oDAA+C;AAS/C,SAAgB,qBAAqB,CACpC,MAA0B,EAC1B,OAAe,EACf,YAAmC;IAEnC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAY,CAAC;IAEjD,MAAM,QAAQ,GAAG;QAChB,IAAI,sBAAW,CAAC;YACf,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI;SAC3B,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC;IAE5B,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,mBAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAChC,CAAC;AAKD,SAAgB,mBAAmB,CAAC,MAA0B,EAAE,KAAgB;IAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAY,CAAC;IAEjD,MAAM,QAAQ,GAAG;QAChB,IAAI,sBAAW,CAAC;YACf,OAAO,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;YAClC,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI;SAC3B,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,mBAAO,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { INode, IConnection } from 'n8n-workflow';
|
|
2
|
+
import type { SimpleWorkflow } from '../../types/workflow';
|
|
3
|
+
import type { WorkflowState } from '../../workflow-state';
|
|
4
|
+
export declare function getCurrentWorkflow(state: typeof WorkflowState.State): SimpleWorkflow;
|
|
5
|
+
export declare function getWorkflowState(): typeof WorkflowState.State;
|
|
6
|
+
export declare function getCurrentWorkflowFromTaskInput(): SimpleWorkflow;
|
|
7
|
+
export declare function updateWorkflowConnections(connections: SimpleWorkflow['connections']): Partial<typeof WorkflowState.State>;
|
|
8
|
+
export declare function addNodeToWorkflow(node: INode): Partial<typeof WorkflowState.State>;
|
|
9
|
+
export declare function addNodesToWorkflow(nodes: INode[]): Partial<typeof WorkflowState.State>;
|
|
10
|
+
export declare function removeNodeFromWorkflow(nodeId: string): Partial<typeof WorkflowState.State>;
|
|
11
|
+
export declare function removeNodesFromWorkflow(nodeIds: string[]): Partial<typeof WorkflowState.State>;
|
|
12
|
+
export declare function updateNodeInWorkflow(state: typeof WorkflowState.State, nodeId: string, updates: Partial<INode>): Partial<typeof WorkflowState.State>;
|
|
13
|
+
export declare function addConnectionToWorkflow(sourceNodeId: string, _targetNodeId: string, connection: IConnection): Partial<typeof WorkflowState.State>;
|
|
14
|
+
export declare function removeConnectionFromWorkflow(sourceNode: string, targetNode: string, connectionType: string, sourceOutputIndex: number, targetInputIndex: number): Partial<typeof WorkflowState.State>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCurrentWorkflow = getCurrentWorkflow;
|
|
4
|
+
exports.getWorkflowState = getWorkflowState;
|
|
5
|
+
exports.getCurrentWorkflowFromTaskInput = getCurrentWorkflowFromTaskInput;
|
|
6
|
+
exports.updateWorkflowConnections = updateWorkflowConnections;
|
|
7
|
+
exports.addNodeToWorkflow = addNodeToWorkflow;
|
|
8
|
+
exports.addNodesToWorkflow = addNodesToWorkflow;
|
|
9
|
+
exports.removeNodeFromWorkflow = removeNodeFromWorkflow;
|
|
10
|
+
exports.removeNodesFromWorkflow = removeNodesFromWorkflow;
|
|
11
|
+
exports.updateNodeInWorkflow = updateNodeInWorkflow;
|
|
12
|
+
exports.addConnectionToWorkflow = addConnectionToWorkflow;
|
|
13
|
+
exports.removeConnectionFromWorkflow = removeConnectionFromWorkflow;
|
|
14
|
+
const langgraph_1 = require("@langchain/langgraph");
|
|
15
|
+
function getCurrentWorkflow(state) {
|
|
16
|
+
return state.workflowJSON;
|
|
17
|
+
}
|
|
18
|
+
function getWorkflowState() {
|
|
19
|
+
return (0, langgraph_1.getCurrentTaskInput)();
|
|
20
|
+
}
|
|
21
|
+
function getCurrentWorkflowFromTaskInput() {
|
|
22
|
+
const state = getWorkflowState();
|
|
23
|
+
return getCurrentWorkflow(state);
|
|
24
|
+
}
|
|
25
|
+
function updateWorkflowConnections(connections) {
|
|
26
|
+
return {
|
|
27
|
+
workflowOperations: [{ type: 'mergeConnections', connections }],
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function addNodeToWorkflow(node) {
|
|
31
|
+
return addNodesToWorkflow([node]);
|
|
32
|
+
}
|
|
33
|
+
function addNodesToWorkflow(nodes) {
|
|
34
|
+
return {
|
|
35
|
+
workflowOperations: [{ type: 'addNodes', nodes }],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function removeNodeFromWorkflow(nodeId) {
|
|
39
|
+
return {
|
|
40
|
+
workflowOperations: [{ type: 'removeNode', nodeIds: [nodeId] }],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function removeNodesFromWorkflow(nodeIds) {
|
|
44
|
+
return {
|
|
45
|
+
workflowOperations: [{ type: 'removeNode', nodeIds }],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function updateNodeInWorkflow(state, nodeId, updates) {
|
|
49
|
+
const existingNode = state.workflowJSON.nodes.find((n) => n.id === nodeId);
|
|
50
|
+
if (!existingNode) {
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
workflowOperations: [{ type: 'updateNode', nodeId, updates }],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function addConnectionToWorkflow(sourceNodeId, _targetNodeId, connection) {
|
|
58
|
+
return {
|
|
59
|
+
workflowOperations: [
|
|
60
|
+
{
|
|
61
|
+
type: 'mergeConnections',
|
|
62
|
+
connections: {
|
|
63
|
+
[sourceNodeId]: {
|
|
64
|
+
main: [[connection]],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function removeConnectionFromWorkflow(sourceNode, targetNode, connectionType, sourceOutputIndex, targetInputIndex) {
|
|
72
|
+
return {
|
|
73
|
+
workflowOperations: [
|
|
74
|
+
{
|
|
75
|
+
type: 'removeConnection',
|
|
76
|
+
sourceNode,
|
|
77
|
+
targetNode,
|
|
78
|
+
connectionType,
|
|
79
|
+
sourceOutputIndex,
|
|
80
|
+
targetInputIndex,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/tools/helpers/state.ts"],"names":[],"mappings":";;AASA,gDAEC;AAED,4CAEC;AAKD,0EAGC;AAKD,8DAOC;AAKD,8CAEC;AAKD,gDAKC;AAKD,wDAKC;AAKD,0DAKC;AAKD,oDAcC;AAKD,0DAiBC;AAKD,oEAmBC;AAzID,oDAA2D;AAS3D,SAAgB,kBAAkB,CAAC,KAAiC;IACnE,OAAO,KAAK,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED,SAAgB,gBAAgB;IAC/B,OAAO,IAAA,+BAAmB,GAAE,CAAC;AAC9B,CAAC;AAKD,SAAgB,+BAA+B;IAC9C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAKD,SAAgB,yBAAyB,CACxC,WAA0C;IAG1C,OAAO;QACN,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;KAC/D,CAAC;AACH,CAAC;AAKD,SAAgB,iBAAiB,CAAC,IAAW;IAC5C,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAKD,SAAgB,kBAAkB,CAAC,KAAc;IAEhD,OAAO;QACN,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;KACjD,CAAC;AACH,CAAC;AAKD,SAAgB,sBAAsB,CAAC,MAAc;IAEpD,OAAO;QACN,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;KAC/D,CAAC;AACH,CAAC;AAKD,SAAgB,uBAAuB,CAAC,OAAiB;IAExD,OAAO;QACN,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;KACrD,CAAC;AACH,CAAC;AAKD,SAAgB,oBAAoB,CACnC,KAAiC,EACjC,MAAc,EACd,OAAuB;IAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACX,CAAC;IAGD,OAAO;QACN,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KAC7D,CAAC;AACH,CAAC;AAKD,SAAgB,uBAAuB,CACtC,YAAoB,EACpB,aAAqB,EACrB,UAAuB;IAEvB,OAAO;QACN,kBAAkB,EAAE;YACnB;gBACC,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE;oBACZ,CAAC,YAAY,CAAC,EAAE;wBACf,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;qBACpB;iBACD;aACD;SACD;KACD,CAAC;AACH,CAAC;AAKD,SAAgB,4BAA4B,CAC3C,UAAkB,EAClB,UAAkB,EAClB,cAAsB,EACtB,iBAAyB,EACzB,gBAAwB;IAExB,OAAO;QACN,kBAAkB,EAAE;YACnB;gBACC,IAAI,EAAE,kBAAkB;gBACxB,UAAU;gBACV,UAAU;gBACV,cAAc;gBACd,iBAAiB;gBACjB,gBAAgB;aAChB;SACD;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { INode, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
import type { ToolError } from '../../types/tools';
|
|
3
|
+
import type { SimpleWorkflow } from '../../types/workflow';
|
|
4
|
+
export declare function validateNodeExists(nodeId: string, nodes: INode[]): INode | null;
|
|
5
|
+
export declare function findNodeByName(nodeName: string, nodes: INode[]): INode | null;
|
|
6
|
+
export declare function findNodeByIdOrName(nodeIdentifier: string, nodes: INode[]): INode | null;
|
|
7
|
+
export declare function findNodeType(nodeTypeName: string, nodeVersion: number, nodeTypes: INodeTypeDescription[]): INodeTypeDescription | null;
|
|
8
|
+
export declare function validateConnection(sourceNode: INode, targetNode: INode): ToolError | null;
|
|
9
|
+
export declare function createValidationError(message: string, code: string, details?: Record<string, string>): ToolError;
|
|
10
|
+
export declare function createNodeNotFoundError(nodeIdentifier: string): ToolError;
|
|
11
|
+
export declare function createNodeTypeNotFoundError(nodeTypeName: string): ToolError;
|
|
12
|
+
export declare function createNodeParameterTooLargeError(nodeId: string, parameter: string, maxSize: number): ToolError;
|
|
13
|
+
export declare function hasNodes(workflow: SimpleWorkflow): boolean;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateNodeExists = validateNodeExists;
|
|
4
|
+
exports.findNodeByName = findNodeByName;
|
|
5
|
+
exports.findNodeByIdOrName = findNodeByIdOrName;
|
|
6
|
+
exports.findNodeType = findNodeType;
|
|
7
|
+
exports.validateConnection = validateConnection;
|
|
8
|
+
exports.createValidationError = createValidationError;
|
|
9
|
+
exports.createNodeNotFoundError = createNodeNotFoundError;
|
|
10
|
+
exports.createNodeTypeNotFoundError = createNodeTypeNotFoundError;
|
|
11
|
+
exports.createNodeParameterTooLargeError = createNodeParameterTooLargeError;
|
|
12
|
+
exports.hasNodes = hasNodes;
|
|
13
|
+
const errors_1 = require("../../errors");
|
|
14
|
+
function validateNodeExists(nodeId, nodes) {
|
|
15
|
+
return nodes.find((n) => n.id === nodeId) ?? null;
|
|
16
|
+
}
|
|
17
|
+
function findNodeByName(nodeName, nodes) {
|
|
18
|
+
return nodes.find((n) => n.name.toLowerCase() === nodeName.toLowerCase()) ?? null;
|
|
19
|
+
}
|
|
20
|
+
function findNodeByIdOrName(nodeIdentifier, nodes) {
|
|
21
|
+
const byId = validateNodeExists(nodeIdentifier, nodes);
|
|
22
|
+
if (byId)
|
|
23
|
+
return byId;
|
|
24
|
+
return findNodeByName(nodeIdentifier, nodes);
|
|
25
|
+
}
|
|
26
|
+
function findNodeType(nodeTypeName, nodeVersion, nodeTypes) {
|
|
27
|
+
return (nodeTypes.find((nt) => nt.name === nodeTypeName &&
|
|
28
|
+
(Array.isArray(nt.version) ? nt.version.includes(nodeVersion) : nt.version === nodeVersion)) ?? null);
|
|
29
|
+
}
|
|
30
|
+
function validateConnection(sourceNode, targetNode) {
|
|
31
|
+
if (sourceNode.id === targetNode.id) {
|
|
32
|
+
const error = new errors_1.ConnectionError('Cannot connect a node to itself', {
|
|
33
|
+
fromNodeId: sourceNode.id,
|
|
34
|
+
toNodeId: targetNode.id,
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
message: error.message,
|
|
38
|
+
code: 'SELF_CONNECTION',
|
|
39
|
+
details: { sourceId: sourceNode.id, targetId: targetNode.id },
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
function createValidationError(message, code, details) {
|
|
45
|
+
const error = new errors_1.ValidationError(message, { tags: { code, ...details } });
|
|
46
|
+
return {
|
|
47
|
+
message: error.message,
|
|
48
|
+
code,
|
|
49
|
+
details,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function createNodeNotFoundError(nodeIdentifier) {
|
|
53
|
+
const error = new errors_1.NodeNotFoundError(nodeIdentifier);
|
|
54
|
+
return {
|
|
55
|
+
message: error.message,
|
|
56
|
+
code: 'NODE_NOT_FOUND',
|
|
57
|
+
details: { nodeIdentifier },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function createNodeTypeNotFoundError(nodeTypeName) {
|
|
61
|
+
const error = new errors_1.NodeTypeNotFoundError(nodeTypeName);
|
|
62
|
+
return {
|
|
63
|
+
message: error.message,
|
|
64
|
+
code: 'NODE_TYPE_NOT_FOUND',
|
|
65
|
+
details: { nodeTypeName },
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function createNodeParameterTooLargeError(nodeId, parameter, maxSize) {
|
|
69
|
+
const error = new errors_1.ParameterTooLargeError('Parameter value is too large to retrieve', {
|
|
70
|
+
parameter,
|
|
71
|
+
nodeId,
|
|
72
|
+
maxSize,
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
message: error.message,
|
|
76
|
+
code: 'NODE_PARAMETER_TOO_LARGE',
|
|
77
|
+
details: { nodeId, parameter, maxSize: maxSize.toString() },
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function hasNodes(workflow) {
|
|
81
|
+
return workflow.nodes.length > 0;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/tools/helpers/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Logger } from '@n8n/backend-common';
|
|
2
|
+
import type { INodeTypeDescription } from 'n8n-workflow';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import type { BuilderToolBase } from '../utils/stream-processor';
|
|
5
|
+
export declare const NODE_DETAILS_TOOL: BuilderToolBase;
|
|
6
|
+
export declare function createNodeDetailsTool(nodeTypes: INodeTypeDescription[], logger?: Logger): {
|
|
7
|
+
toolName: string;
|
|
8
|
+
displayTitle: string;
|
|
9
|
+
getCustomDisplayTitle?: (values: Record<string, unknown>) => string;
|
|
10
|
+
tool: import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
|
|
11
|
+
nodeName: z.ZodString;
|
|
12
|
+
nodeVersion: z.ZodNumber;
|
|
13
|
+
withParameters: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
14
|
+
withConnections: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
nodeName: string;
|
|
17
|
+
nodeVersion: number;
|
|
18
|
+
withParameters: boolean;
|
|
19
|
+
withConnections: boolean;
|
|
20
|
+
}, {
|
|
21
|
+
nodeName: string;
|
|
22
|
+
nodeVersion: number;
|
|
23
|
+
withParameters?: boolean | undefined;
|
|
24
|
+
withConnections?: boolean | undefined;
|
|
25
|
+
}>, unknown, {
|
|
26
|
+
nodeName: string;
|
|
27
|
+
nodeVersion: number;
|
|
28
|
+
withParameters?: boolean | undefined;
|
|
29
|
+
withConnections?: boolean | undefined;
|
|
30
|
+
}, import("@langchain/langgraph").Command<unknown, Record<string, unknown>, string>>;
|
|
31
|
+
};
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NODE_DETAILS_TOOL = void 0;
|
|
4
|
+
exports.createNodeDetailsTool = createNodeDetailsTool;
|
|
5
|
+
const tools_1 = require("@langchain/core/tools");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
const errors_1 = require("../errors");
|
|
9
|
+
const progress_1 = require("./helpers/progress");
|
|
10
|
+
const response_1 = require("./helpers/response");
|
|
11
|
+
const state_1 = require("./helpers/state");
|
|
12
|
+
const validation_1 = require("./helpers/validation");
|
|
13
|
+
const node_configuration_utils_1 = require("./utils/node-configuration.utils");
|
|
14
|
+
const templates_1 = require("./web/templates");
|
|
15
|
+
const MAX_NODE_EXAMPLES = 5;
|
|
16
|
+
const nodeDetailsSchema = zod_1.z.object({
|
|
17
|
+
nodeName: zod_1.z.string().describe('The exact node type name (e.g., n8n-nodes-base.httpRequest)'),
|
|
18
|
+
nodeVersion: zod_1.z.number().describe('The exact node version'),
|
|
19
|
+
withParameters: zod_1.z
|
|
20
|
+
.boolean()
|
|
21
|
+
.optional()
|
|
22
|
+
.default(false)
|
|
23
|
+
.describe('Whether to include node parameters in the output'),
|
|
24
|
+
withConnections: zod_1.z
|
|
25
|
+
.boolean()
|
|
26
|
+
.optional()
|
|
27
|
+
.default(true)
|
|
28
|
+
.describe('Whether to include node supported connections in the output'),
|
|
29
|
+
});
|
|
30
|
+
function formatInputs(inputs) {
|
|
31
|
+
if (!inputs || inputs.length === 0) {
|
|
32
|
+
return '<inputs>none</inputs>';
|
|
33
|
+
}
|
|
34
|
+
if (typeof inputs === 'string') {
|
|
35
|
+
return `<input>${inputs}</input>`;
|
|
36
|
+
}
|
|
37
|
+
const formattedInputs = inputs.map((input) => {
|
|
38
|
+
if (typeof input === 'string') {
|
|
39
|
+
return `<input>${input}</input>`;
|
|
40
|
+
}
|
|
41
|
+
return `<input>${JSON.stringify(input)}</input>`;
|
|
42
|
+
});
|
|
43
|
+
return formattedInputs.join('\n');
|
|
44
|
+
}
|
|
45
|
+
function formatOutputs(outputs) {
|
|
46
|
+
if (!outputs || outputs.length === 0) {
|
|
47
|
+
return '<outputs>none</outputs>';
|
|
48
|
+
}
|
|
49
|
+
if (typeof outputs === 'string') {
|
|
50
|
+
return `<output>${outputs}</output>`;
|
|
51
|
+
}
|
|
52
|
+
const formattedOutputs = outputs.map((output) => {
|
|
53
|
+
if (typeof output === 'string') {
|
|
54
|
+
return `<output>${output}</output>`;
|
|
55
|
+
}
|
|
56
|
+
return `<output>${JSON.stringify(output)}</output>`;
|
|
57
|
+
});
|
|
58
|
+
return formattedOutputs.join('\n');
|
|
59
|
+
}
|
|
60
|
+
function formatNodeDetails(details, withParameters = false, withConnections = true, examples = []) {
|
|
61
|
+
const parts = [];
|
|
62
|
+
parts.push('<node_details>');
|
|
63
|
+
parts.push(`<name>${details.name}</name>`);
|
|
64
|
+
parts.push(`<display_name>${details.displayName}</display_name>`);
|
|
65
|
+
parts.push(`<description>${details.description}</description>`);
|
|
66
|
+
if (details.subtitle) {
|
|
67
|
+
parts.push(`<subtitle>${details.subtitle}</subtitle>`);
|
|
68
|
+
}
|
|
69
|
+
if (withParameters && details.properties.length > 0) {
|
|
70
|
+
const stringifiedProperties = JSON.stringify(details.properties, null, 2);
|
|
71
|
+
parts.push(`<properties>
|
|
72
|
+
${stringifiedProperties.length > 1000 ? stringifiedProperties.slice(0, 1000) + '... Rest of properties omitted' : stringifiedProperties}
|
|
73
|
+
</properties>`);
|
|
74
|
+
}
|
|
75
|
+
if (withConnections) {
|
|
76
|
+
parts.push('<connections>');
|
|
77
|
+
parts.push(formatInputs(details.inputs));
|
|
78
|
+
parts.push(formatOutputs(details.outputs));
|
|
79
|
+
parts.push('</connections>');
|
|
80
|
+
}
|
|
81
|
+
if (examples.length > 0) {
|
|
82
|
+
const limitedExamples = examples.slice(0, MAX_NODE_EXAMPLES);
|
|
83
|
+
const { parts: exampleParts } = limitedExamples.reduce((acc, config) => {
|
|
84
|
+
const exampleStr = JSON.stringify(config.parameters, null, 2);
|
|
85
|
+
if (acc.chars + exampleStr.length <= constants_1.MAX_NODE_EXAMPLE_CHARS) {
|
|
86
|
+
acc.parts.push(`<example>\n${exampleStr}\n</example>`);
|
|
87
|
+
acc.chars += exampleStr.length;
|
|
88
|
+
}
|
|
89
|
+
return acc;
|
|
90
|
+
}, { parts: [], chars: 0 });
|
|
91
|
+
if (exampleParts.length > 0) {
|
|
92
|
+
parts.push('<node_examples>');
|
|
93
|
+
parts.push(...exampleParts);
|
|
94
|
+
parts.push('</node_examples>');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
parts.push('</node_details>');
|
|
98
|
+
return parts.join('\n');
|
|
99
|
+
}
|
|
100
|
+
function extractNodeDetails(nodeType) {
|
|
101
|
+
return {
|
|
102
|
+
name: nodeType.name,
|
|
103
|
+
displayName: nodeType.displayName,
|
|
104
|
+
description: nodeType.description,
|
|
105
|
+
properties: nodeType.properties,
|
|
106
|
+
subtitle: nodeType.subtitle,
|
|
107
|
+
inputs: nodeType.inputs,
|
|
108
|
+
outputs: nodeType.outputs,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
exports.NODE_DETAILS_TOOL = {
|
|
112
|
+
toolName: 'get_node_details',
|
|
113
|
+
displayTitle: 'Getting node details',
|
|
114
|
+
};
|
|
115
|
+
async function getNodeExamples(nodeName, nodeVersion, logger, onProgress) {
|
|
116
|
+
try {
|
|
117
|
+
const state = (0, state_1.getWorkflowState)();
|
|
118
|
+
const cachedTemplates = state?.cachedTemplates ?? [];
|
|
119
|
+
const filteredConfigs = (0, node_configuration_utils_1.getNodeConfigurationsFromTemplates)(cachedTemplates, nodeName, nodeVersion);
|
|
120
|
+
if (filteredConfigs.length > 0) {
|
|
121
|
+
logger?.debug('Found node configurations in cached templates', {
|
|
122
|
+
nodeName,
|
|
123
|
+
nodeVersion,
|
|
124
|
+
count: filteredConfigs.length,
|
|
125
|
+
});
|
|
126
|
+
return { examples: filteredConfigs };
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
}
|
|
131
|
+
onProgress?.(`Fetching examples for ${nodeName}...`);
|
|
132
|
+
try {
|
|
133
|
+
const result = await (0, templates_1.fetchWorkflowsFromTemplates)({ nodes: nodeName, rows: 10 }, { maxTemplates: 5, logger });
|
|
134
|
+
if (result.workflows.length > 0) {
|
|
135
|
+
const nodeConfigs = (0, node_configuration_utils_1.getNodeConfigurationsFromTemplates)(result.workflows, nodeName, nodeVersion);
|
|
136
|
+
logger?.debug('Fetched node configurations from templates API', {
|
|
137
|
+
nodeName,
|
|
138
|
+
nodeVersion,
|
|
139
|
+
count: nodeConfigs.length,
|
|
140
|
+
workflowCount: result.workflows.length,
|
|
141
|
+
});
|
|
142
|
+
return { examples: nodeConfigs, newTemplates: result.workflows };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
logger?.warn('Failed to fetch node examples from templates', { nodeName, error });
|
|
147
|
+
}
|
|
148
|
+
return { examples: [] };
|
|
149
|
+
}
|
|
150
|
+
function createNodeDetailsTool(nodeTypes, logger) {
|
|
151
|
+
const dynamicTool = (0, tools_1.tool)(async (input, config) => {
|
|
152
|
+
const reporter = (0, progress_1.createProgressReporter)(config, exports.NODE_DETAILS_TOOL.toolName, exports.NODE_DETAILS_TOOL.displayTitle);
|
|
153
|
+
try {
|
|
154
|
+
const validatedInput = nodeDetailsSchema.parse(input);
|
|
155
|
+
const { nodeName, nodeVersion, withParameters, withConnections } = validatedInput;
|
|
156
|
+
reporter.start(validatedInput);
|
|
157
|
+
(0, progress_1.reportProgress)(reporter, `Looking up details for ${nodeName}...`);
|
|
158
|
+
const nodeType = (0, validation_1.findNodeType)(nodeName, nodeVersion, nodeTypes);
|
|
159
|
+
if (!nodeType) {
|
|
160
|
+
const error = (0, validation_1.createNodeTypeNotFoundError)(nodeName);
|
|
161
|
+
reporter.error(error);
|
|
162
|
+
return (0, response_1.createErrorResponse)(config, error);
|
|
163
|
+
}
|
|
164
|
+
const details = extractNodeDetails(nodeType);
|
|
165
|
+
const { examples, newTemplates } = await getNodeExamples(nodeName, nodeVersion, logger, (msg) => (0, progress_1.reportProgress)(reporter, msg));
|
|
166
|
+
const message = formatNodeDetails(details, withParameters, withConnections, examples);
|
|
167
|
+
const output = {
|
|
168
|
+
details,
|
|
169
|
+
found: true,
|
|
170
|
+
message,
|
|
171
|
+
};
|
|
172
|
+
reporter.complete(output);
|
|
173
|
+
const stateUpdates = newTemplates ? { cachedTemplates: newTemplates } : undefined;
|
|
174
|
+
return (0, response_1.createSuccessResponse)(config, message, stateUpdates);
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
178
|
+
const validationError = new errors_1.ValidationError('Invalid input parameters', {
|
|
179
|
+
extra: { errors: error.errors },
|
|
180
|
+
});
|
|
181
|
+
reporter.error(validationError);
|
|
182
|
+
return (0, response_1.createErrorResponse)(config, validationError);
|
|
183
|
+
}
|
|
184
|
+
const toolError = new errors_1.ToolExecutionError(error instanceof Error ? error.message : 'Unknown error occurred', {
|
|
185
|
+
toolName: exports.NODE_DETAILS_TOOL.toolName,
|
|
186
|
+
cause: error instanceof Error ? error : undefined,
|
|
187
|
+
});
|
|
188
|
+
reporter.error(toolError);
|
|
189
|
+
return (0, response_1.createErrorResponse)(config, toolError);
|
|
190
|
+
}
|
|
191
|
+
}, {
|
|
192
|
+
name: exports.NODE_DETAILS_TOOL.toolName,
|
|
193
|
+
description: 'Get detailed information about a specific n8n node type including properties, available connections, and up to 5 example configurations. Use this before adding nodes to understand their input/output structure.',
|
|
194
|
+
schema: nodeDetailsSchema,
|
|
195
|
+
});
|
|
196
|
+
return {
|
|
197
|
+
tool: dynamicTool,
|
|
198
|
+
...exports.NODE_DETAILS_TOOL,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=node-details.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-details.tool.js","sourceRoot":"","sources":["../../src/tools/node-details.tool.ts"],"names":[],"mappings":"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"}
|