@memberjunction/ng-conversations 5.43.0 → 5.44.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 (351) hide show
  1. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +0 -1
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +56 -52
  4. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  5. package/dist/lib/components/artifact/artifact-share-modal.component.js +37 -41
  6. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  7. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  8. package/dist/lib/components/collection/collection-form-modal.component.js +10 -14
  9. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  10. package/dist/lib/components/collection/collection-share-modal.component.js +41 -45
  11. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  12. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  13. package/dist/lib/components/collection/collection-view.component.js +22 -36
  14. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  15. package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -0
  16. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  17. package/dist/lib/components/collection/collections-full-view.component.js +134 -166
  18. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  19. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +73 -8
  20. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  21. package/dist/lib/components/conversation/conversation-chat-area.component.js +487 -123
  22. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  23. package/dist/lib/components/conversation/pinned-messages-panel.component.js +6 -9
  24. package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
  25. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  26. package/dist/lib/components/library/library-full-view.component.js +20 -24
  27. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  28. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  29. package/dist/lib/components/members/members-modal.component.js +10 -11
  30. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  31. package/dist/lib/components/mention/mention-dropdown.component.js +49 -28
  32. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  33. package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
  34. package/dist/lib/components/mention/mention-editor.component.js +24 -10
  35. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  36. package/dist/lib/components/message/message-input-box.component.d.ts +11 -16
  37. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  38. package/dist/lib/components/message/message-input-box.component.js +52 -46
  39. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  40. package/dist/lib/components/message/message-input.component.d.ts +83 -18
  41. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  42. package/dist/lib/components/message/message-input.component.js +238 -151
  43. package/dist/lib/components/message/message-input.component.js.map +1 -1
  44. package/dist/lib/components/message/message-item.component.d.ts +10 -1
  45. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  46. package/dist/lib/components/message/message-item.component.js +67 -15
  47. package/dist/lib/components/message/message-item.component.js.map +1 -1
  48. package/dist/lib/components/message/message-list.component.js +6 -9
  49. package/dist/lib/components/message/message-list.component.js.map +1 -1
  50. package/dist/lib/components/overlay/chat-overlay.component.d.ts +3 -0
  51. package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
  52. package/dist/lib/components/overlay/chat-overlay.component.js +9 -4
  53. package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
  54. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +45 -0
  55. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -1
  56. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +10 -0
  57. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -1
  58. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +46 -0
  59. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -0
  60. package/dist/lib/components/realtime/channels/client-context-channel.js +174 -0
  61. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -0
  62. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts +123 -0
  63. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts.map +1 -0
  64. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js +397 -0
  65. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js.map +1 -0
  66. package/dist/lib/components/realtime/media/media-channel-state.d.ts +103 -0
  67. package/dist/lib/components/realtime/media/media-channel-state.d.ts.map +1 -0
  68. package/dist/lib/components/realtime/media/media-channel-state.js +143 -0
  69. package/dist/lib/components/realtime/media/media-channel-state.js.map +1 -0
  70. package/dist/lib/components/realtime/media/media-channel-tools.d.ts +24 -0
  71. package/dist/lib/components/realtime/media/media-channel-tools.d.ts.map +1 -0
  72. package/dist/lib/components/realtime/media/media-channel-tools.js +107 -0
  73. package/dist/lib/components/realtime/media/media-channel-tools.js.map +1 -0
  74. package/dist/lib/components/realtime/media/media-channel.d.ts +89 -0
  75. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -0
  76. package/dist/lib/components/realtime/media/media-channel.js +253 -0
  77. package/dist/lib/components/realtime/media/media-channel.js.map +1 -0
  78. package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts +141 -0
  79. package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts.map +1 -0
  80. package/dist/lib/components/realtime/media/realtime-media-surface.component.js +574 -0
  81. package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -0
  82. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +59 -14
  83. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
  84. package/dist/lib/components/realtime/realtime-activity-rail.component.js +277 -74
  85. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  86. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +28 -27
  87. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  88. package/dist/lib/components/realtime/realtime-agent-banner.component.js +144 -143
  89. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  90. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +12 -0
  91. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
  92. package/dist/lib/components/realtime/realtime-agent-picker.component.js +105 -43
  93. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
  94. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +2 -2
  95. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
  96. package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
  97. package/dist/lib/components/realtime/realtime-composer.component.d.ts +41 -7
  98. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  99. package/dist/lib/components/realtime/realtime-composer.component.js +216 -102
  100. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  101. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +0 -2
  102. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
  103. package/dist/lib/components/realtime/realtime-delegation-card.component.js +67 -71
  104. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  105. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +364 -44
  106. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  107. package/dist/lib/components/realtime/realtime-session-overlay.component.js +839 -153
  108. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  109. package/dist/lib/components/realtime/realtime-session-state.d.ts +5 -5
  110. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
  111. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
  112. package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts +70 -0
  113. package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts.map +1 -0
  114. package/dist/lib/components/realtime/realtime-surface-tab-style.js +115 -0
  115. package/dist/lib/components/realtime/realtime-surface-tab-style.js.map +1 -0
  116. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +55 -57
  117. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  118. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +165 -143
  119. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  120. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +80 -71
  121. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  122. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +83 -113
  123. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  124. package/dist/lib/components/realtime/realtime-ui-config.d.ts +270 -0
  125. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -0
  126. package/dist/lib/components/realtime/realtime-ui-config.js +212 -0
  127. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -0
  128. package/dist/lib/components/search/search-panel.component.d.ts +2 -0
  129. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  130. package/dist/lib/components/search/search-panel.component.js +92 -101
  131. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  132. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  133. package/dist/lib/components/share/share-modal.component.js +10 -11
  134. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  135. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  136. package/dist/lib/components/shared/user-picker.component.js +12 -15
  137. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  138. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -0
  139. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  140. package/dist/lib/components/workspace/conversation-workspace.component.js +18 -7
  141. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  142. package/dist/lib/conversations.module.d.ts +29 -26
  143. package/dist/lib/conversations.module.d.ts.map +1 -1
  144. package/dist/lib/conversations.module.js +37 -6
  145. package/dist/lib/conversations.module.js.map +1 -1
  146. package/dist/lib/models/conversation-state.model.d.ts +6 -3
  147. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  148. package/dist/lib/models/conversation-state.model.js.map +1 -1
  149. package/dist/lib/services/conversation-agent.service.d.ts +2 -2
  150. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  151. package/dist/lib/services/conversation-agent.service.js +6 -2
  152. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  153. package/dist/lib/services/mention-autocomplete.service.d.ts +17 -1
  154. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  155. package/dist/lib/services/mention-autocomplete.service.js +58 -2
  156. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  157. package/dist/lib/services/realtime-audio-recorder.d.ts +143 -0
  158. package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -0
  159. package/dist/lib/services/realtime-audio-recorder.js +379 -0
  160. package/dist/lib/services/realtime-audio-recorder.js.map +1 -0
  161. package/dist/lib/services/realtime-pcm-wav.d.ts +75 -0
  162. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -0
  163. package/dist/lib/services/realtime-pcm-wav.js +205 -0
  164. package/dist/lib/services/realtime-pcm-wav.js.map +1 -0
  165. package/dist/lib/services/realtime-session-review.service.d.ts +28 -1
  166. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  167. package/dist/lib/services/realtime-session-review.service.js +12 -3
  168. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  169. package/dist/lib/services/realtime-session.service.d.ts +210 -20
  170. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  171. package/dist/lib/services/realtime-session.service.js +452 -21
  172. package/dist/lib/services/realtime-session.service.js.map +1 -1
  173. package/dist/lib/services/realtime-sessions-adapter.js +1 -1
  174. package/dist/lib/services/realtime-sessions-adapter.js.map +1 -1
  175. package/dist/lib/services/ui-command-handler.service.d.ts +7 -2
  176. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  177. package/dist/lib/services/ui-command-handler.service.js +6 -2
  178. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  179. package/dist/lib/utils/plan-mode-preference.d.ts +62 -0
  180. package/dist/lib/utils/plan-mode-preference.d.ts.map +1 -0
  181. package/dist/lib/utils/plan-mode-preference.js +130 -0
  182. package/dist/lib/utils/plan-mode-preference.js.map +1 -0
  183. package/dist/public-api.d.ts +6 -0
  184. package/dist/public-api.d.ts.map +1 -1
  185. package/dist/public-api.js +8 -0
  186. package/dist/public-api.js.map +1 -1
  187. package/package.json +28 -26
  188. package/dist/__tests__/attachment-badge.test.d.ts +0 -2
  189. package/dist/__tests__/attachment-badge.test.d.ts.map +0 -1
  190. package/dist/__tests__/attachment-badge.test.js +0 -66
  191. package/dist/__tests__/attachment-badge.test.js.map +0 -1
  192. package/dist/__tests__/channel-optional-surface.test.d.ts +0 -2
  193. package/dist/__tests__/channel-optional-surface.test.d.ts.map +0 -1
  194. package/dist/__tests__/channel-optional-surface.test.js +0 -53
  195. package/dist/__tests__/channel-optional-surface.test.js.map +0 -1
  196. package/dist/__tests__/chat-events.test.d.ts +0 -14
  197. package/dist/__tests__/chat-events.test.d.ts.map +0 -1
  198. package/dist/__tests__/chat-events.test.js +0 -109
  199. package/dist/__tests__/chat-events.test.js.map +0 -1
  200. package/dist/__tests__/collections-full-view.test.d.ts +0 -2
  201. package/dist/__tests__/collections-full-view.test.d.ts.map +0 -1
  202. package/dist/__tests__/collections-full-view.test.js +0 -225
  203. package/dist/__tests__/collections-full-view.test.js.map +0 -1
  204. package/dist/__tests__/conversation-cache.test.d.ts +0 -2
  205. package/dist/__tests__/conversation-cache.test.d.ts.map +0 -1
  206. package/dist/__tests__/conversation-cache.test.js +0 -233
  207. package/dist/__tests__/conversation-cache.test.js.map +0 -1
  208. package/dist/__tests__/conversation-naming.test.d.ts +0 -2
  209. package/dist/__tests__/conversation-naming.test.d.ts.map +0 -1
  210. package/dist/__tests__/conversation-naming.test.js +0 -110
  211. package/dist/__tests__/conversation-naming.test.js.map +0 -1
  212. package/dist/__tests__/delegation-result-parser.test.d.ts +0 -2
  213. package/dist/__tests__/delegation-result-parser.test.d.ts.map +0 -1
  214. package/dist/__tests__/delegation-result-parser.test.js +0 -107
  215. package/dist/__tests__/delegation-result-parser.test.js.map +0 -1
  216. package/dist/__tests__/distinct-artifacts.test.d.ts +0 -2
  217. package/dist/__tests__/distinct-artifacts.test.d.ts.map +0 -1
  218. package/dist/__tests__/distinct-artifacts.test.js +0 -56
  219. package/dist/__tests__/distinct-artifacts.test.js.map +0 -1
  220. package/dist/__tests__/event-wiring.test.d.ts +0 -15
  221. package/dist/__tests__/event-wiring.test.d.ts.map +0 -1
  222. package/dist/__tests__/event-wiring.test.js +0 -100
  223. package/dist/__tests__/event-wiring.test.js.map +0 -1
  224. package/dist/__tests__/index.test.d.ts +0 -2
  225. package/dist/__tests__/index.test.d.ts.map +0 -1
  226. package/dist/__tests__/index.test.js +0 -7
  227. package/dist/__tests__/index.test.js.map +0 -1
  228. package/dist/__tests__/narration-template.test.d.ts +0 -2
  229. package/dist/__tests__/narration-template.test.d.ts.map +0 -1
  230. package/dist/__tests__/narration-template.test.js +0 -76
  231. package/dist/__tests__/narration-template.test.js.map +0 -1
  232. package/dist/__tests__/notification-model.test.d.ts +0 -2
  233. package/dist/__tests__/notification-model.test.d.ts.map +0 -1
  234. package/dist/__tests__/notification-model.test.js +0 -68
  235. package/dist/__tests__/notification-model.test.js.map +0 -1
  236. package/dist/__tests__/realtime-agent-picker-models.test.d.ts +0 -2
  237. package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +0 -1
  238. package/dist/__tests__/realtime-agent-picker-models.test.js +0 -49
  239. package/dist/__tests__/realtime-agent-picker-models.test.js.map +0 -1
  240. package/dist/__tests__/realtime-audio-visuals.test.d.ts +0 -2
  241. package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +0 -1
  242. package/dist/__tests__/realtime-audio-visuals.test.js +0 -123
  243. package/dist/__tests__/realtime-audio-visuals.test.js.map +0 -1
  244. package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +0 -2
  245. package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +0 -1
  246. package/dist/__tests__/realtime-delegation-card-cancel.test.js +0 -48
  247. package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +0 -1
  248. package/dist/__tests__/realtime-disclosure.test.d.ts +0 -2
  249. package/dist/__tests__/realtime-disclosure.test.d.ts.map +0 -1
  250. package/dist/__tests__/realtime-disclosure.test.js +0 -164
  251. package/dist/__tests__/realtime-disclosure.test.js.map +0 -1
  252. package/dist/__tests__/realtime-pairing.test.d.ts +0 -2
  253. package/dist/__tests__/realtime-pairing.test.d.ts.map +0 -1
  254. package/dist/__tests__/realtime-pairing.test.js +0 -207
  255. package/dist/__tests__/realtime-pairing.test.js.map +0 -1
  256. package/dist/__tests__/realtime-review-lifecycle.test.d.ts +0 -2
  257. package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +0 -1
  258. package/dist/__tests__/realtime-review-lifecycle.test.js +0 -154
  259. package/dist/__tests__/realtime-review-lifecycle.test.js.map +0 -1
  260. package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +0 -2
  261. package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +0 -1
  262. package/dist/__tests__/realtime-session-cancel-usage.test.js +0 -230
  263. package/dist/__tests__/realtime-session-cancel-usage.test.js.map +0 -1
  264. package/dist/__tests__/realtime-session-channels.test.d.ts +0 -2
  265. package/dist/__tests__/realtime-session-channels.test.d.ts.map +0 -1
  266. package/dist/__tests__/realtime-session-channels.test.js +0 -252
  267. package/dist/__tests__/realtime-session-channels.test.js.map +0 -1
  268. package/dist/__tests__/realtime-session-client-tools.test.d.ts +0 -2
  269. package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +0 -1
  270. package/dist/__tests__/realtime-session-client-tools.test.js +0 -103
  271. package/dist/__tests__/realtime-session-client-tools.test.js.map +0 -1
  272. package/dist/__tests__/realtime-session-minimized.test.d.ts +0 -2
  273. package/dist/__tests__/realtime-session-minimized.test.d.ts.map +0 -1
  274. package/dist/__tests__/realtime-session-minimized.test.js +0 -32
  275. package/dist/__tests__/realtime-session-minimized.test.js.map +0 -1
  276. package/dist/__tests__/realtime-session-mint.test.d.ts +0 -2
  277. package/dist/__tests__/realtime-session-mint.test.d.ts.map +0 -1
  278. package/dist/__tests__/realtime-session-mint.test.js +0 -69
  279. package/dist/__tests__/realtime-session-mint.test.js.map +0 -1
  280. package/dist/__tests__/realtime-session-policy.test.d.ts +0 -2
  281. package/dist/__tests__/realtime-session-policy.test.d.ts.map +0 -1
  282. package/dist/__tests__/realtime-session-policy.test.js +0 -303
  283. package/dist/__tests__/realtime-session-policy.test.js.map +0 -1
  284. package/dist/__tests__/realtime-session-review.service.test.d.ts +0 -2
  285. package/dist/__tests__/realtime-session-review.service.test.d.ts.map +0 -1
  286. package/dist/__tests__/realtime-session-review.service.test.js +0 -743
  287. package/dist/__tests__/realtime-session-review.service.test.js.map +0 -1
  288. package/dist/__tests__/realtime-session-state.test.d.ts +0 -2
  289. package/dist/__tests__/realtime-session-state.test.d.ts.map +0 -1
  290. package/dist/__tests__/realtime-session-state.test.js +0 -83
  291. package/dist/__tests__/realtime-session-state.test.js.map +0 -1
  292. package/dist/__tests__/realtime-session-timeline-card.test.d.ts +0 -2
  293. package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +0 -1
  294. package/dist/__tests__/realtime-session-timeline-card.test.js +0 -106
  295. package/dist/__tests__/realtime-session-timeline-card.test.js.map +0 -1
  296. package/dist/__tests__/realtime-session-timeline.test.d.ts +0 -2
  297. package/dist/__tests__/realtime-session-timeline.test.d.ts.map +0 -1
  298. package/dist/__tests__/realtime-session-timeline.test.js +0 -142
  299. package/dist/__tests__/realtime-session-timeline.test.js.map +0 -1
  300. package/dist/__tests__/realtime-sessions-adapter.test.d.ts +0 -19
  301. package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +0 -1
  302. package/dist/__tests__/realtime-sessions-adapter.test.js +0 -188
  303. package/dist/__tests__/realtime-sessions-adapter.test.js.map +0 -1
  304. package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +0 -2
  305. package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +0 -1
  306. package/dist/__tests__/realtime-surface-panel-prefs.test.js +0 -100
  307. package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +0 -1
  308. package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +0 -2
  309. package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +0 -1
  310. package/dist/__tests__/realtime-surface-tabs-model.test.js +0 -193
  311. package/dist/__tests__/realtime-surface-tabs-model.test.js.map +0 -1
  312. package/dist/__tests__/remote-browser-audio-player.test.d.ts +0 -2
  313. package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +0 -1
  314. package/dist/__tests__/remote-browser-audio-player.test.js +0 -137
  315. package/dist/__tests__/remote-browser-audio-player.test.js.map +0 -1
  316. package/dist/__tests__/remote-browser-channel.test.d.ts +0 -2
  317. package/dist/__tests__/remote-browser-channel.test.d.ts.map +0 -1
  318. package/dist/__tests__/remote-browser-channel.test.js +0 -585
  319. package/dist/__tests__/remote-browser-channel.test.js.map +0 -1
  320. package/dist/__tests__/search-service.test.d.ts +0 -2
  321. package/dist/__tests__/search-service.test.d.ts.map +0 -1
  322. package/dist/__tests__/search-service.test.js +0 -114
  323. package/dist/__tests__/search-service.test.js.map +0 -1
  324. package/dist/__tests__/slot-defaults.test.d.ts +0 -24
  325. package/dist/__tests__/slot-defaults.test.d.ts.map +0 -1
  326. package/dist/__tests__/slot-defaults.test.js +0 -63
  327. package/dist/__tests__/slot-defaults.test.js.map +0 -1
  328. package/dist/__tests__/toast-service.test.d.ts +0 -2
  329. package/dist/__tests__/toast-service.test.d.ts.map +0 -1
  330. package/dist/__tests__/toast-service.test.js +0 -143
  331. package/dist/__tests__/toast-service.test.js.map +0 -1
  332. package/dist/__tests__/user-authorization.test.d.ts +0 -2
  333. package/dist/__tests__/user-authorization.test.d.ts.map +0 -1
  334. package/dist/__tests__/user-authorization.test.js +0 -97
  335. package/dist/__tests__/user-authorization.test.js.map +0 -1
  336. package/dist/__tests__/voice-session-narration.test.d.ts +0 -2
  337. package/dist/__tests__/voice-session-narration.test.d.ts.map +0 -1
  338. package/dist/__tests__/voice-session-narration.test.js +0 -609
  339. package/dist/__tests__/voice-session-narration.test.js.map +0 -1
  340. package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +0 -2
  341. package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +0 -1
  342. package/dist/__tests__/whiteboard-artifact-viewer.test.js +0 -101
  343. package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +0 -1
  344. package/dist/__tests__/whiteboard-channel.test.d.ts +0 -2
  345. package/dist/__tests__/whiteboard-channel.test.d.ts.map +0 -1
  346. package/dist/__tests__/whiteboard-channel.test.js +0 -260
  347. package/dist/__tests__/whiteboard-channel.test.js.map +0 -1
  348. package/dist/__tests__/whiteboard-restore-state.test.d.ts +0 -2
  349. package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +0 -1
  350. package/dist/__tests__/whiteboard-restore-state.test.js +0 -108
  351. package/dist/__tests__/whiteboard-restore-state.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-activity-rail.component.js","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-activity-rail.component.ts","../../../../src/lib/components/realtime/realtime-activity-rail.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output, OnInit, OnDestroy, ChangeDetectorRef, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport {\n RealtimeSessionState, RealtimeDelegationCardVM, FriendlyStepLabel, FormatElapsed\n} from './realtime-session-state';\nimport { ParsedDelegationArtifact } from '../../services/delegation-result-parser';\n\n/**\n * The \"Session activity\" RIGHT RAIL of the call overlay: a compact, newest-first list\n * of EVERY tool/agent call of the session — so parallel/multiple delegations live here\n * and the conversation thread stays clean.\n *\n * Each entry shows agent name, status (Running w/ spinner | Done | Failed), the latest\n * friendly step label, elapsed time for finished work, and a one-line result preview\n * for done items. Active items are emphasized; finished items are dimmed.\n *\n * Collapsible via the chevron in its header (collapses to a slim toggle strip).\n * Presentational over the same {@link RealtimeSessionState} the thread renders —\n * no subscriptions of its own beyond the state's change notifications.\n */\n@Component({\n standalone: true,\n selector: 'mj-realtime-activity-rail',\n imports: [CommonModule],\n templateUrl: './realtime-activity-rail.component.html',\n styleUrl: './realtime-activity-rail.component.css'\n})\nexport class RealtimeActivityRailComponent implements OnInit, OnDestroy {\n /** Maximum characters of the result preview in a done card. */\n private static readonly PreviewMaxChars = 90;\n\n /** Shared live-session state, owned by the overlay shell. */\n @Input({ required: true }) State!: RealtimeSessionState;\n\n /** Whether developer affordances (\"Open run\" links) are revealed (gear-gated). */\n @Input() DevMode = false;\n\n /**\n * EMBEDDED mode: the rail renders as the content of the surface panel's Activity tab —\n * its own header/collapse chrome is hidden (the panel's tab strip owns collapse) and it\n * stretches to the pane's full width. Default `false` keeps the original standalone\n * right-rail presentation for any other consumer.\n */\n @Input() Embedded = false;\n\n /** Emitted with the delegated run's ID when an entry's dev \"Open run\" link is clicked. */\n @Output() OpenRunRequested = new EventEmitter<string>();\n\n /** Emitted when an entry's \"View\" artifact chip is clicked (focuses the artifact's tab). */\n @Output() OpenArtifactRequested = new EventEmitter<ParsedDelegationArtifact>();\n\n /** Whether the rail is collapsed to its slim toggle strip. */\n public Collapsed = false;\n\n private changedSub?: Subscription;\n private cdr = inject(ChangeDetectorRef);\n\n ngOnInit(): void {\n this.changedSub = this.State.Changed$.subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy(): void {\n this.changedSub?.unsubscribe();\n }\n\n /** Toggle the rail between expanded and slim-collapsed. */\n public Toggle(): void {\n this.Collapsed = !this.Collapsed;\n }\n\n /** track fn for the @for over cards. */\n public TrackCard(index: number, card: RealtimeDelegationCardVM): string {\n return card.CallID;\n }\n\n /** Friendly label of the card's latest step. */\n public StepLabel(card: RealtimeDelegationCardVM): string {\n return FriendlyStepLabel(card.LatestStep, card.LatestMessage);\n }\n\n /** Elapsed duration for finished work (\"8s\", \"1m 04s\"); null while running (kept cheap). */\n public Elapsed(card: RealtimeDelegationCardVM): string | null {\n if (card.FinishedAt == null) {\n return null;\n }\n return FormatElapsed(card.FinishedAt - card.StartedAt);\n }\n\n /** True when the dev \"Open run\" link should render for this card (gear on + run id known). */\n public ShowOpenRun(card: RealtimeDelegationCardVM): boolean {\n return this.DevMode && !!card.RunID;\n }\n\n /** Emits the open-run request for the card's delegated run. */\n public OpenRun(card: RealtimeDelegationCardVM): void {\n if (card.RunID) {\n this.OpenRunRequested.emit(card.RunID);\n }\n }\n\n /** The artifacts a done card carries (empty array when none — keeps the template simple). */\n public CardArtifacts(card: RealtimeDelegationCardVM): ParsedDelegationArtifact[] {\n return card.Done && card.Artifacts ? card.Artifacts : [];\n }\n\n /** Emits the open-artifact request for a card's produced artifact. */\n public OpenArtifact(artifact: ParsedDelegationArtifact): void {\n this.OpenArtifactRequested.emit(artifact);\n }\n\n /** One-line result preview for done items. */\n public Preview(card: RealtimeDelegationCardVM): string {\n const text = (card.Result || card.LatestMessage || '').replace(/\\s+/g, ' ').trim();\n const max = RealtimeActivityRailComponent.PreviewMaxChars;\n return text.length > max ? `${text.slice(0, max).trimEnd()}…` : text;\n }\n}\n","<aside class=\"rail\" [class.rail--collapsed]=\"Collapsed && !Embedded\" [class.rail--embedded]=\"Embedded\" aria-label=\"Session activity\">\n @if (!Embedded) {\n <div class=\"rail__head\">\n <button type=\"button\"\n class=\"rail__toggle\"\n (click)=\"Toggle()\"\n [title]=\"Collapsed ? 'Show session activity' : 'Hide session activity'\"\n [attr.aria-expanded]=\"!Collapsed\">\n <i class=\"fa-solid\" [ngClass]=\"Collapsed ? 'fa-chevron-left' : 'fa-chevron-right'\" aria-hidden=\"true\"></i>\n </button>\n @if (!Collapsed) {\n <span class=\"rail__title\">\n <i class=\"fa-solid fa-list-check\" aria-hidden=\"true\"></i>\n Session activity\n </span>\n }\n </div>\n }\n\n @if (!Collapsed || Embedded) {\n <div class=\"rail__list\">\n @for (card of State.Cards; track TrackCard($index, card)) {\n <div class=\"act-card\"\n [class.act-card--running]=\"!card.Done\"\n [class.act-card--done]=\"card.Done && card.Success\"\n [class.act-card--failed]=\"card.Done && !card.Success\">\n <div class=\"act-card__top\">\n <span class=\"act-card__name\">{{ card.AgentName }}</span>\n @if (!card.Done) {\n <span class=\"act-status act-status--running\">\n <i class=\"fa-solid fa-spinner spin\" aria-hidden=\"true\"></i> Running\n </span>\n } @else if (card.Success) {\n <span class=\"act-status act-status--done\">\n <i class=\"fa-solid fa-check\" aria-hidden=\"true\"></i> Done\n </span>\n } @else {\n <span class=\"act-status act-status--failed\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i> Failed\n </span>\n }\n </div>\n <div class=\"act-card__step\">{{ StepLabel(card) }}</div>\n @if (card.Done) {\n @if (Elapsed(card); as elapsed) {\n <div class=\"act-card__meta\">\n <i class=\"fa-regular fa-clock\" aria-hidden=\"true\"></i> {{ elapsed }}\n </div>\n }\n @if (Preview(card)) {\n <div class=\"act-card__preview\">{{ Preview(card) }}</div>\n }\n }\n @for (artifact of CardArtifacts(card); track artifact.ArtifactVersionID) {\n <button type=\"button\" class=\"act-card__artifact-link\" (click)=\"OpenArtifact(artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>View</span>\n <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowOpenRun(card)) {\n <button type=\"button\" class=\"act-card__dev-link\" (click)=\"OpenRun(card)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </div>\n } @empty {\n <div class=\"rail__empty\">Tool and agent calls will appear here as they run.</div>\n }\n </div>\n }\n</aside>\n"]}
