@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,491 @@
1
+ import { EventEmitter, OnDestroy, AfterViewInit } from '@angular/core';
2
+ import { UserInfo } from '@memberjunction/core';
3
+ import { VoiceConnectionState } from '../../services/realtime-session.service';
4
+ import { ParsedDelegationArtifact } from '../../services/delegation-result-parser';
5
+ import { RealtimeSessionReview } from '../../services/realtime-session-review.service';
6
+ import { RealtimeSessionState } from './realtime-session-state';
7
+ import { RealtimeDisclosureModel, RealtimeUxDensity } from './realtime-disclosure';
8
+ import { RealtimeChannelTabRegistration } from './realtime-surface-tabs.model';
9
+ import { WhiteboardState } from '@memberjunction/ng-whiteboard';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * A request to open an entity record, emitted by the call overlay's gear-gated developer
13
+ * links ("Open run" / "Open session"). The Generic host (chat area) converts it onto its
14
+ * existing `openEntityRecord` output chain — the package never navigates itself (no Router).
15
+ */
16
+ export interface RealtimeNavigateRequest {
17
+ /** Entity to open (e.g. `MJ: AI Agent Runs`, `MJ: AI Agent Sessions`). */
18
+ EntityName: string;
19
+ /** ID of the record to open. */
20
+ RecordID: string;
21
+ }
22
+ /**
23
+ * A request to RESUME a reviewed session as a NEW live call, emitted by review mode's
24
+ * "Start live session" button. The host (chat area) clears its review state and starts a
25
+ * voice session through the same path the composer's mic uses, passing
26
+ * {@link LastSessionId} so the server chains the new session to the reviewed one
27
+ * (restoring saved channel states such as the whiteboard via `PriorChannelStatesJson`).
28
+ */
29
+ export interface RealtimeStartLiveRequest {
30
+ /** Agent the resumed session should front (review Config `targetAgentID`, else the session's `AgentID`). */
31
+ TargetAgentId: string;
32
+ /** Conversation the reviewed session was bound to, when any. */
33
+ ConversationId: string | null;
34
+ /** The reviewed session's id — chained as the new session's `lastSessionId`. */
35
+ LastSessionId: string;
36
+ }
37
+ /**
38
+ * The "call mode" overlay for a live real-time voice session. Hosted by the
39
+ * conversation chat area (`<mj-conversation-chat-area>`) behind `Active$`, it fills the
40
+ * conversation panel IN PLACE (`position:absolute; inset:0` over the panel — not a
41
+ * fixed app-wide dialog), replacing the conversation view including the composer.
42
+ *
43
+ * Two-column layout:
44
+ * - MAIN column — {@link RealtimeAgentBannerComponent} (the unified APP-BAR: identity +
45
+ * turn-state + the disclosure-gated action cluster), the unified
46
+ * {@link RealtimeSessionThreadComponent} (or the level-0 pure-audio hero), the channel
47
+ * strip, and {@link RealtimeComposerComponent} (the bottom dock: phone-call strip ⇄
48
+ * fused minis+composer).
49
+ * - RIGHT PANEL — {@link RealtimeSurfaceTabsComponent}: the TABBED surface panel.
50
+ * Tab 1 "Activity" hosts the session activity rail; one tab opens per ARTIFACT a
51
+ * delegated run produces (auto-focused + flashed on arrival, viewed read-only via the
52
+ * standard artifact viewer); ONE TAB PER INTERACTIVE CHANNEL the session resolved from
53
+ * the `MJ: AI Agent Channels` registry. Collapsible to a slim strip at the panel level.
54
+ *
55
+ * INTERACTIVE CHANNELS ARE PLUGINS — this shell is channel-agnostic. It subscribes
56
+ * {@link RealtimeSessionService.ActiveChannels$} and registers one surface tab per
57
+ * {@link BaseRealtimeChannelClient} (key/title/icon from the plugin); the tab pane creates
58
+ * the plugin's surface component dynamically and the PLUGIN wires its own inputs/outputs.
59
+ * The only channel-generic affordance the shell owns is the FOCUS layout: any channel may
60
+ * request it (via its context's `SetFocusMode` → {@link RealtimeSessionService.ChannelFocus$}),
61
+ * which collapses the main call column (`.board-focus`) and shows the floating call pill.
62
+ *
63
+ * Owns the shared {@link RealtimeSessionState} — the SINGLE merge of the service's
64
+ * caption/delegation/narration streams — and passes it to both thread and rail via
65
+ * inputs, so neither duplicates subscription logic.
66
+ *
67
+ * DEVELOPER MODE: the controls row's gear toggles {@link DevMode} (per-session, off by
68
+ * default, never persisted), revealing "Open run" links on delegation cards / rail items
69
+ * and an "Open session" link in the banner. Clicking one emits {@link NavigateRequest}
70
+ * and MINIMIZES the call (via {@link RealtimeSessionService.SetMinimized}) — the session
71
+ * stays live while the host navigates to the record.
72
+ *
73
+ * SESSION REVIEW MODE: when the host supplies {@link ReviewData} (a loaded
74
+ * `RealtimeSessionReview`) and NO live session is active, the overlay renders what went
75
+ * down in that PAST session instead of a live call: the banner shows a "Session review"
76
+ * badge + lifecycle range + close-reason chip; the SAME thread/rail components render the
77
+ * historical caption turns and delegated-run cards (via
78
+ * {@link RealtimeSessionState.LoadHistoricalItems}); a read-only Whiteboard tab is
79
+ * registered ONLY when the session saved a parseable Whiteboard channel state. Everything
80
+ * live is DEAD in review — no mic, no captions stream, no composer, no channel strip; the
81
+ * controls collapse to a single "Start live session" button ({@link StartLiveRequested},
82
+ * which resumes by chaining `lastSessionId`) and a Close button ({@link ReviewClosed}).
83
+ */
84
+ export declare class RealtimeSessionOverlayComponent implements AfterViewInit, OnDestroy {
85
+ private _agentName;
86
+ /**
87
+ * True while the call is MINIMIZED: the overlay hides itself (CSS, not destruction) so
88
+ * the host can show its floating "on call" pill WITHOUT losing this shell's merged
89
+ * session state (delegation cards ride non-replaying streams) or view state (dev mode,
90
+ * expanded chips, scroll position). The host binds this from `Minimized$`.
91
+ */
92
+ Hidden: boolean;
93
+ /** Display name of the agent the voice session fronts (e.g. "Sage"). */
94
+ set AgentName(value: string);
95
+ get AgentName(): string;
96
+ /** The signed-in user, threaded to the surface panel's artifact viewer. */
97
+ CurrentUser: UserInfo | null;
98
+ /** The active environment id, threaded to the surface panel's artifact viewer. */
99
+ EnvironmentID: string;
100
+ /**
101
+ * SESSION REVIEW data: when set (and no live session is active) the overlay renders
102
+ * the reviewed past session instead of a live call. Setting it populates the shared
103
+ * {@link State} with the historical thread and prepares the read-only whiteboard tab;
104
+ * clearing it returns the state to its live-merge baseline.
105
+ */
106
+ set ReviewData(value: RealtimeSessionReview | null);
107
+ get ReviewData(): RealtimeSessionReview | null;
108
+ /** Emitted after the call ends so the host can react (visibility is driven by Active$). */
109
+ Ended: EventEmitter<void>;
110
+ /**
111
+ * Emitted when a gear-gated developer link asks to open an entity record. The host is
112
+ * expected to bubble this through its standard record-open path (the chat area re-emits
113
+ * it on `openEntityRecord`, which Explorer routes via `NavigationService`). The overlay
114
+ * minimizes itself first so the live call survives the navigation.
115
+ */
116
+ NavigateRequest: EventEmitter<RealtimeNavigateRequest>;
117
+ /**
118
+ * Review mode's "Start live session": the host clears its review state and resumes the
119
+ * reviewed session as a new live call (chaining `LastSessionId` to restore channel states).
120
+ */
121
+ StartLiveRequested: EventEmitter<RealtimeStartLiveRequest>;
122
+ /** Review mode's Close: the host clears its review state, returning to the conversation. */
123
+ ReviewClosed: EventEmitter<void>;
124
+ private voice;
125
+ private cdr;
126
+ private _reviewData;
127
+ /**
128
+ * Set by {@link OnStartLive} just before emitting {@link StartLiveRequested}, so the
129
+ * ReviewData→null transition that follows is recognized as a REVIEW→LIVE CONTINUATION
130
+ * (keep the historical thread + append the "Resumed live session" divider) rather than
131
+ * a plain review close (clear everything).
132
+ */
133
+ private pendingLiveContinuation;
134
+ /** The reviewed chain's history artifacts, registered as unfocused surface tabs. */
135
+ private reviewArtifacts;
136
+ /**
137
+ * True while the surface panel carries the REVIEW-registered (template-based, read-only)
138
+ * Whiteboard tab. Drives the review→live continuation edge: when the resumed live
139
+ * session's channel set resolves WITHOUT a Whiteboard channel, the stale review tab is
140
+ * removed (see {@link cleanupStaleReviewBoardTab}); when it resolves WITH one, the live
141
+ * plugin re-registers the same key and the tab upgrades in place.
142
+ */
143
+ private reviewWhiteboardTabRegistered;
144
+ /** True while the overlay renders a PAST session (review data set, no live call). */
145
+ get IsReviewing(): boolean;
146
+ /**
147
+ * The reviewed session's rehydrated whiteboard, when it saved a parseable Whiteboard
148
+ * channel state — rendered read-only by the review whiteboard tab. Null = no tab.
149
+ */
150
+ ReviewWhiteboard: WhiteboardState | null;
151
+ /** Shared session state — single source for the thread AND the activity rail. */
152
+ readonly State: RealtimeSessionState;
153
+ /**
154
+ * PROGRESSIVE DISCLOSURE: the levels/milestones model behind the pure-audio-first UX
155
+ * (see {@link RealtimeDisclosureModel}). Loaded from UserInfoEngine at construction;
156
+ * content events ({@link onSessionStateChanged}, {@link onChannelActivity}) raise the
157
+ * volatile session level; milestones ratchet + persist when the call ends. REVIEW mode
158
+ * bypasses disclosure entirely — a past session always renders the full console.
159
+ */
160
+ readonly Disclosure: RealtimeDisclosureModel;
161
+ /**
162
+ * The strip's Details peek: shows the surface panel ON DEMAND while it isn't earned yet
163
+ * (disclosure level < 2) — Activity and channel surfaces exist before their content
164
+ * does. Cleared automatically once content earns the panel for real.
165
+ */
166
+ DetailsPeek: boolean;
167
+ /**
168
+ * Whether the typed-input dock is open — a TWO-WAY user door (the strip's Type
169
+ * control / the T hotkey open it; the dock's hide control closes it), volatile and
170
+ * reset per session. Typing never becomes permanent chrome.
171
+ */
172
+ ComposerOpen: boolean;
173
+ /** Live turn-state from the session service — drives the banner + connecting screen. */
174
+ readonly ConnectionState$: import("rxjs").Observable<VoiceConnectionState>;
175
+ /** Server-reported realtime model name for the active session — shown subtly in the banner. */
176
+ readonly ModelName$: import("rxjs").Observable<string | null>;
177
+ /**
178
+ * Whether the conversation renders as TEXT (the thread) or stays voice-first (the
179
+ * orb hero). A PERSISTED per-user preference (`mj.realtimeVoice.captions.v1`) —
180
+ * default OFF: voice-first, the orb owns the screen until the user opts into text.
181
+ */
182
+ ShowCaptions: boolean;
183
+ /** UserInfoEngine key for the persisted captions (text-vs-orb) preference. */
184
+ private static readonly CaptionsPrefKey;
185
+ /**
186
+ * Whether developer affordances (open-record links) are revealed. Per-session view
187
+ * state on this shell — off by default, reset with the overlay, never persisted.
188
+ */
189
+ DevMode: boolean;
190
+ /** ID of the live server-side agent session record, for the banner's dev link. */
191
+ get SessionID(): string | null;
192
+ /**
193
+ * The tabbed surface panel (right panel) — channel registrations are forwarded to it.
194
+ * A SETTER because the panel is disclosure-gated (`@if`): it can be created LATE (the
195
+ * first delegation / channel activity reveals it mid-call), at which point any queued
196
+ * channel registrations and a pending auto-reveal must flush to the fresh instance.
197
+ */
198
+ private surfaceTabs?;
199
+ private set surfaceTabsRef(value);
200
+ /** The bottom dock — the T-to-type hotkey focuses its input. */
201
+ private composer?;
202
+ /** Channel keys already auto-revealed this session (first activity only). */
203
+ private revealedChannelKeys;
204
+ /** Auto-reveal that arrived before the (disclosure-gated) panel rendered. */
205
+ private pendingRevealKey;
206
+ /** Previous Active$ value — edges drive disclosure session begin/ratchet. */
207
+ private prevActive;
208
+ /** Template hosting the read-only review whiteboard (root-level, so always resolvable). */
209
+ private reviewBoardTpl?;
210
+ /** Channel registrations received before the surface panel rendered (flushed in ngAfterViewInit). */
211
+ private pendingChannelTabs;
212
+ /** True once the view (and the review-board template ref) exists. */
213
+ private viewReady;
214
+ /**
215
+ * True while a channel surface is in FOCUS mode: the main call column collapses
216
+ * (`.board-focus` on the overlay) and a compact floating call pill (orb + state +
217
+ * mute / show-thread / end) rides over the surface.
218
+ */
219
+ ChannelFocusMode: boolean;
220
+ /** Mic-muted state reflected on the focus pill's mute button. */
221
+ FocusPillMuted: boolean;
222
+ /** The channel currently holding the focus layout (the pill's exit routes back to it). */
223
+ private focusChannel;
224
+ private subs;
225
+ constructor();
226
+ ngAfterViewInit(): void;
227
+ /** Whether the surface panel is collapsed to its slim strip (reported by the panel). */
228
+ PanelCollapsed: boolean;
229
+ /** Wide tier active (a content tab is focused) — drives the DEFAULT width only. */
230
+ PanelWide: boolean;
231
+ /** The user's explicit dragged width (persisted); null = follow the default tiers. */
232
+ private userPanelWidth;
233
+ /** Current expanded panel width in px (rendered as the panel's inline width). */
234
+ PanelWidthPx: number;
235
+ /** True while the resize handle is mid-drag (brand-tints the handle). */
236
+ IsPanelResizing: boolean;
237
+ private panelResizeStartX;
238
+ private panelResizeStartWidth;
239
+ private boundPanelResizeMove;
240
+ private boundPanelResizeEnd;
241
+ private hostRef;
242
+ private ngZone;
243
+ /** The panel's rendered width: slim strip when collapsed, otherwise the current width. */
244
+ get PanelAreaSize(): number;
245
+ /** Resizing is meaningless while collapsed or when the surface fills (focus mode). */
246
+ get PanelResizeDisabled(): boolean;
247
+ OnPanelCollapsedChange(collapsed: boolean): void;
248
+ /** Wide-tier flips only move the DEFAULT width — an explicit user width always wins. */
249
+ OnPanelWideChanged(wide: boolean): void;
250
+ /** Mousedown on the resize handle: capture the start state and track the pointer document-wide. */
251
+ OnPanelResizeStart(event: MouseEvent): void;
252
+ /** Live drag: panel width follows the pointer delta, clamped to [min, 70% of the overlay]. */
253
+ private onPanelResizeMove;
254
+ /**
255
+ * Release: a genuine DRAG adopts the width as the user's explicit preference and
256
+ * persists it (debounced); a bare CLICK (movement under the tolerance) restores the
257
+ * start width and persists nothing — the handle never snaps on a click.
258
+ */
259
+ private onPanelResizeEnd;
260
+ /** Double-click the handle: back to the default tier width; persist the reset. */
261
+ OnPanelResizeReset(): void;
262
+ /** Removes the document-wide drag listeners and restores the body cursor/selection. */
263
+ private teardownPanelResize;
264
+ /**
265
+ * The overlay's measurable width for clamping. The component host is
266
+ * `display: contents` (zero rect) — measure the rendered `.call-overlay` div instead.
267
+ */
268
+ private hostWidth;
269
+ /** Reads the persisted width once per overlay instance (no-op when the engine isn't configured). */
270
+ private loadPanelWidthPref;
271
+ /** Persists the width preference server-side (debounced); reset serializes {"width":null}. */
272
+ private persistPanelWidth;
273
+ /**
274
+ * True while the PURE-AUDIO hero (the orb) owns the main column. The captions
275
+ * preference IS the text-vs-orb switch: captions off (the voice-first default) shows
276
+ * the breathing orb at ANY disclosure level; captions on shows the thread. Review
277
+ * always shows the thread.
278
+ */
279
+ get ShowHero(): boolean;
280
+ /**
281
+ * Whether the surface-panel area renders. The tabs have their OWN control (the
282
+ * Details toggle, plus the board auto-reveal and artifact-view requests) — they are
283
+ * deliberately DECOUPLED from typing/disclosure levels: revealing the composer must
284
+ * never surprise the user with the whole tab panel.
285
+ */
286
+ get ShowPanelArea(): boolean;
287
+ /** The Details (tabs) toggle is always offered while live — it's the panel's one door. */
288
+ get ShowDetailsControl(): boolean;
289
+ /** Reads the persisted disclosure milestones (tolerant; defaults to day one). */
290
+ private loadDisclosurePref;
291
+ /** Reads the persisted text-vs-orb preference (tolerant; default = voice-first OFF). */
292
+ private loadCaptionsPref;
293
+ /** Persists the text-vs-orb preference (debounced, best-effort). */
294
+ private persistCaptionsPref;
295
+ /** Persists the disclosure milestones server-side (debounced, best-effort). */
296
+ private persistDisclosure;
297
+ /**
298
+ * Merged-state change: re-render only. DELIBERATELY no disclosure raise — per product
299
+ * direction, content never flips the console open: a running delegation is narrated
300
+ * aloud, a finished artifact lands as a GLOWING (unfocused) tab, and the ONLY thing
301
+ * that auto-reveals is a channel's first agent activity (the whiteboard demands eyes).
302
+ * A pure-audio user stays in pure audio until THEY ask for more.
303
+ */
304
+ private onSessionStateChanged;
305
+ /**
306
+ * The agent ACTED on a channel (a tool call routed to its local executor — e.g. the
307
+ * first whiteboard write). THE ONE AUTO-REVEAL: the surface panel opens (as a peek —
308
+ * the left column stays exactly as it was, pure audio included) with the channel's tab
309
+ * focused and flashed, exactly once per channel — so the user discovers the board the
310
+ * moment it comes alive. Disclosure levels are NOT raised: no text, no composer, no
311
+ * extra chrome — just the board.
312
+ */
313
+ private onChannelActivity;
314
+ /** Active$ edges: session start resets the volatile level; session end ratchets + persists. */
315
+ private onActiveChanged;
316
+ /** Per-frame smoothing state (attack/decay envelopes + direction hysteresis). */
317
+ private readonly audioSmoother;
318
+ private audioRafHandle;
319
+ /** Last attribute values written (attributes are only touched on change). */
320
+ private lastAudioLive;
321
+ private lastVoiceDirection;
322
+ /** Starts the sampling loop (idempotent). Runs outside Angular — no CD per frame. */
323
+ private startAudioVisualLoop;
324
+ /** Stops the loop and returns the overlay to turn-state-driven animation. */
325
+ private stopAudioVisualLoop;
326
+ /** The rendered `.call-overlay` element (the :host is display:contents). */
327
+ private overlayElement;
328
+ /** Writes one smoothed frame as CSS vars/attributes (attributes only on change). */
329
+ private applyAudioVisualFrame;
330
+ /** The strip's Details control: peek at (or hide) the surface panel on demand. */
331
+ OnDetailsToggled(): void;
332
+ /** The gear popover picked an interface density — apply + persist immediately. */
333
+ OnDensityChanged(density: RealtimeUxDensity): void;
334
+ /** The hero's "Show the conversation" affordance — turns the text preference on. */
335
+ OnTextReveal(): void;
336
+ /**
337
+ * The app-bar's "Pure audio": returns to the orb-only surface AND makes it stick —
338
+ * it sets the persisted interface density to `simple` (the same setting the gear
339
+ * writes), so a refresh / next call still opens pure audio. In-session reveals
340
+ * ("Show the conversation", T-to-type, Details) remain available and stay ephemeral;
341
+ * the gear's density control switches back to Standard/Pro/Auto whenever wanted.
342
+ */
343
+ OnPureAudio(): void;
344
+ /** App-bar Minimize: hide the call view (CSS) — the call stays fully live. */
345
+ OnMinimize(): void;
346
+ /** App-bar / strip End: tear the session down, then notify the host. */
347
+ OnEndCall(): Promise<void>;
348
+ /** Maps the realtime state onto the hero orb's `data-state` (active turn-states only). */
349
+ HeroOrbState(state: VoiceConnectionState): 'speaking' | 'listening' | 'thinking';
350
+ /** Short first-person status line for the pure-audio hero. */
351
+ HeroStateLabel(state: VoiceConnectionState): string;
352
+ /**
353
+ * T-TO-TYPE: pressing T during a live call reveals the composer (raising disclosure to
354
+ * the engaged level when needed) and focuses its input — typing always exists, it just
355
+ * whispers until used. Ignored while review/minimized, with modifiers, or when an
356
+ * editable element already has focus.
357
+ */
358
+ OnDocumentKeydown(event: KeyboardEvent): void;
359
+ /**
360
+ * True when the event target is a native text-editing element (an input, textarea, or contentEditable),
361
+ * where a bare letter should type — not trigger the T-to-type shortcut.
362
+ *
363
+ * @param eventTarget The keydown event's target.
364
+ * @returns Whether the target is an editable element.
365
+ */
366
+ private isEditableTarget;
367
+ /**
368
+ * True when a surface that opts into capturing keyboard input currently holds focus — notably the Remote
369
+ * Browser live canvas, which marks itself with `data-mj-capture-keys` while the user is driving it. When it
370
+ * has focus, the overlay's global shortcuts (T-to-type) must stand down so the user's keystrokes land in the
371
+ * remote browser, not the local composer. Decoupled by an attribute contract so the overlay needs no direct
372
+ * reference to the surface component.
373
+ *
374
+ * @returns Whether a keyboard-capturing surface is focused.
375
+ */
376
+ private isKeyboardCapturingSurfaceFocused;
377
+ /**
378
+ * The composer dock opened (strip Type control / T hotkey) or closed (the dock's hide
379
+ * control). Opening raises the 'engaged' milestone for the cross-session ratchet —
380
+ * but the dock itself stays a per-session, user-owned toggle either way.
381
+ */
382
+ OnComposerOpenChanged(open: boolean): void;
383
+ ngOnDestroy(): void;
384
+ /**
385
+ * Registers (or updates) an INTERACTIVE-CHANNEL tab on the surface panel. The overlay
386
+ * calls it for every registry-resolved plugin; hosts may also call it for bespoke
387
+ * template-based panes. Until a registration supplies a plugin / template, the tab
388
+ * renders the "coming online…" placeholder (re-register the same `Key` to upgrade).
389
+ * Safe to call before the panel has rendered — registrations are queued and flushed.
390
+ */
391
+ RegisterChannelTab(registration: RealtimeChannelTabRegistration): void;
392
+ /**
393
+ * A done delegation card / rail entry asked to view a produced artifact's tab — an
394
+ * EXPLICIT user request, so it may open the (otherwise Details-controlled) panel.
395
+ */
396
+ OnOpenArtifactRequested(artifact: ParsedDelegationArtifact): void;
397
+ /**
398
+ * Registers one surface tab per active channel plugin THAT HAS A SURFACE (key/title/icon from the
399
+ * plugin). Server-only channels ({@link BaseRealtimeChannelClient.HasSurface} === `false`) render no
400
+ * tab — their tools + perception are already wired by the session service; there is simply nothing
401
+ * to show in the surface panel.
402
+ */
403
+ private registerChannelTabs;
404
+ /**
405
+ * REVIEW→LIVE continuation edge: when the resumed live session resolves its channel set
406
+ * WITHOUT a Whiteboard channel, the review-registered read-only board tab is now a dead
407
+ * surface — remove it (Activity regains focus if it was active). When the set HAS a
408
+ * Whiteboard channel, the plugin registration above upgrades the same tab key in place,
409
+ * so the review flag is simply released. Review ARTIFACT tabs are deliberately kept —
410
+ * they are wanted carryover into the live session.
411
+ */
412
+ private cleanupStaleReviewBoardTab;
413
+ /** Forwards channel registrations that arrived before the panel existed. */
414
+ private flushPendingChannelTabs;
415
+ /**
416
+ * The captions toggle = the persisted text-vs-orb switch: on → the thread renders
417
+ * (raising the text disclosure milestone); off → the orb hero owns the screen again,
418
+ * at any level. Persisted per-user so the choice survives refresh and devices.
419
+ */
420
+ OnCaptionsToggled(on: boolean): void;
421
+ /** Reflect the gear toggle from the controls into the dev affordances. */
422
+ OnDevModeToggled(on: boolean): void;
423
+ /** A dev link asked to open a delegated agent run record. */
424
+ OnOpenRunRequested(runId: string): void;
425
+ /** The banner's dev link asked to open the live agent session record. */
426
+ OnOpenSessionRequested(sessionId: string): void;
427
+ /** Review banner convenience accessors (null-safe against the review data). */
428
+ get ReviewStartedAt(): Date | null;
429
+ get ReviewClosedAt(): Date | null;
430
+ get ReviewCloseReason(): string | null;
431
+ /** The reviewed session record's id — feeds the banner's dev "Open session" link. */
432
+ get ReviewSessionID(): string | null;
433
+ /**
434
+ * Review controls: resume the reviewed session as a NEW live call (host handles the
435
+ * start). Flags the upcoming ReviewData→null transition as a CONTINUATION so the
436
+ * historical thread is kept (divider appended) instead of cleared.
437
+ */
438
+ OnStartLive(): void;
439
+ /** Review controls: close the review (host clears its review state). */
440
+ OnReviewClose(): void;
441
+ /**
442
+ * Enters review: replaces the shared state's thread with the historical items (all
443
+ * chain legs, dividers between legs), names the cards after the reviewed agent,
444
+ * rehydrates the saved whiteboard (when any), and registers the chain's history
445
+ * ARTIFACTS as unfocused surface tabs.
446
+ */
447
+ private enterReview;
448
+ /**
449
+ * Leaves review. Two distinct exits:
450
+ * - REVIEW→LIVE CONTINUATION ({@link OnStartLive} was clicked): KEEP the historical
451
+ * thread and append the "Resumed live session" divider so the new live items read
452
+ * as a new section of the same conversation. Artifact tabs are left in place — the
453
+ * chain's artifacts carry into the live session.
454
+ * - plain CLOSE: clear everything so the conversation view returns clean.
455
+ */
456
+ private exitReview;
457
+ /** Registers the reviewed chain's history artifacts as UNFOCUSED artifact tabs (idempotent). */
458
+ private registerReviewArtifactTabs;
459
+ /**
460
+ * Rehydrates the reviewed session's saved Whiteboard channel state. TOLERANT: a missing
461
+ * or malformed state returns null — review simply shows no whiteboard tab.
462
+ */
463
+ private parseReviewWhiteboard;
464
+ /**
465
+ * Registers the read-only review whiteboard tab (no-op without a board / template) —
466
+ * FOCUSED: the session's channel surface is what the reviewer came to see; the
467
+ * Activity rail stays available but is never the default focus.
468
+ */
469
+ private registerReviewBoardTab;
470
+ /**
471
+ * A working delegation card's ✕ asked to cancel that delegated run — EXPLICIT user
472
+ * intent (barge-in never cancels work, by deliberate policy). The service calls the
473
+ * server cancel channel and flips the card to a failed "Cancelled by user" result.
474
+ */
475
+ OnCancelDelegation(callId: string): void;
476
+ /** Minimizes the live call (it stays running) and asks the host to open the record. */
477
+ private requestNavigate;
478
+ /** A channel requested (or released) the focus layout via its host context. */
479
+ private onChannelFocus;
480
+ /** Focus pill: toggle the mic mute. */
481
+ OnFocusPillMute(): void;
482
+ /** Focus pill: leave focus mode (show the thread column again). */
483
+ OnFocusPillExit(): void;
484
+ /** Focus pill: end the call (mirrors the controls row's End button). */
485
+ OnFocusPillEnd(): Promise<void>;
486
+ /** Short status line for the focus pill (first person — the co-agent owns the work). */
487
+ FocusStateLabel(state: VoiceConnectionState): string;
488
+ static ɵfac: i0.ɵɵFactoryDeclaration<RealtimeSessionOverlayComponent, never>;
489
+ static ɵcmp: i0.ɵɵComponentDeclaration<RealtimeSessionOverlayComponent, "mj-realtime-session-overlay", never, { "Hidden": { "alias": "Hidden"; "required": false; }; "AgentName": { "alias": "AgentName"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "EnvironmentID": { "alias": "EnvironmentID"; "required": false; }; "ReviewData": { "alias": "ReviewData"; "required": false; }; }, { "Ended": "Ended"; "NavigateRequest": "NavigateRequest"; "StartLiveRequested": "StartLiveRequested"; "ReviewClosed": "ReviewClosed"; }, never, never, true, never>;
490
+ }
491
+ //# sourceMappingURL=realtime-session-overlay.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-session-overlay.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-session-overlay.component.ts"],"names":[],"mappings":"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"}