@memberjunction/ng-conversations 6.2.0-edge.0 → 6.2.0-edge.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +43 -2
  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 +1191 -124
  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 +2816 -785
  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 +42 -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 +93 -21
  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 +49 -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 +140 -26
  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 +613 -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 +1390 -422
  113. package/dist/lib/components/message/message-input.component.js.map +1 -1
  114. package/dist/lib/components/message/message-item.component.d.ts +490 -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 +1088 -244
  117. package/dist/lib/components/message/message-item.component.js.map +1 -1
  118. package/dist/lib/components/message/message-list.component.d.ts +297 -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 +598 -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/realtime-activity-rail.component.d.ts +1 -1
  146. package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
  147. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  148. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +1 -1
  149. package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
  150. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  151. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +2 -2
  152. package/dist/lib/components/realtime/realtime-session-overlay.component.js +18 -18
  153. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  154. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -23
  155. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
  156. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +136 -92
  157. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
  158. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +2 -2
  159. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
  160. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  161. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +1 -1
  162. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
  163. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  164. package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
  165. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  166. package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
  167. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  168. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +3 -1
  169. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  170. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +6 -2
  171. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  172. package/dist/lib/components/search/search-panel.component.d.ts +133 -22
  173. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  174. package/dist/lib/components/search/search-panel.component.js +312 -83
  175. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  176. package/dist/lib/components/share/share-modal.component.d.ts +69 -9
  177. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  178. package/dist/lib/components/share/share-modal.component.js +139 -31
  179. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  180. package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
  181. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  182. package/dist/lib/components/shared/user-picker.component.js +110 -30
  183. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  184. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
  185. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  186. package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
  187. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  188. package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
  189. package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
  190. package/dist/lib/components/sidebar/routines-section.component.js +25 -5
  191. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
  192. package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
  193. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
  194. package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
  195. package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
  196. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  197. package/dist/lib/components/task/tasks-full-view.component.js +223 -75
  198. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  199. package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
  200. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  201. package/dist/lib/components/tasks/task-widget.component.js +100 -16
  202. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  203. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
  204. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  205. package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
  206. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  207. package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
  208. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  209. package/dist/lib/components/thread/thread-panel.component.js +146 -36
  210. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  211. package/dist/lib/components/toast/toast.component.d.ts +11 -1
  212. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  213. package/dist/lib/components/toast/toast.component.js +25 -5
  214. package/dist/lib/components/toast/toast.component.js.map +1 -1
  215. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
  216. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  217. package/dist/lib/components/workspace/conversation-workspace.component.js +891 -292
  218. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  219. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
  220. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
  221. package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
  222. package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
  223. package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
  224. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
  225. package/dist/lib/directives/chat-slot.directive.js.map +1 -1
  226. package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
  227. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  228. package/dist/lib/directives/search-shortcut.directive.js +14 -4
  229. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  230. package/dist/lib/events/chat-events.d.ts +34 -7
  231. package/dist/lib/events/chat-events.d.ts.map +1 -1
  232. package/dist/lib/events/chat-events.js +37 -7
  233. package/dist/lib/events/chat-events.js.map +1 -1
  234. package/dist/lib/models/agent-turn.model.d.ts +113 -0
  235. package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
  236. package/dist/lib/models/agent-turn.model.js +12 -0
  237. package/dist/lib/models/agent-turn.model.js.map +1 -0
  238. package/dist/lib/models/collection-view.model.js.map +1 -1
  239. package/dist/lib/models/conversation-state.model.d.ts +8 -0
  240. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  241. package/dist/lib/models/conversation-state.model.js.map +1 -1
  242. package/dist/lib/models/lazy-artifact-info.d.ts +44 -12
  243. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  244. package/dist/lib/models/lazy-artifact-info.js +98 -34
  245. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  246. package/dist/lib/services/active-tasks.service.d.ts +30 -4
  247. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  248. package/dist/lib/services/active-tasks.service.js +71 -19
  249. package/dist/lib/services/active-tasks.service.js.map +1 -1
  250. package/dist/lib/services/agent-state.service.d.ts +17 -1
  251. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  252. package/dist/lib/services/agent-state.service.js +48 -16
  253. package/dist/lib/services/agent-state.service.js.map +1 -1
  254. package/dist/lib/services/artifact-permission.service.d.ts +39 -0
  255. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  256. package/dist/lib/services/artifact-permission.service.js +152 -17
  257. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  258. package/dist/lib/services/artifact-state.service.d.ts +58 -5
  259. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  260. package/dist/lib/services/artifact-state.service.js +135 -35
  261. package/dist/lib/services/artifact-state.service.js.map +1 -1
  262. package/dist/lib/services/collection-permission.service.d.ts +28 -0
  263. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  264. package/dist/lib/services/collection-permission.service.js +88 -32
  265. package/dist/lib/services/collection-permission.service.js.map +1 -1
  266. package/dist/lib/services/collection-state.service.d.ts +11 -1
  267. package/dist/lib/services/collection-state.service.d.ts.map +1 -1
  268. package/dist/lib/services/collection-state.service.js +25 -5
  269. package/dist/lib/services/collection-state.service.js.map +1 -1
  270. package/dist/lib/services/conversation-agent.service.d.ts +47 -4
  271. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  272. package/dist/lib/services/conversation-agent.service.js +85 -20
  273. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  274. package/dist/lib/services/conversation-attachment.service.d.ts +17 -0
  275. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  276. package/dist/lib/services/conversation-attachment.service.js +38 -10
  277. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  278. package/dist/lib/services/conversation-liveness-dom.service.d.ts +42 -0
  279. package/dist/lib/services/conversation-liveness-dom.service.d.ts.map +1 -0
  280. package/dist/lib/services/conversation-liveness-dom.service.js +74 -0
  281. package/dist/lib/services/conversation-liveness-dom.service.js.map +1 -0
  282. package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
  283. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
  284. package/dist/lib/services/conversation-streaming.service.js +50 -10
  285. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  286. package/dist/lib/services/data-cache.service.d.ts +31 -0
  287. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  288. package/dist/lib/services/data-cache.service.js +71 -15
  289. package/dist/lib/services/data-cache.service.js.map +1 -1
  290. package/dist/lib/services/dialog.service.d.ts +13 -0
  291. package/dist/lib/services/dialog.service.d.ts.map +1 -1
  292. package/dist/lib/services/dialog.service.js +25 -5
  293. package/dist/lib/services/dialog.service.js.map +1 -1
  294. package/dist/lib/services/export.service.d.ts +2 -0
  295. package/dist/lib/services/export.service.d.ts.map +1 -1
  296. package/dist/lib/services/export.service.js +5 -1
  297. package/dist/lib/services/export.service.js.map +1 -1
  298. package/dist/lib/services/mention-parser.service.d.ts +10 -0
  299. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  300. package/dist/lib/services/mention-parser.service.js +25 -5
  301. package/dist/lib/services/mention-parser.service.js.map +1 -1
  302. package/dist/lib/services/notification.service.d.ts +54 -6
  303. package/dist/lib/services/notification.service.d.ts.map +1 -1
  304. package/dist/lib/services/notification.service.js +123 -27
  305. package/dist/lib/services/notification.service.js.map +1 -1
  306. package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
  307. package/dist/lib/services/realtime-audio-recorder.js +12 -12
  308. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  309. package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
  310. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
  311. package/dist/lib/services/realtime-pcm-wav.js +10 -2
  312. package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
  313. package/dist/lib/services/search.service.d.ts +42 -9
  314. package/dist/lib/services/search.service.d.ts.map +1 -1
  315. package/dist/lib/services/search.service.js +103 -23
  316. package/dist/lib/services/search.service.js.map +1 -1
  317. package/dist/lib/services/toast.service.d.ts +19 -1
  318. package/dist/lib/services/toast.service.d.ts.map +1 -1
  319. package/dist/lib/services/toast.service.js +45 -9
  320. package/dist/lib/services/toast.service.js.map +1 -1
  321. package/dist/lib/services/ui-command-handler.service.d.ts +56 -5
  322. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  323. package/dist/lib/services/ui-command-handler.service.js +113 -16
  324. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  325. package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
  326. package/dist/lib/utils/agent-artifact-summary.js +3 -3
  327. package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
  328. package/dist/lib/utils/agent-turn-routing.d.ts +70 -0
  329. package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
  330. package/dist/lib/utils/agent-turn-routing.js +84 -0
  331. package/dist/lib/utils/agent-turn-routing.js.map +1 -0
  332. package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
  333. package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
  334. package/dist/lib/utils/artifact-panel-action.js +10 -2
  335. package/dist/lib/utils/artifact-panel-action.js.map +1 -1
  336. package/dist/lib/utils/decision-routing.d.ts +68 -0
  337. package/dist/lib/utils/decision-routing.d.ts.map +1 -0
  338. package/dist/lib/utils/decision-routing.js +101 -0
  339. package/dist/lib/utils/decision-routing.js.map +1 -0
  340. package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
  341. package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
  342. package/dist/lib/utils/distinct-artifacts.js +5 -1
  343. package/dist/lib/utils/distinct-artifacts.js.map +1 -1
  344. package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
  345. package/dist/lib/utils/plan-mode-preference.js +6 -6
  346. package/dist/lib/utils/plan-mode-preference.js.map +1 -1
  347. package/dist/public-api.d.ts +5 -0
  348. package/dist/public-api.d.ts.map +1 -1
  349. package/dist/public-api.js +8 -0
  350. package/dist/public-api.js.map +1 -1
  351. package/package.json +32 -32
