@robota-sdk/agent-core 3.0.0-beta.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/CHANGELOG.md +180 -0
- package/LICENSE +21 -0
- package/README.md +230 -0
- package/dist/abstracts/abstract-agent.d.ts +56 -0
- package/dist/abstracts/abstract-agent.d.ts.map +1 -0
- package/dist/abstracts/abstract-agent.js +55 -0
- package/dist/abstracts/abstract-agent.js.map +1 -0
- package/dist/abstracts/abstract-ai-provider.d.ts +187 -0
- package/dist/abstracts/abstract-ai-provider.d.ts.map +1 -0
- package/dist/abstracts/abstract-ai-provider.js +252 -0
- package/dist/abstracts/abstract-ai-provider.js.map +1 -0
- package/dist/abstracts/abstract-executor.d.ts +110 -0
- package/dist/abstracts/abstract-executor.d.ts.map +1 -0
- package/dist/abstracts/abstract-executor.js +156 -0
- package/dist/abstracts/abstract-executor.js.map +1 -0
- package/dist/abstracts/abstract-manager.d.ts +42 -0
- package/dist/abstracts/abstract-manager.d.ts.map +1 -0
- package/dist/abstracts/abstract-manager.js +49 -0
- package/dist/abstracts/abstract-manager.js.map +1 -0
- package/dist/abstracts/abstract-module.d.ts +365 -0
- package/dist/abstracts/abstract-module.d.ts.map +1 -0
- package/dist/abstracts/abstract-module.js +474 -0
- package/dist/abstracts/abstract-module.js.map +1 -0
- package/dist/abstracts/abstract-plugin.d.ts +369 -0
- package/dist/abstracts/abstract-plugin.d.ts.map +1 -0
- package/dist/abstracts/abstract-plugin.js +258 -0
- package/dist/abstracts/abstract-plugin.js.map +1 -0
- package/dist/abstracts/abstract-tool.d.ts +175 -0
- package/dist/abstracts/abstract-tool.d.ts.map +1 -0
- package/dist/abstracts/abstract-tool.js +140 -0
- package/dist/abstracts/abstract-tool.js.map +1 -0
- package/dist/abstracts/abstract-workflow-converter.d.ts +136 -0
- package/dist/abstracts/abstract-workflow-converter.d.ts.map +1 -0
- package/dist/abstracts/abstract-workflow-converter.js +252 -0
- package/dist/abstracts/abstract-workflow-converter.js.map +1 -0
- package/dist/abstracts/abstract-workflow-validator.d.ts +203 -0
- package/dist/abstracts/abstract-workflow-validator.d.ts.map +1 -0
- package/dist/abstracts/abstract-workflow-validator.js +447 -0
- package/dist/abstracts/abstract-workflow-validator.js.map +1 -0
- package/dist/abstracts/index.d.ts +6 -0
- package/dist/abstracts/index.d.ts.map +1 -0
- package/dist/abstracts/index.js +9 -0
- package/dist/abstracts/index.js.map +1 -0
- package/dist/agents/constants.d.ts +23 -0
- package/dist/agents/constants.d.ts.map +1 -0
- package/dist/agents/constants.js +22 -0
- package/dist/agents/constants.js.map +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +4 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/robota.test.d.ts +2 -0
- package/dist/agents/robota.test.d.ts.map +1 -0
- package/dist/agents/robota.test.js +416 -0
- package/dist/agents/robota.test.js.map +1 -0
- package/dist/browser/builtin-templates.json +107 -0
- package/dist/browser/index.d.ts +4237 -0
- package/dist/browser/index.js +4 -0
- package/dist/core/robota.d.ts +694 -0
- package/dist/core/robota.d.ts.map +1 -0
- package/dist/core/robota.js +1277 -0
- package/dist/core/robota.js.map +1 -0
- package/dist/executors/local-executor.d.ts +96 -0
- package/dist/executors/local-executor.d.ts.map +1 -0
- package/dist/executors/local-executor.js +197 -0
- package/dist/executors/local-executor.js.map +1 -0
- package/dist/executors/local-executor.test.d.ts +2 -0
- package/dist/executors/local-executor.test.d.ts.map +1 -0
- package/dist/executors/local-executor.test.js +192 -0
- package/dist/executors/local-executor.test.js.map +1 -0
- package/dist/index.d.ts +274 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +235 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/agent.d.ts +198 -0
- package/dist/interfaces/agent.d.ts.map +1 -0
- package/dist/interfaces/agent.js +2 -0
- package/dist/interfaces/agent.js.map +1 -0
- package/dist/interfaces/event-service.d.ts +79 -0
- package/dist/interfaces/event-service.d.ts.map +1 -0
- package/dist/interfaces/event-service.js +2 -0
- package/dist/interfaces/event-service.js.map +1 -0
- package/dist/interfaces/executor.d.ts +128 -0
- package/dist/interfaces/executor.d.ts.map +1 -0
- package/dist/interfaces/executor.js +2 -0
- package/dist/interfaces/executor.js.map +1 -0
- package/dist/interfaces/history-module.d.ts +19 -0
- package/dist/interfaces/history-module.d.ts.map +1 -0
- package/dist/interfaces/history-module.js +2 -0
- package/dist/interfaces/history-module.js.map +1 -0
- package/dist/interfaces/index.d.ts +13 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +4 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/manager.d.ts +142 -0
- package/dist/interfaces/manager.d.ts.map +1 -0
- package/dist/interfaces/manager.js +2 -0
- package/dist/interfaces/manager.js.map +1 -0
- package/dist/interfaces/messages.d.ts +75 -0
- package/dist/interfaces/messages.d.ts.map +1 -0
- package/dist/interfaces/messages.js +29 -0
- package/dist/interfaces/messages.js.map +1 -0
- package/dist/interfaces/progress-reporting.d.ts +86 -0
- package/dist/interfaces/progress-reporting.d.ts.map +1 -0
- package/dist/interfaces/progress-reporting.js +37 -0
- package/dist/interfaces/progress-reporting.js.map +1 -0
- package/dist/interfaces/provider.d.ts +217 -0
- package/dist/interfaces/provider.d.ts.map +1 -0
- package/dist/interfaces/provider.js +2 -0
- package/dist/interfaces/provider.js.map +1 -0
- package/dist/interfaces/service.d.ts +205 -0
- package/dist/interfaces/service.d.ts.map +1 -0
- package/dist/interfaces/service.js +6 -0
- package/dist/interfaces/service.js.map +1 -0
- package/dist/interfaces/tool.d.ts +248 -0
- package/dist/interfaces/tool.d.ts.map +1 -0
- package/dist/interfaces/tool.js +2 -0
- package/dist/interfaces/tool.js.map +1 -0
- package/dist/interfaces/types.d.ts +71 -0
- package/dist/interfaces/types.d.ts.map +1 -0
- package/dist/interfaces/types.js +33 -0
- package/dist/interfaces/types.js.map +1 -0
- package/dist/interfaces/workflow-converter.d.ts +193 -0
- package/dist/interfaces/workflow-converter.d.ts.map +1 -0
- package/dist/interfaces/workflow-converter.js +11 -0
- package/dist/interfaces/workflow-converter.js.map +1 -0
- package/dist/interfaces/workflow-validator.d.ts +209 -0
- package/dist/interfaces/workflow-validator.d.ts.map +1 -0
- package/dist/interfaces/workflow-validator.js +16 -0
- package/dist/interfaces/workflow-validator.js.map +1 -0
- package/dist/managers/agent-factory.d.ts +132 -0
- package/dist/managers/agent-factory.d.ts.map +1 -0
- package/dist/managers/agent-factory.js +284 -0
- package/dist/managers/agent-factory.js.map +1 -0
- package/dist/managers/agent-factory.test.d.ts +2 -0
- package/dist/managers/agent-factory.test.d.ts.map +1 -0
- package/dist/managers/agent-factory.test.js +249 -0
- package/dist/managers/agent-factory.test.js.map +1 -0
- package/dist/managers/agent-templates.d.ts +84 -0
- package/dist/managers/agent-templates.d.ts.map +1 -0
- package/dist/managers/agent-templates.js +159 -0
- package/dist/managers/agent-templates.js.map +1 -0
- package/dist/managers/ai-provider-manager.d.ts +80 -0
- package/dist/managers/ai-provider-manager.d.ts.map +1 -0
- package/dist/managers/ai-provider-manager.js +226 -0
- package/dist/managers/ai-provider-manager.js.map +1 -0
- package/dist/managers/conversation-history-manager.d.ts +455 -0
- package/dist/managers/conversation-history-manager.d.ts.map +1 -0
- package/dist/managers/conversation-history-manager.js +578 -0
- package/dist/managers/conversation-history-manager.js.map +1 -0
- package/dist/managers/conversation-history-manager.test.d.ts +2 -0
- package/dist/managers/conversation-history-manager.test.d.ts.map +1 -0
- package/dist/managers/conversation-history-manager.test.js +374 -0
- package/dist/managers/conversation-history-manager.test.js.map +1 -0
- package/dist/managers/index.d.ts +8 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/managers/index.js +8 -0
- package/dist/managers/index.js.map +1 -0
- package/dist/managers/module-registry.d.ts +161 -0
- package/dist/managers/module-registry.d.ts.map +1 -0
- package/dist/managers/module-registry.js +519 -0
- package/dist/managers/module-registry.js.map +1 -0
- package/dist/managers/module-type-registry.d.ts +113 -0
- package/dist/managers/module-type-registry.d.ts.map +1 -0
- package/dist/managers/module-type-registry.js +439 -0
- package/dist/managers/module-type-registry.js.map +1 -0
- package/dist/managers/plugins.d.ts +166 -0
- package/dist/managers/plugins.d.ts.map +1 -0
- package/dist/managers/plugins.js +339 -0
- package/dist/managers/plugins.js.map +1 -0
- package/dist/managers/tool-manager.d.ts +70 -0
- package/dist/managers/tool-manager.d.ts.map +1 -0
- package/dist/managers/tool-manager.js +138 -0
- package/dist/managers/tool-manager.js.map +1 -0
- package/dist/managers/tool-manager.test.d.ts +2 -0
- package/dist/managers/tool-manager.test.d.ts.map +1 -0
- package/dist/managers/tool-manager.test.js +186 -0
- package/dist/managers/tool-manager.test.js.map +1 -0
- package/dist/node/builtin-templates.json +107 -0
- package/dist/node/index.cjs +4 -0
- package/dist/node/index.d.cts +4237 -0
- package/dist/node/index.d.ts +4237 -0
- package/dist/node/index.js +4 -0
- package/dist/plugins/conversation-history/conversation-history-plugin.d.ts +67 -0
- package/dist/plugins/conversation-history/conversation-history-plugin.d.ts.map +1 -0
- package/dist/plugins/conversation-history/conversation-history-plugin.js +270 -0
- package/dist/plugins/conversation-history/conversation-history-plugin.js.map +1 -0
- package/dist/plugins/conversation-history/index.d.ts +3 -0
- package/dist/plugins/conversation-history/index.d.ts.map +1 -0
- package/dist/plugins/conversation-history/index.js +2 -0
- package/dist/plugins/conversation-history/index.js.map +1 -0
- package/dist/plugins/conversation-history/storages/database-storage.d.ts +19 -0
- package/dist/plugins/conversation-history/storages/database-storage.d.ts.map +1 -0
- package/dist/plugins/conversation-history/storages/database-storage.js +94 -0
- package/dist/plugins/conversation-history/storages/database-storage.js.map +1 -0
- package/dist/plugins/conversation-history/storages/file-storage.d.ts +15 -0
- package/dist/plugins/conversation-history/storages/file-storage.d.ts.map +1 -0
- package/dist/plugins/conversation-history/storages/file-storage.js +94 -0
- package/dist/plugins/conversation-history/storages/file-storage.js.map +1 -0
- package/dist/plugins/conversation-history/storages/index.d.ts +4 -0
- package/dist/plugins/conversation-history/storages/index.d.ts.map +1 -0
- package/dist/plugins/conversation-history/storages/index.js +4 -0
- package/dist/plugins/conversation-history/storages/index.js.map +1 -0
- package/dist/plugins/conversation-history/storages/memory-storage.d.ts +15 -0
- package/dist/plugins/conversation-history/storages/memory-storage.d.ts.map +1 -0
- package/dist/plugins/conversation-history/storages/memory-storage.js +33 -0
- package/dist/plugins/conversation-history/storages/memory-storage.js.map +1 -0
- package/dist/plugins/conversation-history/types.d.ts +61 -0
- package/dist/plugins/conversation-history/types.d.ts.map +1 -0
- package/dist/plugins/conversation-history/types.js +2 -0
- package/dist/plugins/conversation-history/types.js.map +1 -0
- package/dist/plugins/error-handling/context-adapter.d.ts +30 -0
- package/dist/plugins/error-handling/context-adapter.d.ts.map +1 -0
- package/dist/plugins/error-handling/context-adapter.js +41 -0
- package/dist/plugins/error-handling/context-adapter.js.map +1 -0
- package/dist/plugins/error-handling/error-handling-plugin.d.ts +49 -0
- package/dist/plugins/error-handling/error-handling-plugin.d.ts.map +1 -0
- package/dist/plugins/error-handling/error-handling-plugin.js +229 -0
- package/dist/plugins/error-handling/error-handling-plugin.js.map +1 -0
- package/dist/plugins/error-handling/index.d.ts +10 -0
- package/dist/plugins/error-handling/index.d.ts.map +1 -0
- package/dist/plugins/error-handling/index.js +10 -0
- package/dist/plugins/error-handling/index.js.map +1 -0
- package/dist/plugins/error-handling/types.d.ts +73 -0
- package/dist/plugins/error-handling/types.d.ts.map +1 -0
- package/dist/plugins/error-handling/types.js +14 -0
- package/dist/plugins/error-handling/types.js.map +1 -0
- package/dist/plugins/event-emitter/metrics.d.ts +17 -0
- package/dist/plugins/event-emitter/metrics.d.ts.map +1 -0
- package/dist/plugins/event-emitter/metrics.js +17 -0
- package/dist/plugins/event-emitter/metrics.js.map +1 -0
- package/dist/plugins/event-emitter/types.d.ts +112 -0
- package/dist/plugins/event-emitter/types.d.ts.map +1 -0
- package/dist/plugins/event-emitter/types.js +65 -0
- package/dist/plugins/event-emitter/types.js.map +1 -0
- package/dist/plugins/event-emitter-plugin.d.ts +222 -0
- package/dist/plugins/event-emitter-plugin.d.ts.map +1 -0
- package/dist/plugins/event-emitter-plugin.js +432 -0
- package/dist/plugins/event-emitter-plugin.js.map +1 -0
- package/dist/plugins/event-emitter-plugin.test.d.ts +2 -0
- package/dist/plugins/event-emitter-plugin.test.d.ts.map +1 -0
- package/dist/plugins/event-emitter-plugin.test.js +94 -0
- package/dist/plugins/event-emitter-plugin.test.js.map +1 -0
- package/dist/plugins/execution/execution-analytics-plugin.d.ts +129 -0
- package/dist/plugins/execution/execution-analytics-plugin.d.ts.map +1 -0
- package/dist/plugins/execution/execution-analytics-plugin.js +517 -0
- package/dist/plugins/execution/execution-analytics-plugin.js.map +1 -0
- package/dist/plugins/execution/index.d.ts +3 -0
- package/dist/plugins/execution/index.d.ts.map +1 -0
- package/dist/plugins/execution/index.js +2 -0
- package/dist/plugins/execution/index.js.map +1 -0
- package/dist/plugins/execution/types.d.ts +90 -0
- package/dist/plugins/execution/types.d.ts.map +1 -0
- package/dist/plugins/execution/types.js +2 -0
- package/dist/plugins/execution/types.js.map +1 -0
- package/dist/plugins/index.d.ts +10 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +11 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/limits/types.d.ts +61 -0
- package/dist/plugins/limits/types.d.ts.map +1 -0
- package/dist/plugins/limits/types.js +2 -0
- package/dist/plugins/limits/types.js.map +1 -0
- package/dist/plugins/limits-plugin.d.ts +113 -0
- package/dist/plugins/limits-plugin.d.ts.map +1 -0
- package/dist/plugins/limits-plugin.js +380 -0
- package/dist/plugins/limits-plugin.js.map +1 -0
- package/dist/plugins/logging/formatters.d.ts +14 -0
- package/dist/plugins/logging/formatters.d.ts.map +1 -0
- package/dist/plugins/logging/formatters.js +24 -0
- package/dist/plugins/logging/formatters.js.map +1 -0
- package/dist/plugins/logging/index.d.ts +3 -0
- package/dist/plugins/logging/index.d.ts.map +1 -0
- package/dist/plugins/logging/index.js +2 -0
- package/dist/plugins/logging/index.js.map +1 -0
- package/dist/plugins/logging/logging-plugin.d.ts +91 -0
- package/dist/plugins/logging/logging-plugin.d.ts.map +1 -0
- package/dist/plugins/logging/logging-plugin.js +335 -0
- package/dist/plugins/logging/logging-plugin.js.map +1 -0
- package/dist/plugins/logging/storages/console-storage.d.ts +14 -0
- package/dist/plugins/logging/storages/console-storage.d.ts.map +1 -0
- package/dist/plugins/logging/storages/console-storage.js +38 -0
- package/dist/plugins/logging/storages/console-storage.js.map +1 -0
- package/dist/plugins/logging/storages/file-storage.d.ts +14 -0
- package/dist/plugins/logging/storages/file-storage.d.ts.map +1 -0
- package/dist/plugins/logging/storages/file-storage.js +41 -0
- package/dist/plugins/logging/storages/file-storage.js.map +1 -0
- package/dist/plugins/logging/storages/index.d.ts +5 -0
- package/dist/plugins/logging/storages/index.d.ts.map +1 -0
- package/dist/plugins/logging/storages/index.js +5 -0
- package/dist/plugins/logging/storages/index.js.map +1 -0
- package/dist/plugins/logging/storages/remote-storage.d.ts +20 -0
- package/dist/plugins/logging/storages/remote-storage.d.ts.map +1 -0
- package/dist/plugins/logging/storages/remote-storage.js +61 -0
- package/dist/plugins/logging/storages/remote-storage.js.map +1 -0
- package/dist/plugins/logging/storages/silent-storage.d.ts +10 -0
- package/dist/plugins/logging/storages/silent-storage.d.ts.map +1 -0
- package/dist/plugins/logging/storages/silent-storage.js +15 -0
- package/dist/plugins/logging/storages/silent-storage.js.map +1 -0
- package/dist/plugins/logging/types.d.ts +84 -0
- package/dist/plugins/logging/types.d.ts.map +1 -0
- package/dist/plugins/logging/types.js +2 -0
- package/dist/plugins/logging/types.js.map +1 -0
- package/dist/plugins/performance/collectors/system-metrics-collector.d.ts +12 -0
- package/dist/plugins/performance/collectors/system-metrics-collector.d.ts.map +1 -0
- package/dist/plugins/performance/collectors/system-metrics-collector.js +65 -0
- package/dist/plugins/performance/collectors/system-metrics-collector.js.map +1 -0
- package/dist/plugins/performance/index.d.ts +5 -0
- package/dist/plugins/performance/index.d.ts.map +1 -0
- package/dist/plugins/performance/index.js +4 -0
- package/dist/plugins/performance/index.js.map +1 -0
- package/dist/plugins/performance/performance-plugin.d.ts +49 -0
- package/dist/plugins/performance/performance-plugin.d.ts.map +1 -0
- package/dist/plugins/performance/performance-plugin.js +293 -0
- package/dist/plugins/performance/performance-plugin.js.map +1 -0
- package/dist/plugins/performance/storages/index.d.ts +2 -0
- package/dist/plugins/performance/storages/index.d.ts.map +1 -0
- package/dist/plugins/performance/storages/index.js +4 -0
- package/dist/plugins/performance/storages/index.js.map +1 -0
- package/dist/plugins/performance/storages/memory-storage.d.ts +19 -0
- package/dist/plugins/performance/storages/memory-storage.d.ts.map +1 -0
- package/dist/plugins/performance/storages/memory-storage.js +69 -0
- package/dist/plugins/performance/storages/memory-storage.js.map +1 -0
- package/dist/plugins/performance/types.d.ts +154 -0
- package/dist/plugins/performance/types.d.ts.map +1 -0
- package/dist/plugins/performance/types.js +2 -0
- package/dist/plugins/performance/types.js.map +1 -0
- package/dist/plugins/usage/aggregate-usage-stats.d.ts +12 -0
- package/dist/plugins/usage/aggregate-usage-stats.d.ts.map +1 -0
- package/dist/plugins/usage/aggregate-usage-stats.js +115 -0
- package/dist/plugins/usage/aggregate-usage-stats.js.map +1 -0
- package/dist/plugins/usage/index.d.ts +5 -0
- package/dist/plugins/usage/index.d.ts.map +1 -0
- package/dist/plugins/usage/index.js +4 -0
- package/dist/plugins/usage/index.js.map +1 -0
- package/dist/plugins/usage/storages/file-storage.d.ts +22 -0
- package/dist/plugins/usage/storages/file-storage.d.ts.map +1 -0
- package/dist/plugins/usage/storages/file-storage.js +111 -0
- package/dist/plugins/usage/storages/file-storage.js.map +1 -0
- package/dist/plugins/usage/storages/index.d.ts +5 -0
- package/dist/plugins/usage/storages/index.d.ts.map +1 -0
- package/dist/plugins/usage/storages/index.js +5 -0
- package/dist/plugins/usage/storages/index.js.map +1 -0
- package/dist/plugins/usage/storages/memory-storage.d.ts +22 -0
- package/dist/plugins/usage/storages/memory-storage.d.ts.map +1 -0
- package/dist/plugins/usage/storages/memory-storage.js +42 -0
- package/dist/plugins/usage/storages/memory-storage.js.map +1 -0
- package/dist/plugins/usage/storages/remote-storage.d.ts +26 -0
- package/dist/plugins/usage/storages/remote-storage.d.ts.map +1 -0
- package/dist/plugins/usage/storages/remote-storage.js +115 -0
- package/dist/plugins/usage/storages/remote-storage.js.map +1 -0
- package/dist/plugins/usage/storages/silent-storage.d.ts +19 -0
- package/dist/plugins/usage/storages/silent-storage.d.ts.map +1 -0
- package/dist/plugins/usage/storages/silent-storage.js +26 -0
- package/dist/plugins/usage/storages/silent-storage.js.map +1 -0
- package/dist/plugins/usage/types.d.ts +127 -0
- package/dist/plugins/usage/types.d.ts.map +1 -0
- package/dist/plugins/usage/types.js +2 -0
- package/dist/plugins/usage/types.js.map +1 -0
- package/dist/plugins/usage/usage-plugin.d.ts +67 -0
- package/dist/plugins/usage/usage-plugin.d.ts.map +1 -0
- package/dist/plugins/usage/usage-plugin.js +309 -0
- package/dist/plugins/usage/usage-plugin.js.map +1 -0
- package/dist/plugins/webhook/http-client.d.ts +30 -0
- package/dist/plugins/webhook/http-client.d.ts.map +1 -0
- package/dist/plugins/webhook/http-client.js +110 -0
- package/dist/plugins/webhook/http-client.js.map +1 -0
- package/dist/plugins/webhook/index.d.ts +9 -0
- package/dist/plugins/webhook/index.d.ts.map +1 -0
- package/dist/plugins/webhook/index.js +9 -0
- package/dist/plugins/webhook/index.js.map +1 -0
- package/dist/plugins/webhook/transformer.d.ts +63 -0
- package/dist/plugins/webhook/transformer.d.ts.map +1 -0
- package/dist/plugins/webhook/transformer.js +157 -0
- package/dist/plugins/webhook/transformer.js.map +1 -0
- package/dist/plugins/webhook/types.d.ts +183 -0
- package/dist/plugins/webhook/types.d.ts.map +1 -0
- package/dist/plugins/webhook/types.js +2 -0
- package/dist/plugins/webhook/types.js.map +1 -0
- package/dist/plugins/webhook/webhook-plugin.d.ts +92 -0
- package/dist/plugins/webhook/webhook-plugin.d.ts.map +1 -0
- package/dist/plugins/webhook/webhook-plugin.js +328 -0
- package/dist/plugins/webhook/webhook-plugin.js.map +1 -0
- package/dist/schemas/agent-template-schema.d.ts +137 -0
- package/dist/schemas/agent-template-schema.d.ts.map +1 -0
- package/dist/schemas/agent-template-schema.js +87 -0
- package/dist/schemas/agent-template-schema.js.map +1 -0
- package/dist/services/conversation-service/index.d.ts +88 -0
- package/dist/services/conversation-service/index.d.ts.map +1 -0
- package/dist/services/conversation-service/index.js +441 -0
- package/dist/services/conversation-service/index.js.map +1 -0
- package/dist/services/conversation-service/types.d.ts +32 -0
- package/dist/services/conversation-service/types.d.ts.map +1 -0
- package/dist/services/conversation-service/types.js +8 -0
- package/dist/services/conversation-service/types.js.map +1 -0
- package/dist/services/event-service.d.ts +61 -0
- package/dist/services/event-service.d.ts.map +1 -0
- package/dist/services/event-service.js +110 -0
- package/dist/services/event-service.js.map +1 -0
- package/dist/services/event-service.test.d.ts +2 -0
- package/dist/services/event-service.test.d.ts.map +1 -0
- package/dist/services/event-service.test.js +86 -0
- package/dist/services/event-service.test.js.map +1 -0
- package/dist/services/execution-service.d.ts +151 -0
- package/dist/services/execution-service.d.ts.map +1 -0
- package/dist/services/execution-service.js +1262 -0
- package/dist/services/execution-service.js.map +1 -0
- package/dist/services/execution-service.test.d.ts +2 -0
- package/dist/services/execution-service.test.d.ts.map +1 -0
- package/dist/services/execution-service.test.js +338 -0
- package/dist/services/execution-service.test.js.map +1 -0
- package/dist/services/history-module.d.ts +15 -0
- package/dist/services/history-module.d.ts.map +1 -0
- package/dist/services/history-module.js +42 -0
- package/dist/services/history-module.js.map +1 -0
- package/dist/services/in-memory-history-store.d.ts +12 -0
- package/dist/services/in-memory-history-store.d.ts.map +1 -0
- package/dist/services/in-memory-history-store.js +41 -0
- package/dist/services/in-memory-history-store.js.map +1 -0
- package/dist/services/index.d.ts +7 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +13 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/task-events.d.ts +6 -0
- package/dist/services/task-events.d.ts.map +1 -0
- package/dist/services/task-events.js +6 -0
- package/dist/services/task-events.js.map +1 -0
- package/dist/services/tool-execution-service.d.ts +74 -0
- package/dist/services/tool-execution-service.d.ts.map +1 -0
- package/dist/services/tool-execution-service.js +189 -0
- package/dist/services/tool-execution-service.js.map +1 -0
- package/dist/services/user-events.d.ts +7 -0
- package/dist/services/user-events.d.ts.map +1 -0
- package/dist/services/user-events.js +6 -0
- package/dist/services/user-events.js.map +1 -0
- package/dist/tools/implementations/function-tool/index.d.ts +9 -0
- package/dist/tools/implementations/function-tool/index.d.ts.map +1 -0
- package/dist/tools/implementations/function-tool/index.js +13 -0
- package/dist/tools/implementations/function-tool/index.js.map +1 -0
- package/dist/tools/implementations/function-tool/schema-converter.d.ts +32 -0
- package/dist/tools/implementations/function-tool/schema-converter.d.ts.map +1 -0
- package/dist/tools/implementations/function-tool/schema-converter.js +164 -0
- package/dist/tools/implementations/function-tool/schema-converter.js.map +1 -0
- package/dist/tools/implementations/function-tool/types.d.ts +72 -0
- package/dist/tools/implementations/function-tool/types.d.ts.map +1 -0
- package/dist/tools/implementations/function-tool/types.js +14 -0
- package/dist/tools/implementations/function-tool/types.js.map +1 -0
- package/dist/tools/implementations/function-tool.d.ts +49 -0
- package/dist/tools/implementations/function-tool.d.ts.map +1 -0
- package/dist/tools/implementations/function-tool.js +223 -0
- package/dist/tools/implementations/function-tool.js.map +1 -0
- package/dist/tools/implementations/index.d.ts +4 -0
- package/dist/tools/implementations/index.d.ts.map +1 -0
- package/dist/tools/implementations/index.js +5 -0
- package/dist/tools/implementations/index.js.map +1 -0
- package/dist/tools/implementations/mcp-tool.d.ts +72 -0
- package/dist/tools/implementations/mcp-tool.d.ts.map +1 -0
- package/dist/tools/implementations/mcp-tool.js +246 -0
- package/dist/tools/implementations/mcp-tool.js.map +1 -0
- package/dist/tools/implementations/openapi-tool.d.ts +56 -0
- package/dist/tools/implementations/openapi-tool.d.ts.map +1 -0
- package/dist/tools/implementations/openapi-tool.js +324 -0
- package/dist/tools/implementations/openapi-tool.js.map +1 -0
- package/dist/tools/implementations/relay-mcp-tool.d.ts +38 -0
- package/dist/tools/implementations/relay-mcp-tool.d.ts.map +1 -0
- package/dist/tools/implementations/relay-mcp-tool.js +46 -0
- package/dist/tools/implementations/relay-mcp-tool.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry/index.d.ts +2 -0
- package/dist/tools/registry/index.d.ts.map +1 -0
- package/dist/tools/registry/index.js +3 -0
- package/dist/tools/registry/index.js.map +1 -0
- package/dist/tools/registry/tool-registry.d.ts +54 -0
- package/dist/tools/registry/tool-registry.d.ts.map +1 -0
- package/dist/tools/registry/tool-registry.js +146 -0
- package/dist/tools/registry/tool-registry.js.map +1 -0
- package/dist/utils/errors.d.ts +155 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +203 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/execution-proxy.d.ts +75 -0
- package/dist/utils/execution-proxy.d.ts.map +1 -0
- package/dist/utils/execution-proxy.js +230 -0
- package/dist/utils/execution-proxy.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +74 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +143 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/message-converter.d.ts +68 -0
- package/dist/utils/message-converter.d.ts.map +1 -0
- package/dist/utils/message-converter.js +87 -0
- package/dist/utils/message-converter.js.map +1 -0
- package/dist/utils/periodic-task.d.ts +14 -0
- package/dist/utils/periodic-task.d.ts.map +1 -0
- package/dist/utils/periodic-task.js +26 -0
- package/dist/utils/periodic-task.js.map +1 -0
- package/dist/utils/validation.d.ts +40 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +162 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +101 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FunctionTool - Type definitions for Facade pattern implementation
|
|
3
|
+
*
|
|
4
|
+
* REASON: Complex Zod schema type compatibility requires separation of concerns
|
|
5
|
+
* ALTERNATIVES_CONSIDERED:
|
|
6
|
+
* 1. Fix all Zod undefined issues in single file (creates maintenance burden)
|
|
7
|
+
* 2. Use any types strategically (reduces type safety)
|
|
8
|
+
* 3. Remove Zod support entirely (breaks existing functionality)
|
|
9
|
+
* 4. Create complex conditional types (adds cognitive overhead)
|
|
10
|
+
* 5. Use type assertions everywhere (increases runtime risk)
|
|
11
|
+
* NOTE: Tool functionality is now integrated into @robota-sdk/agents package
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/tools/implementations/function-tool/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { IFunctionTool, IToolResult, IToolExecutionContext, IParameterValidationResult, TToolExecutor, TToolParameters } from '../../interfaces/tool';
|
|
2
|
+
import type { IToolSchema } from '../../interfaces/provider';
|
|
3
|
+
import { AbstractTool, type IAbstractToolOptions } from '../../abstracts/abstract-tool';
|
|
4
|
+
import type { IZodSchema } from './function-tool/types';
|
|
5
|
+
/**
|
|
6
|
+
* Function tool implementation
|
|
7
|
+
* Wraps a JavaScript function as a tool with schema validation
|
|
8
|
+
*
|
|
9
|
+
* @extends AbstractTool<TToolParameters, ToolResult>
|
|
10
|
+
*/
|
|
11
|
+
export declare class FunctionTool extends AbstractTool<TToolParameters, IToolResult> implements IFunctionTool {
|
|
12
|
+
readonly schema: IToolSchema;
|
|
13
|
+
readonly fn: TToolExecutor;
|
|
14
|
+
constructor(schema: IToolSchema, fn: TToolExecutor, options?: IAbstractToolOptions);
|
|
15
|
+
/**
|
|
16
|
+
* Execute the function tool implementation
|
|
17
|
+
* This method is called by the parent's Template Method Pattern
|
|
18
|
+
*/
|
|
19
|
+
protected executeImpl(parameters: TToolParameters, context?: IToolExecutionContext): Promise<IToolResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Enhanced validation with detailed error reporting
|
|
22
|
+
*/
|
|
23
|
+
validate(parameters: TToolParameters): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Validate tool parameters with detailed result
|
|
26
|
+
*/
|
|
27
|
+
validateParameters(parameters: TToolParameters): IParameterValidationResult;
|
|
28
|
+
/**
|
|
29
|
+
* Get detailed validation errors
|
|
30
|
+
*/
|
|
31
|
+
private getValidationErrors;
|
|
32
|
+
/**
|
|
33
|
+
* Validate individual parameter type
|
|
34
|
+
*/
|
|
35
|
+
private validateParameterType;
|
|
36
|
+
/**
|
|
37
|
+
* Validate constructor inputs
|
|
38
|
+
*/
|
|
39
|
+
private validateConstructorInputs;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Helper function to create a function tool from a simple function
|
|
43
|
+
*/
|
|
44
|
+
export declare function createFunctionTool(name: string, description: string, parameters: IToolSchema['parameters'], fn: TToolExecutor): FunctionTool;
|
|
45
|
+
/**
|
|
46
|
+
* Helper function to create a function tool from Zod schema
|
|
47
|
+
*/
|
|
48
|
+
export declare function createZodFunctionTool(name: string, description: string, zodSchema: IZodSchema, fn: TToolExecutor, options?: IAbstractToolOptions): FunctionTool;
|
|
49
|
+
//# sourceMappingURL=function-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/function-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3J,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAKxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,YAAY,CAAC,eAAe,EAAE,WAAW,CAAE,YAAW,aAAa;IACjG,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;gBAEf,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,GAAE,oBAAyB;IAOtF;;;OAGG;cACa,WAAW,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4D/G;;OAEG;IACM,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO;IAIvD;;OAEG;IACM,kBAAkB,CAAC,UAAU,EAAE,eAAe,GAAG,0BAA0B;IAQpF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiE7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAapC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,EACrC,EAAE,EAAE,aAAa,GAClB,YAAY,CAQd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,UAAU,EACrB,EAAE,EAAE,aAAa,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC/B,YAAY,CAwBd"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { AbstractTool } from '../../abstracts/abstract-tool';
|
|
2
|
+
import { ToolExecutionError, ValidationError } from '../../utils/errors';
|
|
3
|
+
import { zodToJsonSchema } from './function-tool/schema-converter';
|
|
4
|
+
// Zod type definitions moved to Facade pattern modules
|
|
5
|
+
/**
|
|
6
|
+
* Function tool implementation
|
|
7
|
+
* Wraps a JavaScript function as a tool with schema validation
|
|
8
|
+
*
|
|
9
|
+
* @extends AbstractTool<TToolParameters, ToolResult>
|
|
10
|
+
*/
|
|
11
|
+
export class FunctionTool extends AbstractTool {
|
|
12
|
+
schema;
|
|
13
|
+
fn;
|
|
14
|
+
constructor(schema, fn, options = {}) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.schema = schema;
|
|
17
|
+
this.fn = fn;
|
|
18
|
+
this.validateConstructorInputs();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Execute the function tool implementation
|
|
22
|
+
* This method is called by the parent's Template Method Pattern
|
|
23
|
+
*/
|
|
24
|
+
async executeImpl(parameters, context) {
|
|
25
|
+
const toolName = this.schema.name;
|
|
26
|
+
try {
|
|
27
|
+
// Validate parameters
|
|
28
|
+
if (!this.validate(parameters)) {
|
|
29
|
+
const errors = this.getValidationErrors(parameters);
|
|
30
|
+
throw new ValidationError(`Invalid parameters for tool "${toolName}": ${errors.join(', ')}`);
|
|
31
|
+
}
|
|
32
|
+
this.logger.debug(`Executing function tool "${toolName}"`, {
|
|
33
|
+
toolName,
|
|
34
|
+
parameterCount: Object.keys(parameters || {}).length,
|
|
35
|
+
hasContext: !!context
|
|
36
|
+
});
|
|
37
|
+
// Execute the function
|
|
38
|
+
const startTime = Date.now();
|
|
39
|
+
const result = await this.fn(parameters, context);
|
|
40
|
+
const executionTime = Date.now() - startTime;
|
|
41
|
+
this.logger.debug(`Function tool "${toolName}" executed successfully`, {
|
|
42
|
+
toolName,
|
|
43
|
+
executionTime,
|
|
44
|
+
resultType: typeof result
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
success: true,
|
|
48
|
+
data: result,
|
|
49
|
+
metadata: {
|
|
50
|
+
executionTime,
|
|
51
|
+
toolName,
|
|
52
|
+
parameters
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.logger.error(`Function tool "${toolName}" execution failed`, {
|
|
58
|
+
toolName,
|
|
59
|
+
error: error instanceof Error ? error.message : String(error),
|
|
60
|
+
parameters
|
|
61
|
+
});
|
|
62
|
+
if (error instanceof ToolExecutionError || error instanceof ValidationError) {
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
throw new ToolExecutionError(`Function tool execution failed: ${error instanceof Error ? error.message : String(error)}`, toolName, error instanceof Error ? error : new Error(String(error)), {
|
|
66
|
+
parameterCount: Object.keys(parameters || {}).length,
|
|
67
|
+
hasContext: !!context
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Enhanced validation with detailed error reporting
|
|
73
|
+
*/
|
|
74
|
+
validate(parameters) {
|
|
75
|
+
return this.getValidationErrors(parameters).length === 0;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Validate tool parameters with detailed result
|
|
79
|
+
*/
|
|
80
|
+
validateParameters(parameters) {
|
|
81
|
+
const errors = this.getValidationErrors(parameters);
|
|
82
|
+
return {
|
|
83
|
+
isValid: errors.length === 0,
|
|
84
|
+
errors
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get detailed validation errors
|
|
89
|
+
*/
|
|
90
|
+
getValidationErrors(parameters) {
|
|
91
|
+
const errors = [];
|
|
92
|
+
const required = this.schema.parameters.required || [];
|
|
93
|
+
const properties = this.schema.parameters.properties || {};
|
|
94
|
+
// Check required parameters
|
|
95
|
+
for (const field of required) {
|
|
96
|
+
if (!(field in parameters)) {
|
|
97
|
+
errors.push(`Missing required parameter: ${field}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Check parameter types and constraints
|
|
101
|
+
for (const [key, value] of Object.entries(parameters)) {
|
|
102
|
+
const paramSchema = properties[key];
|
|
103
|
+
if (!paramSchema) {
|
|
104
|
+
errors.push(`Unknown parameter: ${key}`);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const typeError = this.validateParameterType(key, value, paramSchema);
|
|
108
|
+
if (typeError) {
|
|
109
|
+
errors.push(typeError);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return errors;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Validate individual parameter type
|
|
116
|
+
*/
|
|
117
|
+
validateParameterType(key, value, schema) {
|
|
118
|
+
const expectedType = schema['type'];
|
|
119
|
+
switch (expectedType) {
|
|
120
|
+
case 'string':
|
|
121
|
+
if (typeof value !== 'string') {
|
|
122
|
+
return `Parameter "${key}" must be a string, got ${typeof value}`;
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
case 'number':
|
|
126
|
+
if (typeof value !== 'number' || isNaN(value)) {
|
|
127
|
+
return `Parameter "${key}" must be a number, got ${typeof value}`;
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
case 'boolean':
|
|
131
|
+
if (typeof value !== 'boolean') {
|
|
132
|
+
return `Parameter "${key}" must be a boolean, got ${typeof value}`;
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
case 'array':
|
|
136
|
+
if (!Array.isArray(value)) {
|
|
137
|
+
return `Parameter "${key}" must be an array, got ${typeof value}`;
|
|
138
|
+
}
|
|
139
|
+
// Check array items if specified
|
|
140
|
+
if (schema.items) {
|
|
141
|
+
for (let i = 0; i < value.length; i++) {
|
|
142
|
+
const itemError = this.validateParameterType(`${key}[${i}]`, value[i], schema.items);
|
|
143
|
+
if (itemError) {
|
|
144
|
+
return itemError;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case 'object':
|
|
150
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
151
|
+
return `Parameter "${key}" must be an object, got ${typeof value}`;
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
// Check enum constraints
|
|
156
|
+
if (schema.enum && schema.enum.length > 0) {
|
|
157
|
+
const enumValues = schema.enum;
|
|
158
|
+
let isValidEnum = false;
|
|
159
|
+
// Type-safe enum checking based on JSONSchemaEnum type
|
|
160
|
+
for (const enumValue of enumValues) {
|
|
161
|
+
if (value === enumValue) {
|
|
162
|
+
isValidEnum = true;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (!isValidEnum) {
|
|
167
|
+
return `Parameter "${key}" must be one of: ${enumValues.join(', ')}, got ${value}`;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Validate constructor inputs
|
|
174
|
+
*/
|
|
175
|
+
validateConstructorInputs() {
|
|
176
|
+
if (!this.schema) {
|
|
177
|
+
throw new ValidationError('Tool schema is required');
|
|
178
|
+
}
|
|
179
|
+
if (!this.fn || typeof this.fn !== 'function') {
|
|
180
|
+
throw new ValidationError('Tool function is required and must be a function');
|
|
181
|
+
}
|
|
182
|
+
if (!this.schema.name) {
|
|
183
|
+
throw new ValidationError('Tool schema must have a name');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Helper function to create a function tool from a simple function
|
|
189
|
+
*/
|
|
190
|
+
export function createFunctionTool(name, description, parameters, fn) {
|
|
191
|
+
const schema = {
|
|
192
|
+
name,
|
|
193
|
+
description,
|
|
194
|
+
parameters
|
|
195
|
+
};
|
|
196
|
+
return new FunctionTool(schema, fn);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Helper function to create a function tool from Zod schema
|
|
200
|
+
*/
|
|
201
|
+
export function createZodFunctionTool(name, description, zodSchema, fn, options) {
|
|
202
|
+
// Use comprehensive Zod to JSON schema conversion
|
|
203
|
+
const parameters = zodToJsonSchema(zodSchema);
|
|
204
|
+
const schema = {
|
|
205
|
+
name,
|
|
206
|
+
description,
|
|
207
|
+
parameters
|
|
208
|
+
};
|
|
209
|
+
// Wrap the function with validation and ensure proper parameter handling
|
|
210
|
+
const wrappedFn = async (parameters, context) => {
|
|
211
|
+
// Use Zod for runtime validation
|
|
212
|
+
const parseResult = zodSchema.safeParse(parameters);
|
|
213
|
+
if (!parseResult.success) {
|
|
214
|
+
throw new ValidationError(`Zod validation failed: ${parseResult.error}`);
|
|
215
|
+
}
|
|
216
|
+
const result = await fn(parseResult.data || parameters, context);
|
|
217
|
+
// Ensure result is always a string for consistency with core package
|
|
218
|
+
return typeof result === 'string' ? result : JSON.stringify(result);
|
|
219
|
+
};
|
|
220
|
+
return new FunctionTool(schema, wrappedFn, options);
|
|
221
|
+
}
|
|
222
|
+
// zodToJsonSchema function moved to Facade pattern schema-converter module
|
|
223
|
+
//# sourceMappingURL=function-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-tool.js","sourceRoot":"","sources":["../../../src/tools/implementations/function-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/implementations/index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { ITool, IToolResult, IToolExecutionContext, TToolParameters } from '../../interfaces/tool';
|
|
2
|
+
import type { IToolSchema } from '../../interfaces/provider';
|
|
3
|
+
import { AbstractTool, type IAbstractToolOptions } from '../../abstracts/abstract-tool';
|
|
4
|
+
/**
|
|
5
|
+
* MCP (Model Context Protocol) tool configuration
|
|
6
|
+
*/
|
|
7
|
+
export interface IMCPConfig {
|
|
8
|
+
endpoint: string;
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
timeout?: number;
|
|
11
|
+
retries?: number;
|
|
12
|
+
headers?: Record<string, string>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* MCP connection status
|
|
16
|
+
*/
|
|
17
|
+
type TMCPConnectionStatus = 'connected' | 'disconnected' | 'connecting' | 'disconnecting' | 'error';
|
|
18
|
+
/**
|
|
19
|
+
* MCP tool execution result (domain payload).
|
|
20
|
+
*
|
|
21
|
+
* NOTE:
|
|
22
|
+
* Tool result payloads must conform to the canonical UniversalValue axis.
|
|
23
|
+
* We return a plain object (IUniversalObjectValue) so downstream consumers can safely
|
|
24
|
+
* store/serialize it without `any`/`unknown`.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* MCP (Model Context Protocol) tool implementation
|
|
28
|
+
* Executes tools via the Model Context Protocol
|
|
29
|
+
*
|
|
30
|
+
* @extends AbstractTool<TToolParameters, IToolResult>
|
|
31
|
+
*/
|
|
32
|
+
export declare class MCPTool extends AbstractTool<TToolParameters, IToolResult> implements ITool {
|
|
33
|
+
readonly schema: IToolSchema;
|
|
34
|
+
private readonly mcpConfig;
|
|
35
|
+
private connectionStatus;
|
|
36
|
+
constructor(config: IMCPConfig, schema: IToolSchema, options?: IAbstractToolOptions);
|
|
37
|
+
/**
|
|
38
|
+
* Execute the MCP tool implementation
|
|
39
|
+
* This method is called by the parent's Template Method Pattern
|
|
40
|
+
*/
|
|
41
|
+
protected executeImpl(parameters: TToolParameters, _context?: IToolExecutionContext): Promise<IToolResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Ensure MCP connection is established
|
|
44
|
+
*/
|
|
45
|
+
private ensureConnection;
|
|
46
|
+
/**
|
|
47
|
+
* Build MCP request from tool parameters
|
|
48
|
+
*/
|
|
49
|
+
private buildMCPRequest;
|
|
50
|
+
/**
|
|
51
|
+
* Execute MCP request and return response
|
|
52
|
+
*/
|
|
53
|
+
private executeMCPRequest;
|
|
54
|
+
/**
|
|
55
|
+
* Process MCP response and extract execution result
|
|
56
|
+
*/
|
|
57
|
+
private processMCPResponse;
|
|
58
|
+
/**
|
|
59
|
+
* Get current connection status
|
|
60
|
+
*/
|
|
61
|
+
getConnectionStatus(): TMCPConnectionStatus;
|
|
62
|
+
/**
|
|
63
|
+
* Disconnect from MCP server
|
|
64
|
+
*/
|
|
65
|
+
disconnect(): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Factory function to create MCP tools
|
|
69
|
+
*/
|
|
70
|
+
export declare function createMCPTool(config: IMCPConfig, schema: IToolSchema, options?: IAbstractToolOptions): MCPTool;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=mcp-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/mcp-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIxF;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAqCD;;GAEG;AACH,KAAK,oBAAoB,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,eAAe,GAAG,OAAO,CAAC;AAEpG;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,YAAY,CAAC,eAAe,EAAE,WAAW,CAAE,YAAW,KAAK;IACpF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,gBAAgB,CAAwC;gBAEpD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,oBAAyB;IAUvF;;;OAGG;cACa,WAAW,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0EhH;;OAEG;YACW,gBAAgB;IAkC9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;YACW,iBAAiB;IAuC/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACI,mBAAmB,IAAI,oBAAoB;IAIlD;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB3C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAElH"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { AbstractTool } from '../../abstracts/abstract-tool';
|
|
2
|
+
import { ToolExecutionError, ValidationError } from '../../utils/errors';
|
|
3
|
+
/**
|
|
4
|
+
* MCP tool execution result (domain payload).
|
|
5
|
+
*
|
|
6
|
+
* NOTE:
|
|
7
|
+
* Tool result payloads must conform to the canonical UniversalValue axis.
|
|
8
|
+
* We return a plain object (IUniversalObjectValue) so downstream consumers can safely
|
|
9
|
+
* store/serialize it without `any`/`unknown`.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* MCP (Model Context Protocol) tool implementation
|
|
13
|
+
* Executes tools via the Model Context Protocol
|
|
14
|
+
*
|
|
15
|
+
* @extends AbstractTool<TToolParameters, IToolResult>
|
|
16
|
+
*/
|
|
17
|
+
export class MCPTool extends AbstractTool {
|
|
18
|
+
schema;
|
|
19
|
+
mcpConfig;
|
|
20
|
+
connectionStatus = 'disconnected';
|
|
21
|
+
constructor(config, schema, options = {}) {
|
|
22
|
+
super(options);
|
|
23
|
+
this.mcpConfig = {
|
|
24
|
+
timeout: 30000,
|
|
25
|
+
retries: 3,
|
|
26
|
+
...config
|
|
27
|
+
};
|
|
28
|
+
this.schema = schema;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Execute the MCP tool implementation
|
|
32
|
+
* This method is called by the parent's Template Method Pattern
|
|
33
|
+
*/
|
|
34
|
+
async executeImpl(parameters, _context) {
|
|
35
|
+
const toolName = this.schema.name;
|
|
36
|
+
const startTime = Date.now();
|
|
37
|
+
try {
|
|
38
|
+
this.logger.debug(`Executing MCP tool "${toolName}"`, {
|
|
39
|
+
toolName,
|
|
40
|
+
parametersCount: Object.keys(parameters || {}).length,
|
|
41
|
+
endpoint: this.mcpConfig.endpoint,
|
|
42
|
+
connectionStatus: this.connectionStatus
|
|
43
|
+
});
|
|
44
|
+
// Check connection status
|
|
45
|
+
if (this.connectionStatus !== 'connected') {
|
|
46
|
+
await this.ensureConnection();
|
|
47
|
+
}
|
|
48
|
+
// Build MCP request
|
|
49
|
+
const mcpRequest = this.buildMCPRequest(toolName, parameters);
|
|
50
|
+
// Execute MCP call
|
|
51
|
+
const mcpResponse = await this.executeMCPRequest(mcpRequest);
|
|
52
|
+
// Process response
|
|
53
|
+
const executionResult = this.processMCPResponse(mcpResponse);
|
|
54
|
+
const executionTime = Date.now() - startTime;
|
|
55
|
+
this.logger.debug(`MCP tool "${toolName}" executed successfully`, {
|
|
56
|
+
toolName,
|
|
57
|
+
executionTime,
|
|
58
|
+
connectionStatus: this.connectionStatus
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
success: true,
|
|
62
|
+
data: executionResult,
|
|
63
|
+
metadata: {
|
|
64
|
+
executionTime,
|
|
65
|
+
toolName,
|
|
66
|
+
endpoint: this.mcpConfig.endpoint,
|
|
67
|
+
connectionStatus: this.connectionStatus
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
const executionTime = Date.now() - startTime;
|
|
73
|
+
const safeError = error instanceof Error ? error : new Error(String(error));
|
|
74
|
+
this.logger.error(`MCP tool "${toolName}" execution failed`, {
|
|
75
|
+
toolName,
|
|
76
|
+
executionTime,
|
|
77
|
+
connectionStatus: this.connectionStatus,
|
|
78
|
+
error: safeError,
|
|
79
|
+
parameters
|
|
80
|
+
});
|
|
81
|
+
if (error instanceof ToolExecutionError || error instanceof ValidationError) {
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
throw new ToolExecutionError(`MCP tool execution failed: ${safeError.message}`, toolName, safeError, {
|
|
85
|
+
executionTime,
|
|
86
|
+
endpoint: this.mcpConfig.endpoint,
|
|
87
|
+
connectionStatus: this.connectionStatus,
|
|
88
|
+
parametersCount: Object.keys(parameters || {}).length
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Ensure MCP connection is established
|
|
94
|
+
*/
|
|
95
|
+
async ensureConnection() {
|
|
96
|
+
if (this.connectionStatus === 'connecting') {
|
|
97
|
+
// Wait for existing connection attempt
|
|
98
|
+
return new Promise((resolve) => {
|
|
99
|
+
const checkConnection = () => {
|
|
100
|
+
if (this.connectionStatus !== 'connecting') {
|
|
101
|
+
resolve();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
setTimeout(checkConnection, 100);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
checkConnection();
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
this.connectionStatus = 'connecting';
|
|
111
|
+
try {
|
|
112
|
+
// TODO: Implement actual MCP connection logic
|
|
113
|
+
// This would typically involve WebSocket or HTTP connection
|
|
114
|
+
this.logger.debug('Establishing MCP connection', { endpoint: this.mcpConfig.endpoint });
|
|
115
|
+
// Simulate connection delay
|
|
116
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
117
|
+
this.connectionStatus = 'connected';
|
|
118
|
+
this.logger.debug('MCP connection established', { endpoint: this.mcpConfig.endpoint });
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
this.connectionStatus = 'error';
|
|
122
|
+
throw new Error(`Failed to connect to MCP server: ${error instanceof Error ? error.message : String(error)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Build MCP request from tool parameters
|
|
127
|
+
*/
|
|
128
|
+
buildMCPRequest(toolName, parameters) {
|
|
129
|
+
const requestId = `${toolName}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
130
|
+
const mcpParams = {
|
|
131
|
+
tool: toolName,
|
|
132
|
+
arguments: parameters
|
|
133
|
+
};
|
|
134
|
+
// Add metadata if configured
|
|
135
|
+
if (this.mcpConfig.headers) {
|
|
136
|
+
mcpParams.metadata = this.mcpConfig.headers;
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
jsonrpc: '2.0',
|
|
140
|
+
id: requestId,
|
|
141
|
+
method: 'tools/call',
|
|
142
|
+
params: mcpParams
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Execute MCP request and return response
|
|
147
|
+
*/
|
|
148
|
+
async executeMCPRequest(request) {
|
|
149
|
+
try {
|
|
150
|
+
// TODO: Implement actual MCP protocol communication
|
|
151
|
+
// This would typically use WebSocket or HTTP POST to the MCP server
|
|
152
|
+
this.logger.debug('Sending MCP request', {
|
|
153
|
+
endpoint: this.mcpConfig.endpoint,
|
|
154
|
+
method: request.method,
|
|
155
|
+
id: request.id
|
|
156
|
+
});
|
|
157
|
+
// Simulate MCP response for now
|
|
158
|
+
const mockResponse = {
|
|
159
|
+
jsonrpc: '2.0',
|
|
160
|
+
id: request.id,
|
|
161
|
+
result: {
|
|
162
|
+
content: `MCP tool "${request.params?.tool}" executed with parameters: ${JSON.stringify(request.params?.arguments)}`,
|
|
163
|
+
metadata: {
|
|
164
|
+
timestamp: new Date().toISOString(),
|
|
165
|
+
server: this.mcpConfig.endpoint
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
return mockResponse;
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
// Return error response in MCP format
|
|
173
|
+
return {
|
|
174
|
+
jsonrpc: '2.0',
|
|
175
|
+
id: request.id,
|
|
176
|
+
error: {
|
|
177
|
+
code: -32603, // Internal error
|
|
178
|
+
message: error instanceof Error ? error.message : String(error),
|
|
179
|
+
data: { endpoint: this.mcpConfig.endpoint }
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Process MCP response and extract execution result
|
|
186
|
+
*/
|
|
187
|
+
processMCPResponse(response) {
|
|
188
|
+
if (response.error) {
|
|
189
|
+
const errorData = {
|
|
190
|
+
success: false,
|
|
191
|
+
content: response.error.message,
|
|
192
|
+
metadata: response.error.data ?? undefined
|
|
193
|
+
};
|
|
194
|
+
return errorData;
|
|
195
|
+
}
|
|
196
|
+
if (response.result) {
|
|
197
|
+
const okData = {
|
|
198
|
+
success: true,
|
|
199
|
+
content: response.result.content,
|
|
200
|
+
metadata: response.result.metadata ?? undefined
|
|
201
|
+
};
|
|
202
|
+
return okData;
|
|
203
|
+
}
|
|
204
|
+
// Unexpected response format
|
|
205
|
+
const unexpected = {
|
|
206
|
+
success: false,
|
|
207
|
+
content: 'Unexpected MCP response format',
|
|
208
|
+
metadata: { responseId: String(response.id) }
|
|
209
|
+
};
|
|
210
|
+
return unexpected;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get current connection status
|
|
214
|
+
*/
|
|
215
|
+
getConnectionStatus() {
|
|
216
|
+
return this.connectionStatus;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Disconnect from MCP server
|
|
220
|
+
*/
|
|
221
|
+
async disconnect() {
|
|
222
|
+
if (this.connectionStatus === 'connected') {
|
|
223
|
+
this.connectionStatus = 'disconnecting';
|
|
224
|
+
try {
|
|
225
|
+
// TODO: Implement actual disconnection logic
|
|
226
|
+
this.logger.debug('Disconnecting from MCP server', { endpoint: this.mcpConfig.endpoint });
|
|
227
|
+
this.connectionStatus = 'disconnected';
|
|
228
|
+
this.logger.debug('Disconnected from MCP server', { endpoint: this.mcpConfig.endpoint });
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
this.connectionStatus = 'error';
|
|
232
|
+
this.logger.error('Error disconnecting from MCP server', {
|
|
233
|
+
endpoint: this.mcpConfig.endpoint,
|
|
234
|
+
error: error instanceof Error ? error.message : String(error)
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Factory function to create MCP tools
|
|
242
|
+
*/
|
|
243
|
+
export function createMCPTool(config, schema, options = {}) {
|
|
244
|
+
return new MCPTool(config, schema, options);
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=mcp-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool.js","sourceRoot":"","sources":["../../../src/tools/implementations/mcp-tool.ts"],"names":[],"mappings":"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"}
|