@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
@@ -0,0 +1,103 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { IMetadataProvider, UserInfo } from '@memberjunction/core';
3
+ import { ComposerTriggerProvider, MentionEditorComponent, MessageInputBoxComponent, PendingAttachment } from '@memberjunction/ng-composer';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * AI-aware composer: wraps the generic `<mj-message-input-box>` (from
7
+ * `@memberjunction/ng-composer`, which ships zero AI knowledge) and builds the AI
8
+ * trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and
9
+ * '/' skill commands — while proxying the input box's full surface (inputs, outputs,
10
+ * and public methods).
11
+ *
12
+ * The familiar granular flags live HERE now:
13
+ * - `EnableAgentMentions` (default true) — the '@' trigger
14
+ * - `EnableEntityMentions` (default true) — the '#' trigger
15
+ * - `EnableSkillCommands` (default true) — the '/' trigger
16
+ * plus the pass-through `enableMentions` master switch.
17
+ *
18
+ * The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the
19
+ * list; it deliberately does not proxy `TriggerProviders` / `ExcludedTriggerKeys` — use
20
+ * the raw `<mj-message-input-box>` when you need custom providers or discovery mode).
21
+ */
22
+ export declare class AiComposerComponent {
23
+ inputBox?: MessageInputBoxComponent;
24
+ private _enableAgentMentions;
25
+ private _enableEntityMentions;
26
+ private _enableSkillCommands;
27
+ private _activeTriggerProviders;
28
+ private readonly agentMentionProvider;
29
+ private readonly recordMentionProvider;
30
+ private readonly skillCommandProvider;
31
+ constructor();
32
+ /** Enables the '@' trigger (agent + user mentions). */
33
+ set EnableAgentMentions(value: boolean);
34
+ get EnableAgentMentions(): boolean;
35
+ /** Enables the '#' trigger (entity + query record mentions). */
36
+ set EnableEntityMentions(value: boolean);
37
+ get EnableEntityMentions(): boolean;
38
+ /** Enables the '/' trigger (skill commands). */
39
+ set EnableSkillCommands(value: boolean);
40
+ get EnableSkillCommands(): boolean;
41
+ /** The explicit provider list bound to the inner editor (stable reference; rebuilt only when a flag flips). */
42
+ get ActiveTriggerProviders(): ComposerTriggerProvider[];
43
+ private rebuildTriggerProviders;
44
+ placeholder: string;
45
+ disabled: boolean;
46
+ value: string;
47
+ showCharacterCount: boolean;
48
+ /** Master switch for all mention/command triggers (pass-through). */
49
+ enableMentions: boolean;
50
+ /** Optional metadata provider scoping this composer (pass-through to the trigger plugins). */
51
+ Provider: IMetadataProvider | null;
52
+ currentUser?: UserInfo;
53
+ rows: number;
54
+ enableAttachments: boolean;
55
+ maxAttachments: number;
56
+ maxAttachmentSizeBytes: number;
57
+ acceptedFileTypes: string;
58
+ enableRealtime: boolean;
59
+ voiceActive: boolean;
60
+ canStartRealtime: boolean;
61
+ enablePlanMode: boolean;
62
+ planModeActive: boolean;
63
+ textSubmitted: EventEmitter<string>;
64
+ valueChange: EventEmitter<string>;
65
+ attachmentsChanged: EventEmitter<PendingAttachment[]>;
66
+ attachmentError: EventEmitter<string>;
67
+ attachmentClicked: EventEmitter<PendingAttachment>;
68
+ voiceRequested: EventEmitter<void>;
69
+ voiceOptionsRequested: EventEmitter<void>;
70
+ planModeToggle: EventEmitter<void>;
71
+ onInnerValueChange(newValue: string): void;
72
+ /** The inner mention editor — kept reachable for hosts that drive it directly (e.g. clear-after-programmatic-send). */
73
+ get mentionEditor(): MentionEditorComponent | undefined;
74
+ /** Focus the composer input. */
75
+ focus(): void;
76
+ /** Clear the editor content and pending attachments. */
77
+ clear(): void;
78
+ /** Mention chip data (id/type/name + preset info) currently in the editor. */
79
+ getMentionChipsData(): Array<{
80
+ id: string;
81
+ type: string;
82
+ name: string;
83
+ presetId?: string;
84
+ presetName?: string;
85
+ }>;
86
+ /** Plain text with mentions encoded as JSON (`@{"type":...}`) — the persistence format. */
87
+ getPlainTextWithJsonMentions(): string;
88
+ /** Pending (not yet uploaded) attachments. */
89
+ getPendingAttachments(): PendingAttachment[];
90
+ /** Open the attachment file picker programmatically. */
91
+ openFilePicker(): void;
92
+ /** Attach an artifact as a pending attachment (artifact picker flow). */
93
+ AddArtifactAttachment(artifact: {
94
+ fileID: string;
95
+ fileName: string;
96
+ mimeType: string;
97
+ sizeBytes: number;
98
+ artifactVersionId?: string;
99
+ }): PendingAttachment | undefined;
100
+ static ɵfac: i0.ɵɵFactoryDeclaration<AiComposerComponent, never>;
101
+ static ɵcmp: i0.ɵɵComponentDeclaration<AiComposerComponent, "mj-ai-composer", never, { "EnableAgentMentions": { "alias": "EnableAgentMentions"; "required": false; }; "EnableEntityMentions": { "alias": "EnableEntityMentions"; "required": false; }; "EnableSkillCommands": { "alias": "EnableSkillCommands"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; "showCharacterCount": { "alias": "showCharacterCount"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "Provider": { "alias": "Provider"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "enableRealtime": { "alias": "enableRealtime"; "required": false; }; "voiceActive": { "alias": "voiceActive"; "required": false; }; "canStartRealtime": { "alias": "canStartRealtime"; "required": false; }; "enablePlanMode": { "alias": "enablePlanMode"; "required": false; }; "planModeActive": { "alias": "planModeActive"; "required": false; }; }, { "textSubmitted": "textSubmitted"; "valueChange": "valueChange"; "attachmentsChanged": "attachmentsChanged"; "attachmentError": "attachmentError"; "attachmentClicked": "attachmentClicked"; "voiceRequested": "voiceRequested"; "voiceOptionsRequested": "voiceOptionsRequested"; "planModeToggle": "planModeToggle"; }, never, never, false, never>;
102
+ }
103
+ //# sourceMappingURL=ai-composer.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-composer.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/composer/ai-composer.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { AgentMentionProvider } from '../../composer-plugins/agent-mention.provider';
3
+ import { RecordMentionProvider } from '../../composer-plugins/record-mention.provider';
4
+ import { SkillCommandProvider } from '../../composer-plugins/skill-command.provider';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@memberjunction/ng-composer";
7
+ const _c0 = ["inputBox"];
8
+ /**
9
+ * AI-aware composer: wraps the generic `<mj-message-input-box>` (from
10
+ * `@memberjunction/ng-composer`, which ships zero AI knowledge) and builds the AI
11
+ * trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and
12
+ * '/' skill commands — while proxying the input box's full surface (inputs, outputs,
13
+ * and public methods).
14
+ *
15
+ * The familiar granular flags live HERE now:
16
+ * - `EnableAgentMentions` (default true) — the '@' trigger
17
+ * - `EnableEntityMentions` (default true) — the '#' trigger
18
+ * - `EnableSkillCommands` (default true) — the '/' trigger
19
+ * plus the pass-through `enableMentions` master switch.
20
+ *
21
+ * The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the
22
+ * list; it deliberately does not proxy `TriggerProviders` / `ExcludedTriggerKeys` — use
23
+ * the raw `<mj-message-input-box>` when you need custom providers or discovery mode).
24
+ */
25
+ export class AiComposerComponent {
26
+ inputBox;
27
+ // ── AI convenience flags (the wrapper's reason to exist) ─────────────────────────
28
+ _enableAgentMentions = true;
29
+ _enableEntityMentions = true;
30
+ _enableSkillCommands = true;
31
+ _activeTriggerProviders = [];
32
+ // One instance per plugin per composer — all instances share the singleton
33
+ // MentionAutocompleteService engine, so there is no duplicate cache warm-up.
34
+ agentMentionProvider = new AgentMentionProvider();
35
+ recordMentionProvider = new RecordMentionProvider();
36
+ skillCommandProvider = new SkillCommandProvider();
37
+ constructor() {
38
+ this.rebuildTriggerProviders();
39
+ }
40
+ /** Enables the '@' trigger (agent + user mentions). */
41
+ set EnableAgentMentions(value) {
42
+ if (value !== this._enableAgentMentions) {
43
+ this._enableAgentMentions = value;
44
+ this.rebuildTriggerProviders();
45
+ }
46
+ }
47
+ get EnableAgentMentions() {
48
+ return this._enableAgentMentions;
49
+ }
50
+ /** Enables the '#' trigger (entity + query record mentions). */
51
+ set EnableEntityMentions(value) {
52
+ if (value !== this._enableEntityMentions) {
53
+ this._enableEntityMentions = value;
54
+ this.rebuildTriggerProviders();
55
+ }
56
+ }
57
+ get EnableEntityMentions() {
58
+ return this._enableEntityMentions;
59
+ }
60
+ /** Enables the '/' trigger (skill commands). */
61
+ set EnableSkillCommands(value) {
62
+ if (value !== this._enableSkillCommands) {
63
+ this._enableSkillCommands = value;
64
+ this.rebuildTriggerProviders();
65
+ }
66
+ }
67
+ get EnableSkillCommands() {
68
+ return this._enableSkillCommands;
69
+ }
70
+ /** The explicit provider list bound to the inner editor (stable reference; rebuilt only when a flag flips). */
71
+ get ActiveTriggerProviders() {
72
+ return this._activeTriggerProviders;
73
+ }
74
+ rebuildTriggerProviders() {
75
+ const providers = [];
76
+ if (this._enableAgentMentions)
77
+ providers.push(this.agentMentionProvider);
78
+ if (this._enableEntityMentions)
79
+ providers.push(this.recordMentionProvider);
80
+ if (this._enableSkillCommands)
81
+ providers.push(this.skillCommandProvider);
82
+ this._activeTriggerProviders = providers;
83
+ }
84
+ // ── Proxied inputs (identical names/defaults to MessageInputBoxComponent) ────────
85
+ placeholder = 'Type your message to start a new conversation...';
86
+ disabled = false;
87
+ value = '';
88
+ showCharacterCount = false;
89
+ /** Master switch for all mention/command triggers (pass-through). */
90
+ enableMentions = true;
91
+ /** Optional metadata provider scoping this composer (pass-through to the trigger plugins). */
92
+ Provider = null;
93
+ currentUser;
94
+ rows = 3;
95
+ enableAttachments = true;
96
+ maxAttachments = 10;
97
+ maxAttachmentSizeBytes = 20 * 1024 * 1024; // 20MB
98
+ acceptedFileTypes = 'image/*';
99
+ enableRealtime = false;
100
+ voiceActive = false;
101
+ canStartRealtime = true;
102
+ enablePlanMode = false;
103
+ planModeActive = false;
104
+ // ── Proxied outputs ───────────────────────────────────────────────────────────────
105
+ textSubmitted = new EventEmitter();
106
+ valueChange = new EventEmitter();
107
+ attachmentsChanged = new EventEmitter();
108
+ attachmentError = new EventEmitter();
109
+ attachmentClicked = new EventEmitter();
110
+ voiceRequested = new EventEmitter();
111
+ voiceOptionsRequested = new EventEmitter();
112
+ planModeToggle = new EventEmitter();
113
+ onInnerValueChange(newValue) {
114
+ this.value = newValue;
115
+ this.valueChange.emit(newValue);
116
+ }
117
+ // ── Proxied public methods (ViewChild delegation) ─────────────────────────────────
118
+ /** The inner mention editor — kept reachable for hosts that drive it directly (e.g. clear-after-programmatic-send). */
119
+ get mentionEditor() {
120
+ return this.inputBox?.mentionEditor;
121
+ }
122
+ /** Focus the composer input. */
123
+ focus() {
124
+ this.inputBox?.focus();
125
+ }
126
+ /** Clear the editor content and pending attachments. */
127
+ clear() {
128
+ this.inputBox?.mentionEditor?.clear();
129
+ }
130
+ /** Mention chip data (id/type/name + preset info) currently in the editor. */
131
+ getMentionChipsData() {
132
+ return this.inputBox?.getMentionChipsData() || [];
133
+ }
134
+ /** Plain text with mentions encoded as JSON (`@{"type":...}`) — the persistence format. */
135
+ getPlainTextWithJsonMentions() {
136
+ return this.inputBox?.mentionEditor?.getPlainTextWithJsonMentions() || '';
137
+ }
138
+ /** Pending (not yet uploaded) attachments. */
139
+ getPendingAttachments() {
140
+ return this.inputBox?.getPendingAttachments() || [];
141
+ }
142
+ /** Open the attachment file picker programmatically. */
143
+ openFilePicker() {
144
+ this.inputBox?.openFilePicker();
145
+ }
146
+ /** Attach an artifact as a pending attachment (artifact picker flow). */
147
+ AddArtifactAttachment(artifact) {
148
+ return this.inputBox?.AddArtifactAttachment(artifact);
149
+ }
150
+ static ɵfac = function AiComposerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AiComposerComponent)(); };
151
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AiComposerComponent, selectors: [["mj-ai-composer"]], viewQuery: function AiComposerComponent_Query(rf, ctx) { if (rf & 1) {
152
+ i0.ɵɵviewQuery(_c0, 5);
153
+ } if (rf & 2) {
154
+ let _t;
155
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputBox = _t.first);
156
+ } }, inputs: { EnableAgentMentions: "EnableAgentMentions", EnableEntityMentions: "EnableEntityMentions", EnableSkillCommands: "EnableSkillCommands", placeholder: "placeholder", disabled: "disabled", value: "value", showCharacterCount: "showCharacterCount", enableMentions: "enableMentions", Provider: "Provider", currentUser: "currentUser", rows: "rows", enableAttachments: "enableAttachments", maxAttachments: "maxAttachments", maxAttachmentSizeBytes: "maxAttachmentSizeBytes", acceptedFileTypes: "acceptedFileTypes", enableRealtime: "enableRealtime", voiceActive: "voiceActive", canStartRealtime: "canStartRealtime", enablePlanMode: "enablePlanMode", planModeActive: "planModeActive" }, outputs: { textSubmitted: "textSubmitted", valueChange: "valueChange", attachmentsChanged: "attachmentsChanged", attachmentError: "attachmentError", attachmentClicked: "attachmentClicked", voiceRequested: "voiceRequested", voiceOptionsRequested: "voiceOptionsRequested", planModeToggle: "planModeToggle" }, standalone: false, decls: 2, vars: 18, consts: [["inputBox", ""], [3, "textSubmitted", "valueChange", "attachmentsChanged", "attachmentError", "attachmentClicked", "voiceRequested", "voiceOptionsRequested", "planModeToggle", "placeholder", "disabled", "value", "showCharacterCount", "enableMentions", "TriggerProviders", "Provider", "currentUser", "rows", "enableAttachments", "maxAttachments", "maxAttachmentSizeBytes", "acceptedFileTypes", "enableRealtime", "voiceActive", "canStartRealtime", "enablePlanMode", "planModeActive"]], template: function AiComposerComponent_Template(rf, ctx) { if (rf & 1) {
157
+ const _r1 = i0.ɵɵgetCurrentView();
158
+ i0.ɵɵelementStart(0, "mj-message-input-box", 1, 0);
159
+ i0.ɵɵlistener("textSubmitted", function AiComposerComponent_Template_mj_message_input_box_textSubmitted_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.textSubmitted.emit($event)); })("valueChange", function AiComposerComponent_Template_mj_message_input_box_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInnerValueChange($event)); })("attachmentsChanged", function AiComposerComponent_Template_mj_message_input_box_attachmentsChanged_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.attachmentsChanged.emit($event)); })("attachmentError", function AiComposerComponent_Template_mj_message_input_box_attachmentError_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.attachmentError.emit($event)); })("attachmentClicked", function AiComposerComponent_Template_mj_message_input_box_attachmentClicked_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.attachmentClicked.emit($event)); })("voiceRequested", function AiComposerComponent_Template_mj_message_input_box_voiceRequested_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.voiceRequested.emit()); })("voiceOptionsRequested", function AiComposerComponent_Template_mj_message_input_box_voiceOptionsRequested_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.voiceOptionsRequested.emit()); })("planModeToggle", function AiComposerComponent_Template_mj_message_input_box_planModeToggle_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.planModeToggle.emit()); });
160
+ i0.ɵɵelementEnd();
161
+ } if (rf & 2) {
162
+ i0.ɵɵproperty("placeholder", ctx.placeholder)("disabled", ctx.disabled)("value", ctx.value)("showCharacterCount", ctx.showCharacterCount)("enableMentions", ctx.enableMentions)("TriggerProviders", ctx.ActiveTriggerProviders)("Provider", ctx.Provider)("currentUser", ctx.currentUser)("rows", ctx.rows)("enableAttachments", ctx.enableAttachments)("maxAttachments", ctx.maxAttachments)("maxAttachmentSizeBytes", ctx.maxAttachmentSizeBytes)("acceptedFileTypes", ctx.acceptedFileTypes)("enableRealtime", ctx.enableRealtime)("voiceActive", ctx.voiceActive)("canStartRealtime", ctx.canStartRealtime)("enablePlanMode", ctx.enablePlanMode)("planModeActive", ctx.planModeActive);
163
+ } }, dependencies: [i1.MessageInputBoxComponent], encapsulation: 2 });
164
+ }
165
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AiComposerComponent, [{
166
+ type: Component,
167
+ args: [{
168
+ standalone: false,
169
+ selector: 'mj-ai-composer',
170
+ template: `
171
+ <mj-message-input-box
172
+ #inputBox
173
+ [placeholder]="placeholder"
174
+ [disabled]="disabled"
175
+ [value]="value"
176
+ [showCharacterCount]="showCharacterCount"
177
+ [enableMentions]="enableMentions"
178
+ [TriggerProviders]="ActiveTriggerProviders"
179
+ [Provider]="Provider"
180
+ [currentUser]="currentUser"
181
+ [rows]="rows"
182
+ [enableAttachments]="enableAttachments"
183
+ [maxAttachments]="maxAttachments"
184
+ [maxAttachmentSizeBytes]="maxAttachmentSizeBytes"
185
+ [acceptedFileTypes]="acceptedFileTypes"
186
+ [enableRealtime]="enableRealtime"
187
+ [voiceActive]="voiceActive"
188
+ [canStartRealtime]="canStartRealtime"
189
+ [enablePlanMode]="enablePlanMode"
190
+ [planModeActive]="planModeActive"
191
+ (textSubmitted)="textSubmitted.emit($event)"
192
+ (valueChange)="onInnerValueChange($event)"
193
+ (attachmentsChanged)="attachmentsChanged.emit($event)"
194
+ (attachmentError)="attachmentError.emit($event)"
195
+ (attachmentClicked)="attachmentClicked.emit($event)"
196
+ (voiceRequested)="voiceRequested.emit()"
197
+ (voiceOptionsRequested)="voiceOptionsRequested.emit()"
198
+ (planModeToggle)="planModeToggle.emit()">
199
+ </mj-message-input-box>
200
+ `
201
+ }]
202
+ }], () => [], { inputBox: [{
203
+ type: ViewChild,
204
+ args: ['inputBox']
205
+ }], EnableAgentMentions: [{
206
+ type: Input
207
+ }], EnableEntityMentions: [{
208
+ type: Input
209
+ }], EnableSkillCommands: [{
210
+ type: Input
211
+ }], placeholder: [{
212
+ type: Input
213
+ }], disabled: [{
214
+ type: Input
215
+ }], value: [{
216
+ type: Input
217
+ }], showCharacterCount: [{
218
+ type: Input
219
+ }], enableMentions: [{
220
+ type: Input
221
+ }], Provider: [{
222
+ type: Input
223
+ }], currentUser: [{
224
+ type: Input
225
+ }], rows: [{
226
+ type: Input
227
+ }], enableAttachments: [{
228
+ type: Input
229
+ }], maxAttachments: [{
230
+ type: Input
231
+ }], maxAttachmentSizeBytes: [{
232
+ type: Input
233
+ }], acceptedFileTypes: [{
234
+ type: Input
235
+ }], enableRealtime: [{
236
+ type: Input
237
+ }], voiceActive: [{
238
+ type: Input
239
+ }], canStartRealtime: [{
240
+ type: Input
241
+ }], enablePlanMode: [{
242
+ type: Input
243
+ }], planModeActive: [{
244
+ type: Input
245
+ }], textSubmitted: [{
246
+ type: Output
247
+ }], valueChange: [{
248
+ type: Output
249
+ }], attachmentsChanged: [{
250
+ type: Output
251
+ }], attachmentError: [{
252
+ type: Output
253
+ }], attachmentClicked: [{
254
+ type: Output
255
+ }], voiceRequested: [{
256
+ type: Output
257
+ }], voiceOptionsRequested: [{
258
+ type: Output
259
+ }], planModeToggle: [{
260
+ type: Output
261
+ }] }); })();
262
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AiComposerComponent, { className: "AiComposerComponent", filePath: "src/lib/components/composer/ai-composer.component.ts", lineNumber: 65 }); })();
263
+ //# sourceMappingURL=ai-composer.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-composer.component.js","sourceRoot":"","sources":["../../../../src/lib/components/composer/ai-composer.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IMetadataProvider, UserInfo } from '@memberjunction/core';\nimport {\n ComposerTriggerProvider,\n MentionEditorComponent,\n MessageInputBoxComponent,\n PendingAttachment\n} from '@memberjunction/ng-composer';\nimport { AgentMentionProvider } from '../../composer-plugins/agent-mention.provider';\nimport { RecordMentionProvider } from '../../composer-plugins/record-mention.provider';\nimport { SkillCommandProvider } from '../../composer-plugins/skill-command.provider';\n\n/**\n * AI-aware composer: wraps the generic `<mj-message-input-box>` (from\n * `@memberjunction/ng-composer`, which ships zero AI knowledge) and builds the AI\n * trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and\n * '/' skill commands — while proxying the input box's full surface (inputs, outputs,\n * and public methods).\n *\n * The familiar granular flags live HERE now:\n * - `EnableAgentMentions` (default true) — the '@' trigger\n * - `EnableEntityMentions` (default true) — the '#' trigger\n * - `EnableSkillCommands` (default true) — the '/' trigger\n * plus the pass-through `enableMentions` master switch.\n *\n * The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the\n * list; it deliberately does not proxy `TriggerProviders` / `ExcludedTriggerKeys` — use\n * the raw `<mj-message-input-box>` when you need custom providers or discovery mode).\n */\n@Component({\n standalone: false,\n selector: 'mj-ai-composer',\n template: `\n <mj-message-input-box\n #inputBox\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n [showCharacterCount]=\"showCharacterCount\"\n [enableMentions]=\"enableMentions\"\n [TriggerProviders]=\"ActiveTriggerProviders\"\n [Provider]=\"Provider\"\n [currentUser]=\"currentUser\"\n [rows]=\"rows\"\n [enableAttachments]=\"enableAttachments\"\n [maxAttachments]=\"maxAttachments\"\n [maxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [acceptedFileTypes]=\"acceptedFileTypes\"\n [enableRealtime]=\"enableRealtime\"\n [voiceActive]=\"voiceActive\"\n [canStartRealtime]=\"canStartRealtime\"\n [enablePlanMode]=\"enablePlanMode\"\n [planModeActive]=\"planModeActive\"\n (textSubmitted)=\"textSubmitted.emit($event)\"\n (valueChange)=\"onInnerValueChange($event)\"\n (attachmentsChanged)=\"attachmentsChanged.emit($event)\"\n (attachmentError)=\"attachmentError.emit($event)\"\n (attachmentClicked)=\"attachmentClicked.emit($event)\"\n (voiceRequested)=\"voiceRequested.emit()\"\n (voiceOptionsRequested)=\"voiceOptionsRequested.emit()\"\n (planModeToggle)=\"planModeToggle.emit()\">\n </mj-message-input-box>\n `\n})\nexport class AiComposerComponent {\n @ViewChild('inputBox') inputBox?: MessageInputBoxComponent;\n\n // ── AI convenience flags (the wrapper's reason to exist) ─────────────────────────\n private _enableAgentMentions: boolean = true;\n private _enableEntityMentions: boolean = true;\n private _enableSkillCommands: boolean = true;\n private _activeTriggerProviders: ComposerTriggerProvider[] = [];\n\n // One instance per plugin per composer — all instances share the singleton\n // MentionAutocompleteService engine, so there is no duplicate cache warm-up.\n private readonly agentMentionProvider = new AgentMentionProvider();\n private readonly recordMentionProvider = new RecordMentionProvider();\n private readonly skillCommandProvider = new SkillCommandProvider();\n\n constructor() {\n this.rebuildTriggerProviders();\n }\n\n /** Enables the '@' trigger (agent + user mentions). */\n @Input()\n set EnableAgentMentions(value: boolean) {\n if (value !== this._enableAgentMentions) {\n this._enableAgentMentions = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableAgentMentions(): boolean {\n return this._enableAgentMentions;\n }\n\n /** Enables the '#' trigger (entity + query record mentions). */\n @Input()\n set EnableEntityMentions(value: boolean) {\n if (value !== this._enableEntityMentions) {\n this._enableEntityMentions = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableEntityMentions(): boolean {\n return this._enableEntityMentions;\n }\n\n /** Enables the '/' trigger (skill commands). */\n @Input()\n set EnableSkillCommands(value: boolean) {\n if (value !== this._enableSkillCommands) {\n this._enableSkillCommands = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableSkillCommands(): boolean {\n return this._enableSkillCommands;\n }\n\n /** The explicit provider list bound to the inner editor (stable reference; rebuilt only when a flag flips). */\n public get ActiveTriggerProviders(): ComposerTriggerProvider[] {\n return this._activeTriggerProviders;\n }\n\n private rebuildTriggerProviders(): void {\n const providers: ComposerTriggerProvider[] = [];\n if (this._enableAgentMentions) providers.push(this.agentMentionProvider);\n if (this._enableEntityMentions) providers.push(this.recordMentionProvider);\n if (this._enableSkillCommands) providers.push(this.skillCommandProvider);\n this._activeTriggerProviders = providers;\n }\n\n // ── Proxied inputs (identical names/defaults to MessageInputBoxComponent) ────────\n @Input() placeholder: string = 'Type your message to start a new conversation...';\n @Input() disabled: boolean = false;\n @Input() value: string = '';\n @Input() showCharacterCount: boolean = false;\n /** Master switch for all mention/command triggers (pass-through). */\n @Input() enableMentions: boolean = true;\n /** Optional metadata provider scoping this composer (pass-through to the trigger plugins). */\n @Input() Provider: IMetadataProvider | null = null;\n @Input() currentUser?: UserInfo;\n @Input() rows: number = 3;\n @Input() enableAttachments: boolean = true;\n @Input() maxAttachments: number = 10;\n @Input() maxAttachmentSizeBytes: number = 20 * 1024 * 1024; // 20MB\n @Input() acceptedFileTypes: string = 'image/*';\n @Input() enableRealtime: boolean = false;\n @Input() voiceActive: boolean = false;\n @Input() canStartRealtime: boolean = true;\n @Input() enablePlanMode: boolean = false;\n @Input() planModeActive: boolean = false;\n\n // ── Proxied outputs ───────────────────────────────────────────────────────────────\n @Output() textSubmitted = new EventEmitter<string>();\n @Output() valueChange = new EventEmitter<string>();\n @Output() attachmentsChanged = new EventEmitter<PendingAttachment[]>();\n @Output() attachmentError = new EventEmitter<string>();\n @Output() attachmentClicked = new EventEmitter<PendingAttachment>();\n @Output() voiceRequested = new EventEmitter<void>();\n @Output() voiceOptionsRequested = new EventEmitter<void>();\n @Output() planModeToggle = new EventEmitter<void>();\n\n onInnerValueChange(newValue: string): void {\n this.value = newValue;\n this.valueChange.emit(newValue);\n }\n\n // ── Proxied public methods (ViewChild delegation) ─────────────────────────────────\n\n /** The inner mention editor — kept reachable for hosts that drive it directly (e.g. clear-after-programmatic-send). */\n public get mentionEditor(): MentionEditorComponent | undefined {\n return this.inputBox?.mentionEditor;\n }\n\n /** Focus the composer input. */\n public focus(): void {\n this.inputBox?.focus();\n }\n\n /** Clear the editor content and pending attachments. */\n public clear(): void {\n this.inputBox?.mentionEditor?.clear();\n }\n\n /** Mention chip data (id/type/name + preset info) currently in the editor. */\n public getMentionChipsData(): Array<{ id: string; type: string; name: string; presetId?: string; presetName?: string }> {\n return this.inputBox?.getMentionChipsData() || [];\n }\n\n /** Plain text with mentions encoded as JSON (`@{\"type\":...}`) — the persistence format. */\n public getPlainTextWithJsonMentions(): string {\n return this.inputBox?.mentionEditor?.getPlainTextWithJsonMentions() || '';\n }\n\n /** Pending (not yet uploaded) attachments. */\n public getPendingAttachments(): PendingAttachment[] {\n return this.inputBox?.getPendingAttachments() || [];\n }\n\n /** Open the attachment file picker programmatically. */\n public openFilePicker(): void {\n this.inputBox?.openFilePicker();\n }\n\n /** Attach an artifact as a pending attachment (artifact picker flow). */\n public AddArtifactAttachment(artifact: {\n fileID: string; fileName: string; mimeType: string;\n sizeBytes: number; artifactVersionId?: string;\n }): PendingAttachment | undefined {\n return this.inputBox?.AddArtifactAttachment(artifact);\n }\n}\n"]}
@@ -7,13 +7,12 @@ import { UICommandHandlerService } from '../../services/ui-command-handler.servi
7
7
  import { AgentStateService } from '../../services/agent-state.service';