@@ -8,6 +8,8 @@ import { DialogService } from '../../services/dialog.service';
8
8
  import { ToastService } from '../../services/toast.service';
9
9
  import { ConversationAgentService } from '../../services/conversation-agent.service';
10
10
  import { BeforeAgentTurnEventArgs, AfterAgentTurnEventArgs } from '../../events/chat-events';
11
+ import type { AgentReplyMode, AgentTurnHandler } from '../../models/agent-turn.model';
12
+ import type { MentionPerson } from '@memberjunction/conversations-runtime';
11
13
  import { DataCacheService } from '../../services/data-cache.service';
12
14
  import { ActiveTasksService } from '../../services/active-tasks.service';
13
15
  import { ConversationStreamingService } from '../../services/conversation-streaming.service';
@@ -33,27 +35,115 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
33
35
  private bridge;
34
36
  private realtimeSession;
35
37
  private readonly JSON_ARTIFACT_TYPE_ID;
36
- conversationId: string;
37
- conversationName?: string | null;
38
- currentUser: UserInfo;
39
- disabled: boolean;
40
- placeholder: string;
41
- parentMessageId?: string;
42
- enableAttachments: boolean;
43
- enableMentions: boolean;
44
- enableAgentMentions: boolean;
45
- enableEntityMentions: boolean;
46
- enableSkillCommands: boolean;
47
- enablePlanMode: boolean;
48
- enableRealtime: boolean;
49
- maxAttachments: number;
50
- maxAttachmentSizeBytes: number;
51
- acceptedFileTypes: string;
52
- artifactsByDetailId?: Map<string, LazyArtifactInfo[]>;
53
- systemArtifactsByDetailId?: Map<string, LazyArtifactInfo[]>;
54
- agentRunsByDetailId?: Map<string, MJAIAgentRunEntityExtended>;
55
- emptyStateMode: boolean;
56
- appContext: Record<string, unknown> | null;
38
+ ConversationId: string;
39
+ /** @deprecated Use {@link ConversationId}. */
40
+ set conversationId(value: string);
41
+ /** @deprecated Use {@link ConversationId}. */
42
+ get conversationId(): string;
43
+ ConversationName?: string | null;
44
+ /** @deprecated Use {@link ConversationName}. */
45
+ set conversationName(value: string | null | undefined);
46
+ /** @deprecated Use {@link ConversationName}. */
47
+ get conversationName(): string | null | undefined;
48
+ CurrentUser: UserInfo;
49
+ /** @deprecated Use {@link CurrentUser}. */
50
+ set currentUser(value: UserInfo);
51
+ /** @deprecated Use {@link CurrentUser}. */
52
+ get currentUser(): UserInfo;
53
+ Disabled: boolean;
54
+ /** @deprecated Use {@link Disabled}. */
55
+ set disabled(value: boolean);
56
+ /** @deprecated Use {@link Disabled}. */
57
+ get disabled(): boolean;
58
+ /**
59
+ * Blocks sending. Distinct from {@link Disabled}, which means the composer is busy.
60
+ */
61
+ ReadOnly: boolean;
62
+ Placeholder: string;
63
+ /** @deprecated Use {@link Placeholder}. */
64
+ set placeholder(value: string);
65
+ /** @deprecated Use {@link Placeholder}. */
66
+ get placeholder(): string;
67
+ ParentMessageId?: string;
68
+ /** @deprecated Use {@link ParentMessageId}. */
69
+ set parentMessageId(value: string | undefined);
70
+ /** @deprecated Use {@link ParentMessageId}. */
71
+ get parentMessageId(): string | undefined;
72
+ EnableAttachments: boolean;
73
+ /** @deprecated Use {@link EnableAttachments}. */
74
+ set enableAttachments(value: boolean);
75
+ /** @deprecated Use {@link EnableAttachments}. */
76
+ get enableAttachments(): boolean;
77
+ EnableMentions: boolean;
78
+ /** @deprecated Use {@link EnableMentions}. */
79
+ set enableMentions(value: boolean);
80
+ /** @deprecated Use {@link EnableMentions}. */
81
+ get enableMentions(): boolean;
82
+ EnableAgentMentions: boolean;
83
+ /** @deprecated Use {@link EnableAgentMentions}. */
84
+ set enableAgentMentions(value: boolean);
85
+ /** @deprecated Use {@link EnableAgentMentions}. */
86
+ get enableAgentMentions(): boolean;
87
+ EnableEntityMentions: boolean;
88
+ /** @deprecated Use {@link EnableEntityMentions}. */
89
+ set enableEntityMentions(value: boolean);
90
+ /** @deprecated Use {@link EnableEntityMentions}. */
91
+ get enableEntityMentions(): boolean;
92
+ EnableSkillCommands: boolean;
93
+ /** @deprecated Use {@link EnableSkillCommands}. */
94
+ set enableSkillCommands(value: boolean);
95
+ /** @deprecated Use {@link EnableSkillCommands}. */
96
+ get enableSkillCommands(): boolean;
97
+ EnablePlanMode: boolean;
98
+ /** @deprecated Use {@link EnablePlanMode}. */
99
+ set enablePlanMode(value: boolean);
100
+ /** @deprecated Use {@link EnablePlanMode}. */
101
+ get enablePlanMode(): boolean;
102
+ EnableRealtime: boolean;
103
+ /** @deprecated Use {@link EnableRealtime}. */
104
+ set enableRealtime(value: boolean);
105
+ /** @deprecated Use {@link EnableRealtime}. */
106
+ get enableRealtime(): boolean;
107
+ MaxAttachments: number;
108
+ /** @deprecated Use {@link MaxAttachments}. */
109
+ set maxAttachments(value: number);
110
+ /** @deprecated Use {@link MaxAttachments}. */
111
+ get maxAttachments(): number;
112
+ MaxAttachmentSizeBytes: number;
113
+ /** @deprecated Use {@link MaxAttachmentSizeBytes}. */
114
+ set maxAttachmentSizeBytes(value: number);
115
+ /** @deprecated Use {@link MaxAttachmentSizeBytes}. */
116
+ get maxAttachmentSizeBytes(): number;
117
+ AcceptedFileTypes: string;
118
+ /** @deprecated Use {@link AcceptedFileTypes}. */
119
+ set acceptedFileTypes(value: string);
120
+ /** @deprecated Use {@link AcceptedFileTypes}. */
121
+ get acceptedFileTypes(): string;
122
+ ArtifactsByDetailId?: Map<string, LazyArtifactInfo[]>;
123
+ /** @deprecated Use {@link ArtifactsByDetailId}. */
124
+ set artifactsByDetailId(value: Map<string, LazyArtifactInfo[]> | undefined);
125
+ /** @deprecated Use {@link ArtifactsByDetailId}. */
126
+ get artifactsByDetailId(): Map<string, LazyArtifactInfo[]> | undefined;
127
+ SystemArtifactsByDetailId?: Map<string, LazyArtifactInfo[]>;
128
+ /** @deprecated Use {@link SystemArtifactsByDetailId}. */
129
+ set systemArtifactsByDetailId(value: Map<string, LazyArtifactInfo[]> | undefined);
130
+ /** @deprecated Use {@link SystemArtifactsByDetailId}. */
131
+ get systemArtifactsByDetailId(): Map<string, LazyArtifactInfo[]> | undefined;
132
+ AgentRunsByDetailId?: Map<string, MJAIAgentRunEntityExtended>;
133
+ /** @deprecated Use {@link AgentRunsByDetailId}. */
134
+ set agentRunsByDetailId(value: Map<string, MJAIAgentRunEntityExtended> | undefined);
135
+ /** @deprecated Use {@link AgentRunsByDetailId}. */
136
+ get agentRunsByDetailId(): Map<string, MJAIAgentRunEntityExtended> | undefined;
137
+ EmptyStateMode: boolean;
138
+ /** @deprecated Use {@link EmptyStateMode}. */
139
+ set emptyStateMode(value: boolean);
140
+ /** @deprecated Use {@link EmptyStateMode}. */
141
+ get emptyStateMode(): boolean;
142
+ AppContext: Record<string, unknown> | null;
143
+ /** @deprecated Use {@link AppContext}. */
144
+ set appContext(value: Record<string, unknown> | null);
145
+ /** @deprecated Use {@link AppContext}. */
146
+ get appContext(): Record<string, unknown> | null;
57
147
  /**
58
148
  * Plan Mode toggle state — sticky PER CONVERSATION, OFF by default (no behavior change unless
59
149
  * the user turns it on). When on, the user's next message(s) in THIS conversation request Plan
@@ -96,7 +186,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
96
186
  * context and don't need Sage to route. Leave unset to preserve the
97
187
  * standard Sage-fronted UX of the main Chat app.
98
188
  */
