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,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.autoLayoutWorkflow = autoLayoutWorkflow;
7
+ const dagre_1 = __importDefault(require("dagre"));
8
+ const NODE_WIDTH = 380;
9
+ const NODE_HEIGHT = 150;
10
+ /**
11
+ * Automatically calculates positions for workflow steps using the Dagre layout algorithm.
12
+ * Guarantees a top-down directed graph layout with minimal crossing.
13
+ */
14
+ function autoLayoutWorkflow(steps) {
15
+ if (!steps || steps.length === 0)
16
+ return [];
17
+ // Initialize Graph
18
+ const g = new dagre_1.default.graphlib.Graph();
19
+ g.setGraph({
20
+ rankdir: 'TB', // Top to Bottom
21
+ ranksep: 200, // Increased Vertical gap (was 100)
22
+ nodesep: 150, // Increased Horizontal gap (was 100) to separate True/False branches
23
+ // align: 'DL' // Removing specific alignment to let Dagre optimize for center/symmetry
24
+ });
25
+ g.setDefaultEdgeLabel(() => ({}));
26
+ // 1. Add Nodes
27
+ // We add ALL steps as nodes first
28
+ steps.forEach((step) => {
29
+ g.setNode(step.id, { width: NODE_WIDTH, height: NODE_HEIGHT });
30
+ });
31
+ // 2. Add Edges
32
+ // We strictly follow the flow directions
33
+ steps.forEach((step) => {
34
+ if (step.nextStepId) {
35
+ g.setEdge(step.id, step.nextStepId);
36
+ }
37
+ if (step.trueStepId) {
38
+ // Labeling edges doesn't affect layout structure much in Dagre,
39
+ // but order of adding might affect left/right placement.
40
+ // Typically we want True (Left) and False (Right) or vice versa.
41
+ // Dagre doesn't strictly guarantee edge order but usually respects insertion order for siblings.
42
+ g.setEdge(step.id, step.trueStepId, { label: 'true', weight: 1 });
43
+ }
44
+ if (step.falseStepId) {
45
+ g.setEdge(step.id, step.falseStepId, { label: 'false', weight: 1 });
46
+ }
47
+ });
48
+ // 3. Compute Layout
49
+ dagre_1.default.layout(g);
50
+ // 3.5. Post-Process: Enforce True-Left / False-Right
51
+ steps.forEach(step => {
52
+ if (step.trueStepId && step.falseStepId) {
53
+ const trueNode = g.node(step.trueStepId);
54
+ const falseNode = g.node(step.falseStepId);
55
+ if (trueNode && falseNode && trueNode.x > falseNode.x) {
56
+ // Swap the coordinates of the immediate children
57
+ const tempX = trueNode.x;
58
+ const tempY = trueNode.y;
59
+ trueNode.x = falseNode.x;
60
+ trueNode.y = falseNode.y;
61
+ falseNode.x = tempX;
62
+ falseNode.y = tempY;
63
+ // NOTE: We rely on the fact that swapping the root of the sub-branch
64
+ // visually signals the swap, even if deep descendants aren't moved.
65
+ // Moving entire subtrees is computationally expensive and risky for DAGs.
66
+ // Just swapping the immediate next nodes usually fixes the visual intuition for the branching point.
67
+ }
68
+ }
69
+ });
70
+ // 4. Map back to ReactFlow coordinates
71
+ // Dagre gives the CENTER (x,y) of the node.
72
+ // ReactFlow expects TOP-LEFT (x,y) of the node.
73
+ return steps.map((step) => {
74
+ const node = g.node(step.id);
75
+ // Safety check if node wasn't in graph for some reason
76
+ if (!node)
77
+ return step;
78
+ return {
79
+ ...step,
80
+ position: {
81
+ x: node.x - (NODE_WIDTH / 2),
82
+ y: node.y - (NODE_HEIGHT / 2),
83
+ },
84
+ };
85
+ });
86
+ }
87
+ //# sourceMappingURL=layout-calculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-calculator.js","sourceRoot":"","sources":["../../../../../../src/adapters/workflow/engine/utils/layout-calculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function generateStepId(description: string): string;
2
+ //# sourceMappingURL=slugify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/workflow/engine/utils/slugify.ts"],"names":[],"mappings":"AAiBA,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA4B1D"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateStepId = generateStepId;
4
+ const STOP_WORDS = new Set([
5
+ // Articles & Conjunctions
6
+ 'a', 'an', 'the', 'and', 'or', 'but', 'nor', 'yet', 'so',
7
+ // Prepositions
8
+ 'of', 'in', 'on', 'at', 'by', 'for', 'with', 'about', 'from', 'to', 'into', 'onto', 'upon', 'out', 'off', 'over', 'under',
9
+ // Pronouns & Determinators
10
+ 'this', 'that', 'these', 'those', 'it', 'its', 'my', 'your', 'his', 'her', 'their', 'our',
11
+ 'any', 'all', 'some', 'many', 'few', 'no', 'not', 'every', 'each',
12
+ // Verbs (Be/Have/Do primarily)
13
+ 'is', 'are', 'was', 'were', 'be', 'been', 'being',
14
+ 'have', 'has', 'had',
15
+ 'do', 'does', 'did',
16
+ // Domain specific filler
17
+ 'step', 'action', 'task', 'please', 'just'
18
+ ]);
19
+ function generateStepId(description) {
20
+ if (!description)
21
+ return '';
22
+ // 1. Lowercase
23
+ const lower = description.toLowerCase();
24
+ // 2. Remove special characters (keep alphanumeric and spaces)
25
+ const clean = lower.replace(/[^a-z0-9\s]/g, '');
26
+ // 3. Split into words
27
+ const words = clean.split(/\s+/);
28
+ // 4. Filter stop words
29
+ const significantWords = words.filter(w => !STOP_WORDS.has(w) && w.length > 0);
30
+ // 5. Fallback: if all words were stop words (e.g. "To be or not to be"), use original cleaned words
31
+ const finalWords = significantWords.length > 0 ? significantWords : words.filter(w => w.length > 0);
32
+ // 6. Join with underscore
33
+ let id = finalWords.join('_');
34
+ // 7. Ensure it doesn't start with a number (variable naming rules often checking this)
35
+ if (/^\d/.test(id)) {
36
+ id = `step_${id}`;
37
+ }
38
+ // 8. Truncate (variables shouldn't be massive) - 50 chars seems reasonable
39
+ return id.substring(0, 50);
40
+ }
41
+ //# sourceMappingURL=slugify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugify.js","sourceRoot":"","sources":["../../../../../../src/adapters/workflow/engine/utils/slugify.ts"],"names":[],"mappings":";;AAiBA,wCA4BC;AA5CD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACvB,0BAA0B;IAC1B,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;IACxD,eAAe;IACf,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;IACzH,2BAA2B;IAC3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;IACzF,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IACjE,+BAA+B;IAC/B,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IACjD,MAAM,EAAE,KAAK,EAAE,KAAK;IACpB,IAAI,EAAE,MAAM,EAAE,KAAK;IACnB,yBAAyB;IACzB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAC7C,CAAC,CAAC;AAEH,SAAgB,cAAc,CAAC,WAAmB;IAC9C,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,eAAe;IACf,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IAExC,8DAA8D;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAEhD,sBAAsB;IACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjC,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/E,oGAAoG;IACpG,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEpG,0BAA0B;IAC1B,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9B,uFAAuF;IACvF,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC;IACtB,CAAC;IAED,2EAA2E;IAC3E,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { WorkflowStep } from "../../../interfaces";
2
+ export interface VariableDefinition {
3
+ path: string;
4
+ type?: 'string' | 'number' | 'boolean' | 'object' | 'array';
5
+ }
6
+ export declare function validateStepInput(input: any, schema: any): Record<string, string>;
7
+ export declare function validateWorkflow(steps: WorkflowStep[], availableActions: any[], variables?: VariableDefinition[], // INJECTED variables instead of hardcoded
8
+ isAdmin?: boolean, configs?: Record<string, any>): Record<string, string[]>;
9
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC/D;AA6CD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWjF;AAoSD,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,YAAY,EAAE,EACrB,gBAAgB,EAAE,GAAG,EAAE,EACvB,SAAS,GAAE,kBAAkB,EAAO,EAAM,0CAA0C;AACpF,OAAO,GAAE,OAAe,EACxB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAClC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsG1B"}
@@ -0,0 +1,425 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateStepInput = validateStepInput;
4
+ exports.validateWorkflow = validateWorkflow;
5
+ const zod_1 = require("zod");
6
+ const interpolator_1 = require("./interpolator");
7
+ function validateValue(value, field, path) {
8
+ const errors = {};
9
+ const label = path.split('.').pop()?.replace(/([A-Z])/g, ' $1').replace(/^./, str => str.toUpperCase()) || path;
10
+ // 1. Required Check
11
+ const isEmpty = value === undefined || value === null || (typeof value === 'string' && value.trim() === '');
12
+ if (!field.optional && isEmpty) {
13
+ errors[path] = `"${label}" is required`;
14
+ return errors;
15
+ }
16
+ if (isEmpty)
17
+ return {};
18
+ // 2. Format Checks (String)
19
+ if (field.type === 'string') {
20
+ if (typeof value === 'string') {
21
+ if (field.format === 'email') {
22
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
23
+ // Ignore interpolation variables
24
+ if (!value.includes('{{') && !emailRegex.test(value)) {
25
+ errors[path] = `Invalid email address`;
26
+ }
27
+ }
28
+ }
29
+ }
30
+ // 3. Array Checks
31
+ if (field.type === 'array' && Array.isArray(value)) {
32
+ if (field.items) {
33
+ value.forEach((item, index) => {
34
+ // Use bracket notation for array indices
35
+ const itemPath = `${path}[${index}]`;
36
+ const itemErrors = validateValue(item, field.items, itemPath);
37
+ Object.assign(errors, itemErrors);
38
+ });
39
+ }
40
+ }
41
+ return errors;
42
+ }
43
+ // Helper to validate individual step inputs against Zod schema
44
+ function validateStepInput(input, schema) {
45
+ if (!schema || schema.type !== 'object' || !schema.properties)
46
+ return {};
47
+ let errors = {};
48
+ for (const key of Object.keys(schema.properties)) {
49
+ const field = schema.properties[key];
50
+ const value = input?.[key];
51
+ const fieldErrors = validateValue(value, field, key);
52
+ Object.assign(errors, fieldErrors);
53
+ }
54
+ return errors;
55
+ }
56
+ // Mock Data Generators
57
+ function generateMockValue(type) {
58
+ switch (type) {
59
+ case 'string': return "mock_string";
60
+ case 'number': return 123;
61
+ case 'boolean': return true;
62
+ case 'array': return ["mock_item"];
63
+ case 'object': return { mock_key: "mock_value" };
64
+ default: return "mock_value";
65
+ }
66
+ }
67
+ function buildMockContextFromVariables(variables = []) {
68
+ const context = {};
69
+ variables.forEach(v => {
70
+ const parts = v.path.split('.');
71
+ let current = context;
72
+ for (let i = 0; i < parts.length; i++) {
73
+ const part = parts[i];
74
+ if (i === parts.length - 1) {
75
+ current[part] = generateMockValue(v.type);
76
+ }
77
+ else {
78
+ current[part] = current[part] || {};
79
+ current = current[part];
80
+ }
81
+ }
82
+ });
83
+ // Don't override settings if they were provided in variables
84
+ // Only add generic fallback settings if settings object doesn't exist at all
85
+ if (!context.settings) {
86
+ context.settings = {
87
+ openai: { apiKey: "mock_key" },
88
+ resend: { apiKey: "mock_key" }
89
+ };
90
+ }
91
+ return context;
92
+ }
93
+ // Strict Proxy to enforce schema compliance during validation
94
+ function createStrictMock(target, path = 'root') {
95
+ if (typeof target !== 'object' || target === null) {
96
+ return target;
97
+ }
98
+ return new Proxy(target, {
99
+ get(target, prop, receiver) {
100
+ // Allow standard known symbols/props
101
+ if (typeof prop === 'symbol' || prop === 'inspect' || prop === 'constructor' ||
102
+ prop === 'toString' || prop === 'valueOf' || prop === 'toJSON' ||
103
+ prop === 'then') {
104
+ return Reflect.get(target, prop, receiver);
105
+ }
106
+ // Array handling
107
+ if (Array.isArray(target)) {
108
+ if (prop === 'length' || typeof target[prop] !== 'undefined' || prop in target) {
109
+ const val = Reflect.get(target, prop, receiver);
110
+ if (typeof val === 'function')
111
+ return val.bind(target);
112
+ return createStrictMock(val, `${path}[${String(prop)}]`);
113
+ }
114
+ }
115
+ if (!(prop in target)) {
116
+ throw new Error(`Property '${String(prop)}' does not exist on '${path}'`);
117
+ }
118
+ const value = Reflect.get(target, prop, receiver);
119
+ return createStrictMock(value, `${path}.${String(prop)}`);
120
+ }
121
+ });
122
+ }
123
+ function markAsNamespace(obj, name) {
124
+ if (typeof obj === 'object' && obj !== null) {
125
+ const errorMsg = `Cannot use '${name}' as a value. Please select a specific variable.`;
126
+ const thrower = () => { throw new Error(errorMsg); };
127
+ Object.defineProperty(obj, 'toJSON', { value: thrower, configurable: true });
128
+ Object.defineProperty(obj, 'toString', { value: thrower, configurable: true });
129
+ }
130
+ return obj;
131
+ }
132
+ function generateStepInputMock(actionDef) {
133
+ if (!actionDef?.inputs)
134
+ return {};
135
+ if (actionDef.inputs.type === 'object' && actionDef.inputs.properties) {
136
+ const mock = {};
137
+ for (const [key, schema] of Object.entries(actionDef.inputs.properties)) {
138
+ mock[key] = generateMockValue(schema.type);
139
+ }
140
+ return markAsNamespace(mock, 'input');
141
+ }
142
+ return {};
143
+ }
144
+ // Helper to get raw shape from Zod Schema
145
+ function getUnderlyingSchema(schema) {
146
+ if (schema instanceof zod_1.z.ZodOptional || schema instanceof zod_1.z.ZodNullable) {
147
+ return getUnderlyingSchema(schema.unwrap());
148
+ }
149
+ if (schema instanceof zod_1.z.ZodDefault) {
150
+ return getUnderlyingSchema(schema._def.innerType);
151
+ }
152
+ // Handle effects/transforms if needed, but for now assume direct structure
153
+ return schema;
154
+ }
155
+ function createSchemaProxy(schema) {
156
+ const rawSchema = getUnderlyingSchema(schema);
157
+ return new Proxy({}, {
158
+ get(_target, prop, _receiver) {
159
+ // Allow standard object props to avoid breaking runtime inspections
160
+ if (prop === 'then' || prop === 'toJSON' || prop === Symbol.toStringTag)
161
+ return undefined;
162
+ if (rawSchema instanceof zod_1.z.ZodObject) {
163
+ const shape = rawSchema.shape;
164
+ if (typeof prop === 'string' && prop in shape) {
165
+ return createSchemaProxy(shape[prop]);
166
+ }
167
+ }
168
+ else if (rawSchema instanceof zod_1.z.ZodArray) {
169
+ // For arrays, any number index returns the element proxy
170
+ // Also support basic array methods mock?
171
+ if (typeof prop === 'string' && !isNaN(Number(prop))) {
172
+ return createSchemaProxy(rawSchema.element);
173
+ }
174
+ // Mock array functions if needed for expressions like .map(), .length
175
+ if (prop === 'length')
176
+ return 1;
177
+ if (prop === 'map' || prop === 'filter' || prop === 'find') {
178
+ return () => [createSchemaProxy(rawSchema.element)];
179
+ }
180
+ }
181
+ // Return generic proxy for "Any" or "Unknown" types to be permissible?
182
+ // Or return undefined to let strict mock handler catch it?
183
+ // If the property is NOT in the schema, we return undefined.
184
+ // The strict mock wrapper around this will see 'undefined' and might not throw *unless* we fail the 'has' trap.
185
+ // But wait, createStrictMock checks 'prop in target'.
186
+ return undefined;
187
+ },
188
+ has(_target, prop) {
189
+ if (rawSchema instanceof zod_1.z.ZodObject) {
190
+ return typeof prop === 'string' && prop in rawSchema.shape;
191
+ }
192
+ if (rawSchema instanceof zod_1.z.ZodArray) {
193
+ if (typeof prop === 'string' && !isNaN(Number(prop)))
194
+ return true;
195
+ if (['length', 'map', 'forEach', 'reduce', 'filter', 'find'].includes(String(prop)))
196
+ return true;
197
+ }
198
+ // For primitives (String, Number), they don't have child keys.
199
+ return false;
200
+ },
201
+ ownKeys(_target) {
202
+ if (rawSchema instanceof zod_1.z.ZodObject) {
203
+ return Object.keys(rawSchema.shape);
204
+ }
205
+ return [];
206
+ },
207
+ getOwnPropertyDescriptor(_target, prop) {
208
+ return {
209
+ configurable: true,
210
+ enumerable: true,
211
+ value: this.get(_target, prop, null)
212
+ };
213
+ }
214
+ });
215
+ }
216
+ function createProxyFromDefinition(def) {
217
+ if (!def)
218
+ return undefined;
219
+ return new Proxy({}, {
220
+ get(_target, prop, _receiver) {
221
+ if (prop === 'then' || prop === 'toJSON' || prop === Symbol.toStringTag)
222
+ return undefined;
223
+ if (def.type === 'object' && def.properties) {
224
+ if (typeof prop === 'string' && prop in def.properties) {
225
+ return createProxyFromDefinition(def.properties[prop]);
226
+ }
227
+ }
228
+ else if (def.type === 'array' && def.items) {
229
+ if (typeof prop === 'string' && !isNaN(Number(prop))) {
230
+ return createProxyFromDefinition(def.items);
231
+ }
232
+ if (prop === 'length')
233
+ return 1;
234
+ // Mock basic array methods
235
+ if (['map', 'filter', 'find'].includes(String(prop))) {
236
+ return () => [createProxyFromDefinition(def.items)];
237
+ }
238
+ }
239
+ else if (def.type === 'json' || def.type === 'any' || !def.type) {
240
+ // Permissive for JSON/Any types - recursive proxy
241
+ return createProxyFromDefinition({ type: 'json' });
242
+ }
243
+ return undefined;
244
+ },
245
+ has(_target, prop) {
246
+ if (def.type === 'object' && def.properties) {
247
+ return typeof prop === 'string' && prop in def.properties;
248
+ }
249
+ if (def.type === 'array') {
250
+ if (typeof prop === 'string' && !isNaN(Number(prop)))
251
+ return true;
252
+ if (['length', 'map', 'forEach', 'reduce', 'filter', 'find'].includes(String(prop)))
253
+ return true;
254
+ }
255
+ if (def.type === 'json' || def.type === 'any' || !def.type) {
256
+ return true;
257
+ }
258
+ return false;
259
+ },
260
+ ownKeys(_target) {
261
+ if (def.type === 'object' && def.properties) {
262
+ return Object.keys(def.properties);
263
+ }
264
+ return [];
265
+ },
266
+ getOwnPropertyDescriptor(_target, prop) {
267
+ return {
268
+ configurable: true,
269
+ enumerable: true,
270
+ value: this.get(_target, prop, null)
271
+ };
272
+ }
273
+ });
274
+ }
275
+ function generateStepOutputMock(actionDef) {
276
+ // 1. Prefer Zod Schema if available (Server-side / Tests)
277
+ if (actionDef?.outputSchema) {
278
+ return createSchemaProxy(actionDef.outputSchema);
279
+ }
280
+ // 2. Fallback to Serialized Definition (Client-side from API)
281
+ if (actionDef?.outputs) {
282
+ return createProxyFromDefinition(actionDef.outputs);
283
+ }
284
+ // Fallback if no schema info
285
+ return { data: "mock_data" };
286
+ }
287
+ function formatValidationError(error, isAdmin) {
288
+ const originalMsg = error?.message || (typeof error === 'string' ? error : JSON.stringify(error));
289
+ let friendlyMsg = originalMsg;
290
+ if (friendlyMsg && (friendlyMsg.startsWith("Interpolation failed for") || friendlyMsg.includes("Interpolation failed"))) {
291
+ const parts = friendlyMsg.split(": ");
292
+ if (parts.length > 1) {
293
+ friendlyMsg = parts.slice(1).join(": ");
294
+ }
295
+ }
296
+ if (friendlyMsg.includes("is not defined")) {
297
+ const matches = friendlyMsg.match(/ReferenceError:\s*(\w+)\s*is not defined/) || friendlyMsg.match(/(\w+)\s*is not defined/);
298
+ if (matches && matches[1]) {
299
+ friendlyMsg = `Variable '${matches[1]}' is missing or undefined`;
300
+ }
301
+ }
302
+ else if (friendlyMsg.includes("does not exist on")) {
303
+ const matches = friendlyMsg.match(/Property '(.+)' does not exist on '(.+)'/);
304
+ if (matches) {
305
+ let [_, variable, path] = matches;
306
+ // Clean up path
307
+ path = path.replace(/^context\./, '');
308
+ if (path.endsWith('.output')) {
309
+ const stepId = path.replace(/\.output$/, '');
310
+ friendlyMsg = `Output variable '${variable}' is not available in step '${stepId}'`;
311
+ }
312
+ else if (path.startsWith('trigger.payload')) {
313
+ friendlyMsg = `Variable '${variable}' is missing from the trigger payload`;
314
+ }
315
+ else {
316
+ friendlyMsg = `Variable '${variable}' not found in '${path}'`;
317
+ }
318
+ }
319
+ }
320
+ else if (friendlyMsg.includes("is not a function")) {
321
+ friendlyMsg = "Invalid function call in expression";
322
+ }
323
+ friendlyMsg = friendlyMsg.replace(/Interpolation/g, "Expression");
324
+ if (isAdmin) {
325
+ if (friendlyMsg !== originalMsg) {
326
+ return `${friendlyMsg} \n(Technical: ${originalMsg})`;
327
+ }
328
+ return originalMsg;
329
+ }
330
+ return friendlyMsg;
331
+ }
332
+ function validateWorkflow(steps, availableActions, variables = [], // INJECTED variables instead of hardcoded
333
+ isAdmin = false, configs = {}) {
334
+ let errors = {};
335
+ const stepIds = new Set(steps.map(s => s.id));
336
+ // 1. Connectivity & Structural Check
337
+ steps.forEach(step => {
338
+ const stepErrors = [];
339
+ // Check references
340
+ if (step.nextStepId && !stepIds.has(step.nextStepId)) {
341
+ stepErrors.push(`Refers to missing next step: ${step.nextStepId}`);
342
+ }
343
+ if (step.trueStepId && !stepIds.has(step.trueStepId)) {
344
+ stepErrors.push(`Refers to missing true step: ${step.trueStepId}`);
345
+ }
346
+ if (step.falseStepId && !stepIds.has(step.falseStepId)) {
347
+ stepErrors.push(`Refers to missing false step: ${step.falseStepId}`);
348
+ }
349
+ // Check Action Existence
350
+ const actionDef = availableActions.find(a => a.id === step.action);
351
+ if (!actionDef && step.action !== 'condition' && step.action !== 'noop') {
352
+ stepErrors.push(`Action type "${step.action}" is unknown`);
353
+ }
354
+ else if (actionDef && actionDef.inputs) {
355
+ // For legacy JSON schema inputs
356
+ const inputErrors = validateStepInput(step.input, actionDef.inputs);
357
+ Object.values(inputErrors).forEach(err => stepErrors.push(err));
358
+ }
359
+ if (stepErrors.length > 0) {
360
+ errors[step.id] = (errors[step.id] || []).concat(stepErrors);
361
+ }
362
+ });
363
+ // Cycle Detection
364
+ const visited = new Set();
365
+ const recursionStack = new Set();
366
+ function detectCycle(currentId, path) {
367
+ visited.add(currentId);
368
+ recursionStack.add(currentId);
369
+ const step = steps.find(s => s.id === currentId);
370
+ if (step) {
371
+ const targets = [step.nextStepId, step.trueStepId, step.falseStepId].filter(Boolean);
372
+ for (const targetId of targets) {
373
+ if (!visited.has(targetId)) {
374
+ detectCycle(targetId, [...path, targetId]);
375
+ }
376
+ else if (recursionStack.has(targetId)) {
377
+ errors[currentId] = (errors[currentId] || []).concat(`Cycle detected: connections loop back to a previous step.`);
378
+ }
379
+ }
380
+ }
381
+ recursionStack.delete(currentId);
382
+ }
383
+ steps.forEach(s => {
384
+ if (!visited.has(s.id)) {
385
+ detectCycle(s.id, [s.id]);
386
+ }
387
+ });
388
+ // 2. Interpolation Simulation (only if variables provided)
389
+ if (variables.length > 0) {
390
+ let mockContext = buildMockContextFromVariables(variables);
391
+ mockContext.configs = configs || {};
392
+ steps.forEach(step => {
393
+ const actionDef = availableActions.find(a => a.id === step.action);
394
+ const stepMock = {
395
+ input: generateStepInputMock(actionDef),
396
+ output: generateStepOutputMock(actionDef)
397
+ };
398
+ mockContext[step.id] = markAsNamespace(stepMock, step.id);
399
+ });
400
+ const strictMockContext = createStrictMock(mockContext, 'context');
401
+ steps.forEach(step => {
402
+ if (!step.input)
403
+ return;
404
+ try {
405
+ // Pass true to throw errors for missing variables during validation
406
+ (0, interpolator_1.interpolate)(step.input, strictMockContext, true);
407
+ }
408
+ catch (e) {
409
+ const msg = formatValidationError(e, isAdmin);
410
+ errors[step.id] = (errors[step.id] || []).concat(msg);
411
+ }
412
+ if (step.condition) {
413
+ try {
414
+ (0, interpolator_1.interpolate)(step.condition, strictMockContext, true);
415
+ }
416
+ catch (e) {
417
+ const msg = formatValidationError(e, isAdmin);
418
+ errors[step.id] = (errors[step.id] || []).concat(msg);
419
+ }
420
+ }
421
+ });
422
+ }
423
+ return errors;
424
+ }
425
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../../src/adapters/workflow/engine/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { IRepository } from '../interfaces';
2
+ export declare const createApiRouter: (repository: IRepository) => import("express-serve-static-core").Router;
3
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/api/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,eAAO,MAAM,eAAe,GAAI,YAAY,WAAW,+CAgBtD,CAAC"}