chat-flow-ardymalihi 3.0.0 → 3.0.3

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 +9 -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 +0,0 @@
1
- {"version":3,"file":"RedisRepository.js","sourceRoot":"","sources":["../../../src/adapters/repository/RedisRepository.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import Redis from 'ioredis';
2
- import { IAudioStorage, AudioFormatMetadata } from '../../interfaces';
3
- /**
4
- * Redis Audio Storage Adapter
5
- * Stores audio recordings in Redis with automatic format conversion
6
- * All audio is normalized to LINEAR16 PCM (16kHz, mono, 16-bit) during storage
7
- * Final playback generates a proper WAV file with headers
8
- */
9
- export declare class RedisAudioStorageAdapter implements IAudioStorage {
10
- private redis;
11
- private storageRoot;
12
- private baseUrl;
13
- constructor(redisClient: Redis, storageRoot?: string, baseUrl?: string);
14
- private getRedisKey;
15
- initializeSession(sessionId: string, metadata: any): Promise<void>;
16
- /**
17
- * Append audio chunk with automatic format conversion to PCM
18
- */
19
- appendAudio(sessionId: string, audioData: Buffer, formatMetadata?: AudioFormatMetadata): Promise<void>;
20
- /**
21
- * Finalize session and return audio URL
22
- */
23
- finalizeSession(sessionId: string): Promise<string>;
24
- /**
25
- * Get audio URL for a session
26
- */
27
- getAudioUrl(sessionId: string): Promise<string | null>;
28
- /**
29
- * Get session audio as a complete WAV file
30
- */
31
- getSessionAudio(sessionId: string): Promise<Buffer | null>;
32
- }
33
- //# sourceMappingURL=RedisAudioStorageAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisAudioStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/storage/RedisAudioStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGtE;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,aAAa;IAC1D,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,EAAE,KAAK,EAAE,WAAW,GAAE,MAA6B,EAAE,OAAO,GAAE,MAAsB;IAW3G,OAAO,CAAC,WAAW;IAIb,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5G;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBzD;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS5D;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAenE"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.RedisAudioStorageAdapter = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const AudioUtils_1 = require("../../core/utils/AudioUtils");
40
- /**
41
- * Redis Audio Storage Adapter
42
- * Stores audio recordings in Redis with automatic format conversion
43
- * All audio is normalized to LINEAR16 PCM (16kHz, mono, 16-bit) during storage
44
- * Final playback generates a proper WAV file with headers
45
- */
46
- class RedisAudioStorageAdapter {
47
- constructor(redisClient, storageRoot = 'storage/recordings', baseUrl = '/recordings') {
48
- this.redis = redisClient;
49
- this.storageRoot = path.resolve(storageRoot);
50
- this.baseUrl = baseUrl;
51
- // Ensure storage directory exists (for potential future disk caching)
52
- if (!fs.existsSync(this.storageRoot)) {
53
- fs.mkdirSync(this.storageRoot, { recursive: true });
54
- }
55
- }
56
- getRedisKey(sessionId) {
57
- return `session:${sessionId}:audio`;
58
- }
59
- async initializeSession(sessionId, metadata) {
60
- // Clear any existing audio for this session
61
- await this.redis.del(this.getRedisKey(sessionId));
62
- }
63
- /**
64
- * Append audio chunk with automatic format conversion to PCM
65
- */
66
- async appendAudio(sessionId, audioData, formatMetadata) {
67
- try {
68
- // Convert to target PCM format using AudioUtils
69
- const pcmData = await (0, AudioUtils_1.convertToTargetFormat)(audioData, formatMetadata);
70
- // Store as base64 in Redis
71
- await this.redis.rpush(this.getRedisKey(sessionId), pcmData.toString('base64'));
72
- }
73
- catch (error) {
74
- console.error('[RedisAudioStorageAdapter] Error appending audio:', error);
75
- throw error;
76
- }
77
- }
78
- /**
79
- * Finalize session and return audio URL
80
- */
81
- async finalizeSession(sessionId) {
82
- const key = this.getRedisKey(sessionId);
83
- const exists = await this.redis.exists(key);
84
- if (!exists) {
85
- console.warn(`[RedisAudioStorageAdapter] No audio found for session ${sessionId}`);
86
- return '';
87
- }
88
- // Set TTL (24 hours)
89
- await this.redis.expire(key, 86400);
90
- // Return URL for playback
91
- return `${this.baseUrl}/${sessionId}.wav`;
92
- }
93
- /**
94
- * Get audio URL for a session
95
- */
96
- async getAudioUrl(sessionId) {
97
- const key = this.getRedisKey(sessionId);
98
- const exists = await this.redis.exists(key);
99
- if (exists) {
100
- return `${this.baseUrl}/${sessionId}.wav`;
101
- }
102
- return null;
103
- }
104
- /**
105
- * Get session audio as a complete WAV file
106
- */
107
- async getSessionAudio(sessionId) {
108
- const key = this.getRedisKey(sessionId);
109
- const chunksBase64 = await this.redis.lrange(key, 0, -1);
110
- if (!chunksBase64 || chunksBase64.length === 0) {
111
- return null;
112
- }
113
- // Decode all PCM chunks
114
- const pcmChunks = chunksBase64.map(chunk => Buffer.from(chunk, 'base64'));
115
- const concatenatedPCM = Buffer.concat(pcmChunks);
116
- // Wrap in WAV format using AudioUtils
117
- return (0, AudioUtils_1.wrapPCMInWAV)(concatenatedPCM);
118
- }
119
- }
120
- exports.RedisAudioStorageAdapter = RedisAudioStorageAdapter;
121
- //# sourceMappingURL=RedisAudioStorageAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisAudioStorageAdapter.js","sourceRoot":"","sources":["../../../src/adapters/storage/RedisAudioStorageAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { IStorage } from '../../interfaces';
2
- import Redis from 'ioredis';
3
- export declare class RedisBufferStorageAdapter implements IStorage {
4
- private redis;
5
- private storageRoot;
6
- private baseUrl;
7
- constructor(redisClient: Redis, storageRoot?: string, baseUrl?: string);
8
- private getRedisKey;
9
- initializeSession(sessionId: string, metadata: any): Promise<void>;
10
- appendAudio(sessionId: string, audioData: Buffer): Promise<void>;
11
- finalizeSession(sessionId: string): Promise<string>;
12
- getAudioUrl(sessionId: string): Promise<string | null>;
13
- }
14
- //# sourceMappingURL=RedisBufferStorageAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisBufferStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/storage/RedisBufferStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAI5B,qBAAa,yBAA0B,YAAW,QAAQ;IACtD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,EAAE,KAAK,EAAE,WAAW,GAAE,MAA6B,EAAE,OAAO,GAAE,MAA2C;IAWhI,OAAO,CAAC,WAAW;IAIb,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BnD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAQ/D"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.RedisBufferStorageAdapter = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- class RedisBufferStorageAdapter {
40
- constructor(redisClient, storageRoot = 'storage/recordings', baseUrl = 'http://localhost:8080/recordings') {
41
- this.redis = redisClient;
42
- this.storageRoot = path.resolve(storageRoot);
43
- this.baseUrl = baseUrl;
44
- // Ensure storage directory exists
45
- if (!fs.existsSync(this.storageRoot)) {
46
- fs.mkdirSync(this.storageRoot, { recursive: true });
47
- }
48
- }
49
- getRedisKey(sessionId) {
50
- return `session:${sessionId}:audio`;
51
- }
52
- async initializeSession(sessionId, metadata) {
53
- // Optional: Store metadata in Redis if needed, or simply clear any existing list
54
- await this.redis.del(this.getRedisKey(sessionId));
55
- }
56
- async appendAudio(sessionId, audioData) {
57
- // Redis stores binary as Buffer if configured, but ioredis default is strings.
58
- // We need to encode to base64 or ensure binary mode.
59
- // For safety and compatibility, we'll store as base64 strings in the list.
60
- await this.redis.rpush(this.getRedisKey(sessionId), audioData.toString('base64'));
61
- }
62
- async finalizeSession(sessionId) {
63
- const key = this.getRedisKey(sessionId);
64
- // 1. Retrieve all chunks
65
- const chunksBase64 = await this.redis.lrange(key, 0, -1);
66
- if (!chunksBase64 || chunksBase64.length === 0) {
67
- console.warn(`[Storage] No audio chunks found for session ${sessionId}`);
68
- return '';
69
- }
70
- // 2. Decode and Concatenate
71
- const buffers = chunksBase64.map(chunk => Buffer.from(chunk, 'base64'));
72
- const finalBuffer = Buffer.concat(buffers);
73
- // 3. Write to Disk (Simulating Bucket Upload)
74
- const filename = `${sessionId}.wav`; // Assuming linear PCM / WAV chunks (even if headers are partial, concatenation of raw PCM is cleaner, but let's assume we are just saving the raw accumulation for now)
75
- const filePath = path.join(this.storageRoot, filename);
76
- await fs.promises.writeFile(filePath, finalBuffer);
77
- console.log(`[Storage] Saved ${finalBuffer.length} bytes to ${filePath}`);
78
- // 4. Cleanup Redis
79
- await this.redis.del(key);
80
- // Optional: expire generic session keys if needed
81
- // 5. Return URL
82
- return `${this.baseUrl}/${filename}`;
83
- }
84
- async getAudioUrl(sessionId) {
85
- const filename = `${sessionId}.wav`;
86
- const filePath = path.join(this.storageRoot, filename);
87
- if (fs.existsSync(filePath)) {
88
- return `${this.baseUrl}/${filename}`;
89
- }
90
- return null;
91
- }
92
- }
93
- exports.RedisBufferStorageAdapter = RedisBufferStorageAdapter;
94
- //# sourceMappingURL=RedisBufferStorageAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisBufferStorageAdapter.js","sourceRoot":"","sources":["../../../src/adapters/storage/RedisBufferStorageAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { IVoiceAdapter, VoiceConfig, AudioFormatMetadata } from '../../interfaces';
2
- /**
3
- * ElevenLabs Voice Adapter
4
- * Implements TTS using ElevenLabs API (free tier: 10,000 chars/month)
5
- * Note: This adapter only implements TTS. Use GeminiVoiceAdapter for STT.
6
- */
7
- export declare class ElevenLabsVoiceAdapter implements IVoiceAdapter {
8
- private apiKey;
9
- private voiceConfig?;
10
- constructor(apiKey: string, voiceConfig?: VoiceConfig);
11
- /**
12
- * Speech-to-text not supported by ElevenLabs
13
- * Use GeminiVoiceAdapter or another provider for STT
14
- */
15
- speechToText(audioBase64: string, config?: VoiceConfig['stt']): Promise<string>;
16
- /**
17
- * Convert text to speech using ElevenLabs API
18
- * @param text Text to convert to speech
19
- * @param config Optional TTS configuration
20
- * @returns Audio data as Uint8Array (WAV format)
21
- */
22
- textToSpeech(text: string, config?: VoiceConfig['tts']): Promise<Uint8Array>;
23
- /**
24
- * Declare the audio format produced by ElevenLabs TTS
25
- * Used by IAudioStorage for format conversion
26
- */
27
- getTTSOutputFormat(): AudioFormatMetadata;
28
- }
29
- //# sourceMappingURL=ElevenLabsVoiceAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ElevenLabsVoiceAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/voice/ElevenLabsVoiceAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEnF;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,aAAa;IACxD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAC,CAAc;gBAEtB,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IAKrD;;;OAGG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrF;;;;;OAKG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAwClF;;;OAGG;IACH,kBAAkB,IAAI,mBAAmB;CAQ5C"}
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ElevenLabsVoiceAdapter = void 0;
4
- /**
5
- * ElevenLabs Voice Adapter
6
- * Implements TTS using ElevenLabs API (free tier: 10,000 chars/month)
7
- * Note: This adapter only implements TTS. Use GeminiVoiceAdapter for STT.
8
- */
9
- class ElevenLabsVoiceAdapter {
10
- constructor(apiKey, voiceConfig) {
11
- this.apiKey = apiKey;
12
- this.voiceConfig = voiceConfig;
13
- }
14
- /**
15
- * Speech-to-text not supported by ElevenLabs
16
- * Use GeminiVoiceAdapter or another provider for STT
17
- */
18
- async speechToText(audioBase64, config) {
19
- throw new Error('ElevenLabs does not support speech-to-text. Use GeminiVoiceAdapter or another provider for STT.');
20
- }
21
- /**
22
- * Convert text to speech using ElevenLabs API
23
- * @param text Text to convert to speech
24
- * @param config Optional TTS configuration
25
- * @returns Audio data as Uint8Array (WAV format)
26
- */
27
- async textToSpeech(text, config) {
28
- const ttsConfig = config || this.voiceConfig?.tts;
29
- // Default to Rachel voice (female, multilingual, free tier compatible)
30
- const voiceId = ttsConfig?.voice || '21m00Tcm4TlvDq8ikWAM';
31
- try {
32
- const response = await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`, {
33
- method: 'POST',
34
- headers: {
35
- 'Accept': 'audio/wav', // Changed from audio/mpeg to audio/wav for better compatibility
36
- 'Content-Type': 'application/json',
37
- 'xi-api-key': this.apiKey
38
- },
39
- body: JSON.stringify({
40
- text,
41
- model_id: 'eleven_turbo_v2_5', // Free tier compatible model
42
- voice_settings: {
43
- stability: 0.5,
44
- similarity_boost: 0.5
45
- }
46
- })
47
- });
48
- if (!response.ok) {
49
- const errorText = await response.text();
50
- throw new Error(`ElevenLabs TTS API Error: ${response.status} - ${errorText}`);
51
- }
52
- // ElevenLabs returns audio directly as binary
53
- const audioBuffer = await response.arrayBuffer();
54
- return new Uint8Array(audioBuffer);
55
- }
56
- catch (error) {
57
- console.error('Text-to-Speech Error:', error);
58
- throw new Error(`TTS failed: ${error.message}`);
59
- }
60
- }
61
- /**
62
- * Declare the audio format produced by ElevenLabs TTS
63
- * Used by IAudioStorage for format conversion
64
- */
65
- getTTSOutputFormat() {
66
- return {
67
- format: 'wav', // Changed from 'mp3' to 'wav'
68
- sampleRate: 44100, // ElevenLabs WAV output is 44.1kHz
69
- channels: 1,
70
- bitDepth: 16
71
- };
72
- }
73
- }
74
- exports.ElevenLabsVoiceAdapter = ElevenLabsVoiceAdapter;
75
- //# sourceMappingURL=ElevenLabsVoiceAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ElevenLabsVoiceAdapter.js","sourceRoot":"","sources":["../../../src/adapters/voice/ElevenLabsVoiceAdapter.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,sBAAsB;IAI/B,YAAY,MAAc,EAAE,WAAyB;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,MAA2B;QAC/D,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;IACvH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,MAA2B;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;QAClD,uEAAuE;QACvE,MAAM,OAAO,GAAG,SAAS,EAAE,KAAK,IAAI,sBAAsB,CAAC;QAE3D,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,+CAA+C,OAAO,EAAE,EACxD;gBACI,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,QAAQ,EAAE,WAAW,EAAG,gEAAgE;oBACxF,cAAc,EAAE,kBAAkB;oBAClC,YAAY,EAAE,IAAI,CAAC,MAAM;iBAC5B;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,IAAI;oBACJ,QAAQ,EAAE,mBAAmB,EAAE,6BAA6B;oBAC5D,cAAc,EAAE;wBACZ,SAAS,EAAE,GAAG;wBACd,gBAAgB,EAAE,GAAG;qBACxB;iBACJ,CAAC;aACL,CACJ,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,8CAA8C;YAC9C,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;YACjD,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACd,OAAO;YACH,MAAM,EAAE,KAAK,EAAO,8BAA8B;YAClD,UAAU,EAAE,KAAK,EAAG,mCAAmC;YACvD,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;CACJ;AA3ED,wDA2EC"}
@@ -1,77 +0,0 @@
1
- import { IVoiceAdapter, VoiceConfig, AudioFormatMetadata } from '../../interfaces';
2
- /**
3
- * Gemini Multimodal Live Adapter
4
- *
5
- * Real-time voice adapter using Gemini's Multimodal Live API.
6
- * Provides bidirectional streaming for STT + LLM + TTS in a single connection.
7
- *
8
- * Features:
9
- * - Real-time speech-to-text
10
- * - Streaming LLM responses
11
- * - Real-time text-to-speech
12
- * - Low latency (<500ms)
13
- * - Interruption handling
14
- *
15
- * Cost: ~$0.006/minute (all-inclusive)
16
- *
17
- * Note: This adapter is designed for WebSocket-based real-time streaming.
18
- * For batch/turn-based conversations, use GeminiVoiceAdapter instead.
19
- */
20
- export declare class GeminiMultimodalLiveAdapter implements IVoiceAdapter {
21
- private apiKey;
22
- private voiceConfig?;
23
- private ws?;
24
- private isConnected;
25
- constructor(apiKey: string, voiceConfig?: VoiceConfig);
26
- /**
27
- * Connect to Gemini Multimodal Live API
28
- * Returns a WebSocket connection for bidirectional streaming
29
- */
30
- connect(): Promise<WebSocket>;
31
- /**
32
- * Send configuration to Gemini
33
- */
34
- private sendConfig;
35
- /**
36
- * Send audio chunk to Gemini for processing
37
- * @param audioBase64 Base64-encoded audio data
38
- */
39
- sendAudio(audioBase64: string): Promise<void>;
40
- /**
41
- * Register callback for receiving responses from Gemini
42
- * @param callback Function to handle responses (text + audio)
43
- */
44
- onResponse(callback: (response: {
45
- text?: string;
46
- audio?: Uint8Array;
47
- isFinal: boolean;
48
- }) => void): void;
49
- /**
50
- * Disconnect from Gemini
51
- */
52
- disconnect(): void;
53
- /**
54
- * Speech-to-text (not used in real-time mode)
55
- * Use sendAudio() and onResponse() instead for real-time streaming
56
- */
57
- speechToText(audioBase64: string, config?: VoiceConfig['stt']): Promise<string>;
58
- /**
59
- * Text-to-speech (not used in real-time mode)
60
- * Use sendAudio() and onResponse() instead for real-time streaming
61
- */
62
- textToSpeech(text: string, config?: VoiceConfig['tts']): Promise<Uint8Array>;
63
- /**
64
- * Get TTS output format metadata
65
- * This adapter outputs PCM audio at 24kHz mono
66
- */
67
- getTTSOutputFormat(): AudioFormatMetadata;
68
- /**
69
- * Check if connected to Gemini
70
- */
71
- isConnectedToGemini(): boolean;
72
- /**
73
- * Get the underlying WebSocket connection
74
- */
75
- getWebSocket(): WebSocket | undefined;
76
- }
77
- //# sourceMappingURL=GeminiMultimodalLiveAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GeminiMultimodalLiveAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/voice/GeminiMultimodalLiveAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEnF;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,2BAA4B,YAAW,aAAa;IAC7D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IAKrD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAkCnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAwBlB;;;OAGG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnD;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KACpB,KAAK,IAAI,GAAG,IAAI;IAuCjB;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;;OAGG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAOrF;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAOlF;;;OAGG;IACH,kBAAkB,IAAI,mBAAmB;IASzC;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;CAGxC"}