1
+ {"version":3,"file":"realtime-activity-rail.component.js","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-activity-rail.component.ts","../../../../src/lib/components/realtime/realtime-activity-rail.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output, OnInit, OnDestroy, ChangeDetectorRef, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\nimport { AngularSplitModule, SplitGutterInteractionEvent } from 'angular-split';\nimport { UserInfo } from '@memberjunction/core';\nimport { UserInfoEngine } from '@memberjunction/core-entities';\nimport { ArtifactsModule } from '@memberjunction/ng-artifacts';\nimport {\n RealtimeSessionState, RealtimeDelegationCardVM, FriendlyStepLabel, FormatElapsed\n} from './realtime-session-state';\nimport { ParsedDelegationArtifact } from '../../services/delegation-result-parser';\nimport {\n ACTIVITY_SPLIT_DEFAULT_PERCENT, ACTIVITY_SPLIT_PREF_KEY,\n ClampActivitySplitPercent, ParseActivitySplitPercent, SerializeActivitySplitPercent\n} from './realtime-surface-tab-style';\n\n/**\n * The \"Session activity\" surface (the Activity tab's content): a compact, newest-first list\n * of EVERY tool/agent call of the session — so parallel/multiple delegations live here and\n * the conversation thread stays clean.\n *\n * Each entry shows agent name, status, the latest friendly step label, elapsed time, and a\n * one-line result preview. When a run produced ARTIFACTS, each artifact renders as an inline\n * PREVIEW card (reusing `mj-artifact-message-card`, the same component the conversation\n * messages use). Clicking a preview SPLITS this pane horizontally — activity list on the\n * LEFT, the full artifact viewer on the RIGHT (`as-split`); clicking another swaps the right\n * pane; a close control collapses back to full-width activity. The split width is persisted\n * per-user via {@link UserInfoEngine} (NOT localStorage). This replaces the old \"one surface\n * tab per artifact\" model.\n *\n * Collapsible via the chevron in its header (standalone presentation only). Presentational\n * over the same {@link RealtimeSessionState} the thread renders.\n */\n@Component({\n standalone: true,\n selector: 'mj-realtime-activity-rail',\n imports: [CommonModule, AngularSplitModule, ArtifactsModule],\n templateUrl: './realtime-activity-rail.component.html',\n styleUrl: './realtime-activity-rail.component.css'\n})\nexport class RealtimeActivityRailComponent implements OnInit, OnDestroy {\n /** Maximum characters of the result preview in a done card. */\n private static readonly PreviewMaxChars = 90;\n\n /** Shared live-session state, owned by the overlay shell. */\n @Input({ required: true }) State!: RealtimeSessionState;\n\n /** Whether developer affordances (\"Open run\" links) are revealed (gear-gated). */\n @Input() DevMode = false;\n\n /**\n * EMBEDDED mode: the rail renders as the content of the surface panel's Activity tab —\n * its own header/collapse chrome is hidden (the panel's tab strip owns collapse) and it\n * stretches to the pane's full width. Default `false` keeps the original standalone\n * right-rail presentation for any other consumer.\n */\n @Input() Embedded = false;\n\n /** The signed-in user, threaded to the split-pane artifact viewer. */\n @Input() CurrentUser: UserInfo | null = null;\n\n /** The active environment id, threaded to the split-pane artifact viewer. */\n @Input() EnvironmentID = '';\n\n /**\n * Extra artifacts NOT tied to a specific activity card — the SESSION-REVIEW chain's\n * carryover artifacts. Rendered as a \"Session artifacts\" group above the activity list so\n * a reviewed session's outputs are reachable inside the Activity tab (the live path gets\n * artifacts from each card's `Artifacts`). Empty for a live session.\n */\n @Input() ExtraArtifacts: ParsedDelegationArtifact[] = [];\n\n /** Emitted with the delegated run's ID when an entry's dev \"Open run\" link is clicked. */\n @Output() OpenRunRequested = new EventEmitter<string>();\n\n /** Emitted when an artifact is opened in the split viewer (lets a host react if it wants). */\n @Output() OpenArtifactRequested = new EventEmitter<ParsedDelegationArtifact>();\n\n /** Whether the rail is collapsed to its slim toggle strip (standalone mode only). */\n public Collapsed = false;\n\n /** The artifact currently shown in the split-pane viewer, or null when the split is closed. */\n public SelectedArtifact: ParsedDelegationArtifact | null = null;\n\n /** The artifact (right) pane's width percentage — persisted per-user, clamped on load. */\n public SplitArtifactPercent = ACTIVITY_SPLIT_DEFAULT_PERCENT;\n\n private changedSub?: Subscription;\n private cdr = inject(ChangeDetectorRef);\n\n /** True while reduced-motion is preferred — disables the split's drag transition. */\n public readonly PrefersReducedMotion =\n typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n ngOnInit(): void {\n this.loadSplitPref();\n this.changedSub = this.State.Changed$.subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy(): void {\n this.changedSub?.unsubscribe();\n }\n\n /** Toggle the rail between expanded and slim-collapsed (standalone presentation). */\n public Toggle(): void {\n this.Collapsed = !this.Collapsed;\n }\n\n /** track fn for the @for over cards. */\n public TrackCard(index: number, card: RealtimeDelegationCardVM): string {\n return card.CallID;\n }\n\n /** Friendly label of the card's latest step. */\n public StepLabel(card: RealtimeDelegationCardVM): string {\n return FriendlyStepLabel(card.LatestStep, card.LatestMessage);\n }\n\n /** Elapsed duration for finished work (\"8s\", \"1m 04s\"); null while running (kept cheap). */\n public Elapsed(card: RealtimeDelegationCardVM): string | null {\n if (card.FinishedAt == null) {\n return null;\n }\n return FormatElapsed(card.FinishedAt - card.StartedAt);\n }\n\n /** True when the dev \"Open run\" link should render for this card (gear on + run id known). */\n public ShowOpenRun(card: RealtimeDelegationCardVM): boolean {\n return this.DevMode && !!card.RunID;\n }\n\n /** Emits the open-run request for the card's delegated run. */\n public OpenRun(card: RealtimeDelegationCardVM): void {\n if (card.RunID) {\n this.OpenRunRequested.emit(card.RunID);\n }\n }\n\n /** The artifacts a done card carries (empty array when none — keeps the template simple). */\n public CardArtifacts(card: RealtimeDelegationCardVM): ParsedDelegationArtifact[] {\n return card.Done && card.Artifacts ? card.Artifacts : [];\n }\n\n /** track fn for the @for over a card's artifacts. */\n public TrackArtifact(index: number, artifact: ParsedDelegationArtifact): string {\n return artifact.ArtifactVersionID;\n }\n\n /** Whether the artifact `a` is the one currently open in the split viewer. */\n public IsArtifactOpen(artifact: ParsedDelegationArtifact): boolean {\n return this.SelectedArtifact?.ArtifactVersionID === artifact.ArtifactVersionID;\n }\n\n /**\n * Opens (or swaps to) `artifact` in the split-pane viewer: the activity list keeps the\n * left pane, the full artifact viewer fills the right. Re-opening the same artifact is a\n * no-op; opening a different one swaps the right pane. Also reachable from the surface-tabs\n * \"View →\" affordance.\n */\n public OpenArtifact(artifact: ParsedDelegationArtifact): void {\n if (this.SelectedArtifact?.ArtifactVersionID === artifact.ArtifactVersionID) {\n return;\n }\n this.SelectedArtifact = artifact;\n this.OpenArtifactRequested.emit(artifact);\n this.cdr.markForCheck();\n }\n\n /** Closes the split, returning to a full-width activity list. */\n public CloseArtifact(): void {\n if (this.SelectedArtifact) {\n this.SelectedArtifact = null;\n this.cdr.markForCheck();\n }\n }\n\n /**\n * `as-split` drag finished: adopt + persist the artifact (right) pane's width percentage\n * per-user (debounced, via {@link UserInfoEngine} — never localStorage). The split reports\n * the two area sizes (percent here); index 1 is the artifact pane. A wildcard `'*'` size\n * (non-numeric) is ignored — nothing to persist.\n */\n public OnSplitDragEnd(event: SplitGutterInteractionEvent): void {\n const right = event.sizes[1];\n if (typeof right !== 'number') {\n return;\n }\n this.SplitArtifactPercent = ClampActivitySplitPercent(right);\n this.persistSplitPref(this.SplitArtifactPercent);\n }\n\n /** One-line result preview for done items. */\n public Preview(card: RealtimeDelegationCardVM): string {\n const text = (card.Result || card.LatestMessage || '').replace(/\\s+/g, ' ').trim();\n const max = RealtimeActivityRailComponent.PreviewMaxChars;\n return text.length > max ? `${text.slice(0, max).trimEnd()}…` : text;\n }\n\n /** Reads the persisted split width once (tolerant; default tier applies when unset). */\n private loadSplitPref(): void {\n try {\n const percent = ParseActivitySplitPercent(UserInfoEngine.Instance.GetSetting(ACTIVITY_SPLIT_PREF_KEY));\n if (percent !== null) {\n this.SplitArtifactPercent = percent;\n }\n } catch {\n // UserInfoEngine not configured (plain-node tests / early bootstrap) — default applies.\n }\n }\n\n /** Persists the split width preference server-side (debounced, best-effort). */\n private persistSplitPref(percent: number): void {\n try {\n UserInfoEngine.Instance.SetSettingDebounced(ACTIVITY_SPLIT_PREF_KEY, SerializeActivitySplitPercent(percent));\n } catch {\n // engine unavailable — the width still applies for this session\n }\n }\n}\n","<aside class=\"rail\" [class.rail--collapsed]=\"Collapsed && !Embedded\" [class.rail--embedded]=\"Embedded\" aria-label=\"Session activity\">\n @if (!Embedded) {\n <div class=\"rail__head\">\n <button type=\"button\"\n class=\"rail__toggle\"\n (click)=\"Toggle()\"\n [title]=\"Collapsed ? 'Show session activity' : 'Hide session activity'\"\n [attr.aria-expanded]=\"!Collapsed\">\n <i class=\"fa-solid\" [ngClass]=\"Collapsed ? 'fa-chevron-left' : 'fa-chevron-right'\" aria-hidden=\"true\"></i>\n </button>\n @if (!Collapsed) {\n <span class=\"rail__title\">\n <i class=\"fa-solid fa-wave-square\" aria-hidden=\"true\"></i>\n Session activity\n </span>\n }\n </div>\n }\n\n @if (!Collapsed || Embedded) {\n <as-split class=\"rail__split\"\n direction=\"horizontal\"\n unit=\"percent\"\n [gutterSize]=\"SelectedArtifact ? 8 : 0\"\n [disabled]=\"!SelectedArtifact\"\n [useTransition]=\"!PrefersReducedMotion\"\n (dragEnd)=\"OnSplitDragEnd($event)\">\n\n <!-- LEFT: the activity list (full width until an artifact splits the pane) -->\n <as-split-area [size]=\"SelectedArtifact ? (100 - SplitArtifactPercent) : 100\">\n <div class=\"rail__list\">\n @if (ExtraArtifacts.length > 0) {\n <div class=\"rail__group\">\n <div class=\"rail__group-title\">\n <i class=\"fa-solid fa-folder-open\" aria-hidden=\"true\"></i> Session artifacts\n </div>\n @for (artifact of ExtraArtifacts; track TrackArtifact($index, artifact)) {\n <div class=\"act-card__artifact\"\n [class.act-card__artifact--open]=\"IsArtifactOpen(artifact)\">\n @if (CurrentUser) {\n <mj-artifact-message-card\n [artifactId]=\"artifact.ArtifactID\"\n [currentUser]=\"CurrentUser\"\n (actionPerformed)=\"OpenArtifact(artifact)\">\n </mj-artifact-message-card>\n } @else {\n <button type=\"button\" class=\"act-card__artifact-link\" (click)=\"OpenArtifact(artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>{{ artifact.Name }}</span>\n <i class=\"fa-solid fa-up-right-and-down-left-from-center\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n </div>\n }\n @for (card of State.Cards; track TrackCard($index, card)) {\n <div class=\"act-card\"\n [class.act-card--running]=\"!card.Done\"\n [class.act-card--done]=\"card.Done && card.Success\"\n [class.act-card--failed]=\"card.Done && !card.Success\">\n <div class=\"act-card__top\">\n <span class=\"act-card__name\">{{ card.AgentName }}</span>\n @if (!card.Done) {\n <span class=\"act-status act-status--running\">\n <i class=\"fa-solid fa-spinner spin\" aria-hidden=\"true\"></i> Running\n </span>\n } @else if (card.Success) {\n <span class=\"act-status act-status--done\">\n <i class=\"fa-solid fa-check\" aria-hidden=\"true\"></i> Done\n </span>\n } @else {\n <span class=\"act-status act-status--failed\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i> Failed\n </span>\n }\n </div>\n <div class=\"act-card__step\">{{ StepLabel(card) }}</div>\n @if (card.Done) {\n @if (Elapsed(card); as elapsed) {\n <div class=\"act-card__meta\">\n <i class=\"fa-regular fa-clock\" aria-hidden=\"true\"></i> {{ elapsed }}\n </div>\n }\n @if (Preview(card)) {\n <div class=\"act-card__preview\">{{ Preview(card) }}</div>\n }\n }\n @for (artifact of CardArtifacts(card); track TrackArtifact($index, artifact)) {\n <div class=\"act-card__artifact\"\n [class.act-card__artifact--open]=\"IsArtifactOpen(artifact)\">\n @if (CurrentUser) {\n <!-- Inline preview (same component the conversation message cards use);\n clicking expands it into the split-pane viewer on the right. -->\n <mj-artifact-message-card\n [artifactId]=\"artifact.ArtifactID\"\n [currentUser]=\"CurrentUser\"\n (actionPerformed)=\"OpenArtifact(artifact)\">\n </mj-artifact-message-card>\n } @else {\n <button type=\"button\" class=\"act-card__artifact-link\" (click)=\"OpenArtifact(artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>{{ artifact.Name }}</span>\n <i class=\"fa-solid fa-up-right-and-down-left-from-center\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n @if (ShowOpenRun(card)) {\n <button type=\"button\" class=\"act-card__dev-link\" (click)=\"OpenRun(card)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </div>\n } @empty {\n <div class=\"rail__empty\">Tool and agent calls will appear here as they run.</div>\n }\n </div>\n </as-split-area>\n\n <!-- RIGHT: the full artifact viewer (only present while an artifact is open) -->\n @if (SelectedArtifact; as artifact) {\n <as-split-area [size]=\"SplitArtifactPercent\" [minSize]=\"25\">\n <div class=\"rail__viewer\">\n <div class=\"rail__viewer-head\">\n <span class=\"rail__viewer-title\" [title]=\"artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n {{ artifact.Name }}\n </span>\n <button type=\"button\" class=\"rail__viewer-close\" (click)=\"CloseArtifact()\"\n title=\"Close artifact\" aria-label=\"Close artifact\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n <div class=\"rail__viewer-body\">\n <mj-artifact-viewer-panel\n [artifactId]=\"artifact.ArtifactID\"\n [currentUser]=\"CurrentUser!\"\n [environmentId]=\"EnvironmentID\"\n [showHeader]=\"false\"\n [showTabs]=\"false\"\n [showSaveToCollection]=\"false\"\n [showCloseButton]=\"false\"\n [showMaximizeButton]=\"false\">\n </mj-artifact-viewer-panel>\n </div>\n </div>\n </as-split-area>\n }\n </as-split>\n }\n</aside>\n"]}
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import { VoiceConnectionState } from '../../services/realtime-session.service';
2
+ import { RealtimeConnectionState } from '../../services/realtime-session.service';
3
3
  import { RealtimeUxDensity } from './realtime-disclosure';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
