@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,97 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { REALTIME_ADVANCED_SESSION_CONTROLS, UserHoldsAuthorization, } from '../lib/services/user-authorization';
3
- /**
4
- * Pure client-side authorization check — resolves the cached-metadata
5
- * Authorizations ↔ Authorization Roles ↔ user.UserRoles chain with
6
- * `AuthorizationInfo.UserCanExecute` semantics (Deny wins, Allow required,
7
- * inactive never grants) and is DEFENSIVE: every missing-data shape resolves
8
- * to false. This is the disclosure gate for the realtime advanced session
9
- * controls (model picker / config overrides); the server enforces the same
10
- * authorization on the mint mutation.
11
- */
12
- const AUTH_ID = 'A0000000-0000-0000-0000-00000000000A';
13
- const ROLE_ADMIN = 'B0000000-0000-0000-0000-00000000000B';
14
- const ROLE_USER = 'C0000000-0000-0000-0000-00000000000C';
15
- function source(overrides) {
16
- return {
17
- Authorizations: [{ ID: AUTH_ID, Name: REALTIME_ADVANCED_SESSION_CONTROLS, IsActive: true }],
18
- AuthorizationRoles: [{ AuthorizationID: AUTH_ID, RoleID: ROLE_ADMIN, Type: 'Allow' }],
19
- ...overrides,
20
- };
21
- }
22
- function userWithRoles(...roleIds) {
23
- return { UserRoles: roleIds.map(RoleID => ({ RoleID })) };
24
- }
25
- describe('UserHoldsAuthorization', () => {
26
- describe('grants', () => {
27
- it('returns true when one of the user roles has an Allow row on the active authorization', () => {
28
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(true);
29
- });
30
- it('matches the authorization name case-insensitively with surrounding whitespace', () => {
31
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), ' realtime: ADVANCED session controls ', source())).toBe(true);
32
- });
33
- it('matches role ids across SQL Server (upper) vs PostgreSQL (lower) UUID casing', () => {
34
- const user = userWithRoles(ROLE_ADMIN.toLowerCase());
35
- const src = source({
36
- Authorizations: [{ ID: AUTH_ID.toLowerCase(), Name: REALTIME_ADVANCED_SESSION_CONTROLS, IsActive: true }],
37
- AuthorizationRoles: [{ AuthorizationID: AUTH_ID.toUpperCase(), RoleID: ROLE_ADMIN.toUpperCase(), Type: 'allow' }],
38
- });
39
- expect(UserHoldsAuthorization(user, REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(true);
40
- });
41
- it('grants when the user holds an unrelated role plus the allowed role', () => {
42
- expect(UserHoldsAuthorization(userWithRoles(ROLE_USER, ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(true);
43
- });
44
- });
45
- describe('denials', () => {
46
- it('returns false when none of the user roles is mapped to the authorization', () => {
47
- expect(UserHoldsAuthorization(userWithRoles(ROLE_USER), REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);
48
- });
49
- it('Deny on any user role vetoes an Allow on another role (Deny wins globally)', () => {
50
- const src = source({
51
- AuthorizationRoles: [
52
- { AuthorizationID: AUTH_ID, RoleID: ROLE_ADMIN, Type: 'Allow' },
53
- { AuthorizationID: AUTH_ID, RoleID: ROLE_USER, Type: 'Deny' },
54
- ],
55
- });
56
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN, ROLE_USER), REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(false);
57
- });
58
- it('returns false when the authorization is inactive', () => {
59
- const src = source({
60
- Authorizations: [{ ID: AUTH_ID, Name: REALTIME_ADVANCED_SESSION_CONTROLS, IsActive: false }],
61
- });
62
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(false);
63
- });
64
- it('returns false for an unknown authorization name', () => {
65
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), 'Some Other Authorization', source())).toBe(false);
66
- });
67
- it('treats a matching row with a null/blank Type as a Deny (missing data never grants)', () => {
68
- const src = source({
69
- AuthorizationRoles: [{ AuthorizationID: AUTH_ID, RoleID: ROLE_ADMIN, Type: null }],
70
- });
71
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(false);
72
- });
73
- });
74
- describe('defensive missing-data shapes — always false', () => {
75
- it('null/undefined user', () => {
76
- expect(UserHoldsAuthorization(null, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);
77
- expect(UserHoldsAuthorization(undefined, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);
78
- });
79
- it('user with no roles', () => {
80
- expect(UserHoldsAuthorization({ UserRoles: [] }, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);
81
- expect(UserHoldsAuthorization({}, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);
82
- });
83
- it('null/undefined metadata source', () => {
84
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, null)).toBe(false);
85
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, undefined)).toBe(false);
86
- });
87
- it('metadata source missing either collection', () => {
88
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source({ Authorizations: [] }))).toBe(false);
89
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source({ AuthorizationRoles: null }))).toBe(false);
90
- });
91
- it('empty authorization name', () => {
92
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), '', source())).toBe(false);
93
- expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), ' ', source())).toBe(false);
94
- });
95
- });
96
- });
97
- //# sourceMappingURL=user-authorization.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-authorization.test.js","sourceRoot":"","sources":["../../src/__tests__/user-authorization.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect } from 'vitest';\nimport {\n AuthorizationMetadataSource,\n AuthorizationUserLike,\n REALTIME_ADVANCED_SESSION_CONTROLS,\n UserHoldsAuthorization,\n} from '../lib/services/user-authorization';\n\n/**\n * Pure client-side authorization check — resolves the cached-metadata\n * Authorizations ↔ Authorization Roles ↔ user.UserRoles chain with\n * `AuthorizationInfo.UserCanExecute` semantics (Deny wins, Allow required,\n * inactive never grants) and is DEFENSIVE: every missing-data shape resolves\n * to false. This is the disclosure gate for the realtime advanced session\n * controls (model picker / config overrides); the server enforces the same\n * authorization on the mint mutation.\n */\n\nconst AUTH_ID = 'A0000000-0000-0000-0000-00000000000A';\nconst ROLE_ADMIN = 'B0000000-0000-0000-0000-00000000000B';\nconst ROLE_USER = 'C0000000-0000-0000-0000-00000000000C';\n\nfunction source(overrides?: Partial<AuthorizationMetadataSource>): AuthorizationMetadataSource {\n return {\n Authorizations: [{ ID: AUTH_ID, Name: REALTIME_ADVANCED_SESSION_CONTROLS, IsActive: true }],\n AuthorizationRoles: [{ AuthorizationID: AUTH_ID, RoleID: ROLE_ADMIN, Type: 'Allow' }],\n ...overrides,\n };\n}\n\nfunction userWithRoles(...roleIds: string[]): AuthorizationUserLike {\n return { UserRoles: roleIds.map(RoleID => ({ RoleID })) };\n}\n\ndescribe('UserHoldsAuthorization', () => {\n describe('grants', () => {\n it('returns true when one of the user roles has an Allow row on the active authorization', () => {\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(true);\n });\n\n it('matches the authorization name case-insensitively with surrounding whitespace', () => {\n expect(\n UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), ' realtime: ADVANCED session controls ', source())\n ).toBe(true);\n });\n\n it('matches role ids across SQL Server (upper) vs PostgreSQL (lower) UUID casing', () => {\n const user = userWithRoles(ROLE_ADMIN.toLowerCase());\n const src = source({\n Authorizations: [{ ID: AUTH_ID.toLowerCase(), Name: REALTIME_ADVANCED_SESSION_CONTROLS, IsActive: true }],\n AuthorizationRoles: [{ AuthorizationID: AUTH_ID.toUpperCase(), RoleID: ROLE_ADMIN.toUpperCase(), Type: 'allow' }],\n });\n expect(UserHoldsAuthorization(user, REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(true);\n });\n\n it('grants when the user holds an unrelated role plus the allowed role', () => {\n expect(UserHoldsAuthorization(userWithRoles(ROLE_USER, ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(true);\n });\n });\n\n describe('denials', () => {\n it('returns false when none of the user roles is mapped to the authorization', () => {\n expect(UserHoldsAuthorization(userWithRoles(ROLE_USER), REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);\n });\n\n it('Deny on any user role vetoes an Allow on another role (Deny wins globally)', () => {\n const src = source({\n AuthorizationRoles: [\n { AuthorizationID: AUTH_ID, RoleID: ROLE_ADMIN, Type: 'Allow' },\n { AuthorizationID: AUTH_ID, RoleID: ROLE_USER, Type: 'Deny' },\n ],\n });\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN, ROLE_USER), REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(false);\n });\n\n it('returns false when the authorization is inactive', () => {\n const src = source({\n Authorizations: [{ ID: AUTH_ID, Name: REALTIME_ADVANCED_SESSION_CONTROLS, IsActive: false }],\n });\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(false);\n });\n\n it('returns false for an unknown authorization name', () => {\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), 'Some Other Authorization', source())).toBe(false);\n });\n\n it('treats a matching row with a null/blank Type as a Deny (missing data never grants)', () => {\n const src = source({\n AuthorizationRoles: [{ AuthorizationID: AUTH_ID, RoleID: ROLE_ADMIN, Type: null }],\n });\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, src)).toBe(false);\n });\n });\n\n describe('defensive missing-data shapes — always false', () => {\n it('null/undefined user', () => {\n expect(UserHoldsAuthorization(null, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);\n expect(UserHoldsAuthorization(undefined, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);\n });\n\n it('user with no roles', () => {\n expect(UserHoldsAuthorization({ UserRoles: [] }, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);\n expect(UserHoldsAuthorization({}, REALTIME_ADVANCED_SESSION_CONTROLS, source())).toBe(false);\n });\n\n it('null/undefined metadata source', () => {\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, null)).toBe(false);\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, undefined)).toBe(false);\n });\n\n it('metadata source missing either collection', () => {\n expect(\n UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source({ Authorizations: [] }))\n ).toBe(false);\n expect(\n UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), REALTIME_ADVANCED_SESSION_CONTROLS, source({ AuthorizationRoles: null }))\n ).toBe(false);\n });\n\n it('empty authorization name', () => {\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), '', source())).toBe(false);\n expect(UserHoldsAuthorization(userWithRoles(ROLE_ADMIN), ' ', source())).toBe(false);\n });\n });\n});\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=voice-session-narration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"voice-session-narration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/voice-session-narration.test.ts"],"names":[],"mappings":""}