@memberjunction/ng-conversations 6.1.4 → 6.2.0-edge.1

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 (424) hide show
  1. package/README.md +36 -3
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +19 -3
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  4. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +39 -7
  5. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  6. package/dist/lib/components/agent/active-agent-indicator.component.d.ts +74 -6
  7. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  8. package/dist/lib/components/agent/active-agent-indicator.component.js +111 -21
  9. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  10. package/dist/lib/components/agent/agent-process-panel.component.d.ts +31 -5
  11. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  12. package/dist/lib/components/agent/agent-process-panel.component.js +71 -15
  13. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  14. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +65 -9
  15. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
  16. package/dist/lib/components/artifact/artifact-share-modal.component.js +169 -57
  17. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  18. package/dist/lib/components/attachment/image-viewer.component.d.ts +77 -11
  19. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  20. package/dist/lib/components/attachment/image-viewer.component.js +181 -47
  21. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  22. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +129 -19
  23. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  24. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +350 -116
  25. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  26. package/dist/lib/components/collection/artifact-create-modal.component.d.ts +60 -8
  27. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  28. package/dist/lib/components/collection/artifact-create-modal.component.js +130 -46
  29. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  30. package/dist/lib/components/collection/collection-artifact-card.component.d.ts +63 -3
  31. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  32. package/dist/lib/components/collection/collection-artifact-card.component.js +113 -19
  33. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  34. package/dist/lib/components/collection/collection-form-modal.component.d.ts +54 -8
  35. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  36. package/dist/lib/components/collection/collection-form-modal.component.js +130 -46
  37. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  38. package/dist/lib/components/collection/collection-share-modal.component.d.ts +70 -10
  39. package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
  40. package/dist/lib/components/collection/collection-share-modal.component.js +175 -53
  41. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  42. package/dist/lib/components/collection/collection-tree.component.d.ts +89 -9
  43. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  44. package/dist/lib/components/collection/collection-tree.component.js +220 -70
  45. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  46. package/dist/lib/components/collection/collection-view.component.d.ts +89 -11
  47. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  48. package/dist/lib/components/collection/collection-view.component.js +154 -40
  49. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  50. package/dist/lib/components/collection/collections-full-view.component.d.ts +390 -38
  51. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  52. package/dist/lib/components/collection/collections-full-view.component.js +951 -367
  53. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  54. package/dist/lib/components/composer/ai-composer.component.d.ts +213 -18
  55. package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
  56. package/dist/lib/components/composer/ai-composer.component.js +388 -44
  57. package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
  58. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +12 -1
  59. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts.map +1 -1
  60. package/dist/lib/components/conversation/conversation-agent-picker.component.js +26 -4
  61. package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
  62. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +1090 -123
  63. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  64. package/dist/lib/components/conversation/conversation-chat-area.component.js +2407 -731
  65. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  66. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +139 -19
  67. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  68. package/dist/lib/components/conversation/conversation-empty-state.component.js +296 -59
  69. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  70. package/dist/lib/components/conversation/conversation-list.component.d.ts +579 -78
  71. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  72. package/dist/lib/components/conversation/conversation-list.component.js +2322 -823
  73. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  74. package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts +40 -4
  75. package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts.map +1 -1
  76. package/dist/lib/components/conversation/pinned-messages-panel.component.js +72 -14
  77. package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
  78. package/dist/lib/components/dialogs/input-dialog.component.d.ts +57 -11
  79. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  80. package/dist/lib/components/dialogs/input-dialog.component.js +128 -16
  81. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  82. package/dist/lib/components/dialogs/rating-dialog.component.d.ts +68 -10
  83. package/dist/lib/components/dialogs/rating-dialog.component.d.ts.map +1 -1
  84. package/dist/lib/components/dialogs/rating-dialog.component.js +151 -27
  85. package/dist/lib/components/dialogs/rating-dialog.component.js.map +1 -1
  86. package/dist/lib/components/export/export-modal.component.d.ts +84 -10
  87. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  88. package/dist/lib/components/export/export-modal.component.js +173 -49
  89. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  90. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +29 -3
  91. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
  92. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +58 -12
  93. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  94. package/dist/lib/components/library/library-full-view.component.d.ts +57 -8
  95. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  96. package/dist/lib/components/library/library-full-view.component.js +119 -35
  97. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  98. package/dist/lib/components/members/members-modal.component.d.ts +76 -10
  99. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  100. package/dist/lib/components/members/members-modal.component.js +164 -50
  101. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  102. package/dist/lib/components/message/actionable-commands.component.d.ts +37 -5
  103. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
  104. package/dist/lib/components/message/actionable-commands.component.js +82 -16
  105. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  106. package/dist/lib/components/message/conversation-message-rating.component.d.ts +46 -10
  107. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  108. package/dist/lib/components/message/conversation-message-rating.component.js +120 -36
  109. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  110. package/dist/lib/components/message/message-input.component.d.ts +549 -74
  111. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  112. package/dist/lib/components/message/message-input.component.js +1250 -421
  113. package/dist/lib/components/message/message-input.component.js.map +1 -1
  114. package/dist/lib/components/message/message-item.component.d.ts +411 -29
  115. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  116. package/dist/lib/components/message/message-item.component.js +896 -222
  117. package/dist/lib/components/message/message-item.component.js.map +1 -1
  118. package/dist/lib/components/message/message-list.component.d.ts +288 -29
  119. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  120. package/dist/lib/components/message/message-list.component.js +561 -123
  121. package/dist/lib/components/message/message-list.component.js.map +1 -1
  122. package/dist/lib/components/navigation/conversation-navigation.component.d.ts +64 -5
  123. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  124. package/dist/lib/components/navigation/conversation-navigation.component.js +101 -11
  125. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  126. package/dist/lib/components/notification/activity-indicator.component.d.ts +6 -2
  127. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
  128. package/dist/lib/components/notification/activity-indicator.component.js +13 -3
  129. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  130. package/dist/lib/components/notification/notification-badge.component.d.ts +15 -3
  131. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
  132. package/dist/lib/components/notification/notification-badge.component.js +36 -8
  133. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  134. package/dist/lib/components/overlay/chat-overlay.component.d.ts +1 -1
  135. package/dist/lib/components/overlay/chat-overlay.component.js +4 -4
  136. package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
  137. package/dist/lib/components/project/project-form-modal.component.d.ts +93 -11
  138. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  139. package/dist/lib/components/project/project-form-modal.component.js +348 -87
  140. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  141. package/dist/lib/components/project/project-selector.component.d.ts +78 -8
  142. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  143. package/dist/lib/components/project/project-selector.component.js +177 -46
  144. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  145. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts +1 -1
  146. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts.map +1 -1
  147. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js.map +1 -1
  148. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +1 -1
  149. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
  150. package/dist/lib/components/realtime/channels/client-context-channel.js +1 -1
  151. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
  152. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +1 -1
  153. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
  154. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +3 -0
  155. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
  156. package/dist/lib/components/realtime/media/media-channel.d.ts +2 -1
  157. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
  158. package/dist/lib/components/realtime/media/media-channel.js +1 -1
  159. package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
  160. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +2 -2
  161. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
  162. package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
  163. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  164. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +1 -1
  165. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  166. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  167. package/dist/lib/components/realtime/realtime-composer.component.d.ts +3 -1
  168. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  169. package/dist/lib/components/realtime/realtime-composer.component.js +26 -8
  170. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  171. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +2 -2
  172. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
  173. package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
  174. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  175. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +4 -4
  176. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  177. package/dist/lib/components/realtime/realtime-session-overlay.component.js +19 -19
  178. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  179. package/dist/lib/components/realtime/realtime-session-state.d.ts +2 -3
  180. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
  181. package/dist/lib/components/realtime/realtime-session-state.js +3 -2
  182. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
  183. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts +17 -1
  184. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts.map +1 -1
  185. package/dist/lib/components/realtime/realtime-session-thread.component.js +122 -45
  186. package/dist/lib/components/realtime/realtime-session-thread.component.js.map +1 -1
  187. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -31
  188. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
  189. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +138 -124
  190. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
  191. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +4 -4
  192. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  193. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
  194. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  195. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +2 -2
  196. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  197. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
  198. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  199. package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
  200. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  201. package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
  202. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  203. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +1 -1
  204. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  205. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +1 -1
  206. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  207. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +4 -2
  208. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  209. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +7 -3
  210. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  211. package/dist/lib/components/search/search-panel.component.d.ts +133 -22
  212. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  213. package/dist/lib/components/search/search-panel.component.js +312 -83
  214. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  215. package/dist/lib/components/share/share-modal.component.d.ts +69 -9
  216. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  217. package/dist/lib/components/share/share-modal.component.js +139 -31
  218. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  219. package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
  220. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  221. package/dist/lib/components/shared/user-picker.component.js +110 -30
  222. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  223. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
  224. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  225. package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
  226. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  227. package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
  228. package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
  229. package/dist/lib/components/sidebar/routines-section.component.js +25 -5
  230. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
  231. package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
  232. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
  233. package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
  234. package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
  235. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  236. package/dist/lib/components/task/tasks-full-view.component.js +223 -75
  237. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  238. package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
  239. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  240. package/dist/lib/components/tasks/task-widget.component.js +100 -16
  241. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  242. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
  243. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  244. package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
  245. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  246. package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
  247. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  248. package/dist/lib/components/thread/thread-panel.component.js +146 -36
  249. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  250. package/dist/lib/components/toast/toast.component.d.ts +11 -1
  251. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  252. package/dist/lib/components/toast/toast.component.js +25 -5
  253. package/dist/lib/components/toast/toast.component.js.map +1 -1
  254. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
  255. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  256. package/dist/lib/components/workspace/conversation-workspace.component.js +887 -291
  257. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  258. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
  259. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
  260. package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
  261. package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
  262. package/dist/lib/conversations.module.d.ts.map +1 -1
  263. package/dist/lib/conversations.module.js.map +1 -1
  264. package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
  265. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
  266. package/dist/lib/directives/chat-slot.directive.js.map +1 -1
  267. package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
  268. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  269. package/dist/lib/directives/search-shortcut.directive.js +14 -4
  270. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  271. package/dist/lib/events/chat-events.d.ts +34 -7
  272. package/dist/lib/events/chat-events.d.ts.map +1 -1
  273. package/dist/lib/events/chat-events.js +37 -7
  274. package/dist/lib/events/chat-events.js.map +1 -1
  275. package/dist/lib/models/agent-turn.model.d.ts +103 -0
  276. package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
  277. package/dist/lib/models/agent-turn.model.js +12 -0
  278. package/dist/lib/models/agent-turn.model.js.map +1 -0
  279. package/dist/lib/models/collection-view.model.js.map +1 -1
  280. package/dist/lib/models/conversation-state.model.d.ts +8 -0
  281. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  282. package/dist/lib/models/conversation-state.model.js.map +1 -1
  283. package/dist/lib/models/lazy-artifact-info.d.ts +44 -12
  284. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  285. package/dist/lib/models/lazy-artifact-info.js +98 -34
  286. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  287. package/dist/lib/services/active-tasks.service.d.ts +30 -4
  288. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  289. package/dist/lib/services/active-tasks.service.js +71 -19
  290. package/dist/lib/services/active-tasks.service.js.map +1 -1
  291. package/dist/lib/services/agent-state.service.d.ts +17 -1
  292. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  293. package/dist/lib/services/agent-state.service.js +48 -16
  294. package/dist/lib/services/agent-state.service.js.map +1 -1
  295. package/dist/lib/services/artifact-permission.service.d.ts +39 -0
  296. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  297. package/dist/lib/services/artifact-permission.service.js +152 -17
  298. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  299. package/dist/lib/services/artifact-state.service.d.ts +58 -5
  300. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  301. package/dist/lib/services/artifact-state.service.js +135 -35
  302. package/dist/lib/services/artifact-state.service.js.map +1 -1
  303. package/dist/lib/services/browser-realtime-media-host.d.ts +24 -0
  304. package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -0
  305. package/dist/lib/services/browser-realtime-media-host.js +95 -0
  306. package/dist/lib/services/browser-realtime-media-host.js.map +1 -0
  307. package/dist/lib/services/collection-permission.service.d.ts +28 -0
  308. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  309. package/dist/lib/services/collection-permission.service.js +88 -32
  310. package/dist/lib/services/collection-permission.service.js.map +1 -1
  311. package/dist/lib/services/collection-state.service.d.ts +11 -1
  312. package/dist/lib/services/collection-state.service.d.ts.map +1 -1
  313. package/dist/lib/services/collection-state.service.js +25 -5
  314. package/dist/lib/services/collection-state.service.js.map +1 -1
  315. package/dist/lib/services/conversation-agent.service.d.ts +26 -4
  316. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  317. package/dist/lib/services/conversation-agent.service.js +57 -18
  318. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  319. package/dist/lib/services/conversation-attachment.service.d.ts +41 -2
  320. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  321. package/dist/lib/services/conversation-attachment.service.js +80 -13
  322. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  323. package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
  324. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
  325. package/dist/lib/services/conversation-streaming.service.js +50 -10
  326. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  327. package/dist/lib/services/data-cache.service.d.ts +31 -0
  328. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  329. package/dist/lib/services/data-cache.service.js +71 -15
  330. package/dist/lib/services/data-cache.service.js.map +1 -1
  331. package/dist/lib/services/dialog.service.d.ts +13 -0
  332. package/dist/lib/services/dialog.service.d.ts.map +1 -1
  333. package/dist/lib/services/dialog.service.js +25 -5
  334. package/dist/lib/services/dialog.service.js.map +1 -1
  335. package/dist/lib/services/export.service.d.ts +2 -0
  336. package/dist/lib/services/export.service.d.ts.map +1 -1
  337. package/dist/lib/services/export.service.js +5 -1
  338. package/dist/lib/services/export.service.js.map +1 -1
  339. package/dist/lib/services/graphql-attachment-blob-store.d.ts +44 -0
  340. package/dist/lib/services/graphql-attachment-blob-store.d.ts.map +1 -0
  341. package/dist/lib/services/graphql-attachment-blob-store.js +113 -0
  342. package/dist/lib/services/graphql-attachment-blob-store.js.map +1 -0
  343. package/dist/lib/services/mention-autocomplete.service.d.ts +17 -141
  344. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  345. package/dist/lib/services/mention-autocomplete.service.js +15 -460
  346. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  347. package/dist/lib/services/mention-parser.service.d.ts +10 -0
  348. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  349. package/dist/lib/services/mention-parser.service.js +25 -5
  350. package/dist/lib/services/mention-parser.service.js.map +1 -1
  351. package/dist/lib/services/notification.service.d.ts +54 -6
  352. package/dist/lib/services/notification.service.d.ts.map +1 -1
  353. package/dist/lib/services/notification.service.js +123 -27
  354. package/dist/lib/services/notification.service.js.map +1 -1
  355. package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
  356. package/dist/lib/services/realtime-audio-recorder.js +12 -12
  357. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  358. package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
  359. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
  360. package/dist/lib/services/realtime-pcm-wav.js +10 -2
  361. package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
  362. package/dist/lib/services/realtime-session-review.service.d.ts +1 -1
  363. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  364. package/dist/lib/services/realtime-session-review.service.js +1 -1
  365. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  366. package/dist/lib/services/realtime-session.service.d.ts +16 -1150
  367. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  368. package/dist/lib/services/realtime-session.service.js +28 -2430
  369. package/dist/lib/services/realtime-session.service.js.map +1 -1
  370. package/dist/lib/services/search.service.d.ts +42 -9
  371. package/dist/lib/services/search.service.d.ts.map +1 -1
  372. package/dist/lib/services/search.service.js +103 -23
  373. package/dist/lib/services/search.service.js.map +1 -1
  374. package/dist/lib/services/toast.service.d.ts +19 -1
  375. package/dist/lib/services/toast.service.d.ts.map +1 -1
  376. package/dist/lib/services/toast.service.js +45 -9
  377. package/dist/lib/services/toast.service.js.map +1 -1
  378. package/dist/lib/services/ui-command-handler.service.d.ts +16 -2
  379. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  380. package/dist/lib/services/ui-command-handler.service.js +36 -8
  381. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  382. package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
  383. package/dist/lib/utils/agent-artifact-summary.js +3 -3
  384. package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
  385. package/dist/lib/utils/agent-turn-routing.d.ts +69 -0
  386. package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
  387. package/dist/lib/utils/agent-turn-routing.js +96 -0
  388. package/dist/lib/utils/agent-turn-routing.js.map +1 -0
  389. package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
  390. package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
  391. package/dist/lib/utils/artifact-panel-action.js +10 -2
  392. package/dist/lib/utils/artifact-panel-action.js.map +1 -1
  393. package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
  394. package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
  395. package/dist/lib/utils/distinct-artifacts.js +5 -1
  396. package/dist/lib/utils/distinct-artifacts.js.map +1 -1
  397. package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
  398. package/dist/lib/utils/plan-mode-preference.js +6 -6
  399. package/dist/lib/utils/plan-mode-preference.js.map +1 -1
  400. package/dist/lib/utils/realtime-session-timeline.d.ts +8 -79
  401. package/dist/lib/utils/realtime-session-timeline.d.ts.map +1 -1
  402. package/dist/lib/utils/realtime-session-timeline.js +8 -89
  403. package/dist/lib/utils/realtime-session-timeline.js.map +1 -1
  404. package/dist/public-api.d.ts +5 -2
  405. package/dist/public-api.d.ts.map +1 -1
  406. package/dist/public-api.js +9 -2
  407. package/dist/public-api.js.map +1 -1
  408. package/package.json +33 -32
  409. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +0 -384
  410. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +0 -1
  411. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +0 -231
  412. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +0 -1
  413. package/dist/lib/services/delegation-result-parser.d.ts +0 -50
  414. package/dist/lib/services/delegation-result-parser.d.ts.map +0 -1
  415. package/dist/lib/services/delegation-result-parser.js +0 -60
  416. package/dist/lib/services/delegation-result-parser.js.map +0 -1
  417. package/dist/lib/services/narration-template.d.ts +0 -42
  418. package/dist/lib/services/narration-template.d.ts.map +0 -1
  419. package/dist/lib/services/narration-template.js +0 -73
  420. package/dist/lib/services/narration-template.js.map +0 -1
  421. package/dist/lib/services/skill-picker-narrowing.d.ts +0 -13
  422. package/dist/lib/services/skill-picker-narrowing.d.ts.map +0 -1
  423. package/dist/lib/services/skill-picker-narrowing.js +0 -13
  424. package/dist/lib/services/skill-picker-narrowing.js.map +0 -1
