@memberjunction/ng-conversations 5.40.1 → 5.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +57 -0
  2. package/dist/__tests__/channel-optional-surface.test.d.ts +2 -0
  3. package/dist/__tests__/channel-optional-surface.test.d.ts.map +1 -0
  4. package/dist/__tests__/channel-optional-surface.test.js +53 -0
  5. package/dist/__tests__/channel-optional-surface.test.js.map +1 -0
  6. package/dist/__tests__/chat-events.test.d.ts +14 -0
  7. package/dist/__tests__/chat-events.test.d.ts.map +1 -0
  8. package/dist/__tests__/chat-events.test.js +109 -0
  9. package/dist/__tests__/chat-events.test.js.map +1 -0
  10. package/dist/__tests__/conversation-naming.test.d.ts +2 -0
  11. package/dist/__tests__/conversation-naming.test.d.ts.map +1 -0
  12. package/dist/__tests__/conversation-naming.test.js +110 -0
  13. package/dist/__tests__/conversation-naming.test.js.map +1 -0
  14. package/dist/__tests__/delegation-result-parser.test.d.ts +2 -0
  15. package/dist/__tests__/delegation-result-parser.test.d.ts.map +1 -0
  16. package/dist/__tests__/delegation-result-parser.test.js +107 -0
  17. package/dist/__tests__/delegation-result-parser.test.js.map +1 -0
  18. package/dist/__tests__/event-wiring.test.d.ts +15 -0
  19. package/dist/__tests__/event-wiring.test.d.ts.map +1 -0
  20. package/dist/__tests__/event-wiring.test.js +100 -0
  21. package/dist/__tests__/event-wiring.test.js.map +1 -0
  22. package/dist/__tests__/narration-template.test.d.ts +2 -0
  23. package/dist/__tests__/narration-template.test.d.ts.map +1 -0
  24. package/dist/__tests__/narration-template.test.js +76 -0
  25. package/dist/__tests__/narration-template.test.js.map +1 -0
  26. package/dist/__tests__/realtime-agent-picker-models.test.d.ts +2 -0
  27. package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +1 -0
  28. package/dist/__tests__/realtime-agent-picker-models.test.js +49 -0
  29. package/dist/__tests__/realtime-agent-picker-models.test.js.map +1 -0
  30. package/dist/__tests__/realtime-audio-visuals.test.d.ts +2 -0
  31. package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +1 -0
  32. package/dist/__tests__/realtime-audio-visuals.test.js +123 -0
  33. package/dist/__tests__/realtime-audio-visuals.test.js.map +1 -0
  34. package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +2 -0
  35. package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +1 -0
  36. package/dist/__tests__/realtime-delegation-card-cancel.test.js +48 -0
  37. package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +1 -0
  38. package/dist/__tests__/realtime-disclosure.test.d.ts +2 -0
  39. package/dist/__tests__/realtime-disclosure.test.d.ts.map +1 -0
  40. package/dist/__tests__/realtime-disclosure.test.js +164 -0
  41. package/dist/__tests__/realtime-disclosure.test.js.map +1 -0
  42. package/dist/__tests__/realtime-pairing.test.d.ts +2 -0
  43. package/dist/__tests__/realtime-pairing.test.d.ts.map +1 -0
  44. package/dist/__tests__/realtime-pairing.test.js +207 -0
  45. package/dist/__tests__/realtime-pairing.test.js.map +1 -0
  46. package/dist/__tests__/realtime-review-lifecycle.test.d.ts +2 -0
  47. package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +1 -0
  48. package/dist/__tests__/realtime-review-lifecycle.test.js +154 -0
  49. package/dist/__tests__/realtime-review-lifecycle.test.js.map +1 -0
  50. package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +2 -0
  51. package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +1 -0
  52. package/dist/__tests__/realtime-session-cancel-usage.test.js +230 -0
  53. package/dist/__tests__/realtime-session-cancel-usage.test.js.map +1 -0
  54. package/dist/__tests__/realtime-session-channels.test.d.ts +2 -0
  55. package/dist/__tests__/realtime-session-channels.test.d.ts.map +1 -0
  56. package/dist/__tests__/realtime-session-channels.test.js +252 -0
  57. package/dist/__tests__/realtime-session-channels.test.js.map +1 -0
  58. package/dist/__tests__/realtime-session-client-tools.test.d.ts +2 -0
  59. package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +1 -0
  60. package/dist/__tests__/realtime-session-client-tools.test.js +103 -0
  61. package/dist/__tests__/realtime-session-client-tools.test.js.map +1 -0
  62. package/dist/__tests__/realtime-session-minimized.test.d.ts +2 -0
  63. package/dist/__tests__/realtime-session-minimized.test.d.ts.map +1 -0
  64. package/dist/__tests__/realtime-session-minimized.test.js +32 -0
  65. package/dist/__tests__/realtime-session-minimized.test.js.map +1 -0
  66. package/dist/__tests__/realtime-session-mint.test.d.ts +2 -0
  67. package/dist/__tests__/realtime-session-mint.test.d.ts.map +1 -0
  68. package/dist/__tests__/realtime-session-mint.test.js +69 -0
  69. package/dist/__tests__/realtime-session-mint.test.js.map +1 -0
  70. package/dist/__tests__/realtime-session-policy.test.d.ts +2 -0
  71. package/dist/__tests__/realtime-session-policy.test.d.ts.map +1 -0
  72. package/dist/__tests__/realtime-session-policy.test.js +303 -0
  73. package/dist/__tests__/realtime-session-policy.test.js.map +1 -0
  74. package/dist/__tests__/realtime-session-review.service.test.d.ts +2 -0
  75. package/dist/__tests__/realtime-session-review.service.test.d.ts.map +1 -0
  76. package/dist/__tests__/realtime-session-review.service.test.js +743 -0
  77. package/dist/__tests__/realtime-session-review.service.test.js.map +1 -0
  78. package/dist/__tests__/realtime-session-state.test.d.ts +2 -0
  79. package/dist/__tests__/realtime-session-state.test.d.ts.map +1 -0
  80. package/dist/__tests__/realtime-session-state.test.js +83 -0
  81. package/dist/__tests__/realtime-session-state.test.js.map +1 -0
  82. package/dist/__tests__/realtime-session-timeline-card.test.d.ts +2 -0
  83. package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +1 -0
  84. package/dist/__tests__/realtime-session-timeline-card.test.js +106 -0
  85. package/dist/__tests__/realtime-session-timeline-card.test.js.map +1 -0
  86. package/dist/__tests__/realtime-session-timeline.test.d.ts +2 -0
  87. package/dist/__tests__/realtime-session-timeline.test.d.ts.map +1 -0
  88. package/dist/__tests__/realtime-session-timeline.test.js +142 -0
  89. package/dist/__tests__/realtime-session-timeline.test.js.map +1 -0
  90. package/dist/__tests__/realtime-sessions-adapter.test.d.ts +19 -0
  91. package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +1 -0
  92. package/dist/__tests__/realtime-sessions-adapter.test.js +188 -0
  93. package/dist/__tests__/realtime-sessions-adapter.test.js.map +1 -0
  94. package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +2 -0
  95. package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +1 -0
  96. package/dist/__tests__/realtime-surface-panel-prefs.test.js +100 -0
  97. package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +1 -0
  98. package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +2 -0
  99. package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +1 -0
  100. package/dist/__tests__/realtime-surface-tabs-model.test.js +193 -0
  101. package/dist/__tests__/realtime-surface-tabs-model.test.js.map +1 -0
  102. package/dist/__tests__/remote-browser-audio-player.test.d.ts +2 -0
  103. package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +1 -0
  104. package/dist/__tests__/remote-browser-audio-player.test.js +137 -0
  105. package/dist/__tests__/remote-browser-audio-player.test.js.map +1 -0
  106. package/dist/__tests__/remote-browser-channel.test.d.ts +2 -0
  107. package/dist/__tests__/remote-browser-channel.test.d.ts.map +1 -0
  108. package/dist/__tests__/remote-browser-channel.test.js +423 -0
  109. package/dist/__tests__/remote-browser-channel.test.js.map +1 -0
  110. package/dist/__tests__/slot-defaults.test.d.ts +24 -0
  111. package/dist/__tests__/slot-defaults.test.d.ts.map +1 -0
  112. package/dist/__tests__/slot-defaults.test.js +63 -0
  113. package/dist/__tests__/slot-defaults.test.js.map +1 -0
  114. package/dist/__tests__/user-authorization.test.d.ts +2 -0
  115. package/dist/__tests__/user-authorization.test.d.ts.map +1 -0
  116. package/dist/__tests__/user-authorization.test.js +97 -0
  117. package/dist/__tests__/user-authorization.test.js.map +1 -0
  118. package/dist/__tests__/voice-session-narration.test.d.ts +2 -0
  119. package/dist/__tests__/voice-session-narration.test.d.ts.map +1 -0
  120. package/dist/__tests__/voice-session-narration.test.js +609 -0
  121. package/dist/__tests__/voice-session-narration.test.js.map +1 -0
  122. package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +2 -0
  123. package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +1 -0
  124. package/dist/__tests__/whiteboard-artifact-viewer.test.js +101 -0
  125. package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +1 -0
  126. package/dist/__tests__/whiteboard-channel.test.d.ts +2 -0
  127. package/dist/__tests__/whiteboard-channel.test.d.ts.map +1 -0
  128. package/dist/__tests__/whiteboard-channel.test.js +260 -0
  129. package/dist/__tests__/whiteboard-channel.test.js.map +1 -0
  130. package/dist/__tests__/whiteboard-restore-state.test.d.ts +2 -0
  131. package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +1 -0
  132. package/dist/__tests__/whiteboard-restore-state.test.js +108 -0
  133. package/dist/__tests__/whiteboard-restore-state.test.js.map +1 -0
  134. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +205 -3
  135. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  136. package/dist/lib/components/conversation/conversation-chat-area.component.js +911 -342
  137. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  138. package/dist/lib/components/mention/mention-dropdown.component.js +35 -17
  139. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  140. package/dist/lib/components/mention/mention-editor.component.d.ts +4 -0
  141. package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
  142. package/dist/lib/components/mention/mention-editor.component.js +43 -19
  143. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  144. package/dist/lib/components/message/message-input-box.component.d.ts +17 -1
  145. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  146. package/dist/lib/components/message/message-input-box.component.js +73 -15
  147. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  148. package/dist/lib/components/message/message-input.component.d.ts +142 -6
  149. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  150. package/dist/lib/components/message/message-input.component.js +328 -82
  151. package/dist/lib/components/message/message-input.component.js.map +1 -1
  152. package/dist/lib/components/message/message-item.component.d.ts +28 -3
  153. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  154. package/dist/lib/components/message/message-item.component.js +180 -108
  155. package/dist/lib/components/message/message-item.component.js.map +1 -1
  156. package/dist/lib/components/message/message-list.component.d.ts +81 -2
  157. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  158. package/dist/lib/components/message/message-list.component.js +252 -87
  159. package/dist/lib/components/message/message-list.component.js.map +1 -1
  160. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +282 -0
  161. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -0
  162. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +158 -0
  163. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -0
  164. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts +25 -0
  165. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts.map +1 -0
  166. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js +140 -0
  167. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js.map +1 -0
  168. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +35 -0
  169. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -0
  170. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +58 -0
  171. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -0
  172. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +63 -0
  173. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -0
  174. package/dist/lib/components/realtime/realtime-activity-rail.component.js +260 -0
  175. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -0
  176. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +117 -0
  177. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -0
  178. package/dist/lib/components/realtime/realtime-agent-banner.component.js +504 -0
  179. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -0
  180. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +168 -0
  181. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -0
  182. package/dist/lib/components/realtime/realtime-agent-picker.component.js +556 -0
  183. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -0
  184. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +97 -0
  185. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -0
  186. package/dist/lib/components/realtime/realtime-audio-visuals.js +139 -0
  187. package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -0
  188. package/dist/lib/components/realtime/realtime-channel-strip.component.d.ts +29 -0
  189. package/dist/lib/components/realtime/realtime-channel-strip.component.d.ts.map +1 -0
  190. package/dist/lib/components/realtime/realtime-channel-strip.component.js +69 -0
  191. package/dist/lib/components/realtime/realtime-channel-strip.component.js.map +1 -0
  192. package/dist/lib/components/realtime/realtime-composer.component.d.ts +65 -0
  193. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -0
  194. package/dist/lib/components/realtime/realtime-composer.component.js +256 -0
  195. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -0
  196. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +71 -0
  197. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -0
  198. package/dist/lib/components/realtime/realtime-delegation-card.component.js +324 -0
  199. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -0
  200. package/dist/lib/components/realtime/realtime-disclosure.d.ts +135 -0
  201. package/dist/lib/components/realtime/realtime-disclosure.d.ts.map +1 -0
  202. package/dist/lib/components/realtime/realtime-disclosure.js +188 -0
  203. package/dist/lib/components/realtime/realtime-disclosure.js.map +1 -0
  204. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +491 -0
  205. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -0
  206. package/dist/lib/components/realtime/realtime-session-overlay.component.js +1274 -0
  207. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -0
  208. package/dist/lib/components/realtime/realtime-session-state.d.ts +191 -0
  209. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -0
  210. package/dist/lib/components/realtime/realtime-session-state.js +244 -0
  211. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -0
  212. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts +56 -0
  213. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts.map +1 -0
  214. package/dist/lib/components/realtime/realtime-session-thread.component.js +246 -0
  215. package/dist/lib/components/realtime/realtime-session-thread.component.js.map +1 -0
  216. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +51 -0
  217. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -0
  218. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +193 -0
  219. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -0
  220. package/dist/lib/components/realtime/realtime-surface-panel-prefs.d.ts +77 -0
  221. package/dist/lib/components/realtime/realtime-surface-panel-prefs.d.ts.map +1 -0
  222. package/dist/lib/components/realtime/realtime-surface-panel-prefs.js +114 -0
  223. package/dist/lib/components/realtime/realtime-surface-panel-prefs.js.map +1 -0
  224. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +173 -0
  225. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -0
  226. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +496 -0
  227. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -0
  228. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +181 -0
  229. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -0
  230. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +223 -0
  231. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -0
  232. package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.d.ts +163 -0
  233. package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.d.ts.map +1 -0
  234. package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.js +309 -0
  235. package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.js.map +1 -0
  236. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +168 -0
  237. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -0
  238. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +524 -0
  239. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -0
  240. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts +346 -0
  241. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts.map +1 -0
  242. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js +851 -0
  243. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js.map +1 -0
  244. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts +86 -0
  245. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts.map +1 -0
  246. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js +210 -0
  247. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js.map +1 -0
  248. package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.d.ts +48 -0
  249. package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.d.ts.map +1 -0
  250. package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.js +180 -0
  251. package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.js.map +1 -0
  252. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +119 -0
  253. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -0
  254. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +274 -0
  255. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -0
  256. package/dist/lib/components/slots/mj-chat-agent-presence-default.component.d.ts +11 -0
  257. package/dist/lib/components/slots/mj-chat-agent-presence-default.component.d.ts.map +1 -0
  258. package/dist/lib/components/slots/mj-chat-agent-presence-default.component.js +98 -0
  259. package/dist/lib/components/slots/mj-chat-agent-presence-default.component.js.map +1 -0
  260. package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.d.ts +9 -0
  261. package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.d.ts.map +1 -0
  262. package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.js +35 -0
  263. package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.js.map +1 -0
  264. package/dist/lib/components/slots/mj-chat-empty-state-default.component.d.ts +28 -0
  265. package/dist/lib/components/slots/mj-chat-empty-state-default.component.d.ts.map +1 -0
  266. package/dist/lib/components/slots/mj-chat-empty-state-default.component.js +104 -0
  267. package/dist/lib/components/slots/mj-chat-empty-state-default.component.js.map +1 -0
  268. package/dist/lib/components/slots/mj-chat-header-default.component.d.ts +11 -0
  269. package/dist/lib/components/slots/mj-chat-header-default.component.d.ts.map +1 -0
  270. package/dist/lib/components/slots/mj-chat-header-default.component.js +103 -0
  271. package/dist/lib/components/slots/mj-chat-header-default.component.js.map +1 -0
  272. package/dist/lib/components/slots/mj-chat-message-bubble-default.component.d.ts +15 -0
  273. package/dist/lib/components/slots/mj-chat-message-bubble-default.component.d.ts.map +1 -0
  274. package/dist/lib/components/slots/mj-chat-message-bubble-default.component.js +73 -0
  275. package/dist/lib/components/slots/mj-chat-message-bubble-default.component.js.map +1 -0
  276. package/dist/lib/components/slots/mj-chat-message-extra-default.component.d.ts +9 -0
  277. package/dist/lib/components/slots/mj-chat-message-extra-default.component.d.ts.map +1 -0
  278. package/dist/lib/components/slots/mj-chat-message-extra-default.component.js +34 -0
  279. package/dist/lib/components/slots/mj-chat-message-extra-default.component.js.map +1 -0
  280. package/dist/lib/components/slots/slot-interfaces.d.ts +95 -0
  281. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -0
  282. package/dist/lib/components/slots/slot-interfaces.js +18 -0
  283. package/dist/lib/components/slots/slot-interfaces.js.map +1 -0
  284. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +11 -0
  285. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  286. package/dist/lib/components/workspace/conversation-workspace.component.js +28 -4
  287. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  288. package/dist/lib/conversations.module.d.ts +12 -1
  289. package/dist/lib/conversations.module.d.ts.map +1 -1
  290. package/dist/lib/conversations.module.js +93 -5
  291. package/dist/lib/conversations.module.js.map +1 -1
  292. package/dist/lib/directives/chat-slot.directive.d.ts +44 -0
  293. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -0
  294. package/dist/lib/directives/chat-slot.directive.js +54 -0
  295. package/dist/lib/directives/chat-slot.directive.js.map +1 -0
  296. package/dist/lib/events/chat-events.d.ts +137 -0
  297. package/dist/lib/events/chat-events.d.ts.map +1 -0
  298. package/dist/lib/events/chat-events.js +189 -0
  299. package/dist/lib/events/chat-events.js.map +1 -0
  300. package/dist/lib/models/conversation-state.model.d.ts +2 -1
  301. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  302. package/dist/lib/models/conversation-state.model.js.map +1 -1
  303. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  304. package/dist/lib/services/artifact-state.service.js +23 -6
  305. package/dist/lib/services/artifact-state.service.js.map +1 -1
  306. package/dist/lib/services/conversation-agent.service.d.ts +60 -74
  307. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  308. package/dist/lib/services/conversation-agent.service.js +100 -313
  309. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  310. package/dist/lib/services/conversation-bridge.service.d.ts +11 -70
  311. package/dist/lib/services/conversation-bridge.service.d.ts.map +1 -1
  312. package/dist/lib/services/conversation-bridge.service.js +51 -85
  313. package/dist/lib/services/conversation-bridge.service.js.map +1 -1
  314. package/dist/lib/services/conversation-naming.d.ts +63 -0
  315. package/dist/lib/services/conversation-naming.d.ts.map +1 -0
  316. package/dist/lib/services/conversation-naming.js +58 -0
  317. package/dist/lib/services/conversation-naming.js.map +1 -0
  318. package/dist/lib/services/conversation-streaming.service.d.ts +24 -154
  319. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
  320. package/dist/lib/services/conversation-streaming.service.js +39 -361
  321. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  322. package/dist/lib/services/conversations-runtime-bootstrap.service.d.ts +10 -0
  323. package/dist/lib/services/conversations-runtime-bootstrap.service.d.ts.map +1 -0
  324. package/dist/lib/services/conversations-runtime-bootstrap.service.js +104 -0
  325. package/dist/lib/services/conversations-runtime-bootstrap.service.js.map +1 -0
  326. package/dist/lib/services/delegation-result-parser.d.ts +45 -0
  327. package/dist/lib/services/delegation-result-parser.d.ts.map +1 -0
  328. package/dist/lib/services/delegation-result-parser.js +48 -0
  329. package/dist/lib/services/delegation-result-parser.js.map +1 -0
  330. package/dist/lib/services/mention-autocomplete.service.d.ts +19 -4
  331. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  332. package/dist/lib/services/mention-autocomplete.service.js +65 -4
  333. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  334. package/dist/lib/services/mention-parser.service.d.ts +8 -53
  335. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  336. package/dist/lib/services/mention-parser.service.js +32 -243
  337. package/dist/lib/services/mention-parser.service.js.map +1 -1
  338. package/dist/lib/services/narration-template.d.ts +42 -0
  339. package/dist/lib/services/narration-template.d.ts.map +1 -0
  340. package/dist/lib/services/narration-template.js +73 -0
  341. package/dist/lib/services/narration-template.js.map +1 -0
  342. package/dist/lib/services/realtime-pairing.d.ts +120 -0
  343. package/dist/lib/services/realtime-pairing.d.ts.map +1 -0
  344. package/dist/lib/services/realtime-pairing.js +150 -0
  345. package/dist/lib/services/realtime-pairing.js.map +1 -0
  346. package/dist/lib/services/realtime-session-review.service.d.ts +233 -0
  347. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -0
  348. package/dist/lib/services/realtime-session-review.service.js +417 -0
  349. package/dist/lib/services/realtime-session-review.service.js.map +1 -0
  350. package/dist/lib/services/realtime-session.service.d.ts +739 -0
  351. package/dist/lib/services/realtime-session.service.d.ts.map +1 -0
  352. package/dist/lib/services/realtime-session.service.js +1647 -0
  353. package/dist/lib/services/realtime-session.service.js.map +1 -0
  354. package/dist/lib/services/realtime-sessions-adapter.d.ts +54 -0
  355. package/dist/lib/services/realtime-sessions-adapter.d.ts.map +1 -0
  356. package/dist/lib/services/realtime-sessions-adapter.js +154 -0
  357. package/dist/lib/services/realtime-sessions-adapter.js.map +1 -0
  358. package/dist/lib/services/user-authorization.d.ts +67 -0
  359. package/dist/lib/services/user-authorization.d.ts.map +1 -0
  360. package/dist/lib/services/user-authorization.js +66 -0
  361. package/dist/lib/services/user-authorization.js.map +1 -0
  362. package/dist/lib/utils/realtime-session-timeline.d.ts +84 -0
  363. package/dist/lib/utils/realtime-session-timeline.d.ts.map +1 -0
  364. package/dist/lib/utils/realtime-session-timeline.js +94 -0
  365. package/dist/lib/utils/realtime-session-timeline.js.map +1 -0
  366. package/dist/public-api.d.ts +41 -0
  367. package/dist/public-api.d.ts.map +1 -1
  368. package/dist/public-api.js +50 -0
  369. package/dist/public-api.js.map +1 -1
  370. package/package.json +27 -24
  371. package/dist/__tests__/conversation-bridge.service.test.d.ts +0 -2
  372. package/dist/__tests__/conversation-bridge.service.test.d.ts.map +0 -1
  373. package/dist/__tests__/conversation-bridge.service.test.js +0 -98
  374. package/dist/__tests__/conversation-bridge.service.test.js.map +0 -1
  375. package/dist/__tests__/mention-parser.test.d.ts +0 -2
  376. package/dist/__tests__/mention-parser.test.d.ts.map +0 -1
  377. package/dist/__tests__/mention-parser.test.js +0 -154
  378. package/dist/__tests__/mention-parser.test.js.map +0 -1
