@memberjunction/ng-conversations 5.43.0 → 5.45.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 (405) 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.d.ts +3 -1
  6. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
  7. package/dist/lib/components/artifact/artifact-share-modal.component.js +52 -52
  8. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  9. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  10. package/dist/lib/components/collection/collection-form-modal.component.js +10 -14
  11. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  12. package/dist/lib/components/collection/collection-share-modal.component.d.ts +3 -1
  13. package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
  14. package/dist/lib/components/collection/collection-share-modal.component.js +56 -56
  15. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  16. package/dist/lib/components/collection/collection-tree.component.d.ts +3 -1
  17. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  18. package/dist/lib/components/collection/collection-tree.component.js +10 -7
  19. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  20. package/dist/lib/components/collection/collection-view.component.d.ts +3 -1
  21. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  22. package/dist/lib/components/collection/collection-view.component.js +29 -41
  23. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  24. package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -0
  25. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  26. package/dist/lib/components/collection/collections-full-view.component.js +134 -166
  27. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  28. package/dist/lib/components/composer/ai-composer.component.d.ts +103 -0
  29. package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -0
  30. package/dist/lib/components/composer/ai-composer.component.js +263 -0
  31. package/dist/lib/components/composer/ai-composer.component.js.map +1 -0
  32. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +76 -12
  33. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  34. package/dist/lib/components/conversation/conversation-chat-area.component.js +522 -158
  35. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  36. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +1 -1
  37. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  38. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  39. package/dist/lib/components/conversation/pinned-messages-panel.component.js +6 -9
  40. package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
  41. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  42. package/dist/lib/components/library/library-full-view.component.js +20 -24
  43. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  44. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  45. package/dist/lib/components/members/members-modal.component.js +10 -11
  46. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  47. package/dist/lib/components/message/message-input.component.d.ts +87 -23
  48. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  49. package/dist/lib/components/message/message-input.component.js +245 -158
  50. package/dist/lib/components/message/message-input.component.js.map +1 -1
  51. package/dist/lib/components/message/message-item.component.d.ts +11 -3
  52. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  53. package/dist/lib/components/message/message-item.component.js +73 -21
  54. package/dist/lib/components/message/message-item.component.js.map +1 -1
  55. package/dist/lib/components/message/message-list.component.js +6 -9
  56. package/dist/lib/components/message/message-list.component.js.map +1 -1
  57. package/dist/lib/components/overlay/chat-overlay.component.d.ts +4 -1
  58. package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
  59. package/dist/lib/components/overlay/chat-overlay.component.js +9 -4
  60. package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
  61. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +45 -0
  62. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -1
  63. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +10 -0
  64. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -1
  65. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +46 -0
  66. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -0
  67. package/dist/lib/components/realtime/channels/client-context-channel.js +174 -0
  68. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -0
  69. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts +123 -0
  70. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts.map +1 -0
  71. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js +397 -0
  72. package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js.map +1 -0
  73. package/dist/lib/components/realtime/media/media-channel-state.d.ts +103 -0
  74. package/dist/lib/components/realtime/media/media-channel-state.d.ts.map +1 -0
  75. package/dist/lib/components/realtime/media/media-channel-state.js +143 -0
  76. package/dist/lib/components/realtime/media/media-channel-state.js.map +1 -0
  77. package/dist/lib/components/realtime/media/media-channel-tools.d.ts +24 -0
  78. package/dist/lib/components/realtime/media/media-channel-tools.d.ts.map +1 -0
  79. package/dist/lib/components/realtime/media/media-channel-tools.js +107 -0
  80. package/dist/lib/components/realtime/media/media-channel-tools.js.map +1 -0
  81. package/dist/lib/components/realtime/media/media-channel.d.ts +89 -0
  82. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -0
  83. package/dist/lib/components/realtime/media/media-channel.js +253 -0
  84. package/dist/lib/components/realtime/media/media-channel.js.map +1 -0
  85. package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts +141 -0
  86. package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts.map +1 -0
  87. package/dist/lib/components/realtime/media/realtime-media-surface.component.js +574 -0
  88. package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -0
  89. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +59 -14
  90. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
  91. package/dist/lib/components/realtime/realtime-activity-rail.component.js +277 -74
  92. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  93. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +28 -27
  94. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  95. package/dist/lib/components/realtime/realtime-agent-banner.component.js +144 -143
  96. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  97. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +12 -0
  98. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
  99. package/dist/lib/components/realtime/realtime-agent-picker.component.js +105 -43
  100. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
  101. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +2 -2
  102. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
  103. package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
  104. package/dist/lib/components/realtime/realtime-composer.component.d.ts +41 -7
  105. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  106. package/dist/lib/components/realtime/realtime-composer.component.js +216 -102
  107. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  108. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +0 -2
  109. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
  110. package/dist/lib/components/realtime/realtime-delegation-card.component.js +67 -71
  111. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  112. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +364 -44
  113. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  114. package/dist/lib/components/realtime/realtime-session-overlay.component.js +839 -153
  115. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  116. package/dist/lib/components/realtime/realtime-session-state.d.ts +5 -5
  117. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
  118. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
  119. package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts +70 -0
  120. package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts.map +1 -0
  121. package/dist/lib/components/realtime/realtime-surface-tab-style.js +115 -0
  122. package/dist/lib/components/realtime/realtime-surface-tab-style.js.map +1 -0
  123. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +55 -57
  124. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  125. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +165 -143
  126. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  127. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +80 -71
  128. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  129. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +83 -113
  130. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  131. package/dist/lib/components/realtime/realtime-ui-config.d.ts +270 -0
  132. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -0
  133. package/dist/lib/components/realtime/realtime-ui-config.js +212 -0
  134. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -0
  135. package/dist/lib/components/search/search-panel.component.d.ts +2 -0
  136. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  137. package/dist/lib/components/search/search-panel.component.js +92 -101
  138. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  139. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  140. package/dist/lib/components/share/share-modal.component.js +10 -11
  141. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  142. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  143. package/dist/lib/components/shared/user-picker.component.js +12 -15
  144. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  145. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +11 -3
  146. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  147. package/dist/lib/components/sidebar/conversation-sidebar.component.js +34 -10
  148. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  149. package/dist/lib/components/sidebar/routines-section.component.d.ts +73 -0
  150. package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -0
  151. package/dist/lib/components/sidebar/routines-section.component.js +211 -0
  152. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -0
  153. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +12 -0
  154. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  155. package/dist/lib/components/tasks/tasks-dropdown.component.js +37 -1
  156. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  157. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +16 -5
  158. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  159. package/dist/lib/components/workspace/conversation-workspace.component.js +51 -31
  160. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  161. package/dist/lib/composer-plugins/agent-mention.provider.d.ts +16 -0
  162. package/dist/lib/composer-plugins/agent-mention.provider.d.ts.map +1 -0
  163. package/dist/lib/composer-plugins/agent-mention.provider.js +28 -0
  164. package/dist/lib/composer-plugins/agent-mention.provider.js.map +1 -0
  165. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +20 -0
  166. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -0
  167. package/dist/lib/composer-plugins/base-conversation-mention.provider.js +32 -0
  168. package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -0
  169. package/dist/lib/composer-plugins/load-composer-plugins.d.ts +9 -0
  170. package/dist/lib/composer-plugins/load-composer-plugins.d.ts.map +1 -0
  171. package/dist/lib/composer-plugins/load-composer-plugins.js +17 -0
  172. package/dist/lib/composer-plugins/load-composer-plugins.js.map +1 -0
  173. package/dist/lib/composer-plugins/record-mention.provider.d.ts +14 -0
  174. package/dist/lib/composer-plugins/record-mention.provider.d.ts.map +1 -0
  175. package/dist/lib/composer-plugins/record-mention.provider.js +26 -0
  176. package/dist/lib/composer-plugins/record-mention.provider.js.map +1 -0
  177. package/dist/lib/composer-plugins/skill-command.provider.d.ts +15 -0
  178. package/dist/lib/composer-plugins/skill-command.provider.d.ts.map +1 -0
  179. package/dist/lib/composer-plugins/skill-command.provider.js +27 -0
  180. package/dist/lib/composer-plugins/skill-command.provider.js.map +1 -0
  181. package/dist/lib/conversations.module.d.ts +68 -64
  182. package/dist/lib/conversations.module.d.ts.map +1 -1
  183. package/dist/lib/conversations.module.js +69 -18
  184. package/dist/lib/conversations.module.js.map +1 -1
  185. package/dist/lib/models/conversation-state.model.d.ts +6 -3
  186. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  187. package/dist/lib/models/conversation-state.model.js.map +1 -1
  188. package/dist/lib/services/conversation-agent.service.d.ts +9 -2
  189. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  190. package/dist/lib/services/conversation-agent.service.js +26 -2
  191. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  192. package/dist/lib/services/conversation-attachment.service.d.ts +1 -1
  193. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  194. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  195. package/dist/lib/services/mention-autocomplete.service.d.ts +42 -19
  196. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  197. package/dist/lib/services/mention-autocomplete.service.js +113 -18
  198. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  199. package/dist/lib/services/realtime-audio-recorder.d.ts +143 -0
  200. package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -0
  201. package/dist/lib/services/realtime-audio-recorder.js +379 -0
  202. package/dist/lib/services/realtime-audio-recorder.js.map +1 -0
  203. package/dist/lib/services/realtime-pcm-wav.d.ts +75 -0
  204. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -0
  205. package/dist/lib/services/realtime-pcm-wav.js +205 -0
  206. package/dist/lib/services/realtime-pcm-wav.js.map +1 -0
  207. package/dist/lib/services/realtime-session-review.service.d.ts +28 -1
  208. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  209. package/dist/lib/services/realtime-session-review.service.js +12 -3
  210. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  211. package/dist/lib/services/realtime-session.service.d.ts +210 -20
  212. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  213. package/dist/lib/services/realtime-session.service.js +452 -21
  214. package/dist/lib/services/realtime-session.service.js.map +1 -1
  215. package/dist/lib/services/realtime-sessions-adapter.js +1 -1
  216. package/dist/lib/services/realtime-sessions-adapter.js.map +1 -1
  217. package/dist/lib/services/ui-command-handler.service.d.ts +7 -2
  218. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  219. package/dist/lib/services/ui-command-handler.service.js +6 -2
  220. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  221. package/dist/lib/utils/plan-mode-preference.d.ts +62 -0
  222. package/dist/lib/utils/plan-mode-preference.d.ts.map +1 -0
  223. package/dist/lib/utils/plan-mode-preference.js +130 -0
  224. package/dist/lib/utils/plan-mode-preference.js.map +1 -0
  225. package/dist/public-api.d.ts +29 -3
  226. package/dist/public-api.d.ts.map +1 -1
  227. package/dist/public-api.js +46 -3
  228. package/dist/public-api.js.map +1 -1
  229. package/package.json +30 -26
  230. package/dist/__tests__/attachment-badge.test.d.ts +0 -2
  231. package/dist/__tests__/attachment-badge.test.d.ts.map +0 -1
  232. package/dist/__tests__/attachment-badge.test.js +0 -66
  233. package/dist/__tests__/attachment-badge.test.js.map +0 -1
  234. package/dist/__tests__/channel-optional-surface.test.d.ts +0 -2
  235. package/dist/__tests__/channel-optional-surface.test.d.ts.map +0 -1
  236. package/dist/__tests__/channel-optional-surface.test.js +0 -53
  237. package/dist/__tests__/channel-optional-surface.test.js.map +0 -1
  238. package/dist/__tests__/chat-events.test.d.ts +0 -14
  239. package/dist/__tests__/chat-events.test.d.ts.map +0 -1
  240. package/dist/__tests__/chat-events.test.js +0 -109
  241. package/dist/__tests__/chat-events.test.js.map +0 -1
  242. package/dist/__tests__/collections-full-view.test.d.ts +0 -2
  243. package/dist/__tests__/collections-full-view.test.d.ts.map +0 -1
  244. package/dist/__tests__/collections-full-view.test.js +0 -225
  245. package/dist/__tests__/collections-full-view.test.js.map +0 -1
  246. package/dist/__tests__/conversation-cache.test.d.ts +0 -2
  247. package/dist/__tests__/conversation-cache.test.d.ts.map +0 -1
  248. package/dist/__tests__/conversation-cache.test.js +0 -233
  249. package/dist/__tests__/conversation-cache.test.js.map +0 -1
  250. package/dist/__tests__/conversation-naming.test.d.ts +0 -2
  251. package/dist/__tests__/conversation-naming.test.d.ts.map +0 -1
  252. package/dist/__tests__/conversation-naming.test.js +0 -110
  253. package/dist/__tests__/conversation-naming.test.js.map +0 -1
  254. package/dist/__tests__/delegation-result-parser.test.d.ts +0 -2
  255. package/dist/__tests__/delegation-result-parser.test.d.ts.map +0 -1
  256. package/dist/__tests__/delegation-result-parser.test.js +0 -107
  257. package/dist/__tests__/delegation-result-parser.test.js.map +0 -1
  258. package/dist/__tests__/distinct-artifacts.test.d.ts +0 -2
  259. package/dist/__tests__/distinct-artifacts.test.d.ts.map +0 -1
  260. package/dist/__tests__/distinct-artifacts.test.js +0 -56
  261. package/dist/__tests__/distinct-artifacts.test.js.map +0 -1
  262. package/dist/__tests__/event-wiring.test.d.ts +0 -15
  263. package/dist/__tests__/event-wiring.test.d.ts.map +0 -1
  264. package/dist/__tests__/event-wiring.test.js +0 -100
  265. package/dist/__tests__/event-wiring.test.js.map +0 -1
  266. package/dist/__tests__/index.test.d.ts +0 -2
  267. package/dist/__tests__/index.test.d.ts.map +0 -1
  268. package/dist/__tests__/index.test.js +0 -7
  269. package/dist/__tests__/index.test.js.map +0 -1
  270. package/dist/__tests__/narration-template.test.d.ts +0 -2
  271. package/dist/__tests__/narration-template.test.d.ts.map +0 -1
  272. package/dist/__tests__/narration-template.test.js +0 -76
  273. package/dist/__tests__/narration-template.test.js.map +0 -1
  274. package/dist/__tests__/notification-model.test.d.ts +0 -2
  275. package/dist/__tests__/notification-model.test.d.ts.map +0 -1
  276. package/dist/__tests__/notification-model.test.js +0 -68
  277. package/dist/__tests__/notification-model.test.js.map +0 -1
  278. package/dist/__tests__/realtime-agent-picker-models.test.d.ts +0 -2
  279. package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +0 -1
  280. package/dist/__tests__/realtime-agent-picker-models.test.js +0 -49
  281. package/dist/__tests__/realtime-agent-picker-models.test.js.map +0 -1
  282. package/dist/__tests__/realtime-audio-visuals.test.d.ts +0 -2
  283. package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +0 -1
  284. package/dist/__tests__/realtime-audio-visuals.test.js +0 -123
  285. package/dist/__tests__/realtime-audio-visuals.test.js.map +0 -1
  286. package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +0 -2
  287. package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +0 -1
  288. package/dist/__tests__/realtime-delegation-card-cancel.test.js +0 -48
  289. package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +0 -1
  290. package/dist/__tests__/realtime-disclosure.test.d.ts +0 -2
  291. package/dist/__tests__/realtime-disclosure.test.d.ts.map +0 -1
  292. package/dist/__tests__/realtime-disclosure.test.js +0 -164
  293. package/dist/__tests__/realtime-disclosure.test.js.map +0 -1
  294. package/dist/__tests__/realtime-pairing.test.d.ts +0 -2
  295. package/dist/__tests__/realtime-pairing.test.d.ts.map +0 -1
  296. package/dist/__tests__/realtime-pairing.test.js +0 -207
  297. package/dist/__tests__/realtime-pairing.test.js.map +0 -1
  298. package/dist/__tests__/realtime-review-lifecycle.test.d.ts +0 -2
  299. package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +0 -1
  300. package/dist/__tests__/realtime-review-lifecycle.test.js +0 -154
  301. package/dist/__tests__/realtime-review-lifecycle.test.js.map +0 -1
  302. package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +0 -2
  303. package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +0 -1
  304. package/dist/__tests__/realtime-session-cancel-usage.test.js +0 -230
  305. package/dist/__tests__/realtime-session-cancel-usage.test.js.map +0 -1
  306. package/dist/__tests__/realtime-session-channels.test.d.ts +0 -2
  307. package/dist/__tests__/realtime-session-channels.test.d.ts.map +0 -1
  308. package/dist/__tests__/realtime-session-channels.test.js +0 -252
  309. package/dist/__tests__/realtime-session-channels.test.js.map +0 -1
  310. package/dist/__tests__/realtime-session-client-tools.test.d.ts +0 -2
  311. package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +0 -1
  312. package/dist/__tests__/realtime-session-client-tools.test.js +0 -103
  313. package/dist/__tests__/realtime-session-client-tools.test.js.map +0 -1
  314. package/dist/__tests__/realtime-session-minimized.test.d.ts +0 -2
  315. package/dist/__tests__/realtime-session-minimized.test.d.ts.map +0 -1
  316. package/dist/__tests__/realtime-session-minimized.test.js +0 -32
  317. package/dist/__tests__/realtime-session-minimized.test.js.map +0 -1
  318. package/dist/__tests__/realtime-session-mint.test.d.ts +0 -2
  319. package/dist/__tests__/realtime-session-mint.test.d.ts.map +0 -1
  320. package/dist/__tests__/realtime-session-mint.test.js +0 -69
  321. package/dist/__tests__/realtime-session-mint.test.js.map +0 -1
  322. package/dist/__tests__/realtime-session-policy.test.d.ts +0 -2
  323. package/dist/__tests__/realtime-session-policy.test.d.ts.map +0 -1
  324. package/dist/__tests__/realtime-session-policy.test.js +0 -303
  325. package/dist/__tests__/realtime-session-policy.test.js.map +0 -1
  326. package/dist/__tests__/realtime-session-review.service.test.d.ts +0 -2
  327. package/dist/__tests__/realtime-session-review.service.test.d.ts.map +0 -1
  328. package/dist/__tests__/realtime-session-review.service.test.js +0 -743
  329. package/dist/__tests__/realtime-session-review.service.test.js.map +0 -1
  330. package/dist/__tests__/realtime-session-state.test.d.ts +0 -2
  331. package/dist/__tests__/realtime-session-state.test.d.ts.map +0 -1
  332. package/dist/__tests__/realtime-session-state.test.js +0 -83
  333. package/dist/__tests__/realtime-session-state.test.js.map +0 -1
  334. package/dist/__tests__/realtime-session-timeline-card.test.d.ts +0 -2
  335. package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +0 -1
  336. package/dist/__tests__/realtime-session-timeline-card.test.js +0 -106
  337. package/dist/__tests__/realtime-session-timeline-card.test.js.map +0 -1
  338. package/dist/__tests__/realtime-session-timeline.test.d.ts +0 -2
  339. package/dist/__tests__/realtime-session-timeline.test.d.ts.map +0 -1
  340. package/dist/__tests__/realtime-session-timeline.test.js +0 -142
  341. package/dist/__tests__/realtime-session-timeline.test.js.map +0 -1
  342. package/dist/__tests__/realtime-sessions-adapter.test.d.ts +0 -19
  343. package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +0 -1
  344. package/dist/__tests__/realtime-sessions-adapter.test.js +0 -188
  345. package/dist/__tests__/realtime-sessions-adapter.test.js.map +0 -1
  346. package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +0 -2
  347. package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +0 -1
  348. package/dist/__tests__/realtime-surface-panel-prefs.test.js +0 -100
  349. package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +0 -1
  350. package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +0 -2
  351. package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +0 -1
  352. package/dist/__tests__/realtime-surface-tabs-model.test.js +0 -193
  353. package/dist/__tests__/realtime-surface-tabs-model.test.js.map +0 -1
  354. package/dist/__tests__/remote-browser-audio-player.test.d.ts +0 -2
  355. package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +0 -1
  356. package/dist/__tests__/remote-browser-audio-player.test.js +0 -137
  357. package/dist/__tests__/remote-browser-audio-player.test.js.map +0 -1
  358. package/dist/__tests__/remote-browser-channel.test.d.ts +0 -2
  359. package/dist/__tests__/remote-browser-channel.test.d.ts.map +0 -1
  360. package/dist/__tests__/remote-browser-channel.test.js +0 -585
  361. package/dist/__tests__/remote-browser-channel.test.js.map +0 -1
  362. package/dist/__tests__/search-service.test.d.ts +0 -2
  363. package/dist/__tests__/search-service.test.d.ts.map +0 -1
  364. package/dist/__tests__/search-service.test.js +0 -114
  365. package/dist/__tests__/search-service.test.js.map +0 -1
  366. package/dist/__tests__/slot-defaults.test.d.ts +0 -24
  367. package/dist/__tests__/slot-defaults.test.d.ts.map +0 -1
  368. package/dist/__tests__/slot-defaults.test.js +0 -63
  369. package/dist/__tests__/slot-defaults.test.js.map +0 -1
  370. package/dist/__tests__/toast-service.test.d.ts +0 -2
  371. package/dist/__tests__/toast-service.test.d.ts.map +0 -1
  372. package/dist/__tests__/toast-service.test.js +0 -143
  373. package/dist/__tests__/toast-service.test.js.map +0 -1
  374. package/dist/__tests__/user-authorization.test.d.ts +0 -2
  375. package/dist/__tests__/user-authorization.test.d.ts.map +0 -1
  376. package/dist/__tests__/user-authorization.test.js +0 -97
  377. package/dist/__tests__/user-authorization.test.js.map +0 -1
  378. package/dist/__tests__/voice-session-narration.test.d.ts +0 -2
  379. package/dist/__tests__/voice-session-narration.test.d.ts.map +0 -1
  380. package/dist/__tests__/voice-session-narration.test.js +0 -609
  381. package/dist/__tests__/voice-session-narration.test.js.map +0 -1
  382. package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +0 -2
  383. package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +0 -1
  384. package/dist/__tests__/whiteboard-artifact-viewer.test.js +0 -101
  385. package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +0 -1
  386. package/dist/__tests__/whiteboard-channel.test.d.ts +0 -2
  387. package/dist/__tests__/whiteboard-channel.test.d.ts.map +0 -1
  388. package/dist/__tests__/whiteboard-channel.test.js +0 -260
  389. package/dist/__tests__/whiteboard-channel.test.js.map +0 -1
  390. package/dist/__tests__/whiteboard-restore-state.test.d.ts +0 -2
  391. package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +0 -1
  392. package/dist/__tests__/whiteboard-restore-state.test.js +0 -108
  393. package/dist/__tests__/whiteboard-restore-state.test.js.map +0 -1
  394. package/dist/lib/components/mention/mention-dropdown.component.d.ts +0 -53
  395. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +0 -1
  396. package/dist/lib/components/mention/mention-dropdown.component.js +0 -276
  397. package/dist/lib/components/mention/mention-dropdown.component.js.map +0 -1
  398. package/dist/lib/components/mention/mention-editor.component.d.ts +0 -256
  399. package/dist/lib/components/mention/mention-editor.component.d.ts.map +0 -1
  400. package/dist/lib/components/mention/mention-editor.component.js +0 -1233
  401. package/dist/lib/components/mention/mention-editor.component.js.map +0 -1
  402. package/dist/lib/components/message/message-input-box.component.d.ts +0 -137
  403. package/dist/lib/components/message/message-input-box.component.d.ts.map +0 -1
  404. package/dist/lib/components/message/message-input-box.component.js +0 -321
  405. package/dist/lib/components/message/message-input-box.component.js.map +0 -1