99
- defaultAgentId: string | null;
189
+ DefaultAgentId: string | null;
190
+ /** @deprecated Use {@link DefaultAgentId}. */
191
+ set defaultAgentId(value: string | null);
192
+ /** @deprecated Use {@link DefaultAgentId}. */
193
+ get defaultAgentId(): string | null;
100
194
  /**
101
195
  * Per-conversation pinned default agent — sourced from the loaded
102
196
  * `MJConversationEntity.DefaultAgentID`. When set, this agent is used in
@@ -110,7 +204,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
110
204
  * 4. defaultAgentId (embedder-supplied)
111
205
  * 5. Sage fallback
112
206
  */
113
- conversationDefaultAgentId: string | null;
207
+ ConversationDefaultAgentId: string | null;
208
+ /** @deprecated Use {@link ConversationDefaultAgentId}. */
209
+ set conversationDefaultAgentId(value: string | null);
210
+ /** @deprecated Use {@link ConversationDefaultAgentId}. */
211
+ get conversationDefaultAgentId(): string | null;
114
212
  /**
115
213
  * The `MJ: AI Agent Configurations.ID` selected via the chat header's
116
214
  * mode picker (Draft / Standard / High). Applied to **non-mention**
@@ -128,64 +226,232 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
128
226
  * messages already in flight or already in history. Affects "what
129
227
  * happens next."
130
228
  */
131
- agentConfigurationPresetId: string | null;
229
+ AgentConfigurationPresetId: string | null;
230
+ /** @deprecated Use {@link AgentConfigurationPresetId}. */
231
+ set agentConfigurationPresetId(value: string | null);
232
+ /** @deprecated Use {@link AgentConfigurationPresetId}. */
233
+ get agentConfigurationPresetId(): string | null;
132
234
  private _initialMessage;
133
235
  private _initialAttachments;
134
236
  private _isComponentReady;
135
237
  /** Conversation this input has already auto-sent its pending first message for. */
136
238
  private _autoSentForConversationId;
137
- set initialMessage(value: string | null);
239
+ set InitialMessage(value: string | null);
240
+ get InitialMessage(): string | null;
241
+ /** @deprecated Use {@link InitialMessage}. */
138
242
  get initialMessage(): string | null;
139
- set initialAttachments(value: PendingAttachment[] | null);
243
+ /** @deprecated Use {@link InitialMessage}. */
244
+ set initialMessage(value: string | null);
245
+ set InitialAttachments(value: PendingAttachment[] | null);
246
+ get InitialAttachments(): PendingAttachment[] | null;
247
+ /** @deprecated Use {@link InitialAttachments}. */
140
248
  get initialAttachments(): PendingAttachment[] | null;
249
+ /** @deprecated Use {@link InitialAttachments}. */
250
+ set initialAttachments(value: PendingAttachment[] | null);
141
251
  private _conversationHistory;
252
+ get ConversationHistory(): MJConversationDetailEntity[];
253
+ set ConversationHistory(value: MJConversationDetailEntity[]);
254
+ /** @deprecated Use {@link ConversationHistory}. */
142
255
  get conversationHistory(): MJConversationDetailEntity[];
256
+ /** @deprecated Use {@link ConversationHistory}. */
143
257
  set conversationHistory(value: MJConversationDetailEntity[]);
144
258
  private _inProgressMessageIds?;
145
- set inProgressMessageIds(value: string[] | undefined);
259
+ set InProgressMessageIds(value: string[] | undefined);
260
+ get InProgressMessageIds(): string[] | undefined;
261
+ /** @deprecated Use {@link InProgressMessageIds}. */
146
262
  get inProgressMessageIds(): string[] | undefined;
263
+ /** @deprecated Use {@link InProgressMessageIds}. */
264
+ set inProgressMessageIds(value: string[] | undefined);
147
265
  /**
148
266
  * Application context for the current conversation. Threaded through from the
149
267
  * chat-area component for inclusion in the {@link beforeAgentTurn} event payload —
150
268
  * lets listeners reason about which app's chat surface is invoking the agent.
151
269
  * Optional; defaults to null for surfaces with no app context.
152
270
  */
153
- applicationId: string | null;
271
+ ApplicationId: string | null;
272
+ /** @deprecated Use {@link ApplicationId}. */
273
+ set applicationId(value: string | null);
274
+ /** @deprecated Use {@link ApplicationId}. */
275
+ get applicationId(): string | null;
276
+ /**
277
+ * When a message starts an agent turn. `'Always'` (the default) answers every message, as
278
+ * before. `'MentionOnly'` answers only a message that tags an agent; any other message is
279
+ * posted with no turn at all — no reply row, no placeholder, no turn events — which is what a
280
+ * chat between several people needs.
281
+ */
282
+ AgentReplyMode: AgentReplyMode;
283
+ /**
284
+ * The agents that may answer here. Narrows the composer's '@' list, every route (a tagged
285
+ * agent, continuity, the pinned and host default agents, the conversation manager) and the
286
+ * conversation manager's delegation, including each agent step of a workflow it plans. A tagged
287
+ * agent outside the list is ignored. Null (the default) allows every agent the user can run;
288
+ * an empty list allows none.
289
+ */
290
+ AllowedAgentIDs: readonly string[] | null;
291
+ /**
292
+ * The people the composer's '@' list offers, such as the chat's members. Null (the default)
293
+ * offers only the current user, as before.
294
+ */
295
+ MentionPeople: readonly MentionPerson[] | null;
296
+ /**
297
+ * The first moment of the conversation an agent turn may read. The server loads the agent's
298
+ * history from there and uses no summary of earlier messages; the run's own reads of the
299
+ * conversation (history tools, attached artifacts, the previous output it continues from)
300
+ * start there too, and so does the continuity route, which considers only replies written at
301
+ * or after it. Sent to the server only when set, so leaving it null keeps working against an
302
+ * MJAPI that predates it (one that predates it rejects a turn that sets it, rather than
303
+ * reading past the floor). Null (the default) reads the whole conversation.
304
+ */
305
+ AgentHistoryFrom: Date | null;
306
+ /**
307
+ * Runs agent turns on the host's server instead of MJ's own path. The chat area still picks
308
+ * the agent and fires {@link BeforeAgentTurn}; it then calls the handler once per turn, before
309
+ * any reply row exists, and shows the rows the handler reports. Null (the default) runs turns
310
+ * on MJ's path.
311
+ */
312
+ AgentTurnHandler: AgentTurnHandler | null;
313
+ /**
314
+ * Whether MJ names a new conversation from its first message. True (the default) keeps
315
+ * today's behavior; a host that names its own chats turns it off.
316
+ */
317
+ AutoNameConversation: boolean;
318
+ /**
319
+ * Whether an unmentioned message asks one typed decision which agent in the conversation should
320
+ * answer it, instead of always going back to the last agent that answered. The same call can
321
+ * name the artifact version the message modifies. The answer replaces continuity only when it
322
+ * is confident and arrives in time; an error, a slow or unsure answer keeps today's routing, and
323
+ * a tagged message or a form response makes no call (see `decision-routing.ts`). False (the
324
+ * default) changes nothing: no call, and today's routing.
325
+ *
326
+ * What goes to the model: each qualifying message sends these to the model behind the
327
+ * `Default Decision` prompt, which can be a different vendor from the agents' own: the first
328
+ * 1,000 characters of the new message, the last 6 turns (150 characters each), each participant's
329
+ * name, description and last reply, and the names of their artifact versions. Each call writes an
330
+ * `MJ: AI Prompt Runs` row, even when the answer comes too late to be used.
331
+ */
332
+ EnableDecisionRouting: boolean;
333
+ MessageSent: EventEmitter<MJConversationDetailEntity>;
334
+ /**
335
+ * @deprecated Use {@link MessageSent}.
336
+ *
337
+ * The same emitter under the old binding name, so a template still binding
338
+ * (messageSent) keeps working. Must stay AFTER MessageSent: class fields
339
+ * initialise in order, and the other way round this captures undefined.
340
+ */
154
341
  messageSent: EventEmitter<MJConversationDetailEntity>;
342
+ AgentResponse: EventEmitter<{
343
+ message: MJConversationDetailEntity;
344
+ agentResult: any;
345
+ }>;
346
+ /**
347
+ * @deprecated Use {@link AgentResponse}.
348
+ *
349
+ * The same emitter under the old binding name, so a template still binding
350
+ * (agentResponse) keeps working. Must stay AFTER AgentResponse: class fields
351
+ * initialise in order, and the other way round this captures undefined.
352
+ */
155
353
  agentResponse: EventEmitter<{
156
354
  message: MJConversationDetailEntity;
157
355
  agentResult: any;
158
356
  }>;
