chat-flow-ardymalihi 1.0.2 → 3.0.2

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 (359) hide show
  1. package/README.md +2 -0
  2. package/dist/{adapters → src/adapters}/intent/IntentMatcher.d.ts +16 -0
  3. package/dist/src/adapters/intent/IntentMatcher.d.ts.map +1 -0
  4. package/dist/src/adapters/intent/IntentMatcher.js +167 -0
  5. package/dist/src/adapters/intent/IntentMatcher.js.map +1 -0
  6. package/dist/{adapters → src/adapters}/intent/IntentService.d.ts +4 -5
  7. package/dist/src/adapters/intent/IntentService.d.ts.map +1 -0
  8. package/dist/{adapters → src/adapters}/intent/IntentService.js +15 -9
  9. package/dist/src/adapters/intent/IntentService.js.map +1 -0
  10. package/dist/src/adapters/intent/MockIntentService.d.ts +7 -0
  11. package/dist/src/adapters/intent/MockIntentService.d.ts.map +1 -0
  12. package/dist/{intent → src/adapters/intent}/MockIntentService.js +9 -3
  13. package/dist/src/adapters/intent/MockIntentService.js.map +1 -0
  14. package/dist/src/adapters/llm/GeminiLLMAdapter.d.ts.map +1 -0
  15. package/dist/src/adapters/llm/GeminiLLMAdapter.js.map +1 -0
  16. package/dist/src/adapters/llm/MockLLMAdapter.d.ts.map +1 -0
  17. package/dist/src/adapters/llm/MockLLMAdapter.js.map +1 -0
  18. package/dist/src/adapters/llm/OllamaLLMAdapter.d.ts +9 -0
  19. package/dist/src/adapters/llm/OllamaLLMAdapter.d.ts.map +1 -0
  20. package/dist/src/adapters/llm/OllamaLLMAdapter.js +74 -0
  21. package/dist/src/adapters/llm/OllamaLLMAdapter.js.map +1 -0
  22. package/dist/src/adapters/logger/ConsoleLogger.d.ts +12 -0
  23. package/dist/src/adapters/logger/ConsoleLogger.d.ts.map +1 -0
  24. package/dist/src/adapters/logger/ConsoleLogger.js +37 -0
  25. package/dist/src/adapters/logger/ConsoleLogger.js.map +1 -0
  26. package/dist/src/adapters/repository/InMemoryRepository.d.ts +57 -0
  27. package/dist/src/adapters/repository/InMemoryRepository.d.ts.map +1 -0
  28. package/dist/src/adapters/repository/InMemoryRepository.js +269 -0
  29. package/dist/src/adapters/repository/InMemoryRepository.js.map +1 -0
  30. package/dist/src/adapters/repository/RedisRepository.d.ts +72 -0
  31. package/dist/src/adapters/repository/RedisRepository.d.ts.map +1 -0
  32. package/dist/src/adapters/repository/RedisRepository.js +700 -0
  33. package/dist/src/adapters/repository/RedisRepository.js.map +1 -0
  34. package/dist/src/adapters/repository/SupabaseRepository.d.ts +60 -0
  35. package/dist/src/adapters/repository/SupabaseRepository.d.ts.map +1 -0
  36. package/dist/src/adapters/repository/SupabaseRepository.js +774 -0
  37. package/dist/src/adapters/repository/SupabaseRepository.js.map +1 -0
  38. package/dist/src/adapters/storage/RedisAudioStorageAdapter.d.ts +33 -0
  39. package/dist/src/adapters/storage/RedisAudioStorageAdapter.d.ts.map +1 -0
  40. package/dist/src/adapters/storage/RedisAudioStorageAdapter.js +121 -0
  41. package/dist/src/adapters/storage/RedisAudioStorageAdapter.js.map +1 -0
  42. package/dist/src/adapters/voice/GoogleVoiceAdapter.d.ts +33 -0
  43. package/dist/src/adapters/voice/GoogleVoiceAdapter.d.ts.map +1 -0
  44. package/dist/src/adapters/voice/GoogleVoiceAdapter.js +155 -0
  45. package/dist/src/adapters/voice/GoogleVoiceAdapter.js.map +1 -0
  46. package/dist/src/adapters/voice/LanguageVoiceMapper.d.ts +60 -0
  47. package/dist/src/adapters/voice/LanguageVoiceMapper.d.ts.map +1 -0
  48. package/dist/src/adapters/voice/LanguageVoiceMapper.js +130 -0
  49. package/dist/src/adapters/voice/LanguageVoiceMapper.js.map +1 -0
  50. package/dist/src/adapters/voice/VertexVoiceAdapter.d.ts +32 -0
  51. package/dist/src/adapters/voice/VertexVoiceAdapter.d.ts.map +1 -0
  52. package/dist/src/adapters/voice/VertexVoiceAdapter.js +179 -0
  53. package/dist/src/adapters/voice/VertexVoiceAdapter.js.map +1 -0
  54. package/dist/src/adapters/webhook/WebhookService.d.ts +47 -0
  55. package/dist/src/adapters/webhook/WebhookService.d.ts.map +1 -0
  56. package/dist/src/adapters/webhook/WebhookService.js +265 -0
  57. package/dist/src/adapters/webhook/WebhookService.js.map +1 -0
  58. package/dist/src/adapters/workflow/MockWorkflowAdapter.d.ts.map +1 -0
  59. package/dist/{workflow → src/adapters/workflow}/MockWorkflowAdapter.js +12 -1
  60. package/dist/src/adapters/workflow/MockWorkflowAdapter.js.map +1 -0
  61. package/dist/src/adapters/workflow/WorkflowAdapter.d.ts +55 -0
  62. package/dist/src/adapters/workflow/WorkflowAdapter.d.ts.map +1 -0
  63. package/dist/src/adapters/workflow/WorkflowAdapter.js +203 -0
  64. package/dist/src/adapters/workflow/WorkflowAdapter.js.map +1 -0
  65. package/dist/src/adapters/workflow/actions/index.d.ts +6 -0
  66. package/dist/src/adapters/workflow/actions/index.d.ts.map +1 -0
  67. package/dist/src/adapters/workflow/actions/index.js +22 -0
  68. package/dist/src/adapters/workflow/actions/index.js.map +1 -0
  69. package/dist/src/adapters/workflow/actions/pushOutputResultAction.d.ts +11 -0
  70. package/dist/src/adapters/workflow/actions/pushOutputResultAction.d.ts.map +1 -0
  71. package/dist/src/adapters/workflow/actions/pushOutputResultAction.js +31 -0
  72. package/dist/src/adapters/workflow/actions/pushOutputResultAction.js.map +1 -0
  73. package/dist/src/adapters/workflow/engine/constants.d.ts +3 -0
  74. package/dist/src/adapters/workflow/engine/constants.d.ts.map +1 -0
  75. package/dist/src/adapters/workflow/engine/constants.js +6 -0
  76. package/dist/src/adapters/workflow/engine/constants.js.map +1 -0
  77. package/dist/src/adapters/workflow/engine/engine.d.ts +32 -0
  78. package/dist/src/adapters/workflow/engine/engine.d.ts.map +1 -0
  79. package/dist/src/adapters/workflow/engine/engine.js +622 -0
  80. package/dist/src/adapters/workflow/engine/engine.js.map +1 -0
  81. package/dist/src/adapters/workflow/engine/event-registry.d.ts +12 -0
  82. package/dist/src/adapters/workflow/engine/event-registry.d.ts.map +1 -0
  83. package/dist/src/adapters/workflow/engine/event-registry.js +33 -0
  84. package/dist/src/adapters/workflow/engine/event-registry.js.map +1 -0
  85. package/dist/src/adapters/workflow/engine/interpolator.d.ts +11 -0
  86. package/dist/src/adapters/workflow/engine/interpolator.d.ts.map +1 -0
  87. package/dist/src/adapters/workflow/engine/interpolator.js +93 -0
  88. package/dist/src/adapters/workflow/engine/interpolator.js.map +1 -0
  89. package/dist/src/adapters/workflow/engine/registry.d.ts +12 -0
  90. package/dist/src/adapters/workflow/engine/registry.d.ts.map +1 -0
  91. package/dist/src/adapters/workflow/engine/registry.js +39 -0
  92. package/dist/src/adapters/workflow/engine/registry.js.map +1 -0
  93. package/dist/src/adapters/workflow/engine/template-registry.d.ts +60 -0
  94. package/dist/src/adapters/workflow/engine/template-registry.d.ts.map +1 -0
  95. package/dist/src/adapters/workflow/engine/template-registry.js +92 -0
  96. package/dist/src/adapters/workflow/engine/template-registry.js.map +1 -0
  97. package/dist/src/adapters/workflow/engine/utils/format-utils.d.ts +43 -0
  98. package/dist/src/adapters/workflow/engine/utils/format-utils.d.ts.map +1 -0
  99. package/dist/src/adapters/workflow/engine/utils/format-utils.js +137 -0
  100. package/dist/src/adapters/workflow/engine/utils/format-utils.js.map +1 -0
  101. package/dist/src/adapters/workflow/engine/utils/layout-calculator.d.ts +7 -0
  102. package/dist/src/adapters/workflow/engine/utils/layout-calculator.d.ts.map +1 -0
  103. package/dist/src/adapters/workflow/engine/utils/layout-calculator.js +87 -0
  104. package/dist/src/adapters/workflow/engine/utils/layout-calculator.js.map +1 -0
  105. package/dist/src/adapters/workflow/engine/utils/slugify.d.ts +2 -0
  106. package/dist/src/adapters/workflow/engine/utils/slugify.d.ts.map +1 -0
  107. package/dist/src/adapters/workflow/engine/utils/slugify.js +41 -0
  108. package/dist/src/adapters/workflow/engine/utils/slugify.js.map +1 -0
  109. package/dist/src/adapters/workflow/engine/validator.d.ts +9 -0
  110. package/dist/src/adapters/workflow/engine/validator.d.ts.map +1 -0
  111. package/dist/src/adapters/workflow/engine/validator.js +425 -0
  112. package/dist/src/adapters/workflow/engine/validator.js.map +1 -0
  113. package/dist/src/api/router.d.ts +3 -0
  114. package/dist/src/api/router.d.ts.map +1 -0
  115. package/dist/src/api/router.js +27 -0
  116. package/dist/src/api/router.js.map +1 -0
  117. package/dist/src/api/routes/configs.d.ts +3 -0
  118. package/dist/src/api/routes/configs.d.ts.map +1 -0
  119. package/dist/src/api/routes/configs.js +110 -0
  120. package/dist/src/api/routes/configs.js.map +1 -0
  121. package/dist/src/api/routes/executions.d.ts +3 -0
  122. package/dist/src/api/routes/executions.d.ts.map +1 -0
  123. package/dist/src/api/routes/executions.js +77 -0
  124. package/dist/src/api/routes/executions.js.map +1 -0
  125. package/dist/src/api/routes/intents.d.ts +3 -0
  126. package/dist/src/api/routes/intents.d.ts.map +1 -0
  127. package/dist/src/api/routes/intents.js +128 -0
  128. package/dist/src/api/routes/intents.js.map +1 -0
  129. package/dist/src/api/routes/sessions.d.ts +3 -0
  130. package/dist/src/api/routes/sessions.d.ts.map +1 -0
  131. package/dist/src/api/routes/sessions.js +105 -0
  132. package/dist/src/api/routes/sessions.js.map +1 -0
  133. package/dist/src/api/routes/users.d.ts +3 -0
  134. package/dist/src/api/routes/users.d.ts.map +1 -0
  135. package/dist/src/api/routes/users.js +51 -0
  136. package/dist/src/api/routes/users.js.map +1 -0
  137. package/dist/src/api/routes/workflows.d.ts +3 -0
  138. package/dist/src/api/routes/workflows.d.ts.map +1 -0
  139. package/dist/src/api/routes/workflows.js +132 -0
  140. package/dist/src/api/routes/workflows.js.map +1 -0
  141. package/dist/{config → src/config}/ChatFlowConfig.d.ts +7 -0
  142. package/dist/src/config/ChatFlowConfig.d.ts.map +1 -0
  143. package/dist/{config → src/config}/ChatFlowConfig.js +5 -0
  144. package/dist/src/config/ChatFlowConfig.js.map +1 -0
  145. package/dist/src/config/index.d.ts.map +1 -0
  146. package/dist/src/config/index.js.map +1 -0
  147. package/dist/src/config/swagger.d.ts +2 -0
  148. package/dist/src/config/swagger.d.ts.map +1 -0
  149. package/dist/src/config/swagger.js +136 -0
  150. package/dist/src/config/swagger.js.map +1 -0
  151. package/dist/src/core/entities/ConversationSession.d.ts +58 -0
  152. package/dist/src/core/entities/ConversationSession.d.ts.map +1 -0
  153. package/dist/src/core/entities/ConversationSession.js +160 -0
  154. package/dist/src/core/entities/ConversationSession.js.map +1 -0
  155. package/dist/{core → src/core}/entities/Message.d.ts +5 -2
  156. package/dist/src/core/entities/Message.d.ts.map +1 -0
  157. package/dist/{core → src/core}/entities/Message.js +2 -0
  158. package/dist/src/core/entities/Message.js.map +1 -0
  159. package/dist/src/core/errors/ChatFlowError.d.ts.map +1 -0
  160. package/dist/src/core/errors/ChatFlowError.js.map +1 -0
  161. package/dist/src/core/errors/index.d.ts.map +1 -0
  162. package/dist/src/core/errors/index.js.map +1 -0
  163. package/dist/src/core/utils/AudioUtils.d.ts +41 -0
  164. package/dist/src/core/utils/AudioUtils.d.ts.map +1 -0
  165. package/dist/src/core/utils/AudioUtils.js +188 -0
  166. package/dist/src/core/utils/AudioUtils.js.map +1 -0
  167. package/dist/src/core/utils/LanguageDetector.d.ts +52 -0
  168. package/dist/src/core/utils/LanguageDetector.d.ts.map +1 -0
  169. package/dist/src/core/utils/LanguageDetector.js +173 -0
  170. package/dist/src/core/utils/LanguageDetector.js.map +1 -0
  171. package/dist/src/demo/cli-demo.d.ts.map +1 -0
  172. package/dist/{demo → src/demo}/cli-demo.js +10 -6
  173. package/dist/src/demo/cli-demo.js.map +1 -0
  174. package/dist/src/demo/console-chat.d.ts.map +1 -0
  175. package/dist/{demo → src/demo}/console-chat.js +10 -6
  176. package/dist/src/demo/console-chat.js.map +1 -0
  177. package/dist/{index.d.ts → src/index.d.ts} +10 -5
  178. package/dist/src/index.d.ts.map +1 -0
  179. package/dist/{index.js → src/index.js} +25 -8
  180. package/dist/src/index.js.map +1 -0
  181. package/dist/src/interfaces.d.ts +663 -0
  182. package/dist/src/interfaces.d.ts.map +1 -0
  183. package/dist/src/interfaces.js +36 -0
  184. package/dist/src/interfaces.js.map +1 -0
  185. package/dist/src/orchestrator/Orchestrator.d.ts +62 -0
  186. package/dist/src/orchestrator/Orchestrator.d.ts.map +1 -0
  187. package/dist/src/orchestrator/Orchestrator.js +697 -0
  188. package/dist/src/orchestrator/Orchestrator.js.map +1 -0
  189. package/dist/src/scripts/debug-redis.d.ts.map +1 -0
  190. package/dist/src/scripts/debug-redis.js.map +1 -0
  191. package/dist/src/scripts/seed-collaborative-intents.d.ts +2 -0
  192. package/dist/src/scripts/seed-collaborative-intents.d.ts.map +1 -0
  193. package/dist/src/scripts/seed-collaborative-intents.js +90 -0
  194. package/dist/src/scripts/seed-collaborative-intents.js.map +1 -0
  195. package/dist/src/scripts/test-isolated-config.d.ts +2 -0
  196. package/dist/src/scripts/test-isolated-config.d.ts.map +1 -0
  197. package/dist/src/scripts/test-isolated-config.js +80 -0
  198. package/dist/src/scripts/test-isolated-config.js.map +1 -0
  199. package/dist/src/scripts/verify_memory_intents.d.ts.map +1 -0
  200. package/dist/src/scripts/verify_memory_intents.js.map +1 -0
  201. package/dist/src/scripts/verify_redis_intents.d.ts.map +1 -0
  202. package/dist/{scripts → src/scripts}/verify_redis_intents.js +4 -2
  203. package/dist/src/scripts/verify_redis_intents.js.map +1 -0
  204. package/dist/src/server/ChatFlowWebSocketServer.d.ts +42 -0
  205. package/dist/src/server/ChatFlowWebSocketServer.d.ts.map +1 -0
  206. package/dist/src/server/ChatFlowWebSocketServer.js +355 -0
  207. package/dist/src/server/ChatFlowWebSocketServer.js.map +1 -0
  208. package/dist/src/utils/crypto.d.ts +7 -0
  209. package/dist/src/utils/crypto.d.ts.map +1 -0
  210. package/dist/src/utils/crypto.js +35 -0
  211. package/dist/src/utils/crypto.js.map +1 -0
  212. package/dist/src/utils/encryption-helpers.d.ts +14 -0
  213. package/dist/src/utils/encryption-helpers.d.ts.map +1 -0
  214. package/dist/src/utils/encryption-helpers.js +49 -0
  215. package/dist/src/utils/encryption-helpers.js.map +1 -0
  216. package/dist/web/seed-demo-data.d.ts +2 -0
  217. package/dist/web/seed-demo-data.d.ts.map +1 -0
  218. package/dist/web/seed-demo-data.js +267 -0
  219. package/dist/web/seed-demo-data.js.map +1 -0
  220. package/dist/web/web-server.d.ts +2 -0
  221. package/dist/web/web-server.d.ts.map +1 -0
  222. package/dist/web/web-server.js +165 -0
  223. package/dist/web/web-server.js.map +1 -0
  224. package/package.json +32 -3
  225. package/dist/adapters/db/InMemorySessionRepository.js +0 -15
  226. package/dist/adapters/db/RedisSessionRepository.js +0 -41
  227. package/dist/adapters/intent/IntentMatcher.d.ts.map +0 -1
  228. package/dist/adapters/intent/IntentMatcher.js +0 -89
  229. package/dist/adapters/intent/IntentMatcher.js.map +0 -1
  230. package/dist/adapters/intent/IntentService.d.ts.map +0 -1
  231. package/dist/adapters/intent/IntentService.js.map +0 -1
  232. package/dist/adapters/intent/MockIntentAdapter.js +0 -29
  233. package/dist/adapters/llm/GeminiLLMAdapter.d.ts.map +0 -1
  234. package/dist/adapters/llm/GeminiLLMAdapter.js.map +0 -1
  235. package/dist/adapters/llm/MockLLMAdapter.d.ts.map +0 -1
  236. package/dist/adapters/llm/MockLLMAdapter.js.map +0 -1
  237. package/dist/adapters/memory/InMemorySessionRepository.js +0 -15
  238. package/dist/adapters/redis/RedisSessionRepository.js +0 -41
  239. package/dist/adapters/repository/InMemoryRepository.d.ts +0 -15
  240. package/dist/adapters/repository/InMemoryRepository.d.ts.map +0 -1
  241. package/dist/adapters/repository/InMemoryRepository.js +0 -41
  242. package/dist/adapters/repository/InMemoryRepository.js.map +0 -1
  243. package/dist/adapters/repository/IntentRepository.d.ts +0 -15
  244. package/dist/adapters/repository/IntentRepository.d.ts.map +0 -1
  245. package/dist/adapters/repository/IntentRepository.js +0 -28
  246. package/dist/adapters/repository/IntentRepository.js.map +0 -1
  247. package/dist/adapters/repository/RedisRepository.d.ts +0 -16
  248. package/dist/adapters/repository/RedisRepository.d.ts.map +0 -1
  249. package/dist/adapters/repository/RedisRepository.js +0 -87
  250. package/dist/adapters/repository/RedisRepository.js.map +0 -1
  251. package/dist/adapters/workflow/MockWorkflowAdapter.d.ts.map +0 -1
  252. package/dist/adapters/workflow/MockWorkflowAdapter.js +0 -162
  253. package/dist/adapters/workflow/MockWorkflowAdapter.js.map +0 -1
  254. package/dist/application/ConversationSession.d.ts +0 -23
  255. package/dist/application/ConversationSession.d.ts.map +0 -1
  256. package/dist/application/ConversationSession.js +0 -83
  257. package/dist/application/ConversationSession.js.map +0 -1
  258. package/dist/application/Message.d.ts +0 -11
  259. package/dist/application/Message.d.ts.map +0 -1
  260. package/dist/application/Message.js +0 -30
  261. package/dist/application/Message.js.map +0 -1
  262. package/dist/application/Orchestrator.d.ts +0 -18
  263. package/dist/application/Orchestrator.d.ts.map +0 -1
  264. package/dist/application/Orchestrator.js +0 -80
  265. package/dist/application/Orchestrator.js.map +0 -1
  266. package/dist/application/SessionState.js +0 -2
  267. package/dist/application/usecases/CreateSession.js +0 -20
  268. package/dist/application/usecases/HandleUserMessage.js +0 -69
  269. package/dist/config/ChatFlowConfig.d.ts.map +0 -1
  270. package/dist/config/ChatFlowConfig.js.map +0 -1
  271. package/dist/config/index.d.ts.map +0 -1
  272. package/dist/config/index.js.map +0 -1
  273. package/dist/core/entities/ConversationSession.d.ts +0 -23
  274. package/dist/core/entities/ConversationSession.d.ts.map +0 -1
  275. package/dist/core/entities/ConversationSession.js +0 -83
  276. package/dist/core/entities/ConversationSession.js.map +0 -1
  277. package/dist/core/entities/Message.d.ts.map +0 -1
  278. package/dist/core/entities/Message.js.map +0 -1
  279. package/dist/core/errors/ChatFlowError.d.ts.map +0 -1
  280. package/dist/core/errors/ChatFlowError.js.map +0 -1
  281. package/dist/core/errors/index.d.ts.map +0 -1
  282. package/dist/core/errors/index.js.map +0 -1
  283. package/dist/db/InMemoryRepository.d.ts +0 -15
  284. package/dist/db/InMemoryRepository.d.ts.map +0 -1
  285. package/dist/db/InMemoryRepository.js +0 -41
  286. package/dist/db/InMemoryRepository.js.map +0 -1
  287. package/dist/db/RedisRepository.d.ts +0 -16
  288. package/dist/db/RedisRepository.d.ts.map +0 -1
  289. package/dist/db/RedisRepository.js +0 -87
  290. package/dist/db/RedisRepository.js.map +0 -1
  291. package/dist/demo/cli-demo.d.ts.map +0 -1
  292. package/dist/demo/cli-demo.js.map +0 -1
  293. package/dist/demo/console-chat.d.ts.map +0 -1
  294. package/dist/demo/console-chat.js.map +0 -1
  295. package/dist/domain/conversation/ConversationSession.js +0 -82
  296. package/dist/domain/conversation/Message.js +0 -33
  297. package/dist/domain/conversation/SessionState.js +0 -10
  298. package/dist/index.d.ts.map +0 -1
  299. package/dist/index.js.map +0 -1
  300. package/dist/intent/IntentService.d.ts +0 -17
  301. package/dist/intent/IntentService.d.ts.map +0 -1
  302. package/dist/intent/IntentService.js +0 -51
  303. package/dist/intent/IntentService.js.map +0 -1
  304. package/dist/intent/MockIntentService.d.ts +0 -6
  305. package/dist/intent/MockIntentService.d.ts.map +0 -1
  306. package/dist/intent/MockIntentService.js.map +0 -1
  307. package/dist/interfaces.d.ts +0 -108
  308. package/dist/interfaces.d.ts.map +0 -1
  309. package/dist/interfaces.js +0 -18
  310. package/dist/interfaces.js.map +0 -1
  311. package/dist/llm/GeminiLLMAdapter.d.ts +0 -10
  312. package/dist/llm/GeminiLLMAdapter.d.ts.map +0 -1
  313. package/dist/llm/GeminiLLMAdapter.js +0 -102
  314. package/dist/llm/GeminiLLMAdapter.js.map +0 -1
  315. package/dist/llm/MockLLMAdapter.d.ts +0 -5
  316. package/dist/llm/MockLLMAdapter.d.ts.map +0 -1
  317. package/dist/llm/MockLLMAdapter.js +0 -31
  318. package/dist/llm/MockLLMAdapter.js.map +0 -1
  319. package/dist/orchestrator/Orchestrator.d.ts +0 -18
  320. package/dist/orchestrator/Orchestrator.d.ts.map +0 -1
  321. package/dist/orchestrator/Orchestrator.js +0 -80
  322. package/dist/orchestrator/Orchestrator.js.map +0 -1
  323. package/dist/ports/IIntentRepository.d.ts +0 -27
  324. package/dist/ports/IIntentRepository.d.ts.map +0 -1
  325. package/dist/ports/IIntentRepository.js +0 -3
  326. package/dist/ports/IIntentRepository.js.map +0 -1
  327. package/dist/ports/IntentPort.js +0 -2
  328. package/dist/ports/LLMPort.js +0 -2
  329. package/dist/ports/SessionRepository.js +0 -2
  330. package/dist/ports/WorkflowPort.js +0 -2
  331. package/dist/scripts/debug-redis.d.ts.map +0 -1
  332. package/dist/scripts/debug-redis.js.map +0 -1
  333. package/dist/scripts/verify_memory_intents.d.ts.map +0 -1
  334. package/dist/scripts/verify_memory_intents.js.map +0 -1
  335. package/dist/scripts/verify_redis_intents.d.ts.map +0 -1
  336. package/dist/scripts/verify_redis_intents.js.map +0 -1
  337. package/dist/verify_memory_intents.js +0 -44
  338. package/dist/verify_redis_intents.js +0 -49
  339. package/dist/workflow/MockWorkflowAdapter.d.ts +0 -5
  340. package/dist/workflow/MockWorkflowAdapter.d.ts.map +0 -1
  341. package/dist/workflow/MockWorkflowAdapter.js.map +0 -1
  342. /package/dist/{adapters → src/adapters}/llm/GeminiLLMAdapter.d.ts +0 -0
  343. /package/dist/{adapters → src/adapters}/llm/GeminiLLMAdapter.js +0 -0
  344. /package/dist/{adapters → src/adapters}/llm/MockLLMAdapter.d.ts +0 -0
  345. /package/dist/{adapters → src/adapters}/llm/MockLLMAdapter.js +0 -0
  346. /package/dist/{adapters → src/adapters}/workflow/MockWorkflowAdapter.d.ts +0 -0
  347. /package/dist/{config → src/config}/index.d.ts +0 -0
  348. /package/dist/{config → src/config}/index.js +0 -0
  349. /package/dist/{core → src/core}/errors/ChatFlowError.d.ts +0 -0
  350. /package/dist/{core → src/core}/errors/ChatFlowError.js +0 -0
  351. /package/dist/{core → src/core}/errors/index.d.ts +0 -0
  352. /package/dist/{core → src/core}/errors/index.js +0 -0
  353. /package/dist/{demo → src/demo}/cli-demo.d.ts +0 -0
  354. /package/dist/{demo → src/demo}/console-chat.d.ts +0 -0
  355. /package/dist/{scripts → src/scripts}/debug-redis.d.ts +0 -0
  356. /package/dist/{scripts → src/scripts}/debug-redis.js +0 -0
  357. /package/dist/{scripts → src/scripts}/verify_memory_intents.d.ts +0 -0
  358. /package/dist/{scripts → src/scripts}/verify_memory_intents.js +0 -0
  359. /package/dist/{scripts → src/scripts}/verify_redis_intents.d.ts +0 -0