@@ -16,9 +16,7 @@ function MembersModalComponent_Conditional_0_For_9_Template(rf, ctx) { if (rf &
16
16
  i0.ɵɵtextInterpolate(option_r3.label);
17
17
  } }
18
18
  function MembersModalComponent_Conditional_0_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "div", 14)(1, "p");
20
- i0.ɵɵtext(2, "No additional members yet");
21
- i0.ɵɵelementEnd()();
19
+ i0.ɵɵelement(0, "mj-empty-state", 14);
22
20
  } }
23
21
  function MembersModalComponent_Conditional_0_Conditional_15_For_3_Conditional_11_Template(rf, ctx) { if (rf & 1) {
24
22
  const _r4 = i0.ɵɵgetCurrentView();
@@ -56,7 +54,7 @@ function MembersModalComponent_Conditional_0_Conditional_15_For_3_Template(rf, c
56
54
  } }
57
55
  function MembersModalComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
58
56
  i0.ɵɵelementStart(0, "div", 10);
59
- i0.ɵɵconditionalCreate(1, MembersModalComponent_Conditional_0_Conditional_15_Conditional_1_Template, 3, 0, "div", 14);
57
+ i0.ɵɵconditionalCreate(1, MembersModalComponent_Conditional_0_Conditional_15_Conditional_1_Template, 1, 0, "mj-empty-state", 14);
60
58
  i0.ɵɵrepeaterCreate(2, MembersModalComponent_Conditional_0_Conditional_15_For_3_Template, 12, 6, "div", 15, i0.ɵɵrepeaterTrackByIdentity);
61
59
  i0.ɵɵelementEnd();
62
60
  } if (rf & 2) {
@@ -258,11 +256,11 @@ export class MembersModalComponent {
258
256
  this.isVisible = false;
259
257
  }
260
258
  static ɵfac = function MembersModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MembersModalComponent)(i0.ɵɵdirectiveInject(i1.DialogService)); };