@@ -0,0 +1,58 @@
1
+ import { CleanAndParseJSON } from '@memberjunction/global';
2
+ import { AIEngineBase } from '@memberjunction/ai-engine-base';
3
+ import { GraphQLAIClient } from '@memberjunction/graphql-dataprovider';
4
+ import { ConversationEngine } from '@memberjunction/core-entities';
5
+ /** The seeded name of the AI prompt that generates conversation names. */
6
+ export const NAME_CONVERSATION_PROMPT = 'Name Conversation';
7
+ /**
8
+ * Generates a name + description for a conversation from its first message and SAVES it
9
+ * (DB + engine cache) — the single naming implementation shared by the regular composer
10
+ * and the realtime session path.
11
+ *
12
+ * @returns The applied `{ Name, Description }`, or `null` when naming was skipped/failed
13
+ * (missing prompt, provider unavailable, timeout, unparseable output, save failure) —
14
+ * the conversation keeps its current name in every null case.
15
+ */
16
+ export async function GenerateAndApplyConversationName(options) {
17
+ try {
18
+ await AIEngineBase.Instance.Config(false);
19
+ const prompt = AIEngineBase.Instance.Prompts.find(pr => pr.Name === NAME_CONVERSATION_PROMPT);
20
+ if (!prompt) {
21
+ console.warn(`⚠️ ${NAME_CONVERSATION_PROMPT} prompt not found`);
22
+ return null;
23
+ }
24
+ if (!options.Provider) {
25
+ console.warn('⚠️ GraphQLDataProvider not available for conversation naming');
26
+ return null;
27
+ }
28
+ const run = options.RunPrompt
29
+ ?? ((promptId, messageText) => new GraphQLAIClient(options.Provider).RunAIPrompt({
30
+ promptId,
31
+ messages: [{ role: 'user', content: messageText }]
32
+ }));
33
+ const timeoutMs = options.TimeoutMs ?? 30000;
34
+ const timeoutPromise = new Promise((_, reject) => {
35
+ setTimeout(() => reject(new Error(`Conversation naming timed out after ${Math.round(timeoutMs / 1000)} seconds`)), timeoutMs);
36
+ });
37
+ const result = await Promise.race([run(prompt.ID, options.MessageText), timeoutPromise]);
38
+ if (!result || !result.success || (!result.parsedResult && !result.output)) {
39
+ return null;
40
+ }
41
+ // parsedResult preferred; CleanAndParseJSON tolerates ```json fences in raw output.
42
+ const parsed = (result.parsedResult ?? (result.output ? CleanAndParseJSON(result.output) : null));
43
+ if (!parsed?.name) {
44
+ return null;
45
+ }
46
+ const saved = await ConversationEngine.Instance.SaveConversation(options.ConversationId, { Name: parsed.name, Description: parsed.description || '' }, options.CurrentUser);
47
+ if (!saved) {
48
+ console.warn('⚠️ Conversation naming generated a name but the save failed');
49
+ return null;
50
+ }
51
+ return { Name: parsed.name, Description: parsed.description || '' };
52
+ }
53
+ catch (error) {
54
+ console.warn('⚠️ Conversation naming failed (conversation keeps its default name):', error);
55
+ return null;
56
+ }
57
+ }
58
+ //# sourceMappingURL=conversation-naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-naming.js","sourceRoot":"","sources":["../../../src/lib/services/conversation-naming.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Shared conversation auto-naming helper — extracted from the message\n * input's first-message naming flow so BOTH chat paths use one implementation:\n *\n * - **Regular chat**: the composer names a brand-new conversation from its first\n * user message (the original behavior, now delegated here).\n * - **Realtime sessions**: a voice call that created a fresh conversation names it\n * from the first user utterance when the call ends.\n *\n * The naming itself is DB-driven: the `Name Conversation` AI prompt runs through the\n * GraphQL AI client (same path agents use) with a timeout guard; the parsed\n * `{ name, description }` is saved through {@link ConversationEngine.SaveConversation},\n * which updates the engine's cached conversation list in place (the sidebar reacts\n * through the engine's observables). Failures are logged and return `null` — naming is\n * always best-effort background work that must never affect the user experience.\n */\nimport { UserInfo } from '@memberjunction/core';\nimport { CleanAndParseJSON } from '@memberjunction/global';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { GraphQLDataProvider, GraphQLAIClient } from '@memberjunction/graphql-dataprovider';\nimport { ConversationEngine } from '@memberjunction/core-entities';\n\n/** The applied result of a successful auto-naming run. */\nexport interface ConversationNameResult {\n /** The generated conversation name (already saved). */\n Name: string;\n /** The generated description (already saved; empty string when the prompt omitted it). */\n Description: string;\n}\n\n/** Options for {@link GenerateAndApplyConversationName}. */\nexport interface GenerateConversationNameOptions {\n /** The conversation to name (must exist; the caller owns membership checks). */\n ConversationId: string;\n /**\n * The text the name is derived from — the first user message (regular chat) or the\n * first spoken user utterance (realtime). Callers strip mentions/markup first.\n */\n MessageText: string;\n /** The GraphQL provider the AI client runs over. */\n Provider: GraphQLDataProvider;\n /** The acting user (threaded into the conversation save). */\n CurrentUser: UserInfo;\n /** Abort guard for the prompt run. Default 30s — the conversation keeps its default name on timeout. */\n TimeoutMs?: number;\n /**\n * Test seam: overrides the prompt execution. Production leaves this undefined and the\n * helper runs the `Name Conversation` prompt via {@link GraphQLAIClient.RunAIPrompt}.\n */\n RunPrompt?: (promptId: string, messageText: string) => Promise<{ success: boolean; parsedResult?: unknown; output?: string } | null>;\n}\n\n/** The seeded name of the AI prompt that generates conversation names. */\nexport const NAME_CONVERSATION_PROMPT = 'Name Conversation';\n\n/**\n * Generates a name + description for a conversation from its first message and SAVES it\n * (DB + engine cache) — the single naming implementation shared by the regular composer\n * and the realtime session path.\n *\n * @returns The applied `{ Name, Description }`, or `null` when naming was skipped/failed\n * (missing prompt, provider unavailable, timeout, unparseable output, save failure) —\n * the conversation keeps its current name in every null case.\n */\nexport async function GenerateAndApplyConversationName(\n options: GenerateConversationNameOptions\n): Promise<ConversationNameResult | null> {\n try {\n await AIEngineBase.Instance.Config(false);\n const prompt = AIEngineBase.Instance.Prompts.find(pr => pr.Name === NAME_CONVERSATION_PROMPT);\n if (!prompt) {\n console.warn(`⚠️ ${NAME_CONVERSATION_PROMPT} prompt not found`);\n return null;\n }\n if (!options.Provider) {\n console.warn('⚠️ GraphQLDataProvider not available for conversation naming');\n return null;\n }\n\n const run = options.RunPrompt\n ?? ((promptId: string, messageText: string) =>\n new GraphQLAIClient(options.Provider).RunAIPrompt({\n promptId,\n messages: [{ role: 'user', content: messageText }]\n }));\n\n const timeoutMs = options.TimeoutMs ?? 30000;\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => reject(new Error(`Conversation naming timed out after ${Math.round(timeoutMs / 1000)} seconds`)), timeoutMs);\n });\n\n const result = await Promise.race([run(prompt.ID, options.MessageText), timeoutPromise]);\n if (!result || !result.success || (!result.parsedResult && !result.output)) {\n return null;\n }\n\n // parsedResult preferred; CleanAndParseJSON tolerates ```json fences in raw output.\n const parsed = (result.parsedResult ?? (result.output ? CleanAndParseJSON(result.output) : null)) as\n | { name?: string; description?: string }\n | null;\n if (!parsed?.name) {\n return null;\n }\n\n const saved = await ConversationEngine.Instance.SaveConversation(\n options.ConversationId,\n { Name: parsed.name, Description: parsed.description || '' },\n options.CurrentUser\n );\n if (!saved) {\n console.warn('⚠️ Conversation naming generated a name but the save failed');\n return null;\n }\n return { Name: parsed.name, Description: parsed.description || '' };\n } catch (error) {\n console.warn('⚠️ Conversation naming failed (conversation keeps its default name):', error);\n return null;\n }\n}\n"]}
@@ -1,172 +1,42 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { ActiveTasksService } from './active-tasks.service';
4
- import { DataCacheService } from './data-cache.service';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Completion event structure broadcast when an agent finishes.
8
- * Includes enriched result data from the server's fire-and-forget completion event.
9
- */
10
- export interface CompletionEvent {
11
- conversationDetailId: string;
12
- agentRunId: string;
13
- /** Whether the agent execution succeeded */
14
- success?: boolean;
15
- /** Error message if the agent execution failed */
16
- errorMessage?: string;
17
- }
18
- /**
19
- * Metadata structure for message progress updates
20
- */
21
- export interface MessageProgressMetadata {
22
- /** Progress details (from RunAIAgentResolver) */
23
- progress?: {
24
- hierarchicalStep?: string;
25
- percentage?: number;
26
- message?: string;
27
- stepCount?: number;
28
- agentName?: string;
29
- agentType?: string;
30
- };
31
- /** Agent run information (from RunAIAgentResolver) */
32
- agentRun?: {
33
- Agent?: string;
34
- ConversationDetailID?: string;
35
- ID?: string;
36
- };
37
- /** Agent run ID (alternative to agentRun.ID) */
38
- agentRunId?: string;
39
- }
40
- /**
41
- * Message progress update structure
42
- */
43
- export interface MessageProgressUpdate {
44
- message: string;
45
- percentComplete?: number;
46
- taskName?: string;
47
- conversationDetailId: string;
48
- metadata?: MessageProgressMetadata;
49
- stepCount?: number;
50
- /** Identifies which backend resolver published this update */
51
- resolver?: 'TaskOrchestrator' | 'RunAIAgentResolver' | string;
52
- }
53
- /**
54
- * Callback type for message progress updates
55
- */
56
- export type MessageProgressCallback = (progress: MessageProgressUpdate) => Promise<void> | void;
57
- /**
58
- * Connection status for streaming service
59
- */
60
- export type StreamingConnectionStatus = 'connected' | 'disconnected' | 'error' | 'reconnecting';
61
1
  /**
62
- * Global streaming service that manages PubSub subscriptions for all conversations.
2
+ * @fileoverview Angular DI shim over the framework-agnostic `ConversationStreaming`
3
+ * from `@memberjunction/conversations-runtime`.
63
4
  *
64
- * This service maintains a single WebSocket connection and routes updates to all
65
- * registered message callbacks, regardless of which conversation is currently visible.
66
- * This ensures that messages update correctly even when users navigate away and return.
5
+ * The PubSub subscription, message routing, completion replay, and reconnection
6
+ * logic all moved into the runtime in PR 2a. This service is now a thin pass-
7
+ * through. The runtime accesses the active-task tracker via the adapter
8
+ * registered by `ConversationsRuntimeBootstrap`.
9
+ *
10
+ * **For new code:** prefer `ConversationsRuntime.Instance.Streaming` directly.
67
11
  */