159
357
  /**
160
- * Cancelable — fired BEFORE `agentService.processMessage()` is called for a user turn.
161
- * Listeners may set `event.Cancel = true` to halt the agent invocation (e.g., a
162
- * client-side guardrail blocking the turn). When canceled, the corresponding
163
- * {@link afterAgentTurn} event is NOT fired and the running task is cleared.
164
- * Follows MJ's established Before/After cancelable event pattern.
358
+ * Cancelable — fired once per agent turn, on every route, after routing has picked the agent
359
+ * and BEFORE any reply row exists. Listeners may set `event.Cancel = true` to stop the turn
360
+ * (nothing more is written, and {@link AfterAgentTurn} does not fire) or set
361
+ * `event.RedirectAgentId` to send it to another allowed agent. A message that starts no turn
362
+ * fires nothing. Follows MJ's established Before/After cancelable event pattern.
363
+ */
364
+ BeforeAgentTurn: EventEmitter<BeforeAgentTurnEventArgs>;
365
+ /**
366
+ * @deprecated Use {@link BeforeAgentTurn}.
367
+ *
368
+ * The same emitter under the old binding name, so a template still binding
369
+ * (beforeAgentTurn) keeps working. Must stay AFTER BeforeAgentTurn: class fields
370
+ * initialise in order, and the other way round this captures undefined.
165
371
  */
166
372
  beforeAgentTurn: EventEmitter<BeforeAgentTurnEventArgs>;
167
373
  /**
168
- * Fired AFTER a successful agent turn completes. Carries the agent run id and the
169
- * full agent result. Not fired when {@link beforeAgentTurn} was canceled or when
170
- * the underlying `processMessage` errored.
374
+ * Fired AFTER a successful agent turn, on every route. Carries the agent run id and the
375
+ * full agent result. Not fired when {@link BeforeAgentTurn} was canceled, when the turn
376
+ * failed, or when a host {@link AgentTurnHandler} reported no result.
377
+ */
378
+ AfterAgentTurn: EventEmitter<AfterAgentTurnEventArgs>;
379
+ /**
380
+ * @deprecated Use {@link AfterAgentTurn}.
381
+ *
382
+ * The same emitter under the old binding name, so a template still binding
383
+ * (afterAgentTurn) keeps working. Must stay AFTER AfterAgentTurn: class fields
384
+ * initialise in order, and the other way round this captures undefined.
171
385
  */
172
386
  afterAgentTurn: EventEmitter<AfterAgentTurnEventArgs>;
387
+ AgentRunDetected: EventEmitter<{
388
+ conversationId: string;
389
+ conversationDetailId: string;
390
+ agentRunId: string;
391
+ }>;
392
+ /**
393
+ * @deprecated Use {@link AgentRunDetected}.
394
+ *
395
+ * The same emitter under the old binding name, so a template still binding
396
+ * (agentRunDetected) keeps working. Must stay AFTER AgentRunDetected: class fields
397
+ * initialise in order, and the other way round this captures undefined.
398
+ */
173
399
  agentRunDetected: EventEmitter<{
174
400
  conversationId: string;
175
401
  conversationDetailId: string;
176
402
  agentRunId: string;
177
403
  }>;
404
+ AgentRunUpdate: EventEmitter<{
405
+ conversationId: string;
406
+ conversationDetailId: string;
407
+ agentRun?: any;
408
+ agentRunId?: string;
409
+ }>;
410
+ /**
411
+ * @deprecated Use {@link AgentRunUpdate}.
412
+ *
413
+ * The same emitter under the old binding name, so a template still binding
414
+ * (agentRunUpdate) keeps working. Must stay AFTER AgentRunUpdate: class fields
415
+ * initialise in order, and the other way round this captures undefined.
416
+ */
178
417
  agentRunUpdate: EventEmitter<{
179
418
  conversationId: string;
180
419
  conversationDetailId: string;
181
420
  agentRun?: any;
182
421
  agentRunId?: string;
183
422
  }>;
423
+ MessageComplete: EventEmitter<{
424
+ conversationId: string;
425
+ conversationDetailId: string;
426
+ agentId?: string;
427
+ }>;
428
+ /**
429
+ * @deprecated Use {@link MessageComplete}.
430
+ *
431
+ * The same emitter under the old binding name, so a template still binding
432
+ * (messageComplete) keeps working. Must stay AFTER MessageComplete: class fields
433
+ * initialise in order, and the other way round this captures undefined.
434
+ */
184
435
  messageComplete: EventEmitter<{
185
436
  conversationId: string;
186
437
  conversationDetailId: string;
187
438
  agentId?: string;
188
439
  }>;
440
+ ArtifactCreated: EventEmitter<{
441
+ conversationId: string;
442
+ artifactId: string;
443
+ versionId: string;
444
+ versionNumber: number;
445
+ conversationDetailId: string;
446
+ name: string;
447
+ }>;
448
+ /**
449
+ * @deprecated Use {@link ArtifactCreated}.
450
+ *
451
+ * The same emitter under the old binding name, so a template still binding
452
+ * (artifactCreated) keeps working. Must stay AFTER ArtifactCreated: class fields
453
+ * initialise in order, and the other way round this captures undefined.
454
+ */
189
455
  artifactCreated: EventEmitter<{
190
456
  conversationId: string;
191
457
  artifactId: string;
@@ -194,32 +460,110 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
194
460
  conversationDetailId: string;
195
461
  name: string;
196
462
  }>;
463
+ ConversationRenamed: EventEmitter<{
464
+ conversationId: string;
465
+ name: string;
466
+ description: string;
467
+ }>;
468
+ /**
469
+ * @deprecated Use {@link ConversationRenamed}.
470
+ *
471
+ * The same emitter under the old binding name, so a template still binding
472
+ * (conversationRenamed) keeps working. Must stay AFTER ConversationRenamed: class fields
473
+ * initialise in order, and the other way round this captures undefined.
474
+ */
197
475
  conversationRenamed: EventEmitter<{
198
476
  conversationId: string;
199
477
  name: string;
200
478
  description: string;
201
479
  }>;
480
+ IntentCheckStarted: EventEmitter<{
481
+ conversationId: string;
482
+ }>;
483
+ /**
484
+ * @deprecated Use {@link IntentCheckStarted}.
485
+ *
486
+ * The same emitter under the old binding name, so a template still binding
487
+ * (intentCheckStarted) keeps working. Must stay AFTER IntentCheckStarted: class fields
488
+ * initialise in order, and the other way round this captures undefined.
489
+ */
202
490
  intentCheckStarted: EventEmitter<{
203
491
  conversationId: string;
204
492
  }>;
493
+ IntentCheckCompleted: EventEmitter<{
494
+ conversationId: string;
495
+ }>;
496
+ /**
497
+ * @deprecated Use {@link IntentCheckCompleted}.
498
+ *
499
+ * The same emitter under the old binding name, so a template still binding
500
+ * (intentCheckCompleted) keeps working. Must stay AFTER IntentCheckCompleted: class fields
501
+ * initialise in order, and the other way round this captures undefined.
502
+ */
205
503
  intentCheckCompleted: EventEmitter<{
206
504
  conversationId: string;
207
505
  }>;
506
+ InitialMessageAutoSendStarted: EventEmitter<{
507
+ conversationId: string;
508
+ }>;
509
+ /**
510
+ * @deprecated Use {@link InitialMessageAutoSendStarted}.
511
+ *
512
+ * The same emitter under the old binding name, so a template still binding
513
+ * (initialMessageAutoSendStarted) keeps working. Must stay AFTER InitialMessageAutoSendStarted: class fields
514
+ * initialise in order, and the other way round this captures undefined.
515
+ */
208
516
  initialMessageAutoSendStarted: EventEmitter<{
209
517
  conversationId: string;
210
518
  }>;
519
+ InitialMessageAutoSendFailed: EventEmitter<{
520
+ conversationId: string;
521
+ }>;
522
+ /**
523
+ * @deprecated Use {@link InitialMessageAutoSendFailed}.
524
+ *
525
+ * The same emitter under the old binding name, so a template still binding
526
+ * (initialMessageAutoSendFailed) keeps working. Must stay AFTER InitialMessageAutoSendFailed: class fields
527
+ * initialise in order, and the other way round this captures undefined.
528
+ */
211
529
  initialMessageAutoSendFailed: EventEmitter<{
212
530
  conversationId: string;
213
531
  }>;
532
+ EmptyStateSubmit: EventEmitter<{
533
+ text: string;
534
+ attachments: PendingAttachment[];
535
+ }>;
536
+ /**
537
+ * @deprecated Use {@link EmptyStateSubmit}.
538
+ *
539
+ * The same emitter under the old binding name, so a template still binding
540
+ * (emptyStateSubmit) keeps working. Must stay AFTER EmptyStateSubmit: class fields
541
+ * initialise in order, and the other way round this captures undefined.
542
+ */
214
543
  emptyStateSubmit: EventEmitter<{
215
544
  text: string;
216
545
  attachments: PendingAttachment[];
217
546
  }>;
