@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.
Files changed (508) hide show
  1. package/CHANGELOG.md +180 -0
  2. package/LICENSE +21 -0
  3. package/README.md +230 -0
  4. package/dist/abstracts/abstract-agent.d.ts +56 -0
  5. package/dist/abstracts/abstract-agent.d.ts.map +1 -0
  6. package/dist/abstracts/abstract-agent.js +55 -0
  7. package/dist/abstracts/abstract-agent.js.map +1 -0
  8. package/dist/abstracts/abstract-ai-provider.d.ts +187 -0
  9. package/dist/abstracts/abstract-ai-provider.d.ts.map +1 -0
  10. package/dist/abstracts/abstract-ai-provider.js +252 -0
  11. package/dist/abstracts/abstract-ai-provider.js.map +1 -0
  12. package/dist/abstracts/abstract-executor.d.ts +110 -0
  13. package/dist/abstracts/abstract-executor.d.ts.map +1 -0
  14. package/dist/abstracts/abstract-executor.js +156 -0
  15. package/dist/abstracts/abstract-executor.js.map +1 -0
  16. package/dist/abstracts/abstract-manager.d.ts +42 -0
  17. package/dist/abstracts/abstract-manager.d.ts.map +1 -0
  18. package/dist/abstracts/abstract-manager.js +49 -0
  19. package/dist/abstracts/abstract-manager.js.map +1 -0
  20. package/dist/abstracts/abstract-module.d.ts +365 -0
  21. package/dist/abstracts/abstract-module.d.ts.map +1 -0
  22. package/dist/abstracts/abstract-module.js +474 -0
  23. package/dist/abstracts/abstract-module.js.map +1 -0
  24. package/dist/abstracts/abstract-plugin.d.ts +369 -0
  25. package/dist/abstracts/abstract-plugin.d.ts.map +1 -0
  26. package/dist/abstracts/abstract-plugin.js +258 -0
  27. package/dist/abstracts/abstract-plugin.js.map +1 -0
  28. package/dist/abstracts/abstract-tool.d.ts +175 -0
  29. package/dist/abstracts/abstract-tool.d.ts.map +1 -0
  30. package/dist/abstracts/abstract-tool.js +140 -0
  31. package/dist/abstracts/abstract-tool.js.map +1 -0
  32. package/dist/abstracts/abstract-workflow-converter.d.ts +136 -0
  33. package/dist/abstracts/abstract-workflow-converter.d.ts.map +1 -0
  34. package/dist/abstracts/abstract-workflow-converter.js +252 -0
  35. package/dist/abstracts/abstract-workflow-converter.js.map +1 -0
  36. package/dist/abstracts/abstract-workflow-validator.d.ts +203 -0
  37. package/dist/abstracts/abstract-workflow-validator.d.ts.map +1 -0
  38. package/dist/abstracts/abstract-workflow-validator.js +447 -0
  39. package/dist/abstracts/abstract-workflow-validator.js.map +1 -0
  40. package/dist/abstracts/index.d.ts +6 -0
  41. package/dist/abstracts/index.d.ts.map +1 -0
  42. package/dist/abstracts/index.js +9 -0
  43. package/dist/abstracts/index.js.map +1 -0
  44. package/dist/agents/constants.d.ts +23 -0
  45. package/dist/agents/constants.d.ts.map +1 -0
  46. package/dist/agents/constants.js +22 -0
  47. package/dist/agents/constants.js.map +1 -0
  48. package/dist/agents/index.d.ts +1 -0
  49. package/dist/agents/index.d.ts.map +1 -0
  50. package/dist/agents/index.js +4 -0
  51. package/dist/agents/index.js.map +1 -0
  52. package/dist/agents/robota.test.d.ts +2 -0
  53. package/dist/agents/robota.test.d.ts.map +1 -0
  54. package/dist/agents/robota.test.js +416 -0
  55. package/dist/agents/robota.test.js.map +1 -0
  56. package/dist/browser/builtin-templates.json +107 -0
  57. package/dist/browser/index.d.ts +4237 -0
  58. package/dist/browser/index.js +4 -0
  59. package/dist/core/robota.d.ts +694 -0
  60. package/dist/core/robota.d.ts.map +1 -0
  61. package/dist/core/robota.js +1277 -0
  62. package/dist/core/robota.js.map +1 -0
  63. package/dist/executors/local-executor.d.ts +96 -0
  64. package/dist/executors/local-executor.d.ts.map +1 -0
  65. package/dist/executors/local-executor.js +197 -0
  66. package/dist/executors/local-executor.js.map +1 -0
  67. package/dist/executors/local-executor.test.d.ts +2 -0
  68. package/dist/executors/local-executor.test.d.ts.map +1 -0
  69. package/dist/executors/local-executor.test.js +192 -0
  70. package/dist/executors/local-executor.test.js.map +1 -0
  71. package/dist/index.d.ts +274 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +235 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/interfaces/agent.d.ts +198 -0
  76. package/dist/interfaces/agent.d.ts.map +1 -0
  77. package/dist/interfaces/agent.js +2 -0
  78. package/dist/interfaces/agent.js.map +1 -0
  79. package/dist/interfaces/event-service.d.ts +79 -0
  80. package/dist/interfaces/event-service.d.ts.map +1 -0
  81. package/dist/interfaces/event-service.js +2 -0
  82. package/dist/interfaces/event-service.js.map +1 -0
  83. package/dist/interfaces/executor.d.ts +128 -0
  84. package/dist/interfaces/executor.d.ts.map +1 -0
  85. package/dist/interfaces/executor.js +2 -0
  86. package/dist/interfaces/executor.js.map +1 -0
  87. package/dist/interfaces/history-module.d.ts +19 -0
  88. package/dist/interfaces/history-module.d.ts.map +1 -0
  89. package/dist/interfaces/history-module.js +2 -0
  90. package/dist/interfaces/history-module.js.map +1 -0
  91. package/dist/interfaces/index.d.ts +13 -0
  92. package/dist/interfaces/index.d.ts.map +1 -0
  93. package/dist/interfaces/index.js +4 -0
  94. package/dist/interfaces/index.js.map +1 -0
  95. package/dist/interfaces/manager.d.ts +142 -0
  96. package/dist/interfaces/manager.d.ts.map +1 -0
  97. package/dist/interfaces/manager.js +2 -0
  98. package/dist/interfaces/manager.js.map +1 -0
  99. package/dist/interfaces/messages.d.ts +75 -0
  100. package/dist/interfaces/messages.d.ts.map +1 -0
  101. package/dist/interfaces/messages.js +29 -0
  102. package/dist/interfaces/messages.js.map +1 -0
  103. package/dist/interfaces/progress-reporting.d.ts +86 -0
  104. package/dist/interfaces/progress-reporting.d.ts.map +1 -0
  105. package/dist/interfaces/progress-reporting.js +37 -0
  106. package/dist/interfaces/progress-reporting.js.map +1 -0
  107. package/dist/interfaces/provider.d.ts +217 -0
  108. package/dist/interfaces/provider.d.ts.map +1 -0
  109. package/dist/interfaces/provider.js +2 -0
  110. package/dist/interfaces/provider.js.map +1 -0
  111. package/dist/interfaces/service.d.ts +205 -0
  112. package/dist/interfaces/service.d.ts.map +1 -0
  113. package/dist/interfaces/service.js +6 -0
  114. package/dist/interfaces/service.js.map +1 -0
  115. package/dist/interfaces/tool.d.ts +248 -0
  116. package/dist/interfaces/tool.d.ts.map +1 -0
  117. package/dist/interfaces/tool.js +2 -0
  118. package/dist/interfaces/tool.js.map +1 -0
  119. package/dist/interfaces/types.d.ts +71 -0
  120. package/dist/interfaces/types.d.ts.map +1 -0
  121. package/dist/interfaces/types.js +33 -0
  122. package/dist/interfaces/types.js.map +1 -0
  123. package/dist/interfaces/workflow-converter.d.ts +193 -0
  124. package/dist/interfaces/workflow-converter.d.ts.map +1 -0
  125. package/dist/interfaces/workflow-converter.js +11 -0
  126. package/dist/interfaces/workflow-converter.js.map +1 -0
  127. package/dist/interfaces/workflow-validator.d.ts +209 -0
  128. package/dist/interfaces/workflow-validator.d.ts.map +1 -0
  129. package/dist/interfaces/workflow-validator.js +16 -0
  130. package/dist/interfaces/workflow-validator.js.map +1 -0
  131. package/dist/managers/agent-factory.d.ts +132 -0
  132. package/dist/managers/agent-factory.d.ts.map +1 -0
  133. package/dist/managers/agent-factory.js +284 -0
  134. package/dist/managers/agent-factory.js.map +1 -0
  135. package/dist/managers/agent-factory.test.d.ts +2 -0
  136. package/dist/managers/agent-factory.test.d.ts.map +1 -0
  137. package/dist/managers/agent-factory.test.js +249 -0
  138. package/dist/managers/agent-factory.test.js.map +1 -0
  139. package/dist/managers/agent-templates.d.ts +84 -0
  140. package/dist/managers/agent-templates.d.ts.map +1 -0
  141. package/dist/managers/agent-templates.js +159 -0
  142. package/dist/managers/agent-templates.js.map +1 -0
  143. package/dist/managers/ai-provider-manager.d.ts +80 -0
  144. package/dist/managers/ai-provider-manager.d.ts.map +1 -0
  145. package/dist/managers/ai-provider-manager.js +226 -0
  146. package/dist/managers/ai-provider-manager.js.map +1 -0
  147. package/dist/managers/conversation-history-manager.d.ts +455 -0
  148. package/dist/managers/conversation-history-manager.d.ts.map +1 -0
  149. package/dist/managers/conversation-history-manager.js +578 -0
  150. package/dist/managers/conversation-history-manager.js.map +1 -0
  151. package/dist/managers/conversation-history-manager.test.d.ts +2 -0
  152. package/dist/managers/conversation-history-manager.test.d.ts.map +1 -0
  153. package/dist/managers/conversation-history-manager.test.js +374 -0
  154. package/dist/managers/conversation-history-manager.test.js.map +1 -0
  155. package/dist/managers/index.d.ts +8 -0
  156. package/dist/managers/index.d.ts.map +1 -0
  157. package/dist/managers/index.js +8 -0
  158. package/dist/managers/index.js.map +1 -0
  159. package/dist/managers/module-registry.d.ts +161 -0
  160. package/dist/managers/module-registry.d.ts.map +1 -0
  161. package/dist/managers/module-registry.js +519 -0
  162. package/dist/managers/module-registry.js.map +1 -0
  163. package/dist/managers/module-type-registry.d.ts +113 -0
  164. package/dist/managers/module-type-registry.d.ts.map +1 -0
  165. package/dist/managers/module-type-registry.js +439 -0
  166. package/dist/managers/module-type-registry.js.map +1 -0
  167. package/dist/managers/plugins.d.ts +166 -0
  168. package/dist/managers/plugins.d.ts.map +1 -0
  169. package/dist/managers/plugins.js +339 -0
  170. package/dist/managers/plugins.js.map +1 -0
  171. package/dist/managers/tool-manager.d.ts +70 -0
  172. package/dist/managers/tool-manager.d.ts.map +1 -0
  173. package/dist/managers/tool-manager.js +138 -0
  174. package/dist/managers/tool-manager.js.map +1 -0
  175. package/dist/managers/tool-manager.test.d.ts +2 -0
  176. package/dist/managers/tool-manager.test.d.ts.map +1 -0
  177. package/dist/managers/tool-manager.test.js +186 -0
  178. package/dist/managers/tool-manager.test.js.map +1 -0
  179. package/dist/node/builtin-templates.json +107 -0
  180. package/dist/node/index.cjs +4 -0
  181. package/dist/node/index.d.cts +4237 -0
  182. package/dist/node/index.d.ts +4237 -0
  183. package/dist/node/index.js +4 -0
  184. package/dist/plugins/conversation-history/conversation-history-plugin.d.ts +67 -0
  185. package/dist/plugins/conversation-history/conversation-history-plugin.d.ts.map +1 -0
  186. package/dist/plugins/conversation-history/conversation-history-plugin.js +270 -0
  187. package/dist/plugins/conversation-history/conversation-history-plugin.js.map +1 -0
  188. package/dist/plugins/conversation-history/index.d.ts +3 -0
  189. package/dist/plugins/conversation-history/index.d.ts.map +1 -0
  190. package/dist/plugins/conversation-history/index.js +2 -0
  191. package/dist/plugins/conversation-history/index.js.map +1 -0
  192. package/dist/plugins/conversation-history/storages/database-storage.d.ts +19 -0
  193. package/dist/plugins/conversation-history/storages/database-storage.d.ts.map +1 -0
  194. package/dist/plugins/conversation-history/storages/database-storage.js +94 -0
  195. package/dist/plugins/conversation-history/storages/database-storage.js.map +1 -0
  196. package/dist/plugins/conversation-history/storages/file-storage.d.ts +15 -0
  197. package/dist/plugins/conversation-history/storages/file-storage.d.ts.map +1 -0
  198. package/dist/plugins/conversation-history/storages/file-storage.js +94 -0
  199. package/dist/plugins/conversation-history/storages/file-storage.js.map +1 -0
  200. package/dist/plugins/conversation-history/storages/index.d.ts +4 -0
  201. package/dist/plugins/conversation-history/storages/index.d.ts.map +1 -0
  202. package/dist/plugins/conversation-history/storages/index.js +4 -0
  203. package/dist/plugins/conversation-history/storages/index.js.map +1 -0
  204. package/dist/plugins/conversation-history/storages/memory-storage.d.ts +15 -0
  205. package/dist/plugins/conversation-history/storages/memory-storage.d.ts.map +1 -0
  206. package/dist/plugins/conversation-history/storages/memory-storage.js +33 -0
  207. package/dist/plugins/conversation-history/storages/memory-storage.js.map +1 -0
  208. package/dist/plugins/conversation-history/types.d.ts +61 -0
  209. package/dist/plugins/conversation-history/types.d.ts.map +1 -0
  210. package/dist/plugins/conversation-history/types.js +2 -0
  211. package/dist/plugins/conversation-history/types.js.map +1 -0
  212. package/dist/plugins/error-handling/context-adapter.d.ts +30 -0
  213. package/dist/plugins/error-handling/context-adapter.d.ts.map +1 -0
  214. package/dist/plugins/error-handling/context-adapter.js +41 -0
  215. package/dist/plugins/error-handling/context-adapter.js.map +1 -0
  216. package/dist/plugins/error-handling/error-handling-plugin.d.ts +49 -0
  217. package/dist/plugins/error-handling/error-handling-plugin.d.ts.map +1 -0
  218. package/dist/plugins/error-handling/error-handling-plugin.js +229 -0
  219. package/dist/plugins/error-handling/error-handling-plugin.js.map +1 -0
  220. package/dist/plugins/error-handling/index.d.ts +10 -0
  221. package/dist/plugins/error-handling/index.d.ts.map +1 -0
  222. package/dist/plugins/error-handling/index.js +10 -0
  223. package/dist/plugins/error-handling/index.js.map +1 -0
  224. package/dist/plugins/error-handling/types.d.ts +73 -0
  225. package/dist/plugins/error-handling/types.d.ts.map +1 -0
  226. package/dist/plugins/error-handling/types.js +14 -0
  227. package/dist/plugins/error-handling/types.js.map +1 -0
  228. package/dist/plugins/event-emitter/metrics.d.ts +17 -0
  229. package/dist/plugins/event-emitter/metrics.d.ts.map +1 -0
  230. package/dist/plugins/event-emitter/metrics.js +17 -0
  231. package/dist/plugins/event-emitter/metrics.js.map +1 -0
  232. package/dist/plugins/event-emitter/types.d.ts +112 -0
  233. package/dist/plugins/event-emitter/types.d.ts.map +1 -0
  234. package/dist/plugins/event-emitter/types.js +65 -0
  235. package/dist/plugins/event-emitter/types.js.map +1 -0
  236. package/dist/plugins/event-emitter-plugin.d.ts +222 -0
  237. package/dist/plugins/event-emitter-plugin.d.ts.map +1 -0
  238. package/dist/plugins/event-emitter-plugin.js +432 -0
  239. package/dist/plugins/event-emitter-plugin.js.map +1 -0
  240. package/dist/plugins/event-emitter-plugin.test.d.ts +2 -0
  241. package/dist/plugins/event-emitter-plugin.test.d.ts.map +1 -0
  242. package/dist/plugins/event-emitter-plugin.test.js +94 -0
  243. package/dist/plugins/event-emitter-plugin.test.js.map +1 -0
  244. package/dist/plugins/execution/execution-analytics-plugin.d.ts +129 -0
  245. package/dist/plugins/execution/execution-analytics-plugin.d.ts.map +1 -0
  246. package/dist/plugins/execution/execution-analytics-plugin.js +517 -0
  247. package/dist/plugins/execution/execution-analytics-plugin.js.map +1 -0
  248. package/dist/plugins/execution/index.d.ts +3 -0
  249. package/dist/plugins/execution/index.d.ts.map +1 -0
  250. package/dist/plugins/execution/index.js +2 -0
  251. package/dist/plugins/execution/index.js.map +1 -0
  252. package/dist/plugins/execution/types.d.ts +90 -0
  253. package/dist/plugins/execution/types.d.ts.map +1 -0
  254. package/dist/plugins/execution/types.js +2 -0
  255. package/dist/plugins/execution/types.js.map +1 -0
  256. package/dist/plugins/index.d.ts +10 -0
  257. package/dist/plugins/index.d.ts.map +1 -0
  258. package/dist/plugins/index.js +11 -0
  259. package/dist/plugins/index.js.map +1 -0
  260. package/dist/plugins/limits/types.d.ts +61 -0
  261. package/dist/plugins/limits/types.d.ts.map +1 -0
  262. package/dist/plugins/limits/types.js +2 -0
  263. package/dist/plugins/limits/types.js.map +1 -0
  264. package/dist/plugins/limits-plugin.d.ts +113 -0
  265. package/dist/plugins/limits-plugin.d.ts.map +1 -0
  266. package/dist/plugins/limits-plugin.js +380 -0
  267. package/dist/plugins/limits-plugin.js.map +1 -0
  268. package/dist/plugins/logging/formatters.d.ts +14 -0
  269. package/dist/plugins/logging/formatters.d.ts.map +1 -0
  270. package/dist/plugins/logging/formatters.js +24 -0
  271. package/dist/plugins/logging/formatters.js.map +1 -0
  272. package/dist/plugins/logging/index.d.ts +3 -0
  273. package/dist/plugins/logging/index.d.ts.map +1 -0
  274. package/dist/plugins/logging/index.js +2 -0
  275. package/dist/plugins/logging/index.js.map +1 -0
  276. package/dist/plugins/logging/logging-plugin.d.ts +91 -0
  277. package/dist/plugins/logging/logging-plugin.d.ts.map +1 -0
  278. package/dist/plugins/logging/logging-plugin.js +335 -0
  279. package/dist/plugins/logging/logging-plugin.js.map +1 -0
  280. package/dist/plugins/logging/storages/console-storage.d.ts +14 -0
  281. package/dist/plugins/logging/storages/console-storage.d.ts.map +1 -0
  282. package/dist/plugins/logging/storages/console-storage.js +38 -0
  283. package/dist/plugins/logging/storages/console-storage.js.map +1 -0
  284. package/dist/plugins/logging/storages/file-storage.d.ts +14 -0
  285. package/dist/plugins/logging/storages/file-storage.d.ts.map +1 -0
  286. package/dist/plugins/logging/storages/file-storage.js +41 -0
  287. package/dist/plugins/logging/storages/file-storage.js.map +1 -0
  288. package/dist/plugins/logging/storages/index.d.ts +5 -0
  289. package/dist/plugins/logging/storages/index.d.ts.map +1 -0
  290. package/dist/plugins/logging/storages/index.js +5 -0
  291. package/dist/plugins/logging/storages/index.js.map +1 -0
  292. package/dist/plugins/logging/storages/remote-storage.d.ts +20 -0
  293. package/dist/plugins/logging/storages/remote-storage.d.ts.map +1 -0
  294. package/dist/plugins/logging/storages/remote-storage.js +61 -0
  295. package/dist/plugins/logging/storages/remote-storage.js.map +1 -0
  296. package/dist/plugins/logging/storages/silent-storage.d.ts +10 -0
  297. package/dist/plugins/logging/storages/silent-storage.d.ts.map +1 -0
  298. package/dist/plugins/logging/storages/silent-storage.js +15 -0
  299. package/dist/plugins/logging/storages/silent-storage.js.map +1 -0
  300. package/dist/plugins/logging/types.d.ts +84 -0
  301. package/dist/plugins/logging/types.d.ts.map +1 -0
  302. package/dist/plugins/logging/types.js +2 -0
  303. package/dist/plugins/logging/types.js.map +1 -0
  304. package/dist/plugins/performance/collectors/system-metrics-collector.d.ts +12 -0
  305. package/dist/plugins/performance/collectors/system-metrics-collector.d.ts.map +1 -0
  306. package/dist/plugins/performance/collectors/system-metrics-collector.js +65 -0
  307. package/dist/plugins/performance/collectors/system-metrics-collector.js.map +1 -0
  308. package/dist/plugins/performance/index.d.ts +5 -0
  309. package/dist/plugins/performance/index.d.ts.map +1 -0
  310. package/dist/plugins/performance/index.js +4 -0
  311. package/dist/plugins/performance/index.js.map +1 -0
  312. package/dist/plugins/performance/performance-plugin.d.ts +49 -0
  313. package/dist/plugins/performance/performance-plugin.d.ts.map +1 -0
  314. package/dist/plugins/performance/performance-plugin.js +293 -0
  315. package/dist/plugins/performance/performance-plugin.js.map +1 -0
  316. package/dist/plugins/performance/storages/index.d.ts +2 -0
  317. package/dist/plugins/performance/storages/index.d.ts.map +1 -0
  318. package/dist/plugins/performance/storages/index.js +4 -0
  319. package/dist/plugins/performance/storages/index.js.map +1 -0
  320. package/dist/plugins/performance/storages/memory-storage.d.ts +19 -0
  321. package/dist/plugins/performance/storages/memory-storage.d.ts.map +1 -0
  322. package/dist/plugins/performance/storages/memory-storage.js +69 -0
  323. package/dist/plugins/performance/storages/memory-storage.js.map +1 -0
  324. package/dist/plugins/performance/types.d.ts +154 -0
  325. package/dist/plugins/performance/types.d.ts.map +1 -0
  326. package/dist/plugins/performance/types.js +2 -0
  327. package/dist/plugins/performance/types.js.map +1 -0
  328. package/dist/plugins/usage/aggregate-usage-stats.d.ts +12 -0
  329. package/dist/plugins/usage/aggregate-usage-stats.d.ts.map +1 -0
  330. package/dist/plugins/usage/aggregate-usage-stats.js +115 -0
  331. package/dist/plugins/usage/aggregate-usage-stats.js.map +1 -0
  332. package/dist/plugins/usage/index.d.ts +5 -0
  333. package/dist/plugins/usage/index.d.ts.map +1 -0
  334. package/dist/plugins/usage/index.js +4 -0
  335. package/dist/plugins/usage/index.js.map +1 -0
  336. package/dist/plugins/usage/storages/file-storage.d.ts +22 -0
  337. package/dist/plugins/usage/storages/file-storage.d.ts.map +1 -0
  338. package/dist/plugins/usage/storages/file-storage.js +111 -0
  339. package/dist/plugins/usage/storages/file-storage.js.map +1 -0
  340. package/dist/plugins/usage/storages/index.d.ts +5 -0
  341. package/dist/plugins/usage/storages/index.d.ts.map +1 -0
  342. package/dist/plugins/usage/storages/index.js +5 -0
  343. package/dist/plugins/usage/storages/index.js.map +1 -0
  344. package/dist/plugins/usage/storages/memory-storage.d.ts +22 -0
  345. package/dist/plugins/usage/storages/memory-storage.d.ts.map +1 -0
  346. package/dist/plugins/usage/storages/memory-storage.js +42 -0
  347. package/dist/plugins/usage/storages/memory-storage.js.map +1 -0
  348. package/dist/plugins/usage/storages/remote-storage.d.ts +26 -0
  349. package/dist/plugins/usage/storages/remote-storage.d.ts.map +1 -0
  350. package/dist/plugins/usage/storages/remote-storage.js +115 -0
  351. package/dist/plugins/usage/storages/remote-storage.js.map +1 -0
  352. package/dist/plugins/usage/storages/silent-storage.d.ts +19 -0
  353. package/dist/plugins/usage/storages/silent-storage.d.ts.map +1 -0
  354. package/dist/plugins/usage/storages/silent-storage.js +26 -0
  355. package/dist/plugins/usage/storages/silent-storage.js.map +1 -0
  356. package/dist/plugins/usage/types.d.ts +127 -0
  357. package/dist/plugins/usage/types.d.ts.map +1 -0
  358. package/dist/plugins/usage/types.js +2 -0
  359. package/dist/plugins/usage/types.js.map +1 -0
  360. package/dist/plugins/usage/usage-plugin.d.ts +67 -0
  361. package/dist/plugins/usage/usage-plugin.d.ts.map +1 -0
  362. package/dist/plugins/usage/usage-plugin.js +309 -0
  363. package/dist/plugins/usage/usage-plugin.js.map +1 -0
  364. package/dist/plugins/webhook/http-client.d.ts +30 -0
  365. package/dist/plugins/webhook/http-client.d.ts.map +1 -0
  366. package/dist/plugins/webhook/http-client.js +110 -0
  367. package/dist/plugins/webhook/http-client.js.map +1 -0
  368. package/dist/plugins/webhook/index.d.ts +9 -0
  369. package/dist/plugins/webhook/index.d.ts.map +1 -0
  370. package/dist/plugins/webhook/index.js +9 -0
  371. package/dist/plugins/webhook/index.js.map +1 -0
  372. package/dist/plugins/webhook/transformer.d.ts +63 -0
  373. package/dist/plugins/webhook/transformer.d.ts.map +1 -0
  374. package/dist/plugins/webhook/transformer.js +157 -0
  375. package/dist/plugins/webhook/transformer.js.map +1 -0
  376. package/dist/plugins/webhook/types.d.ts +183 -0
  377. package/dist/plugins/webhook/types.d.ts.map +1 -0
  378. package/dist/plugins/webhook/types.js +2 -0
  379. package/dist/plugins/webhook/types.js.map +1 -0
  380. package/dist/plugins/webhook/webhook-plugin.d.ts +92 -0
  381. package/dist/plugins/webhook/webhook-plugin.d.ts.map +1 -0
  382. package/dist/plugins/webhook/webhook-plugin.js +328 -0
  383. package/dist/plugins/webhook/webhook-plugin.js.map +1 -0
  384. package/dist/schemas/agent-template-schema.d.ts +137 -0
  385. package/dist/schemas/agent-template-schema.d.ts.map +1 -0
  386. package/dist/schemas/agent-template-schema.js +87 -0
  387. package/dist/schemas/agent-template-schema.js.map +1 -0
  388. package/dist/services/conversation-service/index.d.ts +88 -0
  389. package/dist/services/conversation-service/index.d.ts.map +1 -0
  390. package/dist/services/conversation-service/index.js +441 -0
  391. package/dist/services/conversation-service/index.js.map +1 -0
  392. package/dist/services/conversation-service/types.d.ts +32 -0
  393. package/dist/services/conversation-service/types.d.ts.map +1 -0
  394. package/dist/services/conversation-service/types.js +8 -0
  395. package/dist/services/conversation-service/types.js.map +1 -0
  396. package/dist/services/event-service.d.ts +61 -0
  397. package/dist/services/event-service.d.ts.map +1 -0
  398. package/dist/services/event-service.js +110 -0
  399. package/dist/services/event-service.js.map +1 -0
  400. package/dist/services/event-service.test.d.ts +2 -0
  401. package/dist/services/event-service.test.d.ts.map +1 -0
  402. package/dist/services/event-service.test.js +86 -0
  403. package/dist/services/event-service.test.js.map +1 -0
  404. package/dist/services/execution-service.d.ts +151 -0
  405. package/dist/services/execution-service.d.ts.map +1 -0
  406. package/dist/services/execution-service.js +1262 -0
  407. package/dist/services/execution-service.js.map +1 -0
  408. package/dist/services/execution-service.test.d.ts +2 -0
  409. package/dist/services/execution-service.test.d.ts.map +1 -0
  410. package/dist/services/execution-service.test.js +338 -0
  411. package/dist/services/execution-service.test.js.map +1 -0
  412. package/dist/services/history-module.d.ts +15 -0
  413. package/dist/services/history-module.d.ts.map +1 -0
  414. package/dist/services/history-module.js +42 -0
  415. package/dist/services/history-module.js.map +1 -0
  416. package/dist/services/in-memory-history-store.d.ts +12 -0
  417. package/dist/services/in-memory-history-store.d.ts.map +1 -0
  418. package/dist/services/in-memory-history-store.js +41 -0
  419. package/dist/services/in-memory-history-store.js.map +1 -0
  420. package/dist/services/index.d.ts +7 -0
  421. package/dist/services/index.d.ts.map +1 -0
  422. package/dist/services/index.js +13 -0
  423. package/dist/services/index.js.map +1 -0
  424. package/dist/services/task-events.d.ts +6 -0
  425. package/dist/services/task-events.d.ts.map +1 -0
  426. package/dist/services/task-events.js +6 -0
  427. package/dist/services/task-events.js.map +1 -0
  428. package/dist/services/tool-execution-service.d.ts +74 -0
  429. package/dist/services/tool-execution-service.d.ts.map +1 -0
  430. package/dist/services/tool-execution-service.js +189 -0
  431. package/dist/services/tool-execution-service.js.map +1 -0
  432. package/dist/services/user-events.d.ts +7 -0
  433. package/dist/services/user-events.d.ts.map +1 -0
  434. package/dist/services/user-events.js +6 -0
  435. package/dist/services/user-events.js.map +1 -0
  436. package/dist/tools/implementations/function-tool/index.d.ts +9 -0
  437. package/dist/tools/implementations/function-tool/index.d.ts.map +1 -0
  438. package/dist/tools/implementations/function-tool/index.js +13 -0
  439. package/dist/tools/implementations/function-tool/index.js.map +1 -0
  440. package/dist/tools/implementations/function-tool/schema-converter.d.ts +32 -0
  441. package/dist/tools/implementations/function-tool/schema-converter.d.ts.map +1 -0
  442. package/dist/tools/implementations/function-tool/schema-converter.js +164 -0
  443. package/dist/tools/implementations/function-tool/schema-converter.js.map +1 -0
  444. package/dist/tools/implementations/function-tool/types.d.ts +72 -0
  445. package/dist/tools/implementations/function-tool/types.d.ts.map +1 -0
  446. package/dist/tools/implementations/function-tool/types.js +14 -0
  447. package/dist/tools/implementations/function-tool/types.js.map +1 -0
  448. package/dist/tools/implementations/function-tool.d.ts +49 -0
  449. package/dist/tools/implementations/function-tool.d.ts.map +1 -0
  450. package/dist/tools/implementations/function-tool.js +223 -0
  451. package/dist/tools/implementations/function-tool.js.map +1 -0
  452. package/dist/tools/implementations/index.d.ts +4 -0
  453. package/dist/tools/implementations/index.d.ts.map +1 -0
  454. package/dist/tools/implementations/index.js +5 -0
  455. package/dist/tools/implementations/index.js.map +1 -0
  456. package/dist/tools/implementations/mcp-tool.d.ts +72 -0
  457. package/dist/tools/implementations/mcp-tool.d.ts.map +1 -0
  458. package/dist/tools/implementations/mcp-tool.js +246 -0
  459. package/dist/tools/implementations/mcp-tool.js.map +1 -0
  460. package/dist/tools/implementations/openapi-tool.d.ts +56 -0
  461. package/dist/tools/implementations/openapi-tool.d.ts.map +1 -0
  462. package/dist/tools/implementations/openapi-tool.js +324 -0
  463. package/dist/tools/implementations/openapi-tool.js.map +1 -0
  464. package/dist/tools/implementations/relay-mcp-tool.d.ts +38 -0
  465. package/dist/tools/implementations/relay-mcp-tool.d.ts.map +1 -0
  466. package/dist/tools/implementations/relay-mcp-tool.js +46 -0
  467. package/dist/tools/implementations/relay-mcp-tool.js.map +1 -0
  468. package/dist/tools/index.d.ts +3 -0
  469. package/dist/tools/index.d.ts.map +1 -0
  470. package/dist/tools/index.js +4 -0
  471. package/dist/tools/index.js.map +1 -0
  472. package/dist/tools/registry/index.d.ts +2 -0
  473. package/dist/tools/registry/index.d.ts.map +1 -0
  474. package/dist/tools/registry/index.js +3 -0
  475. package/dist/tools/registry/index.js.map +1 -0
  476. package/dist/tools/registry/tool-registry.d.ts +54 -0
  477. package/dist/tools/registry/tool-registry.d.ts.map +1 -0
  478. package/dist/tools/registry/tool-registry.js +146 -0
  479. package/dist/tools/registry/tool-registry.js.map +1 -0
  480. package/dist/utils/errors.d.ts +155 -0
  481. package/dist/utils/errors.d.ts.map +1 -0
  482. package/dist/utils/errors.js +203 -0
  483. package/dist/utils/errors.js.map +1 -0
  484. package/dist/utils/execution-proxy.d.ts +75 -0
  485. package/dist/utils/execution-proxy.d.ts.map +1 -0
  486. package/dist/utils/execution-proxy.js +230 -0
  487. package/dist/utils/execution-proxy.js.map +1 -0
  488. package/dist/utils/index.d.ts +11 -0
  489. package/dist/utils/index.d.ts.map +1 -0
  490. package/dist/utils/index.js +7 -0
  491. package/dist/utils/index.js.map +1 -0
  492. package/dist/utils/logger.d.ts +74 -0
  493. package/dist/utils/logger.d.ts.map +1 -0
  494. package/dist/utils/logger.js +143 -0
  495. package/dist/utils/logger.js.map +1 -0
  496. package/dist/utils/message-converter.d.ts +68 -0
  497. package/dist/utils/message-converter.d.ts.map +1 -0
  498. package/dist/utils/message-converter.js +87 -0
  499. package/dist/utils/message-converter.js.map +1 -0
  500. package/dist/utils/periodic-task.d.ts +14 -0
  501. package/dist/utils/periodic-task.d.ts.map +1 -0
  502. package/dist/utils/periodic-task.js +26 -0
  503. package/dist/utils/periodic-task.js.map +1 -0
  504. package/dist/utils/validation.d.ts +40 -0
  505. package/dist/utils/validation.d.ts.map +1 -0
  506. package/dist/utils/validation.js +162 -0
  507. package/dist/utils/validation.js.map +1 -0
  508. 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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"}