261
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MembersModalComponent, selectors: [["mj-members-modal"]], inputs: { isVisible: "isVisible", conversation: "conversation", currentUser: "currentUser" }, outputs: { cancelled: "cancelled", membersChanged: "membersChanged" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "members-modal-content"], [1, "add-member-section"], [1, "add-member-form"], ["type", "text", "placeholder", "Enter email address", 1, "mj-textbox", 2, "flex", "1", 3, "ngModelChange", "ngModel"], [1, "mj-select", 2, "width", "120px", 3, "ngModelChange", "ngModel"], [3, "value"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "members-section"], [1, "members-list"], [1, "loading-indicator"], [1, "error-message"], ["mjButton", "", 3, "click"], [1, "empty-state"], [1, "member-item"], [1, "member-info"], [1, "fas", "fa-user-circle"], [1, "member-details"], [1, "member-name"], [1, "member-email"], [1, "member-controls"], [1, "member-role"], ["title", "Remove member", 1, "btn-remove"], ["title", "Remove member", 1, "btn-remove", 3, "click"], [1, "fas", "fa-times"], ["text", "Loading members...", "size", "medium"]], template: function MembersModalComponent_Template(rf, ctx) { if (rf & 1) {
259
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MembersModalComponent, selectors: [["mj-members-modal"]], inputs: { isVisible: "isVisible", conversation: "conversation", currentUser: "currentUser" }, outputs: { cancelled: "cancelled", membersChanged: "membersChanged" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "members-modal-content"], [1, "add-member-section"], [1, "add-member-form"], ["type", "text", "placeholder", "Enter email address", 1, "mj-textbox", 2, "flex", "1", 3, "ngModelChange", "ngModel"], [1, "mj-select", 2, "width", "120px", 3, "ngModelChange", "ngModel"], [3, "value"], ["mjButton", "", "variant", "primary", 3, "click", "disabled"], [1, "members-section"], [1, "members-list"], [1, "loading-indicator"], [1, "error-message"], ["mjButton", "", 3, "click"], ["Icon", "fa-solid fa-user-group", "Title", "No additional members yet", "Size", "compact"], [1, "member-item"], [1, "member-info"], [1, "fas", "fa-user-circle"], [1, "member-details"], [1, "member-name"], [1, "member-email"], [1, "member-controls"], [1, "member-role"], ["title", "Remove member", 1, "btn-remove"], ["title", "Remove member", 1, "btn-remove", 3, "click"], [1, "fas", "fa-times"], ["text", "Loading members...", "size", "medium"]], template: function MembersModalComponent_Template(rf, ctx) { if (rf & 1) {
262
260
  i0.ɵɵconditionalCreate(0, MembersModalComponent_Conditional_0_Template, 21, 11, "mj-dialog", 0);
263
261
  } if (rf & 2) {
264
262
  i0.ɵɵconditional(ctx.isVisible ? 0 : -1);
265
- } }, dependencies: [i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJButtonDirective, i3.MJDialogComponent, i3.MJDialogActionsComponent, i4.LoadingComponent], styles: [".members-modal-content[_ngcontent-%COMP%] {\n padding: 20px;\n }\n\n h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .add-member-form[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .members-list[_ngcontent-%COMP%] {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item[_ngcontent-%COMP%] {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .member-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #999;\n }\n\n .member-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n }\n\n .member-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role[_ngcontent-%COMP%] {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner[_ngcontent-%COMP%] {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove[_ngcontent-%COMP%] {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove[_ngcontent-%COMP%]:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 24px;\n text-align: center;\n color: #999;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n }\n\n .loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message[_ngcontent-%COMP%] {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }"] });
263
+ } }, dependencies: [i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJButtonDirective, i3.MJDialogComponent, i3.MJDialogActionsComponent, i3.MJEmptyStateComponent, i4.LoadingComponent], styles: [".members-modal-content[_ngcontent-%COMP%] {\n padding: 20px;\n }\n\n h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .add-member-form[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .members-list[_ngcontent-%COMP%] {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item[_ngcontent-%COMP%] {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .member-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #999;\n }\n\n .member-details[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n }\n\n .member-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role[_ngcontent-%COMP%] {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner[_ngcontent-%COMP%] {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove[_ngcontent-%COMP%] {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove[_ngcontent-%COMP%]:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message[_ngcontent-%COMP%] {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }"] });
266
264
  }