547
+ UploadStateChanged: EventEmitter<{
548
+ isUploading: boolean;
549
+ message: string;
550
+ }>;
551
+ /**
552
+ * @deprecated Use {@link UploadStateChanged}.
553
+ *
554
+ * The same emitter under the old binding name, so a template still binding
555
+ * (uploadStateChanged) keeps working. Must stay AFTER UploadStateChanged: class fields
556
+ * initialise in order, and the other way round this captures undefined.
557
+ */
218
558
  uploadStateChanged: EventEmitter<{
219
559
  isUploading: boolean;
220
560
  message: string;
221
561
  }>;
222
- inputBox: AiComposerComponent;
562
+ InputBox: AiComposerComponent;
563
+ /** @deprecated Use {@link InputBox}. */
564
+ get inputBox(): AiComposerComponent;
565
+ /** @deprecated Use {@link InputBox}. */
566
+ set inputBox(value: AiComposerComponent);
223
567
  private _messageText;
224
568
  /**
225
569
  * The composer's text. An accessor pair rather than a plain field because every write reaches the
@@ -235,7 +579,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
235
579
  * Read is a plain field read; there is no two-way `ngModel` on this property (the template binds
236
580
  * `[value]="messageText"` one-way), so the pair is transparent to callers.
237
581
  */
582
+ get MessageText(): string;
583
+ set MessageText(value: string);
584
+ /** @deprecated Use {@link MessageText}. */
238
585
  get messageText(): string;
586
+ /** @deprecated Use {@link MessageText}. */
239
587
  set messageText(value: string);
240
588
  /**
241
589
  * Prefills the composer with draft text WITHOUT sending (unlike pendingMessage,
@@ -248,10 +596,22 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
248
596
  * view isn't up yet, ngAfterViewInit applies it. Emits initialDraftApplied so the
249
597
  * host can clear its pending state.
250
598
  */
251
- set initialDraft(value: string | null);
599
+ set InitialDraft(value: string | null);
600
+ get InitialDraft(): string | null;
601
+ /** @deprecated Use {@link InitialDraft}. */
252
602
  get initialDraft(): string | null;
603
+ /** @deprecated Use {@link InitialDraft}. */
604
+ set initialDraft(value: string | null);
253
605
  private appliedInitialDraft;
254
606
  private pendingInitialDraft;
607
+ InitialDraftApplied: EventEmitter<void>;
608
+ /**
609
+ * @deprecated Use {@link InitialDraftApplied}.
610
+ *
611
+ * The same emitter under the old binding name, so a template still binding
612
+ * (initialDraftApplied) keeps working. Must stay AFTER InitialDraftApplied: class fields
613
+ * initialise in order, and the other way round this captures undefined.
614
+ */
255
615
  initialDraftApplied: EventEmitter<void>;
256
616
  /**
257
617
  * Live draft-state signal: fires on every composer value change with the
@@ -282,12 +642,36 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
282
642
  */
283
643
  private scheduleFocusReassert;
284
644
  SetDraft(text: string, focus?: boolean): void;
285
- isSending: boolean;
286
- isProcessing: boolean;
287
- processingMessage: string;
288
- isUploadingAttachments: boolean;
289
- uploadingMessage: string;
290
- converationManagerAgent: MJAIAgentEntityExtended | null;
645
+ IsSending: boolean;
646
+ /** @deprecated Use {@link IsSending}. */
647
+ get isSending(): boolean;
648
+ /** @deprecated Use {@link IsSending}. */
649
+ set isSending(value: boolean);
650
+ IsProcessing: boolean;
651
+ /** @deprecated Use {@link IsProcessing}. */
652
+ get isProcessing(): boolean;
653
+ /** @deprecated Use {@link IsProcessing}. */
654
+ set isProcessing(value: boolean);
655
+ ProcessingMessage: string;
656
+ /** @deprecated Use {@link ProcessingMessage}. */
657
+ get processingMessage(): string;
658
+ /** @deprecated Use {@link ProcessingMessage}. */
659
+ set processingMessage(value: string);
660
+ IsUploadingAttachments: boolean;
661
+ /** @deprecated Use {@link IsUploadingAttachments}. */
662
+ get isUploadingAttachments(): boolean;
663
+ /** @deprecated Use {@link IsUploadingAttachments}. */
664
+ set isUploadingAttachments(value: boolean);
665
+ UploadingMessage: string;
666
+ /** @deprecated Use {@link UploadingMessage}. */
667
+ get uploadingMessage(): string;
668
+ /** @deprecated Use {@link UploadingMessage}. */
669
+ set uploadingMessage(value: string);
670
+ ConverationManagerAgent: MJAIAgentEntityExtended | null;
671
+ /** @deprecated Use {@link ConverationManagerAgent}. */
672
+ get converationManagerAgent(): MJAIAgentEntityExtended | null;
673
+ /** @deprecated Use {@link ConverationManagerAgent}. */
674
+ set converationManagerAgent(value: MJAIAgentEntityExtended | null);
291
675
  private completionTimestamps;
292
676
  private registeredCallbacks;
293
677
  private static readonly IN_FLIGHT_WATCH_BACKOFF_MS;
@@ -297,7 +681,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
297
681
  private mentionAutocomplete;
298
682
  constructor(dialogService: DialogService, toastService: ToastService, agentService: ConversationAgentService, dataCache: DataCacheService, activeTasks: ActiveTasksService, streamingService: ConversationStreamingService, mentionParser: MentionParserService, attachmentService: ConversationAttachmentService, bridge: ConversationBridgeService, realtimeSession: RealtimeSessionService);
299
683
  /** True while a live voice session is active — drives the overlay + mic state. */
300
- voiceActive: boolean;
684
+ VoiceActive: boolean;
685
+ /** @deprecated Use {@link VoiceActive}. */
686
+ get voiceActive(): boolean;
687
+ /** @deprecated Use {@link VoiceActive}. */
688
+ set voiceActive(value: boolean);
301
689
  private realtimeActiveSub?;
302
690
  ngOnInit(): Promise<void>;
303
691
  ngOnChanges(changes: SimpleChanges): void;
@@ -315,8 +703,12 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
315
703
  * 2. per-conversation pinned default
316
704
  * 3. embedder-supplied default
317
705
  * 4. Sage fallback
318
- * Returns null only if Sage itself failed to load.
706
+ * skipping any agent outside {@link AllowedAgentIDs}. {@link AgentReplyMode} does not apply:
707
+ * starting a call is itself a choice to talk to an agent. Returns null when Sage failed to
708
+ * load, or when the host allows none of these agents.
319
709
  */
710
+ ResolveCurrentAgentId(): string | null;
711
+ /** @deprecated Use {@link ResolveCurrentAgentId}. */
320
712
  resolveCurrentAgentId(): string | null;
321
713
  /**
322
714
  * The agent the '/' skill picker should narrow to. Mirrors routing's priority: an explicit
@@ -324,6 +716,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
324
716
  * would otherwise go to ({@link resolveCurrentAgentId}). Bound to `mj-ai-composer`'s
325
717
  * `TargetAgentId`; null = unknown, no narrowing.
326
718
  */
719
+ get PickerTargetAgentId(): string | null;
720
+ /** @deprecated Use {@link PickerTargetAgentId}. */
327
721
  get pickerTargetAgentId(): string | null;
328
722
  /**
329
723
  * Memo for the first `@agent` chip in the draft, so the template-bound
@@ -354,6 +748,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
354
748
  */
355
749
  private mentionedAgentId;
356
750
  /** True when the mic button should be enabled (have an agent + not disabled). */
751
+ get CanStartRealtime(): boolean;
752
+ /** @deprecated Use {@link CanStartRealtime}. */
357
753
  get canStartRealtime(): boolean;
358
754
  /**
359
755
  * Display name of the agent the voice session fronts. Resolved here (this component
@@ -362,7 +758,11 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
362
758
  */
363
759
  private resolveRealtimeAgentName;
364
760
  /** True while the "Start a voice call with…" agent picker popover is open. */
365
- showRealtimeAgentPicker: boolean;
761
+ ShowRealtimeAgentPicker: boolean;
762
+ /** @deprecated Use {@link ShowRealtimeAgentPicker}. */
763
+ get showRealtimeAgentPicker(): boolean;
764
+ /** @deprecated Use {@link ShowRealtimeAgentPicker}. */
765
+ set showRealtimeAgentPicker(value: boolean);
366
766
  /**
367
767
  * CDK connected-overlay positions for the voice agent picker. Preferred: open UPWARD,
368
768
  * right edge aligned to the composer's right edge (matching the old absolute placement).
@@ -370,31 +770,45 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
370
770
  * body-level CDK overlay container (with `cdkConnectedOverlayPush`), it escapes the chat
371
771
  * overlay's `overflow: hidden` border and can never clip at the top of a narrow overlay.
372
772
  */