@@ -9,11 +9,12 @@ import * as i0 from "@angular/core";
9
9
  * - LEFT: the glowing agent orb (motion = turn-state), agent name + "Co-Agent" badge,
10
10
  * "speaking as" subline (+ subtle realtime-model suffix), and the state pill that swaps
11
11
  * between a waveform (speaking/listening) and a spinner (connecting/thinking).
12
- * - RIGHT (live): the disclosure-gated action cluster Captions toggle (level 1+), the
13
- * gear (level 2+, opens a popover hosting the Simple/Standard/Pro/Auto INTERFACE DENSITY
14
- * control the progressive-disclosure escape hatch — plus the developer-links toggle),
15
- * Minimize (hide the call view, call stays live), and the End-call pill (level 2+; below
16
- * that the phone-call strip's big End control owns ending).
12
+ * - RIGHT (live): STATE + WINDOW-CHROME onlythe gear (level 2+, opens a popover hosting the
13
+ * Simple/Standard/Pro/Auto INTERFACE DENSITY control — the progressive-disclosure escape hatch,
14
+ * where Simple IS the pure-audio surface — plus the developer-links toggle) and Minimize (hide
15
+ * the call view, call stays live). Call actions (Mute / Captions / Details / Type / End) live in
16
+ * the bottom dock, the single home for each; Captions & End used to duplicate here and were
17
+ * removed, and the standalone pure-audio headphones was folded into the gear's Density = Simple.
17
18
  * - RIGHT (review): "Start live session" (resume, affirmative leads) + Close — the
18
19
  * review session's exit lives up here in the header bar, not floating in the body.
19
20
  *
@@ -22,7 +23,16 @@ import * as i0 from "@angular/core";
22
23
  */
23
24
  export declare class RealtimeAgentBannerComponent {
24
25
  /** Current connection / turn state — drives the orb animation + state label. */
25
- State: VoiceConnectionState;
26
+ State: RealtimeConnectionState;
27
+ /**
28
+ * COMPACT (orb/overlay) presentation: collapse the app-bar to a minimal identity + state
29
+ * row. The duplicate orb, the redundant state pill, and the headphones / gear / expand
30
+ * controls are dropped — the body already shows the big orb + name + state, and the lean
31
+ * bottom dock (Mute / End / •••) owns the session actions. Minimize stays reachable so the
32
+ * user can hide the call without ending it. Fed from the overlay's resolved `Ui.compact`.
33
+ * Default `false` (the full console banner is unchanged).
34
+ */
35
+ Compact: boolean;
26
36
  /** Display name of the agent the voice session fronts (e.g. "Sage"). */
27
37
  AgentName: string;
28
38
  /**
@@ -46,34 +56,27 @@ export declare class RealtimeAgentBannerComponent {
46
56
  ReviewClosedAt: Date | null;
47
57
  /** When reviewing: why the past session closed (`Explicit` | `Janitor` | `Shutdown` | `Error`), when known. */
48
58
  ReviewCloseReason: string | null;
49
- /** Whether captions are currently shown (active state on the captions control). */
50
- CaptionsOn: boolean;
51
- /** Whether the captions control renders (disclosure level 1+). */
52
- ShowCaptionsControl: boolean;
53
59
  /** Whether the gear (density escape hatch + dev toggle) renders (disclosure level 2+). */
54
60
  ShowGear: boolean;
55
- /** Whether the End-call pill renders here (level 2+; the strip's big End owns it below). */
56
- ShowEnd: boolean;
61
+ /**
62
+ * Whether the interface-density segmented control renders inside the gear popover.
63
+ * Default `true` (historical behaviour); a host may hide it via the overlay's
64
+ * `[ShowDensityPicker]` input. The gear itself (and its developer-links toggle) still
65
+ * renders when {@link ShowGear} is true even if the density picker is hidden.
66
+ */
67
+ ShowDensityPicker: boolean;
57
68
  /** Whether the Minimize control renders (live sessions only). */
58
69
  ShowMinimize: boolean;
59
- /** Whether the "Return to pure audio" control renders (live + disclosure level above 0). */
60
- ShowPureAudio: boolean;
61
70
  /** The user's current interface-density override (selected state in the gear popover). */
62
71
  Density: RealtimeUxDensity;
63
72
  /** Emitted with the session record's ID when the dev "Open session" link is clicked. */
64
73
  OpenSessionRequested: EventEmitter<string>;
65
- /** Emitted when the user toggles captions; the overlay flips its caption state. */
66
- CaptionsToggled: EventEmitter<boolean>;
67
74
  /** Emitted when the user toggles developer links from the gear popover. */
68
75
  DevModeToggled: EventEmitter<boolean>;
69
76
  /** Emitted when the user picks an interface density in the gear popover. */
70
77
  DensityChanged: EventEmitter<RealtimeUxDensity>;
71
78
  /** Emitted when the user minimizes the call view (the call stays live). */
72
79
  MinimizeRequested: EventEmitter<void>;
73
- /** Emitted when the user asks to return to the pure-audio surface (level 0, this session). */
74
- PureAudioRequested: EventEmitter<void>;
75
- /** Emitted when the user ends the call from the app-bar's End pill. */
76
- EndRequested: EventEmitter<void>;
77
80
  /** Review only: the user asked to RESUME the reviewed session as a new live call. */
78
81
  StartLiveRequested: EventEmitter<void>;
79
82
  /** Review only: the user asked to close the review and return to the conversation. */
@@ -89,8 +92,6 @@ export declare class RealtimeAgentBannerComponent {
89
92
  get ShowOpenSession(): boolean;
90
93
  /** Emits the open-session request for the live agent session record. */
91
94
  OpenSession(): void;
92
- /** Toggles the captions control and notifies the overlay. */
93
- ToggleCaptions(): void;
94
95
  /** Opens/closes the gear popover (stops propagation so the outside-click close skips it). */
95
96
  ToggleGear(event: MouseEvent): void;
96
97
  /** Any outside click closes the gear popover. */
@@ -106,12 +107,12 @@ export declare class RealtimeAgentBannerComponent {
106
107
  /** Compact date+time stamp; same-day end stamps drop the redundant date part. */
107
108
  private formatStamp;
108
109
  /** Maps the realtime state to the orb's `data-state` (the orb only models active turn-states). */
109
- OrbState(state: VoiceConnectionState): 'speaking' | 'listening' | 'thinking';
110
+ OrbState(state: RealtimeConnectionState): 'speaking' | 'listening' | 'thinking';
110
111
  /** Human-readable state label, agent-aware where it reads better. */
111
- StateLabel(state: VoiceConnectionState): string;
112
+ StateLabel(state: RealtimeConnectionState): string;
112
113
  /** True while the state pill should show a spinner instead of the waveform. */
113
- IsBusy(state: VoiceConnectionState): boolean;
114
+ IsBusy(state: RealtimeConnectionState): boolean;
114
115
  static ɵfac: i0.ɵɵFactoryDeclaration<RealtimeAgentBannerComponent, never>;
115
- static ɵcmp: i0.ɵɵComponentDeclaration<RealtimeAgentBannerComponent, "mj-realtime-agent-banner", never, { "State": { "alias": "State"; "required": true; }; "AgentName": { "alias": "AgentName"; "required": false; }; "ModelName": { "alias": "ModelName"; "required": false; }; "DevMode": { "alias": "DevMode"; "required": false; }; "SessionID": { "alias": "SessionID"; "required": false; }; "ReviewMode": { "alias": "ReviewMode"; "required": false; }; "ReviewStartedAt": { "alias": "ReviewStartedAt"; "required": false; }; "ReviewClosedAt": { "alias": "ReviewClosedAt"; "required": false; }; "ReviewCloseReason": { "alias": "ReviewCloseReason"; "required": false; }; "CaptionsOn": { "alias": "CaptionsOn"; "required": false; }; "ShowCaptionsControl": { "alias": "ShowCaptionsControl"; "required": false; }; "ShowGear": { "alias": "ShowGear"; "required": false; }; "ShowEnd": { "alias": "ShowEnd"; "required": false; }; "ShowMinimize": { "alias": "ShowMinimize"; "required": false; }; "ShowPureAudio": { "alias": "ShowPureAudio"; "required": false; }; "Density": { "alias": "Density"; "required": false; }; }, { "OpenSessionRequested": "OpenSessionRequested"; "CaptionsToggled": "CaptionsToggled"; "DevModeToggled": "DevModeToggled"; "DensityChanged": "DensityChanged"; "MinimizeRequested": "MinimizeRequested"; "PureAudioRequested": "PureAudioRequested"; "EndRequested": "EndRequested"; "StartLiveRequested": "StartLiveRequested"; "CloseRequested": "CloseRequested"; }, never, never, true, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<RealtimeAgentBannerComponent, "mj-realtime-agent-banner", never, { "State": { "alias": "State"; "required": true; }; "Compact": { "alias": "Compact"; "required": false; }; "AgentName": { "alias": "AgentName"; "required": false; }; "ModelName": { "alias": "ModelName"; "required": false; }; "DevMode": { "alias": "DevMode"; "required": false; }; "SessionID": { "alias": "SessionID"; "required": false; }; "ReviewMode": { "alias": "ReviewMode"; "required": false; }; "ReviewStartedAt": { "alias": "ReviewStartedAt"; "required": false; }; "ReviewClosedAt": { "alias": "ReviewClosedAt"; "required": false; }; "ReviewCloseReason": { "alias": "ReviewCloseReason"; "required": false; }; "ShowGear": { "alias": "ShowGear"; "required": false; }; "ShowDensityPicker": { "alias": "ShowDensityPicker"; "required": false; }; "ShowMinimize": { "alias": "ShowMinimize"; "required": false; }; "Density": { "alias": "Density"; "required": false; }; }, { "OpenSessionRequested": "OpenSessionRequested"; "DevModeToggled": "DevModeToggled"; "DensityChanged": "DensityChanged"; "MinimizeRequested": "MinimizeRequested"; "StartLiveRequested": "StartLiveRequested"; "CloseRequested": "CloseRequested"; }, never, never, true, never>;
116
117
  }
117
118
  //# sourceMappingURL=realtime-agent-banner.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-agent-banner.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-agent-banner.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAA+B,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAOa,4BAA4B;IACvC,gFAAgF;IACrD,KAAK,EAAG,oBAAoB,CAAC;IAExD,wEAAwE;IAC/D,SAAS,SAAe;IAEjC;;;OAGG;IACM,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,yFAAyF;IAChF,OAAO,UAAS;IAEzB,wFAAwF;IAC/E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACM,UAAU,UAAS;IAE5B,wEAAwE;IAC/D,eAAe,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE7C,kFAAkF;IACzE,cAAc,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE5C,+GAA+G;IACtG,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIjD,mFAAmF;IAC1E,UAAU,UAAQ;IAE3B,kEAAkE;IACzD,mBAAmB,UAAS;IAErC,0FAA0F;IACjF,QAAQ,UAAS;IAE1B,4FAA4F;IACnF,OAAO,UAAS;IAEzB,iEAAiE;IACxD,YAAY,UAAS;IAE9B,4FAA4F;IACnF,aAAa,UAAS;IAE/B,0FAA0F;IACjF,OAAO,EAAE,iBAAiB,CAAU;IAE7C,wFAAwF;IAC9E,oBAAoB,uBAA8B;IAE5D,mFAAmF;IACzE,eAAe,wBAA+B;IAExD,2EAA2E;IACjE,cAAc,wBAA+B;IAEvD,4EAA4E;IAClE,cAAc,kCAAyC;IAEjE,2EAA2E;IACjE,iBAAiB,qBAA4B;IAEvD,8FAA8F;IACpF,kBAAkB,qBAA4B;IAExD,uEAAuE;IAC7D,YAAY,qBAA4B;IAElD,qFAAqF;IAC3E,kBAAkB,qBAA4B;IAExD,sFAAsF;IAC5E,cAAc,qBAA4B;IAEpD,sEAAsE;IAC/D,QAAQ,UAAS;IAExB,qEAAqE;IACrE,SAAgB,SAAS,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAKjF;IAEF,wFAAwF;IACxF,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,wEAAwE;IACjE,WAAW,IAAI,IAAI;IAM1B,6DAA6D;IACtD,cAAc,IAAI,IAAI;IAK7B,6FAA6F;IACtF,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK1C,iDAAiD;IAE1C,eAAe,IAAI,IAAI;IAM9B,mFAAmF;IAC5E,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAItD,4CAA4C;IACrC,SAAS,IAAI,IAAI;IAKxB,iGAAiG;IACjG,IAAW,gBAAgB,IAAI,MAAM,CASpC;IAED,oEAAoE;IACpE,IAAW,sBAAsB,IAAI,MAAM,CAQ1C;IAED,iFAAiF;IACjF,OAAO,CAAC,WAAW;IAQnB,kGAAkG;IAC3F,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU;IAQnF,qEAAqE;IAC9D,UAAU,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;IAYtD,+EAA+E;IACxE,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;yCAlMxC,4BAA4B;2CAA5B,4BAA4B;CAqMxC"}
1
+ {"version":3,"file":"realtime-agent-banner.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-agent-banner.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAA+B,MAAM,eAAe,CAAC;AAErF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAOa,4BAA4B;IACvC,gFAAgF;IACrD,KAAK,EAAG,uBAAuB,CAAC;IAE3D;;;;;;;OAOG;IACM,OAAO,UAAS;IAEzB,wEAAwE;IAC/D,SAAS,SAAe;IAEjC;;;OAGG;IACM,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,yFAAyF;IAChF,OAAO,UAAS;IAEzB,wFAAwF;IAC/E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACM,UAAU,UAAS;IAE5B,wEAAwE;IAC/D,eAAe,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE7C,kFAAkF;IACzE,cAAc,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE5C,+GAA+G;IACtG,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMjD,0FAA0F;IACjF,QAAQ,UAAS;IAE1B;;;;;OAKG;IACM,iBAAiB,UAAQ;IAElC,iEAAiE;IACxD,YAAY,UAAS;IAE9B,0FAA0F;IACjF,OAAO,EAAE,iBAAiB,CAAU;IAE7C,wFAAwF;IAC9E,oBAAoB,uBAA8B;IAE5D,2EAA2E;IACjE,cAAc,wBAA+B;IAEvD,4EAA4E;IAClE,cAAc,kCAAyC;IAEjE,2EAA2E;IACjE,iBAAiB,qBAA4B;IAEvD,qFAAqF;IAC3E,kBAAkB,qBAA4B;IAExD,sFAAsF;IAC5E,cAAc,qBAA4B;IAEpD,sEAAsE;IAC/D,QAAQ,UAAS;IAExB,qEAAqE;IACrE,SAAgB,SAAS,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAKjF;IAEF,wFAAwF;IACxF,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,wEAAwE;IACjE,WAAW,IAAI,IAAI;IAM1B,6FAA6F;IACtF,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAK1C,iDAAiD;IAE1C,eAAe,IAAI,IAAI;IAM9B,mFAAmF;IAC5E,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAItD,4CAA4C;IACrC,SAAS,IAAI,IAAI;IAKxB,iGAAiG;IACjG,IAAW,gBAAgB,IAAI,MAAM,CASpC;IAED,oEAAoE;IACpE,IAAW,sBAAsB,IAAI,MAAM,CAQ1C;IAED,iFAAiF;IACjF,OAAO,CAAC,WAAW;IAQnB,kGAAkG;IAC3F,QAAQ,CAAC,KAAK,EAAE,uBAAuB,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU;IAQtF,qEAAqE;IAC9D,UAAU,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM;IAYzD,+EAA+E;IACxE,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO;yCA3L3C,4BAA4B;2CAA5B,4BAA4B;CA8LxC"}