@@ -3,7 +3,7 @@ import { NormalizeUUID, UUIDsEqual } from '@memberjunction/global';
3
3
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
4
4
  import { MessageItemComponent } from './message-item.component';
5
5
  import { RealtimeSessionTimelineCardComponent } from '../realtime/realtime-session-timeline-card.component';
6
- import { selectDistinctLatestArtifacts } from '../../utils/distinct-artifacts';
6
+ import { SelectDistinctLatestArtifacts } from '../../utils/distinct-artifacts';
7
7
  import { BuildConversationTimeline } from '../../utils/realtime-session-timeline';
8
8
  import { DEFAULT_TRANSCRIPT_PAGE_SIZE } from '../../utils/conversation-detail-window';
9
9
  import { ResolveDateJumpTarget } from '../../utils/date-jump';
@@ -95,21 +95,109 @@ export class MessageListComponent extends BaseAngularComponent {
95
95
  cdRef;
96
96
  hostRef;
97
97
  messages = [];
98
- conversation;
99
- currentUser;
100
- isProcessing = false;
98
+ Conversation;
99
+ /** @deprecated Use {@link Conversation}. */
100
+ set conversation(value) {
101
+ this.Conversation = value;
102
+ }
103
+ /** @deprecated Use {@link Conversation}. */
104
+ get conversation() {
105
+ return this.Conversation;
106
+ }
107
+ CurrentUser;
108
+ /** @deprecated Use {@link CurrentUser}. */
109
+ set currentUser(value) {
110
+ this.CurrentUser = value;
111
+ }
112
+ /** @deprecated Use {@link CurrentUser}. */
113
+ get currentUser() {
114
+ return this.CurrentUser;
115
+ }
116
+ IsProcessing = false;
117
+ /** @deprecated Use {@link IsProcessing}. */
118
+ set isProcessing(value) {
119
+ this.IsProcessing = value;
120
+ }
121
+ /** @deprecated Use {@link IsProcessing}. */
122
+ get isProcessing() {
123
+ return this.IsProcessing;
124
+ }
101
125
  /** Whether the built-in "No messages yet" filler renders for empty conversations. Hosts with their own empty-state chrome set false. */
102
- showEmptyFill = true;
126
+ ShowEmptyFill = true;
127
+ /** @deprecated Use {@link ShowEmptyFill}. */
128
+ set showEmptyFill(value) {
129
+ this.ShowEmptyFill = value;
130
+ }
131
+ /** @deprecated Use {@link ShowEmptyFill}. */
132
+ get showEmptyFill() {
133
+ return this.ShowEmptyFill;
134
+ }
103
135
  /** Whether the sticky date header + jump-to-date dropdown render. */
104
- showDateNavigation = true;
136
+ ShowDateNavigation = true;
137
+ /** @deprecated Use {@link ShowDateNavigation}. */
138
+ set showDateNavigation(value) {
139
+ this.ShowDateNavigation = value;
140
+ }
141
+ /** @deprecated Use {@link ShowDateNavigation}. */
142
+ get showDateNavigation() {
143
+ return this.ShowDateNavigation;
144
+ }
105
145
  // Per-message feature gates — forwarded onto each MessageItemComponent instance
106
146
  // (see applyMessageItemFeatureFlags). All default true.
107
- showAgentRunDetails = true;
108
- showReactions = true;
109
- showMessageRating = true;
110
- allowPinning = true;
111
- allowMessageEdit = true;
112
- allowMessageDelete = true;
147
+ ShowAgentRunDetails = true;
148
+ /** @deprecated Use {@link ShowAgentRunDetails}. */
149
+ set showAgentRunDetails(value) {
150
+ this.ShowAgentRunDetails = value;
151
+ }
152
+ /** @deprecated Use {@link ShowAgentRunDetails}. */
153
+ get showAgentRunDetails() {
154
+ return this.ShowAgentRunDetails;
155
+ }
156
+ ShowReactions = true;
157
+ /** @deprecated Use {@link ShowReactions}. */
158
+ set showReactions(value) {
159
+ this.ShowReactions = value;
160
+ }
161
+ /** @deprecated Use {@link ShowReactions}. */
162
+ get showReactions() {
163
+ return this.ShowReactions;
164
+ }
165
+ ShowMessageRating = true;
166
+ /** @deprecated Use {@link ShowMessageRating}. */
167
+ set showMessageRating(value) {
168
+ this.ShowMessageRating = value;
169
+ }
170
+ /** @deprecated Use {@link ShowMessageRating}. */
171
+ get showMessageRating() {
172
+ return this.ShowMessageRating;
173
+ }
174
+ AllowPinning = true;
175
+ /** @deprecated Use {@link AllowPinning}. */
176
+ set allowPinning(value) {
177
+ this.AllowPinning = value;
178
+ }
179
+ /** @deprecated Use {@link AllowPinning}. */
180
+ get allowPinning() {
181
+ return this.AllowPinning;
182
+ }
183
+ AllowMessageEdit = true;
184
+ /** @deprecated Use {@link AllowMessageEdit}. */
185
+ set allowMessageEdit(value) {
186
+ this.AllowMessageEdit = value;
187
+ }
188
+ /** @deprecated Use {@link AllowMessageEdit}. */
189
+ get allowMessageEdit() {
190
+ return this.AllowMessageEdit;
191
+ }
192
+ AllowMessageDelete = true;
193
+ /** @deprecated Use {@link AllowMessageDelete}. */
194
+ set allowMessageDelete(value) {
195
+ this.AllowMessageDelete = value;
196
+ }
197
+ /** @deprecated Use {@link AllowMessageDelete}. */
198
+ get allowMessageDelete() {
199
+ return this.AllowMessageDelete;
200
+ }
113
201
  // ── Windowed-transcript paging state ────────────────────────────────────────
114
202
  // The list renders only the LOADED window, not the whole conversation. These two
115
203
  // describe what lies above it. Unused until the Phase 5 sentinel lands; wired now so
@@ -192,39 +280,103 @@ export class MessageListComponent extends BaseAngularComponent {
192
280
  // restamp the ALREADY-rendered items or existing bubbles keep the old identity
193
281
  // until the next messages-array mutation. ──
194
282
  /** Display name shown on AI messages. Null = the engine-resolved agent name. */
195
- set assistantDisplayName(value) {
283
+ set AssistantDisplayName(value) {
196
284
  if (value !== this._assistantDisplayName) {
197
285
  this._assistantDisplayName = value;
198
286
  this.restampAssistantIdentity();
199
287
  }
200
288
  }
201
- get assistantDisplayName() {
289
+ get AssistantDisplayName() {
202
290
  return this._assistantDisplayName;
203
291
  }
292
+ /** @deprecated Use {@link AssistantDisplayName}. */
293
+ get assistantDisplayName() {
294
+ return this.AssistantDisplayName;
295
+ }
296
+ /** @deprecated Use {@link AssistantDisplayName}. */
297
+ set assistantDisplayName(value) {
298
+ this.AssistantDisplayName = value;
299
+ }
204
300
  _assistantDisplayName = null;
205
301
  /** Image URL for the AI message avatar. Null = the agent's Font Awesome icon. */
206
- set assistantAvatarUrl(value) {
302
+ set AssistantAvatarUrl(value) {
207
303
  if (value !== this._assistantAvatarUrl) {
208
304
  this._assistantAvatarUrl = value;
209
305
  this.restampAssistantIdentity();
210
306
  }
211
307
  }
212
- get assistantAvatarUrl() {
308
+ get AssistantAvatarUrl() {
213
309
  return this._assistantAvatarUrl;
214
310
  }
311
+ /** @deprecated Use {@link AssistantAvatarUrl}. */
312
+ get assistantAvatarUrl() {
313
+ return this.AssistantAvatarUrl;
314
+ }
315
+ /** @deprecated Use {@link AssistantAvatarUrl}. */
316
+ set assistantAvatarUrl(value) {
317
+ this.AssistantAvatarUrl = value;
318
+ }
215
319
  _assistantAvatarUrl = null;
216
- artifactMap = new Map();
217
- agentRunMap = new Map();
218
- ratingsMap = new Map();
219
- userAvatarMap = new Map();
220
- attachmentsMap = new Map();
320
+ ArtifactMap = new Map();
321
+ /** @deprecated Use {@link ArtifactMap}. */
322
+ set artifactMap(value) {
323
+ this.ArtifactMap = value;
324
+ }
325
+ /** @deprecated Use {@link ArtifactMap}. */
326
+ get artifactMap() {
327
+ return this.ArtifactMap;
328
+ }
329
+ AgentRunMap = new Map();
330
+ /** @deprecated Use {@link AgentRunMap}. */
331
+ set agentRunMap(value) {
332
+ this.AgentRunMap = value;
333
+ }
334
+ /** @deprecated Use {@link AgentRunMap}. */
335
+ get agentRunMap() {
336
+ return this.AgentRunMap;
337
+ }
338
+ RatingsMap = new Map();
339
+ /** @deprecated Use {@link RatingsMap}. */
340
+ set ratingsMap(value) {
341
+ this.RatingsMap = value;
342
+ }
343
+ /** @deprecated Use {@link RatingsMap}. */
344
+ get ratingsMap() {
345
+ return this.RatingsMap;
346
+ }
347
+ UserAvatarMap = new Map();
348
+ /** @deprecated Use {@link UserAvatarMap}. */
349
+ set userAvatarMap(value) {
350
+ this.UserAvatarMap = value;
351
+ }
352
+ /** @deprecated Use {@link UserAvatarMap}. */
353
+ get userAvatarMap() {
354
+ return this.UserAvatarMap;
355
+ }
356
+ AttachmentsMap = new Map();
357
+ /** @deprecated Use {@link AttachmentsMap}. */
358
+ set attachmentsMap(value) {
359
+ this.AttachmentsMap = value;
360
+ }
361
+ /** @deprecated Use {@link AttachmentsMap}. */
362
+ get attachmentsMap() {
363
+ return this.AttachmentsMap;
364
+ }
221
365
  /**
222
366
  * Optional session-row enrichment for realtime SESSION BLOCKS, keyed by
223
367
  * `NormalizeUUID(sessionId)` (agent name / status / close reason). Details stamped
224
368
  * with an `AgentSessionID` collapse into one timeline card per session — see
225
369
  * `BuildConversationTimeline` — and this map dresses those cards up when present.
226
370
  */
227
- sessionMetaMap = new Map();
371
+ SessionMetaMap = new Map();
372
+ /** @deprecated Use {@link SessionMetaMap}. */
373
+ set sessionMetaMap(value) {
374
+ this.SessionMetaMap = value;
375
+ }
376
+ /** @deprecated Use {@link SessionMetaMap}. */
377
+ get sessionMetaMap() {
378
+ return this.SessionMetaMap;
379
+ }
228
380
  /**
229
381
  * Optional per-iteration custom message renderer. When set, the list renders each
230
382
  * message via this template (full replacement) instead of the default
@@ -237,33 +389,177 @@ export class MessageListComponent extends BaseAngularComponent {
237
389
  * etc. The minimal `MJChatMessageBubbleDefaultComponent` ships as a ready-to-use
238
390
  * bubble renderer.
239
391
  */
240
- messageRendererTemplate = null;
392
+ MessageRendererTemplate = null;
393
+ /** @deprecated Use {@link MessageRendererTemplate}. */
394
+ set messageRendererTemplate(value) {
395
+ this.MessageRendererTemplate = value;
396
+ }
397
+ /** @deprecated Use {@link MessageRendererTemplate}. */
398
+ get messageRendererTemplate() {
399
+ return this.MessageRendererTemplate;
400
+ }
241
401
  /**
242
402
  * Optional per-message additive decoration template, projected INSIDE the default
243
403
  * `MessageItemComponent` (after the message text). Forwarded by chat-area when a
244
404
  * consumer projects `mjChatSlot="messageExtra"`. Ignored when
245
405
  * `messageRendererTemplate` is set (custom renderers own all per-message content).
246
406
  */
247
- messageExtraTemplate = null;
248
- editMessage = new EventEmitter();
249
- deleteMessage = new EventEmitter();
250
- retryMessage = new EventEmitter();
251
- testFeedbackMessage = new EventEmitter();
252
- artifactClicked = new EventEmitter();
253
- replyInThread = new EventEmitter();
254
- viewThread = new EventEmitter();
255
- messageEdited = new EventEmitter();
256
- openEntityRecord = new EventEmitter();
257
- suggestedResponseSelected = new EventEmitter();
258
- attachmentClicked = new EventEmitter();
259
- diagnosticRequested = new EventEmitter(); // emits messageId
260
- messagePinToggled = new EventEmitter();
407
+ MessageExtraTemplate = null;
408
+ /** @deprecated Use {@link MessageExtraTemplate}. */
409
+ set messageExtraTemplate(value) {
410
+ this.MessageExtraTemplate = value;
411
+ }
412
+ /** @deprecated Use {@link MessageExtraTemplate}. */
413
+ get messageExtraTemplate() {
414
+ return this.MessageExtraTemplate;
415
+ }
416
+ EditMessage = new EventEmitter();
417
+ /**
418
+ * @deprecated Use {@link EditMessage}.
419
+ *
420
+ * The same emitter under the old binding name, so a template still binding
421
+ * (editMessage) keeps working. Must stay AFTER EditMessage: class fields
422
+ * initialise in order, and the other way round this captures undefined.
423
+ */
424
+ editMessage = this.EditMessage;
425
+ DeleteMessage = new EventEmitter();
426
+ /**
427
+ * @deprecated Use {@link DeleteMessage}.
428
+ *
429
+ * The same emitter under the old binding name, so a template still binding
430
+ * (deleteMessage) keeps working. Must stay AFTER DeleteMessage: class fields
431
+ * initialise in order, and the other way round this captures undefined.
432
+ */
433
+ deleteMessage = this.DeleteMessage;
434
+ RetryMessage = new EventEmitter();
435
+ /**
436
+ * @deprecated Use {@link RetryMessage}.
437
+ *
438
+ * The same emitter under the old binding name, so a template still binding
439
+ * (retryMessage) keeps working. Must stay AFTER RetryMessage: class fields
440
+ * initialise in order, and the other way round this captures undefined.
441
+ */
442
+ retryMessage = this.RetryMessage;
443
+ TestFeedbackMessage = new EventEmitter();
444
+ /**
445
+ * @deprecated Use {@link TestFeedbackMessage}.
446
+ *
447
+ * The same emitter under the old binding name, so a template still binding
448
+ * (testFeedbackMessage) keeps working. Must stay AFTER TestFeedbackMessage: class fields
449
+ * initialise in order, and the other way round this captures undefined.
450
+ */
451
+ testFeedbackMessage = this.TestFeedbackMessage;
452
+ ArtifactClicked = new EventEmitter();
453
+ /**
454
+ * @deprecated Use {@link ArtifactClicked}.
455
+ *
456
+ * The same emitter under the old binding name, so a template still binding
457
+ * (artifactClicked) keeps working. Must stay AFTER ArtifactClicked: class fields
458
+ * initialise in order, and the other way round this captures undefined.
459
+ */
460
+ artifactClicked = this.ArtifactClicked;
461
+ ReplyInThread = new EventEmitter();
462
+ /**
463
+ * @deprecated Use {@link ReplyInThread}.
464
+ *
465
+ * The same emitter under the old binding name, so a template still binding
466
+ * (replyInThread) keeps working. Must stay AFTER ReplyInThread: class fields
467
+ * initialise in order, and the other way round this captures undefined.
468
+ */
469
+ replyInThread = this.ReplyInThread;
470
+ ViewThread = new EventEmitter();
471
+ /**
472
+ * @deprecated Use {@link ViewThread}.
473
+ *
474
+ * The same emitter under the old binding name, so a template still binding
475
+ * (viewThread) keeps working. Must stay AFTER ViewThread: class fields
476
+ * initialise in order, and the other way round this captures undefined.
477
+ */
478
+ viewThread = this.ViewThread;
479
+ MessageEdited = new EventEmitter();
480
+ /**
481
+ * @deprecated Use {@link MessageEdited}.
482
+ *
483
+ * The same emitter under the old binding name, so a template still binding
484
+ * (messageEdited) keeps working. Must stay AFTER MessageEdited: class fields
485
+ * initialise in order, and the other way round this captures undefined.
486
+ */
487
+ messageEdited = this.MessageEdited;
488
+ OpenEntityRecord = new EventEmitter();
489
+ /**
490
+ * @deprecated Use {@link OpenEntityRecord}.
491
+ *
492
+ * The same emitter under the old binding name, so a template still binding
493
+ * (openEntityRecord) keeps working. Must stay AFTER OpenEntityRecord: class fields
494
+ * initialise in order, and the other way round this captures undefined.
495
+ */
496
+ openEntityRecord = this.OpenEntityRecord;
497
+ SuggestedResponseSelected = new EventEmitter();
498
+ /**
499
+ * @deprecated Use {@link SuggestedResponseSelected}.
500
+ *
501
+ * The same emitter under the old binding name, so a template still binding
502
+ * (suggestedResponseSelected) keeps working. Must stay AFTER SuggestedResponseSelected: class fields
503
+ * initialise in order, and the other way round this captures undefined.
504
+ */
505
+ suggestedResponseSelected = this.SuggestedResponseSelected;
506
+ AttachmentClicked = new EventEmitter();
507
+ /**
508
+ * @deprecated Use {@link AttachmentClicked}.
509
+ *
510
+ * The same emitter under the old binding name, so a template still binding
511
+ * (attachmentClicked) keeps working. Must stay AFTER AttachmentClicked: class fields
512
+ * initialise in order, and the other way round this captures undefined.
513
+ */
514
+ attachmentClicked = this.AttachmentClicked;
515
+ DiagnosticRequested = new EventEmitter();
516
+ /**
517
+ * @deprecated Use {@link DiagnosticRequested}.
518
+ *
519
+ * The same emitter under the old binding name, so a template still binding
520
+ * (diagnosticRequested) keeps working. Must stay AFTER DiagnosticRequested: class fields
521
+ * initialise in order, and the other way round this captures undefined.
522
+ */
523
+ diagnosticRequested = this.DiagnosticRequested; // emits messageId
524
+ MessagePinToggled = new EventEmitter();
525
+ /**
526
+ * @deprecated Use {@link MessagePinToggled}.
527
+ *
528
+ * The same emitter under the old binding name, so a template still binding
529
+ * (messagePinToggled) keeps working. Must stay AFTER MessagePinToggled: class fields
530
+ * initialise in order, and the other way round this captures undefined.
531
+ */
532
+ messagePinToggled = this.MessagePinToggled;
261
533
  /** Emitted with the `MJ: AI Agent Sessions.ID` when a realtime session block's Open affordance is clicked. */
262
- realtimeSessionOpenRequested = new EventEmitter();
534
+ RealtimeSessionOpenRequested = new EventEmitter();
535
+ /**
536
+ * @deprecated Use {@link RealtimeSessionOpenRequested}.
537
+ *
538
+ * The same emitter under the old binding name, so a template still binding
539
+ * (realtimeSessionOpenRequested) keeps working. Must stay AFTER RealtimeSessionOpenRequested: class fields
540
+ * initialise in order, and the other way round this captures undefined.
541
+ */
542
+ realtimeSessionOpenRequested = this.RealtimeSessionOpenRequested;
263
543
  /** Forwarded from MessageItemComponent — see its docs. */
264
- beforeResponseFormSubmitted = new EventEmitter();
544
+ BeforeResponseFormSubmitted = new EventEmitter();
545
+ /**
546
+ * @deprecated Use {@link BeforeResponseFormSubmitted}.
547
+ *
548
+ * The same emitter under the old binding name, so a template still binding
549
+ * (beforeResponseFormSubmitted) keeps working. Must stay AFTER BeforeResponseFormSubmitted: class fields
550
+ * initialise in order, and the other way round this captures undefined.
551
+ */
552
+ beforeResponseFormSubmitted = this.BeforeResponseFormSubmitted;
265
553
  /** Forwarded from MessageItemComponent — see its docs. */
266
- afterResponseFormSubmitted = new EventEmitter();
554
+ AfterResponseFormSubmitted = new EventEmitter();
555
+ /**
556
+ * @deprecated Use {@link AfterResponseFormSubmitted}.
557
+ *
558
+ * The same emitter under the old binding name, so a template still binding
559
+ * (afterResponseFormSubmitted) keeps working. Must stay AFTER AfterResponseFormSubmitted: class fields
560
+ * initialise in order, and the other way round this captures undefined.
561
+ */
562
+ afterResponseFormSubmitted = this.AfterResponseFormSubmitted;
267
563
  /**
268
564
  * Asks the host to load the next older page. Fired when the "earlier messages"
269
565
  * sentinel scrolls into view — never on a raw scroll event, so a fast scroll costs
@@ -275,10 +571,34 @@ export class MessageListComponent extends BaseAngularComponent {
275
571
  * Emitted instead of handled locally because paging belongs to the window store.
276
572
  */
277
573
  DateJumpRequested = new EventEmitter();
278
- messageContainerRef;
279
- scrollContainer;
574
+ MessageContainerRef;
575
+ /** @deprecated Use {@link MessageContainerRef}. */
576
+ get messageContainerRef() {
577
+ return this.MessageContainerRef;
578
+ }
579
+ /** @deprecated Use {@link MessageContainerRef}. */
580
+ set messageContainerRef(value) {
581
+ this.MessageContainerRef = value;
582
+ }
583
+ ScrollContainer;
584
+ /** @deprecated Use {@link ScrollContainer}. */
585
+ get scrollContainer() {
586
+ return this.ScrollContainer;
587
+ }
588
+ /** @deprecated Use {@link ScrollContainer}. */
589
+ set scrollContainer(value) {
590
+ this.ScrollContainer = value;
591
+ }
280
592
  /** Only present while `HasMoreAbove` is true — the `@if` creates and destroys it. */
281
- olderSentinel;
593
+ OlderSentinel;
594
+ /** @deprecated Use {@link OlderSentinel}. */
595
+ get olderSentinel() {
596
+ return this.OlderSentinel;
597
+ }
598
+ /** @deprecated Use {@link OlderSentinel}. */
599
+ set olderSentinel(value) {
600
+ this.OlderSentinel = value;
601
+ }
282
602
  /** Template rendered in place of an unmounted timeline item. */
283
603
  spacerTemplate;
284
604
  /**
@@ -354,16 +674,44 @@ export class MessageListComponent extends BaseAngularComponent {
354
674
  * since both grow `messages.length`.
355
675
  */
356
676
  _previousFirstKey = null;
357
- currentDateDisplay = 'Today';
358
- showDateNav = false;
359
- shouldShowDateFilter = false;
677
+ CurrentDateDisplay = 'Today';
678
+ /** @deprecated Use {@link CurrentDateDisplay}. */
679
+ get currentDateDisplay() {
680
+ return this.CurrentDateDisplay;
681
+ }
682
+ /** @deprecated Use {@link CurrentDateDisplay}. */
683
+ set currentDateDisplay(value) {
684
+ this.CurrentDateDisplay = value;
685
+ }
686
+ ShowDateNav = false;
687
+ /** @deprecated Use {@link ShowDateNav}. */
688
+ get showDateNav() {
689
+ return this.ShowDateNav;
690
+ }
691
+ /** @deprecated Use {@link ShowDateNav}. */
692
+ set showDateNav(value) {
693
+ this.ShowDateNav = value;
694
+ }
695
+ ShouldShowDateFilter = false;
696
+ /** @deprecated Use {@link ShouldShowDateFilter}. */
697
+ get shouldShowDateFilter() {
698
+ return this.ShouldShowDateFilter;
699
+ }
700
+ /** @deprecated Use {@link ShouldShowDateFilter}. */
701
+ set shouldShowDateFilter(value) {
702
+ this.ShouldShowDateFilter = value;
703
+ }
360
704
  constructor(cdRef, hostRef) {
361
705
  super();
362
706
  this.cdRef = cdRef;
363
707
  this.hostRef = hostRef;
364
708
  }
709
+ ToggleDateNav() {
710
+ this.ShowDateNav = !this.ShowDateNav;
711
+ }
712
+ /** @deprecated Use {@link ToggleDateNav}. */
365
713
  toggleDateNav() {
366
- this.showDateNav = !this.showDateNav;
714
+ return this.ToggleDateNav();
367
715
  }
368
716
  /**
369
717
  * Handles a date-navigator selection.
@@ -373,14 +721,18 @@ export class MessageListComponent extends BaseAngularComponent {
373
721
  * {@link ScrollToDateTarget}. The label updates immediately so the dropdown feels responsive
374
722
  * while paging runs.
375
723
  */
376
- jumpToDate(period) {
377
- this.showDateNav = false;
724
+ JumpToDate(period) {
725
+ this.ShowDateNav = false;
378
726
  if (!isDateJumpPeriod(period)) {
379
727
  return;
380
728
  }
381
- this.currentDateDisplay = DATE_JUMP_LABELS[period];
729
+ this.CurrentDateDisplay = DATE_JUMP_LABELS[period];
382
730
  this.DateJumpRequested.emit(period);
383
731
  }
732
+ /** @deprecated Use {@link JumpToDate}. */
733
+ jumpToDate(period) {
734
+ return this.JumpToDate(period);
735
+ }
384
736
  /**
385
737
  * Scrolls to the start of `period` within the currently loaded messages.
386
738
  *
@@ -484,7 +836,7 @@ export class MessageListComponent extends BaseAngularComponent {
484
836
  }
485
837
  ngAfterViewInit() {
486
838
  // ViewContainerRef is now available - perform initial render if we have messages
487
- if (this.messages && this.messages.length > 0 && this.messageContainerRef && !this._initialRenderComplete) {
839
+ if (this.messages && this.messages.length > 0 && this.MessageContainerRef && !this._initialRenderComplete) {
488
840
  this._initialRenderComplete = true;
489
841
  this.updateMessages(this.messages);
490
842
  this.updateDateFilterVisibility();
@@ -494,7 +846,7 @@ export class MessageListComponent extends BaseAngularComponent {
494
846
  // React to messages array changes
495
847
  // Note: On initial load, messageContainerRef may not be available yet (ngOnChanges runs before ngAfterViewInit)
496
848
  // In that case, ngAfterViewInit will handle the initial render
497
- if (changes['messages'] && this.messages && this.messageContainerRef) {
849
+ if (changes['messages'] && this.messages && this.MessageContainerRef) {
498
850
  this._initialRenderComplete = true;
499
851
  // Capture the pre-render height so a prepend can be corrected for. Must happen
500
852
  // BEFORE updateMessages — afterwards the new rows are already in the layout — and
@@ -507,18 +859,18 @@ export class MessageListComponent extends BaseAngularComponent {
507
859
  // While artifacts are pre-loaded during initial peripheral data load,
508
860
  // new artifacts can be created mid-conversation (e.g., by agent runs)
509
861
  // This ensures artifact cards appear in messages immediately without requiring a refresh
510
- if (changes['artifactMap'] && this.messages && this.messageContainerRef) {
862
+ if (changes['artifactMap'] && this.messages && this.MessageContainerRef) {
511
863
  this.updateMessages(this.messages);
512
864
  }
513
865
  // Watch for attachmentsMap changes to handle newly created attachments
514
866
  // This ensures media attachments (e.g., images generated by agents) appear
515
867
  // immediately without requiring a page refresh
516
- if (changes['attachmentsMap'] && this.messages && this.messageContainerRef) {
868
+ if (changes['attachmentsMap'] && this.messages && this.MessageContainerRef) {
517
869
  this.updateMessages(this.messages);
518
870
  }
519
871
  // Watch for session-meta changes so realtime session blocks pick up their
520
872
  // agent name / status chip once the (async, batched) session lookup lands
521
- if (changes['sessionMetaMap'] && this.messages && this.messageContainerRef) {
873
+ if (changes['sessionMetaMap'] && this.messages && this.MessageContainerRef) {
522
874
  this.updateMessages(this.messages);
523
875
  }
524
876
  }
@@ -611,7 +963,7 @@ export class MessageListComponent extends BaseAngularComponent {
611
963
  }
612
964
  this._warnedNoScrollParent = true;
613
965
  const chain = [];
614
- let el = this.findSentinelElement() ?? this.scrollContainer?.nativeElement ?? null;
966
+ let el = this.findSentinelElement() ?? this.ScrollContainer?.nativeElement ?? null;
615
967
  while (el && chain.length < 20) {
616
968
  const style = getComputedStyle(el);
617
969
  chain.push({
@@ -626,7 +978,7 @@ export class MessageListComponent extends BaseAngularComponent {
626
978
  + 'older pages cannot auto-load. The host must give the transcript a scrollable container '
627
979
  + '(overflow-y: auto AND a bounded height, e.g. min-height: 0 on a flex child). '
628
980
  + 'Walked from '
629
- + (this.olderSentinel ? 'the sentinel' : this.scrollContainer ? 'the list container' : 'NOTHING — both view children are undefined')
981
+ + (this.OlderSentinel ? 'the sentinel' : this.ScrollContainer ? 'the list container' : 'NOTHING — both view children are undefined')
630
982
  + ':', chain);
631
983
  }
632
984
  /**
@@ -654,7 +1006,7 @@ export class MessageListComponent extends BaseAngularComponent {
654
1006
  // guaranteed present exactly when the walk matters. `@ViewChild('scrollContainer')`
655
1007
  // resolves on Angular's own schedule and can still be undefined here, which would end
656
1008
  // the walk before it began.
657
- let el = this.findSentinelElement() ?? this.scrollContainer?.nativeElement ?? null;
1009
+ let el = this.findSentinelElement() ?? this.ScrollContainer?.nativeElement ?? null;
658
1010
  while (el) {
659
1011
  const overflowY = getComputedStyle(el).overflowY;
660
1012
  if ((overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight) {
@@ -778,19 +1130,23 @@ export class MessageListComponent extends BaseAngularComponent {
778
1130
  }
779
1131
  });
780
1132
  this._renderedMessages.clear();
781
- if (this.messageContainerRef) {
782
- this.messageContainerRef.clear();
1133
+ if (this.MessageContainerRef) {
1134
+ this.MessageContainerRef.clear();
783
1135
  }
784
1136
  }
785
1137
  /**
786
1138
  * Called when messages array changes
787
1139
  * Efficiently updates the DOM without re-rendering everything
788
1140
  */
789
- set messagesUpdate(messages) {
790
- if (messages && this.messageContainerRef) {
1141
+ set MessagesUpdate(messages) {
1142
+ if (messages && this.MessageContainerRef) {
791
1143
  this.updateMessages(messages);
792
1144
  }
793
1145
  }
1146
+ /** @deprecated Use {@link MessagesUpdate}. */
1147
+ set messagesUpdate(value) {
1148
+ this.MessagesUpdate = value;
1149
+ }
794
1150
  /**
795
1151
  * Updates the message list using dynamic component creation
796
1152
  * Only adds/removes changed messages for optimal performance
@@ -1016,7 +1372,7 @@ export class MessageListComponent extends BaseAngularComponent {
1016
1372
  existing.ref.destroy();
1017
1373
  this._renderedMessages.delete(key);
1018
1374
  }
1019
- const viewRef = this.messageContainerRef.createEmbeddedView(this.spacerTemplate, { height: this.heightFor(key, item) }, { index: timelineIndex });
1375
+ const viewRef = this.MessageContainerRef.createEmbeddedView(this.spacerTemplate, { height: this.heightFor(key, item) }, { index: timelineIndex });
1020
1376
  this._renderedMessages.set(key, { kind: 'spacer', ref: viewRef });
1021
1377
  }
1022
1378
  /**
@@ -1141,7 +1497,7 @@ export class MessageListComponent extends BaseAngularComponent {
1141
1497
  */
1142
1498
  renderSessionBlock(group, timelineIndex) {
1143
1499
  const key = this.getSessionKey(group.SessionID);
1144
- const meta = this.sessionMetaMap.get(NormalizeUUID(group.SessionID)) ?? null;
1500
+ const meta = this.SessionMetaMap.get(NormalizeUUID(group.SessionID)) ?? null;
1145
1501
  const existing = this._renderedMessages.get(key);
1146
1502
  if (existing && existing.kind === 'realtime-session') {
1147
1503
  // Update existing card in place.
@@ -1156,11 +1512,13 @@ export class MessageListComponent extends BaseAngularComponent {
1156
1512
  existing.ref.destroy();
1157
1513
  this._renderedMessages.delete(key);
1158
1514
  }
1159
- const componentRef = this.messageContainerRef.createComponent(RealtimeSessionTimelineCardComponent, { index: timelineIndex });
1515
+ const componentRef = this.MessageContainerRef.createComponent(RealtimeSessionTimelineCardComponent, { index: timelineIndex });
1160
1516
  componentRef.instance.Group = group;
1161
1517
  componentRef.instance.Meta = meta;
1162
- componentRef.instance.UserName = this.currentUser?.Name || 'You';
1163
- componentRef.instance.OpenRequested.subscribe((sessionId) => this.realtimeSessionOpenRequested.emit(sessionId));
1518
+ // The card says "You" on the viewer's own call and names the caller on anyone else's, which is
1519
+ // why it takes the viewer's id rather than their name.
1520
+ componentRef.instance.CurrentUserID = this.CurrentUser?.ID ?? null;
1521
+ componentRef.instance.OpenRequested.subscribe((sessionId) => this.RealtimeSessionOpenRequested.emit(sessionId));
1164
1522
  this._renderedMessages.set(key, { kind: 'realtime-session', ref: componentRef });
1165
1523
  }
1166
1524
  /**
@@ -1177,7 +1535,7 @@ export class MessageListComponent extends BaseAngularComponent {
1177
1535
  // boolean (last index when `isLastMessage` is true, else 0 — any non-last
1178
1536
  // index works since it just affects that one comparison).
1179
1537
  const index = isLastMessage ? messages.length - 1 : 0;
1180
- const useCustomRenderer = this.messageRendererTemplate !== null;
1538
+ const useCustomRenderer = this.MessageRendererTemplate !== null;
1181
1539
  const existing = this._renderedMessages.get(key);
1182
1540
  if (existing && existing.kind === 'embedded' && useCustomRenderer) {
1183
1541
  // Update existing embedded view from messageRenderer slot
@@ -1209,14 +1567,14 @@ export class MessageListComponent extends BaseAngularComponent {
1209
1567
  const previousMessage = instance.message;
1210
1568
  instance.message = message;
1211
1569
  instance.allMessages = messages;
1212
- instance.isProcessing = this.isProcessing;
1213
- instance.userAvatarMap = this.userAvatarMap;
1570
+ instance.isProcessing = this.IsProcessing;
1571
+ instance.userAvatarMap = this.UserAvatarMap;
1214
1572
  instance.isLastMessage = (index === messages.length - 1);
1215
- instance.messageExtraTemplate = this.messageExtraTemplate;
1573
+ instance.messageExtraTemplate = this.MessageExtraTemplate;
1216
1574
  this.applyMessageItemFeatureFlags(instance);
1217
- instance.agentRun = this.agentRunMap.get(message.ID) || null;
1218
- instance.ratings = this.ratingsMap.get(message.ID);
1219
- instance.attachments = this.attachmentsMap.get(message.ID) || [];
1575
+ instance.agentRun = this.AgentRunMap.get(message.ID) || null;
1576
+ instance.ratings = this.RatingsMap.get(message.ID);
1577
+ instance.attachments = this.AttachmentsMap.get(message.ID) || [];
1220
1578
  // After the inputs above, for the same reason as the create path: this can force a
1221
1579
  // synchronous child pass, which would otherwise paint the previous refresh's agent run,
1222
1580
  // ratings and attachments.
@@ -1233,14 +1591,14 @@ export class MessageListComponent extends BaseAngularComponent {
1233
1591
  * paths so a mid-session rebind stays consistent.
1234
1592
  */
1235
1593
  applyMessageItemFeatureFlags(instance) {
1236
- instance.showAgentRunDetails = this.showAgentRunDetails;
1237
- instance.showReactions = this.showReactions;
1238
- instance.showMessageRating = this.showMessageRating;
1239
- instance.allowPinning = this.allowPinning;
1240
- instance.allowMessageEdit = this.allowMessageEdit;
1241
- instance.allowMessageDelete = this.allowMessageDelete;
1242
- instance.assistantDisplayName = this.assistantDisplayName;
1243
- instance.assistantAvatarUrl = this.assistantAvatarUrl;
1594
+ instance.showAgentRunDetails = this.ShowAgentRunDetails;
1595
+ instance.showReactions = this.ShowReactions;
1596
+ instance.showMessageRating = this.ShowMessageRating;
1597
+ instance.allowPinning = this.AllowPinning;
1598
+ instance.allowMessageEdit = this.AllowMessageEdit;
1599
+ instance.allowMessageDelete = this.AllowMessageDelete;
1600
+ instance.assistantDisplayName = this.AssistantDisplayName;
1601
+ instance.assistantAvatarUrl = this.AssistantAvatarUrl;
1244
1602
  }
1245
1603
  /**
1246
1604
  * Creates a new rendered entry — either a `MessageItemComponent` (default path)
@@ -1249,43 +1607,43 @@ export class MessageListComponent extends BaseAngularComponent {
1249
1607
  * message entity.
1250
1608
  */
1251
1609
  createRenderedEntry(message, messages, index, key, useCustomRenderer, timelineIndex) {
1252
- if (useCustomRenderer && this.messageRendererTemplate) {
1610
+ if (useCustomRenderer && this.MessageRendererTemplate) {
1253
1611
  // The slot directive carries TemplateRef<unknown>; assert the contract here
1254
1612
  // (consumers' `let-message` bindings consume the message context shape below).
1255
- const template = this.messageRendererTemplate;
1256
- const viewRef = this.messageContainerRef.createEmbeddedView(template, { $implicit: message, message }, { index: timelineIndex });
1613
+ const template = this.MessageRendererTemplate;
1614
+ const viewRef = this.MessageContainerRef.createEmbeddedView(template, { $implicit: message, message }, { index: timelineIndex });
1257
1615
  this._renderedMessages.set(key, { kind: 'embedded', ref: viewRef });
1258
1616
  // Stamp back-ref for parity with the component path.
1259
1617
  message._viewRef = viewRef;
1260
1618
  return;
1261
1619
  }
1262
- const componentRef = this.messageContainerRef.createComponent(MessageItemComponent, { index: timelineIndex });
1620
+ const componentRef = this.MessageContainerRef.createComponent(MessageItemComponent, { index: timelineIndex });
1263
1621
  const instance = componentRef.instance;
1264
1622
  instance.message = message;
1265
- instance.conversation = this.conversation;
1266
- instance.currentUser = this.currentUser;
1623
+ instance.conversation = this.Conversation;
1624
+ instance.currentUser = this.CurrentUser;
1267
1625
  instance.allMessages = messages;
1268
- instance.isProcessing = this.isProcessing;
1269
- instance.userAvatarMap = this.userAvatarMap;
1626
+ instance.isProcessing = this.IsProcessing;
1627
+ instance.userAvatarMap = this.UserAvatarMap;
1270
1628
  instance.isLastMessage = (index === messages.length - 1);
1271
- instance.messageExtraTemplate = this.messageExtraTemplate;
1629
+ instance.messageExtraTemplate = this.MessageExtraTemplate;
1272
1630
  this.applyMessageItemFeatureFlags(instance);
1273
- instance.agentRun = this.agentRunMap.get(message.ID) || null;
1274
- instance.ratings = this.ratingsMap.get(message.ID);
1275
- instance.attachments = this.attachmentsMap.get(message.ID) || [];
1276
- instance.editClicked.subscribe((msg) => this.editMessage.emit(msg));
1277
- instance.deleteClicked.subscribe((msg) => this.deleteMessage.emit(msg));
1278
- instance.retryClicked.subscribe((msg) => this.retryMessage.emit(msg));
1279
- instance.testFeedbackClicked.subscribe((msg) => this.testFeedbackMessage.emit(msg));
1280
- instance.artifactClicked.subscribe((data) => this.artifactClicked.emit(data));
1281
- instance.messageEdited.subscribe((msg) => this.messageEdited.emit(msg));
1282
- instance.openEntityRecord.subscribe((data) => this.openEntityRecord.emit(data));
1283
- instance.suggestedResponseSelected.subscribe((data) => this.suggestedResponseSelected.emit(data));
1284
- instance.attachmentClicked.subscribe((attachment) => this.attachmentClicked.emit(attachment));
1285
- instance.diagnosticRequested.subscribe((messageId) => this.diagnosticRequested.emit(messageId));
1286
- instance.messagePinToggled.subscribe((msg) => this.messagePinToggled.emit(msg));
1287
- instance.beforeResponseFormSubmitted.subscribe((e) => this.beforeResponseFormSubmitted.emit(e));
1288
- instance.afterResponseFormSubmitted.subscribe((e) => this.afterResponseFormSubmitted.emit(e));
1631
+ instance.agentRun = this.AgentRunMap.get(message.ID) || null;
1632
+ instance.ratings = this.RatingsMap.get(message.ID);
1633
+ instance.attachments = this.AttachmentsMap.get(message.ID) || [];
1634
+ instance.editClicked.subscribe((msg) => this.EditMessage.emit(msg));
1635
+ instance.deleteClicked.subscribe((msg) => this.DeleteMessage.emit(msg));
1636
+ instance.retryClicked.subscribe((msg) => this.RetryMessage.emit(msg));
1637
+ instance.testFeedbackClicked.subscribe((msg) => this.TestFeedbackMessage.emit(msg));
1638
+ instance.artifactClicked.subscribe((data) => this.ArtifactClicked.emit(data));
1639
+ instance.messageEdited.subscribe((msg) => this.MessageEdited.emit(msg));
1640
+ instance.openEntityRecord.subscribe((data) => this.OpenEntityRecord.emit(data));
1641
+ instance.suggestedResponseSelected.subscribe((data) => this.SuggestedResponseSelected.emit(data));
1642
+ instance.attachmentClicked.subscribe((attachment) => this.AttachmentClicked.emit(attachment));
1643
+ instance.diagnosticRequested.subscribe((messageId) => this.DiagnosticRequested.emit(messageId));
1644
+ instance.messagePinToggled.subscribe((msg) => this.MessagePinToggled.emit(msg));
1645
+ instance.beforeResponseFormSubmitted.subscribe((e) => this.BeforeResponseFormSubmitted.emit(e));
1646
+ instance.afterResponseFormSubmitted.subscribe((e) => this.AfterResponseFormSubmitted.emit(e));
1289
1647
  if (instance.artifactActionPerformed) {
1290
1648
  instance.artifactActionPerformed.subscribe((data) => {
1291
1649
  // Parent can handle artifact actions (save, fork, history, share)
@@ -1399,11 +1757,11 @@ export class MessageListComponent extends BaseAngularComponent {
1399
1757
  * while genuinely distinct artifacts are all retained.
1400
1758
  */
1401
1759
  resolveDistinctArtifacts(messageId) {
1402
- const list = this.artifactMap.get(messageId);
1760
+ const list = this.ArtifactMap.get(messageId);
1403
1761
  if (!list || list.length === 0) {
1404
1762
  return [];
1405
1763
  }
1406
- return selectDistinctLatestArtifacts(list);
1764
+ return SelectDistinctLatestArtifacts(list);
1407
1765
  }
1408
1766
  /**
1409
1767
  * Generates a unique key for a message
@@ -1425,11 +1783,11 @@ export class MessageListComponent extends BaseAngularComponent {
1425
1783
  // the one case where it is most useful. `HasMoreAbove` is the only windowing-safe signal
1426
1784
  // that more conversation exists above, so it short-circuits the heuristic.
1427
1785
  if (this.HasMoreAbove) {
1428
- this.shouldShowDateFilter = true;
1786
+ this.ShouldShowDateFilter = true;
1429
1787
  return;
1430
1788
  }
1431
1789
  if (!this.messages || this.messages.length < 20) {
1432
- this.shouldShowDateFilter = false;
1790
+ this.ShouldShowDateFilter = false;
1433
1791
  return;
1434
1792
  }
1435
1793
  // Check if messages span more than 2 days
@@ -1438,21 +1796,21 @@ export class MessageListComponent extends BaseAngularComponent {
1438
1796
  .filter(d => d != null)
1439
1797
  .map(d => new Date(d).setHours(0, 0, 0, 0));
1440
1798
  if (dates.length === 0) {
1441
- this.shouldShowDateFilter = false;
1799
+ this.ShouldShowDateFilter = false;
1442
1800
  return;
1443
1801
  }
1444
1802
  const uniqueDates = new Set(dates);
1445
1803
  const daySpan = uniqueDates.size;
1446
1804
  // Show filter if conversation has 20+ messages and spans 3+ days
1447
- this.shouldShowDateFilter = daySpan >= 3;
1805
+ this.ShouldShowDateFilter = daySpan >= 3;
1448
1806
  }
1449
1807
  /**
1450
1808
  * Scrolls the message list to the bottom
1451
1809
  */
1452
1810
  scrollToBottom() {
1453
- if (this.scrollContainer && this.scrollContainer.nativeElement) {
1811
+ if (this.ScrollContainer && this.ScrollContainer.nativeElement) {
1454
1812
  Promise.resolve().then(() => {
1455
- const element = this.scrollContainer.nativeElement;
1813
+ const element = this.ScrollContainer.nativeElement;
1456
1814
  element.scrollTop = element.scrollHeight;
1457
1815
  });
1458
1816
  }
@@ -1461,7 +1819,7 @@ export class MessageListComponent extends BaseAngularComponent {
1461
1819
  * Removes a message from the rendered list
1462
1820
  * Called externally when a message is deleted
1463
1821
  */
1464
- removeMessage(message) {
1822
+ RemoveMessage(message) {
1465
1823
  const key = this.getMessageKey(message);
1466
1824
  const entry = this._renderedMessages.get(key);
1467
1825
  if (entry) {
@@ -1469,18 +1827,22 @@ export class MessageListComponent extends BaseAngularComponent {
1469
1827
  this._renderedMessages.delete(key);
1470
1828
  }
1471
1829
  }
1830
+ /** @deprecated Use {@link RemoveMessage}. */
1831
+ removeMessage(message) {
1832
+ return this.RemoveMessage(message);
1833
+ }
1472
1834
  static ɵfac = function MessageListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MessageListComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
1473
1835
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MessageListComponent, selectors: [["mj-conversation-message-list"]], viewQuery: function MessageListComponent_Query(rf, ctx) { if (rf & 1) {
1474
1836
  i0.ɵɵviewQuery(_c0, 5, ViewContainerRef)(_c1, 5)(_c2, 5)(_c3, 5);
1475
1837
  } if (rf & 2) {
1476
1838
  let _t;
1477
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messageContainerRef = _t.first);
1478
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollContainer = _t.first);
1479
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.olderSentinel = _t.first);
1839
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.MessageContainerRef = _t.first);
1840
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ScrollContainer = _t.first);
1841
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.OlderSentinel = _t.first);
1480
1842
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.spacerTemplate = _t.first);
1481
1843
  } }, hostVars: 2, hostBindings: function MessageListComponent_HostBindings(rf, ctx) { if (rf & 2) {
1482
1844
  i0.ɵɵclassProp("mj-list-host-scrolled", ctx.HostSuppliesScroller);
1483
- } }, inputs: { messages: "messages", conversation: "conversation", currentUser: "currentUser", isProcessing: "isProcessing", showEmptyFill: "showEmptyFill", showDateNavigation: "showDateNavigation", showAgentRunDetails: "showAgentRunDetails", showReactions: "showReactions", showMessageRating: "showMessageRating", allowPinning: "allowPinning", allowMessageEdit: "allowMessageEdit", allowMessageDelete: "allowMessageDelete", HasMoreAbove: "HasMoreAbove", IsLoadingOlder: "IsLoadingOlder", ScrollRoot: "ScrollRoot", assistantDisplayName: "assistantDisplayName", assistantAvatarUrl: "assistantAvatarUrl", artifactMap: "artifactMap", agentRunMap: "agentRunMap", ratingsMap: "ratingsMap", userAvatarMap: "userAvatarMap", attachmentsMap: "attachmentsMap", sessionMetaMap: "sessionMetaMap", messageRendererTemplate: "messageRendererTemplate", messageExtraTemplate: "messageExtraTemplate", messagesUpdate: "messagesUpdate" }, outputs: { editMessage: "editMessage", deleteMessage: "deleteMessage", retryMessage: "retryMessage", testFeedbackMessage: "testFeedbackMessage", artifactClicked: "artifactClicked", replyInThread: "replyInThread", viewThread: "viewThread", messageEdited: "messageEdited", openEntityRecord: "openEntityRecord", suggestedResponseSelected: "suggestedResponseSelected", attachmentClicked: "attachmentClicked", diagnosticRequested: "diagnosticRequested", messagePinToggled: "messagePinToggled", realtimeSessionOpenRequested: "realtimeSessionOpenRequested", beforeResponseFormSubmitted: "beforeResponseFormSubmitted", afterResponseFormSubmitted: "afterResponseFormSubmitted", OlderRequested: "OlderRequested", DateJumpRequested: "DateJumpRequested" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 9, vars: 3, consts: [["scrollContainer", ""], ["spacerTemplate", ""], ["messageContainer", ""], ["olderSentinel", ""], [1, "message-list-container"], [1, "sticky-date-header"], [1, "transcript-older-sentinel"], ["Icon", "fa-solid fa-comments", "Title", "No messages yet. Start a conversation!", 1, "messages-empty-fill"], [1, "sticky-date-wrapper"], [1, "sticky-date-button", 3, "click"], [1, "fas", "fa-chevron-down"], [1, "date-nav-dropdown"], [1, "date-nav-option", "jump-to"], [1, "date-nav-option", 3, "click"], ["text", "Loading earlier messages\u2026", "size", "small"], [1, "transcript-older-label"], ["aria-hidden", "true", 1, "transcript-spacer"]], template: function MessageListComponent_Template(rf, ctx) { if (rf & 1) {
1845
+ } }, inputs: { messages: "messages", Conversation: "Conversation", conversation: "conversation", CurrentUser: "CurrentUser", currentUser: "currentUser", IsProcessing: "IsProcessing", isProcessing: "isProcessing", ShowEmptyFill: "ShowEmptyFill", showEmptyFill: "showEmptyFill", ShowDateNavigation: "ShowDateNavigation", showDateNavigation: "showDateNavigation", ShowAgentRunDetails: "ShowAgentRunDetails", showAgentRunDetails: "showAgentRunDetails", ShowReactions: "ShowReactions", showReactions: "showReactions", ShowMessageRating: "ShowMessageRating", showMessageRating: "showMessageRating", AllowPinning: "AllowPinning", allowPinning: "allowPinning", AllowMessageEdit: "AllowMessageEdit", allowMessageEdit: "allowMessageEdit", AllowMessageDelete: "AllowMessageDelete", allowMessageDelete: "allowMessageDelete", HasMoreAbove: "HasMoreAbove", IsLoadingOlder: "IsLoadingOlder", ScrollRoot: "ScrollRoot", AssistantDisplayName: "AssistantDisplayName", assistantDisplayName: "assistantDisplayName", AssistantAvatarUrl: "AssistantAvatarUrl", assistantAvatarUrl: "assistantAvatarUrl", ArtifactMap: "ArtifactMap", artifactMap: "artifactMap", AgentRunMap: "AgentRunMap", agentRunMap: "agentRunMap", RatingsMap: "RatingsMap", ratingsMap: "ratingsMap", UserAvatarMap: "UserAvatarMap", userAvatarMap: "userAvatarMap", AttachmentsMap: "AttachmentsMap", attachmentsMap: "attachmentsMap", SessionMetaMap: "SessionMetaMap", sessionMetaMap: "sessionMetaMap", MessageRendererTemplate: "MessageRendererTemplate", messageRendererTemplate: "messageRendererTemplate", MessageExtraTemplate: "MessageExtraTemplate", messageExtraTemplate: "messageExtraTemplate", MessagesUpdate: "MessagesUpdate", messagesUpdate: "messagesUpdate" }, outputs: { EditMessage: "EditMessage", editMessage: "editMessage", DeleteMessage: "DeleteMessage", deleteMessage: "deleteMessage", RetryMessage: "RetryMessage", retryMessage: "retryMessage", TestFeedbackMessage: "TestFeedbackMessage", testFeedbackMessage: "testFeedbackMessage", ArtifactClicked: "ArtifactClicked", artifactClicked: "artifactClicked", ReplyInThread: "ReplyInThread", replyInThread: "replyInThread", ViewThread: "ViewThread", viewThread: "viewThread", MessageEdited: "MessageEdited", messageEdited: "messageEdited", OpenEntityRecord: "OpenEntityRecord", openEntityRecord: "openEntityRecord", SuggestedResponseSelected: "SuggestedResponseSelected", suggestedResponseSelected: "suggestedResponseSelected", AttachmentClicked: "AttachmentClicked", attachmentClicked: "attachmentClicked", DiagnosticRequested: "DiagnosticRequested", diagnosticRequested: "diagnosticRequested", MessagePinToggled: "MessagePinToggled", messagePinToggled: "messagePinToggled", RealtimeSessionOpenRequested: "RealtimeSessionOpenRequested", realtimeSessionOpenRequested: "realtimeSessionOpenRequested", BeforeResponseFormSubmitted: "BeforeResponseFormSubmitted", beforeResponseFormSubmitted: "beforeResponseFormSubmitted", AfterResponseFormSubmitted: "AfterResponseFormSubmitted", afterResponseFormSubmitted: "afterResponseFormSubmitted", OlderRequested: "OlderRequested", DateJumpRequested: "DateJumpRequested" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 9, vars: 3, consts: [["scrollContainer", ""], ["spacerTemplate", ""], ["messageContainer", ""], ["olderSentinel", ""], [1, "message-list-container"], [1, "sticky-date-header"], [1, "transcript-older-sentinel"], ["Icon", "fa-solid fa-comments", "Title", "No messages yet. Start a conversation!", 1, "messages-empty-fill"], [1, "sticky-date-wrapper"], [1, "sticky-date-button", 3, "click"], [1, "fas", "fa-chevron-down"], [1, "date-nav-dropdown"], [1, "date-nav-option", "jump-to"], [1, "date-nav-option", 3, "click"], ["text", "Loading earlier messages\u2026", "size", "small"], [1, "transcript-older-label"], ["aria-hidden", "true", 1, "transcript-spacer"]], template: function MessageListComponent_Template(rf, ctx) { if (rf & 1) {
1484
1846
  i0.ɵɵelementStart(0, "div", 4, 0);
1485
1847
  i0.ɵɵconditionalCreate(2, MessageListComponent_Conditional_2_Template, 17, 3, "div", 5);
1486
1848
  i0.ɵɵconditionalCreate(3, MessageListComponent_Conditional_3_Template, 4, 1, "div", 6);
@@ -1502,26 +1864,48 @@ export class MessageListComponent extends BaseAngularComponent {
1502
1864
  args: [{ standalone: false, selector: 'mj-conversation-message-list', template: "<div class=\"message-list-container\" #scrollContainer>\n <!-- Sticky Date Header (only show for long conversations spanning multiple days) -->\n @if (showDateNavigation && shouldShowDateFilter && messages.length > 0) {\n <div class=\"sticky-date-header\">\n <div class=\"sticky-date-wrapper\">\n <button class=\"sticky-date-button\" (click)=\"toggleDateNav()\">\n <span>{{ currentDateDisplay }}</span>\n <i class=\"fas fa-chevron-down\"></i>\n </button>\n <div class=\"date-nav-dropdown\" [class.show]=\"showDateNav\">\n <div class=\"date-nav-option jump-to\">Jump to...</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('today')\">Today</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('yesterday')\">Yesterday</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('last-week')\">Last week</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('last-month')\">Last month</div>\n </div>\n </div>\n </div>\n }\n\n <!-- Windowed transcript: older pages load when this scrolls into view (IntersectionObserver\n in the component, not a scroll listener). Absent entirely once the top is reached. -->\n @if (HasMoreAbove) {\n <div #olderSentinel class=\"transcript-older-sentinel\">\n @if (IsLoadingOlder) {\n <mj-loading text=\"Loading earlier messages\u2026\" size=\"small\"></mj-loading>\n } @else {\n <span class=\"transcript-older-label\">Earlier messages</span>\n }\n </div>\n }\n\n <!-- Height-holding stand-in for a timeline item that has been unmounted to keep the DOM\n bounded. Declared here but rendered into #messageContainer at the item's own index,\n so scroll geometry is unchanged. -->\n <ng-template #spacerTemplate let-height=\"height\">\n <div class=\"transcript-spacer\" [style.height.px]=\"height\" aria-hidden=\"true\"></div>\n </ng-template>\n\n <ng-container #messageContainer></ng-container>\n\n @if (messages.length === 0 && showEmptyFill) {\n <mj-empty-state\n class=\"messages-empty-fill\"\n Icon=\"fa-solid fa-comments\"\n Title=\"No messages yet. Start a conversation!\" />\n }\n</div>", styles: ["/* Scrolls itself ONLY when no host scroller was supplied \u2014 see the `mj-list-host-scrolled`\n host binding. `overflow-y` here makes this element the nearest scrolling ancestor, which is\n what `position: sticky` binds to; when the host owns the scrolling this container never\n moves, so anything sticky inside it silently scrolls away instead of pinning. */\n.message-list-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n background-color: var(--mj-bg-surface-card);\n position: relative;\n}\n\n/* Empty-state fills the message pane vertically */\n.messages-empty-fill {\n height: 100%;\n}\n\n/* Sticky Date Header */\n.sticky-date-header {\n position: sticky;\n top: 12px;\n z-index: 100;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0;\n margin: 0;\n pointer-events: none;\n}\n\n.sticky-date-wrapper {\n pointer-events: auto;\n position: relative;\n}\n\n.sticky-date-button {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 16px;\n background: var(--mj-bg-surface-card);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s;\n box-shadow: var(--mj-shadow-sm);\n}\n\n.sticky-date-button:hover {\n background: var(--mj-bg-surface-sunken);\n box-shadow: var(--mj-shadow-md);\n}\n\n.sticky-date-button i {\n font-size: 10px;\n color: var(--mj-text-secondary);\n}\n\n/* Date Navigation Dropdown */\n.date-nav-dropdown {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 8px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: var(--mj-shadow-lg);\n min-width: 200px;\n display: none;\n z-index: 101;\n}\n\n.date-nav-dropdown.show {\n display: block;\n}\n\n.date-nav-option {\n padding: 10px 16px;\n cursor: pointer;\n transition: background 0.2s;\n font-size: 14px;\n color: var(--mj-text-primary);\n}\n\n.date-nav-option:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.date-nav-option.jump-to {\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 12px;\n cursor: default;\n padding: 8px 16px 4px 16px;\n}\n\n.date-nav-option.jump-to:hover {\n background: none;\n}\n\n/* \u2500\u2500 Windowed transcript sentinel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n Sits above the first loaded message while older pages remain. Needs real height\n so the IntersectionObserver has something to observe. */\n.transcript-older-sentinel {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 2.5rem;\n padding: 0.75rem 1rem;\n}\n\n.transcript-older-label {\n font-size: 0.8125rem;\n color: var(--mj-text-secondary);\n}\n\n/* Stands in for an unmounted timeline item so the scroll range never changes when the\n DOM is trimmed. Height comes from the item's last measured size. */\n.transcript-spacer {\n width: 100%;\n flex-shrink: 0;\n}\n\n/* Host owns the scrolling: stop creating a scroll context here so `position: sticky`\n descendants (the date navigator) bind to the host's real scroller and actually pin.\n\n BOTH axes, not just `overflow-y`. Per CSS Overflow, when one axis is `visible` and the\n other is not, the `visible` one computes to `auto` \u2014 so leaving `overflow-x: hidden` in\n place silently kept this element a scroll container and the header kept scrolling away.\n Horizontal clipping is not lost: the host's own scroller (`.chat-messages-container`)\n already carries `overflow-x: hidden`. */\n:host(.mj-list-host-scrolled) .message-list-container {\n overflow: visible;\n}\n"] }]
1503
1865
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], { messages: [{
1504
1866
  type: Input
1867
+ }], Conversation: [{
1868
+ type: Input
1505
1869
  }], conversation: [{
1506
1870
  type: Input
1871
+ }], CurrentUser: [{
1872
+ type: Input
1507
1873
  }], currentUser: [{
1508
1874
  type: Input
1875
+ }], IsProcessing: [{
1876
+ type: Input
1509
1877
  }], isProcessing: [{
1510
1878
  type: Input
1879
+ }], ShowEmptyFill: [{
1880
+ type: Input
1511
1881
  }], showEmptyFill: [{
1512
1882
  type: Input
1883
+ }], ShowDateNavigation: [{
1884
+ type: Input
1513
1885
  }], showDateNavigation: [{
1514
1886
  type: Input
1887
+ }], ShowAgentRunDetails: [{
1888
+ type: Input
1515
1889
  }], showAgentRunDetails: [{
1516
1890
  type: Input
1891
+ }], ShowReactions: [{
1892
+ type: Input
1517
1893
  }], showReactions: [{
1518
1894
  type: Input
1895
+ }], ShowMessageRating: [{
1896
+ type: Input
1519
1897
  }], showMessageRating: [{
1520
1898
  type: Input
1899
+ }], AllowPinning: [{
1900
+ type: Input
1521
1901
  }], allowPinning: [{
1522
1902
  type: Input
1903
+ }], AllowMessageEdit: [{
1904
+ type: Input
1523
1905
  }], allowMessageEdit: [{
1524
1906
  type: Input
1907
+ }], AllowMessageDelete: [{
1908
+ type: Input
1525
1909
  }], allowMessageDelete: [{
1526
1910
  type: Input
1527
1911
  }], HasMoreAbove: [{
@@ -1533,74 +1917,128 @@ export class MessageListComponent extends BaseAngularComponent {
1533
1917
  }], HostSuppliesScroller: [{
1534
1918
  type: HostBinding,
1535
1919
  args: ['class.mj-list-host-scrolled']
1920
+ }], AssistantDisplayName: [{
1921
+ type: Input
1536
1922
  }], assistantDisplayName: [{
1537
1923
  type: Input
1924
+ }], AssistantAvatarUrl: [{
1925
+ type: Input
1538
1926
  }], assistantAvatarUrl: [{
1539
1927
  type: Input
1928
+ }], ArtifactMap: [{
1929
+ type: Input
1540
1930
  }], artifactMap: [{
1541
1931
  type: Input
1932
+ }], AgentRunMap: [{
1933
+ type: Input
1542
1934
  }], agentRunMap: [{
1543
1935
  type: Input
1936
+ }], RatingsMap: [{
1937
+ type: Input
1544
1938
  }], ratingsMap: [{
1545
1939
  type: Input
1940
+ }], UserAvatarMap: [{
1941
+ type: Input
1546
1942
  }], userAvatarMap: [{
1547
1943
  type: Input
1944
+ }], AttachmentsMap: [{
1945
+ type: Input
1548
1946
  }], attachmentsMap: [{
1549
1947
  type: Input
1948
+ }], SessionMetaMap: [{
1949
+ type: Input
1550
1950
  }], sessionMetaMap: [{
1551
1951
  type: Input
1952
+ }], MessageRendererTemplate: [{
1953
+ type: Input
1552
1954
  }], messageRendererTemplate: [{
1553
1955
  type: Input
1956
+ }], MessageExtraTemplate: [{
1957
+ type: Input
1554
1958
  }], messageExtraTemplate: [{
1555
1959
  type: Input
1960
+ }], EditMessage: [{
1961
+ type: Output
1556
1962
  }], editMessage: [{
1557
1963
  type: Output
1964
+ }], DeleteMessage: [{
1965
+ type: Output
1558
1966
  }], deleteMessage: [{
1559
1967
  type: Output
1968
+ }], RetryMessage: [{
1969
+ type: Output
1560
1970
  }], retryMessage: [{
1561
1971
  type: Output
1972
+ }], TestFeedbackMessage: [{
1973
+ type: Output
1562
1974
  }], testFeedbackMessage: [{
1563
1975
  type: Output
1976
+ }], ArtifactClicked: [{
1977
+ type: Output
1564
1978
  }], artifactClicked: [{
1565
1979
  type: Output
1980
+ }], ReplyInThread: [{
1981
+ type: Output
1566
1982
  }], replyInThread: [{
1567
1983
  type: Output
1984
+ }], ViewThread: [{
1985
+ type: Output
1568
1986
  }], viewThread: [{
1569
1987
  type: Output
1988
+ }], MessageEdited: [{
1989
+ type: Output
1570
1990
  }], messageEdited: [{
1571
1991
  type: Output
1992
+ }], OpenEntityRecord: [{
1993
+ type: Output
1572
1994
  }], openEntityRecord: [{
1573
1995
  type: Output
1996
+ }], SuggestedResponseSelected: [{
1997
+ type: Output
1574
1998
  }], suggestedResponseSelected: [{
1575
1999
  type: Output
2000
+ }], AttachmentClicked: [{
2001
+ type: Output
1576
2002
  }], attachmentClicked: [{
1577
2003
  type: Output
2004
+ }], DiagnosticRequested: [{
2005
+ type: Output
1578
2006
  }], diagnosticRequested: [{
1579
2007
  type: Output
2008
+ }], MessagePinToggled: [{
2009
+ type: Output
1580
2010
  }], messagePinToggled: [{
1581
2011
  type: Output
2012
+ }], RealtimeSessionOpenRequested: [{
2013
+ type: Output
1582
2014
  }], realtimeSessionOpenRequested: [{
1583
2015
  type: Output
2016
+ }], BeforeResponseFormSubmitted: [{
2017
+ type: Output
1584
2018
  }], beforeResponseFormSubmitted: [{
1585
2019
  type: Output
2020
+ }], AfterResponseFormSubmitted: [{
2021
+ type: Output
1586
2022
  }], afterResponseFormSubmitted: [{
1587
2023
  type: Output
1588
2024
  }], OlderRequested: [{
1589
2025
  type: Output
1590
2026
  }], DateJumpRequested: [{
1591
2027
  type: Output
1592
- }], messageContainerRef: [{
2028
+ }], MessageContainerRef: [{
1593
2029
  type: ViewChild,
1594
2030
  args: ['messageContainer', { read: ViewContainerRef }]
1595
- }], scrollContainer: [{
2031
+ }], ScrollContainer: [{
1596
2032
  type: ViewChild,
1597
2033
  args: ['scrollContainer']
1598
- }], olderSentinel: [{
2034
+ }], OlderSentinel: [{
1599
2035
  type: ViewChild,
1600
2036
  args: ['olderSentinel']
1601
2037
  }], spacerTemplate: [{
1602
2038
  type: ViewChild,
1603
2039
  args: ['spacerTemplate']
2040
+ }], MessagesUpdate: [{
2041
+ type: Input
1604
2042
  }], messagesUpdate: [{
1605
2043
  type: Input
1606
2044
  }] }); })();