8
8
  import { ConversationAgentService } from '../../services/conversation-agent.service';
9
9
  import { ActiveTasksService } from '../../services/active-tasks.service';
10
- import { MentionAutocompleteService } from '../../services/mention-autocomplete.service';
10
+ import { PendingAttachment } from '@memberjunction/ng-composer';
11
11
  import { ArtifactPermissionService } from '../../services/artifact-permission.service';
12
12
  import { ConversationAttachmentService } from '../../services/conversation-attachment.service';
13
13
  import { MJResourcePermissionShareAdapter, ResourceShareContext } from '@memberjunction/ng-resource-permissions';
14
14
  import { MessageAttachment } from '../message/message-item.component';
15
15
  import { LazyArtifactInfo } from '../../models/lazy-artifact-info';
16
- import { PendingAttachment } from '../mention/mention-editor.component';
17
16
  import { NavigationRequest, AnalyzeArtifactService, InteractiveFormApplyService } from '@memberjunction/ng-artifacts';
18
17
  import { TestFeedbackDialogData, TestFeedbackDialogResult } from '@memberjunction/ng-testing';
19
18
  import { DialogService as ConversationsDialogService } from '../../services/dialog.service';
@@ -59,7 +58,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
59
58
  private conversationAgentService;
60
59
  private activeTasks;