267
265
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MembersModalComponent, [{
268
266
  type: Component,
@@ -302,9 +300,10 @@ export class MembersModalComponent {
302
300
  @if (!isLoading) {
303
301
  <div class="members-list">
304
302
  @if (members.length === 0) {
305
- <div class="empty-state">
306
- <p>No additional members yet</p>
307
- </div>
303
+ <mj-empty-state
304
+ Icon="fa-solid fa-user-group"
305
+ Title="No additional members yet"
306
+ Size="compact" />
308
307
  }
309
308
  @for (member of members; track member) {
310
309
  <div class="member-item">
@@ -349,7 +348,7 @@ export class MembersModalComponent {
349
348
  </mj-dialog-actions>
350
349
  </mj-dialog>
351
350
  }
352
- `, styles: ["\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .empty-state {\n padding: 24px;\n text-align: center;\n color: #999;\n }\n\n .empty-state p {\n margin: 0;\n font-size: 13px;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n "] }]
351
+ `, styles: ["\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n "] }]
353
352
  }], () => [{ type: i1.DialogService }], { isVisible: [{
354
353
  type: Input
355
354
  }], conversation: [{
@@ -361,5 +360,5 @@ export class MembersModalComponent {
361
360
  }], membersChanged: [{
362
361
  type: Output
363
362
  }] }); })();
