chat-flow-ardymalihi 1.0.2 → 3.0.0

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 (470) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/intent/IntentMatcher.d.ts +16 -0
  3. package/dist/adapters/intent/IntentMatcher.d.ts.map +1 -1
  4. package/dist/adapters/intent/IntentMatcher.js +93 -15
  5. package/dist/adapters/intent/IntentMatcher.js.map +1 -1
  6. package/dist/adapters/intent/IntentService.d.ts +4 -5
  7. package/dist/adapters/intent/IntentService.d.ts.map +1 -1
  8. package/dist/adapters/intent/IntentService.js +15 -9
  9. package/dist/adapters/intent/IntentService.js.map +1 -1
  10. package/dist/adapters/intent/MockIntentService.d.ts +7 -0
  11. package/dist/adapters/intent/MockIntentService.d.ts.map +1 -0
  12. package/dist/adapters/intent/MockIntentService.js +36 -0
  13. package/dist/adapters/intent/MockIntentService.js.map +1 -0
  14. package/dist/adapters/llm/OllamaLLMAdapter.d.ts +9 -0
  15. package/dist/adapters/llm/OllamaLLMAdapter.d.ts.map +1 -0
  16. package/dist/adapters/llm/OllamaLLMAdapter.js +74 -0
  17. package/dist/adapters/llm/OllamaLLMAdapter.js.map +1 -0
  18. package/dist/adapters/logger/ConsoleLogger.d.ts +12 -0
  19. package/dist/adapters/logger/ConsoleLogger.d.ts.map +1 -0
  20. package/dist/adapters/logger/ConsoleLogger.js +37 -0
  21. package/dist/adapters/logger/ConsoleLogger.js.map +1 -0
  22. package/dist/adapters/repository/InMemoryRepository.d.ts +35 -4
  23. package/dist/adapters/repository/InMemoryRepository.d.ts.map +1 -1
  24. package/dist/adapters/repository/InMemoryRepository.js +204 -10
  25. package/dist/adapters/repository/InMemoryRepository.js.map +1 -1
  26. package/dist/adapters/repository/RedisRepository.d.ts +52 -5
  27. package/dist/adapters/repository/RedisRepository.d.ts.map +1 -1
  28. package/dist/adapters/repository/RedisRepository.js +525 -26
  29. package/dist/adapters/repository/RedisRepository.js.map +1 -1
  30. package/dist/adapters/storage/RedisAudioStorageAdapter.d.ts +33 -0
  31. package/dist/adapters/storage/RedisAudioStorageAdapter.d.ts.map +1 -0
  32. package/dist/adapters/storage/RedisAudioStorageAdapter.js +121 -0
  33. package/dist/adapters/storage/RedisAudioStorageAdapter.js.map +1 -0
  34. package/dist/adapters/storage/RedisBufferStorageAdapter.d.ts +14 -0
  35. package/dist/adapters/storage/RedisBufferStorageAdapter.d.ts.map +1 -0
  36. package/dist/adapters/storage/RedisBufferStorageAdapter.js +94 -0
  37. package/dist/adapters/storage/RedisBufferStorageAdapter.js.map +1 -0
  38. package/dist/adapters/voice/ElevenLabsVoiceAdapter.d.ts +29 -0
  39. package/dist/adapters/voice/ElevenLabsVoiceAdapter.d.ts.map +1 -0
  40. package/dist/adapters/voice/ElevenLabsVoiceAdapter.js +75 -0
  41. package/dist/adapters/voice/ElevenLabsVoiceAdapter.js.map +1 -0
  42. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.d.ts +77 -0
  43. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.d.ts.map +1 -0
  44. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.js +187 -0
  45. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.js.map +1 -0
  46. package/dist/adapters/voice/GeminiVoiceAdapter.d.ts +36 -0
  47. package/dist/adapters/voice/GeminiVoiceAdapter.d.ts.map +1 -0
  48. package/dist/adapters/voice/GeminiVoiceAdapter.js +134 -0
  49. package/dist/adapters/voice/GeminiVoiceAdapter.js.map +1 -0
  50. package/dist/adapters/voice/GoogleTTSAdapter.d.ts +61 -0
  51. package/dist/adapters/voice/GoogleTTSAdapter.d.ts.map +1 -0
  52. package/dist/adapters/voice/GoogleTTSAdapter.js +165 -0
  53. package/dist/adapters/voice/GoogleTTSAdapter.js.map +1 -0
  54. package/dist/adapters/voice/GoogleVoiceAdapter.d.ts +33 -0
  55. package/dist/adapters/voice/GoogleVoiceAdapter.d.ts.map +1 -0
  56. package/dist/adapters/voice/GoogleVoiceAdapter.js +155 -0
  57. package/dist/adapters/voice/GoogleVoiceAdapter.js.map +1 -0
  58. package/dist/adapters/voice/HybridVoiceAdapter.d.ts +54 -0
  59. package/dist/adapters/voice/HybridVoiceAdapter.d.ts.map +1 -0
  60. package/dist/adapters/voice/HybridVoiceAdapter.js +102 -0
  61. package/dist/adapters/voice/HybridVoiceAdapter.js.map +1 -0
  62. package/dist/adapters/voice/LanguageVoiceMapper.d.ts +60 -0
  63. package/dist/adapters/voice/LanguageVoiceMapper.d.ts.map +1 -0
  64. package/dist/adapters/voice/LanguageVoiceMapper.js +130 -0
  65. package/dist/adapters/voice/LanguageVoiceMapper.js.map +1 -0
  66. package/dist/adapters/voice/VertexVoiceAdapter.d.ts +32 -0
  67. package/dist/adapters/voice/VertexVoiceAdapter.d.ts.map +1 -0
  68. package/dist/adapters/voice/VertexVoiceAdapter.js +179 -0
  69. package/dist/adapters/voice/VertexVoiceAdapter.js.map +1 -0
  70. package/dist/adapters/webhook/WebhookService.d.ts +47 -0
  71. package/dist/adapters/webhook/WebhookService.d.ts.map +1 -0
  72. package/dist/adapters/webhook/WebhookService.js +265 -0
  73. package/dist/adapters/webhook/WebhookService.js.map +1 -0
  74. package/dist/adapters/workflow/MockWorkflowAdapter.d.ts.map +1 -1
  75. package/dist/adapters/workflow/MockWorkflowAdapter.js +12 -1
  76. package/dist/adapters/workflow/MockWorkflowAdapter.js.map +1 -1
  77. package/dist/adapters/workflow/WorkflowAdapter.d.ts +55 -0
  78. package/dist/adapters/workflow/WorkflowAdapter.d.ts.map +1 -0
  79. package/dist/adapters/workflow/WorkflowAdapter.js +242 -0
  80. package/dist/adapters/workflow/WorkflowAdapter.js.map +1 -0
  81. package/dist/adapters/workflow/actions/getSupportHoursAction.d.ts +10 -0
  82. package/dist/adapters/workflow/actions/getSupportHoursAction.d.ts.map +1 -0
  83. package/dist/adapters/workflow/actions/getSupportHoursAction.js +33 -0
  84. package/dist/adapters/workflow/actions/getSupportHoursAction.js.map +1 -0
  85. package/dist/adapters/workflow/actions/index.d.ts +6 -0
  86. package/dist/adapters/workflow/actions/index.d.ts.map +1 -0
  87. package/dist/adapters/workflow/actions/index.js +22 -0
  88. package/dist/adapters/workflow/actions/index.js.map +1 -0
  89. package/dist/adapters/workflow/actions/pushOutputResultAction.d.ts +11 -0
  90. package/dist/adapters/workflow/actions/pushOutputResultAction.d.ts.map +1 -0
  91. package/dist/adapters/workflow/actions/pushOutputResultAction.js +31 -0
  92. package/dist/adapters/workflow/actions/pushOutputResultAction.js.map +1 -0
  93. package/dist/adapters/workflow/actions/setWorkflowMessageAction.d.ts +12 -0
  94. package/dist/adapters/workflow/actions/setWorkflowMessageAction.d.ts.map +1 -0
  95. package/dist/adapters/workflow/actions/setWorkflowMessageAction.js +32 -0
  96. package/dist/adapters/workflow/actions/setWorkflowMessageAction.js.map +1 -0
  97. package/dist/adapters/workflow/engine/constants.d.ts +3 -0
  98. package/dist/adapters/workflow/engine/constants.d.ts.map +1 -0
  99. package/dist/adapters/workflow/engine/constants.js +6 -0
  100. package/dist/adapters/workflow/engine/constants.js.map +1 -0
  101. package/dist/adapters/workflow/engine/engine.d.ts +32 -0
  102. package/dist/adapters/workflow/engine/engine.d.ts.map +1 -0
  103. package/dist/adapters/workflow/engine/engine.js +623 -0
  104. package/dist/adapters/workflow/engine/engine.js.map +1 -0
  105. package/dist/adapters/workflow/engine/event-registry.d.ts +12 -0
  106. package/dist/adapters/workflow/engine/event-registry.d.ts.map +1 -0
  107. package/dist/adapters/workflow/engine/event-registry.js +33 -0
  108. package/dist/adapters/workflow/engine/event-registry.js.map +1 -0
  109. package/dist/adapters/workflow/engine/interpolator.d.ts +11 -0
  110. package/dist/adapters/workflow/engine/interpolator.d.ts.map +1 -0
  111. package/dist/adapters/workflow/engine/interpolator.js +93 -0
  112. package/dist/adapters/workflow/engine/interpolator.js.map +1 -0
  113. package/dist/adapters/workflow/engine/registry.d.ts +12 -0
  114. package/dist/adapters/workflow/engine/registry.d.ts.map +1 -0
  115. package/dist/adapters/workflow/engine/registry.js +39 -0
  116. package/dist/adapters/workflow/engine/registry.js.map +1 -0
  117. package/dist/adapters/workflow/engine/template-registry.d.ts +60 -0
  118. package/dist/adapters/workflow/engine/template-registry.d.ts.map +1 -0
  119. package/dist/adapters/workflow/engine/template-registry.js +92 -0
  120. package/dist/adapters/workflow/engine/template-registry.js.map +1 -0
  121. package/dist/adapters/workflow/engine/types.d.ts +182 -0
  122. package/dist/adapters/workflow/engine/types.d.ts.map +1 -0
  123. package/dist/adapters/workflow/engine/types.js +3 -0
  124. package/dist/adapters/workflow/engine/types.js.map +1 -0
  125. package/dist/adapters/workflow/engine/utils/format-utils.d.ts +43 -0
  126. package/dist/adapters/workflow/engine/utils/format-utils.d.ts.map +1 -0
  127. package/dist/adapters/workflow/engine/utils/format-utils.js +137 -0
  128. package/dist/adapters/workflow/engine/utils/format-utils.js.map +1 -0
  129. package/dist/adapters/workflow/engine/utils/layout-calculator.d.ts +7 -0
  130. package/dist/adapters/workflow/engine/utils/layout-calculator.d.ts.map +1 -0
  131. package/dist/adapters/workflow/engine/utils/layout-calculator.js +87 -0
  132. package/dist/adapters/workflow/engine/utils/layout-calculator.js.map +1 -0
  133. package/dist/adapters/workflow/engine/utils/slugify.d.ts +2 -0
  134. package/dist/adapters/workflow/engine/utils/slugify.d.ts.map +1 -0
  135. package/dist/adapters/workflow/engine/utils/slugify.js +41 -0
  136. package/dist/adapters/workflow/engine/utils/slugify.js.map +1 -0
  137. package/dist/adapters/workflow/engine/validator.d.ts +9 -0
  138. package/dist/adapters/workflow/engine/validator.d.ts.map +1 -0
  139. package/dist/adapters/workflow/engine/validator.js +425 -0
  140. package/dist/adapters/workflow/engine/validator.js.map +1 -0
  141. package/dist/config/ChatFlowConfig.d.ts +7 -0
  142. package/dist/config/ChatFlowConfig.d.ts.map +1 -1
  143. package/dist/config/ChatFlowConfig.js +5 -0
  144. package/dist/config/ChatFlowConfig.js.map +1 -1
  145. package/dist/core/entities/ConversationSession.d.ts +36 -1
  146. package/dist/core/entities/ConversationSession.d.ts.map +1 -1
  147. package/dist/core/entities/ConversationSession.js +78 -1
  148. package/dist/core/entities/ConversationSession.js.map +1 -1
  149. package/dist/core/entities/Message.d.ts +5 -2
  150. package/dist/core/entities/Message.d.ts.map +1 -1
  151. package/dist/core/entities/Message.js +2 -0
  152. package/dist/core/entities/Message.js.map +1 -1
  153. package/dist/core/utils/AudioStreamBuffer.d.ts +33 -0
  154. package/dist/core/utils/AudioStreamBuffer.d.ts.map +1 -0
  155. package/dist/core/utils/AudioStreamBuffer.js +55 -0
  156. package/dist/core/utils/AudioStreamBuffer.js.map +1 -0
  157. package/dist/core/utils/AudioUtils.d.ts +41 -0
  158. package/dist/core/utils/AudioUtils.d.ts.map +1 -0
  159. package/dist/core/utils/AudioUtils.js +188 -0
  160. package/dist/core/utils/AudioUtils.js.map +1 -0
  161. package/dist/core/utils/LanguageDetector.d.ts +52 -0
  162. package/dist/core/utils/LanguageDetector.d.ts.map +1 -0
  163. package/dist/core/utils/LanguageDetector.js +173 -0
  164. package/dist/core/utils/LanguageDetector.js.map +1 -0
  165. package/dist/core/utils/WavUtils.d.ts +14 -0
  166. package/dist/core/utils/WavUtils.d.ts.map +1 -0
  167. package/dist/core/utils/WavUtils.js +37 -0
  168. package/dist/core/utils/WavUtils.js.map +1 -0
  169. package/dist/demo/cli-demo.js +10 -6
  170. package/dist/demo/cli-demo.js.map +1 -1
  171. package/dist/demo/console-chat.js +10 -6
  172. package/dist/demo/console-chat.js.map +1 -1
  173. package/dist/demo/interactive-voice-chat.d.ts +2 -0
  174. package/dist/demo/interactive-voice-chat.d.ts.map +1 -0
  175. package/dist/demo/interactive-voice-chat.js +180 -0
  176. package/dist/demo/interactive-voice-chat.js.map +1 -0
  177. package/dist/demo/voice-demo.d.ts +2 -0
  178. package/dist/demo/voice-demo.d.ts.map +1 -0
  179. package/dist/demo/voice-demo.js +188 -0
  180. package/dist/demo/voice-demo.js.map +1 -0
  181. package/dist/index.d.ts +9 -5
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +23 -8
  184. package/dist/index.js.map +1 -1
  185. package/dist/intent/IntentService.d.ts.map +1 -1
  186. package/dist/intent/IntentService.js +13 -7
  187. package/dist/intent/IntentService.js.map +1 -1
  188. package/dist/intent/MockIntentService.d.ts +2 -1
  189. package/dist/intent/MockIntentService.d.ts.map +1 -1
  190. package/dist/intent/MockIntentService.js +9 -3
  191. package/dist/intent/MockIntentService.js.map +1 -1
  192. package/dist/interfaces.d.ts +551 -6
  193. package/dist/interfaces.d.ts.map +1 -1
  194. package/dist/interfaces.js +19 -1
  195. package/dist/interfaces.js.map +1 -1
  196. package/dist/orchestrator/Orchestrator.d.ts +48 -4
  197. package/dist/orchestrator/Orchestrator.d.ts.map +1 -1
  198. package/dist/orchestrator/Orchestrator.js +650 -33
  199. package/dist/orchestrator/Orchestrator.js.map +1 -1
  200. package/dist/scripts/seed-collaborative-intents.d.ts +2 -0
  201. package/dist/scripts/seed-collaborative-intents.d.ts.map +1 -0
  202. package/dist/scripts/seed-collaborative-intents.js +90 -0
  203. package/dist/scripts/seed-collaborative-intents.js.map +1 -0
  204. package/dist/scripts/test-isolated-config.d.ts +2 -0
  205. package/dist/scripts/test-isolated-config.d.ts.map +1 -0
  206. package/dist/scripts/test-isolated-config.js +80 -0
  207. package/dist/scripts/test-isolated-config.js.map +1 -0
  208. package/dist/scripts/verify_redis_intents.js +4 -2
  209. package/dist/scripts/verify_redis_intents.js.map +1 -1
  210. package/dist/server/ChatFlowWebSocketServer.d.ts +46 -0
  211. package/dist/server/ChatFlowWebSocketServer.d.ts.map +1 -0
  212. package/dist/server/ChatFlowWebSocketServer.js +344 -0
  213. package/dist/server/ChatFlowWebSocketServer.js.map +1 -0
  214. package/dist/server/realtime-voice-server.d.ts +2 -0
  215. package/dist/server/realtime-voice-server.d.ts.map +1 -0
  216. package/dist/server/realtime-voice-server.js +627 -0
  217. package/dist/server/realtime-voice-server.js.map +1 -0
  218. package/dist/src/adapters/intent/IntentMatcher.d.ts +41 -0
  219. package/dist/src/adapters/intent/IntentMatcher.d.ts.map +1 -0
  220. package/dist/src/adapters/intent/IntentMatcher.js +167 -0
  221. package/dist/src/adapters/intent/IntentMatcher.js.map +1 -0
  222. package/dist/src/adapters/intent/IntentService.d.ts +26 -0
  223. package/dist/src/adapters/intent/IntentService.d.ts.map +1 -0
  224. package/dist/src/adapters/intent/IntentService.js +65 -0
  225. package/dist/src/adapters/intent/IntentService.js.map +1 -0
  226. package/dist/src/adapters/intent/MockIntentService.d.ts +7 -0
  227. package/dist/src/adapters/intent/MockIntentService.d.ts.map +1 -0
  228. package/dist/src/adapters/intent/MockIntentService.js +36 -0
  229. package/dist/src/adapters/intent/MockIntentService.js.map +1 -0
  230. package/dist/src/adapters/llm/GeminiLLMAdapter.d.ts +10 -0
  231. package/dist/src/adapters/llm/GeminiLLMAdapter.d.ts.map +1 -0
  232. package/dist/src/adapters/llm/GeminiLLMAdapter.js +102 -0
  233. package/dist/src/adapters/llm/GeminiLLMAdapter.js.map +1 -0
  234. package/dist/src/adapters/llm/MockLLMAdapter.d.ts +5 -0
  235. package/dist/src/adapters/llm/MockLLMAdapter.d.ts.map +1 -0
  236. package/dist/src/adapters/llm/MockLLMAdapter.js +31 -0
  237. package/dist/src/adapters/llm/MockLLMAdapter.js.map +1 -0
  238. package/dist/src/adapters/llm/OllamaLLMAdapter.d.ts +9 -0
  239. package/dist/src/adapters/llm/OllamaLLMAdapter.d.ts.map +1 -0
  240. package/dist/src/adapters/llm/OllamaLLMAdapter.js +74 -0
  241. package/dist/src/adapters/llm/OllamaLLMAdapter.js.map +1 -0
  242. package/dist/src/adapters/logger/ConsoleLogger.d.ts +12 -0
  243. package/dist/src/adapters/logger/ConsoleLogger.d.ts.map +1 -0
  244. package/dist/src/adapters/logger/ConsoleLogger.js +37 -0
  245. package/dist/src/adapters/logger/ConsoleLogger.js.map +1 -0
  246. package/dist/src/adapters/repository/InMemoryRepository.d.ts +57 -0
  247. package/dist/src/adapters/repository/InMemoryRepository.d.ts.map +1 -0
  248. package/dist/src/adapters/repository/InMemoryRepository.js +269 -0
  249. package/dist/src/adapters/repository/InMemoryRepository.js.map +1 -0
  250. package/dist/src/adapters/repository/RedisRepository.d.ts +72 -0
  251. package/dist/src/adapters/repository/RedisRepository.d.ts.map +1 -0
  252. package/dist/src/adapters/repository/RedisRepository.js +700 -0
  253. package/dist/src/adapters/repository/RedisRepository.js.map +1 -0
  254. package/dist/src/adapters/repository/SupabaseRepository.d.ts +60 -0
  255. package/dist/src/adapters/repository/SupabaseRepository.d.ts.map +1 -0
  256. package/dist/src/adapters/repository/SupabaseRepository.js +774 -0
  257. package/dist/src/adapters/repository/SupabaseRepository.js.map +1 -0
  258. package/dist/src/adapters/storage/RedisAudioStorageAdapter.d.ts +33 -0
  259. package/dist/src/adapters/storage/RedisAudioStorageAdapter.d.ts.map +1 -0
  260. package/dist/src/adapters/storage/RedisAudioStorageAdapter.js +121 -0
  261. package/dist/src/adapters/storage/RedisAudioStorageAdapter.js.map +1 -0
  262. package/dist/src/adapters/voice/GoogleVoiceAdapter.d.ts +33 -0
  263. package/dist/src/adapters/voice/GoogleVoiceAdapter.d.ts.map +1 -0
  264. package/dist/src/adapters/voice/GoogleVoiceAdapter.js +155 -0
  265. package/dist/src/adapters/voice/GoogleVoiceAdapter.js.map +1 -0
  266. package/dist/src/adapters/voice/LanguageVoiceMapper.d.ts +60 -0
  267. package/dist/src/adapters/voice/LanguageVoiceMapper.d.ts.map +1 -0
  268. package/dist/src/adapters/voice/LanguageVoiceMapper.js +130 -0
  269. package/dist/src/adapters/voice/LanguageVoiceMapper.js.map +1 -0
  270. package/dist/src/adapters/voice/VertexVoiceAdapter.d.ts +32 -0
  271. package/dist/src/adapters/voice/VertexVoiceAdapter.d.ts.map +1 -0
  272. package/dist/src/adapters/voice/VertexVoiceAdapter.js +179 -0
  273. package/dist/src/adapters/voice/VertexVoiceAdapter.js.map +1 -0
  274. package/dist/src/adapters/webhook/WebhookService.d.ts +47 -0
  275. package/dist/src/adapters/webhook/WebhookService.d.ts.map +1 -0
  276. package/dist/src/adapters/webhook/WebhookService.js +265 -0
  277. package/dist/src/adapters/webhook/WebhookService.js.map +1 -0
  278. package/dist/src/adapters/workflow/MockWorkflowAdapter.d.ts +5 -0
  279. package/dist/src/adapters/workflow/MockWorkflowAdapter.d.ts.map +1 -0
  280. package/dist/src/adapters/workflow/MockWorkflowAdapter.js +173 -0
  281. package/dist/src/adapters/workflow/MockWorkflowAdapter.js.map +1 -0
  282. package/dist/src/adapters/workflow/WorkflowAdapter.d.ts +55 -0
  283. package/dist/src/adapters/workflow/WorkflowAdapter.d.ts.map +1 -0
  284. package/dist/src/adapters/workflow/WorkflowAdapter.js +203 -0
  285. package/dist/src/adapters/workflow/WorkflowAdapter.js.map +1 -0
  286. package/dist/src/adapters/workflow/actions/index.d.ts +6 -0
  287. package/dist/src/adapters/workflow/actions/index.d.ts.map +1 -0
  288. package/dist/src/adapters/workflow/actions/index.js +22 -0
  289. package/dist/src/adapters/workflow/actions/index.js.map +1 -0
  290. package/dist/src/adapters/workflow/actions/pushOutputResultAction.d.ts +11 -0
  291. package/dist/src/adapters/workflow/actions/pushOutputResultAction.d.ts.map +1 -0
  292. package/dist/src/adapters/workflow/actions/pushOutputResultAction.js +31 -0
  293. package/dist/src/adapters/workflow/actions/pushOutputResultAction.js.map +1 -0
  294. package/dist/src/adapters/workflow/engine/constants.d.ts +3 -0
  295. package/dist/src/adapters/workflow/engine/constants.d.ts.map +1 -0
  296. package/dist/src/adapters/workflow/engine/constants.js +6 -0
  297. package/dist/src/adapters/workflow/engine/constants.js.map +1 -0
  298. package/dist/src/adapters/workflow/engine/engine.d.ts +32 -0
  299. package/dist/src/adapters/workflow/engine/engine.d.ts.map +1 -0
  300. package/dist/src/adapters/workflow/engine/engine.js +622 -0
  301. package/dist/src/adapters/workflow/engine/engine.js.map +1 -0
  302. package/dist/src/adapters/workflow/engine/event-registry.d.ts +12 -0
  303. package/dist/src/adapters/workflow/engine/event-registry.d.ts.map +1 -0
  304. package/dist/src/adapters/workflow/engine/event-registry.js +33 -0
  305. package/dist/src/adapters/workflow/engine/event-registry.js.map +1 -0
  306. package/dist/src/adapters/workflow/engine/interpolator.d.ts +11 -0
  307. package/dist/src/adapters/workflow/engine/interpolator.d.ts.map +1 -0
  308. package/dist/src/adapters/workflow/engine/interpolator.js +93 -0
  309. package/dist/src/adapters/workflow/engine/interpolator.js.map +1 -0
  310. package/dist/src/adapters/workflow/engine/registry.d.ts +12 -0
  311. package/dist/src/adapters/workflow/engine/registry.d.ts.map +1 -0
  312. package/dist/src/adapters/workflow/engine/registry.js +39 -0
  313. package/dist/src/adapters/workflow/engine/registry.js.map +1 -0
  314. package/dist/src/adapters/workflow/engine/template-registry.d.ts +60 -0
  315. package/dist/src/adapters/workflow/engine/template-registry.d.ts.map +1 -0
  316. package/dist/src/adapters/workflow/engine/template-registry.js +92 -0
  317. package/dist/src/adapters/workflow/engine/template-registry.js.map +1 -0
  318. package/dist/src/adapters/workflow/engine/utils/format-utils.d.ts +43 -0
  319. package/dist/src/adapters/workflow/engine/utils/format-utils.d.ts.map +1 -0
  320. package/dist/src/adapters/workflow/engine/utils/format-utils.js +137 -0
  321. package/dist/src/adapters/workflow/engine/utils/format-utils.js.map +1 -0
  322. package/dist/src/adapters/workflow/engine/utils/layout-calculator.d.ts +7 -0
  323. package/dist/src/adapters/workflow/engine/utils/layout-calculator.d.ts.map +1 -0
  324. package/dist/src/adapters/workflow/engine/utils/layout-calculator.js +87 -0
  325. package/dist/src/adapters/workflow/engine/utils/layout-calculator.js.map +1 -0
  326. package/dist/src/adapters/workflow/engine/utils/slugify.d.ts +2 -0
  327. package/dist/src/adapters/workflow/engine/utils/slugify.d.ts.map +1 -0
  328. package/dist/src/adapters/workflow/engine/utils/slugify.js +41 -0
  329. package/dist/src/adapters/workflow/engine/utils/slugify.js.map +1 -0
  330. package/dist/src/adapters/workflow/engine/validator.d.ts +9 -0
  331. package/dist/src/adapters/workflow/engine/validator.d.ts.map +1 -0
  332. package/dist/src/adapters/workflow/engine/validator.js +425 -0
  333. package/dist/src/adapters/workflow/engine/validator.js.map +1 -0
  334. package/dist/src/api/router.d.ts +3 -0
  335. package/dist/src/api/router.d.ts.map +1 -0
  336. package/dist/src/api/router.js +27 -0
  337. package/dist/src/api/router.js.map +1 -0
  338. package/dist/src/api/routes/configs.d.ts +3 -0
  339. package/dist/src/api/routes/configs.d.ts.map +1 -0
  340. package/dist/src/api/routes/configs.js +110 -0
  341. package/dist/src/api/routes/configs.js.map +1 -0
  342. package/dist/src/api/routes/executions.d.ts +3 -0
  343. package/dist/src/api/routes/executions.d.ts.map +1 -0
  344. package/dist/src/api/routes/executions.js +77 -0
  345. package/dist/src/api/routes/executions.js.map +1 -0
  346. package/dist/src/api/routes/intents.d.ts +3 -0
  347. package/dist/src/api/routes/intents.d.ts.map +1 -0
  348. package/dist/src/api/routes/intents.js +128 -0
  349. package/dist/src/api/routes/intents.js.map +1 -0
  350. package/dist/src/api/routes/sessions.d.ts +3 -0
  351. package/dist/src/api/routes/sessions.d.ts.map +1 -0
  352. package/dist/src/api/routes/sessions.js +105 -0
  353. package/dist/src/api/routes/sessions.js.map +1 -0
  354. package/dist/src/api/routes/tenants.d.ts +3 -0
  355. package/dist/src/api/routes/tenants.d.ts.map +1 -0
  356. package/dist/src/api/routes/tenants.js +109 -0
  357. package/dist/src/api/routes/tenants.js.map +1 -0
  358. package/dist/src/api/routes/users.d.ts +3 -0
  359. package/dist/src/api/routes/users.d.ts.map +1 -0
  360. package/dist/src/api/routes/users.js +51 -0
  361. package/dist/src/api/routes/users.js.map +1 -0
  362. package/dist/src/api/routes/workflows.d.ts +3 -0
  363. package/dist/src/api/routes/workflows.d.ts.map +1 -0
  364. package/dist/src/api/routes/workflows.js +132 -0
  365. package/dist/src/api/routes/workflows.js.map +1 -0
  366. package/dist/src/config/ChatFlowConfig.d.ts +66 -0
  367. package/dist/src/config/ChatFlowConfig.d.ts.map +1 -0
  368. package/dist/src/config/ChatFlowConfig.js +54 -0
  369. package/dist/src/config/ChatFlowConfig.js.map +1 -0
  370. package/dist/src/config/index.d.ts +2 -0
  371. package/dist/src/config/index.d.ts.map +1 -0
  372. package/dist/src/config/index.js +7 -0
  373. package/dist/src/config/index.js.map +1 -0
  374. package/dist/src/config/swagger.d.ts +2 -0
  375. package/dist/src/config/swagger.d.ts.map +1 -0
  376. package/dist/src/config/swagger.js +136 -0
  377. package/dist/src/config/swagger.js.map +1 -0
  378. package/dist/src/core/entities/ConversationSession.d.ts +58 -0
  379. package/dist/src/core/entities/ConversationSession.d.ts.map +1 -0
  380. package/dist/src/core/entities/ConversationSession.js +160 -0
  381. package/dist/src/core/entities/ConversationSession.js.map +1 -0
  382. package/dist/src/core/entities/Message.d.ts +14 -0
  383. package/dist/src/core/entities/Message.d.ts.map +1 -0
  384. package/dist/src/core/entities/Message.js +32 -0
  385. package/dist/src/core/entities/Message.js.map +1 -0
  386. package/dist/src/core/errors/ChatFlowError.d.ts +71 -0
  387. package/dist/src/core/errors/ChatFlowError.d.ts.map +1 -0
  388. package/dist/src/core/errors/ChatFlowError.js +108 -0
  389. package/dist/src/core/errors/ChatFlowError.js.map +1 -0
  390. package/dist/src/core/errors/index.d.ts +2 -0
  391. package/dist/src/core/errors/index.d.ts.map +1 -0
  392. package/dist/src/core/errors/index.js +15 -0
  393. package/dist/src/core/errors/index.js.map +1 -0
  394. package/dist/src/core/utils/AudioUtils.d.ts +41 -0
  395. package/dist/src/core/utils/AudioUtils.d.ts.map +1 -0
  396. package/dist/src/core/utils/AudioUtils.js +188 -0
  397. package/dist/src/core/utils/AudioUtils.js.map +1 -0
  398. package/dist/src/core/utils/LanguageDetector.d.ts +52 -0
  399. package/dist/src/core/utils/LanguageDetector.d.ts.map +1 -0
  400. package/dist/src/core/utils/LanguageDetector.js +173 -0
  401. package/dist/src/core/utils/LanguageDetector.js.map +1 -0
  402. package/dist/src/demo/cli-demo.d.ts +2 -0
  403. package/dist/src/demo/cli-demo.d.ts.map +1 -0
  404. package/dist/src/demo/cli-demo.js +146 -0
  405. package/dist/src/demo/cli-demo.js.map +1 -0
  406. package/dist/src/demo/console-chat.d.ts +2 -0
  407. package/dist/src/demo/console-chat.d.ts.map +1 -0
  408. package/dist/src/demo/console-chat.js +148 -0
  409. package/dist/src/demo/console-chat.js.map +1 -0
  410. package/dist/src/index.d.ts +27 -0
  411. package/dist/src/index.d.ts.map +1 -0
  412. package/dist/src/index.js +78 -0
  413. package/dist/src/index.js.map +1 -0
  414. package/dist/src/interfaces.d.ts +663 -0
  415. package/dist/src/interfaces.d.ts.map +1 -0
  416. package/dist/src/interfaces.js +36 -0
  417. package/dist/src/interfaces.js.map +1 -0
  418. package/dist/src/orchestrator/Orchestrator.d.ts +62 -0
  419. package/dist/src/orchestrator/Orchestrator.d.ts.map +1 -0
  420. package/dist/src/orchestrator/Orchestrator.js +697 -0
  421. package/dist/src/orchestrator/Orchestrator.js.map +1 -0
  422. package/dist/src/scripts/debug-redis.d.ts +2 -0
  423. package/dist/src/scripts/debug-redis.d.ts.map +1 -0
  424. package/dist/src/scripts/debug-redis.js +55 -0
  425. package/dist/src/scripts/debug-redis.js.map +1 -0
  426. package/dist/src/scripts/seed-collaborative-intents.d.ts +2 -0
  427. package/dist/src/scripts/seed-collaborative-intents.d.ts.map +1 -0
  428. package/dist/src/scripts/seed-collaborative-intents.js +90 -0
  429. package/dist/src/scripts/seed-collaborative-intents.js.map +1 -0
  430. package/dist/src/scripts/test-isolated-config.d.ts +2 -0
  431. package/dist/src/scripts/test-isolated-config.d.ts.map +1 -0
  432. package/dist/src/scripts/test-isolated-config.js +80 -0
  433. package/dist/src/scripts/test-isolated-config.js.map +1 -0
  434. package/dist/src/scripts/verify_memory_intents.d.ts +2 -0
  435. package/dist/src/scripts/verify_memory_intents.d.ts.map +1 -0
  436. package/dist/src/scripts/verify_memory_intents.js +45 -0
  437. package/dist/src/scripts/verify_memory_intents.js.map +1 -0
  438. package/dist/src/scripts/verify_redis_intents.d.ts +2 -0
  439. package/dist/src/scripts/verify_redis_intents.d.ts.map +1 -0
  440. package/dist/src/scripts/verify_redis_intents.js +52 -0
  441. package/dist/src/scripts/verify_redis_intents.js.map +1 -0
  442. package/dist/src/server/ChatFlowWebSocketServer.d.ts +42 -0
  443. package/dist/src/server/ChatFlowWebSocketServer.d.ts.map +1 -0
  444. package/dist/src/server/ChatFlowWebSocketServer.js +355 -0
  445. package/dist/src/server/ChatFlowWebSocketServer.js.map +1 -0
  446. package/dist/src/utils/crypto.d.ts +7 -0
  447. package/dist/src/utils/crypto.d.ts.map +1 -0
  448. package/dist/src/utils/crypto.js +35 -0
  449. package/dist/src/utils/crypto.js.map +1 -0
  450. package/dist/src/utils/encryption-helpers.d.ts +14 -0
  451. package/dist/src/utils/encryption-helpers.d.ts.map +1 -0
  452. package/dist/src/utils/encryption-helpers.js +49 -0
  453. package/dist/src/utils/encryption-helpers.js.map +1 -0
  454. package/dist/utils/crypto.d.ts +7 -0
  455. package/dist/utils/crypto.d.ts.map +1 -0
  456. package/dist/utils/crypto.js +35 -0
  457. package/dist/utils/crypto.js.map +1 -0
  458. package/dist/utils/encryption-helpers.d.ts +14 -0
  459. package/dist/utils/encryption-helpers.d.ts.map +1 -0
  460. package/dist/utils/encryption-helpers.js +49 -0
  461. package/dist/utils/encryption-helpers.js.map +1 -0
  462. package/dist/web/seed-demo-data.d.ts +2 -0
  463. package/dist/web/seed-demo-data.d.ts.map +1 -0
  464. package/dist/web/seed-demo-data.js +267 -0
  465. package/dist/web/seed-demo-data.js.map +1 -0
  466. package/dist/web/web-server.d.ts +2 -0
  467. package/dist/web/web-server.d.ts.map +1 -0
  468. package/dist/web/web-server.js +165 -0
  469. package/dist/web/web-server.js.map +1 -0
  470. package/package.json +32 -3
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const dotenv = __importStar(require("dotenv"));
37
+ const supabase_js_1 = require("@supabase/supabase-js");
38
+ dotenv.config();
39
+ /**
40
+ * Demo Data Seeding Script
41
+ *
42
+ * Seeds Redis with demo user, conversation configs, and intents
43
+ * for testing the chat-flow widget.
44
+ *
45
+ * Run this before starting the server:
46
+ * npm run seed
47
+ */
48
+ // Data Persistence (Redis)
49
+ // Data Persistence (Supabase)
50
+ const SupabaseRepository_1 = require("../src/adapters/repository/SupabaseRepository");
51
+ if (!process.env.SUPABASE_URL || !process.env.SUPABASE_KEY) {
52
+ console.error('āŒ Missing SUPABASE_URL or SUPABASE_KEY in .env');
53
+ process.exit(1);
54
+ }
55
+ const repository = new SupabaseRepository_1.SupabaseRepository({
56
+ supabaseUrl: process.env.SUPABASE_URL,
57
+ supabaseKey: process.env.SUPABASE_KEY
58
+ });
59
+ // --- Demo: Upsert User & Config ---
60
+ // --- Demo: Upsert User & Config ---
61
+ const DEMO_USER_ID = 'd8bb92cc-6e7b-4e7a-8eb8-495b1988bab4'; // Valid UUID for schema compatibility
62
+ const DEMO_CONFIG_ID_SUPPORT = '00000000-0000-0000-0000-000000000001';
63
+ const DEMO_CONFIG_ID_FLIGHT = '00000000-0000-0000-0000-000000000002';
64
+ async function initializeDemoUser() {
65
+ console.log('šŸ”§ Initializing Demo User...');
66
+ // 0. Cleanup Old Data (Deep Clean)
67
+ const supabase = (0, supabase_js_1.createClient)(process.env.SUPABASE_URL, process.env.SUPABASE_KEY);
68
+ // Delete Sessions for Demo Configs
69
+ console.log(' - Cleaning up sessions for demo configs...');
70
+ const { error: sessionError } = await supabase
71
+ .from('chat_flow_sessions')
72
+ .delete()
73
+ .or(`config_id.eq.${DEMO_CONFIG_ID_SUPPORT},config_id.eq.${DEMO_CONFIG_ID_FLIGHT},user_id.eq.${DEMO_USER_ID}`);
74
+ if (sessionError)
75
+ console.error('Warning: Failed to cleanup sessions', sessionError);
76
+ // Delete Action Logs for Demo User (To prevent FK violation)
77
+ console.log(' - Cleaning up action logs...');
78
+ const { error: logsError } = await supabase
79
+ .from('chat_flow_action_logs')
80
+ .delete()
81
+ .eq('user_id', DEMO_USER_ID);
82
+ if (logsError)
83
+ console.error('Warning: Failed to cleanup action logs', logsError);
84
+ // Delete Workflow Executions for Demo User (Cascades to Logs)
85
+ console.log(' - Cleaning up workflow executions...');
86
+ const { error: execError } = await supabase
87
+ .from('chat_flow_workflow_executions')
88
+ .delete()
89
+ .eq('user_id', DEMO_USER_ID);
90
+ if (execError)
91
+ console.error('Warning: Failed to cleanup executions', execError);
92
+ // Delete Webhook Events for Demo User
93
+ const { error: hookError } = await supabase
94
+ .from('chat_flow_webhook_events')
95
+ .delete()
96
+ .eq('user_id', DEMO_USER_ID);
97
+ // 1. Upsert User
98
+ const user = {
99
+ id: DEMO_USER_ID,
100
+ name: 'Demo Voice Company',
101
+ apiKey: 'demo-key-123',
102
+ metadata: { plan: 'enterprise' }
103
+ };
104
+ // await repository.saveUser(user);
105
+ console.log(` - User '${user.name}' ready (Skipped saveUser - managed by Auth).`);
106
+ // 2. Upsert Config 1: Support
107
+ const configSupport = {
108
+ id: DEMO_CONFIG_ID_SUPPORT,
109
+ userId: DEMO_USER_ID,
110
+ systemPrompt: `You are a helpful customer support assistant.
111
+ You can check support hours and answer questions.
112
+ Keep responses concise and friendly.
113
+ When asked about working hours or support hours, use the information provided by the workflow system.`,
114
+ allowedIntents: ['CHECK_SUPPORT_HOURS', 'SMALL_TALK', 'CHECK_PRICING'], // Added CHECK_PRICING to keep existing demo capability
115
+ allowedOrigins: ['http://localhost:8080', 'http://127.0.0.1:8080', 'http://localhost:3000', 'file://'],
116
+ voiceConfig: {
117
+ silenceThresholdMs: 800,
118
+ smartMode: true,
119
+ interruptionMode: 'voice_barge_in'
120
+ },
121
+ uiConfig: {
122
+ width: '350px',
123
+ theme: 'light',
124
+ primaryColor: '#667eea',
125
+ layoutMode: 'default',
126
+ borderRadius: 'small',
127
+ boxShadow: 'soft',
128
+ sessionMode: 'text',
129
+ position: 'bottom-right',
130
+ collapsible: true, // Enable collapse/expand
131
+ autoExpanded: false, // Start collapsed by default
132
+ showStatus: false, // Default to hidden status badge
133
+ title: "Customer Support",
134
+ subtitle: "Ask about support hours & policies"
135
+ },
136
+ blacklistedWords: ['meow', 'bark', 'woof'],
137
+ exitPhrases: ['خداحافظ', 'بای', 'Ł¾Ų§ŪŒŲ§Ł†', 'Ł¾Ų§ŪŒŲ§Ł† جلسه', 'خدانگهدار'],
138
+ multiLingualMode: false,
139
+ defaultLanguage: 'en',
140
+ supportedLanguages: ['fa', 'ar', 'en'],
141
+ webhook: {
142
+ url: 'http://localhost:8080/webhook-test',
143
+ events: [
144
+ 'conversation.session.started',
145
+ 'conversation.session.ended',
146
+ 'conversation.message.user',
147
+ 'conversation.message.bot',
148
+ 'conversation.intent.detected',
149
+ 'conversation.intent.failed',
150
+ 'conversation.workflow.executed',
151
+ 'conversation.workflow.failed',
152
+ 'conversation.error.occurred'
153
+ ]
154
+ }
155
+ };
156
+ await repository.saveConversationConfig(configSupport);
157
+ console.log(` - Config '${configSupport.id}' ready (Support).`);
158
+ // 3. Upsert Config 2: Flight Assistant (New)
159
+ const configFlight = {
160
+ id: DEMO_CONFIG_ID_FLIGHT,
161
+ userId: DEMO_USER_ID,
162
+ systemPrompt: `You are a Flight Assistant.
163
+ You help users check flight status.
164
+ Keep responses very short and professional.`,
165
+ allowedIntents: ['CHECK_FLIGHT_STATUS'],
166
+ allowedOrigins: ['http://localhost:8080', 'http://127.0.0.1:8080', 'http://localhost:3000', 'file://'],
167
+ voiceConfig: {
168
+ silenceThresholdMs: 1000, // Faster turn-taking
169
+ smartMode: true
170
+ },
171
+ uiConfig: {
172
+ "theme": "dark",
173
+ "collapsible": true,
174
+ "autoExpanded": false,
175
+ "showStatus": false,
176
+ "title": "Flight Assistant",
177
+ "subtitle": "Check flight status (e.g. Flight 123)",
178
+ "sessionMode": "voice",
179
+ "position": "bottom-right",
180
+ "layoutMode": "default",
181
+ "borderRadius": "small",
182
+ "boxShadow": "soft",
183
+ "transparency": "low"
184
+ },
185
+ exitPhrases: ['خداحافظ', 'بای', 'Ł¾Ų§ŪŒŲ§Ł†', 'Ł¾Ų§ŪŒŲ§Ł† جلسه', 'خدانگهدار'], // Farsi exit phrases
186
+ multiLingualMode: false, // Enable automatic language detection
187
+ defaultLanguage: 'en' // Fallback language
188
+ };
189
+ await repository.saveConversationConfig(configFlight);
190
+ console.log(` - Config '${configFlight.id}' ready (Flight).`);
191
+ // 3. Upsert User Intent
192
+ const supportIntent = {
193
+ userId: DEMO_USER_ID,
194
+ name: 'CHECK_SUPPORT_HOURS',
195
+ description: 'User is asking about support hours, working hours, opening times, or when support is available',
196
+ required_fields: [],
197
+ processingMessages: ['Checking support hours for you...', 'One moment please...']
198
+ };
199
+ await repository.saveIntent(supportIntent);
200
+ const flightIntent = {
201
+ userId: DEMO_USER_ID,
202
+ name: 'CHECK_FLIGHT_STATUS',
203
+ description: 'Check status of a flight',
204
+ required_fields: [{ name: 'flightNumber', type: 'string' }]
205
+ };
206
+ await repository.saveIntent(flightIntent);
207
+ const pricingIntent = {
208
+ userId: DEMO_USER_ID,
209
+ name: 'CHECK_PRICING',
210
+ description: 'Check pricing for services, subscriptions, or plans',
211
+ required_fields: []
212
+ };
213
+ await repository.saveIntent(pricingIntent);
214
+ const smallTalkIntent = {
215
+ userId: DEMO_USER_ID,
216
+ name: 'SMALL_TALK',
217
+ description: 'Casual conversation, greetings, pleasantries',
218
+ required_fields: [],
219
+ skipWorkflow: true
220
+ };
221
+ await repository.saveIntent(smallTalkIntent);
222
+ console.log(` - Intents ready.`);
223
+ // 4. Cleanup existing workflows
224
+ const existingWorkflows = await repository.getAllWorkflows(DEMO_USER_ID);
225
+ console.log(` - Found ${existingWorkflows.length} existing workflows. Cleaning up...`);
226
+ for (const w of existingWorkflows) {
227
+ await repository.deleteWorkflow(w.id, DEMO_USER_ID);
228
+ }
229
+ // 5. Create Support Hours Workflow
230
+ // Use a fixed valid UUID for the demo workflow
231
+ const DEMO_WORKFLOW_ID = '00000000-0000-0000-0000-000000000123';
232
+ const supportHoursWorkflow = {
233
+ id: DEMO_WORKFLOW_ID,
234
+ userId: DEMO_USER_ID,
235
+ event_type: 'CHECK_SUPPORT_HOURS',
236
+ name: 'Support Hours Workflow',
237
+ description: 'Returns customer support hours',
238
+ definition: [
239
+ {
240
+ id: 'push_msg',
241
+ action: 'pushOutputResult',
242
+ input: {
243
+ message: "Our support team is available Monday through Friday from 9 AM to 5 PM EST. Is there anything else I can help you with?"
244
+ },
245
+ nextStepId: null
246
+ }
247
+ ],
248
+ configs: {},
249
+ is_active: true,
250
+ created_at: new Date().toISOString(),
251
+ updated_at: new Date().toISOString()
252
+ };
253
+ await repository.saveWorkflow(supportHoursWorkflow);
254
+ console.log(` - Workflow '${supportHoursWorkflow.name}' ready.`);
255
+ console.log('\nāœ… Demo data seeded successfully!');
256
+ }
257
+ // Run initialization
258
+ initializeDemoUser()
259
+ .then(() => {
260
+ console.log('\nšŸ’” You can now start the server with: npm run server');
261
+ process.exit(0);
262
+ })
263
+ .catch(err => {
264
+ console.error('āŒ Failed to seed demo data:', err);
265
+ process.exit(1);
266
+ });
267
+ //# sourceMappingURL=seed-demo-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-demo-data.js","sourceRoot":"","sources":["../../web/seed-demo-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=web-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-server.d.ts","sourceRoot":"","sources":["../../web/web-server.ts"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const dotenv = __importStar(require("dotenv"));
40
+ const http = __importStar(require("http"));
41
+ const path = __importStar(require("path"));
42
+ const ioredis_1 = __importDefault(require("ioredis"));
43
+ const express_1 = __importDefault(require("express"));
44
+ const cors_1 = __importDefault(require("cors"));
45
+ const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
46
+ const ChatFlowWebSocketServer_1 = require("../src/server/ChatFlowWebSocketServer");
47
+ const GeminiLLMAdapter_1 = require("../src/adapters/llm/GeminiLLMAdapter");
48
+ const SupabaseRepository_1 = require("../src/adapters/repository/SupabaseRepository");
49
+ const GoogleVoiceAdapter_1 = require("../src/adapters/voice/GoogleVoiceAdapter");
50
+ const WorkflowAdapter_1 = require("../src/adapters/workflow/WorkflowAdapter");
51
+ const RedisAudioStorageAdapter_1 = require("../src/adapters/storage/RedisAudioStorageAdapter");
52
+ const router_1 = require("../src/api/router");
53
+ const swagger_1 = require("../src/config/swagger");
54
+ dotenv.config();
55
+ /**
56
+ * Production Server
57
+ *
58
+ * Serves static files and handles WebSocket connections.
59
+ *
60
+ * Configuration:
61
+ * - PORT: Server port (default 8080)
62
+ * - REDIS_URL: Redis connection string
63
+ * - GOOGLE_AI_API_KEY: Gemini API Key
64
+ */
65
+ // Check API keys
66
+ const geminiApiKey = process.env.GOOGLE_AI_API_KEY;
67
+ const supabaseUrl = process.env.SUPABASE_URL;
68
+ const supabaseKey = process.env.SUPABASE_KEY;
69
+ if (!geminiApiKey) {
70
+ console.error('āŒ Missing GOOGLE_AI_API_KEY in .env file');
71
+ process.exit(1);
72
+ }
73
+ if (!supabaseUrl || !supabaseKey) {
74
+ console.error('āŒ Missing SUPABASE_URL or SUPABASE_KEY in .env file');
75
+ process.exit(1);
76
+ }
77
+ // Setup Redis (still needed for AudioStorage?)
78
+ // Plan says migrate "Repository". AudioStorage uses Redis still?
79
+ // task.md only mentions migrating "Repository".
80
+ // RedisAudioStorageAdapter is separate. I should keep Redis for that if not migrated.
81
+ const redisClient = new ioredis_1.default(process.env.REDIS_URL || 'redis://localhost:6379');
82
+ // Setup Repository (Supabase)
83
+ const repository = new SupabaseRepository_1.SupabaseRepository({
84
+ supabaseUrl,
85
+ supabaseKey: supabaseKey,
86
+ cacheTtlSeconds: 120 // 2 minutes
87
+ });
88
+ const llmAdapter = new GeminiLLMAdapter_1.GeminiLLMAdapter(geminiApiKey);
89
+ const voiceAdapter = new GoogleVoiceAdapter_1.GoogleVoiceAdapter(geminiApiKey);
90
+ // Use real WorkflowAdapter (auto-registers default actions)
91
+ const workflowAdapter = new WorkflowAdapter_1.WorkflowAdapter(repository);
92
+ const audioStorage = new RedisAudioStorageAdapter_1.RedisAudioStorageAdapter(redisClient);
93
+ const PORT = process.env.PORT || 8080;
94
+ // Initialize Express App
95
+ const app = (0, express_1.default)();
96
+ app.use((0, cors_1.default)());
97
+ app.use(express_1.default.json());
98
+ // API Documentation
99
+ app.use('/api-docs', swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swagger_1.swaggerSpec));
100
+ // Mount API Routes
101
+ app.use('/api', (0, router_1.createApiRouter)(repository));
102
+ // Serve Static Files
103
+ app.use(express_1.default.static(path.join(__dirname, 'public')));
104
+ // Serve Widget Script (special path for compatibility)
105
+ app.get('/chat-flow-widget.js', (req, res) => {
106
+ res.sendFile(path.join(__dirname, '../src/widget/chat-flow-widget.js'));
107
+ });
108
+ // Mock Webhook Endpoint
109
+ app.post('/webhook-test', (req, res) => {
110
+ console.log("-------------- [START] --------------");
111
+ console.log(`[Webhook] Received POST /webhook-test (Event: ${req.body.eventType})`);
112
+ console.log(JSON.stringify(req.body, null, 2));
113
+ console.log("-------------- [END] ----------------");
114
+ res.status(200).send('OK');
115
+ });
116
+ // Serve Recordings
117
+ app.get('/recordings/:filename', async (req, res) => {
118
+ const filename = req.params.filename;
119
+ const sessionId = filename.replace('.wav', '');
120
+ if (filename.includes('..')) {
121
+ return res.status(403).send('Forbidden');
122
+ }
123
+ try {
124
+ const audioBuffer = await audioStorage.getSessionAudio(sessionId);
125
+ if (!audioBuffer) {
126
+ return res.status(404).send('Recording not found');
127
+ }
128
+ res.setHeader('Content-Type', 'audio/wav');
129
+ res.send(audioBuffer);
130
+ }
131
+ catch (error) {
132
+ console.error('[Server] Error serving recording:', error);
133
+ res.status(500).send('Internal Server Error');
134
+ }
135
+ });
136
+ // Create HTTP server from Express app
137
+ const httpServer = http.createServer(app);
138
+ // Create and start ChatFlow WebSocket server
139
+ const chatFlowWS = new ChatFlowWebSocketServer_1.ChatFlowWebSocketServer(httpServer, repository, llmAdapter, voiceAdapter, workflowAdapter, audioStorage, {
140
+ sessionLogInterval: 30000 // Log active sessions every 30 seconds
141
+ });
142
+ chatFlowWS.start();
143
+ // Start HTTP server
144
+ httpServer.listen(PORT, () => {
145
+ console.log('šŸŽ™ļø Chat Flow Demo Server (Express)');
146
+ console.log('='.repeat(60));
147
+ console.log(`āœ… HTTP server listening on http://localhost:${PORT}`);
148
+ console.log(`āœ… WebSocket server listening on ws://localhost:${PORT}`);
149
+ console.log(`šŸ“– API Documentation: http://localhost:${PORT}/api-docs`);
150
+ console.log(`šŸ’” Health check: http://localhost:${PORT}/api/health`);
151
+ });
152
+ // Graceful shutdown
153
+ process.on('SIGINT', async () => {
154
+ console.log('\n\nšŸ›‘ Shutting down demo server...');
155
+ await chatFlowWS.stop();
156
+ httpServer.close(() => {
157
+ console.log('āœ… HTTP server shut down gracefully');
158
+ process.exit(0);
159
+ });
160
+ setTimeout(() => {
161
+ console.log('āš ļø Forcing shutdown...');
162
+ process.exit(0);
163
+ }, 2000);
164
+ });
165
+ //# sourceMappingURL=web-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-server.js","sourceRoot":"","sources":["../../web/web-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chat-flow-ardymalihi",
3
- "version": "1.0.2",
3
+ "version": "3.0.0",
4
4
  "description": "Production-ready conversation orchestration library with intent detection and workflow integration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,12 +16,22 @@
