@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,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exampleCategorizations = void 0;
|
|
4
|
+
exports.formatTechniqueList = formatTechniqueList;
|
|
5
|
+
exports.formatExampleCategorizations = formatExampleCategorizations;
|
|
6
|
+
exports.buildDiscoveryPrompt = buildDiscoveryPrompt;
|
|
7
|
+
const categorization_1 = require("../../types/categorization");
|
|
8
|
+
const builder_1 = require("../builder");
|
|
9
|
+
exports.exampleCategorizations = [
|
|
10
|
+
{
|
|
11
|
+
prompt: 'Monitor social channels for product mentions and auto-respond with campaign messages',
|
|
12
|
+
techniques: [
|
|
13
|
+
categorization_1.WorkflowTechnique.MONITORING,
|
|
14
|
+
categorization_1.WorkflowTechnique.CHATBOT,
|
|
15
|
+
categorization_1.WorkflowTechnique.CONTENT_GENERATION,
|
|
16
|
+
],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
prompt: 'Collect partner referral submissions and verify client instances via BigQuery',
|
|
20
|
+
techniques: [
|
|
21
|
+
categorization_1.WorkflowTechnique.FORM_INPUT,
|
|
22
|
+
categorization_1.WorkflowTechnique.HUMAN_IN_THE_LOOP,
|
|
23
|
+
categorization_1.WorkflowTechnique.NOTIFICATION,
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
prompt: 'Scrape competitor pricing pages weekly and generate a summary report of changes',
|
|
28
|
+
techniques: [
|
|
29
|
+
categorization_1.WorkflowTechnique.SCHEDULING,
|
|
30
|
+
categorization_1.WorkflowTechnique.SCRAPING_AND_RESEARCH,
|
|
31
|
+
categorization_1.WorkflowTechnique.DATA_EXTRACTION,
|
|
32
|
+
categorization_1.WorkflowTechnique.DATA_ANALYSIS,
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
prompt: 'Process uploaded PDF contracts to extract client details and update CRM records',
|
|
37
|
+
techniques: [
|
|
38
|
+
categorization_1.WorkflowTechnique.DOCUMENT_PROCESSING,
|
|
39
|
+
categorization_1.WorkflowTechnique.DATA_EXTRACTION,
|
|
40
|
+
categorization_1.WorkflowTechnique.DATA_TRANSFORMATION,
|
|
41
|
+
categorization_1.WorkflowTechnique.ENRICHMENT,
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
prompt: 'Build a searchable internal knowledge base from past support tickets',
|
|
46
|
+
techniques: [
|
|
47
|
+
categorization_1.WorkflowTechnique.DATA_TRANSFORMATION,
|
|
48
|
+
categorization_1.WorkflowTechnique.DATA_ANALYSIS,
|
|
49
|
+
categorization_1.WorkflowTechnique.KNOWLEDGE_BASE,
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
prompt: 'Create an AI agent that writes and sends personalized emails to leads',
|
|
54
|
+
techniques: [categorization_1.WorkflowTechnique.CONTENT_GENERATION, categorization_1.WorkflowTechnique.NOTIFICATION],
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
prompt: 'Fetch trending topics from Google Trends and Reddit, select the best ones, and create social posts',
|
|
58
|
+
techniques: [
|
|
59
|
+
categorization_1.WorkflowTechnique.SCRAPING_AND_RESEARCH,
|
|
60
|
+
categorization_1.WorkflowTechnique.TRIAGE,
|
|
61
|
+
categorization_1.WorkflowTechnique.CONTENT_GENERATION,
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
prompt: 'Trigger when a new contact is created in HubSpot and enrich their profile with LinkedIn data',
|
|
66
|
+
techniques: [categorization_1.WorkflowTechnique.MONITORING, categorization_1.WorkflowTechnique.ENRICHMENT],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
prompt: 'Get stock prices from financial APIs and analyze volatility patterns',
|
|
70
|
+
techniques: [categorization_1.WorkflowTechnique.SCRAPING_AND_RESEARCH, categorization_1.WorkflowTechnique.DATA_ANALYSIS],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
prompt: 'Generate video reels from templates and auto-post to social media on schedule',
|
|
74
|
+
techniques: [
|
|
75
|
+
categorization_1.WorkflowTechnique.SCHEDULING,
|
|
76
|
+
categorization_1.WorkflowTechnique.DOCUMENT_PROCESSING,
|
|
77
|
+
categorization_1.WorkflowTechnique.CONTENT_GENERATION,
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
prompt: 'Receive news from Telegram channels, filter relevant ones, and forward to my channel',
|
|
82
|
+
techniques: [
|
|
83
|
+
categorization_1.WorkflowTechnique.MONITORING,
|
|
84
|
+
categorization_1.WorkflowTechnique.TRIAGE,
|
|
85
|
+
categorization_1.WorkflowTechnique.NOTIFICATION,
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
prompt: 'Analyze YouTube video performance data and generate a weekly report',
|
|
90
|
+
techniques: [
|
|
91
|
+
categorization_1.WorkflowTechnique.SCRAPING_AND_RESEARCH,
|
|
92
|
+
categorization_1.WorkflowTechnique.DATA_ANALYSIS,
|
|
93
|
+
categorization_1.WorkflowTechnique.DATA_TRANSFORMATION,
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
prompt: 'Create a chatbot that answers questions using data from a Google Sheet as knowledge base',
|
|
98
|
+
techniques: [categorization_1.WorkflowTechnique.CHATBOT, categorization_1.WorkflowTechnique.KNOWLEDGE_BASE],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
prompt: 'Form submission with file upload triggers document extraction and approval workflow',
|
|
102
|
+
techniques: [
|
|
103
|
+
categorization_1.WorkflowTechnique.FORM_INPUT,
|
|
104
|
+
categorization_1.WorkflowTechnique.DOCUMENT_PROCESSING,
|
|
105
|
+
categorization_1.WorkflowTechnique.HUMAN_IN_THE_LOOP,
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
function formatTechniqueList() {
|
|
110
|
+
return Object.entries(categorization_1.TechniqueDescription)
|
|
111
|
+
.map(([key, description]) => `- **${key}**: ${description}`)
|
|
112
|
+
.join('\n');
|
|
113
|
+
}
|
|
114
|
+
function formatExampleCategorizations() {
|
|
115
|
+
return exports.exampleCategorizations
|
|
116
|
+
.map((example) => `- ${example.prompt} → ${example.techniques.join(', ')}`)
|
|
117
|
+
.join('\n');
|
|
118
|
+
}
|
|
119
|
+
const DISCOVERY_ROLE = `You are a Discovery Agent for n8n AI Workflow Builder.
|
|
120
|
+
|
|
121
|
+
YOUR ROLE: Identify relevant n8n nodes and their connection-changing parameters.`;
|
|
122
|
+
const TECHNIQUE_CATEGORIZATION = `When calling get_best_practices, select techniques that match the user's workflow intent.
|
|
123
|
+
|
|
124
|
+
<available_techniques>
|
|
125
|
+
{techniques}
|
|
126
|
+
</available_techniques>
|
|
127
|
+
|
|
128
|
+
<example_categorizations>
|
|
129
|
+
{exampleCategorizations}
|
|
130
|
+
</example_categorizations>`;
|
|
131
|
+
const TECHNIQUE_CLARIFICATIONS = `Common distinctions to get right:
|
|
132
|
+
- **NOTIFICATION vs CHATBOT**: Use NOTIFICATION when SENDING emails/messages/alerts (including to Telegram CHANNELS which are broadcast-only). Use CHATBOT only when RECEIVING and REPLYING to direct messages in a conversation.
|
|
133
|
+
- **MONITORING**: Use when workflow TRIGGERS on external events (new record created, status changed, incoming webhook, new message in channel). NOT just scheduled runs.
|
|
134
|
+
- **SCRAPING_AND_RESEARCH vs DATA_EXTRACTION**: Use SCRAPING when fetching from EXTERNAL sources (APIs, websites, social media). Use DATA_EXTRACTION for parsing INTERNAL data you already have.
|
|
135
|
+
- **TRIAGE**: Use when SELECTING, PRIORITIZING, ROUTING, or QUALIFYING items (e.g., "pick the best", "route to correct team", "qualify leads").
|
|
136
|
+
- **DOCUMENT_PROCESSING**: Use for ANY file handling - PDFs, images, videos, Excel, Google Sheets, audio files, file uploads in forms.
|
|
137
|
+
- **HUMAN_IN_THE_LOOP**: Use when workflow PAUSES for human approval, review, signing documents, responding to polls, or any manual input before continuing.
|
|
138
|
+
- **DATA_ANALYSIS**: Use when ANALYZING, CLASSIFYING, IDENTIFYING PATTERNS, or UNDERSTANDING data (e.g., "analyze outcomes", "learn from previous", "classify by type", "identify trends").
|
|
139
|
+
- **KNOWLEDGE_BASE**: Use when storing/retrieving from a DATA SOURCE for Q&A - includes vector DBs, spreadsheets used as databases, document collections.
|
|
140
|
+
- **DATA_TRANSFORMATION**: Use when CONVERTING data format, creating REPORTS/SUMMARIES from analyzed data, or restructuring output.
|
|
141
|
+
|
|
142
|
+
Technique selection rules:
|
|
143
|
+
- Select ALL techniques that apply (most workflows use 2-4)
|
|
144
|
+
- Maximum 5 techniques
|
|
145
|
+
- Only select techniques you're confident apply`;
|
|
146
|
+
const CONNECTION_PARAMETERS = `A parameter is connection-changing ONLY IF it appears in <input> or <output> expressions within <node_details>.
|
|
147
|
+
|
|
148
|
+
**How to identify:**
|
|
149
|
+
1. Look at the <connections> section in node details
|
|
150
|
+
2. Check if <input> or <output> uses expressions like: ={{...parameterName...}}
|
|
151
|
+
3. If a parameter is referenced in these expressions, it IS connection-changing
|
|
152
|
+
4. If a parameter is NOT in <input>/<output> expressions, it is NOT connection-changing
|
|
153
|
+
|
|
154
|
+
**Example from AI Agent:**
|
|
155
|
+
\`\`\`xml
|
|
156
|
+
<input>={{...hasOutputParser, needsFallback...}}</input>
|
|
157
|
+
\`\`\`
|
|
158
|
+
→ hasOutputParser and needsFallback ARE connection-changing (they control which inputs appear)
|
|
159
|
+
|
|
160
|
+
**Counter-example:**
|
|
161
|
+
\`\`\`xml
|
|
162
|
+
<properties>
|
|
163
|
+
<property name="promptType">...</property> <!-- NOT in <input>/<output> -->
|
|
164
|
+
<property name="systemMessage">...</property> <!-- NOT in <input>/<output> -->
|
|
165
|
+
</properties>
|
|
166
|
+
\`\`\`
|
|
167
|
+
→ promptType and systemMessage are NOT connection-changing (they don't affect connections)
|
|
168
|
+
|
|
169
|
+
**Common connection-changing parameters:**
|
|
170
|
+
- Vector Store: mode (appears in <input>/<output> expressions)
|
|
171
|
+
- AI Agent: hasOutputParser, needsFallback (appears in <input> expression)
|
|
172
|
+
- Merge: numberInputs (appears in <input> expression)
|
|
173
|
+
- Webhook: responseMode (appears in <output> expression)`;
|
|
174
|
+
const DYNAMIC_OUTPUT_NODES = `Some nodes have DYNAMIC outputs that depend on parameter values:
|
|
175
|
+
|
|
176
|
+
**Switch Node** (n8n-nodes-base.switch):
|
|
177
|
+
- When mode is "rules", the number of outputs equals the number of routing rules
|
|
178
|
+
- Connection parameter: mode: "rules" - CRITICAL for enabling rule-based routing
|
|
179
|
+
- Each rule in rules.values[] creates one output
|
|
180
|
+
- The rules parameter uses the same filter structure as IF node conditions
|
|
181
|
+
- ALWAYS flag mode as connection-changing with possibleValues: ["rules", "expression"]
|
|
182
|
+
|
|
183
|
+
**Merge Node** (n8n-nodes-base.merge):
|
|
184
|
+
- numberInputs parameter controls how many inputs the node accepts
|
|
185
|
+
|
|
186
|
+
When you find these nodes, ALWAYS flag mode/numberInputs as connection-changing parameters with possibleValues.`;
|
|
187
|
+
const SUB_NODES_SEARCHES = `When searching for AI nodes, ALSO search for their required sub-nodes:
|
|
188
|
+
- "AI Agent" → also search for "Chat Model", "Memory", "Output Parser"
|
|
189
|
+
- "Basic LLM Chain" → also search for "Chat Model", "Output Parser"
|
|
190
|
+
- "Vector Store" → also search for "Embeddings", "Document Loader"`;
|
|
191
|
+
const STRUCTURED_OUTPUT_PARSER = `Search for "Structured Output Parser" (@n8n/n8n-nodes-langchain.outputParserStructured) when:
|
|
192
|
+
- AI output will be used programmatically (conditions, formatting, database storage, API calls)
|
|
193
|
+
- AI needs to extract specific fields (e.g., score, category, priority, action items)
|
|
194
|
+
- AI needs to classify/categorize data into defined categories
|
|
195
|
+
- Downstream nodes need to access specific fields from AI response (e.g., $json.score, $json.category)
|
|
196
|
+
- Output will be displayed in a formatted way (e.g., HTML email with specific sections)
|
|
197
|
+
- Data needs validation against a schema before processing
|
|
198
|
+
|
|
199
|
+
- Always use search_nodes to find the exact node names and versions - NEVER guess versions`;
|
|
200
|
+
const CRITICAL_RULES = `- NEVER ask clarifying questions
|
|
201
|
+
- ALWAYS call get_best_practices first
|
|
202
|
+
- THEN Call search_nodes to learn about available nodes and their inputs and outputs
|
|
203
|
+
- FINALLY call get_node_details IN PARALLEL for speed to get more details about RELVANT node
|
|
204
|
+
- ALWAYS extract version number from <version> tag in node details
|
|
205
|
+
- NEVER guess node versions - always use search_nodes to find exact versions
|
|
206
|
+
- ONLY flag connectionChangingParameters if they appear in <input> or <output> expressions
|
|
207
|
+
- If no parameters appear in connection expressions, return empty array []
|
|
208
|
+
- Output ONLY: nodesFound with {{ nodeName, version, reasoning, connectionChangingParameters }}
|
|
209
|
+
- When user specifies a model name (e.g., 'gpt-4.1-mini') try to use this if it is a valid option`;
|
|
210
|
+
const RESTRICTIONS = `- Output text commentary between tool calls
|
|
211
|
+
- Include bestPractices or categorization in submit_discovery_results
|
|
212
|
+
- Flag parameters that don't affect connections
|
|
213
|
+
- Stop without calling submit_discovery_results`;
|
|
214
|
+
function generateAvailableToolsList(options) {
|
|
215
|
+
const { includeExamples } = options;
|
|
216
|
+
const tools = [
|
|
217
|
+
'- get_best_practices: Retrieve best practices (internal context)',
|
|
218
|
+
'- search_nodes: Find n8n nodes by keyword',
|
|
219
|
+
'- get_node_details: Get complete node information including <connections>',
|
|
220
|
+
];
|
|
221
|
+
if (includeExamples) {
|
|
222
|
+
tools.push('- get_workflow_examples: Search for workflow examples as reference');
|
|
223
|
+
}
|
|
224
|
+
tools.push('- submit_discovery_results: Submit final results');
|
|
225
|
+
return tools.join('\n');
|
|
226
|
+
}
|
|
227
|
+
function generateProcessSteps(options) {
|
|
228
|
+
const { includeExamples } = options;
|
|
229
|
+
const steps = [
|
|
230
|
+
'**Analyze user prompt** - Extract services, models, and technologies mentioned',
|
|
231
|
+
'**Call get_best_practices** with identified techniques (internal context)',
|
|
232
|
+
];
|
|
233
|
+
if (includeExamples) {
|
|
234
|
+
steps.push('**Call get_workflow_examples** with search queries for mentioned services/models');
|
|
235
|
+
}
|
|
236
|
+
const examplesContext = includeExamples ? ', and examples' : '';
|
|
237
|
+
steps.push(`**Identify workflow components** from user request, best practices${examplesContext}`, '**Call search_nodes IN PARALLEL** for all components (e.g., "Gmail", "OpenAI", "Schedule")', '**Call get_node_details IN PARALLEL** for ALL promising nodes (batch multiple calls)', `**Extract node information** from each node_details response:
|
|
238
|
+
- Node name from <name> tag
|
|
239
|
+
- Version number from <version> tag (required - extract the number)
|
|
240
|
+
- Connection-changing parameters from <connections> section`, '**Call submit_discovery_results** with complete nodesFound array');
|
|
241
|
+
return steps.map((step, index) => `${index + 1}. ${step}`).join('\n');
|
|
242
|
+
}
|
|
243
|
+
function buildDiscoveryPrompt(options) {
|
|
244
|
+
const availableTools = generateAvailableToolsList(options);
|
|
245
|
+
const processSteps = generateProcessSteps(options);
|
|
246
|
+
return (0, builder_1.prompt)()
|
|
247
|
+
.section('role', DISCOVERY_ROLE)
|
|
248
|
+
.section('available_tools', availableTools)
|
|
249
|
+
.section('process', processSteps)
|
|
250
|
+
.section('technique_categorization', TECHNIQUE_CATEGORIZATION)
|
|
251
|
+
.section('technique_clarifications', TECHNIQUE_CLARIFICATIONS)
|
|
252
|
+
.section('connection_changing_parameters', CONNECTION_PARAMETERS)
|
|
253
|
+
.section('dynamic_output_nodes', DYNAMIC_OUTPUT_NODES)
|
|
254
|
+
.section('sub_nodes_searches', SUB_NODES_SEARCHES)
|
|
255
|
+
.section('structured_output_parser', STRUCTURED_OUTPUT_PARSER)
|
|
256
|
+
.section('critical_rules', CRITICAL_RULES)
|
|
257
|
+
.section('do_not', RESTRICTIONS)
|
|
258
|
+
.build();
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=discovery.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.prompt.js","sourceRoot":"","sources":["../../../src/prompts/agents/discovery.prompt.ts"],"names":[],"mappings":";;;AA2HA,kDAIC;AAED,oEAIC;AA2JD,oDAiBC;AA1SD,2DAIgC;AAEhC,wCAAoC;AAGvB,QAAA,sBAAsB,GAG9B;IACJ;QACC,MAAM,EAAE,sFAAsF;QAC9F,UAAU,EAAE;YACX,kCAAiB,CAAC,UAAU;YAC5B,kCAAiB,CAAC,OAAO;YACzB,kCAAiB,CAAC,kBAAkB;SACpC;KACD;IACD;QACC,MAAM,EAAE,+EAA+E;QACvF,UAAU,EAAE;YACX,kCAAiB,CAAC,UAAU;YAC5B,kCAAiB,CAAC,iBAAiB;YACnC,kCAAiB,CAAC,YAAY;SAC9B;KACD;IACD;QACC,MAAM,EAAE,iFAAiF;QACzF,UAAU,EAAE;YACX,kCAAiB,CAAC,UAAU;YAC5B,kCAAiB,CAAC,qBAAqB;YACvC,kCAAiB,CAAC,eAAe;YACjC,kCAAiB,CAAC,aAAa;SAC/B;KACD;IACD;QACC,MAAM,EAAE,iFAAiF;QACzF,UAAU,EAAE;YACX,kCAAiB,CAAC,mBAAmB;YACrC,kCAAiB,CAAC,eAAe;YACjC,kCAAiB,CAAC,mBAAmB;YACrC,kCAAiB,CAAC,UAAU;SAC5B;KACD;IACD;QACC,MAAM,EAAE,sEAAsE;QAC9E,UAAU,EAAE;YACX,kCAAiB,CAAC,mBAAmB;YACrC,kCAAiB,CAAC,aAAa;YAC/B,kCAAiB,CAAC,cAAc;SAChC;KACD;IACD;QACC,MAAM,EAAE,uEAAuE;QAC/E,UAAU,EAAE,CAAC,kCAAiB,CAAC,kBAAkB,EAAE,kCAAiB,CAAC,YAAY,CAAC;KAClF;IACD;QACC,MAAM,EACL,oGAAoG;QACrG,UAAU,EAAE;YACX,kCAAiB,CAAC,qBAAqB;YACvC,kCAAiB,CAAC,MAAM;YACxB,kCAAiB,CAAC,kBAAkB;SACpC;KACD;IACD;QACC,MAAM,EACL,8FAA8F;QAC/F,UAAU,EAAE,CAAC,kCAAiB,CAAC,UAAU,EAAE,kCAAiB,CAAC,UAAU,CAAC;KACxE;IACD;QACC,MAAM,EAAE,sEAAsE;QAC9E,UAAU,EAAE,CAAC,kCAAiB,CAAC,qBAAqB,EAAE,kCAAiB,CAAC,aAAa,CAAC;KACtF;IACD;QACC,MAAM,EAAE,+EAA+E;QACvF,UAAU,EAAE;YACX,kCAAiB,CAAC,UAAU;YAC5B,kCAAiB,CAAC,mBAAmB;YACrC,kCAAiB,CAAC,kBAAkB;SACpC;KACD;IACD;QACC,MAAM,EAAE,sFAAsF;QAC9F,UAAU,EAAE;YACX,kCAAiB,CAAC,UAAU;YAC5B,kCAAiB,CAAC,MAAM;YACxB,kCAAiB,CAAC,YAAY;SAC9B;KACD;IACD;QACC,MAAM,EAAE,qEAAqE;QAC7E,UAAU,EAAE;YACX,kCAAiB,CAAC,qBAAqB;YACvC,kCAAiB,CAAC,aAAa;YAC/B,kCAAiB,CAAC,mBAAmB;SACrC;KACD;IACD;QACC,MAAM,EACL,0FAA0F;QAC3F,UAAU,EAAE,CAAC,kCAAiB,CAAC,OAAO,EAAE,kCAAiB,CAAC,cAAc,CAAC;KACzE;IACD;QACC,MAAM,EAAE,qFAAqF;QAC7F,UAAU,EAAE;YACX,kCAAiB,CAAC,UAAU;YAC5B,kCAAiB,CAAC,mBAAmB;YACrC,kCAAiB,CAAC,iBAAiB;SACnC;KACD;CACD,CAAC;AAEF,SAAgB,mBAAmB;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,qCAAoB,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO,WAAW,EAAE,CAAC;SAC3D,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAgB,4BAA4B;IAC3C,OAAO,8BAAsB;SAC3B,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1E,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAMD,MAAM,cAAc,GAAG;;iFAE0D,CAAC;AAElF,MAAM,wBAAwB,GAAG;;;;;;;;2BAQN,CAAC;AAE5B,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;gDAce,CAAC;AAEjD,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;yDA2B2B,CAAC;AAE1D,MAAM,oBAAoB,GAAG;;;;;;;;;;;;gHAYmF,CAAC;AAEjH,MAAM,kBAAkB,GAAG;;;mEAGwC,CAAC;AAEpE,MAAM,wBAAwB,GAAG;;;;;;;;2FAQ0D,CAAC;AAE5F,MAAM,cAAc,GAAG;;;;;;;;;kGAS2E,CAAC;AAEnG,MAAM,YAAY,GAAG;;;gDAG2B,CAAC;AAEjD,SAAS,0BAA0B,CAAC,OAA+B;IAClE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEpC,MAAM,KAAK,GAAG;QACb,kEAAkE;QAClE,2CAA2C;QAC3C,2EAA2E;KAC3E,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAE/D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA+B;IAC5D,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEpC,MAAM,KAAK,GAAa;QACvB,gFAAgF;QAChF,2EAA2E;KAC3E,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,KAAK,CAAC,IAAI,CACT,qEAAqE,eAAe,EAAE,EACtF,4FAA4F,EAC5F,sFAAsF,EACtF;;;+DAG6D,EAC7D,kEAAkE,CAClE,CAAC;IAEF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAA+B;IACnE,MAAM,cAAc,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,IAAA,gBAAM,GAAE;SACb,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;SAC/B,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC;SAC1C,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;SAChC,OAAO,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC7D,OAAO,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC7D,OAAO,CAAC,gCAAgC,EAAE,qBAAqB,CAAC;SAChE,OAAO,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;SACrD,OAAO,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;SACjD,OAAO,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC7D,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC;SACzC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC/B,KAAK,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildResponderPrompt(): string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildResponderPrompt = buildResponderPrompt;
|
|
4
|
+
const builder_1 = require("../builder");
|
|
5
|
+
const RESPONDER_ROLE = `You are a helpful AI assistant for n8n workflow automation.
|
|
6
|
+
|
|
7
|
+
You have access to context about what has been built, including:
|
|
8
|
+
- Discovery results (nodes found)
|
|
9
|
+
- Builder output (workflow structure)
|
|
10
|
+
- Configuration summary (setup instructions)`;
|
|
11
|
+
const WORKFLOW_COMPLETION = `When you receive [Internal Context], synthesize a clean user-facing response:
|
|
12
|
+
1. Summarize what was built in a friendly way
|
|
13
|
+
2. Explain the workflow structure briefly
|
|
14
|
+
3. Include setup instructions if provided
|
|
15
|
+
4. Ask if user wants adjustments
|
|
16
|
+
5. Do not tell user to activate/publish their workflow, because they will do this themselves when they are ready.
|
|
17
|
+
|
|
18
|
+
Example response structure:
|
|
19
|
+
"I've created your [workflow type] workflow! Here's what it does:
|
|
20
|
+
[Brief explanation of the flow]
|
|
21
|
+
|
|
22
|
+
**Setup Required:**
|
|
23
|
+
[List any configuration steps from the context]
|
|
24
|
+
|
|
25
|
+
Let me know if you'd like to adjust anything."`;
|
|
26
|
+
const CONVERSATIONAL_RESPONSES = `- Be friendly and concise
|
|
27
|
+
- Explain n8n capabilities when asked
|
|
28
|
+
- Provide practical examples when helpful`;
|
|
29
|
+
const RESPONSE_STYLE = `- Keep responses focused and not overly long
|
|
30
|
+
- Use markdown formatting for readability
|
|
31
|
+
- Be conversational and helpful
|
|
32
|
+
- Do not use emojis in your response`;
|
|
33
|
+
function buildResponderPrompt() {
|
|
34
|
+
return (0, builder_1.prompt)()
|
|
35
|
+
.section('role', RESPONDER_ROLE)
|
|
36
|
+
.section('workflow_completion_responses', WORKFLOW_COMPLETION)
|
|
37
|
+
.section('conversational_responses', CONVERSATIONAL_RESPONSES)
|
|
38
|
+
.section('response_style', RESPONSE_STYLE)
|
|
39
|
+
.build();
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=responder.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responder.prompt.js","sourceRoot":"","sources":["../../../src/prompts/agents/responder.prompt.ts"],"names":[],"mappings":";;AAyCA,oDAOC;AAzCD,wCAAoC;AAEpC,MAAM,cAAc,GAAG;;;;;6CAKsB,CAAC;AAE9C,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;+CAcmB,CAAC;AAEhD,MAAM,wBAAwB,GAAG;;0CAES,CAAC;AAE3C,MAAM,cAAc,GAAG;;;qCAGc,CAAC;AAEtC,SAAgB,oBAAoB;IACnC,OAAO,IAAA,gBAAM,GAAE;SACb,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC;SAC/B,OAAO,CAAC,+BAA+B,EAAE,mBAAmB,CAAC;SAC7D,OAAO,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;SAC7D,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC;SACzC,KAAK,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildSupervisorPrompt(): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSupervisorPrompt = buildSupervisorPrompt;
|
|
4
|
+
const builder_1 = require("../builder");
|
|
5
|
+
const SUPERVISOR_ROLE = 'You are a Supervisor that routes user requests to specialist agents.';
|
|
6
|
+
const AVAILABLE_AGENTS = `- discovery: Find n8n nodes for building/modifying workflows
|
|
7
|
+
- builder: Create nodes and connections (requires discovery first for new node types)
|
|
8
|
+
- configurator: Set parameters on EXISTING nodes (no structural changes)
|
|
9
|
+
- responder: Answer questions, confirm completion (TERMINAL)`;
|
|
10
|
+
const ROUTING_DECISION_TREE = `1. Is user asking a question or chatting? → responder
|
|
11
|
+
Examples: "what does this do?", "explain the workflow", "thanks"
|
|
12
|
+
|
|
13
|
+
2. Does the request involve NEW or DIFFERENT node types? → discovery
|
|
14
|
+
Examples:
|
|
15
|
+
- "Build a workflow that..." (new workflow)
|
|
16
|
+
- "Use [ServiceB] instead of [ServiceA]" (replacing node type)
|
|
17
|
+
- "Add [some integration]" (new integration)
|
|
18
|
+
- "Switch from [ServiceA] to [ServiceB]" (swapping services)
|
|
19
|
+
|
|
20
|
+
3. Is the request about connecting/disconnecting existing nodes? → builder
|
|
21
|
+
Examples: "Connect node A to node B", "Remove the connection to X"
|
|
22
|
+
|
|
23
|
+
4. Is the request about changing VALUES in existing nodes? → configurator
|
|
24
|
+
Examples:
|
|
25
|
+
- "Change the URL to https://..."
|
|
26
|
+
- "Set the timeout to 30 seconds"
|
|
27
|
+
- "Update the email subject to..."`;
|
|
28
|
+
const KEY_DISTINCTION = `- "Use [ServiceB] instead of [ServiceA]" = REPLACEMENT = discovery (new node type needed)
|
|
29
|
+
- "Change the [ServiceA] API key" = CONFIGURATION = configurator (same node, different value)`;
|
|
30
|
+
const OUTPUT_FORMAT = `- reasoning: One sentence explaining your routing decision
|
|
31
|
+
- next: Agent name`;
|
|
32
|
+
const INSTRUCTION = 'Given the conversation above, which agent should act next? Provide your reasoning and selection.';
|
|
33
|
+
function buildSupervisorPrompt() {
|
|
34
|
+
return (0, builder_1.prompt)()
|
|
35
|
+
.section('role', SUPERVISOR_ROLE)
|
|
36
|
+
.section('available_agents', AVAILABLE_AGENTS)
|
|
37
|
+
.section('routing_decision_tree', ROUTING_DECISION_TREE)
|
|
38
|
+
.section('key_distinction', KEY_DISTINCTION)
|
|
39
|
+
.section('output', OUTPUT_FORMAT)
|
|
40
|
+
.section('instruction', INSTRUCTION)
|
|
41
|
+
.build();
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=supervisor.prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.prompt.js","sourceRoot":"","sources":["../../../src/prompts/agents/supervisor.prompt.ts"],"names":[],"mappings":";;AA6CA,sDASC;AA/CD,wCAAoC;AAEpC,MAAM,eAAe,GAAG,sEAAsE,CAAC;AAE/F,MAAM,gBAAgB,GAAG;;;6DAGoC,CAAC;AAE9D,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;sCAiBQ,CAAC;AAGvC,MAAM,eAAe,GAAG;8FACsE,CAAC;AAE/F,MAAM,aAAa,GAAG;mBACH,CAAC;AAEpB,MAAM,WAAW,GAChB,kGAAkG,CAAC;AAEpG,SAAgB,qBAAqB;IACpC,OAAO,IAAA,gBAAM,GAAE;SACb,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC;SAChC,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;SAC7C,OAAO,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;SACvD,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAC3C,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC;SAChC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;SACnC,KAAK,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prompt = exports.PromptBuilder = void 0;
|
|
4
|
+
var prompt_builder_1 = require("./prompt-builder");
|
|
5
|
+
Object.defineProperty(exports, "PromptBuilder", { enumerable: true, get: function () { return prompt_builder_1.PromptBuilder; } });
|
|
6
|
+
Object.defineProperty(exports, "prompt", { enumerable: true, get: function () { return prompt_builder_1.prompt; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/prompts/builder/index.ts"],"names":[],"mappings":";;;AAeA,mDAAyD;AAAhD,+GAAA,aAAa,OAAA;AAAE,wGAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ContentOrFactory, MessageBlock, PromptBuilderOptions, SectionOptions } from './types';
|
|
2
|
+
export declare class PromptBuilder {
|
|
3
|
+
private readonly sections;
|
|
4
|
+
private readonly format;
|
|
5
|
+
private readonly separator;
|
|
6
|
+
constructor(options?: PromptBuilderOptions);
|
|
7
|
+
section(name: string, content: ContentOrFactory, options?: SectionOptions): this;
|
|
8
|
+
sectionIf(condition: unknown, name: string, content: ContentOrFactory, options?: SectionOptions): this;
|
|
9
|
+
examples<T>(name: string, examples: T[], formatter?: (example: T) => string, options?: SectionOptions): this;
|
|
10
|
+
examplesIf<T>(condition: unknown, name: string, examples: T[], formatter?: (example: T) => string, options?: SectionOptions): this;
|
|
11
|
+
withExamples<T>(examples: T[], formatter?: (example: T) => string): this;
|
|
12
|
+
merge(other: PromptBuilder): this;
|
|
13
|
+
build(): string;
|
|
14
|
+
buildAsMessageBlocks(): MessageBlock[];
|
|
15
|
+
estimateTokens(): number;
|
|
16
|
+
}
|
|
17
|
+
export declare function prompt(options?: PromptBuilderOptions): PromptBuilder;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromptBuilder = void 0;
|
|
4
|
+
exports.prompt = prompt;
|
|
5
|
+
function hasContentProperty(value) {
|
|
6
|
+
return (typeof value === 'object' &&
|
|
7
|
+
value !== null &&
|
|
8
|
+
'content' in value &&
|
|
9
|
+
typeof value.content === 'string');
|
|
10
|
+
}
|
|
11
|
+
function defaultExampleFormatter(example) {
|
|
12
|
+
if (typeof example === 'string')
|
|
13
|
+
return example;
|
|
14
|
+
if (hasContentProperty(example))
|
|
15
|
+
return example.content;
|
|
16
|
+
throw new Error('Example must be a string or have a content property. Provide a custom formatter.');
|
|
17
|
+
}
|
|
18
|
+
function normalizeToTag(name) {
|
|
19
|
+
return name
|
|
20
|
+
.toLowerCase()
|
|
21
|
+
.replace(/[^a-z0-9]+/g, '_')
|
|
22
|
+
.replace(/^_+|_+$/g, '')
|
|
23
|
+
.replace(/_+/g, '_');
|
|
24
|
+
}
|
|
25
|
+
function formatSection(name, content, format, customTag) {
|
|
26
|
+
if (format === 'markdown') {
|
|
27
|
+
const header = customTag ?? name;
|
|
28
|
+
return `## ${header}\n${content}`;
|
|
29
|
+
}
|
|
30
|
+
const tag = customTag ?? normalizeToTag(name);
|
|
31
|
+
return `<${tag}>\n${content}\n</${tag}>`;
|
|
32
|
+
}
|
|
33
|
+
function resolveContent(content) {
|
|
34
|
+
if (typeof content === 'function') {
|
|
35
|
+
const result = content();
|
|
36
|
+
if (result === null || result === undefined || result === '') {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
return content;
|
|
42
|
+
}
|
|
43
|
+
class PromptBuilder {
|
|
44
|
+
sections = [];
|
|
45
|
+
format;
|
|
46
|
+
separator;
|
|
47
|
+
constructor(options = {}) {
|
|
48
|
+
this.format = options.format ?? 'xml';
|
|
49
|
+
this.separator = options.separator ?? '\n\n';
|
|
50
|
+
}
|
|
51
|
+
section(name, content, options = {}) {
|
|
52
|
+
this.sections.push({
|
|
53
|
+
name,
|
|
54
|
+
content,
|
|
55
|
+
options,
|
|
56
|
+
});
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
sectionIf(condition, name, content, options = {}) {
|
|
60
|
+
if (condition) {
|
|
61
|
+
this.sections.push({
|
|
62
|
+
name,
|
|
63
|
+
content,
|
|
64
|
+
options,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
examples(name, examples, formatter, options = {}) {
|
|
70
|
+
const format = formatter ?? defaultExampleFormatter;
|
|
71
|
+
const content = examples.map(format).join('\n\n');
|
|
72
|
+
return this.section(name, content, options);
|
|
73
|
+
}
|
|
74
|
+
examplesIf(condition, name, examples, formatter, options = {}) {
|
|
75
|
+
if (condition) {
|
|
76
|
+
return this.examples(name, examples, formatter, options);
|
|
77
|
+
}
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
withExamples(examples, formatter) {
|
|
81
|
+
const lastSection = this.sections.at(-1);
|
|
82
|
+
if (!lastSection) {
|
|
83
|
+
throw new Error('withExamples() must be called after section()');
|
|
84
|
+
}
|
|
85
|
+
if (examples.length === 0) {
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
const format = formatter ?? defaultExampleFormatter;
|
|
89
|
+
const examplesContent = examples.map(format).join('\n\n');
|
|
90
|
+
const examplesBlock = this.format === 'markdown'
|
|
91
|
+
? `## Examples\n${examplesContent}`
|
|
92
|
+
: `<examples>\n${examplesContent}\n</examples>`;
|
|
93
|
+
const originalContent = lastSection.content;
|
|
94
|
+
lastSection.content = () => {
|
|
95
|
+
const resolved = resolveContent(originalContent);
|
|
96
|
+
if (resolved === null)
|
|
97
|
+
return null;
|
|
98
|
+
return `${resolved}\n\n${examplesBlock}`;
|
|
99
|
+
};
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
merge(other) {
|
|
103
|
+
for (const section of other.sections) {
|
|
104
|
+
this.sections.push({ ...section });
|
|
105
|
+
}
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
build() {
|
|
109
|
+
const formatted = [];
|
|
110
|
+
for (const section of this.sections) {
|
|
111
|
+
const content = resolveContent(section.content);
|
|
112
|
+
if (content === null) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
formatted.push(formatSection(section.name, content, this.format, section.options.tag));
|
|
116
|
+
}
|
|
117
|
+
return formatted.join(this.separator);
|
|
118
|
+
}
|
|
119
|
+
buildAsMessageBlocks() {
|
|
120
|
+
const blocks = [];
|
|
121
|
+
for (const section of this.sections) {
|
|
122
|
+
const content = resolveContent(section.content);
|
|
123
|
+
if (content === null) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const text = formatSection(section.name, content, this.format, section.options.tag);
|
|
127
|
+
const block = { type: 'text', text };
|
|
128
|
+
if (section.options.cache) {
|
|
129
|
+
block.cache_control = { type: 'ephemeral' };
|
|
130
|
+
}
|
|
131
|
+
blocks.push(block);
|
|
132
|
+
}
|
|
133
|
+
return blocks;
|
|
134
|
+
}
|
|
135
|
+
estimateTokens() {
|
|
136
|
+
const text = this.build();
|
|
137
|
+
if (text === '') {
|
|
138
|
+
return 0;
|
|
139
|
+
}
|
|
140
|
+
return Math.ceil(text.length / 4);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.PromptBuilder = PromptBuilder;
|
|
144
|
+
function prompt(options) {
|
|
145
|
+
return new PromptBuilder(options);
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=prompt-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/prompts/builder/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SectionFormat = 'xml' | 'markdown';
|
|
2
|
+
export type ContentOrFactory = string | (() => string | null | undefined);
|
|
3
|
+
export interface SectionOptions {
|
|
4
|
+
tag?: string;
|
|
5
|
+
cache?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface PromptBuilderOptions {
|
|
8
|
+
format?: SectionFormat;
|
|
9
|
+
separator?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SectionEntry {
|
|
12
|
+
name: string;
|
|
13
|
+
content: ContentOrFactory;
|
|
14
|
+
options: SectionOptions;
|
|
15
|
+
}
|
|
16
|
+
export interface MessageBlock {
|
|
17
|
+
type: 'text';
|
|
18
|
+
text: string;
|
|
19
|
+
cache_control?: {
|
|
20
|
+
type: 'ephemeral';
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/prompts/builder/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { PromptTemplate } from '@langchain/core/prompts';
|
|
2
|
+
export declare const examplePrompts: ({
|
|
3
|
+
prompt: string;
|
|
4
|
+
techniques: ("chatbot" | "monitoring" | "content_generation")[];
|
|
5
|
+
} | {
|
|
6
|
+
prompt: string;
|
|
7
|
+
techniques: ("form_input" | "notification" | "human_in_the_loop")[];
|
|
8
|
+
} | {
|
|
9
|
+
prompt: string;
|
|
10
|
+
techniques: ("scheduling" | "scraping_and_research" | "data_extraction" | "data_analysis")[];
|
|
11
|
+
} | {
|
|
12
|
+
prompt: string;
|
|
13
|
+
techniques: ("enrichment" | "document_processing" | "data_extraction" | "data_transformation")[];
|
|
14
|
+
} | {
|
|
15
|
+
prompt: string;
|
|
16
|
+
techniques: ("data_analysis" | "data_transformation" | "knowledge_base")[];
|
|
17
|
+
})[];
|
|
18
|
+
export declare function formatExamplePrompts(): string;
|
|
19
|
+
export declare function formatTechniqueList(): string;
|
|
20
|
+
export declare const promptCategorizationTemplate: PromptTemplate<import("@langchain/core/prompts").ParamsFromFString<`Analyze the following user prompt and identify the workflow techniques required to fulfill the request.
|
|
21
|
+
Be specific and identify all relevant techniques.
|
|
22
|
+
|
|
23
|
+
<user_prompt>
|
|
24
|
+
{userPrompt}
|
|
25
|
+
</user_prompt>
|
|
26
|
+
|
|
27
|
+
<workflow_techniques>
|
|
28
|
+
{techniques}
|
|
29
|
+
</workflow_techniques>
|
|
30
|
+
|
|
31
|
+
The following prompt categorization examples show a prompt \u2192 techniques involved to provide a sense
|
|
32
|
+
of how the categorization should be carried out.
|
|
33
|
+
<example_categorization>
|
|
34
|
+
${string}
|
|
35
|
+
</example_categorization>
|
|
36
|
+
|
|
37
|
+
Select a maximum of 5 techniques that you believe are applicable, but only select them if you are
|
|
38
|
+
confident that they are applicable. If the prompt is ambiguous or does not provide an obvious workflow
|
|
39
|
+
do not provide any techniques - if confidence is low avoid providing techniques.
|
|
40
|
+
|
|
41
|
+
Select ALL techniques that apply to this workflow. Most workflows use multiple techniques.
|
|
42
|
+
Rate your confidence in this categorization from 0.0 to 1.0.
|
|
43
|
+
`>, any>;
|