61
60
  private cdr;
62
- private mentionAutocompleteService;
63
61
  private artifactPermissionService;
64
62
  private attachmentService;
65
63
  private streamingService;
@@ -106,11 +104,34 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
106
104
  private _pendingMessage;
107
105
  set pendingMessage(value: string | null);
108
106
  get pendingMessage(): string | null;
107
+ /**
108
+ * The conversation the {@link pendingMessage} was created FOR. The pending message's
109
+ * auto-send is delivered ONLY to the cached input whose conversationId matches this —
110
+ * NOT the live-active conversationId. Without this, swapping conversations during the
111
+ * (async) auto-send window lets the swapped-to conversation's input grab the still-set
112
+ * pendingMessage and send it too, duplicating the message into the wrong conversation.
113
+ *
114
+ * Hosts MAY set this explicitly; it also self-resolves from {@link _pendingMessageTargetId}
115
+ * (captured in onEmptyStateMessageSent) so the guard works regardless of host wiring.
116
+ */
117
+ pendingMessageConversationId: string | null;
118
+ /** Internally-captured target for {@link pendingMessage}, set when this component creates a
119
+ * new conversation from the empty state. Host-independent; immune to conversation-swap timing. */
120
+ private _pendingMessageTargetId;
121
+ private _pendingMessageReservedTargetId;
122
+ /**
123
+ * The conversation a pending message must be delivered to. Prefers the explicit host input,
124
+ * then the internally-captured new-conversation target, finally the active conversation
125
+ * (legacy fallback for single-conversation hosts that never swap).
126
+ */
127
+ get EffectivePendingMessageTarget(): string | null;
128
+ shouldDeliverPendingMessageTo(conversationId: string): boolean;
109
129
  private _pendingAttachments;