12
+ import { OnDestroy } from '@angular/core';
13
+ import { Observable, Subject } from 'rxjs';
14
+ import { ConversationsRuntime, type CompletionEvent, type MessageProgressCallback, type MessageProgressMetadata, type MessageProgressUpdate, type StreamingConnectionStatus } from '@memberjunction/conversations-runtime';
15
+ import { ConversationsRuntimeBootstrap } from './conversations-runtime-bootstrap.service';
16
+ import * as i0 from "@angular/core";
17
+ export type { CompletionEvent, MessageProgressCallback, MessageProgressMetadata, MessageProgressUpdate, StreamingConnectionStatus, };
68
18
  export declare class ConversationStreamingService implements OnDestroy {
69
- private activeTasks;
70
- private dataCache;
71
- private pushStatusSubscription?;
72
- private callbackRegistry;
73
- private recentCompletions;
74
- completionEvents$: Subject<CompletionEvent>;
75
- private connectionStatus$;
76
- private initialized;
77
- private reconnectionTimeout?;
78
- constructor(activeTasks: ActiveTasksService, dataCache: DataCacheService);
79
- /**
80
- * Initialize the global PubSub subscription.
81
- * Should be called once at app startup (e.g., in workspace component).
82
- */
19
+ constructor(_bootstrap: ConversationsRuntimeBootstrap);
20
+ private get streaming();
21
+ /** Pass-through to {@link ConversationsRuntime.Instance.Streaming.completionEvents$}. */
22
+ get completionEvents$(): Subject<CompletionEvent>;
83
23
  initialize(): void;
84
- /**
85
- * Get the current connection status as an observable
86
- */
87
- getConnectionStatus$(): import("rxjs").Observable<StreamingConnectionStatus>;
88
- /**
89
- * Get the current connection status value
90
- */
24
+ getConnectionStatus$(): Observable<StreamingConnectionStatus>;
91
25
  getConnectionStatus(): StreamingConnectionStatus;
92
- /**
93
- * Register a callback for a specific conversation detail (message).
94
- * The callback will be invoked whenever progress updates arrive for this message.
95
- *
96
- * @param conversationDetailId - The ID of the conversation detail entity
97
- * @param callback - Function to call with progress updates
98
- */
99
26
  registerMessageCallback(conversationDetailId: string, callback: MessageProgressCallback): void;
100
- /**
101
- * Unregister a callback for a specific conversation detail.
102
- * If no callback is provided, all callbacks for the message are removed.
103
- *
104
- * @param conversationDetailId - The ID of the conversation detail entity
105
- * @param callback - Optional specific callback to remove
106
- */
107
27
  unregisterMessageCallback(conversationDetailId: string, callback?: MessageProgressCallback): void;
108
- /**
109
- * Get the number of registered callbacks (for monitoring/debugging)
110
- */
111
28
  getRegisteredCallbackCount(): number;
112
- /**
113
- * Get the number of messages being tracked (for monitoring/debugging)
114
- */
115
29
  getTrackedMessageCount(): number;
116
- /**
117
- * Handle incoming PubSub status updates and route to registered callbacks
118
- */
119
- private handlePushStatusUpdate;
120
- /**
121
- * Route task progress updates to registered callbacks.
122
- * Uses conversationDetailId from PubSub message for direct routing.
123
- */
124
- private routeTaskProgress;
125
- /**
126
- * Route agent progress updates (from RunAIAgentResolver) to registered callbacks.
127
- * Uses conversationDetailID from agentRun data for direct routing.
128
- * Also handles completion messages to remove tasks from ActiveTasksService.
129
- */
130
- private routeAgentProgress;
131
- /**
132
- * Schedule a reconnection attempt after a delay
133
- */
134
- private scheduleReconnection;
135
- /**
136
- * Get a recent completion event for a message (used when component initializes after completion)
137
- * This handles the navigation scenario: user navigates away, agent completes, user returns.
138
- * @param conversationDetailId - The message ID to check
139
- * @returns Completion info if found within the last 5 minutes, undefined otherwise
140
- */
141
30
  getRecentCompletion(conversationDetailId: string): {
142
31
  agentRunId: string;
143
32
  } | undefined;
144
- /**
145
- * Clear a recent completion after it has been handled
146
- * @param conversationDetailId - The message ID to clear
147
- */
148
33
  clearRecentCompletion(conversationDetailId: string): void;
34
+ getDiagnosticSnapshot(messageId: string): ReturnType<typeof ConversationsRuntime.Instance.Streaming.getDiagnosticSnapshot>;
149
35
  /**
150
- * Get a diagnostic snapshot of streaming state for a specific message.
151
- * Used by the Shift+Click debug tool to dump live in-memory state to the console.
152
- * @param messageId - The ConversationDetailID to inspect
153
- */
154
- getDiagnosticSnapshot(messageId: string): {
155
- hasCallbacks: boolean;
156
- callbackCount: number;
157
- recentCompletion: {
158
- conversationDetailId: string;
159
- agentRunId: string;
160
- timestamp: Date;
161
- } | undefined;
162
- connectionStatus: StreamingConnectionStatus;
163
- };
164
- /**
165
- * Cleanup completions older than 5 minutes to prevent memory leak
166
- */
167
- private cleanupOldCompletions;
168
- /**
169
- * Cleanup when service is destroyed
36
+ * Angular OnDestroy hook. We do NOT call the runtime's Streaming.Dispose()
37
+ * here that would tear down a shared singleton on a per-injector destroy,
38
+ * which could affect other consumers. The runtime is process-scoped; its
39
+ * lifecycle ends with the process, not with any Angular injector.
170
40
  */
171
41
  ngOnDestroy(): void;
172
42
  static ɵfac: i0.ɵɵFactoryDeclaration<ConversationStreamingService, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-streaming.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/conversation-streaming.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-streaming.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/conversation-streaming.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EACH,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EACjC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;;AAG1F,YAAY,EACR,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,GAC5B,CAAC;AAEF,qBACa,4BAA6B,YAAW,SAAS;gBAC9C,UAAU,EAAE,6BAA6B;IAIrD,OAAO,KAAK,SAAS,GAEpB;IAED,yFAAyF;IACzF,IAAW,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC,CAEvD;IAEM,UAAU,IAAI,IAAI;IAIlB,oBAAoB,IAAI,UAAU,CAAC,yBAAyB,CAAC;IAI7D,mBAAmB,IAAI,yBAAyB;IAIhD,uBAAuB,CAC1B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,uBAAuB,GAClC,IAAI;IAIA,yBAAyB,CAC5B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,CAAC,EAAE,uBAAuB,GACnC,IAAI;IAIA,0BAA0B,IAAI,MAAM;IAIpC,sBAAsB,IAAI,MAAM;IAIhC,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAIrF,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI;IAIzD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CACvD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CACvE;IAID;;;;;OAKG;IACI,WAAW,IAAI,IAAI;yCApEjB,4BAA4B;6CAA5B,4BAA4B;CAuExC"}