364
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MembersModalComponent, { className: "MembersModalComponent", filePath: "src/lib/components/members/members-modal.component.ts", lineNumber: 240 }); })();
363
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MembersModalComponent, { className: "MembersModalComponent", filePath: "src/lib/components/members/members-modal.component.ts", lineNumber: 230 }); })();
365
364
  //# sourceMappingURL=members-modal.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"members-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\n\ninterface ConversationMember {\n id: string;\n userId: string;\n userName: string;\n userEmail: string;\n role: 'owner' | 'member';\n addedAt: Date;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-members-modal',\n template: `\n @if (isVisible) {\n <mj-dialog\n [Title]=\"modalTitle\"\n [Width]=\"600\"\n [Height]=\"500\"\n [Visible]=\"true\"\n (Close)=\"onCancel()\">\n <div class=\"members-modal-content\">\n <div class=\"add-member-section\">\n <h4>Add Member</h4>\n <div class=\"add-member-form\">\n <input\n type=\"text\"\n [(ngModel)]=\"newMemberEmail\"\n placeholder=\"Enter email address\"\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <select\n [(ngModel)]=\"newMemberRole\"\n class=\"mj-select\"\n style=\"width: 120px;\">\n @for (option of roleOptions; track option.value) {\n <option [value]=\"option.value\">{{ option.label }}</option>\n }\n </select>\n <button mjButton variant=\"primary\" [disabled]=\"isLoading\" (click)=\"onAddMember()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"members-section\">\n <h4>Current Members ({{ members.length }})</h4>\n @if (!isLoading) {\n <div class=\"members-list\">\n @if (members.length === 0) {\n <div class=\"empty-state\">\n <p>No additional members yet</p>\n </div>\n }\n @for (member of members; track member) {\n <div class=\"member-item\">\n <div class=\"member-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"member-details\">\n <div class=\"member-name\">{{ member.userName }}</div>\n <div class=\"member-email\">{{ member.userEmail }}</div>\n </div>\n </div>\n <div class=\"member-controls\">\n <span class=\"member-role\" [class.owner]=\"member.role === 'owner'\">\n {{ member.role === 'owner' ? 'Owner' : 'Member' }}\n </span>\n @if (member.role !== 'owner') {\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveMember(member)\"\n title=\"Remove member\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n @if (isLoading) {\n <div class=\"loading-indicator\">\n <mj-loading text=\"Loading members...\" size=\"medium\"></mj-loading>\n </div>\n }\n </div>\n @if (errorMessage) {\n <div class=\"error-message\">\n {{ errorMessage }}\n </div>\n }\n </div>\n <mj-dialog-actions>\n <button mjButton (click)=\"onCancel()\">Close</button>\n </mj-dialog-actions>\n </mj-dialog>\n }\n `,\n styles: [`\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .empty-state {\n padding: 24px;\n text-align: center;\n color: #999;\n }\n\n .empty-state p {\n margin: 0;\n font-size: 13px;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n `]\n})\nexport class MembersModalComponent {\n @Input() isVisible = false;\n @Input() conversation?: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Output() cancelled = new EventEmitter<void>();\n @Output() membersChanged = new EventEmitter<void>();\n\n members: ConversationMember[] = [];\n newMemberEmail = '';\n newMemberRole: 'member' | 'owner' = 'member';\n isLoading = false;\n errorMessage = '';\n\n get modalTitle(): string {\n return `Manage Members: ${this.conversation?.Name || 'Conversation'}`;\n }\n\n roleOptions = [\n { value: 'member', label: 'Member' },\n { value: 'owner', label: 'Owner' }\n ];\n\n constructor(private dialogService: DialogService) {}\n\n ngOnChanges(): void {\n if (this.isVisible && this.conversation) {\n this.loadMembers();\n }\n }\n\n private async loadMembers(): Promise<void> {\n if (!this.conversation) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Load from ConversationMembers entity when available\n // For now, show the owner\n this.members = [\n {\n id: 'owner-' + this.conversation.ID,\n userId: this.conversation.UserID || '',\n userName: 'Owner',\n userEmail: this.currentUser.Email,\n role: 'owner',\n addedAt: this.conversation.__mj_CreatedAt\n }\n ];\n } catch (error) {\n console.error('Error loading members:', error);\n this.errorMessage = 'Failed to load members';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onAddMember(): Promise<void> {\n const email = this.newMemberEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if already a member\n if (this.members.some(m => m.userEmail === email)) {\n await this.dialogService.alert('Already a Member', 'This user is already a member');\n return;\n }\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Create ConversationMember entity when available\n const newMember: ConversationMember = {\n id: 'temp-' + Date.now(),\n userId: 'unknown',\n userName: email.split('@')[0],\n userEmail: email,\n role: this.newMemberRole,\n addedAt: new Date()\n };\n\n this.members.push(newMember);\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error adding member:', error);\n this.errorMessage = 'Failed to add member';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onRemoveMember(member: ConversationMember): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Member',\n message: `Remove ${member.userEmail} from this conversation?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Delete ConversationMember entity when available\n this.members = this.members.filter(m => m.id !== member.id);\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error removing member:', error);\n this.errorMessage = 'Failed to remove member';\n } finally {\n this.isLoading = false;\n }\n }\n\n onCancel(): void {\n this.cancelled.emit();\n this.resetForm();\n }\n\n private resetForm(): void {\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.errorMessage = '';\n this.isVisible = false;\n }\n}\n"]}
