chat-flow-ardymalihi 3.0.0 → 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 (322) hide show
  1. package/package.json +1 -1
  2. package/dist/adapters/db/InMemorySessionRepository.js +0 -15
  3. package/dist/adapters/db/RedisSessionRepository.js +0 -41
  4. package/dist/adapters/intent/IntentMatcher.d.ts +0 -41
  5. package/dist/adapters/intent/IntentMatcher.d.ts.map +0 -1
  6. package/dist/adapters/intent/IntentMatcher.js +0 -167
  7. package/dist/adapters/intent/IntentMatcher.js.map +0 -1
  8. package/dist/adapters/intent/IntentService.d.ts +0 -26
  9. package/dist/adapters/intent/IntentService.d.ts.map +0 -1
  10. package/dist/adapters/intent/IntentService.js +0 -65
  11. package/dist/adapters/intent/IntentService.js.map +0 -1
  12. package/dist/adapters/intent/MockIntentAdapter.js +0 -29
  13. package/dist/adapters/intent/MockIntentService.d.ts +0 -7
  14. package/dist/adapters/intent/MockIntentService.d.ts.map +0 -1
  15. package/dist/adapters/intent/MockIntentService.js +0 -36
  16. package/dist/adapters/intent/MockIntentService.js.map +0 -1
  17. package/dist/adapters/llm/GeminiLLMAdapter.d.ts +0 -10
  18. package/dist/adapters/llm/GeminiLLMAdapter.d.ts.map +0 -1
  19. package/dist/adapters/llm/GeminiLLMAdapter.js +0 -102
  20. package/dist/adapters/llm/GeminiLLMAdapter.js.map +0 -1
  21. package/dist/adapters/llm/MockLLMAdapter.d.ts +0 -5
  22. package/dist/adapters/llm/MockLLMAdapter.d.ts.map +0 -1
  23. package/dist/adapters/llm/MockLLMAdapter.js +0 -31
  24. package/dist/adapters/llm/MockLLMAdapter.js.map +0 -1
  25. package/dist/adapters/llm/OllamaLLMAdapter.d.ts +0 -9
  26. package/dist/adapters/llm/OllamaLLMAdapter.d.ts.map +0 -1
  27. package/dist/adapters/llm/OllamaLLMAdapter.js +0 -74
  28. package/dist/adapters/llm/OllamaLLMAdapter.js.map +0 -1
  29. package/dist/adapters/logger/ConsoleLogger.d.ts +0 -12
  30. package/dist/adapters/logger/ConsoleLogger.d.ts.map +0 -1
  31. package/dist/adapters/logger/ConsoleLogger.js +0 -37
  32. package/dist/adapters/logger/ConsoleLogger.js.map +0 -1
  33. package/dist/adapters/memory/InMemorySessionRepository.js +0 -15
  34. package/dist/adapters/redis/RedisSessionRepository.js +0 -41
  35. package/dist/adapters/repository/InMemoryRepository.d.ts +0 -46
  36. package/dist/adapters/repository/InMemoryRepository.d.ts.map +0 -1
  37. package/dist/adapters/repository/InMemoryRepository.js +0 -235
  38. package/dist/adapters/repository/InMemoryRepository.js.map +0 -1
  39. package/dist/adapters/repository/IntentRepository.d.ts +0 -15
  40. package/dist/adapters/repository/IntentRepository.d.ts.map +0 -1
  41. package/dist/adapters/repository/IntentRepository.js +0 -28
  42. package/dist/adapters/repository/IntentRepository.js.map +0 -1
  43. package/dist/adapters/repository/RedisRepository.d.ts +0 -63
  44. package/dist/adapters/repository/RedisRepository.d.ts.map +0 -1
  45. package/dist/adapters/repository/RedisRepository.js +0 -586
  46. package/dist/adapters/repository/RedisRepository.js.map +0 -1
  47. package/dist/adapters/storage/RedisAudioStorageAdapter.d.ts +0 -33
  48. package/dist/adapters/storage/RedisAudioStorageAdapter.d.ts.map +0 -1
  49. package/dist/adapters/storage/RedisAudioStorageAdapter.js +0 -121
  50. package/dist/adapters/storage/RedisAudioStorageAdapter.js.map +0 -1
  51. package/dist/adapters/storage/RedisBufferStorageAdapter.d.ts +0 -14
  52. package/dist/adapters/storage/RedisBufferStorageAdapter.d.ts.map +0 -1
  53. package/dist/adapters/storage/RedisBufferStorageAdapter.js +0 -94
  54. package/dist/adapters/storage/RedisBufferStorageAdapter.js.map +0 -1
  55. package/dist/adapters/voice/ElevenLabsVoiceAdapter.d.ts +0 -29
  56. package/dist/adapters/voice/ElevenLabsVoiceAdapter.d.ts.map +0 -1
  57. package/dist/adapters/voice/ElevenLabsVoiceAdapter.js +0 -75
  58. package/dist/adapters/voice/ElevenLabsVoiceAdapter.js.map +0 -1
  59. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.d.ts +0 -77
  60. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.d.ts.map +0 -1
  61. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.js +0 -187
  62. package/dist/adapters/voice/GeminiMultimodalLiveAdapter.js.map +0 -1
  63. package/dist/adapters/voice/GeminiVoiceAdapter.d.ts +0 -36
  64. package/dist/adapters/voice/GeminiVoiceAdapter.d.ts.map +0 -1
  65. package/dist/adapters/voice/GeminiVoiceAdapter.js +0 -134
  66. package/dist/adapters/voice/GeminiVoiceAdapter.js.map +0 -1
  67. package/dist/adapters/voice/GoogleTTSAdapter.d.ts +0 -61
  68. package/dist/adapters/voice/GoogleTTSAdapter.d.ts.map +0 -1
  69. package/dist/adapters/voice/GoogleTTSAdapter.js +0 -165
  70. package/dist/adapters/voice/GoogleTTSAdapter.js.map +0 -1
  71. package/dist/adapters/voice/GoogleVoiceAdapter.d.ts +0 -33
  72. package/dist/adapters/voice/GoogleVoiceAdapter.d.ts.map +0 -1
  73. package/dist/adapters/voice/GoogleVoiceAdapter.js +0 -155
  74. package/dist/adapters/voice/GoogleVoiceAdapter.js.map +0 -1
  75. package/dist/adapters/voice/HybridVoiceAdapter.d.ts +0 -54
  76. package/dist/adapters/voice/HybridVoiceAdapter.d.ts.map +0 -1
  77. package/dist/adapters/voice/HybridVoiceAdapter.js +0 -102
  78. package/dist/adapters/voice/HybridVoiceAdapter.js.map +0 -1
  79. package/dist/adapters/voice/LanguageVoiceMapper.d.ts +0 -60
  80. package/dist/adapters/voice/LanguageVoiceMapper.d.ts.map +0 -1
  81. package/dist/adapters/voice/LanguageVoiceMapper.js +0 -130
  82. package/dist/adapters/voice/LanguageVoiceMapper.js.map +0 -1
  83. package/dist/adapters/voice/VertexVoiceAdapter.d.ts +0 -32
  84. package/dist/adapters/voice/VertexVoiceAdapter.d.ts.map +0 -1
  85. package/dist/adapters/voice/VertexVoiceAdapter.js +0 -179
  86. package/dist/adapters/voice/VertexVoiceAdapter.js.map +0 -1
  87. package/dist/adapters/webhook/WebhookService.d.ts +0 -47
  88. package/dist/adapters/webhook/WebhookService.d.ts.map +0 -1
  89. package/dist/adapters/webhook/WebhookService.js +0 -265
  90. package/dist/adapters/webhook/WebhookService.js.map +0 -1
  91. package/dist/adapters/workflow/MockWorkflowAdapter.d.ts +0 -5
  92. package/dist/adapters/workflow/MockWorkflowAdapter.d.ts.map +0 -1
  93. package/dist/adapters/workflow/MockWorkflowAdapter.js +0 -173
  94. package/dist/adapters/workflow/MockWorkflowAdapter.js.map +0 -1
  95. package/dist/adapters/workflow/WorkflowAdapter.d.ts +0 -55
  96. package/dist/adapters/workflow/WorkflowAdapter.d.ts.map +0 -1
  97. package/dist/adapters/workflow/WorkflowAdapter.js +0 -242
  98. package/dist/adapters/workflow/WorkflowAdapter.js.map +0 -1
  99. package/dist/adapters/workflow/actions/getSupportHoursAction.d.ts +0 -10
  100. package/dist/adapters/workflow/actions/getSupportHoursAction.d.ts.map +0 -1
  101. package/dist/adapters/workflow/actions/getSupportHoursAction.js +0 -33
  102. package/dist/adapters/workflow/actions/getSupportHoursAction.js.map +0 -1
  103. package/dist/adapters/workflow/actions/index.d.ts +0 -6
  104. package/dist/adapters/workflow/actions/index.d.ts.map +0 -1
  105. package/dist/adapters/workflow/actions/index.js +0 -22
  106. package/dist/adapters/workflow/actions/index.js.map +0 -1
  107. package/dist/adapters/workflow/actions/pushOutputResultAction.d.ts +0 -11
  108. package/dist/adapters/workflow/actions/pushOutputResultAction.d.ts.map +0 -1
  109. package/dist/adapters/workflow/actions/pushOutputResultAction.js +0 -31
  110. package/dist/adapters/workflow/actions/pushOutputResultAction.js.map +0 -1
  111. package/dist/adapters/workflow/actions/setWorkflowMessageAction.d.ts +0 -12
  112. package/dist/adapters/workflow/actions/setWorkflowMessageAction.d.ts.map +0 -1
  113. package/dist/adapters/workflow/actions/setWorkflowMessageAction.js +0 -32
  114. package/dist/adapters/workflow/actions/setWorkflowMessageAction.js.map +0 -1
  115. package/dist/adapters/workflow/engine/constants.d.ts +0 -3
  116. package/dist/adapters/workflow/engine/constants.d.ts.map +0 -1
  117. package/dist/adapters/workflow/engine/constants.js +0 -6
  118. package/dist/adapters/workflow/engine/constants.js.map +0 -1
  119. package/dist/adapters/workflow/engine/engine.d.ts +0 -32
  120. package/dist/adapters/workflow/engine/engine.d.ts.map +0 -1
  121. package/dist/adapters/workflow/engine/engine.js +0 -623
  122. package/dist/adapters/workflow/engine/engine.js.map +0 -1
  123. package/dist/adapters/workflow/engine/event-registry.d.ts +0 -12
  124. package/dist/adapters/workflow/engine/event-registry.d.ts.map +0 -1
  125. package/dist/adapters/workflow/engine/event-registry.js +0 -33
  126. package/dist/adapters/workflow/engine/event-registry.js.map +0 -1
  127. package/dist/adapters/workflow/engine/interpolator.d.ts +0 -11
  128. package/dist/adapters/workflow/engine/interpolator.d.ts.map +0 -1
  129. package/dist/adapters/workflow/engine/interpolator.js +0 -93
  130. package/dist/adapters/workflow/engine/interpolator.js.map +0 -1
  131. package/dist/adapters/workflow/engine/registry.d.ts +0 -12
  132. package/dist/adapters/workflow/engine/registry.d.ts.map +0 -1
  133. package/dist/adapters/workflow/engine/registry.js +0 -39
  134. package/dist/adapters/workflow/engine/registry.js.map +0 -1
  135. package/dist/adapters/workflow/engine/template-registry.d.ts +0 -60
  136. package/dist/adapters/workflow/engine/template-registry.d.ts.map +0 -1
  137. package/dist/adapters/workflow/engine/template-registry.js +0 -92
  138. package/dist/adapters/workflow/engine/template-registry.js.map +0 -1
  139. package/dist/adapters/workflow/engine/types.d.ts +0 -182
  140. package/dist/adapters/workflow/engine/types.d.ts.map +0 -1
  141. package/dist/adapters/workflow/engine/types.js +0 -3
  142. package/dist/adapters/workflow/engine/types.js.map +0 -1
  143. package/dist/adapters/workflow/engine/utils/format-utils.d.ts +0 -43
  144. package/dist/adapters/workflow/engine/utils/format-utils.d.ts.map +0 -1
  145. package/dist/adapters/workflow/engine/utils/format-utils.js +0 -137
  146. package/dist/adapters/workflow/engine/utils/format-utils.js.map +0 -1
  147. package/dist/adapters/workflow/engine/utils/layout-calculator.d.ts +0 -7
  148. package/dist/adapters/workflow/engine/utils/layout-calculator.d.ts.map +0 -1
  149. package/dist/adapters/workflow/engine/utils/layout-calculator.js +0 -87
  150. package/dist/adapters/workflow/engine/utils/layout-calculator.js.map +0 -1
  151. package/dist/adapters/workflow/engine/utils/slugify.d.ts +0 -2
  152. package/dist/adapters/workflow/engine/utils/slugify.d.ts.map +0 -1
  153. package/dist/adapters/workflow/engine/utils/slugify.js +0 -41
  154. package/dist/adapters/workflow/engine/utils/slugify.js.map +0 -1
  155. package/dist/adapters/workflow/engine/validator.d.ts +0 -9
  156. package/dist/adapters/workflow/engine/validator.d.ts.map +0 -1
  157. package/dist/adapters/workflow/engine/validator.js +0 -425
  158. package/dist/adapters/workflow/engine/validator.js.map +0 -1
  159. package/dist/application/ConversationSession.d.ts +0 -23
  160. package/dist/application/ConversationSession.d.ts.map +0 -1
  161. package/dist/application/ConversationSession.js +0 -83
  162. package/dist/application/ConversationSession.js.map +0 -1
  163. package/dist/application/Message.d.ts +0 -11
  164. package/dist/application/Message.d.ts.map +0 -1
  165. package/dist/application/Message.js +0 -30
  166. package/dist/application/Message.js.map +0 -1
  167. package/dist/application/Orchestrator.d.ts +0 -18
  168. package/dist/application/Orchestrator.d.ts.map +0 -1
  169. package/dist/application/Orchestrator.js +0 -80
  170. package/dist/application/Orchestrator.js.map +0 -1
  171. package/dist/application/SessionState.js +0 -2
  172. package/dist/application/usecases/CreateSession.js +0 -20
  173. package/dist/application/usecases/HandleUserMessage.js +0 -69
  174. package/dist/config/ChatFlowConfig.d.ts +0 -66
  175. package/dist/config/ChatFlowConfig.d.ts.map +0 -1
  176. package/dist/config/ChatFlowConfig.js +0 -54
  177. package/dist/config/ChatFlowConfig.js.map +0 -1
  178. package/dist/config/index.d.ts +0 -2
  179. package/dist/config/index.d.ts.map +0 -1
  180. package/dist/config/index.js +0 -7
  181. package/dist/config/index.js.map +0 -1
  182. package/dist/core/entities/ConversationSession.d.ts +0 -58
  183. package/dist/core/entities/ConversationSession.d.ts.map +0 -1
  184. package/dist/core/entities/ConversationSession.js +0 -160
  185. package/dist/core/entities/ConversationSession.js.map +0 -1
  186. package/dist/core/entities/Message.d.ts +0 -14
  187. package/dist/core/entities/Message.d.ts.map +0 -1
  188. package/dist/core/entities/Message.js +0 -32
  189. package/dist/core/entities/Message.js.map +0 -1
  190. package/dist/core/errors/ChatFlowError.d.ts +0 -71
  191. package/dist/core/errors/ChatFlowError.d.ts.map +0 -1
  192. package/dist/core/errors/ChatFlowError.js +0 -108
  193. package/dist/core/errors/ChatFlowError.js.map +0 -1
  194. package/dist/core/errors/index.d.ts +0 -2
  195. package/dist/core/errors/index.d.ts.map +0 -1
  196. package/dist/core/errors/index.js +0 -15
  197. package/dist/core/errors/index.js.map +0 -1
  198. package/dist/core/utils/AudioStreamBuffer.d.ts +0 -33
  199. package/dist/core/utils/AudioStreamBuffer.d.ts.map +0 -1
  200. package/dist/core/utils/AudioStreamBuffer.js +0 -55
  201. package/dist/core/utils/AudioStreamBuffer.js.map +0 -1
  202. package/dist/core/utils/AudioUtils.d.ts +0 -41
  203. package/dist/core/utils/AudioUtils.d.ts.map +0 -1
  204. package/dist/core/utils/AudioUtils.js +0 -188
  205. package/dist/core/utils/AudioUtils.js.map +0 -1
  206. package/dist/core/utils/LanguageDetector.d.ts +0 -52
  207. package/dist/core/utils/LanguageDetector.d.ts.map +0 -1
  208. package/dist/core/utils/LanguageDetector.js +0 -173
  209. package/dist/core/utils/LanguageDetector.js.map +0 -1
  210. package/dist/core/utils/WavUtils.d.ts +0 -14
  211. package/dist/core/utils/WavUtils.d.ts.map +0 -1
  212. package/dist/core/utils/WavUtils.js +0 -37
  213. package/dist/core/utils/WavUtils.js.map +0 -1
  214. package/dist/db/InMemoryRepository.d.ts +0 -15
  215. package/dist/db/InMemoryRepository.d.ts.map +0 -1
  216. package/dist/db/InMemoryRepository.js +0 -41
  217. package/dist/db/InMemoryRepository.js.map +0 -1
  218. package/dist/db/RedisRepository.d.ts +0 -16
  219. package/dist/db/RedisRepository.d.ts.map +0 -1
  220. package/dist/db/RedisRepository.js +0 -87
  221. package/dist/db/RedisRepository.js.map +0 -1
  222. package/dist/demo/cli-demo.d.ts +0 -2
  223. package/dist/demo/cli-demo.d.ts.map +0 -1
  224. package/dist/demo/cli-demo.js +0 -146
  225. package/dist/demo/cli-demo.js.map +0 -1
  226. package/dist/demo/console-chat.d.ts +0 -2
  227. package/dist/demo/console-chat.d.ts.map +0 -1
  228. package/dist/demo/console-chat.js +0 -148
  229. package/dist/demo/console-chat.js.map +0 -1
  230. package/dist/demo/interactive-voice-chat.d.ts +0 -2
  231. package/dist/demo/interactive-voice-chat.d.ts.map +0 -1
  232. package/dist/demo/interactive-voice-chat.js +0 -180
  233. package/dist/demo/interactive-voice-chat.js.map +0 -1
  234. package/dist/demo/voice-demo.d.ts +0 -2
  235. package/dist/demo/voice-demo.d.ts.map +0 -1
  236. package/dist/demo/voice-demo.js +0 -188
  237. package/dist/demo/voice-demo.js.map +0 -1
  238. package/dist/domain/conversation/ConversationSession.js +0 -82
  239. package/dist/domain/conversation/Message.js +0 -33
  240. package/dist/domain/conversation/SessionState.js +0 -10
  241. package/dist/index.d.ts +0 -26
  242. package/dist/index.d.ts.map +0 -1
  243. package/dist/index.js +0 -76
  244. package/dist/index.js.map +0 -1
  245. package/dist/intent/IntentService.d.ts +0 -17
  246. package/dist/intent/IntentService.d.ts.map +0 -1
  247. package/dist/intent/IntentService.js +0 -57
  248. package/dist/intent/IntentService.js.map +0 -1
  249. package/dist/intent/MockIntentService.d.ts +0 -7
  250. package/dist/intent/MockIntentService.d.ts.map +0 -1
  251. package/dist/intent/MockIntentService.js +0 -36
  252. package/dist/intent/MockIntentService.js.map +0 -1
  253. package/dist/interfaces.d.ts +0 -653
  254. package/dist/interfaces.d.ts.map +0 -1
  255. package/dist/interfaces.js +0 -36
  256. package/dist/interfaces.js.map +0 -1
  257. package/dist/llm/GeminiLLMAdapter.d.ts +0 -10
  258. package/dist/llm/GeminiLLMAdapter.d.ts.map +0 -1
  259. package/dist/llm/GeminiLLMAdapter.js +0 -102
  260. package/dist/llm/GeminiLLMAdapter.js.map +0 -1
  261. package/dist/llm/MockLLMAdapter.d.ts +0 -5
  262. package/dist/llm/MockLLMAdapter.d.ts.map +0 -1
  263. package/dist/llm/MockLLMAdapter.js +0 -31
  264. package/dist/llm/MockLLMAdapter.js.map +0 -1
  265. package/dist/orchestrator/Orchestrator.d.ts +0 -62
  266. package/dist/orchestrator/Orchestrator.d.ts.map +0 -1
  267. package/dist/orchestrator/Orchestrator.js +0 -697
  268. package/dist/orchestrator/Orchestrator.js.map +0 -1
  269. package/dist/ports/IIntentRepository.d.ts +0 -27
  270. package/dist/ports/IIntentRepository.d.ts.map +0 -1
  271. package/dist/ports/IIntentRepository.js +0 -3
  272. package/dist/ports/IIntentRepository.js.map +0 -1
  273. package/dist/ports/IntentPort.js +0 -2
  274. package/dist/ports/LLMPort.js +0 -2
  275. package/dist/ports/SessionRepository.js +0 -2
  276. package/dist/ports/WorkflowPort.js +0 -2
  277. package/dist/scripts/debug-redis.d.ts +0 -2
  278. package/dist/scripts/debug-redis.d.ts.map +0 -1
  279. package/dist/scripts/debug-redis.js +0 -55
  280. package/dist/scripts/debug-redis.js.map +0 -1
  281. package/dist/scripts/seed-collaborative-intents.d.ts +0 -2
  282. package/dist/scripts/seed-collaborative-intents.d.ts.map +0 -1
  283. package/dist/scripts/seed-collaborative-intents.js +0 -90
  284. package/dist/scripts/seed-collaborative-intents.js.map +0 -1
  285. package/dist/scripts/test-isolated-config.d.ts +0 -2
  286. package/dist/scripts/test-isolated-config.d.ts.map +0 -1
  287. package/dist/scripts/test-isolated-config.js +0 -80
  288. package/dist/scripts/test-isolated-config.js.map +0 -1
  289. package/dist/scripts/verify_memory_intents.d.ts +0 -2
  290. package/dist/scripts/verify_memory_intents.d.ts.map +0 -1
  291. package/dist/scripts/verify_memory_intents.js +0 -45
  292. package/dist/scripts/verify_memory_intents.js.map +0 -1
  293. package/dist/scripts/verify_redis_intents.d.ts +0 -2
  294. package/dist/scripts/verify_redis_intents.d.ts.map +0 -1
  295. package/dist/scripts/verify_redis_intents.js +0 -52
  296. package/dist/scripts/verify_redis_intents.js.map +0 -1
  297. package/dist/server/ChatFlowWebSocketServer.d.ts +0 -46
  298. package/dist/server/ChatFlowWebSocketServer.d.ts.map +0 -1
  299. package/dist/server/ChatFlowWebSocketServer.js +0 -344
  300. package/dist/server/ChatFlowWebSocketServer.js.map +0 -1
  301. package/dist/server/realtime-voice-server.d.ts +0 -2
  302. package/dist/server/realtime-voice-server.d.ts.map +0 -1
  303. package/dist/server/realtime-voice-server.js +0 -627
  304. package/dist/server/realtime-voice-server.js.map +0 -1
  305. package/dist/src/api/routes/tenants.d.ts +0 -3
  306. package/dist/src/api/routes/tenants.d.ts.map +0 -1
  307. package/dist/src/api/routes/tenants.js +0 -109
  308. package/dist/src/api/routes/tenants.js.map +0 -1
  309. package/dist/utils/crypto.d.ts +0 -7
  310. package/dist/utils/crypto.d.ts.map +0 -1
  311. package/dist/utils/crypto.js +0 -35
  312. package/dist/utils/crypto.js.map +0 -1
  313. package/dist/utils/encryption-helpers.d.ts +0 -14
  314. package/dist/utils/encryption-helpers.d.ts.map +0 -1
  315. package/dist/utils/encryption-helpers.js +0 -49
  316. package/dist/utils/encryption-helpers.js.map +0 -1
  317. package/dist/verify_memory_intents.js +0 -44
  318. package/dist/verify_redis_intents.js +0 -49
  319. package/dist/workflow/MockWorkflowAdapter.d.ts +0 -5
  320. package/dist/workflow/MockWorkflowAdapter.d.ts.map +0 -1
  321. package/dist/workflow/MockWorkflowAdapter.js +0 -162
  322. package/dist/workflow/MockWorkflowAdapter.js.map +0 -1