110
130
  set pendingAttachments(value: PendingAttachment[] | null);
111
131
  get pendingAttachments(): PendingAttachment[] | null;
112
132
  pendingArtifactId: string | null;
113
133
  pendingArtifactVersionNumber: number | null;
134
+ pendingArtifactConversationId: string | null;
114
135
  /** When true, the component is rendered inside the floating overlay (hides suggested topics, etc.) */
115
136
  overlayMode: boolean;
116
137
  /** Show the Export button in the conversation header. Default true. */
@@ -344,6 +365,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
344
365
  private scrollToBottom;
345
366
  private lastLoadedConversationId;
346
367
  private currentlyLoadingConversationId;
368
+ private conversationLoadToken;
347
369
  isProcessing: boolean;
348
370
  private intentCheckMessage;
349
371
  isLoadingConversation: boolean;
@@ -460,7 +482,8 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
460
482
  realtimeSessionMetaMap: Map<string, RealtimeSessionTimelineMeta>;
461
483
  /** Agent name the overlay banner shows: the reviewed session's agent while reviewing, else the live call's. */
462
484
  get realtimeOverlayAgentName(): string;
463
- constructor(agentStateService: AgentStateService, conversationAgentService: ConversationAgentService, activeTasks: ActiveTasksService, cdr: ChangeDetectorRef, mentionAutocompleteService: MentionAutocompleteService, artifactPermissionService: ArtifactPermissionService, attachmentService: ConversationAttachmentService, streamingService: ConversationStreamingService, confirmDialog: ConversationsDialogService, bridge: ConversationBridgeService, analyzeArtifactService: AnalyzeArtifactService, uiCommandHandler: UICommandHandlerService, interactiveFormApplyService: InteractiveFormApplyService, agentClientService: AgentClientService);
485
+ private mentionAutocompleteService;
486
+ constructor(agentStateService: AgentStateService, conversationAgentService: ConversationAgentService, activeTasks: ActiveTasksService, cdr: ChangeDetectorRef, artifactPermissionService: ArtifactPermissionService, attachmentService: ConversationAttachmentService, streamingService: ConversationStreamingService, confirmDialog: ConversationsDialogService, bridge: ConversationBridgeService, analyzeArtifactService: AnalyzeArtifactService, uiCommandHandler: UICommandHandlerService, interactiveFormApplyService: InteractiveFormApplyService, agentClientService: AgentClientService);
464
487
  /**
465
488
  * Apply a form-role artifact's spec as an EntityFormOverride for the
466
489
  * current user. The service handles the Create-vs-Modify decision (based
@@ -484,6 +507,10 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
484
507
  private updateAttachmentSupport;
485
508
  ngAfterViewChecked(): void;
486
509
  ngOnDestroy(): void;
510
+ private isActiveConversation;
511
+ private isActiveConversationLoad;
512
+ private isCurrentConversationContext;
513
+ private resetConversationScopedViewState;
487
514
  private onConversationChanged;
488
515
  /**
489
516
  * Returns array of cached message-input metadata for rendering
@@ -531,6 +558,13 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
531
558
  */