373
- readonly pickerOverlayPositions: ConnectedPosition[];
773
+ readonly PickerOverlayPositions: ConnectedPosition[];
774
+ /** @deprecated Use {@link PickerOverlayPositions}. */
775
+ get pickerOverlayPositions(): ConnectedPosition[];
374
776
  /**
375
777
  * `MJ: User Settings` key persisting the user's co-agent choice for realtime calls
376
778
  * (server-side, cross-device — never localStorage). Stored shape: `{"coAgentId":
377
779
  * string | null}` — `null` is an explicit "Auto" choice that overwrites an older pick.
378
780
  */
379
- private static readonly CoAgentPrefKey;
781
+ private static readonly coAgentPrefKey;
380
782
  /**
381
783
  * The persisted co-agent preference, loaded just before the picker opens (and read by
382
784
  * the instant-start path). `null` = no preference / explicit "Auto".
383
785
  */
384
- voicePickerDefaultCoAgentId: string | null;
786
+ VoicePickerDefaultCoAgentId: string | null;
787
+ /** @deprecated Use {@link VoicePickerDefaultCoAgentId}. */
788
+ get voicePickerDefaultCoAgentId(): string | null;
789
+ /** @deprecated Use {@link VoicePickerDefaultCoAgentId}. */
790
+ set voicePickerDefaultCoAgentId(value: string | null);
385
791
  /**
386
792
  * Agents the voice picker offers — the same cached set the @mention
387
- * autocomplete and {@link resolveRealtimeAgentName} use, so the picker can
388
- * never offer an agent the conversation couldn't otherwise route to.
793
+ * autocomplete and {@link resolveRealtimeAgentName} use, narrowed to
794
+ * {@link AllowedAgentIDs}, so the picker can never offer an agent the
795
+ * conversation couldn't otherwise route to.
389
796
  */
797
+ get VoicePickerAgents(): MJAIAgentEntityExtended[];
798
+ private voicePickerAgentsMemo;
799
+ /** @deprecated Use {@link VoicePickerAgents}. */
390
800
  get voicePickerAgents(): MJAIAgentEntityExtended[];
391
801
  /**
392
802
  * The ACTIVE Realtime-type co-agent candidates — the same run-permission-filtered
393
803
  * cached set as {@link voicePickerAgents}, narrowed to the Realtime agent type. The
394
804
  * picker shows its co-agent selector only when more than one exists.
395
805
  */
806
+ get VoicePickerCoAgents(): MJAIAgentEntityExtended[];
807
+ /** @deprecated Use {@link VoicePickerCoAgents}. */
396
808
  get voicePickerCoAgents(): MJAIAgentEntityExtended[];
397
809
  /** The agent the default resolution would call — preselected in the picker. */
810
+ get VoicePickerDefaultAgentId(): string | null;
811
+ /** @deprecated Use {@link VoicePickerDefaultAgentId}. */
398
812
  get voicePickerDefaultAgentId(): string | null;
399
813
  /**
400
814
  * Start a real-time voice session fronting the conversation's current agent.
@@ -410,6 +824,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
410
824
  * the user never chose — so show a compact agent picker instead and start
411
825
  * with whichever agent they pick.
412
826
  */
827
+ OnStartRealtime(): Promise<void>;
828
+ /** @deprecated Use {@link OnStartRealtime}. */
413
829
  onStartRealtime(): Promise<void>;
414
830
  /**
415
831
  * Caret-next-to-the-phone click: open the agent/co-agent/model picker ON DEMAND, even
@@ -419,10 +835,14 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
419
835
  * choice one click away. Falls through to the instant path when there is nothing to
420
836
  * pick from.
421
837
  */
838
+ OnRealtimeOptions(): Promise<void>;
839
+ /** @deprecated Use {@link OnRealtimeOptions}. */
422
840
  onRealtimeOptions(): Promise<void>;
423
841
  /** Loads the persisted co-agent preference, then shows the picker (pref preselected). */
424
842
  private openRealtimeAgentPicker;
425
843
  /** User confirmed an agent (+ optional co-agent / voice model) in the voice picker — start the call. */
844
+ OnRealtimeAgentPicked(pick: RealtimeAgentPick): Promise<void>;
845
+ /** @deprecated Use {@link OnRealtimeAgentPicked}. */
426
846
  onRealtimeAgentPicked(pick: RealtimeAgentPick): Promise<void>;
427
847
  /**
428
848
  * Reads the persisted co-agent preference from `MJ: User Settings` (via
@@ -442,6 +862,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
442
862
  */
443
863
  private resolveInstantCoAgentId;
444
864
  /** User dismissed the voice picker without starting a call. */
865
+ OnRealtimeAgentPickerCancelled(): void;
866
+ /** @deprecated Use {@link OnRealtimeAgentPickerCancelled}. */
445
867
  onRealtimeAgentPickerCancelled(): void;
446
868
  /**
447
869
  * Shared session-start path for both the immediate (existing conversation)
@@ -471,6 +893,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
471
893
  * 3. User returns to a conversation with in-progress messages
472
894
  * 4. Parent component explicitly triggers reconnection
473
895
  */
896
+ ReconnectInProgressMessages(): void;
897
+ /** @deprecated Use {@link ReconnectInProgressMessages}. */
474
898
  reconnectInProgressMessages(): void;
475
899
  /**
476
900
  * Create a progress callback for a specific message ID.
@@ -482,18 +906,26 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
482
906
  * Called during cleanup and when switching conversations.
483
907
  */
484
908
  private unregisterAllCallbacks;
909
+ get CanSend(): boolean;
910
+ /** @deprecated Use {@link CanSend}. */
485
911
  get canSend(): boolean;
486
912
  /**
487
913
  * Handle attachments changed from the input box
488
914
  */
915
+ OnAttachmentsChanged(attachments: PendingAttachment[]): void;
916
+ /** @deprecated Use {@link OnAttachmentsChanged}. */
489
917
  onAttachmentsChanged(attachments: PendingAttachment[]): void;
490
918
  /**
491
919
  * Handle attachment errors from the input box
492
920
  */
921
+ OnAttachmentError(error: string): void;
922
+ /** @deprecated Use {@link OnAttachmentError}. */
493
923
  onAttachmentError(error: string): void;
494
924
  /**
495
925
  * Handle text submitted from the input box
496
926
  */
927
+ OnTextSubmitted(text: string): Promise<void>;
928
+ /** @deprecated Use {@link OnTextSubmitted}. */
497
929
  onTextSubmitted(text: string): Promise<void>;
498
930
  /**
499
931
  * Toggle sticky Plan Mode for THIS conversation (or the pending-new bucket on the
@@ -503,6 +935,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
503
935
  * until the user turns it off or approves a plan.
504
936
  */
505
937
  TogglePlanMode(): void;
938
+ OnSend(): Promise<void>;
939
+ /** @deprecated Use {@link OnSend}. */
506
940
  onSend(): Promise<void>;
507
941
  /**
508
942
  * Send a message with custom text WITHOUT modifying the visible messageText input
@@ -515,6 +949,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
515
949
  * `this.pendingAttachments` may not contain the attachment. Pass it in
516
950
  * explicitly and we merge + dedupe (by `id`) before saving.
517
951
  */
952
+ SendMessageWithText(text: string, extraAttachments?: PendingAttachment[]): Promise<boolean>;
953
+ /** @deprecated Use {@link SendMessageWithText}. */
518
954
  sendMessageWithText(text: string, extraAttachments?: PendingAttachment[]): Promise<boolean>;
519
955
  /**
520
956
  * Creates and configures a new conversation detail message
@@ -533,23 +969,83 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
533
969
  */
534
970
  private parseMentionsFromMessage;
535
971
  /**
536
- * Routes the message to the appropriate agent or Sage based on context.
537
- * Priority: explicit @mention > prior-agent continuity > embedder-supplied
538
- * default agent > Sage fallback.
972
+ * Routes a saved message to the agent that answers it — or to none.
973
+ *
974
+ * Routing picks the agent ({@link resolveAgentTurnTarget}): a tagged agent, then (under
975
+ * `AgentReplyMode` `'Always'`) the last agent that answered, the conversation's pinned agent,
976
+ * the host's default agent, and the conversation manager, each only if the host allows it.
977
+ * With {@link EnableDecisionRouting} on, a routing decision may first put another agent in the
978
+ * last agent's place ({@link decideAgentRouting}).
979
+ * {@link BeforeAgentTurn} is then fired once, before any reply row exists, and the turn runs on
980
+ * MJ's path or through the host's {@link AgentTurnHandler}.
539
981
  */
540
982
  private routeMessage;