1
+ {"version":3,"file":"members-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\n\ninterface ConversationMember {\n id: string;\n userId: string;\n userName: string;\n userEmail: string;\n role: 'owner' | 'member';\n addedAt: Date;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-members-modal',\n template: `\n @if (isVisible) {\n <mj-dialog\n [Title]=\"modalTitle\"\n [Width]=\"600\"\n [Height]=\"500\"\n [Visible]=\"true\"\n (Close)=\"onCancel()\">\n <div class=\"members-modal-content\">\n <div class=\"add-member-section\">\n <h4>Add Member</h4>\n <div class=\"add-member-form\">\n <input\n type=\"text\"\n [(ngModel)]=\"newMemberEmail\"\n placeholder=\"Enter email address\"\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <select\n [(ngModel)]=\"newMemberRole\"\n class=\"mj-select\"\n style=\"width: 120px;\">\n @for (option of roleOptions; track option.value) {\n <option [value]=\"option.value\">{{ option.label }}</option>\n }\n </select>\n <button mjButton variant=\"primary\" [disabled]=\"isLoading\" (click)=\"onAddMember()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"members-section\">\n <h4>Current Members ({{ members.length }})</h4>\n @if (!isLoading) {\n <div class=\"members-list\">\n @if (members.length === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-user-group\"\n Title=\"No additional members yet\"\n Size=\"compact\" />\n }\n @for (member of members; track member) {\n <div class=\"member-item\">\n <div class=\"member-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"member-details\">\n <div class=\"member-name\">{{ member.userName }}</div>\n <div class=\"member-email\">{{ member.userEmail }}</div>\n </div>\n </div>\n <div class=\"member-controls\">\n <span class=\"member-role\" [class.owner]=\"member.role === 'owner'\">\n {{ member.role === 'owner' ? 'Owner' : 'Member' }}\n </span>\n @if (member.role !== 'owner') {\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveMember(member)\"\n title=\"Remove member\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n @if (isLoading) {\n <div class=\"loading-indicator\">\n <mj-loading text=\"Loading members...\" size=\"medium\"></mj-loading>\n </div>\n }\n </div>\n @if (errorMessage) {\n <div class=\"error-message\">\n {{ errorMessage }}\n </div>\n }\n </div>\n <mj-dialog-actions>\n <button mjButton (click)=\"onCancel()\">Close</button>\n </mj-dialog-actions>\n </mj-dialog>\n }\n `,\n styles: [`\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n mj-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n `]\n})\nexport class MembersModalComponent {\n @Input() isVisible = false;\n @Input() conversation?: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Output() cancelled = new EventEmitter<void>();\n @Output() membersChanged = new EventEmitter<void>();\n\n members: ConversationMember[] = [];\n newMemberEmail = '';\n newMemberRole: 'member' | 'owner' = 'member';\n isLoading = false;\n errorMessage = '';\n\n get modalTitle(): string {\n return `Manage Members: ${this.conversation?.Name || 'Conversation'}`;\n }\n\n roleOptions = [\n { value: 'member', label: 'Member' },\n { value: 'owner', label: 'Owner' }\n ];\n\n constructor(private dialogService: DialogService) {}\n\n ngOnChanges(): void {\n if (this.isVisible && this.conversation) {\n this.loadMembers();\n }\n }\n\n private async loadMembers(): Promise<void> {\n if (!this.conversation) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Load from ConversationMembers entity when available\n // For now, show the owner\n this.members = [\n {\n id: 'owner-' + this.conversation.ID,\n userId: this.conversation.UserID || '',\n userName: 'Owner',\n userEmail: this.currentUser.Email,\n role: 'owner',\n addedAt: this.conversation.__mj_CreatedAt\n }\n ];\n } catch (error) {\n console.error('Error loading members:', error);\n this.errorMessage = 'Failed to load members';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onAddMember(): Promise<void> {\n const email = this.newMemberEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if already a member\n if (this.members.some(m => m.userEmail === email)) {\n await this.dialogService.alert('Already a Member', 'This user is already a member');\n return;\n }\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Create ConversationMember entity when available\n const newMember: ConversationMember = {\n id: 'temp-' + Date.now(),\n userId: 'unknown',\n userName: email.split('@')[0],\n userEmail: email,\n role: this.newMemberRole,\n addedAt: new Date()\n };\n\n this.members.push(newMember);\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error adding member:', error);\n this.errorMessage = 'Failed to add member';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onRemoveMember(member: ConversationMember): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Member',\n message: `Remove ${member.userEmail} from this conversation?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Delete ConversationMember entity when available\n this.members = this.members.filter(m => m.id !== member.id);\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error removing member:', error);\n this.errorMessage = 'Failed to remove member';\n } finally {\n this.isLoading = false;\n }\n }\n\n onCancel(): void {\n this.cancelled.emit();\n this.resetForm();\n }\n\n private resetForm(): void {\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.errorMessage = '';\n this.isVisible = false;\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, AfterViewInit } from '@angular/core';
2
+ import { ConnectedPosition } from '@angular/cdk/overlay';
2
3
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
3
4
  import { UserInfo } from '@memberjunction/core';
4
5
  import { MJConversationDetailEntity } from '@memberjunction/core-entities';
@@ -11,15 +12,14 @@ import { DataCacheService } from '../../services/data-cache.service';
11
12
  import { ActiveTasksService } from '../../services/active-tasks.service';
12
13
  import { ConversationStreamingService } from '../../services/conversation-streaming.service';
13
14
  import { ExecuteAgentResult } from '@memberjunction/ai-core-plus';
14
- import { MentionAutocompleteService } from '../../services/mention-autocomplete.service';
15
+ import { PendingAttachment } from '@memberjunction/ng-composer';
16
+ import { AiComposerComponent } from '../composer/ai-composer.component';
15
17
  import { MentionParserService } from '../../services/mention-parser.service';
16
18
  import { ConversationAttachmentService } from '../../services/conversation-attachment.service';
17
- import { PendingAttachment } from '../mention/mention-editor.component';
18
19
  import { LazyArtifactInfo } from '../../models/lazy-artifact-info';
19
20
  import { ConversationBridgeService } from '../../services/conversation-bridge.service';
20
21
  import { RealtimeSessionService } from '../../services/realtime-session.service';
21
22
  import { RealtimeAgentPick } from '../realtime/realtime-agent-picker.component';
22
- import { MessageInputBoxComponent } from './message-input-box.component';
23
23
  import * as i0 from "@angular/core";
24
24
  export declare class MessageInputComponent extends BaseAngularComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
25
25
  private dialogService;
@@ -29,10 +29,9 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
29
29
  private activeTasks;
30
30
  private streamingService;
31
31
  private mentionParser;
32
- private mentionAutocomplete;
33
32
  private attachmentService;
34
33
  private bridge;
35
- private voiceSession;
34
+ private realtimeSession;
36
35
  private readonly JSON_ARTIFACT_TYPE_ID;
37
36
  conversationId: string;
38
37
  conversationName?: string | null;
@@ -50,6 +49,35 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
50
49
  agentRunsByDetailId?: Map<string, MJAIAgentRunEntityExtended>;
51
50
  emptyStateMode: boolean;
52
51
  appContext: Record<string, unknown> | null;
52
+ /**
53
+ * Plan Mode toggle state — sticky PER CONVERSATION, OFF by default (no behavior change unless
54
+ * the user turns it on). When on, the user's next message(s) in THIS conversation request Plan
55
+ * Mode: the routed root agent must present a plan for approval before executing Actions/
56
+ * Sub-Agents. The toggle is always shown and the server enforces the `AIAgent.SupportsPlanMode`
57
+ * capability — a plan-mode request to an agent that doesn't support it simply no-ops the gate
58
+ * (see resolvePlanModeGate), so we don't need to resolve "the current agent" client-side.
59
+ *
60
+ * IMPORTANT: this is a GETTER over {@link PlanModePreference} (UserInfoEngine-backed), NOT a
61
+ * local field. The composer is mounted in multiple places at once (empty-state, chat-area,
62
+ * thread panel) — a local boolean per instance goes stale the moment another instance toggles.
63
+ * On the new-conversation composer (no conversationId yet) the value lives in a pending bucket
64
+ * that transfers to the real conversation on its first message. Approving a plan turns the
65
+ * conversation's flag OFF automatically (see message-item's plan-decision handling).
66
+ */
67
+ get PlanModeEnabled(): boolean;
68
+ /**
69
+ * Skill IDs the user requested via `/skill-name` mentions in the message being routed. Collected
70
+ * once per send from the composer's mention chips and forwarded to every agent-invocation path so
71
+ * whichever agent handles the message receives them as `RequestedSkillIDs`. The server intersects
72
+ * them with the agent's accepted skills AND the user's Run permission before any activate, so a
73
+ * skill the user can't run (or the agent doesn't accept) is silently dropped. Reset each send.
74
+ */
75
+ private _pendingRequestedSkillIDs;
76
+ /**
77
+ * Collects the skill IDs from `/skill` mention chips currently in the composer. Called at the
78
+ * start of routing so the value is stable for the whole message dispatch.
79
+ */
80
+ private collectRequestedSkillIDs;
53
81
  /**
54
82
  * Optional default agent ID for the conversation. When set, the FIRST
55
83
  * message routes directly to this agent — skipping Sage's default
@@ -99,6 +127,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
99
127
  private _initialMessage;
100
128
  private _initialAttachments;
101
129
  private _isComponentReady;
130
+ /** Conversation this input has already auto-sent its pending first message for. */
131
+ private _autoSentForConversationId;
102
132
  set initialMessage(value: string | null);
103
133
  get initialMessage(): string | null;
104
134
  set initialAttachments(value: PendingAttachment[] | null);
@@ -136,19 +166,23 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
136
166
  */
137
167
  afterAgentTurn: EventEmitter<AfterAgentTurnEventArgs>;
138
168
  agentRunDetected: EventEmitter<{
169
+ conversationId: string;
139
170
  conversationDetailId: string;
140
171
  agentRunId: string;
141
172
  }>;
142
173
  agentRunUpdate: EventEmitter<{
174
+ conversationId: string;
143
175
  conversationDetailId: string;
144
176
  agentRun?: any;
145
177
  agentRunId?: string;
146
178
  }>;
147
179
  messageComplete: EventEmitter<{
180
+ conversationId: string;
148
181
  conversationDetailId: string;
149
182
  agentId?: string;
150
183
  }>;
151
184
  artifactCreated: EventEmitter<{
185
+ conversationId: string;
152
186
  artifactId: string;
153
187
  versionId: string;
154
188
  versionNumber: number;
@@ -160,8 +194,18 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
160
194
  name: string;
161
195
  description: string;
162
196
  }>;
163
- intentCheckStarted: EventEmitter<void>;
164
- intentCheckCompleted: EventEmitter<void>;
197
+ intentCheckStarted: EventEmitter<{
198
+ conversationId: string;
199
+ }>;
200
+ intentCheckCompleted: EventEmitter<{
201
+ conversationId: string;
202
+ }>;
203
+ initialMessageAutoSendStarted: EventEmitter<{
204
+ conversationId: string;
205
+ }>;
206
+ initialMessageAutoSendFailed: EventEmitter<{
207
+ conversationId: string;
208
+ }>;
165
209
  emptyStateSubmit: EventEmitter<{
166
210
  text: string;
167
211
  attachments: PendingAttachment[];
@@ -170,8 +214,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
170
214
  isUploading: boolean;
171
215
  message: string;
172
216
  }>;
173
- artifactPickerRequested: EventEmitter<void>;
174
- inputBox: MessageInputBoxComponent;
217
+ inputBox: AiComposerComponent;
175
218
  messageText: string;
176
219
  isSending: boolean;
177
220
  isProcessing: boolean;
@@ -183,10 +226,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
183
226
  private registeredCallbacks;
184
227
  private pendingAttachments;
185
228
  private engine;
186
- constructor(dialogService: DialogService, toastService: ToastService, agentService: ConversationAgentService, dataCache: DataCacheService, activeTasks: ActiveTasksService, streamingService: ConversationStreamingService, mentionParser: MentionParserService, mentionAutocomplete: MentionAutocompleteService, attachmentService: ConversationAttachmentService, bridge: ConversationBridgeService, voiceSession: RealtimeSessionService);
229
+ private mentionAutocomplete;
230
+ constructor(dialogService: DialogService, toastService: ToastService, agentService: ConversationAgentService, dataCache: DataCacheService, activeTasks: ActiveTasksService, streamingService: ConversationStreamingService, mentionParser: MentionParserService, attachmentService: ConversationAttachmentService, bridge: ConversationBridgeService, realtimeSession: RealtimeSessionService);
187
231
  /** True while a live voice session is active — drives the overlay + mic state. */
188
232
  voiceActive: boolean;
189
- private voiceActiveSub?;
233
+ private realtimeActiveSub?;
190
234
  ngOnInit(): Promise<void>;
191
235
  ngOnChanges(changes: SimpleChanges): void;
192
236
  ngAfterViewInit(): void;
@@ -207,15 +251,23 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
207
251
  */
208
252
  resolveCurrentAgentId(): string | null;
209
253
  /** True when the mic button should be enabled (have an agent + not disabled). */
210
- get canStartVoice(): boolean;
254
+ get canStartRealtime(): boolean;
211
255
  /**
212
256
  * Display name of the agent the voice session fronts. Resolved here (this component
213
257
  * owns the conversation's routing context) and passed to RealtimeSessionService at
214
258
  * session start so the chat-area-hosted overlay can read it from the service.
215
259
  */
216
- private resolveVoiceAgentName;
260
+ private resolveRealtimeAgentName;
217
261
  /** True while the "Start a voice call with…" agent picker popover is open. */
218
262
  showRealtimeAgentPicker: boolean;
263
+ /**
264
+ * CDK connected-overlay positions for the voice agent picker. Preferred: open UPWARD,
265
+ * right edge aligned to the composer's right edge (matching the old absolute placement).
266
+ * Fallback: open downward when there isn't room above. Because the popover renders in the
267
+ * body-level CDK overlay container (with `cdkConnectedOverlayPush`), it escapes the chat
268
+ * overlay's `overflow: hidden` border and can never clip at the top of a narrow overlay.
269
+ */
270
+ readonly pickerOverlayPositions: ConnectedPosition[];
219
271
  /**
220
272
  * `MJ: User Settings` key persisting the user's co-agent choice for realtime calls
221
273
  * (server-side, cross-device — never localStorage). Stored shape: `{"coAgentId":
@@ -229,7 +281,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
229
281
  voicePickerDefaultCoAgentId: string | null;
230
282
  /**
231
283
  * Agents the voice picker offers — the same cached set the @mention
232
- * autocomplete and {@link resolveVoiceAgentName} use, so the picker can
284
+ * autocomplete and {@link resolveRealtimeAgentName} use, so the picker can
233
285
  * never offer an agent the conversation couldn't otherwise route to.
234
286
  */
235
287
  get voicePickerAgents(): MJAIAgentEntityExtended[];
@@ -255,7 +307,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
255
307
  * the user never chose — so show a compact agent picker instead and start
256
308
  * with whichever agent they pick.
257
309
  */
258
- onStartVoice(): Promise<void>;
310
+ onStartRealtime(): Promise<void>;
259
311
  /**
260
312
  * Caret-next-to-the-phone click: open the agent/co-agent/model picker ON DEMAND, even
261
313
  * when the conversation already has agent history (where the plain phone click
@@ -264,7 +316,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
264
316
  * choice one click away. Falls through to the instant path when there is nothing to
265
317
  * pick from.
266
318
  */
267
- onVoiceOptions(): Promise<void>;
319
+ onRealtimeOptions(): Promise<void>;
268
320
  /** Loads the persisted co-agent preference, then shows the picker (pref preselected). */
269
321
  private openRealtimeAgentPicker;
270
322
  /** User confirmed an agent (+ optional co-agent / voice model) in the voice picker — start the call. */
@@ -303,7 +355,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
303
355
  * passed here — the session service resolves the active channel plugins from the
304
356
  * `MJ: AI Agent Channels` registry and aggregates their tool sets at mint itself.
305
357
  */
306
- private startVoiceWithAgent;
358
+ private startRealtimeWithAgent;
307
359
  /**
308
360
  * Focus the message input textarea
309
361
  */
@@ -336,14 +388,18 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
336
388
  * Handle attachment errors from the input box
337
389
  */
338
390
  onAttachmentError(error: string): void;
339
- /**
340
- * Handle artifact picker request — bubble up to parent
341
- */
342
- onArtifactPickerRequested(): void;
343
391
  /**
344
392
  * Handle text submitted from the input box
345
393
  */
346
394
  onTextSubmitted(text: string): Promise<void>;
395
+ /**
396
+ * Toggle sticky Plan Mode for THIS conversation (or the pending-new bucket on the
397
+ * new-conversation composer). Writes through {@link PlanModePreference} — the
398
+ * {@link PlanModeEnabled} getter reads the same cached setting, so ALL live composer
399
+ * instances flip together, and the value survives component recreation and sessions
400
+ * until the user turns it off or approves a plan.
401
+ */
402
+ TogglePlanMode(): void;
347
403
  onSend(): Promise<void>;
348
404
  /**
349
405
  * Send a message with custom text WITHOUT modifying the visible messageText input
@@ -356,7 +412,7 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
356
412
  * `this.pendingAttachments` may not contain the attachment. Pass it in
357
413
  * explicitly and we merge + dedupe (by `id`) before saving.
358
414
  */
359
- sendMessageWithText(text: string, extraAttachments?: PendingAttachment[]): Promise<void>;
415
+ sendMessageWithText(text: string, extraAttachments?: PendingAttachment[]): Promise<boolean>;
360
416
  /**
361
417
  * Creates and configures a new conversation detail message
362
418
  */
@@ -511,11 +567,19 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
511
567
  * Emits event to parent to refresh agent run data from database
512
568
  */
513
569
  private markMessageComplete;
570
+ /**
571
+ * Emit an artifact-reload signal for {@link detail}. The artifact metadata fields are
572
+ * placeholders — the parent reloads the real artifacts from the DB; the only fields it
573
+ * consumes are conversationDetailId and conversationId (the latter lets it drop events from
574
+ * a background conversation after a conversation swap). conversationId is taken from the
575
+ * detail entity's immutable ConversationID, never this.conversationId.
576
+ */
577
+ private emitArtifactReload;
514
578
  /**
515
579
  * Cleans up completion timestamps for completed messages (prevents memory leak)
516
580
  */
517
581
  private cleanupCompletionTimestamp;
518
582
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputComponent, never>;
519
- static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "mj-message-input", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "conversationName": { "alias": "conversationName"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "parentMessageId": { "alias": "parentMessageId"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "artifactsByDetailId": { "alias": "artifactsByDetailId"; "required": false; }; "systemArtifactsByDetailId": { "alias": "systemArtifactsByDetailId"; "required": false; }; "agentRunsByDetailId": { "alias": "agentRunsByDetailId"; "required": false; }; "emptyStateMode": { "alias": "emptyStateMode"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "conversationDefaultAgentId": { "alias": "conversationDefaultAgentId"; "required": false; }; "agentConfigurationPresetId": { "alias": "agentConfigurationPresetId"; "required": false; }; "initialMessage": { "alias": "initialMessage"; "required": false; }; "initialAttachments": { "alias": "initialAttachments"; "required": false; }; "conversationHistory": { "alias": "conversationHistory"; "required": false; }; "inProgressMessageIds": { "alias": "inProgressMessageIds"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; }, { "messageSent": "messageSent"; "agentResponse": "agentResponse"; "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "agentRunDetected": "agentRunDetected"; "agentRunUpdate": "agentRunUpdate"; "messageComplete": "messageComplete"; "artifactCreated": "artifactCreated"; "conversationRenamed": "conversationRenamed"; "intentCheckStarted": "intentCheckStarted"; "intentCheckCompleted": "intentCheckCompleted"; "emptyStateSubmit": "emptyStateSubmit"; "uploadStateChanged": "uploadStateChanged"; "artifactPickerRequested": "artifactPickerRequested"; }, never, never, false, never>;
583
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "mj-message-input", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "conversationName": { "alias": "conversationName"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "parentMessageId": { "alias": "parentMessageId"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "artifactsByDetailId": { "alias": "artifactsByDetailId"; "required": false; }; "systemArtifactsByDetailId": { "alias": "systemArtifactsByDetailId"; "required": false; }; "agentRunsByDetailId": { "alias": "agentRunsByDetailId"; "required": false; }; "emptyStateMode": { "alias": "emptyStateMode"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "conversationDefaultAgentId": { "alias": "conversationDefaultAgentId"; "required": false; }; "agentConfigurationPresetId": { "alias": "agentConfigurationPresetId"; "required": false; }; "initialMessage": { "alias": "initialMessage"; "required": false; }; "initialAttachments": { "alias": "initialAttachments"; "required": false; }; "conversationHistory": { "alias": "conversationHistory"; "required": false; }; "inProgressMessageIds": { "alias": "inProgressMessageIds"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; }, { "messageSent": "messageSent"; "agentResponse": "agentResponse"; "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "agentRunDetected": "agentRunDetected"; "agentRunUpdate": "agentRunUpdate"; "messageComplete": "messageComplete"; "artifactCreated": "artifactCreated"; "conversationRenamed": "conversationRenamed"; "intentCheckStarted": "intentCheckStarted"; "intentCheckCompleted": "intentCheckCompleted"; "initialMessageAutoSendStarted": "initialMessageAutoSendStarted"; "initialMessageAutoSendFailed": "initialMessageAutoSendFailed"; "emptyStateSubmit": "emptyStateSubmit"; "uploadStateChanged": "uploadStateChanged"; }, never, never, false, never>;
520
584
  }
521
585
  //# sourceMappingURL=message-input.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-input.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-input.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/message/message-input.component.ts"],"names":[],"mappings":"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"}