@@ -1,425 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateStepInput = validateStepInput;
4
- exports.validateWorkflow = validateWorkflow;
5
- const zod_1 = require("zod");
6
- const interpolator_1 = require("./interpolator");
7
- function validateValue(value, field, path) {
8
- const errors = {};
9
- const label = path.split('.').pop()?.replace(/([A-Z])/g, ' $1').replace(/^./, str => str.toUpperCase()) || path;
10
- // 1. Required Check
11
- const isEmpty = value === undefined || value === null || (typeof value === 'string' && value.trim() === '');
12
- if (!field.optional && isEmpty) {
13
- errors[path] = `"${label}" is required`;
14
- return errors;
15
- }
16
- if (isEmpty)
17
- return {};
18
- // 2. Format Checks (String)
19
- if (field.type === 'string') {
20
- if (typeof value === 'string') {
21
- if (field.format === 'email') {
22
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
23
- // Ignore interpolation variables
24
- if (!value.includes('{{') && !emailRegex.test(value)) {
25
- errors[path] = `Invalid email address`;
26
- }
27
- }
28
- }
29
- }
30
- // 3. Array Checks
31
- if (field.type === 'array' && Array.isArray(value)) {
32
- if (field.items) {
33
- value.forEach((item, index) => {
34
- // Use bracket notation for array indices
35
- const itemPath = `${path}[${index}]`;
36
- const itemErrors = validateValue(item, field.items, itemPath);
37
- Object.assign(errors, itemErrors);
38
- });
39
- }
40
- }
41
- return errors;
42
- }
43
- // Helper to validate individual step inputs against Zod schema
44
- function validateStepInput(input, schema) {
45
- if (!schema || schema.type !== 'object' || !schema.properties)
46
- return {};
47
- let errors = {};
48
- for (const key of Object.keys(schema.properties)) {
49
- const field = schema.properties[key];
50
- const value = input?.[key];
51
- const fieldErrors = validateValue(value, field, key);
52
- Object.assign(errors, fieldErrors);
53
- }
54
- return errors;
55
- }
56
- // Mock Data Generators
57
- function generateMockValue(type) {
58
- switch (type) {
59
- case 'string': return "mock_string";
60
- case 'number': return 123;
61
- case 'boolean': return true;
62
- case 'array': return ["mock_item"];
63
- case 'object': return { mock_key: "mock_value" };
64
- default: return "mock_value";
65
- }
66
- }
67
- function buildMockContextFromVariables(variables = []) {
68
- const context = {};
69
- variables.forEach(v => {
70
- const parts = v.path.split('.');
71
- let current = context;
72
- for (let i = 0; i < parts.length; i++) {
73
- const part = parts[i];
74
- if (i === parts.length - 1) {
75
- current[part] = generateMockValue(v.type);
76
- }
77
- else {
78
- current[part] = current[part] || {};
79
- current = current[part];
80
- }
81
- }
82
- });
83
- // Don't override settings if they were provided in variables
84
- // Only add generic fallback settings if settings object doesn't exist at all
85
- if (!context.settings) {
86
- context.settings = {
87
- openai: { apiKey: "mock_key" },
88
- resend: { apiKey: "mock_key" }
89
- };
90
- }
91
- return context;
92
- }
93
- // Strict Proxy to enforce schema compliance during validation
94
- function createStrictMock(target, path = 'root') {
95
- if (typeof target !== 'object' || target === null) {
96
- return target;
97
- }
98
- return new Proxy(target, {
99
- get(target, prop, receiver) {
100
- // Allow standard known symbols/props
101
- if (typeof prop === 'symbol' || prop === 'inspect' || prop === 'constructor' ||
102
- prop === 'toString' || prop === 'valueOf' || prop === 'toJSON' ||
103
- prop === 'then') {
104
- return Reflect.get(target, prop, receiver);
105
- }
106
- // Array handling
107
- if (Array.isArray(target)) {
108
- if (prop === 'length' || typeof target[prop] !== 'undefined' || prop in target) {
109
- const val = Reflect.get(target, prop, receiver);
110
- if (typeof val === 'function')
111
- return val.bind(target);
112
- return createStrictMock(val, `${path}[${String(prop)}]`);
113
- }
114
- }
115
- if (!(prop in target)) {
116
- throw new Error(`Property '${String(prop)}' does not exist on '${path}'`);
117
- }
118
- const value = Reflect.get(target, prop, receiver);
119
- return createStrictMock(value, `${path}.${String(prop)}`);
120
- }
121
- });
122
- }
123
- function markAsNamespace(obj, name) {
124
- if (typeof obj === 'object' && obj !== null) {
125
- const errorMsg = `Cannot use '${name}' as a value. Please select a specific variable.`;
126
- const thrower = () => { throw new Error(errorMsg); };
127
- Object.defineProperty(obj, 'toJSON', { value: thrower, configurable: true });
128
- Object.defineProperty(obj, 'toString', { value: thrower, configurable: true });
129
- }
130
- return obj;
131
- }
132
- function generateStepInputMock(actionDef) {
133
- if (!actionDef?.inputs)
134
- return {};
135
- if (actionDef.inputs.type === 'object' && actionDef.inputs.properties) {
136
- const mock = {};
137
- for (const [key, schema] of Object.entries(actionDef.inputs.properties)) {
138
- mock[key] = generateMockValue(schema.type);
139
- }
140
- return markAsNamespace(mock, 'input');
141
- }
142
- return {};
143
- }
144
- // Helper to get raw shape from Zod Schema
145
- function getUnderlyingSchema(schema) {
146
- if (schema instanceof zod_1.z.ZodOptional || schema instanceof zod_1.z.ZodNullable) {
147
- return getUnderlyingSchema(schema.unwrap());
148
- }
149
- if (schema instanceof zod_1.z.ZodDefault) {
150
- return getUnderlyingSchema(schema._def.innerType);
151
- }
152
- // Handle effects/transforms if needed, but for now assume direct structure
153
- return schema;
154
- }
155
- function createSchemaProxy(schema) {
156
- const rawSchema = getUnderlyingSchema(schema);
157
- return new Proxy({}, {
158
- get(_target, prop, _receiver) {
159
- // Allow standard object props to avoid breaking runtime inspections
160
- if (prop === 'then' || prop === 'toJSON' || prop === Symbol.toStringTag)
161
- return undefined;
162
- if (rawSchema instanceof zod_1.z.ZodObject) {
163
- const shape = rawSchema.shape;
164
- if (typeof prop === 'string' && prop in shape) {
165
- return createSchemaProxy(shape[prop]);
166
- }
167
- }
168
- else if (rawSchema instanceof zod_1.z.ZodArray) {
169
- // For arrays, any number index returns the element proxy
170
- // Also support basic array methods mock?
171
- if (typeof prop === 'string' && !isNaN(Number(prop))) {
172
- return createSchemaProxy(rawSchema.element);
173
- }
174
- // Mock array functions if needed for expressions like .map(), .length
175
- if (prop === 'length')
176
- return 1;
177
- if (prop === 'map' || prop === 'filter' || prop === 'find') {
178
- return () => [createSchemaProxy(rawSchema.element)];
179
- }
180
- }
181
- // Return generic proxy for "Any" or "Unknown" types to be permissible?
182
- // Or return undefined to let strict mock handler catch it?
183
- // If the property is NOT in the schema, we return undefined.
184
- // The strict mock wrapper around this will see 'undefined' and might not throw *unless* we fail the 'has' trap.
185
- // But wait, createStrictMock checks 'prop in target'.
186
- return undefined;
187
- },
188
- has(_target, prop) {
189
- if (rawSchema instanceof zod_1.z.ZodObject) {
190
- return typeof prop === 'string' && prop in rawSchema.shape;
191
- }
192
- if (rawSchema instanceof zod_1.z.ZodArray) {
193
- if (typeof prop === 'string' && !isNaN(Number(prop)))
194
- return true;
195
- if (['length', 'map', 'forEach', 'reduce', 'filter', 'find'].includes(String(prop)))
196
- return true;
197
- }
198
- // For primitives (String, Number), they don't have child keys.
199
- return false;
200
- },
201
- ownKeys(_target) {
202
- if (rawSchema instanceof zod_1.z.ZodObject) {
203
- return Object.keys(rawSchema.shape);
204
- }
205
- return [];
206
- },
207
- getOwnPropertyDescriptor(_target, prop) {
208
- return {
209
- configurable: true,
210
- enumerable: true,
211
- value: this.get(_target, prop, null)
212
- };
213
- }
214
- });
215
- }
216
- function createProxyFromDefinition(def) {
217
- if (!def)
218
- return undefined;
219
- return new Proxy({}, {
220
- get(_target, prop, _receiver) {
221
- if (prop === 'then' || prop === 'toJSON' || prop === Symbol.toStringTag)
222
- return undefined;
223
- if (def.type === 'object' && def.properties) {
224
- if (typeof prop === 'string' && prop in def.properties) {
225
- return createProxyFromDefinition(def.properties[prop]);
226
- }
227
- }
228
- else if (def.type === 'array' && def.items) {
229
- if (typeof prop === 'string' && !isNaN(Number(prop))) {
230
- return createProxyFromDefinition(def.items);
231
- }
232
- if (prop === 'length')
233
- return 1;
234
- // Mock basic array methods
235
- if (['map', 'filter', 'find'].includes(String(prop))) {
236
- return () => [createProxyFromDefinition(def.items)];
237
- }
238
- }
239
- else if (def.type === 'json' || def.type === 'any' || !def.type) {
240
- // Permissive for JSON/Any types - recursive proxy
241
- return createProxyFromDefinition({ type: 'json' });
242
- }
243
- return undefined;
244
- },
245
- has(_target, prop) {
246
- if (def.type === 'object' && def.properties) {
247
- return typeof prop === 'string' && prop in def.properties;
248
- }
249
- if (def.type === 'array') {
250
- if (typeof prop === 'string' && !isNaN(Number(prop)))
251
- return true;
252
- if (['length', 'map', 'forEach', 'reduce', 'filter', 'find'].includes(String(prop)))
253
- return true;
254
- }
255
- if (def.type === 'json' || def.type === 'any' || !def.type) {
256
- return true;
257
- }
258
- return false;
259
- },
260
- ownKeys(_target) {
261
- if (def.type === 'object' && def.properties) {
262
- return Object.keys(def.properties);
263
- }
264
- return [];
265
- },
266
- getOwnPropertyDescriptor(_target, prop) {
267
- return {
268
- configurable: true,
269
- enumerable: true,
270
- value: this.get(_target, prop, null)
271
- };
272
- }
273
- });
274
- }
275
- function generateStepOutputMock(actionDef) {
276
- // 1. Prefer Zod Schema if available (Server-side / Tests)
277
- if (actionDef?.outputSchema) {
278
- return createSchemaProxy(actionDef.outputSchema);
279
- }
280
- // 2. Fallback to Serialized Definition (Client-side from API)
281
- if (actionDef?.outputs) {
282
- return createProxyFromDefinition(actionDef.outputs);
283
- }
284
- // Fallback if no schema info
285
- return { data: "mock_data" };
286
- }
287
- function formatValidationError(error, isAdmin) {
288
- const originalMsg = error?.message || (typeof error === 'string' ? error : JSON.stringify(error));
289
- let friendlyMsg = originalMsg;
290
- if (friendlyMsg && (friendlyMsg.startsWith("Interpolation failed for") || friendlyMsg.includes("Interpolation failed"))) {
291
- const parts = friendlyMsg.split(": ");
292
- if (parts.length > 1) {
293
- friendlyMsg = parts.slice(1).join(": ");
294
- }
295
- }
296
- if (friendlyMsg.includes("is not defined")) {
297
- const matches = friendlyMsg.match(/ReferenceError:\s*(\w+)\s*is not defined/) || friendlyMsg.match(/(\w+)\s*is not defined/);
298
- if (matches && matches[1]) {
299
- friendlyMsg = `Variable '${matches[1]}' is missing or undefined`;
300
- }
301
- }
302
- else if (friendlyMsg.includes("does not exist on")) {
303
- const matches = friendlyMsg.match(/Property '(.+)' does not exist on '(.+)'/);
304
- if (matches) {
305
- let [_, variable, path] = matches;
306
- // Clean up path
307
- path = path.replace(/^context\./, '');
308
- if (path.endsWith('.output')) {
309
- const stepId = path.replace(/\.output$/, '');
310
- friendlyMsg = `Output variable '${variable}' is not available in step '${stepId}'`;
311
- }
312
- else if (path.startsWith('trigger.payload')) {
313
- friendlyMsg = `Variable '${variable}' is missing from the trigger payload`;
314
- }
315
- else {
316
- friendlyMsg = `Variable '${variable}' not found in '${path}'`;
317
- }
318
- }
319
- }
320
- else if (friendlyMsg.includes("is not a function")) {
321
- friendlyMsg = "Invalid function call in expression";
322
- }
323
- friendlyMsg = friendlyMsg.replace(/Interpolation/g, "Expression");
324
- if (isAdmin) {
325
- if (friendlyMsg !== originalMsg) {
326
- return `${friendlyMsg} \n(Technical: ${originalMsg})`;
327
- }
328
- return originalMsg;
329
- }
330
- return friendlyMsg;
331
- }
332
- function validateWorkflow(steps, availableActions, variables = [], // INJECTED variables instead of hardcoded
333
- isAdmin = false, configs = {}) {
334
- let errors = {};
335
- const stepIds = new Set(steps.map(s => s.id));
336
- // 1. Connectivity & Structural Check
337
- steps.forEach(step => {
338
- const stepErrors = [];
339
- // Check references
340
- if (step.nextStepId && !stepIds.has(step.nextStepId)) {
341
- stepErrors.push(`Refers to missing next step: ${step.nextStepId}`);
342
- }
343
- if (step.trueStepId && !stepIds.has(step.trueStepId)) {
344
- stepErrors.push(`Refers to missing true step: ${step.trueStepId}`);
345
- }
346
- if (step.falseStepId && !stepIds.has(step.falseStepId)) {
347
- stepErrors.push(`Refers to missing false step: ${step.falseStepId}`);
348
- }
349
- // Check Action Existence
350
- const actionDef = availableActions.find(a => a.id === step.action);
351
- if (!actionDef && step.action !== 'condition' && step.action !== 'noop') {
352
- stepErrors.push(`Action type "${step.action}" is unknown`);
353
- }
354
- else if (actionDef && actionDef.inputs) {
355
- // For legacy JSON schema inputs
356
- const inputErrors = validateStepInput(step.input, actionDef.inputs);
357
- Object.values(inputErrors).forEach(err => stepErrors.push(err));
358
- }
359
- if (stepErrors.length > 0) {
360
- errors[step.id] = (errors[step.id] || []).concat(stepErrors);
361
- }
362
- });
363
- // Cycle Detection
364
- const visited = new Set();
365
- const recursionStack = new Set();
366
- function detectCycle(currentId, path) {
367
- visited.add(currentId);
368
- recursionStack.add(currentId);
369
- const step = steps.find(s => s.id === currentId);
370
- if (step) {
371
- const targets = [step.nextStepId, step.trueStepId, step.falseStepId].filter(Boolean);
372
- for (const targetId of targets) {
373
- if (!visited.has(targetId)) {
374
- detectCycle(targetId, [...path, targetId]);
375
- }
376
- else if (recursionStack.has(targetId)) {
377
- errors[currentId] = (errors[currentId] || []).concat(`Cycle detected: connections loop back to a previous step.`);
378
- }
379
- }
380
- }
381
- recursionStack.delete(currentId);
382
- }
383
- steps.forEach(s => {
384
- if (!visited.has(s.id)) {
385
- detectCycle(s.id, [s.id]);
386
- }
387
- });
388
- // 2. Interpolation Simulation (only if variables provided)
389
- if (variables.length > 0) {
390
- let mockContext = buildMockContextFromVariables(variables);
391
- mockContext.configs = configs || {};
392
- steps.forEach(step => {
393
- const actionDef = availableActions.find(a => a.id === step.action);
394
- const stepMock = {
395
- input: generateStepInputMock(actionDef),
396
- output: generateStepOutputMock(actionDef)
397
- };
398
- mockContext[step.id] = markAsNamespace(stepMock, step.id);
399
- });
400
- const strictMockContext = createStrictMock(mockContext, 'context');
401
- steps.forEach(step => {
402
- if (!step.input)
403
- return;
404
- try {
405
- // Pass true to throw errors for missing variables during validation
406
- (0, interpolator_1.interpolate)(step.input, strictMockContext, true);
407
- }
408
- catch (e) {
409
- const msg = formatValidationError(e, isAdmin);
410
- errors[step.id] = (errors[step.id] || []).concat(msg);
411
- }
412
- if (step.condition) {
413
- try {
414
- (0, interpolator_1.interpolate)(step.condition, strictMockContext, true);
415
- }
416
- catch (e) {
417
- const msg = formatValidationError(e, isAdmin);
418
- errors[step.id] = (errors[step.id] || []).concat(msg);
419
- }
420
- }
421
- });
422
- }
423
- return errors;
424
- }
425
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/adapters/workflow/engine/validator.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { Message } from './Message';
2
- import { CreateSessionProps, SessionStatus } from '../interfaces';
3
- export declare class ConversationSession {
4
- readonly sessionId: string;
5
- readonly mode: 'TEXT' | 'VOICE';
6
- readonly agentPrompt: string;
7
- private _messages;
8
- private _status;
9
- private _metadata;
10
- readonly createdAt: Date;
11
- updatedAt: Date;
12
- constructor(props: CreateSessionProps);
13
- static reconstitute(data: any): ConversationSession;
14
- toSnapshot(): any;
15
- get messages(): Message[];
16
- get status(): SessionStatus;
17
- addMessage(message: Message): void;
18
- updateStatus(status: SessionStatus): void;
19
- setMetadata(key: string, value: any): void;
20
- getMetadata(key: string): any;
21
- getHistory(): Message[];
22
- }
23
- //# sourceMappingURL=ConversationSession.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConversationSession.d.ts","sourceRoot":"","sources":["../../src/application/ConversationSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGlE,qBAAa,mBAAmB;IAC5B,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAsB;IACvC,SAAgB,SAAS,EAAE,IAAI,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;gBAEX,KAAK,EAAE,kBAAkB;IAYrC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,mBAAmB;IA4B5C,UAAU,IAAI,GAAG;IAaxB,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAEM,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKzC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAK1C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAO7B,UAAU,IAAI,OAAO,EAAE;CAGjC"}
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConversationSession = void 0;
4
- const Message_1 = require("./Message");
5
- const interfaces_1 = require("../interfaces");
6
- class ConversationSession {
7
- constructor(props) {
8
- this.sessionId = props.sessionId;
9
- this.mode = props.mode;
10
- this.agentPrompt = props.agentPrompt;
11
- this._messages = [];
12
- this._status = interfaces_1.SessionStatus.ACTIVE;
13
- this._metadata = {};
14
- this.createdAt = new Date();
15
- this.updatedAt = new Date();
16
- }
17
- // Helper to restore from persistence
18
- static reconstitute(data) {
19
- // We create a "shell" session via private constructor or just forcing it.
20
- // For simplicity in this demo, we'll instantiate normally and override.
21
- const session = new ConversationSession({
22
- sessionId: data.sessionId,
23
- mode: data.mode,
24
- agentPrompt: data.agentPrompt
25
- });
26
- // Restore state
27
- // Assuming messages are stored as plain objects, we need to map them back to Message instances
28
- session._messages = (data.messages || []).map((m) => new Message_1.Message({
29
- role: m.role,
30
- content: m.content,
31
- timestamp: new Date(m.timestamp),
32
- metadata: m.metadata
33
- }));
34
- session._status = data.status;
35
- session._metadata = data.metadata || {};
36
- // @ts-ignore - writing to readonly for hydration
37
- session.createdAt = new Date(data.createdAt);
38
- session.updatedAt = new Date(data.updatedAt);
39
- return session;
40
- }
41
- // Helper to snapshot for persistence
42
- toSnapshot() {
43
- return {
44
- sessionId: this.sessionId,
45
- mode: this.mode,
46
- agentPrompt: this.agentPrompt,
47
- messages: this._messages,
48
- status: this._status,
49
- metadata: this._metadata,
50
- createdAt: this.createdAt,
51
- updatedAt: this.updatedAt
52
- };
53
- }
54
- get messages() {
55
- return [...this._messages];
56
- }
57
- get status() {
58
- return this._status;
59
- }
60
- addMessage(message) {
61
- this._messages.push(message);
62
- this.updatedAt = new Date();
63
- }
64
- updateStatus(status) {
65
- this._status = status;
66
- this.updatedAt = new Date();
67
- }
68
- setMetadata(key, value) {
69
- this._metadata[key] = value;
70
- this.updatedAt = new Date();
71
- }
72
- getMetadata(key) {
73
- return this._metadata[key];
74
- }
75
- // Helper to get conversation history for LLM Context
76
- // Can prepend system instructions here if needed by specific LLM adapters,
77
- // but usually handled in the Adapter layer.
78
- getHistory() {
79
- return this._messages;
80
- }
81
- }
82
- exports.ConversationSession = ConversationSession;
83
- //# sourceMappingURL=ConversationSession.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConversationSession.js","sourceRoot":"","sources":["../../src/application/ConversationSession.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { Role, Message as IMessage, MessageProps } from '../interfaces';
2
- export declare class Message implements IMessage {
3
- readonly role: Role;
4
- readonly content: string;
5
- readonly timestamp: Date;
6
- readonly metadata: Record<string, any>;
7
- constructor(props: MessageProps);
8
- static user(content: string, metadata?: Record<string, any>): Message;
9
- static assistant(content: string, metadata?: Record<string, any>): Message;
10
- }
11
- //# sourceMappingURL=Message.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../src/application/Message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIxE,qBAAa,OAAQ,YAAW,QAAQ;IACpC,SAAgB,IAAI,EAAE,IAAI,CAAC;IAC3B,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAElC,KAAK,EAAE,YAAY;IAO/B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IASrE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;CAQ7E"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Message = void 0;
4
- const interfaces_1 = require("../interfaces");
5
- class Message {
6
- constructor(props) {
7
- this.role = props.role;
8
- this.content = props.content;
9
- this.timestamp = props.timestamp;
10
- this.metadata = props.metadata || {};
11
- }
12
- static user(content, metadata) {
13
- return new Message({
14
- role: interfaces_1.Role.USER,
15
- content,
16
- timestamp: new Date(),
17
- metadata
18
- });
19
- }
20
- static assistant(content, metadata) {
21
- return new Message({
22
- role: interfaces_1.Role.ASSISTANT,
23
- content,
24
- timestamp: new Date(),
25
- metadata
26
- });
27
- }
28
- }
29
- exports.Message = Message;
30
- //# sourceMappingURL=Message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/application/Message.ts"],"names":[],"mappings":";;;AAAA,8CAAwE;AAIxE,MAAa,OAAO;IAMhB,YAAY,KAAmB;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,QAA8B;QACvD,OAAO,IAAI,OAAO,CAAC;YACf,IAAI,EAAE,iBAAI,CAAC,IAAI;YACf,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAe,EAAE,QAA8B;QAC5D,OAAO,IAAI,OAAO,CAAC;YACf,IAAI,EAAE,iBAAI,CAAC,SAAS;YACpB,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;CACJ;AA9BD,0BA8BC"}
@@ -1,18 +0,0 @@
1
- import { ConversationSession } from './ConversationSession';
2
- import { Message } from './Message';
3
- import { IRepository, ILLMAdapter, IIntentService, IWorkflowAdapter, IOrchestrator } from '../interfaces';
4
- import { ChatFlowConfig } from '../config';
5
- export declare class Orchestrator implements IOrchestrator {
6
- private repo;
7
- private llm;
8
- private intent;
9
- private workflow;
10
- private readonly config;
11
- constructor(repo: IRepository, llm: ILLMAdapter, intent: IIntentService, workflow: IWorkflowAdapter, config?: Partial<ChatFlowConfig>);
12
- createSession(sessionId: string, mode: 'TEXT' | 'VOICE', agentPrompt: string): Promise<ConversationSession>;
13
- handleMessage(sessionId: string, content: string): Promise<{
14
- messages: Message[];
15
- metadata?: any;
16
- }>;
17
- }
18
- //# sourceMappingURL=Orchestrator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Orchestrator.d.ts","sourceRoot":"","sources":["../../src/application/Orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,WAAW,EACX,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAE3D,qBAAa,YAAa,YAAW,aAAa;IAI1C,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IANpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAG5B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,gBAAgB,EAClC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAK9B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAW3G,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CA6D5G"}