541
983
  /**
542
- * Handles routing when user directly mentions an agent with @
984
+ * Asks the routing decision for this message when {@link EnableDecisionRouting} is on and the
985
+ * message qualifies (see `ShouldRunRoutingDecision`). Returns null, with no call, otherwise, and
986
+ * when anything fails: the message then keeps today's routing.
987
+ *
988
+ * @param candidates The turn's candidates, read before any await (see {@link routeMessage}).
989
+ */
990
+ private decideAgentRouting;
991
+ /**
992
+ * The routing decision's input, rebuilt from the conversation as it is now: the agents that
993
+ * have answered within the history floor, the last few turns, and the conversation manager.
994
+ * Artifact versions are added after, once the input is known to be worth asking about.
995
+ *
996
+ * Participants come only from the '@' list's agents (`GetAvailableAgents`): active, top-level,
997
+ * unrestricted agents this person has run permission for. An agent that answered here but that
998
+ * the person can't run (a shared conversation, a revoked permission) is never offered, so routing
999
+ * can't send the turn to an agent the server would refuse. Before that list has loaded there are
1000
+ * no participants, so no call is made and the message keeps today's routing. Speaker names in
1001
+ * the recent turns still come from the full catalog, since any agent may have spoken.
1002
+ */
1003
+ private buildRoutingDecisionInput;
1004
+ /** Every participant's artifact versions in this conversation, for the artifact question. */
1005
+ private loadRoutingArtifactVersions;
1006
+ /** The host's rules, as the routing functions take them. */
1007
+ private get agentTurnRules();
1008
+ /** The agent each route would use for this conversation, before the host's rules apply. */
1009
+ private agentTurnCandidates;
1010
+ /**
1011
+ * Picks the agent that answers this message and the route that chose it, or null for no turn.
1012
+ * A routing decision, when there was one, is applied to the candidates first.
543
1013
  */
544
- private handleDirectMention;
1014
+ private resolveAgentTurnTarget;
1015
+ /** The agents a message tags, in the order they appear. */
1016
+ private agentMentionIds;
545
1017
  /**
546
- * Handles routing when there's a previous non-Sage agent in the conversation.
1018
+ * Fires {@link BeforeAgentTurn} for the turn routing picked — before any reply row exists —
1019
+ * and applies what its listeners decided. Returns the turn to run, or null when a listener
1020
+ * canceled it or redirected it to an agent this chat can't use.
1021
+ */
1022
+ private announceAgentTurn;
1023
+ /**
1024
+ * Settles a message that starts no agent turn — `MentionOnly` with no tagged agent, no allowed
1025
+ * agent left, or a turn declined in {@link BeforeAgentTurn}. Nothing new is written; the
1026
+ * person's own row is only confirmed Complete.
1027
+ */
1028
+ private finishWithoutAgentTurn;
1029
+ /**
1030
+ * Runs a turn that {@link BeforeAgentTurn} let through, on the host's handler or MJ's path.
1031
+ * The routing decision, when there was one, supplies the artifact version the turn's agent
1032
+ * continues from; a host's handler receives it as `TargetArtifactVersionId`.
1033
+ */
1034
+ private runAgentTurn;
1035
+ /**
1036
+ * The tagged agent's mention, with its configuration preset. A mention saved without one
1037
+ * (legacy text format) takes the preset from its chip in the composer, when there is one.
1038
+ */
1039
+ private findAgentMention;
1040
+ /**
1041
+ * Continues with an agent chosen without a mention: the last agent that answered, the pinned
1042
+ * or host default agent, or a redirect.
547
1043
  *
548
1044
  * LATENCY OPTIMIZATION (PR #2309 / plans/agent-latency-optimization.md — Opt #1):
549
- * Previously, this method made a separate LLM call via checkContinuityIntent() to decide
550
- * whether the user's new message was still directed at the previous agent or should be
551
- * routed to Sage. That call added ~300ms of latency on every message in a conversation
552
- * with an active agent — the single largest source of non-inference overhead on the client.
1045
+ * This used to make a separate LLM call via checkContinuityIntent() to decide whether the
1046
+ * user's new message was still directed at the previous agent or should be routed to Sage.
1047
+ * That call added ~300ms of latency on every message in a conversation with an active agent —
1048
+ * the single largest source of non-inference overhead on the client.
553
1049
  *
554
1050
  * The heuristic replacement is simple: if a previous non-Sage agent exists, always continue
555
1051
  * with it. The user can @mention a different agent (or Sage) to explicitly switch. This is
@@ -560,28 +1056,70 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
560
1056
  * method are preserved (not deleted) so we can reintroduce intent checking in the future
561
1057
  * when browser-local inference is fast enough (~20-50ms) to do this without blocking the
562
1058
  * user. See PR #2309 for the full discussion.
1059
+ *
1060
+ * With {@link EnableDecisionRouting} on, a typed routing decision runs before routing instead
1061
+ * ({@link decideAgentRouting}); the prompt-based check stays unused. A confident answer from it
1062
+ * may name the artifact version this agent should continue from.
1063
+ *
1064
+ * @param targetArtifactVersionId The artifact version the routing decision named, or null.
563
1065
  */
564
1066
  private handleAgentContinuity;
565
1067
  /**
566
- * Handles routing when there's no previous agent context
1068
+ * The conversation manager's turn. When an earlier message @mentioned the manager with a
1069
+ * configuration preset, the preset keeps applying and the manager answers directly;
1070
+ * otherwise it evaluates the message and may delegate.
1071
+ */
1072
+ private runConversationManagerTurn;
1073
+ /**
1074
+ * The newest reply from an agent other than the conversation manager — among the replies a
1075
+ * turn may read, so from {@link AgentHistoryFrom} onward when it's set.
567
1076
  */
568
- private handleNoAgentContext;
1077
+ private findLastNonSageReply;
569
1078
  /**
570
- * Finds the last agent ID that isn't Sage
1079
+ * Finds the last agent ID that isn't Sage (see {@link findLastNonSageReply}).
571
1080
  */
572
1081
  private findLastNonSageAgentId;
1082
+ /** True when a row was written at or after {@link AgentHistoryFrom}; always true without one. */
1083
+ private isWithinHistoryFloor;
1084
+ /** True when the agent is in the client's agent catalog. */
1085
+ private isKnownAgent;
1086
+ /** The agent's name, when the client's agent catalog has it. */
1087
+ private agentNameFor;
1088
+ /** The ID of the agent with this name, or null when there is none. */
1089
+ private agentIdByName;
1090
+ /** True when the agent is MJ's conversation manager. */
1091
+ private isConversationManager;
1092
+ /** Shows the person why an agent turn didn't happen, or didn't finish. */
1093
+ private notifyAgentTurnProblem;
1094
+ /**
1095
+ * Refuses agents the host doesn't allow — named by the conversation manager's delegation or
1096
+ * by a workflow it planned — and settles the person's message.
1097
+ */
1098
+ private refuseDisallowedAgents;
1099
+ /**
1100
+ * Runs the turn through the host's {@link AgentTurnHandler} instead of MJ's path. Nothing is
1101
+ * written here: the host writes the reply rows and reports them, and each is shown like a row
1102
+ * MJ wrote — one still In-Progress is followed like any other in-progress reply.
1103
+ */
1104
+ private runHostAgentTurn;
1105
+ /** Calls the host's handler; a throw is reported as a failed turn, never swallowed. */
1106
+ private callAgentTurnHandler;
1107
+ /**
1108
+ * What the host's handler is told about the turn.
1109
+ *
1110
+ * @param targetArtifactVersionId The artifact version the routing decision named for this
1111
+ * turn's agent, or null.
1112
+ */
1113
+ private buildAgentTurnRequest;
1114
+ /** Shows the rows a host's handler reported for its turn, oldest first. */
1115
+ private showHostTurnRows;
1116
+ /** Fires {@link AfterAgentTurn} for a turn that succeeded. */
1117
+ private emitAfterAgentTurn;
573
1118
  /**
574
1119
  * Checks if message should continue with the previous agent
575
1120
  * Emits events to show temporary intent checking message in conversation
576
1121
  */
577
1122
  private checkContinuityIntent;
578
- /**
579
- * Executes a routing function, optionally with conversation naming for first message
580
- *
581
- * IMPORTANT: Conversation naming runs asynchronously in the background and does NOT
582
- * block the agent invocation. This prevents UI blocking if naming times out.
583
- */
584
- private executeRouteWithNaming;
585
1123
  /**
586
1124
  * Returns focus to the message textarea
587
1125
  */
@@ -602,7 +1140,8 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
602
1140
  private createProgressCallback;
603
1141
  /**
604
1142
  * Process the message through agents (multi-stage: Sage -> possible sub-agent)
605
- * Only called when there's no @mention and no implicit agent context
1143
+ * Only called when there's no @mention and no implicit agent context.
1144
+ * {@link BeforeAgentTurn} has already fired — routing announces the turn before any row exists.
606
1145
  */
607
1146
  private processMessageThroughAgent;
608
1147
  /** Detaches the progress callback for one message — used when submission never starts. */
@@ -718,6 +1257,6 @@ export declare class MessageInputComponent extends BaseAngularComponent implemen
718
1257
  */
719
1258
  private cleanupCompletionTimestamp;
