@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,441 @@
|
|
|
1
|
+
import { NetworkError, ProviderError } from '../../utils/errors';
|
|
2
|
+
import { createLogger } from '../../utils/logger';
|
|
3
|
+
/**
|
|
4
|
+
* Default conversation service options
|
|
5
|
+
*/
|
|
6
|
+
const DEFAULT_OPTIONS = {
|
|
7
|
+
maxHistoryLength: 100,
|
|
8
|
+
enableRetry: true,
|
|
9
|
+
maxRetries: 3,
|
|
10
|
+
retryDelay: 1000,
|
|
11
|
+
timeout: 30000,
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Conversation Service - handles AI provider interactions and response processing
|
|
15
|
+
* Stateless service that manages conversation context, AI provider calls, and response processing
|
|
16
|
+
* All methods are pure functions without instance state
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export class ConversationService {
|
|
20
|
+
/**
|
|
21
|
+
* Prepare conversation context from messages and configuration
|
|
22
|
+
* Pure function that transforms inputs to context object
|
|
23
|
+
*/
|
|
24
|
+
prepareContext(messages, model, provider, contextOptions = {}, serviceOptions = {}) {
|
|
25
|
+
const logger = createLogger('ConversationService');
|
|
26
|
+
return ConversationService.createContext(messages, model, provider, contextOptions, serviceOptions, logger);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate a response using the AI provider
|
|
30
|
+
* Stateless operation that handles the full request-response cycle
|
|
31
|
+
*/
|
|
32
|
+
async generateResponse(provider, context, serviceOptions = {}) {
|
|
33
|
+
const logger = createLogger('ConversationService');
|
|
34
|
+
return ConversationService.performResponseGeneration(provider, context, serviceOptions, logger);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generate streaming response using the AI provider
|
|
38
|
+
* Stateless streaming operation
|
|
39
|
+
*/
|
|
40
|
+
async *generateStreamingResponse(provider, context, serviceOptions = {}) {
|
|
41
|
+
const logger = createLogger('ConversationService');
|
|
42
|
+
yield* ConversationService.performStreamingResponse(provider, context, serviceOptions, logger);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Validate conversation context
|
|
46
|
+
* Pure validation function
|
|
47
|
+
*/
|
|
48
|
+
validateContext(context) {
|
|
49
|
+
return ConversationService.performContextValidation(context);
|
|
50
|
+
}
|
|
51
|
+
// ==============================================
|
|
52
|
+
// Static helper methods (pure functions)
|
|
53
|
+
// ==============================================
|
|
54
|
+
/**
|
|
55
|
+
* Static helper method for context creation
|
|
56
|
+
*/
|
|
57
|
+
static createContext(messages, model, provider, contextOptions, serviceOptions, logger) {
|
|
58
|
+
const options = { ...DEFAULT_OPTIONS, ...serviceOptions };
|
|
59
|
+
// Limit history length if configured
|
|
60
|
+
let processedMessages = messages;
|
|
61
|
+
if (options.maxHistoryLength > 0 && messages.length > options.maxHistoryLength) {
|
|
62
|
+
// Keep system message if it exists, then take the most recent messages
|
|
63
|
+
const systemMessages = messages.filter(m => m.role === 'system');
|
|
64
|
+
const otherMessages = messages.filter(m => m.role !== 'system');
|
|
65
|
+
const recentMessages = otherMessages.slice(-options.maxHistoryLength + systemMessages.length);
|
|
66
|
+
processedMessages = [...systemMessages, ...recentMessages];
|
|
67
|
+
logger.debug('Trimmed conversation history', {
|
|
68
|
+
originalLength: messages.length,
|
|
69
|
+
trimmedLength: processedMessages.length,
|
|
70
|
+
maxLength: options.maxHistoryLength,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const context = {
|
|
74
|
+
messages: processedMessages,
|
|
75
|
+
model,
|
|
76
|
+
provider,
|
|
77
|
+
...(contextOptions.systemMessage && { systemMessage: contextOptions.systemMessage }),
|
|
78
|
+
...(contextOptions.temperature !== undefined && { temperature: contextOptions.temperature }),
|
|
79
|
+
...(contextOptions.maxTokens !== undefined && { maxTokens: contextOptions.maxTokens }),
|
|
80
|
+
...(contextOptions.tools && { tools: contextOptions.tools }),
|
|
81
|
+
...(contextOptions.metadata && { metadata: contextOptions.metadata })
|
|
82
|
+
};
|
|
83
|
+
logger.debug('Conversation context prepared', {
|
|
84
|
+
messageCount: context.messages.length,
|
|
85
|
+
model: context.model,
|
|
86
|
+
provider: context.provider,
|
|
87
|
+
hasSystemMessage: !!context.systemMessage,
|
|
88
|
+
hasTools: !!(context.tools && context.tools.length > 0),
|
|
89
|
+
});
|
|
90
|
+
return context;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Static method for response generation
|
|
94
|
+
*/
|
|
95
|
+
static async performResponseGeneration(provider, context, serviceOptions, logger) {
|
|
96
|
+
const options = { ...DEFAULT_OPTIONS, ...serviceOptions };
|
|
97
|
+
const startTime = Date.now();
|
|
98
|
+
try {
|
|
99
|
+
logger.debug('Starting response generation', {
|
|
100
|
+
provider: context.provider,
|
|
101
|
+
model: context.model,
|
|
102
|
+
messageCount: context.messages.length,
|
|
103
|
+
});
|
|
104
|
+
// Create request payload
|
|
105
|
+
const requestPayload = ConversationService.createProviderRequest(context);
|
|
106
|
+
// Generate response with retry logic
|
|
107
|
+
const response = await ConversationService.executeWithRetry(() => provider.generateResponse(requestPayload), `generateResponse for ${context.provider}:${context.model}`, options, logger);
|
|
108
|
+
// Process and validate response
|
|
109
|
+
const processedResponse = ConversationService.processProviderResponse(response);
|
|
110
|
+
const duration = Date.now() - startTime;
|
|
111
|
+
logger.info('Response generated successfully', {
|
|
112
|
+
provider: context.provider,
|
|
113
|
+
model: context.model,
|
|
114
|
+
duration,
|
|
115
|
+
usage: processedResponse.usage,
|
|
116
|
+
});
|
|
117
|
+
return processedResponse;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
const duration = Date.now() - startTime;
|
|
121
|
+
logger.error('Response generation failed', {
|
|
122
|
+
provider: context.provider,
|
|
123
|
+
model: context.model,
|
|
124
|
+
duration,
|
|
125
|
+
error: error instanceof Error ? error.message : String(error),
|
|
126
|
+
});
|
|
127
|
+
if (error instanceof NetworkError || error instanceof ProviderError) {
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
throw new ProviderError(`Response generation failed: ${error instanceof Error ? error.message : String(error)}`, context.provider, error instanceof Error ? error : undefined);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Static method for streaming response generation
|
|
135
|
+
*/
|
|
136
|
+
static async *performStreamingResponse(provider, context, _serviceOptions, logger) {
|
|
137
|
+
// Apply defaults for future use - currently not needed but maintains service contract
|
|
138
|
+
const startTime = Date.now();
|
|
139
|
+
try {
|
|
140
|
+
logger.debug('Starting streaming response generation', {
|
|
141
|
+
provider: context.provider,
|
|
142
|
+
model: context.model,
|
|
143
|
+
messageCount: context.messages.length,
|
|
144
|
+
});
|
|
145
|
+
// Create request payload for streaming
|
|
146
|
+
const requestPayload = ConversationService.createProviderRequest(context, true);
|
|
147
|
+
// Check if provider supports streaming
|
|
148
|
+
if (!provider.generateStreamingResponse) {
|
|
149
|
+
throw new ProviderError(`Provider does not support streaming`, context.provider);
|
|
150
|
+
}
|
|
151
|
+
// Generate streaming response
|
|
152
|
+
const streamingResponse = provider.generateStreamingResponse(requestPayload);
|
|
153
|
+
let chunkCount = 0;
|
|
154
|
+
for await (const chunk of streamingResponse) {
|
|
155
|
+
chunkCount++;
|
|
156
|
+
const processedChunk = ConversationService.processStreamingChunk(chunk);
|
|
157
|
+
logger.debug('Streaming chunk processed', {
|
|
158
|
+
chunkNumber: chunkCount,
|
|
159
|
+
deltaLength: processedChunk.delta.length,
|
|
160
|
+
done: processedChunk.done,
|
|
161
|
+
});
|
|
162
|
+
yield processedChunk;
|
|
163
|
+
if (processedChunk.done) {
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const duration = Date.now() - startTime;
|
|
168
|
+
logger.info('Streaming response completed', {
|
|
169
|
+
provider: context.provider,
|
|
170
|
+
model: context.model,
|
|
171
|
+
duration,
|
|
172
|
+
totalChunks: chunkCount,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
const duration = Date.now() - startTime;
|
|
177
|
+
logger.error('Streaming response failed', {
|
|
178
|
+
provider: context.provider,
|
|
179
|
+
model: context.model,
|
|
180
|
+
duration,
|
|
181
|
+
error: error instanceof Error ? error.message : String(error),
|
|
182
|
+
});
|
|
183
|
+
if (error instanceof NetworkError || error instanceof ProviderError) {
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
throw new ProviderError(`Streaming response failed: ${error instanceof Error ? error.message : String(error)}`, context.provider, error instanceof Error ? error : undefined);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Static method for context validation
|
|
191
|
+
*/
|
|
192
|
+
static performContextValidation(context) {
|
|
193
|
+
const errors = [];
|
|
194
|
+
if (!context.messages || !Array.isArray(context.messages)) {
|
|
195
|
+
errors.push('Messages must be an array');
|
|
196
|
+
}
|
|
197
|
+
else if (context.messages.length === 0) {
|
|
198
|
+
errors.push('At least one message is required');
|
|
199
|
+
}
|
|
200
|
+
if (!context.model || typeof context.model !== 'string') {
|
|
201
|
+
errors.push('Model must be a non-empty string');
|
|
202
|
+
}
|
|
203
|
+
if (!context.provider || typeof context.provider !== 'string') {
|
|
204
|
+
errors.push('Provider must be a non-empty string');
|
|
205
|
+
}
|
|
206
|
+
if (context.temperature !== undefined && (typeof context.temperature !== 'number' || context.temperature < 0 || context.temperature > 2)) {
|
|
207
|
+
errors.push('Temperature must be a number between 0 and 2');
|
|
208
|
+
}
|
|
209
|
+
if (context.maxTokens !== undefined && (typeof context.maxTokens !== 'number' || context.maxTokens <= 0)) {
|
|
210
|
+
errors.push('MaxTokens must be a positive number');
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
isValid: errors.length === 0,
|
|
214
|
+
errors
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
// ==============================================
|
|
218
|
+
// Message creation utilities (pure functions)
|
|
219
|
+
// ==============================================
|
|
220
|
+
/**
|
|
221
|
+
* Create a user message
|
|
222
|
+
*/
|
|
223
|
+
createUserMessage(content, metadata) {
|
|
224
|
+
return ConversationService.createUserMessageStatic(content, metadata);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Create an assistant message from response
|
|
228
|
+
*/
|
|
229
|
+
createAssistantMessage(response, metadata) {
|
|
230
|
+
return ConversationService.createAssistantMessageStatic(response, metadata);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Create a system message
|
|
234
|
+
*/
|
|
235
|
+
createSystemMessage(content, metadata) {
|
|
236
|
+
return ConversationService.createSystemMessageStatic(content, metadata);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Create a tool message
|
|
240
|
+
*/
|
|
241
|
+
createToolMessage(toolCallId, result, metadata) {
|
|
242
|
+
return ConversationService.createToolMessageStatic(toolCallId, result, metadata);
|
|
243
|
+
}
|
|
244
|
+
// Static versions of message creation methods
|
|
245
|
+
static createUserMessageStatic(content, metadata) {
|
|
246
|
+
return {
|
|
247
|
+
role: 'user',
|
|
248
|
+
content,
|
|
249
|
+
timestamp: new Date(),
|
|
250
|
+
metadata: {
|
|
251
|
+
timestamp: new Date().toISOString(),
|
|
252
|
+
...metadata
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
static createAssistantMessageStatic(response, metadata) {
|
|
257
|
+
const message = {
|
|
258
|
+
role: 'assistant',
|
|
259
|
+
content: response.content,
|
|
260
|
+
timestamp: new Date(),
|
|
261
|
+
metadata: {
|
|
262
|
+
timestamp: new Date().toISOString(),
|
|
263
|
+
...(response.usage && { usage: JSON.stringify(response.usage) }),
|
|
264
|
+
...(response.finishReason && { finishReason: response.finishReason }),
|
|
265
|
+
...metadata
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
if (response.toolCalls && response.toolCalls.length > 0) {
|
|
269
|
+
message.toolCalls = response.toolCalls;
|
|
270
|
+
}
|
|
271
|
+
return message;
|
|
272
|
+
}
|
|
273
|
+
static createSystemMessageStatic(content, metadata) {
|
|
274
|
+
return {
|
|
275
|
+
role: 'system',
|
|
276
|
+
content,
|
|
277
|
+
timestamp: new Date(),
|
|
278
|
+
metadata: {
|
|
279
|
+
timestamp: new Date().toISOString(),
|
|
280
|
+
...metadata
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
static createToolMessageStatic(toolCallId, result, metadata) {
|
|
285
|
+
return {
|
|
286
|
+
role: 'tool',
|
|
287
|
+
content: typeof result === 'string' ? result : JSON.stringify(result),
|
|
288
|
+
toolCallId,
|
|
289
|
+
timestamp: new Date(),
|
|
290
|
+
metadata: {
|
|
291
|
+
timestamp: new Date().toISOString(),
|
|
292
|
+
...metadata
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
// ==============================================
|
|
297
|
+
// Pure utility functions
|
|
298
|
+
// ==============================================
|
|
299
|
+
/**
|
|
300
|
+
* Convert complex metadata to simple provider request format
|
|
301
|
+
*/
|
|
302
|
+
static convertToProviderMetadata(metadata) {
|
|
303
|
+
if (!metadata)
|
|
304
|
+
return undefined;
|
|
305
|
+
const converted = {};
|
|
306
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
307
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
308
|
+
converted[key] = value;
|
|
309
|
+
}
|
|
310
|
+
else if (value instanceof Date) {
|
|
311
|
+
converted[key] = value.toISOString();
|
|
312
|
+
}
|
|
313
|
+
else if (Array.isArray(value)) {
|
|
314
|
+
converted[key] = JSON.stringify(value);
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
converted[key] = JSON.stringify(value);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return converted;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Convert optional usage to required format
|
|
324
|
+
*/
|
|
325
|
+
static convertUsage(usage) {
|
|
326
|
+
if (!usage)
|
|
327
|
+
return undefined;
|
|
328
|
+
if (typeof usage.promptTokens === 'number' &&
|
|
329
|
+
typeof usage.completionTokens === 'number' &&
|
|
330
|
+
typeof usage.totalTokens === 'number') {
|
|
331
|
+
return {
|
|
332
|
+
promptTokens: usage.promptTokens,
|
|
333
|
+
completionTokens: usage.completionTokens,
|
|
334
|
+
totalTokens: usage.totalTokens
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
return undefined;
|
|
338
|
+
}
|
|
339
|
+
static createProviderRequest(context, streaming = false) {
|
|
340
|
+
const metadata = ConversationService.convertToProviderMetadata(context.metadata);
|
|
341
|
+
const request = {
|
|
342
|
+
messages: context.messages,
|
|
343
|
+
model: context.model,
|
|
344
|
+
stream: streaming,
|
|
345
|
+
...(context.temperature !== undefined && { temperature: context.temperature }),
|
|
346
|
+
...(context.maxTokens !== undefined && { maxTokens: context.maxTokens }),
|
|
347
|
+
...(context.tools && { tools: context.tools }),
|
|
348
|
+
...(context.systemMessage && { systemMessage: context.systemMessage }),
|
|
349
|
+
...(metadata && { metadata })
|
|
350
|
+
};
|
|
351
|
+
return request;
|
|
352
|
+
}
|
|
353
|
+
static processProviderResponse(response) {
|
|
354
|
+
const usage = ConversationService.convertUsage(response.usage);
|
|
355
|
+
const result = {
|
|
356
|
+
content: response.content || '',
|
|
357
|
+
toolCalls: response.toolCalls || [],
|
|
358
|
+
metadata: response.metadata || {},
|
|
359
|
+
finishReason: response.finishReason || 'stop',
|
|
360
|
+
...(usage && { usage })
|
|
361
|
+
};
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
static processStreamingChunk(chunk) {
|
|
365
|
+
const usage = ConversationService.convertUsage(chunk.usage);
|
|
366
|
+
const result = {
|
|
367
|
+
delta: chunk.delta || '',
|
|
368
|
+
done: chunk.done || false,
|
|
369
|
+
toolCalls: chunk.toolCalls || [],
|
|
370
|
+
...(usage && { usage })
|
|
371
|
+
};
|
|
372
|
+
return result;
|
|
373
|
+
}
|
|
374
|
+
static async executeWithRetry(fn, operation, options, logger) {
|
|
375
|
+
let lastError;
|
|
376
|
+
for (let attempt = 1; attempt <= options.maxRetries; attempt++) {
|
|
377
|
+
try {
|
|
378
|
+
const result = await ConversationService.withTimeout(fn(), options.timeout);
|
|
379
|
+
if (attempt > 1) {
|
|
380
|
+
logger.info(`${operation} succeeded on attempt ${attempt}`);
|
|
381
|
+
}
|
|
382
|
+
return result;
|
|
383
|
+
}
|
|
384
|
+
catch (error) {
|
|
385
|
+
lastError = error;
|
|
386
|
+
// Don't retry if this is the last attempt or if error shouldn't be retried
|
|
387
|
+
if (attempt === options.maxRetries || !ConversationService.shouldRetryError(lastError)) {
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
logger.warn(`${operation} failed on attempt ${attempt}, retrying...`, {
|
|
391
|
+
attempt,
|
|
392
|
+
maxRetries: options.maxRetries,
|
|
393
|
+
error: lastError.message,
|
|
394
|
+
retryDelay: options.retryDelay
|
|
395
|
+
});
|
|
396
|
+
await ConversationService.delay(options.retryDelay);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (lastError) {
|
|
400
|
+
logger.error(`${operation} failed after ${options.maxRetries} attempts`, {
|
|
401
|
+
error: lastError.message
|
|
402
|
+
});
|
|
403
|
+
throw lastError;
|
|
404
|
+
}
|
|
405
|
+
// This should never happen, but just in case
|
|
406
|
+
throw new Error(`${operation} failed with no error details`);
|
|
407
|
+
}
|
|
408
|
+
static shouldRetryError(error) {
|
|
409
|
+
// Retry on network errors and specific provider errors
|
|
410
|
+
if (error instanceof NetworkError) {
|
|
411
|
+
return true;
|
|
412
|
+
}
|
|
413
|
+
// Retry on timeout errors
|
|
414
|
+
if (error.message.includes('timeout') || error.message.includes('TIMEOUT')) {
|
|
415
|
+
return true;
|
|
416
|
+
}
|
|
417
|
+
// Retry on rate limit errors
|
|
418
|
+
if (error.message.includes('rate limit') || error.message.includes('429')) {
|
|
419
|
+
return true;
|
|
420
|
+
}
|
|
421
|
+
// Don't retry on other errors
|
|
422
|
+
return false;
|
|
423
|
+
}
|
|
424
|
+
static withTimeout(promise, timeoutMs) {
|
|
425
|
+
return Promise.race([
|
|
426
|
+
promise,
|
|
427
|
+
ConversationService.createTimeoutPromise(timeoutMs)
|
|
428
|
+
]);
|
|
429
|
+
}
|
|
430
|
+
static createTimeoutPromise(timeoutMs) {
|
|
431
|
+
return new Promise((_, reject) => {
|
|
432
|
+
setTimeout(() => {
|
|
433
|
+
reject(new NetworkError(`Operation timed out after ${timeoutMs}ms`));
|
|
434
|
+
}, timeoutMs);
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
static delay(ms) {
|
|
438
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/conversation-service/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation Service Local Types
|
|
3
|
+
*
|
|
4
|
+
* Local type definitions for conversation services.
|
|
5
|
+
* These types are used within this conversation service and don't need to be shared globally.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Message metadata for conversation context
|
|
9
|
+
* Used for storing additional information with conversation messages
|
|
10
|
+
*/
|
|
11
|
+
export type TProviderMetadata = Record<string, string | number | boolean>;
|
|
12
|
+
/**
|
|
13
|
+
* Execution context metadata
|
|
14
|
+
* Used for tracking execution-related information in conversations
|
|
15
|
+
*/
|
|
16
|
+
export interface IExecutionContextMetadata {
|
|
17
|
+
executionId?: string;
|
|
18
|
+
round?: number;
|
|
19
|
+
timestamp?: Date;
|
|
20
|
+
agentId?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Tool execution metadata
|
|
24
|
+
* Used for storing tool-related information in conversations
|
|
25
|
+
*/
|
|
26
|
+
export interface IToolExecutionMetadata {
|
|
27
|
+
toolId?: string;
|
|
28
|
+
executionTime?: number;
|
|
29
|
+
success?: boolean;
|
|
30
|
+
errorMessage?: string;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/conversation-service/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AAKH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/conversation-service/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type { IAgentEventData, IBaseEventData, IExecutionEventData, IEventContext, IEventService, IEventServiceOwnerBinding, IOwnerPathSegment, IToolEventData, TEventListener } from '../interfaces/event-service';
|
|
2
|
+
import type { IBaseEventData, IEventContext, IEventService, IEventServiceOwnerBinding, TEventListener } from '../interfaces/event-service';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base for event services.
|
|
5
|
+
* Concrete implementations decide how events are delivered.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class AbstractEventService implements IEventService {
|
|
8
|
+
private listeners;
|
|
9
|
+
abstract emit(eventType: string, data: IBaseEventData, context?: IEventContext): void;
|
|
10
|
+
subscribe(listener: TEventListener): void;
|
|
11
|
+
unsubscribe(listener: TEventListener): void;
|
|
12
|
+
protected notifyListeners(eventType: string, data: IBaseEventData, context?: IEventContext): void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Default no-op event service (production-safe).
|
|
16
|
+
* When injected, emit() intentionally does nothing.
|
|
17
|
+
*/
|
|
18
|
+
export declare class DefaultEventService extends AbstractEventService {
|
|
19
|
+
emit(_eventType: string, _data: IBaseEventData, _context?: IEventContext): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Singleton default event service instance.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_ABSTRACT_EVENT_SERVICE: IEventService;
|
|
25
|
+
/**
|
|
26
|
+
* Check if a given service is the default no-op implementation.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isDefaultEventService(service: IEventService): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Compose a full event name from owner prefix and local name.
|
|
31
|
+
* Local names must not contain dots.
|
|
32
|
+
*/
|
|
33
|
+
export declare function composeEventName(ownerType: string, localName: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* A scoped event service that always emits with an owner binding applied.
|
|
36
|
+
*/
|
|
37
|
+
export declare class StructuredEventService extends AbstractEventService {
|
|
38
|
+
private readonly base;
|
|
39
|
+
private readonly binding;
|
|
40
|
+
constructor(base: IEventService, binding: IEventServiceOwnerBinding);
|
|
41
|
+
emit(eventType: string, data: IBaseEventData, context?: IEventContext): void;
|
|
42
|
+
subscribe(listener: TEventListener): void;
|
|
43
|
+
unsubscribe(listener: TEventListener): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Bind an EventService to an explicit owner path.
|
|
47
|
+
* This is the standard entry point for scoped emission (path-only architecture).
|
|
48
|
+
*/
|
|
49
|
+
export declare function bindWithOwnerPath(base: IEventService, binding: IEventServiceOwnerBinding): IEventService;
|
|
50
|
+
/**
|
|
51
|
+
* Alias for bindWithOwnerPath for historical call sites.
|
|
52
|
+
* Intentionally forwards to the single authoritative implementation.
|
|
53
|
+
*/
|
|
54
|
+
export declare function bindEventServiceOwner(base: IEventService, binding: IEventServiceOwnerBinding): IEventService;
|
|
55
|
+
/**
|
|
56
|
+
* Observable EventService that notifies subscribed listeners.
|
|
57
|
+
*/
|
|
58
|
+
export declare class ObservableEventService extends AbstractEventService {
|
|
59
|
+
emit(eventType: string, data: IBaseEventData, context?: IEventContext): void;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=event-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-service.d.ts","sourceRoot":"","sources":["../../src/services/event-service.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EACR,cAAc,EACd,aAAa,EACb,aAAa,EACb,yBAAyB,EACzB,cAAc,EACjB,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,8BAAsB,oBAAqB,YAAW,aAAa;IAC/D,OAAO,CAAC,SAAS,CAA6B;IAE9C,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAErF,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIzC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI3C,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;CAKpG;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,oBAAoB;IACzD,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI;CAGlF;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,aAAyC,CAAC;AAEvF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAc7E;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,oBAAoB;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAExC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB;IAMnE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAcnE,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIzC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAGvD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAExG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,GAAG,aAAa,CAE5G;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,oBAAoB;IAC5D,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;CAG/E"}
|