@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,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Abstract Tool Base Class
|
|
3
|
+
*
|
|
4
|
+
* 🎯 ABSTRACT CLASS - DO NOT DEPEND ON CONCRETE IMPLEMENTATIONS
|
|
5
|
+
*
|
|
6
|
+
* This is a pure abstract base class that defines the interface and common behavior
|
|
7
|
+
* for all tools. It follows strict architectural principles:
|
|
8
|
+
*
|
|
9
|
+
* - Depends ONLY on interfaces (EventService interface, not concrete implementations)
|
|
10
|
+
* - Does NOT import concrete classes
|
|
11
|
+
* - Uses Dependency Injection for all dependencies
|
|
12
|
+
* - Handles undefined dependencies gracefully (Null Object Pattern)
|
|
13
|
+
*
|
|
14
|
+
* Concrete implementations should be handled
|
|
15
|
+
* by the caller who creates the tool instance, not by this abstract class.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // ✅ CORRECT: Caller prepares an owner-bound EventService and injects it
|
|
20
|
+
* // (Example: bind to the current tool call identity and ownerPath.)
|
|
21
|
+
* const toolEventService = bindWithOwnerPath(baseEventService, {
|
|
22
|
+
* ownerType: 'tool',
|
|
23
|
+
* ownerId: toolCallId,
|
|
24
|
+
* ownerPath,
|
|
25
|
+
* });
|
|
26
|
+
* const tool = new MyTool({ eventService: toolEventService });
|
|
27
|
+
*
|
|
28
|
+
* // ❌ WRONG: AbstractTool creates concrete EventService
|
|
29
|
+
* // This violates Dependency Inversion Principle
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import type { IToolResult, IToolExecutionContext, IParameterValidationResult, TToolParameters } from '../interfaces/tool';
|
|
33
|
+
import type { IToolSchema } from '../interfaces/provider';
|
|
34
|
+
import type { ILogger } from '../utils/logger';
|
|
35
|
+
import type { IBaseEventData, IEventService } from '../services/event-service';
|
|
36
|
+
/**
|
|
37
|
+
* Options for AbstractTool construction
|
|
38
|
+
*/
|
|
39
|
+
export interface IAbstractToolOptions {
|
|
40
|
+
/**
|
|
41
|
+
* Optional logger for tool operations
|
|
42
|
+
* Defaults to SilentLogger if not provided
|
|
43
|
+
*/
|
|
44
|
+
logger?: ILogger;
|
|
45
|
+
/**
|
|
46
|
+
* Optional event service for unified event emission
|
|
47
|
+
* If not provided, tool will operate silently without emitting events
|
|
48
|
+
*
|
|
49
|
+
* The caller should provide an EventService configured with appropriate settings
|
|
50
|
+
* (e.g., ownerPrefix='tool' for tool events)
|
|
51
|
+
*
|
|
52
|
+
* @since 2.1.0
|
|
53
|
+
*/
|
|
54
|
+
eventService?: IEventService;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Tool execution function type with proper parameter constraints
|
|
58
|
+
*/
|
|
59
|
+
export type TToolExecutionFunction<TParams = TToolParameters, TResult = IToolResult> = (parameters: TParams) => Promise<TResult> | TResult;
|
|
60
|
+
/**
|
|
61
|
+
* Abstract tool interface with type parameters for enhanced type safety
|
|
62
|
+
*
|
|
63
|
+
* @template TParams - Tool parameters type (defaults to AbstractToolParameters for backward compatibility)
|
|
64
|
+
* @template TResult - Tool result type (defaults to ToolResult for backward compatibility)
|
|
65
|
+
*/
|
|
66
|
+
export interface IAbstractTool<TParams = TToolParameters, TResult = IToolResult> {
|
|
67
|
+
name: string;
|
|
68
|
+
description: string;
|
|
69
|
+
parameters: IToolSchema['parameters'];
|
|
70
|
+
execute: TToolExecutionFunction<TParams, TResult>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Type-safe tool interface with type parameters
|
|
74
|
+
*
|
|
75
|
+
* @template TParameters - Tool parameters type (defaults to AbstractToolParameters for backward compatibility)
|
|
76
|
+
* @template TResult - Tool result type (defaults to ToolResult for backward compatibility)
|
|
77
|
+
*/
|
|
78
|
+
export interface IToolContract<TParameters = TToolParameters, TResult = IToolResult> {
|
|
79
|
+
readonly schema: IToolSchema;
|
|
80
|
+
execute(parameters: TParameters, context: IToolExecutionContext): Promise<TResult>;
|
|
81
|
+
validate(parameters: TParameters): boolean;
|
|
82
|
+
validateParameters(parameters: TParameters): IParameterValidationResult;
|
|
83
|
+
getDescription(): string;
|
|
84
|
+
getName(): string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Runtime tool instance contract used by Robota internals.
|
|
88
|
+
*
|
|
89
|
+
* Tools passed into Agent configuration must support EventService injection
|
|
90
|
+
* so Robota can emit unified tool lifecycle events.
|
|
91
|
+
*/
|
|
92
|
+
export interface IToolWithEventService<TParameters = TToolParameters, TResult = IToolResult> extends IToolContract<TParameters, TResult> {
|
|
93
|
+
setEventService(eventService: IEventService | undefined): void;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Abstract base class for tools with type parameter support
|
|
97
|
+
* Provides type-safe parameter handling and result processing
|
|
98
|
+
*
|
|
99
|
+
* 🎯 ARCHITECTURAL PRINCIPLES:
|
|
100
|
+
* - Pure abstract class - depends only on interfaces
|
|
101
|
+
* - No concrete class dependencies (EventService interface only)
|
|
102
|
+
* - Dependency Injection for all external dependencies
|
|
103
|
+
* - Graceful degradation (undefined dependencies = silent operation)
|
|
104
|
+
*
|
|
105
|
+
* @template TParameters - Tool parameters type (defaults to TToolParameters)
|
|
106
|
+
* @template TResult - Tool result type (defaults to ToolResult for backward compatibility)
|
|
107
|
+
*/
|
|
108
|
+
export declare abstract class AbstractTool<TParameters = TToolParameters, TResult = IToolResult> implements IToolWithEventService<TParameters, TResult> {
|
|
109
|
+
abstract readonly schema: IToolSchema;
|
|
110
|
+
/**
|
|
111
|
+
* Logger for tool operations
|
|
112
|
+
*/
|
|
113
|
+
protected readonly logger: ILogger;
|
|
114
|
+
/**
|
|
115
|
+
* EventService for direct event emission (optional)
|
|
116
|
+
* If undefined, tool operates silently without emitting events
|
|
117
|
+
*/
|
|
118
|
+
private eventService;
|
|
119
|
+
/**
|
|
120
|
+
* Constructor with simplified options
|
|
121
|
+
*
|
|
122
|
+
* 🎯 DEPENDENCY INJECTION:
|
|
123
|
+
* All dependencies are injected via options parameter
|
|
124
|
+
* No concrete classes are instantiated within this constructor
|
|
125
|
+
*
|
|
126
|
+
* @param options - Configuration options for the tool
|
|
127
|
+
*/
|
|
128
|
+
constructor(options?: IAbstractToolOptions);
|
|
129
|
+
/**
|
|
130
|
+
* Set EventService for post-construction injection
|
|
131
|
+
*
|
|
132
|
+
* 🎯 DEPENDENCY INJECTION:
|
|
133
|
+
* Accepts EventService as-is without transformation
|
|
134
|
+
* Caller is responsible for providing properly configured EventService
|
|
135
|
+
*
|
|
136
|
+
* @param eventService - EventService instance to use for event emission (or undefined for silent operation)
|
|
137
|
+
*/
|
|
138
|
+
setEventService(eventService: IEventService | undefined): void;
|
|
139
|
+
/**
|
|
140
|
+
* Get current EventService (for testing/inspection)
|
|
141
|
+
*/
|
|
142
|
+
protected getEventService(): IEventService | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* Emit event through EventService (if available)
|
|
145
|
+
* If EventService is not available, silently ignores the event (Null Object Pattern)
|
|
146
|
+
*
|
|
147
|
+
* @param eventType - Type of event to emit
|
|
148
|
+
* @param data - Event data
|
|
149
|
+
*/
|
|
150
|
+
protected emitEvent(eventType: string, data: IBaseEventData): void;
|
|
151
|
+
/**
|
|
152
|
+
* Execute tool with simplified lifecycle
|
|
153
|
+
* @param parameters - Tool parameters
|
|
154
|
+
* @param context - Optional execution context
|
|
155
|
+
* @returns Promise resolving to tool result
|
|
156
|
+
*/
|
|
157
|
+
execute(parameters: TParameters, context: IToolExecutionContext): Promise<TResult>;
|
|
158
|
+
/**
|
|
159
|
+
* Concrete implementation of tool execution
|
|
160
|
+
* This method should be implemented by subclasses to provide actual tool logic
|
|
161
|
+
*
|
|
162
|
+
* @param parameters - Tool parameters
|
|
163
|
+
* @param context - Optional execution context
|
|
164
|
+
* @returns Promise resolving to tool result
|
|
165
|
+
*/
|
|
166
|
+
protected abstract executeImpl(parameters: TParameters, context: IToolExecutionContext): Promise<TResult>;
|
|
167
|
+
validate(parameters: TParameters): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Validate tool parameters with detailed result (default implementation)
|
|
170
|
+
*/
|
|
171
|
+
validateParameters(parameters: TParameters): IParameterValidationResult;
|
|
172
|
+
getDescription(): string;
|
|
173
|
+
getName(): string;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=abstract-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-tool.d.ts","sourceRoot":"","sources":["../../src/abstracts/abstract-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Abstract Tool Base Class
|
|
3
|
+
*
|
|
4
|
+
* 🎯 ABSTRACT CLASS - DO NOT DEPEND ON CONCRETE IMPLEMENTATIONS
|
|
5
|
+
*
|
|
6
|
+
* This is a pure abstract base class that defines the interface and common behavior
|
|
7
|
+
* for all tools. It follows strict architectural principles:
|
|
8
|
+
*
|
|
9
|
+
* - Depends ONLY on interfaces (EventService interface, not concrete implementations)
|
|
10
|
+
* - Does NOT import concrete classes
|
|
11
|
+
* - Uses Dependency Injection for all dependencies
|
|
12
|
+
* - Handles undefined dependencies gracefully (Null Object Pattern)
|
|
13
|
+
*
|
|
14
|
+
* Concrete implementations should be handled
|
|
15
|
+
* by the caller who creates the tool instance, not by this abstract class.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // ✅ CORRECT: Caller prepares an owner-bound EventService and injects it
|
|
20
|
+
* // (Example: bind to the current tool call identity and ownerPath.)
|
|
21
|
+
* const toolEventService = bindWithOwnerPath(baseEventService, {
|
|
22
|
+
* ownerType: 'tool',
|
|
23
|
+
* ownerId: toolCallId,
|
|
24
|
+
* ownerPath,
|
|
25
|
+
* });
|
|
26
|
+
* const tool = new MyTool({ eventService: toolEventService });
|
|
27
|
+
*
|
|
28
|
+
* // ❌ WRONG: AbstractTool creates concrete EventService
|
|
29
|
+
* // This violates Dependency Inversion Principle
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
import { SilentLogger } from '../utils/logger';
|
|
33
|
+
/**
|
|
34
|
+
* Abstract base class for tools with type parameter support
|
|
35
|
+
* Provides type-safe parameter handling and result processing
|
|
36
|
+
*
|
|
37
|
+
* 🎯 ARCHITECTURAL PRINCIPLES:
|
|
38
|
+
* - Pure abstract class - depends only on interfaces
|
|
39
|
+
* - No concrete class dependencies (EventService interface only)
|
|
40
|
+
* - Dependency Injection for all external dependencies
|
|
41
|
+
* - Graceful degradation (undefined dependencies = silent operation)
|
|
42
|
+
*
|
|
43
|
+
* @template TParameters - Tool parameters type (defaults to TToolParameters)
|
|
44
|
+
* @template TResult - Tool result type (defaults to ToolResult for backward compatibility)
|
|
45
|
+
*/
|
|
46
|
+
export class AbstractTool {
|
|
47
|
+
/**
|
|
48
|
+
* Logger for tool operations
|
|
49
|
+
*/
|
|
50
|
+
logger;
|
|
51
|
+
/**
|
|
52
|
+
* EventService for direct event emission (optional)
|
|
53
|
+
* If undefined, tool operates silently without emitting events
|
|
54
|
+
*/
|
|
55
|
+
eventService;
|
|
56
|
+
/**
|
|
57
|
+
* Constructor with simplified options
|
|
58
|
+
*
|
|
59
|
+
* 🎯 DEPENDENCY INJECTION:
|
|
60
|
+
* All dependencies are injected via options parameter
|
|
61
|
+
* No concrete classes are instantiated within this constructor
|
|
62
|
+
*
|
|
63
|
+
* @param options - Configuration options for the tool
|
|
64
|
+
*/
|
|
65
|
+
constructor(options = {}) {
|
|
66
|
+
// Accept eventService as-is (no wrapping, no transformation)
|
|
67
|
+
// Caller is responsible for providing properly configured EventService
|
|
68
|
+
this.eventService = options.eventService;
|
|
69
|
+
this.logger = options.logger ?? SilentLogger;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Set EventService for post-construction injection
|
|
73
|
+
*
|
|
74
|
+
* 🎯 DEPENDENCY INJECTION:
|
|
75
|
+
* Accepts EventService as-is without transformation
|
|
76
|
+
* Caller is responsible for providing properly configured EventService
|
|
77
|
+
*
|
|
78
|
+
* @param eventService - EventService instance to use for event emission (or undefined for silent operation)
|
|
79
|
+
*/
|
|
80
|
+
setEventService(eventService) {
|
|
81
|
+
this.eventService = eventService;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get current EventService (for testing/inspection)
|
|
85
|
+
*/
|
|
86
|
+
getEventService() {
|
|
87
|
+
return this.eventService;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Emit event through EventService (if available)
|
|
91
|
+
* If EventService is not available, silently ignores the event (Null Object Pattern)
|
|
92
|
+
*
|
|
93
|
+
* @param eventType - Type of event to emit
|
|
94
|
+
* @param data - Event data
|
|
95
|
+
*/
|
|
96
|
+
emitEvent(eventType, data) {
|
|
97
|
+
if (!this.eventService) {
|
|
98
|
+
// Silent operation - no EventService available
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
this.eventService.emit(eventType, data);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Execute tool with simplified lifecycle
|
|
105
|
+
* @param parameters - Tool parameters
|
|
106
|
+
* @param context - Optional execution context
|
|
107
|
+
* @returns Promise resolving to tool result
|
|
108
|
+
*/
|
|
109
|
+
async execute(parameters, context) {
|
|
110
|
+
return await this.executeImpl(parameters, context);
|
|
111
|
+
}
|
|
112
|
+
validate(parameters) {
|
|
113
|
+
const required = this.schema.parameters.required || [];
|
|
114
|
+
return required.every(field => field in parameters);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Validate tool parameters with detailed result (default implementation)
|
|
118
|
+
*/
|
|
119
|
+
validateParameters(parameters) {
|
|
120
|
+
const required = this.schema.parameters.required || [];
|
|
121
|
+
const errors = [];
|
|
122
|
+
const paramObj = parameters;
|
|
123
|
+
for (const field of required) {
|
|
124
|
+
if (!(field in paramObj)) {
|
|
125
|
+
errors.push(`Missing required parameter: ${field}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
isValid: errors.length === 0,
|
|
130
|
+
errors
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
getDescription() {
|
|
134
|
+
return this.schema.description;
|
|
135
|
+
}
|
|
136
|
+
getName() {
|
|
137
|
+
return this.schema.name;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=abstract-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-tool.js","sourceRoot":"","sources":["../../src/abstracts/abstract-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAsE/C;;;;;;;;;;;;GAYG;AACH,MAAM,OAAgB,YAAY;IAK9B;;OAEG;IACgB,MAAM,CAAU;IAEnC;;;OAGG;IACK,YAAY,CAA4B;IAEhD;;;;;;;;OAQG;IACH,YAAY,UAAgC,EAAE;QAC1C,6DAA6D;QAC7D,uEAAuE;QACvE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe,CAAC,YAAuC;QACnD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED;;OAEG;IACO,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACO,SAAS,CAAC,SAAiB,EAAE,IAAoB;QACvD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,+CAA+C;YAC/C,OAAO;QACX,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,OAA8B;QACjE,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAYD,QAAQ,CAAC,UAAuB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAK,UAAwD,CAAC,CAAC;IACvG,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,UAAuB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,UAAuD,CAAC;QAEzE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAED,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM;SACT,CAAC;IACN,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;CACJ"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract Workflow Converter
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class for all workflow converters in the Robota SDK.
|
|
5
|
+
* Uses an enabled flag + injected logger pattern.
|
|
6
|
+
*
|
|
7
|
+
* @template TInput - Input workflow data type
|
|
8
|
+
* @template TOutput - Output workflow data type
|
|
9
|
+
*/
|
|
10
|
+
import type { IWorkflowConverter, IWorkflowConversionOptions, IWorkflowConversionResult, IWorkflowData, IWorkflowConfig } from '../interfaces/workflow-converter';
|
|
11
|
+
import type { ILogger } from '../utils/logger';
|
|
12
|
+
import type { TUniversalValue } from '../interfaces/types';
|
|
13
|
+
/**
|
|
14
|
+
* Converter options (enabled flag + injected logger).
|
|
15
|
+
*/
|
|
16
|
+
export interface IBaseWorkflowConverterOptions {
|
|
17
|
+
/** Enable/disable the converter */
|
|
18
|
+
enabled?: boolean;
|
|
19
|
+
/** Custom logger instance */
|
|
20
|
+
logger?: ILogger;
|
|
21
|
+
/** Converter-specific configuration */
|
|
22
|
+
config?: IWorkflowConfig;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Base Workflow Converter Abstract Class
|
|
26
|
+
*
|
|
27
|
+
* Provides common functionality for all workflow converters:
|
|
28
|
+
* - Statistics tracking
|
|
29
|
+
* - Logging with dependency injection
|
|
30
|
+
* - Error handling and validation
|
|
31
|
+
* - Performance monitoring
|
|
32
|
+
* - Enable/disable functionality
|
|
33
|
+
*
|
|
34
|
+
* @template TInput - Input workflow data type
|
|
35
|
+
* @template TOutput - Output workflow data type
|
|
36
|
+
*/
|
|
37
|
+
export declare abstract class AbstractWorkflowConverter<TInput extends IWorkflowData, TOutput extends IWorkflowData> implements IWorkflowConverter<TInput, TOutput> {
|
|
38
|
+
abstract readonly name: string;
|
|
39
|
+
abstract readonly version: string;
|
|
40
|
+
abstract readonly sourceFormat: string;
|
|
41
|
+
abstract readonly targetFormat: string;
|
|
42
|
+
/** Enable/disable state */
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
/** Logger instance with dependency injection */
|
|
45
|
+
protected readonly logger: ILogger;
|
|
46
|
+
/** Converter configuration */
|
|
47
|
+
protected readonly config: IWorkflowConfig;
|
|
48
|
+
/** Statistics tracking */
|
|
49
|
+
private stats;
|
|
50
|
+
/**
|
|
51
|
+
* Constructor
|
|
52
|
+
*
|
|
53
|
+
* @param options - Converter configuration options
|
|
54
|
+
*/
|
|
55
|
+
constructor(options?: IBaseWorkflowConverterOptions);
|
|
56
|
+
/**
|
|
57
|
+
* Main conversion method with comprehensive error handling and metrics
|
|
58
|
+
*
|
|
59
|
+
* @param input - Input workflow data
|
|
60
|
+
* @param options - Conversion options
|
|
61
|
+
* @returns Promise resolving to conversion result
|
|
62
|
+
*/
|
|
63
|
+
convert(input: TInput, options?: IWorkflowConversionOptions): Promise<IWorkflowConversionResult<TOutput>>;
|
|
64
|
+
/**
|
|
65
|
+
* Abstract method for actual conversion logic
|
|
66
|
+
* Must be implemented by subclasses
|
|
67
|
+
*
|
|
68
|
+
* @param input - Input workflow data
|
|
69
|
+
* @param options - Conversion options
|
|
70
|
+
* @returns Promise resolving to converted data
|
|
71
|
+
*/
|
|
72
|
+
protected abstract performConversion(input: TInput, options: IWorkflowConversionOptions): Promise<TOutput>;
|
|
73
|
+
/**
|
|
74
|
+
* Default input validation (can be overridden by subclasses)
|
|
75
|
+
*
|
|
76
|
+
* @param input - Input workflow data
|
|
77
|
+
* @returns Promise resolving to validation result
|
|
78
|
+
*/
|
|
79
|
+
validateInput(input: TInput): Promise<{
|
|
80
|
+
isValid: boolean;
|
|
81
|
+
errors: string[];
|
|
82
|
+
warnings: string[];
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Default output validation (can be overridden by subclasses)
|
|
86
|
+
*
|
|
87
|
+
* @param output - Output workflow data
|
|
88
|
+
* @returns Promise resolving to validation result
|
|
89
|
+
*/
|
|
90
|
+
validateOutput(output: TOutput): Promise<{
|
|
91
|
+
isValid: boolean;
|
|
92
|
+
errors: string[];
|
|
93
|
+
warnings: string[];
|
|
94
|
+
}>;
|
|
95
|
+
/**
|
|
96
|
+
* Default implementation for checking if converter can handle input
|
|
97
|
+
* Should be overridden by subclasses for specific type checking
|
|
98
|
+
*
|
|
99
|
+
* @param input - Input data to check
|
|
100
|
+
* @returns True if converter can handle this input
|
|
101
|
+
*/
|
|
102
|
+
canConvert(input: IWorkflowData): input is TInput;
|
|
103
|
+
/**
|
|
104
|
+
* Get converter statistics
|
|
105
|
+
*
|
|
106
|
+
* @returns Converter performance metrics
|
|
107
|
+
*/
|
|
108
|
+
getStats(): {
|
|
109
|
+
totalConversions: number;
|
|
110
|
+
successfulConversions: number;
|
|
111
|
+
failedConversions: number;
|
|
112
|
+
averageProcessingTime: number;
|
|
113
|
+
lastConversionAt: Date | undefined;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Reset converter statistics
|
|
117
|
+
*/
|
|
118
|
+
resetStats(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Create success result with metadata
|
|
121
|
+
*/
|
|
122
|
+
protected createSuccessResult(data: TOutput, startTime: number, input: TInput, options: IWorkflowConversionOptions): IWorkflowConversionResult<TOutput>;
|
|
123
|
+
/**
|
|
124
|
+
* Create failure result with error information
|
|
125
|
+
*/
|
|
126
|
+
protected createFailureResult(errors: string[], warnings: string[], startTime: number, input: TInput, _logger: ILogger): IWorkflowConversionResult<TOutput>;
|
|
127
|
+
/**
|
|
128
|
+
* Extract basic statistics from workflow data
|
|
129
|
+
* Can be overridden by subclasses for specific data formats
|
|
130
|
+
*/
|
|
131
|
+
protected getDataStats(data: Record<string, TUniversalValue>): {
|
|
132
|
+
nodeCount: number;
|
|
133
|
+
edgeCount: number;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=abstract-workflow-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-workflow-converter.d.ts","sourceRoot":"","sources":["../../src/abstracts/abstract-workflow-converter.ts"],"names":[],"mappings":"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"}
|