@@ -0,0 +1,12 @@
1
+ import { EventDefinition } from "../../../interfaces";
2
+ export declare class EventRegistry {
3
+ private events;
4
+ private static instance;
5
+ private constructor();
6
+ static getInstance(): EventRegistry;
7
+ registerEvent(definition: EventDefinition): void;
8
+ getEvent(type: string): EventDefinition | undefined;
9
+ getAllEvents(): EventDefinition[];
10
+ hasEvent(type: string): boolean;
11
+ }
12
+ //# sourceMappingURL=event-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-registry.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/event-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IAEvC,OAAO;WAEO,WAAW,IAAI,aAAa;IAOnC,aAAa,CAAC,UAAU,EAAE,eAAe;IAOzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAInD,YAAY,IAAI,eAAe,EAAE;IAIjC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGzC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventRegistry = void 0;
4
+ const ConsoleLogger_1 = require("../../logger/ConsoleLogger");
5
+ const logger = new ConsoleLogger_1.ConsoleLogger('[EventRegistry]');
6
+ class EventRegistry {
7
+ constructor() {
8
+ this.events = {};
9
+ }
10
+ static getInstance() {
11
+ if (!EventRegistry.instance) {
12
+ EventRegistry.instance = new EventRegistry();
13
+ }
14
+ return EventRegistry.instance;
15
+ }
16
+ registerEvent(definition) {
17
+ if (this.events[definition.type]) {
18
+ logger.warn(`Overwriting existing event: ${definition.type}`);
19
+ }
20
+ this.events[definition.type] = definition;
21
+ }
22
+ getEvent(type) {
23
+ return this.events[type];
24
+ }
25
+ getAllEvents() {
26
+ return Object.values(this.events);
27
+ }
28
+ hasEvent(type) {
29
+ return !!this.events[type];
30
+ }
31
+ }
32
+ exports.EventRegistry = EventRegistry;
33
+ //# sourceMappingURL=event-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-registry.js","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/event-registry.ts"],"names":[],"mappings":";;;AACA,8DAA2D;AAE3D,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,iBAAiB,CAAC,CAAC;AAEpD,MAAa,aAAa;IAItB;QAHQ,WAAM,GAAoC,EAAE,CAAC;IAG7B,CAAC;IAElB,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC1B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;IAClC,CAAC;IAEM,aAAa,CAAC,UAA2B;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;IAC9C,CAAC;IAEM,QAAQ,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,YAAY;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEM,QAAQ,CAAC,IAAY;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACJ;AA/BD,sCA+BC"}
@@ -0,0 +1,11 @@
1
+ export declare function evaluateExpression(context: any, expression: string, throwOnMissing?: boolean): any;
2
+ /**
3
+ * Interpolates a string with {{variable}} patterns using the context.
4
+ *
5
+ * @param input The input string or object
6
+ * @param context The variables context
7
+ * @param throwOnMissing If true, throws ReferenceError for missing variables (used for validation)
8
+ * @returns The resolved output
9
+ */
10
+ export declare function interpolate(input: any, context: any, throwOnMissing?: boolean): any;
11
+ //# sourceMappingURL=interpolator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolator.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/interpolator.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAE,OAAe,GAAG,GAAG,CA0CzG;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAE,OAAe,GAAG,GAAG,CA8C1F"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evaluateExpression = evaluateExpression;
4
+ exports.interpolate = interpolate;
5
+ function evaluateExpression(context, expression, throwOnMissing = false) {
6
+ try {
7
+ // We want to support full JS syntax like "step1.output.data[0]?.name ?? 'Default'"
8
+ // We can use the Function constructor to create a dynamic function.
9
+ // To allow direct variable access (e.g. 'step1'), we accept context keys as arguments.
10
+ const keys = Object.keys(context);
11
+ const values = Object.values(context);
12
+ // Sanitize expression to prevent obvious exploits if possible,
13
+ // though this is fundamentally an 'eval' equivalent.
14
+ // Ensure we are returning a value.
15
+ // If the expression is just a statement, we wrap it.
16
+ const funcBody = `return ${expression}`;
17
+ const func = new Function(...keys, funcBody);
18
+ const result = func(...values);
19
+ return result;
20
+ }
21
+ catch (e) {
22
+ // Handle undefined variables (e.g., property_type when it doesn't exist in context)
23
+ if (e instanceof ReferenceError) {
24
+ // logger.info("Variable not defined in"${expression}", returning undefined`);
25
+ if (throwOnMissing) {
26
+ throw e;
27
+ }
28
+ return undefined;
29
+ }
30
+ // Return null if we try to access a property of undefined/null
31
+ // e.g. "Cannot read properties of undefined" or "Cannot read property 'x' of undefined"
32
+ if (e instanceof TypeError &&
33
+ (e.message.includes('Cannot read properties of undefined') ||
34
+ e.message.includes('Cannot read property') ||
35
+ e.message.includes('Cannot read properties of null'))) {
36
+ return undefined;
37
+ }
38
+ // Throw error to fail the workflow instead of silently continuing
39
+ throw new Error(`Interpolation failed for "${expression}": ${e.message}`);
40
+ }
41
+ }
42
+ /**
43
+ * Interpolates a string with {{variable}} patterns using the context.
44
+ *
45
+ * @param input The input string or object
46
+ * @param context The variables context
47
+ * @param throwOnMissing If true, throws ReferenceError for missing variables (used for validation)
48
+ * @returns The resolved output
49
+ */
50
+ function interpolate(input, context, throwOnMissing = false) {
51
+ if (typeof input === 'string') {
52
+ if (input.includes('{{')) {
53
+ // logger.info("Attempting to interpolate string:"${input}"`);
54
+ }
55
+ // Capture everything between {{ and }} to allow complex JS expressions
56
+ const regex = /\{\{(.*?)\}\}/g;
57
+ // Exact match check for non-string return types
58
+ if (input.match(/^\{\{(.*?)\}\}$/)) {
59
+ const match = regex.exec(input);
60
+ if (match) {
61
+ if (!match[1].trim()) {
62
+ throw new Error("Variable expression cannot be empty");
63
+ }
64
+ return evaluateExpression(context, match[1], throwOnMissing);
65
+ }
66
+ }
67
+ // String replacement
68
+ return input.replace(regex, (_, expression) => {
69
+ if (!expression.trim()) {
70
+ throw new Error("Variable expression cannot be empty");
71
+ }
72
+ const val = evaluateExpression(context, expression, throwOnMissing);
73
+ // If the result is an object/array, we probably want to JSON stringify it
74
+ // if it's being embedded in a string, OR just cast to string.
75
+ if (typeof val === 'object' && val !== null) {
76
+ return JSON.stringify(val);
77
+ }
78
+ return val !== undefined ? String(val) : "";
79
+ });
80
+ }
81
+ else if (Array.isArray(input)) {
82
+ return input.map(item => interpolate(item, context, throwOnMissing));
83
+ }
84
+ else if (typeof input === 'object' && input !== null) {
85
+ const result = {};
86
+ for (const key in input) {
87
+ result[key] = interpolate(input[key], context, throwOnMissing);
88
+ }
89
+ return result;
90
+ }
91
+ return input;
92
+ }
93
+ //# sourceMappingURL=interpolator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolator.js","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/interpolator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ActionDefinition } from "../../../interfaces";
2
+ export declare class ActionRegistry {
3
+ private actions;
4
+ private static instance;
5
+ private constructor();
6
+ static getInstance(): ActionRegistry;
7
+ registerAction(definition: ActionDefinition): void;
8
+ getAction(actionId: string): ActionDefinition | undefined;
9
+ getAllActions(): ActionDefinition[];
10
+ }
11
+ export declare function createAction<TInput, TOutput>(definition: ActionDefinition<TInput, TOutput>): ActionDefinition<TInput, TOutput>;
12
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IAExC,OAAO;WAEO,WAAW,IAAI,cAAc;IAOpC,cAAc,CAAC,UAAU,EAAE,gBAAgB;IAY3C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIzD,aAAa,IAAI,gBAAgB,EAAE;CAG7C;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EACxC,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9C,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionRegistry = void 0;
4
+ exports.createAction = createAction;
5
+ const ConsoleLogger_1 = require("../../logger/ConsoleLogger");
6
+ const logger = new ConsoleLogger_1.ConsoleLogger('[ActionRegistry]');
7
+ class ActionRegistry {
8
+ constructor() {
9
+ this.actions = {};
10
+ }
11
+ static getInstance() {
12
+ if (!ActionRegistry.instance) {
13
+ ActionRegistry.instance = new ActionRegistry();
14
+ }
15
+ return ActionRegistry.instance;
16
+ }
17
+ registerAction(definition) {
18
+ if (definition.isActive === false) {
19
+ logger.log(`Skipping inactive action: ${definition.id}`);
20
+ return;
21
+ }
22
+ if (this.actions[definition.id]) {
23
+ logger.warn(`Overwriting existing action: ${definition.id}`);
24
+ }
25
+ this.actions[definition.id] = definition;
26
+ }
27
+ getAction(actionId) {
28
+ return this.actions[actionId];
29
+ }
30
+ getAllActions() {
31
+ return Object.values(this.actions);
32
+ }
33
+ }
34
+ exports.ActionRegistry = ActionRegistry;
35
+ // Helper to enforce type safety when defining actions
36
+ function createAction(definition) {
37
+ return definition;
38
+ }
39
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/registry.ts"],"names":[],"mappings":";;;AAyCA,oCAIC;AA3CD,8DAA2D;AAE3D,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,kBAAkB,CAAC,CAAC;AAErD,MAAa,cAAc;IAIvB;QAHQ,YAAO,GAAqC,EAAE,CAAC;IAG/B,CAAC;IAElB,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC3B,cAAc,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,CAAC;IACnC,CAAC;IAEM,cAAc,CAAC,UAA4B;QAC9C,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,6BAA6B,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,gCAAgC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;IAC7C,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEM,aAAa;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;CACJ;AAhCD,wCAgCC;AAED,sDAAsD;AACtD,SAAgB,YAAY,CACxB,UAA6C;IAE7C,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { WorkflowTemplate } from "../../../interfaces";
2
+ /**
3
+ * Registry for managing workflow templates
4
+ * Provides a centralized way to register and retrieve workflow templates
5
+ */
6
+ export declare class TemplateRegistry {
7
+ private static instance;
8
+ private templates;
9
+ private constructor();
10
+ static getInstance(): TemplateRegistry;
11
+ /**
12
+ * Register a workflow template
13
+ * @param template - The workflow template to register
14
+ */
15
+ registerTemplate(template: WorkflowTemplate): void;
16
+ /**
17
+ * Register multiple workflow templates
18
+ * @param templates - Array of workflow templates to register
19
+ */
20
+ registerTemplates(templates: WorkflowTemplate[]): void;
21
+ /**
22
+ * Get a specific template by ID
23
+ * @param id - The template ID
24
+ * @returns The workflow template or undefined if not found
25
+ */
26
+ getTemplate(id: string): WorkflowTemplate | undefined;
27
+ /**
28
+ * Get all registered templates
29
+ * @returns Array of all workflow templates
30
+ */
31
+ getAllTemplates(): WorkflowTemplate[];
32
+ /**
33
+ * Get templates filtered by event type
34
+ * @param eventType - The event type to filter by
35
+ * @returns Array of templates matching the event type
36
+ */
37
+ getTemplatesByEventType(eventType: string): WorkflowTemplate[];
38
+ /**
39
+ * Get templates filtered by provider
40
+ * @param provider - The provider to filter by
41
+ * @returns Array of templates that use the specified provider
42
+ */
43
+ getTemplatesByProvider(provider: string): WorkflowTemplate[];
44
+ /**
45
+ * Check if a template exists
46
+ * @param id - The template ID
47
+ * @returns True if the template exists
48
+ */
49
+ hasTemplate(id: string): boolean;
50
+ /**
51
+ * Get the count of registered templates
52
+ * @returns Number of registered templates
53
+ */
54
+ getTemplateCount(): number;
55
+ /**
56
+ * Clear all registered templates (useful for testing)
57
+ */
58
+ clear(): void;
59
+ }
60
+ //# sourceMappingURL=template-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-registry.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/template-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD;;;GAGG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,SAAS,CAA4C;IAE7D,OAAO;WAIO,WAAW,IAAI,gBAAgB;IAO7C;;;OAGG;IACI,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAOzD;;;OAGG;IACI,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAI7D;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI5D;;;OAGG;IACI,eAAe,IAAI,gBAAgB,EAAE;IAI5C;;;;OAIG;IACI,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIrE;;;;OAIG;IACI,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAMnE;;;;OAIG;IACI,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIvC;;;OAGG;IACI,gBAAgB,IAAI,MAAM;IAIjC;;OAEG;IACI,KAAK,IAAI,IAAI;CAGvB"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateRegistry = void 0;
4
+ const ConsoleLogger_1 = require("../../logger/ConsoleLogger");
5
+ const logger = new ConsoleLogger_1.ConsoleLogger('[TemplateRegistry]');
6
+ /**
7
+ * Registry for managing workflow templates
8
+ * Provides a centralized way to register and retrieve workflow templates
9
+ */
10
+ class TemplateRegistry {
11
+ constructor() {
12
+ this.templates = new Map();
13
+ // Private constructor for singleton pattern
14
+ }
15
+ static getInstance() {
16
+ if (!TemplateRegistry.instance) {
17
+ TemplateRegistry.instance = new TemplateRegistry();
18
+ }
19
+ return TemplateRegistry.instance;
20
+ }
21
+ /**
22
+ * Register a workflow template
23
+ * @param template - The workflow template to register
24
+ */
25
+ registerTemplate(template) {
26
+ if (this.templates.has(template.id)) {
27
+ logger.warn(`[TemplateRegistry] Template with id ${template.id} is already registered. Overwriting.`);
28
+ }
29
+ this.templates.set(template.id, template);
30
+ }
31
+ /**
32
+ * Register multiple workflow templates
33
+ * @param templates - Array of workflow templates to register
34
+ */
35
+ registerTemplates(templates) {
36
+ templates.forEach(template => this.registerTemplate(template));
37
+ }
38
+ /**
39
+ * Get a specific template by ID
40
+ * @param id - The template ID
41
+ * @returns The workflow template or undefined if not found
42
+ */
43
+ getTemplate(id) {
44
+ return this.templates.get(id);
45
+ }
46
+ /**
47
+ * Get all registered templates
48
+ * @returns Array of all workflow templates
49
+ */
50
+ getAllTemplates() {
51
+ return Array.from(this.templates.values());
52
+ }
53
+ /**
54
+ * Get templates filtered by event type
55
+ * @param eventType - The event type to filter by
56
+ * @returns Array of templates matching the event type
57
+ */
58
+ getTemplatesByEventType(eventType) {
59
+ return this.getAllTemplates().filter(template => template.event_type === eventType);
60
+ }
61
+ /**
62
+ * Get templates filtered by provider
63
+ * @param provider - The provider to filter by
64
+ * @returns Array of templates that use the specified provider
65
+ */
66
+ getTemplatesByProvider(provider) {
67
+ return this.getAllTemplates().filter(template => template.metadata.providers.includes(provider));
68
+ }
69
+ /**
70
+ * Check if a template exists
71
+ * @param id - The template ID
72
+ * @returns True if the template exists
73
+ */
74
+ hasTemplate(id) {
75
+ return this.templates.has(id);
76
+ }
77
+ /**
78
+ * Get the count of registered templates
79
+ * @returns Number of registered templates
80
+ */
81
+ getTemplateCount() {
82
+ return this.templates.size;
83
+ }
84
+ /**
85
+ * Clear all registered templates (useful for testing)
86
+ */
87
+ clear() {
88
+ this.templates.clear();
89
+ }
90
+ }
91
+ exports.TemplateRegistry = TemplateRegistry;
92
+ //# sourceMappingURL=template-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-registry.js","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/template-registry.ts"],"names":[],"mappings":";;;AAEA,8DAA2D;AAE3D,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,oBAAoB,CAAC,CAAC;AAEvD;;;GAGG;AACH,MAAa,gBAAgB;IAIzB;QAFQ,cAAS,GAAkC,IAAI,GAAG,EAAE,CAAC;QAGzD,4CAA4C;IAChD,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC7B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,gBAAgB,CAAC,QAA0B;QAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,uCAAuC,QAAQ,CAAC,EAAE,sCAAsC,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,SAA6B;QAClD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,uBAAuB,CAAC,SAAiB;QAC5C,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACI,sBAAsB,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC5C,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACjD,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ;AA9FD,4CA8FC"}
@@ -0,0 +1,43 @@
1
+ import { VariableGroup } from "../../../../interfaces";
2
+ /**
3
+ * Finds the label for a variable path from the variables array
4
+ *
5
+ * @param path - The full variable path (e.g., "trigger.payload.call_summary.booking.date")
6
+ * @param variables - Array of variable groups to search
7
+ * @returns The friendly label if found, otherwise null
8
+ */
9
+ export declare function findVariableLabel(path: string, variables: VariableGroup[]): string | null;
10
+ /**
11
+ * Simplifies long variable paths for better readability in UI
12
+ *
13
+ * @param path - The full variable path (e.g., "trigger.payload.call_summary.booking.date")
14
+ * @param maxSegments - Maximum number of segments to show (default: 2 for long paths, 3 for medium)
15
+ * @returns Simplified path with ellipsis prefix (e.g., "...booking.date")
16
+ *
17
+ * @example
18
+ * simplifyVariablePath("trigger.payload.call_summary.booking.date") // "...booking.date"
19
+ * simplifyVariablePath("step_resolve_booking_date.output.startTime") // "...output.startTime"
20
+ * simplifyVariablePath("step_get_records.output[0].email") // "...output → first row → email"
21
+ * simplifyVariablePath("step_get_records.output[5].name") // "...output → row 6 → name"
22
+ * simplifyVariablePath("'listing_inquiry'") // "'listing_inquiry'" (keeps literals)
23
+ * simplifyVariablePath("user.name") // "user.name" (already short)
24
+ */
25
+ export declare function simplifyVariablePath(path: string, maxSegments?: number): string;
26
+ /**
27
+ * Formats a variable path with simplified display and full path in title attribute
28
+ * Useful for creating tooltip-enabled spans
29
+ *
30
+ * @param path - The full variable path
31
+ * @param variables - Optional array of variable groups to look up friendly names
32
+ * @returns Object with display text, full path, label, source type, and step info
33
+ */
34
+ export declare function formatVariableForDisplay(path: string, variables?: VariableGroup[]): {
35
+ display: string;
36
+ fullPath: string;
37
+ label: string | null;
38
+ isSimplified: boolean;
39
+ source: "unknown" | "config" | "trigger" | "step";
40
+ stepId: string | null;
41
+ stepName: string | null;
42
+ };
43
+ //# sourceMappingURL=format-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/workflow/engine/utils/format-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI,CAezF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CA6D/E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE;;;;;;;;EAoCjF"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findVariableLabel = findVariableLabel;
4
+ exports.simplifyVariablePath = simplifyVariablePath;
5
+ exports.formatVariableForDisplay = formatVariableForDisplay;
6
+ /**
7
+ * Finds the label for a variable path from the variables array
8
+ *
9
+ * @param path - The full variable path (e.g., "trigger.payload.call_summary.booking.date")
10
+ * @param variables - Array of variable groups to search
11
+ * @returns The friendly label if found, otherwise null
12
+ */
13
+ function findVariableLabel(path, variables) {
14
+ if (!path || !variables)
15
+ return null;
16
+ // Remove quotes if it's a string literal
17
+ const cleanPath = path.replace(/^['"]|['"]$/g, '').trim();
18
+ // Search through all variable groups
19
+ for (const group of variables) {
20
+ const found = group.variables.find((v) => v.path === cleanPath);
21
+ if (found) {
22
+ return found.label;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ /**
28
+ * Simplifies long variable paths for better readability in UI
29
+ *
30
+ * @param path - The full variable path (e.g., "trigger.payload.call_summary.booking.date")
31
+ * @param maxSegments - Maximum number of segments to show (default: 2 for long paths, 3 for medium)
32
+ * @returns Simplified path with ellipsis prefix (e.g., "...booking.date")
33
+ *
34
+ * @example
35
+ * simplifyVariablePath("trigger.payload.call_summary.booking.date") // "...booking.date"
36
+ * simplifyVariablePath("step_resolve_booking_date.output.startTime") // "...output.startTime"
37
+ * simplifyVariablePath("step_get_records.output[0].email") // "...output → first row → email"
38
+ * simplifyVariablePath("step_get_records.output[5].name") // "...output → row 6 → name"
39
+ * simplifyVariablePath("'listing_inquiry'") // "'listing_inquiry'" (keeps literals)
40
+ * simplifyVariablePath("user.name") // "user.name" (already short)
41
+ */
42
+ function simplifyVariablePath(path, maxSegments) {
43
+ if (!path)
44
+ return path;
45
+ // Keep string literals as-is (quoted strings)
46
+ if (path.startsWith("'") || path.startsWith('"')) {
47
+ return path;
48
+ }
49
+ // Keep numbers and booleans as-is
50
+ if (/^(true|false|\d+)$/.test(path.trim())) {
51
+ return path;
52
+ }
53
+ // Handle array indices: convert [0] to "first row", [n] to "row n+1"
54
+ let processedPath = path;
55
+ const arrayIndexPattern = /\[(\d+)\]/g;
56
+ const hasArrayIndex = arrayIndexPattern.test(path);
57
+ if (hasArrayIndex) {
58
+ processedPath = path.replace(/\[(\d+)\]/g, (match, index) => {
59
+ const idx = parseInt(index);
60
+ if (idx === 0) {
61
+ return ' → first row';
62
+ }
63
+ return ` → row ${idx + 1}`;
64
+ });
65
+ // Also replace dots with arrows for better readability when arrays are involved
66
+ processedPath = processedPath.replace(/\./g, ' → ');
67
+ // Simplify: remove step prefix and just show the meaningful parts
68
+ const parts = processedPath.split(' → ').filter(p => p.trim());
69
+ // If it starts with a step ID, remove it and show "..."
70
+ if (parts[0] && parts[0].startsWith('step_')) {
71
+ parts[0] = '...';
72
+ }
73
+ // Take last 3-4 meaningful parts
74
+ const significantParts = parts.slice(-4);
75
+ return significantParts.join(' → ');
76
+ }
77
+ // Original logic for non-array paths
78
+ // Split by dots and check length
79
+ const segments = path.split('.');
80
+ if (segments.length <= 2) {
81
+ return path; // Already short enough
82
+ }
83
+ // Special handling for step outputs: use arrows for better readability
84
+ // e.g., "step_get_customer_info.output.email" -> "... → output → email"
85
+ if (segments[0] && segments[0].startsWith('step_') && segments[1] === 'output') {
86
+ const outputParts = ['...', ...segments.slice(1)]; // Remove step name, keep output and properties
87
+ return outputParts.join(' → ');
88
+ }
89
+ // Determine how many segments to show
90
+ const segmentsToShow = maxSegments || (segments.length > 4 ? 2 : 3);
91
+ return '...' + segments.slice(-segmentsToShow).join('.');
92
+ }
93
+ /**
94
+ * Formats a variable path with simplified display and full path in title attribute
95
+ * Useful for creating tooltip-enabled spans
96
+ *
97
+ * @param path - The full variable path
98
+ * @param variables - Optional array of variable groups to look up friendly names
99
+ * @returns Object with display text, full path, label, source type, and step info
100
+ */
101
+ function formatVariableForDisplay(path, variables) {
102
+ const label = variables ? findVariableLabel(path, variables) : null;
103
+ // Detect source type
104
+ let source = 'unknown';
105
+ let stepId = null;
106
+ let stepName = null;
107
+ if (path.startsWith('trigger.')) {
108
+ source = 'trigger';
109
+ }
110
+ else if (path.startsWith('step_')) {
111
+ source = 'step';
112
+ // Extract step ID (e.g., "step_get_customer_info" from "step_get_customer_info.output[0].email")
113
+ const stepMatch = path.match(/^(step_[a-zA-Z0-9_]+)/);
114
+ if (stepMatch) {
115
+ stepId = stepMatch[1];
116
+ // Convert step_id to "Step Name" (e.g., "step_get_customer_info" -> "Get Customer Info")
117
+ stepName = stepId
118
+ .replace(/^step_/, '')
119
+ .split('_')
120
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
121
+ .join(' ');
122
+ }
123
+ }
124
+ else if (path.startsWith('configs.')) {
125
+ source = 'config';
126
+ }
127
+ return {
128
+ display: label || simplifyVariablePath(path),
129
+ fullPath: path,
130
+ label: label,
131
+ isSimplified: !label && simplifyVariablePath(path) !== path,
132
+ source,
133
+ stepId,
134
+ stepName
135
+ };
136
+ }
137
+ //# sourceMappingURL=format-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-utils.js","sourceRoot":"","sources":["../../../../../../src/adapters/workflow/engine/utils/format-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { WorkflowStep } from '../../../../interfaces';
2
+ /**
3
+ * Automatically calculates positions for workflow steps using the Dagre layout algorithm.
4
+ * Guarantees a top-down directed graph layout with minimal crossing.
5
+ */
6
+ export declare function autoLayoutWorkflow(steps: WorkflowStep[]): WorkflowStep[];
7
+ //# sourceMappingURL=layout-calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-calculator.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/workflow/engine/utils/layout-calculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAiFxE"}