532
559
  private restoreActiveTasks;
533
560
  onMessageSent(message: MJConversationDetailEntity): Promise<void>;
561
+ onInitialMessageAutoSendStarted(event: {
562
+ conversationId: string;
563
+ }): void;
564
+ onInitialMessageAutoSendFailed(event: {
565
+ conversationId: string;
566
+ }): void;
567
+ private isPendingMessageTarget;
534
568
  /**
535
569
  * Loads attachments for a single message and adds them to the attachmentsByDetailId map.
536
570
  * Called after a new message is sent to ensure attachments are displayed immediately.
@@ -546,6 +580,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
546
580
  * This is called when the first progress update arrives with an agent run ID
547
581
  */
548
582
  onAgentRunDetected(event: {
583
+ conversationId: string;
549
584
  conversationDetailId: string;
550
585
  agentRunId: string;
551
586
  }): Promise<void>;
@@ -555,6 +590,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
555
590
  * Also reloads attachments created during agent execution (e.g., generated images)
556
591
  */
557
592
  onMessageComplete(event: {
593
+ conversationId: string;
558
594
  conversationDetailId: string;
559
595
  agentId?: string;
560
596
  }): Promise<void>;
@@ -564,6 +600,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
564
600
  * Provides real-time updates of status, timestamps, tokens, cost during execution
