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,41 @@
1
+ import { AudioFormatMetadata } from '../../interfaces';
2
+ /**
3
+ * Audio Conversion Utilities
4
+ *
5
+ * Provides utilities for converting between different audio formats
6
+ * All conversions target LINEAR16 PCM at 16kHz mono for consistency
7
+ */
8
+ export declare const TARGET_SAMPLE_RATE = 16000;
9
+ export declare const TARGET_CHANNELS = 1;
10
+ export declare const TARGET_BIT_DEPTH = 16;
11
+ /**
12
+ * Convert incoming audio to target PCM format (16kHz, mono, 16-bit)
13
+ */
14
+ export declare function convertToTargetFormat(audioData: Buffer, formatMetadata?: AudioFormatMetadata): Promise<Buffer>;
15
+ /**
16
+ * Extract PCM from WAV file and resample if needed
17
+ */
18
+ export declare function extractAndResampleWAV(wavData: Buffer, metadata: AudioFormatMetadata): Buffer;
19
+ /**
20
+ * Convert MP3 to PCM
21
+ * For now, we'll use a simple approach - MP3 decoding without external deps
22
+ * In production, consider using a library like 'lamejs' or 'mp3-parser'
23
+ */
24
+ export declare function convertMP3ToPCM(mp3Data: Buffer, metadata: AudioFormatMetadata): Buffer;
25
+ /**
26
+ * Resample PCM audio to target sample rate
27
+ */
28
+ export declare function resamplePCM(pcmData: Buffer, metadata: AudioFormatMetadata): Buffer;
29
+ /**
30
+ * Read a sample from PCM data
31
+ */
32
+ export declare function readSample(buffer: Buffer, sampleIndex: number, channels: number, bitDepth: number): number;
33
+ /**
34
+ * Write a sample to PCM data
35
+ */
36
+ export declare function writeSample(buffer: Buffer, sampleIndex: number, value: number, bitDepth: number): void;
37
+ /**
38
+ * Create WAV file from raw PCM data
39
+ */
40
+ export declare function wrapPCMInWAV(pcmData: Buffer): Buffer;
41
+ //# sourceMappingURL=AudioUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/AudioUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;GAKG;AAGH,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBpH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CA6B5F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAQtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CA4ClF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqB1G;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQtG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiCpD"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TARGET_BIT_DEPTH = exports.TARGET_CHANNELS = exports.TARGET_SAMPLE_RATE = void 0;
4
+ exports.convertToTargetFormat = convertToTargetFormat;
5
+ exports.extractAndResampleWAV = extractAndResampleWAV;
6
+ exports.convertMP3ToPCM = convertMP3ToPCM;
7
+ exports.resamplePCM = resamplePCM;
8
+ exports.readSample = readSample;
9
+ exports.writeSample = writeSample;
10
+ exports.wrapPCMInWAV = wrapPCMInWAV;
11
+ /**
12
+ * Audio Conversion Utilities
13
+ *
14
+ * Provides utilities for converting between different audio formats
15
+ * All conversions target LINEAR16 PCM at 16kHz mono for consistency
16
+ */
17
+ // Target audio format for storage
18
+ exports.TARGET_SAMPLE_RATE = 16000;
19
+ exports.TARGET_CHANNELS = 1;
20
+ exports.TARGET_BIT_DEPTH = 16;
21
+ /**
22
+ * Convert incoming audio to target PCM format (16kHz, mono, 16-bit)
23
+ */
24
+ async function convertToTargetFormat(audioData, formatMetadata) {
25
+ if (!formatMetadata) {
26
+ // Assume WAV format if no metadata provided (backward compatibility)
27
+ formatMetadata = { format: 'wav', sampleRate: 48000, channels: 1, bitDepth: 16 };
28
+ }
29
+ switch (formatMetadata.format) {
30
+ case 'wav':
31
+ return extractAndResampleWAV(audioData, formatMetadata);
32
+ case 'mp3':
33
+ return convertMP3ToPCM(audioData, formatMetadata);
34
+ case 'pcm':
35
+ return resamplePCM(audioData, formatMetadata);
36
+ default:
37
+ console.warn(`[AudioUtils] Unsupported format: ${formatMetadata.format}, storing as-is`);
38
+ return audioData;
39
+ }
40
+ }
41
+ /**
42
+ * Extract PCM from WAV file and resample if needed
43
+ */
44
+ function extractAndResampleWAV(wavData, metadata) {
45
+ // WAV file structure:
46
+ // - RIFF header (12 bytes)
47
+ // - fmt chunk (24 bytes typically)
48
+ // - data chunk header (8 bytes)
49
+ // - PCM data
50
+ // Find 'data' chunk
51
+ const dataMarker = Buffer.from('data');
52
+ let dataStart = -1;
53
+ for (let i = 0; i < wavData.length - 4; i++) {
54
+ if (wavData.slice(i, i + 4).equals(dataMarker)) {
55
+ // Found 'data' marker, PCM starts 8 bytes after (4 for 'data', 4 for size)
56
+ dataStart = i + 8;
57
+ break;
58
+ }
59
+ }
60
+ if (dataStart === -1) {
61
+ console.warn('[AudioUtils] Could not find data chunk in WAV, using entire buffer');
62
+ dataStart = 44; // Standard WAV header size
63
+ }
64
+ // Extract raw PCM data
65
+ const pcmData = wavData.slice(dataStart);
66
+ // Resample if needed
67
+ return resamplePCM(pcmData, metadata);
68
+ }
69
+ /**
70
+ * Convert MP3 to PCM
71
+ * For now, we'll use a simple approach - MP3 decoding without external deps
72
+ * In production, consider using a library like 'lamejs' or 'mp3-parser'
73
+ */
74
+ function convertMP3ToPCM(mp3Data, metadata) {
75
+ // MP3 decoding is complex. For now, we'll log a warning and pass through
76
+ // The user should ideally change the provider output to WAV format
77
+ console.warn('[AudioUtils] MP3 decoding not yet implemented. Audio may not concatenate properly.');
78
+ console.warn('[AudioUtils] Consider changing provider output format to WAV.');
79
+ // Return as-is for now - this will need proper MP3 decoder
80
+ return mp3Data;
81
+ }
82
+ /**
83
+ * Resample PCM audio to target sample rate
84
+ */
85
+ function resamplePCM(pcmData, metadata) {
86
+ const sourceSampleRate = metadata.sampleRate || exports.TARGET_SAMPLE_RATE;
87
+ const sourceChannels = metadata.channels || exports.TARGET_CHANNELS;
88
+ const sourceBitDepth = metadata.bitDepth || exports.TARGET_BIT_DEPTH;
89
+ // If already in target format, return as-is
90
+ if (sourceSampleRate === exports.TARGET_SAMPLE_RATE &&
91
+ sourceChannels === exports.TARGET_CHANNELS &&
92
+ sourceBitDepth === exports.TARGET_BIT_DEPTH) {
93
+ return pcmData;
94
+ }
95
+ // Calculate bytes per sample
96
+ const sourceBytesPerSample = (sourceBitDepth / 8) * sourceChannels;
97
+ const targetBytesPerSample = (exports.TARGET_BIT_DEPTH / 8) * exports.TARGET_CHANNELS;
98
+ // Calculate number of samples
99
+ const sourceSampleCount = Math.floor(pcmData.length / sourceBytesPerSample);
100
+ const targetSampleCount = Math.floor((sourceSampleCount * exports.TARGET_SAMPLE_RATE) / sourceSampleRate);
101
+ // Create output buffer
102
+ const output = Buffer.alloc(targetSampleCount * targetBytesPerSample);
103
+ // Simple linear interpolation resampling
104
+ for (let i = 0; i < targetSampleCount; i++) {
105
+ const sourceIndex = (i * sourceSampleRate) / exports.TARGET_SAMPLE_RATE;
106
+ const sourceIndexFloor = Math.floor(sourceIndex);
107
+ const sourceIndexCeil = Math.ceil(sourceIndex);
108
+ const fraction = sourceIndex - sourceIndexFloor;
109
+ // Get samples (handle stereo to mono conversion if needed)
110
+ let sample1 = readSample(pcmData, sourceIndexFloor, sourceChannels, sourceBitDepth);
111
+ let sample2 = readSample(pcmData, sourceIndexCeil < sourceSampleCount ? sourceIndexCeil : sourceIndexFloor, sourceChannels, sourceBitDepth);
112
+ // Interpolate
113
+ const interpolated = Math.round(sample1 * (1 - fraction) + sample2 * fraction);
114
+ // Write sample
115
+ writeSample(output, i, interpolated, exports.TARGET_BIT_DEPTH);
116
+ }
117
+ return output;
118
+ }
119
+ /**
120
+ * Read a sample from PCM data
121
+ */
122
+ function readSample(buffer, sampleIndex, channels, bitDepth) {
123
+ const bytesPerSample = (bitDepth / 8) * channels;
124
+ const offset = sampleIndex * bytesPerSample;
125
+ if (offset >= buffer.length) {
126
+ return 0;
127
+ }
128
+ // Read first channel (mono or left channel for stereo)
129
+ if (bitDepth === 16) {
130
+ return buffer.readInt16LE(offset);
131
+ }
132
+ else if (bitDepth === 8) {
133
+ return buffer.readInt8(offset) * 256; // Scale to 16-bit range
134
+ }
135
+ else if (bitDepth === 24) {
136
+ const byte1 = buffer.readUInt8(offset);
137
+ const byte2 = buffer.readUInt8(offset + 1);
138
+ const byte3 = buffer.readInt8(offset + 2);
139
+ return ((byte3 << 16) | (byte2 << 8) | byte1) >> 8; // Scale down to 16-bit
140
+ }
141
+ else {
142
+ return buffer.readInt16LE(offset);
143
+ }
144
+ }
145
+ /**
146
+ * Write a sample to PCM data
147
+ */
148
+ function writeSample(buffer, sampleIndex, value, bitDepth) {
149
+ const offset = sampleIndex * (bitDepth / 8);
150
+ if (bitDepth === 16) {
151
+ // Clamp to 16-bit range
152
+ const clamped = Math.max(-32768, Math.min(32767, value));
153
+ buffer.writeInt16LE(clamped, offset);
154
+ }
155
+ }
156
+ /**
157
+ * Create WAV file from raw PCM data
158
+ */
159
+ function wrapPCMInWAV(pcmData) {
160
+ const sampleRate = exports.TARGET_SAMPLE_RATE;
161
+ const channels = exports.TARGET_CHANNELS;
162
+ const bitDepth = exports.TARGET_BIT_DEPTH;
163
+ const byteRate = sampleRate * channels * (bitDepth / 8);
164
+ const blockAlign = channels * (bitDepth / 8);
165
+ const dataSize = pcmData.length;
166
+ const fileSize = 36 + dataSize;
167
+ // Create WAV header
168
+ const header = Buffer.alloc(44);
169
+ // RIFF chunk descriptor
170
+ header.write('RIFF', 0);
171
+ header.writeUInt32LE(fileSize, 4);
172
+ header.write('WAVE', 8);
173
+ // fmt sub-chunk
174
+ header.write('fmt ', 12);
175
+ header.writeUInt32LE(16, 16); // Subchunk1Size (16 for PCM)
176
+ header.writeUInt16LE(1, 20); // AudioFormat (1 for PCM)
177
+ header.writeUInt16LE(channels, 22);
178
+ header.writeUInt32LE(sampleRate, 24);
179
+ header.writeUInt32LE(byteRate, 28);
180
+ header.writeUInt16LE(blockAlign, 32);
181
+ header.writeUInt16LE(bitDepth, 34);
182
+ // data sub-chunk
183
+ header.write('data', 36);
184
+ header.writeUInt32LE(dataSize, 40);
185
+ // Concatenate header and PCM data
186
+ return Buffer.concat([header, pcmData]);
187
+ }
188
+ //# sourceMappingURL=AudioUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioUtils.js","sourceRoot":"","sources":["../../../../src/core/utils/AudioUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { ILLMAdapter } from '../../interfaces';
2
+ /**
3
+ * Language Detection Utility
4
+ *
5
+ * Detects the language of user messages using LLM analysis.
6
+ * Returns ISO 639-1 language codes (e.g., 'en', 'ar', 'fa', 'es').
7
+ */
8
+ export declare class LanguageDetector {
9
+ private llm;
10
+ private cache;
11
+ constructor(llm: ILLMAdapter);
12
+ /**
13
+ * Detect language from text
14
+ * @param text Text to analyze
15
+ * @param languageHints Optional array of preferred languages (e.g., from supportedLanguages config)
16
+ * @returns ISO 639-1 language code (e.g., 'en', 'ar', 'fa')
17
+ */
18
+ detectLanguage(text: string, languageHints?: string[]): Promise<string>;
19
+ /**
20
+ * Detect if text uses a specific character set (fast heuristic)
21
+ * This avoids expensive LLM calls when character set hasn't changed
22
+ * @param text Text to analyze
23
+ * @returns Character set type
24
+ */
25
+ detectCharacterSet(text: string): 'arabic' | 'persian' | 'cjk' | 'cyrillic' | 'latin';
26
+ /**
27
+ * Check if character set changed from previous language
28
+ * @param text Current text
29
+ * @param previousLanguage Previously detected language code
30
+ * @returns True if character set changed, suggesting language might have changed
31
+ */
32
+ hasCharacterSetChanged(text: string, previousLanguage: string | null): boolean;
33
+ /**
34
+ * Get expected character set for a language code
35
+ */
36
+ private getCharacterSetForLanguage;
37
+ /**
38
+ * Get language name from code
39
+ * @param code ISO 639-1 language code
40
+ * @returns Human-readable language name
41
+ */
42
+ getLanguageName(code: string): string;
43
+ /**
44
+ * Clear the cache
45
+ */
46
+ clearCache(): void;
47
+ /**
48
+ * Generate cache key from text
49
+ */
50
+ private getCacheKey;
51
+ }
52
+ //# sourceMappingURL=LanguageDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageDetector.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/LanguageDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,gBAAgB;IAGb,OAAO,CAAC,GAAG;IAFvB,OAAO,CAAC,KAAK,CAAkC;gBAE3B,GAAG,EAAE,WAAW;IAEpC;;;;;OAKG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA2D7E;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO;IAwBrF;;;;;OAKG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAS9E;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA2BrC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,CAAC,WAAW;CAItB"}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LanguageDetector = void 0;
4
+ /**
5
+ * Language Detection Utility
6
+ *
7
+ * Detects the language of user messages using LLM analysis.
8
+ * Returns ISO 639-1 language codes (e.g., 'en', 'ar', 'fa', 'es').
9
+ */
10
+ class LanguageDetector {
11
+ constructor(llm) {
12
+ this.llm = llm;
13
+ this.cache = new Map();
14
+ }
15
+ /**
16
+ * Detect language from text
17
+ * @param text Text to analyze
18
+ * @param languageHints Optional array of preferred languages (e.g., from supportedLanguages config)
19
+ * @returns ISO 639-1 language code (e.g., 'en', 'ar', 'fa')
20
+ */
21
+ async detectLanguage(text, languageHints) {
22
+ // Check cache first
23
+ const cacheKey = this.getCacheKey(text);
24
+ if (this.cache.has(cacheKey)) {
25
+ return this.cache.get(cacheKey);
26
+ }
27
+ // For very short ambiguous words in non-Latin script, use language hints
28
+ const characterSet = this.detectCharacterSet(text);
29
+ const isAmbiguousShortText = text.trim().split(/\s+/).length <= 2;
30
+ if (isAmbiguousShortText && characterSet !== 'latin' && languageHints && languageHints.length > 0) {
31
+ // Use first supported language for ambiguous cases like "سلام" (Salam)
32
+ const preferredLanguage = languageHints[0];
33
+ const preferredCharSet = this.getCharacterSetForLanguage(preferredLanguage);
34
+ // Only use hint if character sets match
35
+ if (preferredCharSet === characterSet || (characterSet === 'arabic' && preferredCharSet === 'persian') || (characterSet === 'persian' && preferredCharSet === 'arabic')) {
36
+ console.log(`[LanguageDetector] Ambiguous short text detected. Using preferred language: ${preferredLanguage}`);
37
+ this.cache.set(cacheKey, preferredLanguage);
38
+ return preferredLanguage;
39
+ }
40
+ }
41
+ const prompt = `Identify the language of the following text and return ONLY the ISO 639-1 language code (2-letter code like 'en', 'ar', 'fa', 'es', 'fr', etc.).
42
+
43
+ Text: "${text}"
44
+
45
+ Response format: Just the 2-letter code, nothing else.`;
46
+ try {
47
+ const response = await this.llm.generateResponse(prompt, []);
48
+ const content = response.content?.trim() || '';
49
+ const languageCode = content.toLowerCase().substring(0, 2);
50
+ // Validate it's a 2-letter code
51
+ if (!/^[a-z]{2}$/.test(languageCode)) {
52
+ console.warn(`[LanguageDetector] Invalid language code detected: "${languageCode}". Defaulting to 'en'.`);
53
+ return 'en';
54
+ }
55
+ // Cache the result
56
+ this.cache.set(cacheKey, languageCode);
57
+ // Limit cache size to prevent memory issues
58
+ if (this.cache.size > 1000) {
59
+ const firstKey = this.cache.keys().next().value;
60
+ if (firstKey) {
61
+ this.cache.delete(firstKey);
62
+ }
63
+ }
64
+ return languageCode;
65
+ }
66
+ catch (error) {
67
+ console.error('[LanguageDetector] Error detecting language:', error);
68
+ return 'en'; // Fallback to English
69
+ }
70
+ }
71
+ /**
72
+ * Detect if text uses a specific character set (fast heuristic)
73
+ * This avoids expensive LLM calls when character set hasn't changed
74
+ * @param text Text to analyze
75
+ * @returns Character set type
76
+ */
77
+ detectCharacterSet(text) {
78
+ // Arabic script (includes Persian)
79
+ if (/[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF]/.test(text)) {
80
+ // Check for Persian-specific characters
81
+ if (/[\u067E\u0686\u0698\u06AF]/.test(text)) {
82
+ return 'persian';
83
+ }
84
+ return 'arabic';
85
+ }
86
+ // CJK (Chinese, Japanese, Korean)
87
+ if (/[\u4E00-\u9FFF\u3040-\u309F\u30A0-\u30FF\uAC00-\uD7AF]/.test(text)) {
88
+ return 'cjk';
89
+ }
90
+ // Cyrillic (Russian, Ukrainian, etc.)
91
+ if (/[\u0400-\u04FF]/.test(text)) {
92
+ return 'cyrillic';
93
+ }
94
+ // Default to Latin
95
+ return 'latin';
96
+ }
97
+ /**
98
+ * Check if character set changed from previous language
99
+ * @param text Current text
100
+ * @param previousLanguage Previously detected language code
101
+ * @returns True if character set changed, suggesting language might have changed
102
+ */
103
+ hasCharacterSetChanged(text, previousLanguage) {
104
+ if (!previousLanguage)
105
+ return true; // First message
106
+ const currentCharSet = this.detectCharacterSet(text);
107
+ const previousCharSet = this.getCharacterSetForLanguage(previousLanguage);
108
+ return currentCharSet !== previousCharSet;
109
+ }
110
+ /**
111
+ * Get expected character set for a language code
112
+ */
113
+ getCharacterSetForLanguage(languageCode) {
114
+ const arabicLangs = ['ar'];
115
+ const persianLangs = ['fa'];
116
+ const cjkLangs = ['zh', 'ja', 'ko'];
117
+ const cyrillicLangs = ['ru', 'uk', 'bg'];
118
+ if (arabicLangs.includes(languageCode))
119
+ return 'arabic';
120
+ if (persianLangs.includes(languageCode))
121
+ return 'persian';
122
+ if (cjkLangs.includes(languageCode))
123
+ return 'cjk';
124
+ if (cyrillicLangs.includes(languageCode))
125
+ return 'cyrillic';
126
+ return 'latin';
127
+ }
128
+ /**
129
+ * Get language name from code
130
+ * @param code ISO 639-1 language code
131
+ * @returns Human-readable language name
132
+ */
133
+ getLanguageName(code) {
134
+ const languageNames = {
135
+ 'en': 'English',
136
+ 'ar': 'Arabic',
137
+ 'fa': 'Persian',
138
+ 'es': 'Spanish',
139
+ 'fr': 'French',
140
+ 'de': 'German',
141
+ 'it': 'Italian',
142
+ 'pt': 'Portuguese',
143
+ 'ru': 'Russian',
144
+ 'zh': 'Chinese',
145
+ 'ja': 'Japanese',
146
+ 'ko': 'Korean',
147
+ 'hi': 'Hindi',
148
+ 'tr': 'Turkish',
149
+ 'nl': 'Dutch',
150
+ 'pl': 'Polish',
151
+ 'sv': 'Swedish',
152
+ 'da': 'Danish',
153
+ 'fi': 'Finnish',
154
+ 'no': 'Norwegian'
155
+ };
156
+ return languageNames[code.toLowerCase()] || code.toUpperCase();
157
+ }
158
+ /**
159
+ * Clear the cache
160
+ */
161
+ clearCache() {
162
+ this.cache.clear();
163
+ }
164
+ /**
165
+ * Generate cache key from text
166
+ */
167
+ getCacheKey(text) {
168
+ // Use first 100 characters and normalize
169
+ return text.substring(0, 100).trim().toLowerCase();
170
+ }
171
+ }
172
+ exports.LanguageDetector = LanguageDetector;
173
+ //# sourceMappingURL=LanguageDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageDetector.js","sourceRoot":"","sources":["../../../../src/core/utils/LanguageDetector.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAa,gBAAgB;IAGzB,YAAoB,GAAgB;QAAhB,QAAG,GAAH,GAAG,CAAa;QAF5B,UAAK,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEP,CAAC;IAEzC;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,aAAwB;QACvD,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACrC,CAAC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QAElE,IAAI,oBAAoB,IAAI,YAAY,KAAK,OAAO,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChG,uEAAuE;YACvE,MAAM,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;YAE5E,wCAAwC;YACxC,IAAI,gBAAgB,KAAK,YAAY,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,gBAAgB,KAAK,SAAS,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,gBAAgB,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACtK,OAAO,CAAC,GAAG,CAAC,+EAA+E,iBAAiB,EAAE,CAAC,CAAC;gBAChH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC5C,OAAO,iBAAiB,CAAC;YAC7B,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG;;SAEd,IAAI;;uDAE0C,CAAC;QAEhD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE3D,gCAAgC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,uDAAuD,YAAY,wBAAwB,CAAC,CAAC;gBAC1G,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,mBAAmB;YACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEvC,4CAA4C;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;YAED,OAAO,YAAY,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACvC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,IAAY;QAC3B,mCAAmC;QACnC,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,wCAAwC;YACxC,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,kCAAkC;QAClC,IAAI,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,sCAAsC;QACtC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,mBAAmB;QACnB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,IAAY,EAAE,gBAA+B;QAChE,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAEpD,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAE1E,OAAO,cAAc,KAAK,eAAe,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,0BAA0B,CAAC,YAAoB;QACnD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,QAAQ,CAAC;QACxD,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,SAAS,CAAC;QAC1D,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,KAAK,CAAC;QAClD,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,UAAU,CAAC;QAE5D,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAY;QACxB,MAAM,aAAa,GAA2B;YAC1C,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;SACpB,CAAC;QAEF,OAAO,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY;QAC5B,yCAAyC;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvD,CAAC;CACJ;AAlLD,4CAkLC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-demo.d.ts","sourceRoot":"","sources":["../../../src/demo/cli-demo.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
@@ -6,10 +6,12 @@ const InMemoryRepository_1 = require("../adapters/repository/InMemoryRepository"
6
6
  const RedisRepository_1 = require("../adapters/repository/RedisRepository");
7
7
  const MockLLMAdapter_1 = require("../adapters/llm/MockLLMAdapter");
8
8
  const GeminiLLMAdapter_1 = require("../adapters/llm/GeminiLLMAdapter");
9
- const MockIntentService_1 = require("../intent/MockIntentService");
9
+ const MockIntentService_1 = require("../adapters/intent/MockIntentService");
10
10
  const MockWorkflowAdapter_1 = require("../adapters/workflow/MockWorkflowAdapter");
11
- const IntentService_1 = require("../intent/IntentService");
11
+ const IntentService_1 = require("../adapters/intent/IntentService");
12
+ const IntentMatcher_1 = require("../adapters/intent/IntentMatcher");
12
13
  const interfaces_1 = require("../interfaces");
14
+ const WebhookService_1 = require("../adapters/webhook/WebhookService");
13
15
  const uuid_1 = require("uuid");
14
16
  async function runDemo() {
15
17
  console.log('--- Chat-Flow Demo Start ---');
@@ -40,7 +42,8 @@ async function runDemo() {
40
42
  // Only if we have Redis AND Gemini (for embeddings)
41
43
  if (sessionRepo instanceof RedisRepository_1.RedisRepository && llm instanceof GeminiLLMAdapter_1.GeminiLLMAdapter) {
42
44
  console.log(`[Init] Using Redis Repository for Real Intent Detection...`);
43
- const intentSvc = new IntentService_1.IntentService(llm, sessionRepo);
45
+ const intentMatcher = new IntentMatcher_1.IntentMatcher(llm);
46
+ const intentSvc = new IntentService_1.IntentService(sessionRepo, intentMatcher);
44
47
  // IntentService now IS the intent adapter (implements IIntentService)
45
48
  intentAdapter = intentSvc;
46
49
  // Seed Intents
@@ -84,8 +87,9 @@ async function runDemo() {
84
87
  intentAdapter = new MockIntentService_1.MockIntentService();
85
88
  }
86
89
  const workflow = new MockWorkflowAdapter_1.MockWorkflowAdapter();
90
+ const webhookService = new WebhookService_1.WebhookService();
87
91
  // 2. Initialize Orchestrator
88
- const orchestrator = new Orchestrator_1.Orchestrator(sessionRepo, llm, intentAdapter, workflow);
92
+ const orchestrator = new Orchestrator_1.Orchestrator(sessionRepo, llm, intentAdapter, workflow, webhookService);
89
93
  // 3. Create Session
90
94
  const AIR_TRAVEL_PROMPT = `
91
95
  You are 'SkyBot', a professional and friendly AI travel agent for 'AirConnect'.
@@ -105,7 +109,7 @@ IMPORTANT:
105
109
  const runTurn = async (input) => {
106
110
  console.log(`[User]: "${input}"`);
107
111
  console.log(`... Processing ...`);
108
- const { messages, metadata } = await orchestrator.handleMessage(session.sessionId, input);
112
+ const { messages, metadata } = await orchestrator.processMessage(session.sessionId, input);
109
113
  // Show metadata if available (similar to console-chat logic)
110
114
  if (metadata?.intent) {
111
115
  console.log(`[Meta] Intent Detected: ${metadata.intent} (Conf: ${metadata.confidence})`);
@@ -113,7 +117,7 @@ IMPORTANT:
113
117
  if (metadata?.workflowExecuted) {
114
118
  console.log(`[Meta] Workflow Executed: ${metadata.workflowExecuted}`);
115
119
  }
116
- messages.forEach(msg => {
120
+ messages.forEach((msg) => {
117
121
  if (msg.role === interfaces_1.Role.ASSISTANT) {
118
122
  console.log(`[Assistant]: "${msg.content}"`);
119
123
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-demo.js","sourceRoot":"","sources":["../../../src/demo/cli-demo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-chat.d.ts","sourceRoot":"","sources":["../../../src/demo/console-chat.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
@@ -40,9 +40,11 @@ const InMemoryRepository_1 = require("../adapters/repository/InMemoryRepository"
40
40
  const RedisRepository_1 = require("../adapters/repository/RedisRepository");
41
41
  const GeminiLLMAdapter_1 = require("../adapters/llm/GeminiLLMAdapter");
42
42
  const MockLLMAdapter_1 = require("../adapters/llm/MockLLMAdapter");
43
- const IntentService_1 = require("../intent/IntentService");
44
- const MockIntentService_1 = require("../intent/MockIntentService");
43
+ const IntentService_1 = require("../adapters/intent/IntentService");
44
+ const IntentMatcher_1 = require("../adapters/intent/IntentMatcher");
45
+ const MockIntentService_1 = require("../adapters/intent/MockIntentService");
45
46
  const MockWorkflowAdapter_1 = require("../adapters/workflow/MockWorkflowAdapter");
47
+ const WebhookService_1 = require("../adapters/webhook/WebhookService");
46
48
  const interfaces_1 = require("../interfaces");
47
49
  const uuid_1 = require("uuid");
48
50
  const AIR_TRAVEL_PROMPT = `
@@ -81,14 +83,16 @@ async function startChat() {
81
83
  }
82
84
  if (sessionRepo instanceof RedisRepository_1.RedisRepository && llm instanceof GeminiLLMAdapter_1.GeminiLLMAdapter) {
83
85
  console.log(`[Init] Using Real Intent Detection`);
84
- intentAdapter = new IntentService_1.IntentService(llm, sessionRepo);
86
+ const intentMatcher = new IntentMatcher_1.IntentMatcher(llm);
87
+ intentAdapter = new IntentService_1.IntentService(sessionRepo, intentMatcher);
85
88
  }
86
89
  else {
87
90
  console.log(`[Init] Using Mock Intent Adapter`);
88
91
  intentAdapter = new MockIntentService_1.MockIntentService();
89
92
  }
90
93
  const workflow = new MockWorkflowAdapter_1.MockWorkflowAdapter();
91
- const orchestrator = new Orchestrator_1.Orchestrator(sessionRepo, llm, intentAdapter, workflow);
94
+ const webhookService = new WebhookService_1.WebhookService();
95
+ const orchestrator = new Orchestrator_1.Orchestrator(sessionRepo, llm, intentAdapter, workflow, webhookService);
92
96
  // 2. Create Session
93
97
  const sessionId = (0, uuid_1.v4)();
94
98
  const session = await orchestrator.createSession(sessionId, 'TEXT', AIR_TRAVEL_PROMPT);
@@ -113,7 +117,7 @@ async function startChat() {
113
117
  }
114
118
  if (input) {
115
119
  try {
116
- const { messages, metadata } = await orchestrator.handleMessage(session.sessionId, input);
120
+ const { messages, metadata } = await orchestrator.processMessage(session.sessionId, input);
117
121
  // Show Metadata
118
122
  if (metadata?.intent) {
119
123
  console.log(`[Meta] Intent Detected: ${metadata.intent} (Conf: ${metadata.confidence})`);
@@ -121,7 +125,7 @@ async function startChat() {
121
125
  if (metadata?.workflowExecuted) {
122
126
  console.log(`[Meta] Workflow Executed: ${metadata.workflowExecuted}`);
123
127
  }
124
- messages.forEach(msg => {
128
+ messages.forEach((msg) => {
125
129
  if (msg.role === interfaces_1.Role.ASSISTANT) {
126
130
  console.log(`[Bot]: ${msg.content}`);
127
131
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-chat.js","sourceRoot":"","sources":["../../../src/demo/console-chat.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,20 @@ export { ConversationSession } from './core/entities/ConversationSession';
8
8
  export { Message } from './core/entities/Message';
9
9
  export * from './core/errors';
10
10
  export { ChatFlowConfig, DEFAULT_CONFIG, mergeConfig } from './config';
11
- export { IIntentRepository } from './ports/IIntentRepository';
12
11
  export { InMemoryRepository } from './adapters/repository/InMemoryRepository';
13
12
  export { RedisRepository } from './adapters/repository/RedisRepository';
14
- export { IntentRepository } from './adapters/repository/IntentRepository';
15
- export { IntentService } from './intent/IntentService';
16
- export { MockIntentService } from './intent/MockIntentService';
17
- export { IntentService as RefactoredIntentService } from './adapters/intent/IntentService';
13
+ export { SupabaseRepository } from './adapters/repository/SupabaseRepository';
14
+ export { IntentService } from './adapters/intent/IntentService';
15
+ export { MockIntentService } from './adapters/intent/MockIntentService';
18
16
  export { IntentMatcher } from './adapters/intent/IntentMatcher';
19
17
  export { GeminiLLMAdapter } from './adapters/llm/GeminiLLMAdapter';
20
18
  export { MockLLMAdapter } from './adapters/llm/MockLLMAdapter';
19
+ export { OllamaLLMAdapter } from './adapters/llm/OllamaLLMAdapter';
21
20
  export { MockWorkflowAdapter } from './adapters/workflow/MockWorkflowAdapter';
21
+ export { WorkflowAdapter } from './adapters/workflow/WorkflowAdapter';
22
+ export { ConsoleLogger } from './adapters/logger/ConsoleLogger';
23
+ export { GoogleVoiceAdapter } from './adapters/voice/GoogleVoiceAdapter';
24
+ export { WebhookService } from './adapters/webhook/WebhookService';
25
+ export { RedisAudioStorageAdapter } from './adapters/storage/RedisAudioStorageAdapter';
26
+ export { ChatFlowWebSocketServer } from './server/ChatFlowWebSocketServer';
22
27
  //# sourceMappingURL=index.d.ts.map