720
1259
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageInputComponent, never>;
721
- static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "mj-message-input", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "conversationName": { "alias": "conversationName"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "parentMessageId": { "alias": "parentMessageId"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "enableAgentMentions": { "alias": "enableAgentMentions"; "required": false; }; "enableEntityMentions": { "alias": "enableEntityMentions"; "required": false; }; "enableSkillCommands": { "alias": "enableSkillCommands"; "required": false; }; "enablePlanMode": { "alias": "enablePlanMode"; "required": false; }; "enableRealtime": { "alias": "enableRealtime"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "artifactsByDetailId": { "alias": "artifactsByDetailId"; "required": false; }; "systemArtifactsByDetailId": { "alias": "systemArtifactsByDetailId"; "required": false; }; "agentRunsByDetailId": { "alias": "agentRunsByDetailId"; "required": false; }; "emptyStateMode": { "alias": "emptyStateMode"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "conversationDefaultAgentId": { "alias": "conversationDefaultAgentId"; "required": false; }; "agentConfigurationPresetId": { "alias": "agentConfigurationPresetId"; "required": false; }; "initialMessage": { "alias": "initialMessage"; "required": false; }; "initialAttachments": { "alias": "initialAttachments"; "required": false; }; "conversationHistory": { "alias": "conversationHistory"; "required": false; }; "inProgressMessageIds": { "alias": "inProgressMessageIds"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "initialDraft": { "alias": "initialDraft"; "required": false; }; }, { "messageSent": "messageSent"; "agentResponse": "agentResponse"; "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "agentRunDetected": "agentRunDetected"; "agentRunUpdate": "agentRunUpdate"; "messageComplete": "messageComplete"; "artifactCreated": "artifactCreated"; "conversationRenamed": "conversationRenamed"; "intentCheckStarted": "intentCheckStarted"; "intentCheckCompleted": "intentCheckCompleted"; "initialMessageAutoSendStarted": "initialMessageAutoSendStarted"; "initialMessageAutoSendFailed": "initialMessageAutoSendFailed"; "emptyStateSubmit": "emptyStateSubmit"; "uploadStateChanged": "uploadStateChanged"; "initialDraftApplied": "initialDraftApplied"; "DraftStateChanged": "DraftStateChanged"; "ComposerBlurred": "ComposerBlurred"; }, never, never, false, never>;
1260
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageInputComponent, "mj-message-input", never, { "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "ConversationName": { "alias": "ConversationName"; "required": false; }; "conversationName": { "alias": "conversationName"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "Disabled": { "alias": "Disabled"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ReadOnly": { "alias": "ReadOnly"; "required": false; }; "Placeholder": { "alias": "Placeholder"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "ParentMessageId": { "alias": "ParentMessageId"; "required": false; }; "parentMessageId": { "alias": "parentMessageId"; "required": false; }; "EnableAttachments": { "alias": "EnableAttachments"; "required": false; }; "enableAttachments": { "alias": "enableAttachments"; "required": false; }; "EnableMentions": { "alias": "EnableMentions"; "required": false; }; "enableMentions": { "alias": "enableMentions"; "required": false; }; "EnableAgentMentions": { "alias": "EnableAgentMentions"; "required": false; }; "enableAgentMentions": { "alias": "enableAgentMentions"; "required": false; }; "EnableEntityMentions": { "alias": "EnableEntityMentions"; "required": false; }; "enableEntityMentions": { "alias": "enableEntityMentions"; "required": false; }; "EnableSkillCommands": { "alias": "EnableSkillCommands"; "required": false; }; "enableSkillCommands": { "alias": "enableSkillCommands"; "required": false; }; "EnablePlanMode": { "alias": "EnablePlanMode"; "required": false; }; "enablePlanMode": { "alias": "enablePlanMode"; "required": false; }; "EnableRealtime": { "alias": "EnableRealtime"; "required": false; }; "enableRealtime": { "alias": "enableRealtime"; "required": false; }; "MaxAttachments": { "alias": "MaxAttachments"; "required": false; }; "maxAttachments": { "alias": "maxAttachments"; "required": false; }; "MaxAttachmentSizeBytes": { "alias": "MaxAttachmentSizeBytes"; "required": false; }; "maxAttachmentSizeBytes": { "alias": "maxAttachmentSizeBytes"; "required": false; }; "AcceptedFileTypes": { "alias": "AcceptedFileTypes"; "required": false; }; "acceptedFileTypes": { "alias": "acceptedFileTypes"; "required": false; }; "ArtifactsByDetailId": { "alias": "ArtifactsByDetailId"; "required": false; }; "artifactsByDetailId": { "alias": "artifactsByDetailId"; "required": false; }; "SystemArtifactsByDetailId": { "alias": "SystemArtifactsByDetailId"; "required": false; }; "systemArtifactsByDetailId": { "alias": "systemArtifactsByDetailId"; "required": false; }; "AgentRunsByDetailId": { "alias": "AgentRunsByDetailId"; "required": false; }; "agentRunsByDetailId": { "alias": "agentRunsByDetailId"; "required": false; }; "EmptyStateMode": { "alias": "EmptyStateMode"; "required": false; }; "emptyStateMode": { "alias": "emptyStateMode"; "required": false; }; "AppContext": { "alias": "AppContext"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "DefaultAgentId": { "alias": "DefaultAgentId"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "ConversationDefaultAgentId": { "alias": "ConversationDefaultAgentId"; "required": false; }; "conversationDefaultAgentId": { "alias": "conversationDefaultAgentId"; "required": false; }; "AgentConfigurationPresetId": { "alias": "AgentConfigurationPresetId"; "required": false; }; "agentConfigurationPresetId": { "alias": "agentConfigurationPresetId"; "required": false; }; "InitialMessage": { "alias": "InitialMessage"; "required": false; }; "initialMessage": { "alias": "initialMessage"; "required": false; }; "InitialAttachments": { "alias": "InitialAttachments"; "required": false; }; "initialAttachments": { "alias": "initialAttachments"; "required": false; }; "ConversationHistory": { "alias": "ConversationHistory"; "required": false; }; "conversationHistory": { "alias": "conversationHistory"; "required": false; }; "InProgressMessageIds": { "alias": "InProgressMessageIds"; "required": false; }; "inProgressMessageIds": { "alias": "inProgressMessageIds"; "required": false; }; "ApplicationId": { "alias": "ApplicationId"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "AgentReplyMode": { "alias": "AgentReplyMode"; "required": false; }; "AllowedAgentIDs": { "alias": "AllowedAgentIDs"; "required": false; }; "MentionPeople": { "alias": "MentionPeople"; "required": false; }; "AgentHistoryFrom": { "alias": "AgentHistoryFrom"; "required": false; }; "AgentTurnHandler": { "alias": "AgentTurnHandler"; "required": false; }; "AutoNameConversation": { "alias": "AutoNameConversation"; "required": false; }; "EnableDecisionRouting": { "alias": "EnableDecisionRouting"; "required": false; }; "InitialDraft": { "alias": "InitialDraft"; "required": false; }; "initialDraft": { "alias": "initialDraft"; "required": false; }; }, { "MessageSent": "MessageSent"; "messageSent": "messageSent"; "AgentResponse": "AgentResponse"; "agentResponse": "agentResponse"; "BeforeAgentTurn": "BeforeAgentTurn"; "beforeAgentTurn": "beforeAgentTurn"; "AfterAgentTurn": "AfterAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "AgentRunDetected": "AgentRunDetected"; "agentRunDetected": "agentRunDetected"; "AgentRunUpdate": "AgentRunUpdate"; "agentRunUpdate": "agentRunUpdate"; "MessageComplete": "MessageComplete"; "messageComplete": "messageComplete"; "ArtifactCreated": "ArtifactCreated"; "artifactCreated": "artifactCreated"; "ConversationRenamed": "ConversationRenamed"; "conversationRenamed": "conversationRenamed"; "IntentCheckStarted": "IntentCheckStarted"; "intentCheckStarted": "intentCheckStarted"; "IntentCheckCompleted": "IntentCheckCompleted"; "intentCheckCompleted": "intentCheckCompleted"; "InitialMessageAutoSendStarted": "InitialMessageAutoSendStarted"; "initialMessageAutoSendStarted": "initialMessageAutoSendStarted"; "InitialMessageAutoSendFailed": "InitialMessageAutoSendFailed"; "initialMessageAutoSendFailed": "initialMessageAutoSendFailed"; "EmptyStateSubmit": "EmptyStateSubmit"; "emptyStateSubmit": "emptyStateSubmit"; "UploadStateChanged": "UploadStateChanged"; "uploadStateChanged": "uploadStateChanged"; "InitialDraftApplied": "InitialDraftApplied"; "initialDraftApplied": "initialDraftApplied"; "DraftStateChanged": "DraftStateChanged"; "ComposerBlurred": "ComposerBlurred"; }, never, never, false, never>;
722
1261
  }
723
1262
  //# sourceMappingURL=message-input.component.d.ts.map