565
601
  */
566
602
  onAgentRunUpdate(event: {
603
+ conversationId: string;
567
604
  conversationDetailId: string;
568
605
  agentRun?: MJAIAgentRunEntityExtended;
569
606
  agentRunId?: string;
@@ -753,6 +790,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
753
790
  versionId?: string;
754
791
  }): Promise<void>;
755
792
  onArtifactCreated(data: {
793
+ conversationId: string;
756
794
  conversationDetailId: string;
757
795
  artifactId: string;
758
796
  versionId: string;
@@ -831,13 +869,35 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
831
869
  * `openEntityRecord` chain every other chat record-open uses, so the Explorer
832
870
  * wrapper routes it through `NavigationService.OpenEntityRecord`.
833
871
  */
834
- onVoiceNavigateRequest(event: RealtimeNavigateRequest): void;
872
+ onRealtimeNavigateRequest(event: RealtimeNavigateRequest): void;
835
873
  /**
836
- * Post-call hook for sessions that created their own conversation: kicks the shared
837
- * auto-naming helper in the background (first user utterance as the seed) and emits
838
- * {@link realtimeConversationReady} so the workspace can refresh + select.
874
+ * Session-START hook for a realtime session that CREATED its own conversation (started
875
+ * without one). Folds that server-created conversation into the engine's reactive cache
876
+ * directly ONE single-row load, only when it isn't already cached — so the sidebar list
877
+ * emits via `Conversations$` the moment the call starts, independent of the host's refresh
878
+ * round-trip. Also emits {@link realtimeConversationReady} so the host can react (it
879
+ * selects on close). No-op when the session joined an existing conversation. Fire-and-forget
880
+ * on the load: a failed load just leaves the host's emit to fold it in.
839
881
  */
840
- private onVoiceSessionEnded;
882
+ private onRealtimeSessionStarted;
883
+ /**
884
+ * Post-call hook. Two responsibilities:
885
+ * 1. Reload the ACTIVE conversation's timeline so the session that just ended — whose
886
+ * session-stamped `MJ: Conversation Details` were persisted server-side during the
887
+ * call — surfaces as a reviewable past-session block WITHOUT a manual refresh.
888
+ * 2. For a session that CREATED its own conversation, kick the shared auto-naming
889
+ * helper (covered elsewhere on first utterance; this covers a silent call) and
890
+ * emit {@link realtimeConversationReady} so the host can refresh the list + select.
891
+ */
892
+ private onRealtimeSessionEnded;
893
+ /**
894
+ * Surgically reloads the CURRENTLY-OPEN conversation's details so newly-persisted rows
895
+ * (e.g. a just-ended realtime session's session-stamped caption turns) appear in the
896
+ * timeline — and therefore in the "review past sessions" affordances — without a manual
897
+ * browser refresh. Re-queries ONLY the active conversation (no broad reload), mirrors the
898
+ * agent-completion refresh path, and no-ops when no conversation is open.
899
+ */
900
+ private reloadActiveConversationTimeline;
841
901
  /**
842
902
  * ENTRY API for SESSION REVIEW: opens the realtime overlay in review mode over this
843
903
  * conversation panel, rendering what went down in a PAST agent session (caption turns,
@@ -1040,12 +1100,16 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1040
1100
  /**
1041
1101
  * Handle intent check started - show temporary "Analyzing intent..." message
1042
1102
  */
1043
- onIntentCheckStarted(): Promise<void>;
1103
+ onIntentCheckStarted(event: {
1104
+ conversationId: string;
1105
+ }): Promise<void>;
1044
1106
  /**
1045
1107
  * Handle intent check completed - remove temporary message
1046
1108
  */
1047
- onIntentCheckCompleted(): void;
1109
+ onIntentCheckCompleted(event: {
1110
+ conversationId: string;
1111
+ }): void;
1048
1112
  static ɵfac: i0.ɵɵFactoryDeclaration<ConversationChatAreaComponent, never>;
1049
- static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "threadId": { "alias": "threadId"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; }, { "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "beforeToolInvoked": "beforeToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "sessionStarted": "sessionStarted"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "sessionEnded": "sessionEnded"; "conversationRenamed": "conversationRenamed"; "openEntityRecord": "openEntityRecord"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "taskClicked": "taskClicked"; "artifactLinkClicked": "artifactLinkClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "conversationCreated": "conversationCreated"; "threadOpened": "threadOpened"; "threadClosed": "threadClosed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "pendingMessageRequested": "pendingMessageRequested"; }, ["chatSlotChildren"], never, false, never>;
1113
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "threadId": { "alias": "threadId"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "pendingMessageConversationId": { "alias": "pendingMessageConversationId"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "pendingArtifactConversationId": { "alias": "pendingArtifactConversationId"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; }, { "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "beforeToolInvoked": "beforeToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "sessionStarted": "sessionStarted"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "sessionEnded": "sessionEnded"; "conversationRenamed": "conversationRenamed"; "openEntityRecord": "openEntityRecord"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "taskClicked": "taskClicked"; "artifactLinkClicked": "artifactLinkClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "conversationCreated": "conversationCreated"; "threadOpened": "threadOpened"; "threadClosed": "threadClosed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "pendingMessageRequested": "pendingMessageRequested"; }, ["chatSlotChildren"], never, false, never>;
1050
1114
  }
1051
1115
  //# sourceMappingURL=conversation-chat-area.component.d.ts.map