@n8n/instance-ai 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/instance-agent.js +17 -45
- package/dist/agent/instance-agent.js.map +1 -1
- package/dist/agent/register-with-mastra.d.ts +1 -1
- package/dist/agent/register-with-mastra.js +5 -9
- package/dist/agent/register-with-mastra.js.map +1 -1
- package/dist/agent/sub-agent-briefing.d.ts +20 -0
- package/dist/agent/sub-agent-briefing.js +39 -0
- package/dist/agent/sub-agent-briefing.js.map +1 -0
- package/dist/agent/sub-agent-debriefing.d.ts +71 -0
- package/dist/agent/sub-agent-debriefing.js +39 -0
- package/dist/agent/sub-agent-debriefing.js.map +1 -0
- package/dist/agent/sub-agent-factory.d.ts +1 -1
- package/dist/agent/sub-agent-factory.js +15 -3
- package/dist/agent/sub-agent-factory.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -0
- package/dist/agent/system-prompt.js +67 -43
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/tool-access.d.ts +2 -0
- package/dist/agent/tool-access.js +28 -0
- package/dist/agent/tool-access.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -1
- package/dist/domain-access/domain-gating.d.ts +1 -0
- package/dist/domain-access/domain-gating.js +3 -0
- package/dist/domain-access/domain-gating.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.js +13 -4
- package/dist/index.js.map +1 -1
- package/dist/memory/memory-config.js +1 -3
- package/dist/memory/memory-config.js.map +1 -1
- package/dist/parsers/structured-file-parser.d.ts +56 -0
- package/dist/parsers/structured-file-parser.js +354 -0
- package/dist/parsers/structured-file-parser.js.map +1 -0
- package/dist/planned-tasks/planned-task-service.js +6 -0
- package/dist/planned-tasks/planned-task-service.js.map +1 -1
- package/dist/runtime/background-task-manager.d.ts +2 -1
- package/dist/runtime/background-task-manager.js +13 -1
- package/dist/runtime/background-task-manager.js.map +1 -1
- package/dist/runtime/resumable-stream-executor.d.ts +6 -3
- package/dist/runtime/resumable-stream-executor.js +66 -119
- package/dist/runtime/resumable-stream-executor.js.map +1 -1
- package/dist/runtime/stream-runner.d.ts +2 -2
- package/dist/runtime/stream-runner.js +4 -25
- package/dist/runtime/stream-runner.js.map +1 -1
- package/dist/stream/consume-with-hitl.d.ts +4 -1
- package/dist/stream/consume-with-hitl.js +11 -2
- package/dist/stream/consume-with-hitl.js.map +1 -1
- package/dist/stream/map-chunk.d.ts +1 -1
- package/dist/stream/map-chunk.js +20 -15
- package/dist/stream/map-chunk.js.map +1 -1
- package/dist/stream/work-summary-accumulator.d.ts +63 -0
- package/dist/stream/work-summary-accumulator.js +66 -0
- package/dist/stream/work-summary-accumulator.js.map +1 -0
- package/dist/tools/attachments/parse-file.tool.d.ts +90 -0
- package/dist/tools/attachments/parse-file.tool.js +135 -0
- package/dist/tools/attachments/parse-file.tool.js.map +1 -0
- package/dist/tools/best-practices/get-best-practices.tool.d.ts +6 -9
- package/dist/tools/best-practices/get-best-practices.tool.js +7 -5
- package/dist/tools/best-practices/get-best-practices.tool.js.map +1 -1
- package/dist/tools/best-practices/index.js +5 -29
- package/dist/tools/best-practices/index.js.map +1 -1
- package/dist/tools/best-practices/techniques.d.ts +1 -20
- package/dist/tools/best-practices/techniques.js +3 -36
- package/dist/tools/best-practices/techniques.js.map +1 -1
- package/dist/tools/credentials/delete-credential.tool.d.ts +13 -14
- package/dist/tools/credentials/delete-credential.tool.js +18 -11
- package/dist/tools/credentials/delete-credential.tool.js.map +1 -1
- package/dist/tools/credentials/get-credential.tool.d.ts +8 -2
- package/dist/tools/credentials/get-credential.tool.js +13 -7
- package/dist/tools/credentials/get-credential.tool.js.map +1 -1
- package/dist/tools/credentials/list-credentials.tool.d.ts +13 -3
- package/dist/tools/credentials/list-credentials.tool.js +50 -8
- package/dist/tools/credentials/list-credentials.tool.js.map +1 -1
- package/dist/tools/credentials/search-credential-types.tool.d.ts +7 -3
- package/dist/tools/credentials/search-credential-types.tool.js +7 -5
- package/dist/tools/credentials/search-credential-types.tool.js.map +1 -1
- package/dist/tools/credentials/setup-credentials.tool.d.ts +40 -44
- package/dist/tools/credentials/setup-credentials.tool.js +37 -31
- package/dist/tools/credentials/setup-credentials.tool.js.map +1 -1
- package/dist/tools/credentials/test-credential.tool.d.ts +7 -4
- package/dist/tools/credentials/test-credential.tool.js +5 -3
- package/dist/tools/credentials/test-credential.tool.js.map +1 -1
- package/dist/tools/data-tables/add-data-table-column.tool.d.ts +15 -19
- package/dist/tools/data-tables/add-data-table-column.tool.js +16 -9
- package/dist/tools/data-tables/add-data-table-column.tool.js.map +1 -1
- package/dist/tools/data-tables/create-data-table.tool.d.ts +26 -24
- package/dist/tools/data-tables/create-data-table.tool.js +49 -22
- package/dist/tools/data-tables/create-data-table.tool.js.map +1 -1
- package/dist/tools/data-tables/delete-data-table-column.tool.d.ts +13 -14
- package/dist/tools/data-tables/delete-data-table-column.tool.js +15 -8
- package/dist/tools/data-tables/delete-data-table-column.tool.js.map +1 -1
- package/dist/tools/data-tables/delete-data-table-rows.tool.d.ts +49 -15
- package/dist/tools/data-tables/delete-data-table-rows.tool.js +25 -9
- package/dist/tools/data-tables/delete-data-table-rows.tool.js.map +1 -1
- package/dist/tools/data-tables/delete-data-table.tool.d.ts +11 -14
- package/dist/tools/data-tables/delete-data-table.tool.js +17 -9
- package/dist/tools/data-tables/delete-data-table.tool.js.map +1 -1
- package/dist/tools/data-tables/get-data-table-schema.tool.d.ts +7 -8
- package/dist/tools/data-tables/get-data-table-schema.tool.js +5 -3
- package/dist/tools/data-tables/get-data-table-schema.tool.js.map +1 -1
- package/dist/tools/data-tables/insert-data-table-rows.tool.d.ts +14 -15
- package/dist/tools/data-tables/insert-data-table-rows.tool.js +22 -12
- package/dist/tools/data-tables/insert-data-table-rows.tool.js.map +1 -1
- package/dist/tools/data-tables/list-data-tables.tool.d.ts +7 -3
- package/dist/tools/data-tables/list-data-tables.tool.js +8 -6
- package/dist/tools/data-tables/list-data-tables.tool.js.map +1 -1
- package/dist/tools/data-tables/query-data-table-rows.tool.d.ts +49 -8
- package/dist/tools/data-tables/query-data-table-rows.tool.js +14 -12
- package/dist/tools/data-tables/query-data-table-rows.tool.js.map +1 -1
- package/dist/tools/data-tables/rename-data-table-column.tool.d.ts +15 -14
- package/dist/tools/data-tables/rename-data-table-column.tool.js +16 -9
- package/dist/tools/data-tables/rename-data-table-column.tool.js.map +1 -1
- package/dist/tools/data-tables/update-data-table-rows.tool.d.ts +51 -14
- package/dist/tools/data-tables/update-data-table-rows.tool.js +19 -9
- package/dist/tools/data-tables/update-data-table-rows.tool.js.map +1 -1
- package/dist/tools/executions/debug-execution.tool.d.ts +8 -2
- package/dist/tools/executions/debug-execution.tool.js +5 -3
- package/dist/tools/executions/debug-execution.tool.js.map +1 -1
- package/dist/tools/executions/get-execution.tool.d.ts +8 -2
- package/dist/tools/executions/get-execution.tool.js +5 -3
- package/dist/tools/executions/get-execution.tool.js.map +1 -1
- package/dist/tools/executions/get-node-output.tool.d.ts +14 -2
- package/dist/tools/executions/get-node-output.tool.js +14 -17
- package/dist/tools/executions/get-node-output.tool.js.map +1 -1
- package/dist/tools/executions/list-executions.tool.d.ts +11 -3
- package/dist/tools/executions/list-executions.tool.js +16 -14
- package/dist/tools/executions/list-executions.tool.js.map +1 -1
- package/dist/tools/executions/run-workflow.tool.d.ts +17 -15
- package/dist/tools/executions/run-workflow.tool.js +35 -25
- package/dist/tools/executions/run-workflow.tool.js.map +1 -1
- package/dist/tools/executions/stop-execution.tool.d.ts +7 -4
- package/dist/tools/executions/stop-execution.tool.js +8 -3
- package/dist/tools/executions/stop-execution.tool.js.map +1 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.js +2 -1
- package/dist/tools/filesystem/create-tools-from-mcp-server.js.map +1 -1
- package/dist/tools/index.d.ts +67 -2380
- package/dist/tools/index.js +9 -15
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/nodes/explore-node-resources.tool.d.ts +23 -10
- package/dist/tools/nodes/explore-node-resources.tool.js +27 -25
- package/dist/tools/nodes/explore-node-resources.tool.js.map +1 -1
- package/dist/tools/nodes/get-node-description.tool.d.ts +7 -20
- package/dist/tools/nodes/get-node-description.tool.js +5 -3
- package/dist/tools/nodes/get-node-description.tool.js.map +1 -1
- package/dist/tools/nodes/get-node-type-definition.tool.d.ts +29 -6
- package/dist/tools/nodes/get-node-type-definition.tool.js +9 -7
- package/dist/tools/nodes/get-node-type-definition.tool.js.map +1 -1
- package/dist/tools/nodes/get-suggested-nodes.tool.d.ts +7 -12
- package/dist/tools/nodes/get-suggested-nodes.tool.js +9 -7
- package/dist/tools/nodes/get-suggested-nodes.tool.js.map +1 -1
- package/dist/tools/nodes/list-nodes.tool.d.ts +7 -3
- package/dist/tools/nodes/list-nodes.tool.js +8 -6
- package/dist/tools/nodes/list-nodes.tool.js.map +1 -1
- package/dist/tools/nodes/node-search-engine.d.ts +1 -0
- package/dist/tools/nodes/node-search-engine.js +12 -9
- package/dist/tools/nodes/node-search-engine.js.map +1 -1
- package/dist/tools/nodes/search-nodes.tool.d.ts +12 -24
- package/dist/tools/nodes/search-nodes.tool.js +21 -17
- package/dist/tools/nodes/search-nodes.tool.js.map +1 -1
- package/dist/tools/orchestration/add-plan-item.tool.d.ts +5 -0
- package/dist/tools/orchestration/add-plan-item.tool.js +91 -0
- package/dist/tools/orchestration/add-plan-item.tool.js.map +1 -0
- package/dist/tools/orchestration/blueprint-accumulator.d.ts +50 -0
- package/dist/tools/orchestration/blueprint-accumulator.js +215 -0
- package/dist/tools/orchestration/blueprint-accumulator.js.map +1 -0
- package/dist/tools/orchestration/blueprint.schema.d.ts +271 -0
- package/dist/tools/orchestration/blueprint.schema.js +61 -0
- package/dist/tools/orchestration/blueprint.schema.js.map +1 -0
- package/dist/tools/orchestration/browser-credential-setup.tool.d.ts +15 -12
- package/dist/tools/orchestration/browser-credential-setup.tool.js +26 -21
- package/dist/tools/orchestration/browser-credential-setup.tool.js.map +1 -1
- package/dist/tools/orchestration/build-workflow-agent.prompt.d.ts +1 -1
- package/dist/tools/orchestration/build-workflow-agent.prompt.js +43 -149
- package/dist/tools/orchestration/build-workflow-agent.prompt.js.map +1 -1
- package/dist/tools/orchestration/build-workflow-agent.tool.d.ts +11 -4
- package/dist/tools/orchestration/build-workflow-agent.tool.js +50 -82
- package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/cancel-background-task.tool.d.ts +7 -3
- package/dist/tools/orchestration/cancel-background-task.tool.js +5 -3
- package/dist/tools/orchestration/cancel-background-task.tool.js.map +1 -1
- package/dist/tools/orchestration/correct-background-task.tool.d.ts +9 -3
- package/dist/tools/orchestration/correct-background-task.tool.js +8 -6
- package/dist/tools/orchestration/correct-background-task.tool.js.map +1 -1
- package/dist/tools/orchestration/data-table-agent.prompt.d.ts +1 -1
- package/dist/tools/orchestration/data-table-agent.prompt.js +20 -0
- package/dist/tools/orchestration/data-table-agent.prompt.js.map +1 -1
- package/dist/tools/orchestration/data-table-agent.tool.d.ts +9 -4
- package/dist/tools/orchestration/data-table-agent.tool.js +22 -25
- package/dist/tools/orchestration/data-table-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/delegate.schemas.d.ts +12 -0
- package/dist/tools/orchestration/delegate.schemas.js +17 -0
- package/dist/tools/orchestration/delegate.schemas.js.map +1 -1
- package/dist/tools/orchestration/delegate.tool.d.ts +1 -10
- package/dist/tools/orchestration/delegate.tool.js +40 -41
- package/dist/tools/orchestration/delegate.tool.js.map +1 -1
- package/dist/tools/orchestration/plan-agent-prompt.d.ts +1 -0
- package/dist/tools/orchestration/plan-agent-prompt.js +76 -0
- package/dist/tools/orchestration/plan-agent-prompt.js.map +1 -0
- package/dist/tools/orchestration/plan-with-agent.tool.d.ts +2 -0
- package/dist/tools/orchestration/plan-with-agent.tool.js +277 -0
- package/dist/tools/orchestration/plan-with-agent.tool.js.map +1 -0
- package/dist/tools/orchestration/plan.tool.d.ts +7 -39
- package/dist/tools/orchestration/plan.tool.js +15 -13
- package/dist/tools/orchestration/plan.tool.js.map +1 -1
- package/dist/tools/orchestration/report-verification-verdict.tool.d.ts +23 -3
- package/dist/tools/orchestration/report-verification-verdict.tool.js +27 -28
- package/dist/tools/orchestration/report-verification-verdict.tool.js.map +1 -1
- package/dist/tools/orchestration/research-with-agent.tool.d.ts +11 -4
- package/dist/tools/orchestration/research-with-agent.tool.js +25 -21
- package/dist/tools/orchestration/research-with-agent.tool.js.map +1 -1
- package/dist/tools/orchestration/submit-plan.tool.d.ts +3 -0
- package/dist/tools/orchestration/submit-plan.tool.js +81 -0
- package/dist/tools/orchestration/submit-plan.tool.js.map +1 -0
- package/dist/tools/orchestration/update-tasks.tool.d.ts +1 -9
- package/dist/tools/orchestration/update-tasks.tool.js.map +1 -1
- package/dist/tools/orchestration/verify-built-workflow.tool.d.ts +13 -7
- package/dist/tools/orchestration/verify-built-workflow.tool.js +14 -15
- package/dist/tools/orchestration/verify-built-workflow.tool.js.map +1 -1
- package/dist/tools/shared/ask-user.tool.d.ts +42 -31
- package/dist/tools/shared/ask-user.tool.js +16 -15
- package/dist/tools/shared/ask-user.tool.js.map +1 -1
- package/dist/tools/templates/search-template-parameters.tool.d.ts +14 -7
- package/dist/tools/templates/search-template-parameters.tool.js +17 -15
- package/dist/tools/templates/search-template-parameters.tool.js.map +1 -1
- package/dist/tools/templates/search-template-structures.tool.d.ts +11 -8
- package/dist/tools/templates/search-template-structures.tool.js +13 -11
- package/dist/tools/templates/search-template-structures.tool.js.map +1 -1
- package/dist/tools/web-research/fetch-url.tool.d.ts +9 -23
- package/dist/tools/web-research/fetch-url.tool.js +30 -14
- package/dist/tools/web-research/fetch-url.tool.js.map +1 -1
- package/dist/tools/web-research/web-search.tool.d.ts +12 -2
- package/dist/tools/web-research/web-search.tool.js +20 -18
- package/dist/tools/web-research/web-search.tool.js.map +1 -1
- package/dist/tools/workflows/apply-workflow-credentials.tool.d.ts +11 -5
- package/dist/tools/workflows/apply-workflow-credentials.tool.js +7 -5
- package/dist/tools/workflows/apply-workflow-credentials.tool.js.map +1 -1
- package/dist/tools/workflows/build-workflow.tool.d.ts +26 -5
- package/dist/tools/workflows/build-workflow.tool.js +23 -20
- package/dist/tools/workflows/build-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/delete-workflow.tool.d.ts +13 -14
- package/dist/tools/workflows/delete-workflow.tool.js +15 -11
- package/dist/tools/workflows/delete-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/get-workflow-as-code.tool.d.ts +6 -10
- package/dist/tools/workflows/get-workflow-as-code.tool.js +5 -3
- package/dist/tools/workflows/get-workflow-as-code.tool.js.map +1 -1
- package/dist/tools/workflows/get-workflow-version.tool.d.ts +8 -16
- package/dist/tools/workflows/get-workflow-version.tool.js +6 -4
- package/dist/tools/workflows/get-workflow-version.tool.js.map +1 -1
- package/dist/tools/workflows/get-workflow.tool.d.ts +7 -15
- package/dist/tools/workflows/get-workflow.tool.js +5 -3
- package/dist/tools/workflows/get-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/list-workflow-versions.tool.d.ts +11 -3
- package/dist/tools/workflows/list-workflow-versions.tool.js +13 -11
- package/dist/tools/workflows/list-workflow-versions.tool.js.map +1 -1
- package/dist/tools/workflows/list-workflows.tool.d.ts +9 -10
- package/dist/tools/workflows/list-workflows.tool.js +12 -10
- package/dist/tools/workflows/list-workflows.tool.js.map +1 -1
- package/dist/tools/workflows/materialize-node-type.tool.d.ts +29 -11
- package/dist/tools/workflows/materialize-node-type.tool.js +9 -7
- package/dist/tools/workflows/materialize-node-type.tool.js.map +1 -1
- package/dist/tools/workflows/publish-workflow.tool.d.ts +6 -20
- package/dist/tools/workflows/publish-workflow.tool.js +29 -24
- package/dist/tools/workflows/publish-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/restore-workflow-version.tool.d.ts +13 -15
- package/dist/tools/workflows/restore-workflow-version.tool.js +15 -8
- package/dist/tools/workflows/restore-workflow-version.tool.js.map +1 -1
- package/dist/tools/workflows/setup-workflow.service.d.ts +0 -1
- package/dist/tools/workflows/setup-workflow.service.js +23 -6
- package/dist/tools/workflows/setup-workflow.service.js.map +1 -1
- package/dist/tools/workflows/setup-workflow.tool.d.ts +7 -144
- package/dist/tools/workflows/setup-workflow.tool.js +10 -14
- package/dist/tools/workflows/setup-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/submit-workflow.tool.d.ts +12 -9
- package/dist/tools/workflows/submit-workflow.tool.js +15 -17
- package/dist/tools/workflows/submit-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/unpublish-workflow.tool.d.ts +13 -15
- package/dist/tools/workflows/unpublish-workflow.tool.js +15 -11
- package/dist/tools/workflows/unpublish-workflow.tool.js.map +1 -1
- package/dist/tools/workflows/update-workflow-version.tool.d.ts +13 -3
- package/dist/tools/workflows/update-workflow-version.tool.js +12 -10
- package/dist/tools/workflows/update-workflow-version.tool.js.map +1 -1
- package/dist/tools/workflows/write-sandbox-file.tool.d.ts +9 -9
- package/dist/tools/workflows/write-sandbox-file.tool.js +8 -6
- package/dist/tools/workflows/write-sandbox-file.tool.js.map +1 -1
- package/dist/tools/workspace/cleanup-test-executions.tool.d.ts +15 -14
- package/dist/tools/workspace/cleanup-test-executions.tool.js +19 -15
- package/dist/tools/workspace/cleanup-test-executions.tool.js.map +1 -1
- package/dist/tools/workspace/create-folder.tool.d.ts +15 -16
- package/dist/tools/workspace/create-folder.tool.js +25 -12
- package/dist/tools/workspace/create-folder.tool.js.map +1 -1
- package/dist/tools/workspace/delete-folder.tool.d.ts +19 -14
- package/dist/tools/workspace/delete-folder.tool.js +24 -17
- package/dist/tools/workspace/delete-folder.tool.js.map +1 -1
- package/dist/tools/workspace/list-folders.tool.d.ts +7 -3
- package/dist/tools/workspace/list-folders.tool.js +5 -3
- package/dist/tools/workspace/list-folders.tool.js.map +1 -1
- package/dist/tools/workspace/list-projects.tool.d.ts +3 -3
- package/dist/tools/workspace/list-projects.tool.js +3 -1
- package/dist/tools/workspace/list-projects.tool.js.map +1 -1
- package/dist/tools/workspace/list-tags.tool.d.ts +3 -6
- package/dist/tools/workspace/list-tags.tool.js +3 -1
- package/dist/tools/workspace/list-tags.tool.js.map +1 -1
- package/dist/tools/workspace/move-workflow-to-folder.tool.d.ts +17 -14
- package/dist/tools/workspace/move-workflow-to-folder.tool.js +20 -16
- package/dist/tools/workspace/move-workflow-to-folder.tool.js.map +1 -1
- package/dist/tools/workspace/tag-workflow.tool.d.ts +15 -14
- package/dist/tools/workspace/tag-workflow.tool.js +16 -12
- package/dist/tools/workspace/tag-workflow.tool.js.map +1 -1
- package/dist/tracing/langsmith-tracing.d.ts +1 -0
- package/dist/tracing/langsmith-tracing.js +47 -57
- package/dist/tracing/langsmith-tracing.js.map +1 -1
- package/dist/types.d.ts +24 -50
- package/dist/utils/eval-agents.d.ts +10 -0
- package/dist/utils/eval-agents.js +54 -0
- package/dist/utils/eval-agents.js.map +1 -0
- package/dist/workflow-builder/sdk-prompt-sections.d.ts +1 -4
- package/dist/workflow-builder/sdk-prompt-sections.js +5 -513
- package/dist/workflow-builder/sdk-prompt-sections.js.map +1 -1
- package/dist/workflow-loop/guidance.js +3 -5
- package/dist/workflow-loop/guidance.js.map +1 -1
- package/dist/workspace/daytona-filesystem.js +15 -1
- package/dist/workspace/daytona-filesystem.js.map +1 -1
- package/package.json +15 -9
- package/dist/memory/working-memory-template.d.ts +0 -1
- package/dist/memory/working-memory-template.js +0 -25
- package/dist/memory/working-memory-template.js.map +0 -1
- package/dist/runtime/working-memory-tracing.d.ts +0 -19
- package/dist/runtime/working-memory-tracing.js +0 -111
- package/dist/runtime/working-memory-tracing.js.map +0 -1
- package/dist/tools/best-practices/guides/chatbot.d.ts +0 -1
- package/dist/tools/best-practices/guides/chatbot.js +0 -111
- package/dist/tools/best-practices/guides/chatbot.js.map +0 -1
- package/dist/tools/best-practices/guides/content-generation.d.ts +0 -1
- package/dist/tools/best-practices/guides/content-generation.js +0 -108
- package/dist/tools/best-practices/guides/content-generation.js.map +0 -1
- package/dist/tools/best-practices/guides/data-extraction.d.ts +0 -1
- package/dist/tools/best-practices/guides/data-extraction.js +0 -115
- package/dist/tools/best-practices/guides/data-extraction.js.map +0 -1
- package/dist/tools/best-practices/guides/data-persistence.d.ts +0 -1
- package/dist/tools/best-practices/guides/data-persistence.js +0 -198
- package/dist/tools/best-practices/guides/data-persistence.js.map +0 -1
- package/dist/tools/best-practices/guides/data-transformation.d.ts +0 -1
- package/dist/tools/best-practices/guides/data-transformation.js +0 -139
- package/dist/tools/best-practices/guides/data-transformation.js.map +0 -1
- package/dist/tools/best-practices/guides/document-processing.d.ts +0 -1
- package/dist/tools/best-practices/guides/document-processing.js +0 -326
- package/dist/tools/best-practices/guides/document-processing.js.map +0 -1
- package/dist/tools/best-practices/guides/form-input.d.ts +0 -1
- package/dist/tools/best-practices/guides/form-input.js +0 -166
- package/dist/tools/best-practices/guides/form-input.js.map +0 -1
- package/dist/tools/best-practices/guides/notification.d.ts +0 -1
- package/dist/tools/best-practices/guides/notification.js +0 -128
- package/dist/tools/best-practices/guides/notification.js.map +0 -1
- package/dist/tools/best-practices/guides/scheduling.d.ts +0 -1
- package/dist/tools/best-practices/guides/scheduling.js +0 -145
- package/dist/tools/best-practices/guides/scheduling.js.map +0 -1
- package/dist/tools/best-practices/guides/scraping-and-research.d.ts +0 -1
- package/dist/tools/best-practices/guides/scraping-and-research.js +0 -151
- package/dist/tools/best-practices/guides/scraping-and-research.js.map +0 -1
- package/dist/tools/best-practices/guides/triage.d.ts +0 -1
- package/dist/tools/best-practices/guides/triage.js +0 -142
- package/dist/tools/best-practices/guides/triage.js.map +0 -1
- package/dist/tools/filesystem/get-file-tree.tool.d.ts +0 -22
- package/dist/tools/filesystem/get-file-tree.tool.js +0 -64
- package/dist/tools/filesystem/get-file-tree.tool.js.map +0 -1
- package/dist/tools/filesystem/list-files.tool.d.ts +0 -30
- package/dist/tools/filesystem/list-files.tool.js +0 -100
- package/dist/tools/filesystem/list-files.tool.js.map +0 -1
- package/dist/tools/filesystem/read-file.tool.d.ts +0 -25
- package/dist/tools/filesystem/read-file.tool.js +0 -83
- package/dist/tools/filesystem/read-file.tool.js.map +0 -1
- package/dist/tools/filesystem/search-files.tool.d.ts +0 -31
- package/dist/tools/filesystem/search-files.tool.js +0 -96
- package/dist/tools/filesystem/search-files.tool.js.map +0 -1
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDocumentation = getDocumentation;
|
|
4
|
-
function getDocumentation() {
|
|
5
|
-
return `# Best Practices: Triage Workflows
|
|
6
|
-
|
|
7
|
-
## Workflow Design
|
|
8
|
-
|
|
9
|
-
Triage workflows automatically classify incoming data and route it based on priority or category. Common use cases include sorting support tickets by urgency, categorizing emails for follow-up, or scoring leads for sales routing.
|
|
10
|
-
|
|
11
|
-
Define clear categories and outcomes before building. Design in logical stages:
|
|
12
|
-
|
|
13
|
-
1. **Trigger & Input**: Capture incoming items (webhook, email trigger, form submission, schedule)
|
|
14
|
-
2. **Preprocessing**: Fetch additional data if needed (CRM lookup, field normalization)
|
|
15
|
-
3. **Classification**: Assign categories via rules or AI
|
|
16
|
-
4. **Routing**: Direct items to appropriate branches using Switch node or Text Classifier Node
|
|
17
|
-
5. **Actions**: Execute category-specific tasks (create tasks, send alerts, update records)
|
|
18
|
-
6. **Logging**: Track outcomes for monitoring and analysis
|
|
19
|
-
|
|
20
|
-
Include a default/fallback path to catch unclassified items so data is tracked rather than dropped silently.
|
|
21
|
-
|
|
22
|
-
## Classification Strategies
|
|
23
|
-
|
|
24
|
-
### Rule-Based Classification
|
|
25
|
-
Use IF/Switch nodes for keyword detection, sender addresses, or numeric thresholds. Chain multiple conditions or use Switch for multi-way branching.
|
|
26
|
-
|
|
27
|
-
Example: IF email contains "urgent" -> High Priority branch
|
|
28
|
-
|
|
29
|
-
### AI-Powered Classification
|
|
30
|
-
For unstructured text or nuanced decisions, use AI nodes with clear prompts and defined output labels.
|
|
31
|
-
|
|
32
|
-
Example prompt: "Classify this email as INTERESTED, NOT_INTERESTED, or QUESTION"
|
|
33
|
-
|
|
34
|
-
Best practices:
|
|
35
|
-
- Use structured output format (JSON with specific fields)
|
|
36
|
-
- Set low temperature parameter of the model (0-0.2) for consistency
|
|
37
|
-
- Include few-shot examples of input + classification
|
|
38
|
-
- Implement error handling for unexpected outputs
|
|
39
|
-
|
|
40
|
-
#### Text Classifier Node
|
|
41
|
-
Use the Text Classifier node (@n8n/n8n-nodes-langchain.textClassifier) for straightforward text classification tasks. Configure with predefined category labels and descriptions for accurate results.
|
|
42
|
-
|
|
43
|
-
Example workflow pattern:
|
|
44
|
-
\`\`\`mermaid
|
|
45
|
-
flowchart LR
|
|
46
|
-
A[Webhook Trigger] --> B[Set: Normalize Data]
|
|
47
|
-
B --> C[Text Classifier]
|
|
48
|
-
C --> D{Switch: Route by Category}
|
|
49
|
-
D -->|High Priority| E[Slack: Alert Team]
|
|
50
|
-
D -->|Medium Priority| F[Create Task]
|
|
51
|
-
D -->|Low Priority| G[Log to Sheet]
|
|
52
|
-
D -->|Default| H[Manual Review]
|
|
53
|
-
\`\`\`
|
|
54
|
-
|
|
55
|
-
### Combined Approach
|
|
56
|
-
For robust triage, combine rule-based and AI classification. Use AI Agent node with structured output to assign categories, scores, or tags, then route with Switch nodes.
|
|
57
|
-
When using AI with structured output, always add reasoning field alongside category or score to aid debugging.
|
|
58
|
-
|
|
59
|
-
Example workflow pattern:
|
|
60
|
-
\`\`\`mermaid
|
|
61
|
-
flowchart LR
|
|
62
|
-
A[Email Trigger] --> B[Set: Extract Fields]
|
|
63
|
-
B --> C{IF: Contains Keywords}
|
|
64
|
-
C -->|Yes| D[Set: Rule-based Category]
|
|
65
|
-
C -->|No| E[AI Agent: Classify with Structured Output]
|
|
66
|
-
D --> F[Merge]
|
|
67
|
-
E --> F
|
|
68
|
-
F --> G{Switch: Route by Category}
|
|
69
|
-
G -->|Category A| H[Action A]
|
|
70
|
-
G -->|Category B| I[Action B]
|
|
71
|
-
G -->|Default| J[Manual Review]
|
|
72
|
-
\`\`\`
|
|
73
|
-
|
|
74
|
-
**Structured Output Schema Example:**
|
|
75
|
-
\`\`\`json
|
|
76
|
-
{
|
|
77
|
-
"category": "INTERESTED | NOT_INTERESTED | QUESTION",
|
|
78
|
-
"confidence": 0.95,
|
|
79
|
-
"reasoning": "Customer asked about pricing and availability"
|
|
80
|
-
}
|
|
81
|
-
\`\`\`
|
|
82
|
-
|
|
83
|
-
## Routing & Branching
|
|
84
|
-
|
|
85
|
-
Use Switch node as primary traffic controller:
|
|
86
|
-
- Configure cases for each classification value
|
|
87
|
-
- Always define Default case for unexpected values
|
|
88
|
-
- Each item follows exactly one branch
|
|
89
|
-
|
|
90
|
-
Avoid parallel IF nodes that could match multiple conditions - use Switch node.
|
|
91
|
-
|
|
92
|
-
## Recommended Nodes
|
|
93
|
-
|
|
94
|
-
**IF** (n8n-nodes-base.if):
|
|
95
|
-
- Purpose: Simple binary decisions
|
|
96
|
-
- Use when: Two-way branching based on conditions
|
|
97
|
-
- Example: Check if priority field equals "high"
|
|
98
|
-
|
|
99
|
-
**Switch** (n8n-nodes-base.switch):
|
|
100
|
-
- Purpose: Multi-way branching based on field values
|
|
101
|
-
- Use when: Multiple categories (3+ outcomes)
|
|
102
|
-
- Configure Default output for unmatched items
|
|
103
|
-
|
|
104
|
-
**Merge** (n8n-nodes-base.merge):
|
|
105
|
-
- Purpose: Consolidate branches for unified logging
|
|
106
|
-
- Use after: Category-specific actions before final logging step
|
|
107
|
-
|
|
108
|
-
**Text Classifier** (@n8n/n8n-nodes-langchain.textClassifier):
|
|
109
|
-
- Purpose: AI-powered text classification with predefined labels
|
|
110
|
-
- Use when: Need to assign categories to unstructured text
|
|
111
|
-
- Configure "When No Clear Match" option to output items to "Other" branch
|
|
112
|
-
|
|
113
|
-
**AI Agent** (@n8n/n8n-nodes-langchain.agent):
|
|
114
|
-
- Purpose: Complex classification or scoring requiring multiple steps or tool use
|
|
115
|
-
- Use when: Classification needs context lookup, multi-step reasoning with tools, numerical scoring or other complex outputs
|
|
116
|
-
- Use structured output format (JSON schema)
|
|
117
|
-
|
|
118
|
-
For all AI nodes (Text Classifier, AI Agent):
|
|
119
|
-
- Set low temperature of the model (0-0.2) for consistency
|
|
120
|
-
- Include few-shot examples in prompts
|
|
121
|
-
|
|
122
|
-
## Common Pitfalls to Avoid
|
|
123
|
-
|
|
124
|
-
### No Default Path
|
|
125
|
-
**Problem**: Every Switch must have a Default output. Unmatched items should go to manual review or logging, never drop silently.
|
|
126
|
-
|
|
127
|
-
**Solution**: Always configure Default case to route unclassified items to a fallback action (e.g., manual review queue, admin notification)
|
|
128
|
-
|
|
129
|
-
### No "Other" Branch in Text Classifier
|
|
130
|
-
**Problem**: Items that don't match any category get dropped if "When No Clear Match" isn't set.
|
|
131
|
-
|
|
132
|
-
**Solution**: In Text Classifier node, set "When No Clear Match" to "Output on Extra, 'Other' Branch" to capture unmatched items.
|
|
133
|
-
|
|
134
|
-
### Overlapping Conditions
|
|
135
|
-
**Problem**: Categories must be mutually exclusive. Items matching multiple conditions cause unpredictable routing.
|
|
136
|
-
|
|
137
|
-
**Solution**:
|
|
138
|
-
- Order checks from most specific to general
|
|
139
|
-
- Use Switch with distinct values instead of multiple IF nodes
|
|
140
|
-
`;
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=triage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../../../src/tools/best-practices/guides/triage.ts"],"names":[],"mappings":";;AAAA,4CAyIC;AAzID,SAAgB,gBAAgB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuIP,CAAC;AACF,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { InstanceAiContext } from '../../types';
|
|
2
|
-
export declare function createGetFileTreeTool(context: InstanceAiContext): import("@mastra/core/tools").Tool<{
|
|
3
|
-
dirPath: string;
|
|
4
|
-
maxDepth?: number | undefined;
|
|
5
|
-
}, {
|
|
6
|
-
tree: string;
|
|
7
|
-
truncated: boolean;
|
|
8
|
-
denied?: boolean | undefined;
|
|
9
|
-
reason?: string | undefined;
|
|
10
|
-
}, {
|
|
11
|
-
message: string;
|
|
12
|
-
requestId: string;
|
|
13
|
-
severity: "destructive" | "warning" | "info";
|
|
14
|
-
}, {
|
|
15
|
-
approved: boolean;
|
|
16
|
-
}, import("@mastra/core/tools").ToolExecutionContext<{
|
|
17
|
-
message: string;
|
|
18
|
-
requestId: string;
|
|
19
|
-
severity: "destructive" | "warning" | "info";
|
|
20
|
-
}, {
|
|
21
|
-
approved: boolean;
|
|
22
|
-
}, unknown>, "get-file-tree", unknown>;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createGetFileTreeTool = createGetFileTreeTool;
|
|
4
|
-
const tools_1 = require("@mastra/core/tools");
|
|
5
|
-
const api_types_1 = require("@n8n/api-types");
|
|
6
|
-
const nanoid_1 = require("nanoid");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
function createGetFileTreeTool(context) {
|
|
9
|
-
return (0, tools_1.createTool)({
|
|
10
|
-
id: 'get-file-tree',
|
|
11
|
-
description: 'Get a shallow directory tree. Start at depth 1-2 for an overview, then call again on specific subdirectories to drill deeper. Always use absolute paths or ~/relative paths.',
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
dirPath: zod_1.z
|
|
14
|
-
.string()
|
|
15
|
-
.describe('Absolute directory path or ~/relative path (e.g. "/home/user/project" or "~/project/src"). Call with subdirectory paths to explore deeper.'),
|
|
16
|
-
maxDepth: zod_1.z
|
|
17
|
-
.number()
|
|
18
|
-
.int()
|
|
19
|
-
.positive()
|
|
20
|
-
.max(5)
|
|
21
|
-
.default(2)
|
|
22
|
-
.optional()
|
|
23
|
-
.describe('Maximum directory depth to show (default 2, max 5). Start low and increase only if needed.'),
|
|
24
|
-
}),
|
|
25
|
-
outputSchema: zod_1.z.object({
|
|
26
|
-
tree: zod_1.z.string().describe('Directory tree as indented text'),
|
|
27
|
-
truncated: zod_1.z.boolean(),
|
|
28
|
-
denied: zod_1.z.boolean().optional(),
|
|
29
|
-
reason: zod_1.z.string().optional(),
|
|
30
|
-
}),
|
|
31
|
-
suspendSchema: zod_1.z.object({
|
|
32
|
-
requestId: zod_1.z.string(),
|
|
33
|
-
message: zod_1.z.string(),
|
|
34
|
-
severity: api_types_1.instanceAiConfirmationSeveritySchema,
|
|
35
|
-
}),
|
|
36
|
-
resumeSchema: zod_1.z.object({
|
|
37
|
-
approved: zod_1.z.boolean(),
|
|
38
|
-
}),
|
|
39
|
-
execute: async ({ dirPath, maxDepth }, ctx) => {
|
|
40
|
-
const { resumeData, suspend } = ctx?.agent ?? {};
|
|
41
|
-
const needsApproval = context.permissions?.readFilesystem !== 'always_allow';
|
|
42
|
-
if (needsApproval && (resumeData === undefined || resumeData === null)) {
|
|
43
|
-
await suspend?.({
|
|
44
|
-
requestId: (0, nanoid_1.nanoid)(),
|
|
45
|
-
message: `Read filesystem tree at "${dirPath}"?`,
|
|
46
|
-
severity: 'info',
|
|
47
|
-
});
|
|
48
|
-
return { tree: '', truncated: false };
|
|
49
|
-
}
|
|
50
|
-
if (resumeData !== undefined && resumeData !== null && !resumeData.approved) {
|
|
51
|
-
return { tree: '', truncated: false, denied: true, reason: 'User denied the action' };
|
|
52
|
-
}
|
|
53
|
-
if (!context.filesystemService) {
|
|
54
|
-
throw new Error('No filesystem access available.');
|
|
55
|
-
}
|
|
56
|
-
const tree = await context.filesystemService.getFileTree(dirPath, {
|
|
57
|
-
maxDepth: maxDepth ?? 2,
|
|
58
|
-
});
|
|
59
|
-
const truncated = tree.includes('call get-file-tree on a subdirectory') || tree.includes('... (truncated at');
|
|
60
|
-
return { tree, truncated };
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=get-file-tree.tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-file-tree.tool.js","sourceRoot":"","sources":["../../../src/tools/filesystem/get-file-tree.tool.ts"],"names":[],"mappings":";;AAOA,sDAiEC;AAxED,8CAAgD;AAChD,8CAAsE;AACtE,mCAAgC;AAChC,6BAAwB;AAIxB,SAAgB,qBAAqB,CAAC,OAA0B;IAC/D,OAAO,IAAA,kBAAU,EAAC;QACjB,EAAE,EAAE,eAAe;QACnB,WAAW,EACV,8KAA8K;QAC/K,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CACR,4IAA4I,CAC5I;YACF,QAAQ,EAAE,OAAC;iBACT,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,QAAQ,EAAE;iBACV,GAAG,CAAC,CAAC,CAAC;iBACN,OAAO,CAAC,CAAC,CAAC;iBACV,QAAQ,EAAE;iBACV,QAAQ,CACR,4FAA4F,CAC5F;SACF,CAAC;QACF,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC5D,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,CAAC;QACF,aAAa,EAAE,OAAC,CAAC,MAAM,CAAC;YACvB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,gDAAoC;SAC9C,CAAC;QACF,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC;YACtB,QAAQ,EAAE,OAAC,CAAC,OAAO,EAAE;SACrB,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE;YAC7C,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,KAAK,cAAc,CAAC;YAE7E,IAAI,aAAa,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;gBACxE,MAAM,OAAO,EAAE,CAAC;oBACf,SAAS,EAAE,IAAA,eAAM,GAAE;oBACnB,OAAO,EAAE,4BAA4B,OAAO,IAAI;oBAChD,QAAQ,EAAE,MAAe;iBACzB,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACvC,CAAC;YAED,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBAC7E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;YACvF,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;gBACjE,QAAQ,EAAE,QAAQ,IAAI,CAAC;aACvB,CAAC,CAAC;YACH,MAAM,SAAS,GACd,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAE7F,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5B,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { InstanceAiContext } from '../../types';
|
|
2
|
-
export declare function createListFilesTool(context: InstanceAiContext): import("@mastra/core/tools").Tool<{
|
|
3
|
-
dirPath: string;
|
|
4
|
-
type?: "directory" | "file" | "all" | undefined;
|
|
5
|
-
recursive?: boolean | undefined;
|
|
6
|
-
pattern?: string | undefined;
|
|
7
|
-
maxResults?: number | undefined;
|
|
8
|
-
}, {
|
|
9
|
-
files: {
|
|
10
|
-
type: "directory" | "file";
|
|
11
|
-
path: string;
|
|
12
|
-
sizeBytes?: number | undefined;
|
|
13
|
-
}[];
|
|
14
|
-
truncated: boolean;
|
|
15
|
-
totalCount: number;
|
|
16
|
-
denied?: boolean | undefined;
|
|
17
|
-
reason?: string | undefined;
|
|
18
|
-
}, {
|
|
19
|
-
message: string;
|
|
20
|
-
requestId: string;
|
|
21
|
-
severity: "destructive" | "warning" | "info";
|
|
22
|
-
}, {
|
|
23
|
-
approved: boolean;
|
|
24
|
-
}, import("@mastra/core/tools").ToolExecutionContext<{
|
|
25
|
-
message: string;
|
|
26
|
-
requestId: string;
|
|
27
|
-
severity: "destructive" | "warning" | "info";
|
|
28
|
-
}, {
|
|
29
|
-
approved: boolean;
|
|
30
|
-
}, unknown>, "list-files", unknown>;
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createListFilesTool = createListFilesTool;
|
|
4
|
-
const tools_1 = require("@mastra/core/tools");
|
|
5
|
-
const api_types_1 = require("@n8n/api-types");
|
|
6
|
-
const nanoid_1 = require("nanoid");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
function createListFilesTool(context) {
|
|
9
|
-
return (0, tools_1.createTool)({
|
|
10
|
-
id: 'list-files',
|
|
11
|
-
description: "List files and/or directories matching optional filters. Use this to explore what exists in a directory. To see only top-level folders, set type='directory' and recursive=false. Always use absolute paths or ~/relative paths.",
|
|
12
|
-
inputSchema: zod_1.z.object({
|
|
13
|
-
dirPath: zod_1.z
|
|
14
|
-
.string()
|
|
15
|
-
.describe('Absolute directory path or ~/relative path (e.g. "/home/user/project" or "~/project"). Do NOT use bare relative paths.'),
|
|
16
|
-
pattern: zod_1.z
|
|
17
|
-
.string()
|
|
18
|
-
.optional()
|
|
19
|
-
.describe('Glob pattern to filter files (e.g. "**/*.ts", "src/**/*.json")'),
|
|
20
|
-
type: zod_1.z
|
|
21
|
-
.enum(['file', 'directory', 'all'])
|
|
22
|
-
.default('all')
|
|
23
|
-
.optional()
|
|
24
|
-
.describe('Filter by entry type: "file" for files only, "directory" for folders only, "all" for both (default "all")'),
|
|
25
|
-
recursive: zod_1.z
|
|
26
|
-
.boolean()
|
|
27
|
-
.default(true)
|
|
28
|
-
.optional()
|
|
29
|
-
.describe('Whether to recurse into subdirectories (default true). Set to false for a shallow listing of immediate children only.'),
|
|
30
|
-
maxResults: zod_1.z
|
|
31
|
-
.number()
|
|
32
|
-
.int()
|
|
33
|
-
.positive()
|
|
34
|
-
.max(1000)
|
|
35
|
-
.default(200)
|
|
36
|
-
.optional()
|
|
37
|
-
.describe('Maximum number of results to return (default 200, max 1000)'),
|
|
38
|
-
}),
|
|
39
|
-
outputSchema: zod_1.z.object({
|
|
40
|
-
files: zod_1.z.array(zod_1.z.object({
|
|
41
|
-
path: zod_1.z.string(),
|
|
42
|
-
type: zod_1.z.enum(['file', 'directory']),
|
|
43
|
-
sizeBytes: zod_1.z.number().optional(),
|
|
44
|
-
})),
|
|
45
|
-
truncated: zod_1.z.boolean(),
|
|
46
|
-
totalCount: zod_1.z.number(),
|
|
47
|
-
denied: zod_1.z.boolean().optional(),
|
|
48
|
-
reason: zod_1.z.string().optional(),
|
|
49
|
-
}),
|
|
50
|
-
suspendSchema: zod_1.z.object({
|
|
51
|
-
requestId: zod_1.z.string(),
|
|
52
|
-
message: zod_1.z.string(),
|
|
53
|
-
severity: api_types_1.instanceAiConfirmationSeveritySchema,
|
|
54
|
-
}),
|
|
55
|
-
resumeSchema: zod_1.z.object({
|
|
56
|
-
approved: zod_1.z.boolean(),
|
|
57
|
-
}),
|
|
58
|
-
execute: async ({ dirPath, pattern, maxResults, type, recursive }, ctx) => {
|
|
59
|
-
const { resumeData, suspend } = ctx?.agent ?? {};
|
|
60
|
-
const needsApproval = context.permissions?.readFilesystem !== 'always_allow';
|
|
61
|
-
if (needsApproval && (resumeData === undefined || resumeData === null)) {
|
|
62
|
-
await suspend?.({
|
|
63
|
-
requestId: (0, nanoid_1.nanoid)(),
|
|
64
|
-
message: `List files in "${dirPath}"?`,
|
|
65
|
-
severity: 'info',
|
|
66
|
-
});
|
|
67
|
-
return { files: [], truncated: false, totalCount: 0 };
|
|
68
|
-
}
|
|
69
|
-
if (resumeData !== undefined && resumeData !== null && !resumeData.approved) {
|
|
70
|
-
return {
|
|
71
|
-
files: [],
|
|
72
|
-
truncated: false,
|
|
73
|
-
totalCount: 0,
|
|
74
|
-
denied: true,
|
|
75
|
-
reason: 'User denied the action',
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
if (!context.filesystemService) {
|
|
79
|
-
throw new Error('No filesystem access available.');
|
|
80
|
-
}
|
|
81
|
-
const limit = maxResults ?? 200;
|
|
82
|
-
const typeFilter = type ?? 'all';
|
|
83
|
-
const isRecursive = recursive ?? true;
|
|
84
|
-
const fetched = await context.filesystemService.listFiles(dirPath, {
|
|
85
|
-
pattern: pattern ?? undefined,
|
|
86
|
-
maxResults: limit + 1,
|
|
87
|
-
type: typeFilter,
|
|
88
|
-
recursive: isRecursive,
|
|
89
|
-
});
|
|
90
|
-
const truncated = fetched.length > limit;
|
|
91
|
-
const files = truncated ? fetched.slice(0, limit) : fetched;
|
|
92
|
-
return {
|
|
93
|
-
files,
|
|
94
|
-
truncated,
|
|
95
|
-
totalCount: files.length,
|
|
96
|
-
};
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=list-files.tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-files.tool.js","sourceRoot":"","sources":["../../../src/tools/filesystem/list-files.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { InstanceAiContext } from '../../types';
|
|
2
|
-
export declare function createReadFileTool(context: InstanceAiContext): import("@mastra/core/tools").Tool<{
|
|
3
|
-
filePath: string;
|
|
4
|
-
startLine?: number | undefined;
|
|
5
|
-
maxLines?: number | undefined;
|
|
6
|
-
}, {
|
|
7
|
-
path: string;
|
|
8
|
-
content: string;
|
|
9
|
-
truncated: boolean;
|
|
10
|
-
totalLines: number;
|
|
11
|
-
denied?: boolean | undefined;
|
|
12
|
-
reason?: string | undefined;
|
|
13
|
-
}, {
|
|
14
|
-
message: string;
|
|
15
|
-
requestId: string;
|
|
16
|
-
severity: "destructive" | "warning" | "info";
|
|
17
|
-
}, {
|
|
18
|
-
approved: boolean;
|
|
19
|
-
}, import("@mastra/core/tools").ToolExecutionContext<{
|
|
20
|
-
message: string;
|
|
21
|
-
requestId: string;
|
|
22
|
-
severity: "destructive" | "warning" | "info";
|
|
23
|
-
}, {
|
|
24
|
-
approved: boolean;
|
|
25
|
-
}, unknown>, "read-file", unknown>;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createReadFileTool = createReadFileTool;
|
|
4
|
-
const tools_1 = require("@mastra/core/tools");
|
|
5
|
-
const api_types_1 = require("@n8n/api-types");
|
|
6
|
-
const nanoid_1 = require("nanoid");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
const sanitize_web_content_1 = require("../web-research/sanitize-web-content");
|
|
9
|
-
function createReadFileTool(context) {
|
|
10
|
-
return (0, tools_1.createTool)({
|
|
11
|
-
id: 'read-file',
|
|
12
|
-
description: 'Read the contents of a file. Returns the text content with optional line range. Use after list-files or search-files to read specific files. Always use absolute paths or ~/relative paths.',
|
|
13
|
-
inputSchema: zod_1.z.object({
|
|
14
|
-
filePath: zod_1.z
|
|
15
|
-
.string()
|
|
16
|
-
.describe('Absolute file path or ~/relative path (e.g. "/home/user/project/file.ts" or "~/project/file.ts"). Do NOT use bare relative paths.'),
|
|
17
|
-
startLine: zod_1.z
|
|
18
|
-
.number()
|
|
19
|
-
.int()
|
|
20
|
-
.positive()
|
|
21
|
-
.optional()
|
|
22
|
-
.describe('Start reading from this line (1-indexed, default: 1)'),
|
|
23
|
-
maxLines: zod_1.z
|
|
24
|
-
.number()
|
|
25
|
-
.int()
|
|
26
|
-
.positive()
|
|
27
|
-
.max(500)
|
|
28
|
-
.default(200)
|
|
29
|
-
.optional()
|
|
30
|
-
.describe('Maximum number of lines to read (default 200, max 500)'),
|
|
31
|
-
}),
|
|
32
|
-
outputSchema: zod_1.z.object({
|
|
33
|
-
path: zod_1.z.string(),
|
|
34
|
-
content: zod_1.z.string(),
|
|
35
|
-
truncated: zod_1.z.boolean(),
|
|
36
|
-
totalLines: zod_1.z.number(),
|
|
37
|
-
denied: zod_1.z.boolean().optional(),
|
|
38
|
-
reason: zod_1.z.string().optional(),
|
|
39
|
-
}),
|
|
40
|
-
suspendSchema: zod_1.z.object({
|
|
41
|
-
requestId: zod_1.z.string(),
|
|
42
|
-
message: zod_1.z.string(),
|
|
43
|
-
severity: api_types_1.instanceAiConfirmationSeveritySchema,
|
|
44
|
-
}),
|
|
45
|
-
resumeSchema: zod_1.z.object({
|
|
46
|
-
approved: zod_1.z.boolean(),
|
|
47
|
-
}),
|
|
48
|
-
execute: async ({ filePath, startLine, maxLines }, ctx) => {
|
|
49
|
-
const { resumeData, suspend } = ctx?.agent ?? {};
|
|
50
|
-
const needsApproval = context.permissions?.readFilesystem !== 'always_allow';
|
|
51
|
-
if (needsApproval && (resumeData === undefined || resumeData === null)) {
|
|
52
|
-
await suspend?.({
|
|
53
|
-
requestId: (0, nanoid_1.nanoid)(),
|
|
54
|
-
message: `Read file "${filePath}"?`,
|
|
55
|
-
severity: 'info',
|
|
56
|
-
});
|
|
57
|
-
return { path: '', content: '', truncated: false, totalLines: 0 };
|
|
58
|
-
}
|
|
59
|
-
if (resumeData !== undefined && resumeData !== null && !resumeData.approved) {
|
|
60
|
-
return {
|
|
61
|
-
path: '',
|
|
62
|
-
content: '',
|
|
63
|
-
truncated: false,
|
|
64
|
-
totalLines: 0,
|
|
65
|
-
denied: true,
|
|
66
|
-
reason: 'User denied the action',
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
if (!context.filesystemService) {
|
|
70
|
-
throw new Error('No filesystem access available.');
|
|
71
|
-
}
|
|
72
|
-
const result = await context.filesystemService.readFile(filePath, {
|
|
73
|
-
startLine: startLine ?? undefined,
|
|
74
|
-
maxLines: maxLines ?? undefined,
|
|
75
|
-
});
|
|
76
|
-
return {
|
|
77
|
-
...result,
|
|
78
|
-
content: (0, sanitize_web_content_1.wrapUntrustedData)(result.content, 'file', filePath),
|
|
79
|
-
};
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=read-file.tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.tool.js","sourceRoot":"","sources":["../../../src/tools/filesystem/read-file.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { InstanceAiContext } from '../../types';
|
|
2
|
-
export declare function createSearchFilesTool(context: InstanceAiContext): import("@mastra/core/tools").Tool<{
|
|
3
|
-
query: string;
|
|
4
|
-
dirPath: string;
|
|
5
|
-
maxResults?: number | undefined;
|
|
6
|
-
filePattern?: string | undefined;
|
|
7
|
-
ignoreCase?: boolean | undefined;
|
|
8
|
-
}, {
|
|
9
|
-
query: string;
|
|
10
|
-
truncated: boolean;
|
|
11
|
-
matches: {
|
|
12
|
-
path: string;
|
|
13
|
-
lineNumber: number;
|
|
14
|
-
line: string;
|
|
15
|
-
}[];
|
|
16
|
-
totalMatches: number;
|
|
17
|
-
denied?: boolean | undefined;
|
|
18
|
-
reason?: string | undefined;
|
|
19
|
-
}, {
|
|
20
|
-
message: string;
|
|
21
|
-
requestId: string;
|
|
22
|
-
severity: "destructive" | "warning" | "info";
|
|
23
|
-
}, {
|
|
24
|
-
approved: boolean;
|
|
25
|
-
}, import("@mastra/core/tools").ToolExecutionContext<{
|
|
26
|
-
message: string;
|
|
27
|
-
requestId: string;
|
|
28
|
-
severity: "destructive" | "warning" | "info";
|
|
29
|
-
}, {
|
|
30
|
-
approved: boolean;
|
|
31
|
-
}, unknown>, "search-files", unknown>;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSearchFilesTool = createSearchFilesTool;
|
|
4
|
-
const tools_1 = require("@mastra/core/tools");
|
|
5
|
-
const api_types_1 = require("@n8n/api-types");
|
|
6
|
-
const nanoid_1 = require("nanoid");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
const sanitize_web_content_1 = require("../web-research/sanitize-web-content");
|
|
9
|
-
function createSearchFilesTool(context) {
|
|
10
|
-
return (0, tools_1.createTool)({
|
|
11
|
-
id: 'search-files',
|
|
12
|
-
description: 'Search file contents for a text pattern or regex across a directory. Returns matching lines with file paths and line numbers. Always use absolute paths or ~/relative paths.',
|
|
13
|
-
inputSchema: zod_1.z.object({
|
|
14
|
-
dirPath: zod_1.z
|
|
15
|
-
.string()
|
|
16
|
-
.describe('Absolute directory path or ~/relative path (e.g. "/home/user/project" or "~/project"). Do NOT use bare relative paths.'),
|
|
17
|
-
query: zod_1.z.string().describe('Search query — supports regex patterns'),
|
|
18
|
-
filePattern: zod_1.z
|
|
19
|
-
.string()
|
|
20
|
-
.optional()
|
|
21
|
-
.describe('File pattern to restrict search (e.g. "*.ts", "*.json")'),
|
|
22
|
-
ignoreCase: zod_1.z
|
|
23
|
-
.boolean()
|
|
24
|
-
.default(true)
|
|
25
|
-
.optional()
|
|
26
|
-
.describe('Case-insensitive search (default: true)'),
|
|
27
|
-
maxResults: zod_1.z
|
|
28
|
-
.number()
|
|
29
|
-
.int()
|
|
30
|
-
.positive()
|
|
31
|
-
.max(100)
|
|
32
|
-
.default(50)
|
|
33
|
-
.optional()
|
|
34
|
-
.describe('Maximum number of matching lines to return (default 50, max 100)'),
|
|
35
|
-
}),
|
|
36
|
-
outputSchema: zod_1.z.object({
|
|
37
|
-
query: zod_1.z.string(),
|
|
38
|
-
matches: zod_1.z.array(zod_1.z.object({
|
|
39
|
-
path: zod_1.z.string(),
|
|
40
|
-
lineNumber: zod_1.z.number(),
|
|
41
|
-
line: zod_1.z.string(),
|
|
42
|
-
})),
|
|
43
|
-
truncated: zod_1.z.boolean(),
|
|
44
|
-
totalMatches: zod_1.z.number(),
|
|
45
|
-
denied: zod_1.z.boolean().optional(),
|
|
46
|
-
reason: zod_1.z.string().optional(),
|
|
47
|
-
}),
|
|
48
|
-
suspendSchema: zod_1.z.object({
|
|
49
|
-
requestId: zod_1.z.string(),
|
|
50
|
-
message: zod_1.z.string(),
|
|
51
|
-
severity: api_types_1.instanceAiConfirmationSeveritySchema,
|
|
52
|
-
}),
|
|
53
|
-
resumeSchema: zod_1.z.object({
|
|
54
|
-
approved: zod_1.z.boolean(),
|
|
55
|
-
}),
|
|
56
|
-
execute: async ({ dirPath, query, filePattern, ignoreCase, maxResults }, ctx) => {
|
|
57
|
-
const { resumeData, suspend } = ctx?.agent ?? {};
|
|
58
|
-
const needsApproval = context.permissions?.readFilesystem !== 'always_allow';
|
|
59
|
-
if (needsApproval && (resumeData === undefined || resumeData === null)) {
|
|
60
|
-
await suspend?.({
|
|
61
|
-
requestId: (0, nanoid_1.nanoid)(),
|
|
62
|
-
message: `Search files in "${dirPath}" for "${query}"?`,
|
|
63
|
-
severity: 'info',
|
|
64
|
-
});
|
|
65
|
-
return { query, matches: [], truncated: false, totalMatches: 0 };
|
|
66
|
-
}
|
|
67
|
-
if (resumeData !== undefined && resumeData !== null && !resumeData.approved) {
|
|
68
|
-
return {
|
|
69
|
-
query,
|
|
70
|
-
matches: [],
|
|
71
|
-
truncated: false,
|
|
72
|
-
totalMatches: 0,
|
|
73
|
-
denied: true,
|
|
74
|
-
reason: 'User denied the action',
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (!context.filesystemService) {
|
|
78
|
-
throw new Error('No filesystem access available.');
|
|
79
|
-
}
|
|
80
|
-
const result = await context.filesystemService.searchFiles(dirPath, {
|
|
81
|
-
query,
|
|
82
|
-
filePattern: filePattern ?? undefined,
|
|
83
|
-
ignoreCase: ignoreCase ?? undefined,
|
|
84
|
-
maxResults: maxResults ?? undefined,
|
|
85
|
-
});
|
|
86
|
-
return {
|
|
87
|
-
...result,
|
|
88
|
-
matches: result.matches.map((match) => ({
|
|
89
|
-
...match,
|
|
90
|
-
line: (0, sanitize_web_content_1.wrapUntrustedData)(match.line, 'file', `${match.path}:${match.lineNumber}`),
|
|
91
|
-
})),
|
|
92
|
-
};
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=search-files.tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-files.tool.js","sourceRoot":"","sources":["../../../src/tools/filesystem/search-files.tool.ts"],"names":[],"mappings":"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"}
|