16
16
  "test": "jest",
17
17
  "test:watch": "jest --watch",
18
18
  "test:coverage": "jest --coverage",
19
+ "test:unit": "jest tests/unit",
20
+ "test:integration": "jest tests/integration",
21
+ "test:integration:local": "LLM_PROVIDER=local jest tests/integration",
22
+ "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
19
23
  "lint": "eslint src/**/*.ts",
20
24
  "lint:fix": "eslint src/**/*.ts --fix",
21
25
  "format": "prettier --write \"src/**/*.ts\"",
22
26
  "format:check": "prettier --check \"src/**/*.ts\"",
23
27
  "demo": "ts-node src/demo/cli-demo.ts",
24
28
  "chat": "ts-node src/demo/console-chat.ts",
29
+ "backend": "ts-node web/web-server.ts",
30
+ "demo-website": "ts-node web-demo/demo-website-server.ts",
31
+ "seed": "ts-node web/seed-demo-data.ts",
32
+ "purge:redis": "ts-node tools/purge-redis.ts",
33
+ "dev": "npm run seed && npm run backend",
34
+ "kill": "lsof -ti:8080 | xargs kill -9",
25
35
  "prepublishOnly": "npm run build && npm test",
26
36
  "prerelease": "git pull origin main",
27
37
  "release:patch": "npm run prerelease && npm version patch && npm publish --access public && git push && git push --tags",
@@ -52,12 +62,19 @@
52
62
  },
53
63
  "homepage": "https://github.com/ardymalihi/chat-flow#readme",
54
64
  "devDependencies": {
65
+ "@types/cors": "^2.8.19",
66
+ "@types/dagre": "^0.7.53",
67
+ "@types/express": "^5.0.6",
55
68
  "@types/ioredis": "^5.0.0",
56
69
  "@types/jest": "^29.5.0",
57
70
  "@types/node": "^20.0.0",
71
+ "@types/swagger-jsdoc": "^6.0.4",
72
+ "@types/swagger-ui-express": "^4.1.8",
58
73
  "@types/uuid": "^9.0.8",
74
+ "@types/ws": "^8.18.1",
59
75
  "@typescript-eslint/eslint-plugin": "^6.0.0",
60
76
  "@typescript-eslint/parser": "^6.0.0",
77
+ "dotenv": "^17.2.3",
61
78
  "eslint": "^8.0.0",
62
79
  "jest": "^29.5.0",
63
80
  "prettier": "^3.0.0",
@@ -66,10 +83,22 @@
66
83
  "typescript": "^5.0.0"
67
84
  },
68
85
  "dependencies": {
86
+ "@google-cloud/text-to-speech": "^6.4.0",
69
87
  "@google/generative-ai": "^0.24.1",
70
- "dotenv": "^16.0.0",
88
+ "@supabase/supabase-js": "^2.89.0",
89
+ "body-parser": "^2.2.1",
90
+ "cors": "^2.8.5",
91
+ "cron-parser": "^5.4.0",
92
+ "dagre": "^0.8.5",
93
+ "express": "^5.2.1",
71
94
  "ioredis": "^5.8.2",
72
- "uuid": "^9.0.1"
95
+ "lru-cache": "^11.2.4",
96
+ "ollama": "^0.6.3",
97
+ "swagger-jsdoc": "^6.2.8",
98
+ "swagger-ui-express": "^5.0.1",
99
+ "uuid": "^9.0.1",
100
+ "ws": "^8.18.3",
101
+ "zod": "^4.3.5"
73
102
  },
74
103
  "engines": {
75
104
  "node": ">=16.0.0",