@memberjunction/ng-conversations 6.2.0-edge.3 → 6.2.0-edge.5

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 (318) hide show
  1. package/README.md +33 -7
  2. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  3. package/dist/lib/components/collection/collection-view.component.js +1 -0
  4. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  5. package/dist/lib/components/composer/ai-composer.component.d.ts +14 -2
  6. package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
  7. package/dist/lib/components/composer/ai-composer.component.js +35 -4
  8. package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
  9. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +1 -1
  10. package/dist/lib/components/conversation/conversation-agent-picker.component.js +3 -3
  11. package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
  12. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +651 -53
  13. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  14. package/dist/lib/components/conversation/conversation-chat-area.component.js +3002 -661
  15. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  16. package/dist/lib/components/conversation/forks-popover.component.d.ts +37 -0
  17. package/dist/lib/components/conversation/forks-popover.component.d.ts.map +1 -0
  18. package/dist/lib/components/conversation/forks-popover.component.js +164 -0
  19. package/dist/lib/components/conversation/forks-popover.component.js.map +1 -0
  20. package/dist/lib/components/export/export-modal.component.d.ts +7 -2
  21. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  22. package/dist/lib/components/export/export-modal.component.js +16 -3
  23. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  24. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  25. package/dist/lib/components/message/conversation-message-rating.component.js +11 -9
  26. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  27. package/dist/lib/components/message/message-input.component.d.ts +96 -11
  28. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  29. package/dist/lib/components/message/message-input.component.js +253 -112
  30. package/dist/lib/components/message/message-input.component.js.map +1 -1
  31. package/dist/lib/components/message/message-item.component.d.ts +304 -16
  32. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  33. package/dist/lib/components/message/message-item.component.js +2029 -363
  34. package/dist/lib/components/message/message-item.component.js.map +1 -1
  35. package/dist/lib/components/message/message-list.component.d.ts +101 -22
  36. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  37. package/dist/lib/components/message/message-list.component.js +326 -55
  38. package/dist/lib/components/message/message-list.component.js.map +1 -1
  39. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.d.ts +34 -0
  40. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.d.ts.map +1 -0
  41. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.js +75 -0
  42. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.js.map +1 -0
  43. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.d.ts +80 -0
  44. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.d.ts.map +1 -0
  45. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.js +202 -0
  46. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.js.map +1 -0
  47. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.d.ts +45 -0
  48. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.d.ts.map +1 -0
  49. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.js +123 -0
  50. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.js.map +1 -0
  51. package/dist/lib/components/realtime/capture/realtime-capture-channel.d.ts +90 -0
  52. package/dist/lib/components/realtime/capture/realtime-capture-channel.d.ts.map +1 -0
  53. package/dist/lib/components/realtime/capture/realtime-capture-channel.js +223 -0
  54. package/dist/lib/components/realtime/capture/realtime-capture-channel.js.map +1 -0
  55. package/dist/lib/components/realtime/capture/realtime-capture-model.d.ts +98 -0
  56. package/dist/lib/components/realtime/capture/realtime-capture-model.d.ts.map +1 -0
  57. package/dist/lib/components/realtime/capture/realtime-capture-model.js +161 -0
  58. package/dist/lib/components/realtime/capture/realtime-capture-model.js.map +1 -0
  59. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.d.ts +48 -0
  60. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.d.ts.map +1 -0
  61. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.js +205 -0
  62. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.js.map +1 -0
  63. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +19 -2
  64. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
  65. package/dist/lib/components/realtime/channels/client-context-channel.js +83 -9
  66. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
  67. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +30 -9
  68. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
  69. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +78 -14
  70. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
  71. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.d.ts +71 -0
  72. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.d.ts.map +1 -0
  73. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.js +259 -0
  74. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.js.map +1 -0
  75. package/dist/lib/components/realtime/identity-verification/identity-verification-model.d.ts +129 -0
  76. package/dist/lib/components/realtime/identity-verification/identity-verification-model.d.ts.map +1 -0
  77. package/dist/lib/components/realtime/identity-verification/identity-verification-model.js +373 -0
  78. package/dist/lib/components/realtime/identity-verification/identity-verification-model.js.map +1 -0
  79. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.d.ts +77 -0
  80. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.d.ts.map +1 -0
  81. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.js +420 -0
  82. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.js.map +1 -0
  83. package/dist/lib/components/realtime/interactive-component/component-contract.d.ts +83 -0
  84. package/dist/lib/components/realtime/interactive-component/component-contract.d.ts.map +1 -0
  85. package/dist/lib/components/realtime/interactive-component/component-contract.js +292 -0
  86. package/dist/lib/components/realtime/interactive-component/component-contract.js.map +1 -0
  87. package/dist/lib/components/realtime/interactive-component/component-data-state.d.ts +39 -0
  88. package/dist/lib/components/realtime/interactive-component/component-data-state.d.ts.map +1 -0
  89. package/dist/lib/components/realtime/interactive-component/component-data-state.js +152 -0
  90. package/dist/lib/components/realtime/interactive-component/component-data-state.js.map +1 -0
  91. package/dist/lib/components/realtime/interactive-component/component-instance-engine.d.ts +109 -0
  92. package/dist/lib/components/realtime/interactive-component/component-instance-engine.d.ts.map +1 -0
  93. package/dist/lib/components/realtime/interactive-component/component-instance-engine.js +146 -0
  94. package/dist/lib/components/realtime/interactive-component/component-instance-engine.js.map +1 -0
  95. package/dist/lib/components/realtime/interactive-component/component-spec-content.d.ts +19 -0
  96. package/dist/lib/components/realtime/interactive-component/component-spec-content.d.ts.map +1 -0
  97. package/dist/lib/components/realtime/interactive-component/component-spec-content.js +39 -0
  98. package/dist/lib/components/realtime/interactive-component/component-spec-content.js.map +1 -0
  99. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.d.ts +183 -0
  100. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.d.ts.map +1 -0
  101. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.js +761 -0
  102. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.js.map +1 -0
  103. package/dist/lib/components/realtime/interactive-component/interactive-component-config.d.ts +25 -0
  104. package/dist/lib/components/realtime/interactive-component/interactive-component-config.d.ts.map +1 -0
  105. package/dist/lib/components/realtime/interactive-component/interactive-component-config.js +57 -0
  106. package/dist/lib/components/realtime/interactive-component/interactive-component-config.js.map +1 -0
  107. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.d.ts +40 -0
  108. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.d.ts.map +1 -0
  109. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.js +97 -0
  110. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.js.map +1 -0
  111. package/dist/lib/components/realtime/interactive-component/interactive-component-types.d.ts +144 -0
  112. package/dist/lib/components/realtime/interactive-component/interactive-component-types.d.ts.map +1 -0
  113. package/dist/lib/components/realtime/interactive-component/interactive-component-types.js +57 -0
  114. package/dist/lib/components/realtime/interactive-component/interactive-component-types.js.map +1 -0
  115. package/dist/lib/components/realtime/interactive-component/react-component-handle.d.ts +36 -0
  116. package/dist/lib/components/realtime/interactive-component/react-component-handle.d.ts.map +1 -0
  117. package/dist/lib/components/realtime/interactive-component/react-component-handle.js +55 -0
  118. package/dist/lib/components/realtime/interactive-component/react-component-handle.js.map +1 -0
  119. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.d.ts +55 -0
  120. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.d.ts.map +1 -0
  121. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.js +210 -0
  122. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.js.map +1 -0
  123. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.d.ts +32 -0
  124. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.d.ts.map +1 -0
  125. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js +90 -0
  126. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js.map +1 -0
  127. package/dist/lib/components/realtime/media/media-channel.d.ts +7 -0
  128. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
  129. package/dist/lib/components/realtime/media/media-channel.js +28 -1
  130. package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
  131. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +8 -1
  132. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  133. package/dist/lib/components/realtime/realtime-agent-banner.component.js +89 -71
  134. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  135. package/dist/lib/components/realtime/realtime-agent-orb.component.d.ts +21 -0
  136. package/dist/lib/components/realtime/realtime-agent-orb.component.d.ts.map +1 -0
  137. package/dist/lib/components/realtime/realtime-agent-orb.component.js +49 -0
  138. package/dist/lib/components/realtime/realtime-agent-orb.component.js.map +1 -0
  139. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +44 -11
  140. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
  141. package/dist/lib/components/realtime/realtime-agent-picker.component.js +162 -50
  142. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
  143. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +8 -2
  144. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
  145. package/dist/lib/components/realtime/realtime-audio-visuals.js +14 -18
  146. package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
  147. package/dist/lib/components/realtime/realtime-composer.component.d.ts +42 -2
  148. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  149. package/dist/lib/components/realtime/realtime-composer.component.js +137 -102
  150. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  151. package/dist/lib/components/realtime/realtime-perception-chip.component.d.ts +71 -0
  152. package/dist/lib/components/realtime/realtime-perception-chip.component.d.ts.map +1 -0
  153. package/dist/lib/components/realtime/realtime-perception-chip.component.js +221 -0
  154. package/dist/lib/components/realtime/realtime-perception-chip.component.js.map +1 -0
  155. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +264 -22
  156. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  157. package/dist/lib/components/realtime/realtime-session-overlay.component.js +851 -135
  158. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  159. package/dist/lib/components/realtime/realtime-surface-placement-prefs.d.ts +14 -0
  160. package/dist/lib/components/realtime/realtime-surface-placement-prefs.d.ts.map +1 -0
  161. package/dist/lib/components/realtime/realtime-surface-placement-prefs.js +14 -0
  162. package/dist/lib/components/realtime/realtime-surface-placement-prefs.js.map +1 -0
  163. package/dist/lib/components/realtime/realtime-surface-stage.model.d.ts +74 -0
  164. package/dist/lib/components/realtime/realtime-surface-stage.model.d.ts.map +1 -0
  165. package/dist/lib/components/realtime/realtime-surface-stage.model.js +171 -0
  166. package/dist/lib/components/realtime/realtime-surface-stage.model.js.map +1 -0
  167. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +71 -13
  168. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  169. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +232 -73
  170. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  171. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +5 -0
  172. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  173. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +8 -0
  174. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  175. package/dist/lib/components/realtime/realtime-ui-config.d.ts +12 -2
  176. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  177. package/dist/lib/components/realtime/realtime-ui-config.js +5 -1
  178. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  179. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +10 -1
  180. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  181. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +42 -2
  182. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  183. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts +20 -3
  184. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts.map +1 -1
  185. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js +44 -10
  186. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js.map +1 -1
  187. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +28 -44
  188. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  189. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +76 -162
  190. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  191. package/dist/lib/components/search/search-panel.component.d.ts +2 -0
  192. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  193. package/dist/lib/components/search/search-panel.component.js +25 -12
  194. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  195. package/dist/lib/components/sidebar/routines-section.component.js +1 -1
  196. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
  197. package/dist/lib/components/task/tasks-full-view.component.d.ts +152 -31
  198. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  199. package/dist/lib/components/task/tasks-full-view.component.js +2227 -214
  200. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  201. package/dist/lib/components/tasks/tasks-dropdown.component.js +4 -4
  202. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  203. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +33 -32
  204. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  205. package/dist/lib/components/workspace/conversation-workspace.component.js +72 -88
  206. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  207. package/dist/lib/conversations.module.d.ts +30 -29
  208. package/dist/lib/conversations.module.d.ts.map +1 -1
  209. package/dist/lib/conversations.module.js +27 -5
  210. package/dist/lib/conversations.module.js.map +1 -1
  211. package/dist/lib/events/chat-events.d.ts +25 -0
  212. package/dist/lib/events/chat-events.d.ts.map +1 -1
  213. package/dist/lib/events/chat-events.js +36 -0
  214. package/dist/lib/events/chat-events.js.map +1 -1
  215. package/dist/lib/models/agent-turn.model.d.ts +5 -0
  216. package/dist/lib/models/agent-turn.model.d.ts.map +1 -1
  217. package/dist/lib/models/agent-turn.model.js.map +1 -1
  218. package/dist/lib/services/agent-state.service.d.ts +34 -8
  219. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  220. package/dist/lib/services/agent-state.service.js +90 -37
  221. package/dist/lib/services/agent-state.service.js.map +1 -1
  222. package/dist/lib/services/artifact-state.service.d.ts +0 -9
  223. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  224. package/dist/lib/services/artifact-state.service.js +1 -32
  225. package/dist/lib/services/artifact-state.service.js.map +1 -1
  226. package/dist/lib/services/browser-realtime-media-host.d.ts +19 -7
  227. package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -1
  228. package/dist/lib/services/browser-realtime-media-host.js +21 -72
  229. package/dist/lib/services/browser-realtime-media-host.js.map +1 -1
  230. package/dist/lib/services/conversation-agent.service.d.ts +48 -16
  231. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  232. package/dist/lib/services/conversation-agent.service.js +110 -35
  233. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  234. package/dist/lib/services/conversation-detail-window.store.d.ts +22 -4
  235. package/dist/lib/services/conversation-detail-window.store.d.ts.map +1 -1
  236. package/dist/lib/services/conversation-detail-window.store.js +50 -9
  237. package/dist/lib/services/conversation-detail-window.store.js.map +1 -1
  238. package/dist/lib/services/conversation-naming.d.ts +72 -22
  239. package/dist/lib/services/conversation-naming.d.ts.map +1 -1
  240. package/dist/lib/services/conversation-naming.js +93 -12
  241. package/dist/lib/services/conversation-naming.js.map +1 -1
  242. package/dist/lib/services/conversation-tasks-filter.d.ts +15 -0
  243. package/dist/lib/services/conversation-tasks-filter.d.ts.map +1 -0
  244. package/dist/lib/services/conversation-tasks-filter.js +69 -0
  245. package/dist/lib/services/conversation-tasks-filter.js.map +1 -0
  246. package/dist/lib/services/data-cache.service.d.ts +13 -5
  247. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  248. package/dist/lib/services/data-cache.service.js +39 -19
  249. package/dist/lib/services/data-cache.service.js.map +1 -1
  250. package/dist/lib/services/export.service.d.ts +26 -9
  251. package/dist/lib/services/export.service.d.ts.map +1 -1
  252. package/dist/lib/services/export.service.js +61 -18
  253. package/dist/lib/services/export.service.js.map +1 -1
  254. package/dist/lib/services/realtime-audio-recorder.d.ts +115 -79
  255. package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -1
  256. package/dist/lib/services/realtime-audio-recorder.js +273 -186
  257. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  258. package/dist/lib/services/realtime-pairing.d.ts +10 -5
  259. package/dist/lib/services/realtime-pairing.d.ts.map +1 -1
  260. package/dist/lib/services/realtime-pairing.js +15 -6
  261. package/dist/lib/services/realtime-pairing.js.map +1 -1
  262. package/dist/lib/services/realtime-session.service.d.ts +31 -2
  263. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  264. package/dist/lib/services/realtime-session.service.js +34 -2
  265. package/dist/lib/services/realtime-session.service.js.map +1 -1
  266. package/dist/lib/services/recording/libopus-wasm-binary.d.ts +3 -0
  267. package/dist/lib/services/recording/libopus-wasm-binary.d.ts.map +1 -0
  268. package/dist/lib/services/recording/libopus-wasm-binary.js +489 -0
  269. package/dist/lib/services/recording/libopus-wasm-binary.js.map +1 -0
  270. package/dist/lib/services/recording/libopus-worker-source.d.ts +48 -0
  271. package/dist/lib/services/recording/libopus-worker-source.d.ts.map +1 -0
  272. package/dist/lib/services/recording/libopus-worker-source.js +170 -0
  273. package/dist/lib/services/recording/libopus-worker-source.js.map +1 -0
  274. package/dist/lib/services/recording/linear-resampler.d.ts +45 -0
  275. package/dist/lib/services/recording/linear-resampler.d.ts.map +1 -0
  276. package/dist/lib/services/recording/linear-resampler.js +85 -0
  277. package/dist/lib/services/recording/linear-resampler.js.map +1 -0
  278. package/dist/lib/services/recording/opus-packet-encoder.d.ts +50 -0
  279. package/dist/lib/services/recording/opus-packet-encoder.d.ts.map +1 -0
  280. package/dist/lib/services/recording/opus-packet-encoder.js +41 -0
  281. package/dist/lib/services/recording/opus-packet-encoder.js.map +1 -0
  282. package/dist/lib/services/recording/wasm-opus-encoder.d.ts +86 -0
  283. package/dist/lib/services/recording/wasm-opus-encoder.d.ts.map +1 -0
  284. package/dist/lib/services/recording/wasm-opus-encoder.js +232 -0
  285. package/dist/lib/services/recording/wasm-opus-encoder.js.map +1 -0
  286. package/dist/lib/services/recording/webcodecs-opus-encoder.d.ts +39 -0
  287. package/dist/lib/services/recording/webcodecs-opus-encoder.d.ts.map +1 -0
  288. package/dist/lib/services/recording/webcodecs-opus-encoder.js +101 -0
  289. package/dist/lib/services/recording/webcodecs-opus-encoder.js.map +1 -0
  290. package/dist/lib/services/search.service.d.ts +7 -2
  291. package/dist/lib/services/search.service.d.ts.map +1 -1
  292. package/dist/lib/services/search.service.js +16 -20
  293. package/dist/lib/services/search.service.js.map +1 -1
  294. package/dist/lib/utils/conversation-branching.d.ts +4 -0
  295. package/dist/lib/utils/conversation-branching.d.ts.map +1 -0
  296. package/dist/lib/utils/conversation-branching.js +5 -0
  297. package/dist/lib/utils/conversation-branching.js.map +1 -0
  298. package/dist/lib/utils/conversation-forks.d.ts +315 -0
  299. package/dist/lib/utils/conversation-forks.d.ts.map +1 -0
  300. package/dist/lib/utils/conversation-forks.js +456 -0
  301. package/dist/lib/utils/conversation-forks.js.map +1 -0
  302. package/dist/lib/utils/distinct-artifacts.d.ts +9 -3
  303. package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
  304. package/dist/lib/utils/distinct-artifacts.js +24 -5
  305. package/dist/lib/utils/distinct-artifacts.js.map +1 -1
  306. package/dist/public-api.d.ts +23 -1
  307. package/dist/public-api.d.ts.map +1 -1
  308. package/dist/public-api.js +30 -1
  309. package/dist/public-api.js.map +1 -1
  310. package/package.json +37 -33
  311. package/dist/lib/components/thread/thread-panel.component.d.ts +0 -126
  312. package/dist/lib/components/thread/thread-panel.component.d.ts.map +0 -1
  313. package/dist/lib/components/thread/thread-panel.component.js +0 -440
  314. package/dist/lib/components/thread/thread-panel.component.js.map +0 -1
  315. package/dist/lib/services/realtime-pcm-wav.d.ts +0 -79
  316. package/dist/lib/services/realtime-pcm-wav.d.ts.map +0 -1
  317. package/dist/lib/services/realtime-pcm-wav.js +0 -213
  318. package/dist/lib/services/realtime-pcm-wav.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"routines-section.component.js","sourceRoot":"","sources":["../../../../src/lib/components/sidebar/routines-section.component.ts","../../../../src/lib/components/sidebar/routines-section.component.html"],"names":[],"mappings":"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","sourcesContent":["import { CompositeKey } from '@memberjunction/core';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJUserRoutineEntity, UserRoutineEngine } from '@memberjunction/core-entities';\nimport { ConversationOpenedEventArgs, HistoryRecordOpenedEventArgs } from '@memberjunction/ng-user-routines';\n\n/**\n * Compact \"Routines\" entry pinned at the very bottom of the conversations left\n * sidebar: a single header row — mark, \"Routines\", the ACTIVE routine count, a \"+\"\n * (straight into the New Routine editor) and a details chevron. No routine rows —\n * the full command-center slide-in is one click away and owns all detail.\n *\n * Visibility gates (both must pass):\n * 1. `ShowRoutines` — host opt-out input bubbled from the top-level conversations\n * workspace (default true).\n * 2. The current user must have Read permission on 'MJ: User Routines'\n * (EntityInfo user-permission check) — hidden entirely otherwise.\n */\n@Component({\n standalone: false,\n selector: 'mj-conversation-routines-section',\n templateUrl: './routines-section.component.html',\n styleUrls: ['./routines-section.component.css'],\n})\nexport class RoutinesSectionComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private destroy$ = new Subject<void>();\n\n private _showRoutines = true;\n /** Host opt-out (bubbled from the top-level conversations component). Default true. */\n @Input()\n public set ShowRoutines(value: boolean) {\n if (value !== this._showRoutines) {\n this._showRoutines = value;\n if (value && !this.initialized) {\n void this.initialize();\n }\n this.cdr.markForCheck();\n }\n }\n public get ShowRoutines(): boolean {\n return this._showRoutines;\n }\n\n /** True when the current user may read routines (permission gate). */\n public CanRead = false;\n /** Number of Active routines — the header badge. */\n public ActiveCount = 0;\n /** Total routines of any status (for the header tooltip). */\n public TotalCount = 0;\n\n /**\n * A run history row's linked execution record (Agent Run / Prompt Run / Action Log)\n * was clicked. Same shape as the chat area's openEntityRecord — the host (Explorer\n * wrapper or workspace) routes it to navigation; this package never navigates itself.\n */\n @Output() OpenEntityRecord = new EventEmitter<{ entityName: string; compositeKey: CompositeKey }>();\n\n /**\n * @deprecated Use {@link OpenEntityRecord}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (openEntityRecord) keeps working. Must stay AFTER OpenEntityRecord: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() openEntityRecord = this.OpenEntityRecord;\n\n /**\n * The user asked to open a routine's dedicated conversation (the hidden,\n * Application-scoped thread its runs append to). Emits the conversation ID;\n * the host selects it in chat — this component closes the slide-in first.\n */\n @Output() OpenConversation = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link OpenConversation}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (openConversation) keeps working. Must stay AFTER OpenConversation: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() openConversation = this.OpenConversation;\n\n /** Slide-in open state. */\n public SlideInVisible = false;\n /** Routine to open the slide-in on (history view). */\n public SlideInRoutineID: string | null = null;\n /** Whether the slide-in opens straight on the New Routine editor. */\n public SlideInNewRoutine = false;\n\n private initialized = false;\n\n /** Section renders only when the opt-out AND permission gates both pass. */\n public get IsVisible(): boolean {\n return this._showRoutines && this.CanRead;\n }\n\n /** Header tooltip: active/total breakdown. */\n public get HeaderTitle(): string {\n if (this.TotalCount === 0) {\n return 'Routines — none yet, click + to create one';\n }\n return `Routines — ${this.ActiveCount} active of ${this.TotalCount}. Click to open.`;\n }\n\n async ngOnInit(): Promise<void> {\n if (this._showRoutines) {\n await this.initialize();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /** Opens the slide-in on the routines list (header / details click). */\n public OpenRoutines(): void {\n this.SlideInRoutineID = null;\n this.SlideInNewRoutine = false;\n this.SlideInVisible = true;\n this.cdr.markForCheck();\n }\n\n /** Opens the slide-in straight on the New Routine editor (\"+\" affordance). */\n public NewRoutine(event: Event): void {\n event.stopPropagation();\n this.SlideInRoutineID = null;\n this.SlideInNewRoutine = true;\n this.SlideInVisible = true;\n this.cdr.markForCheck();\n }\n\n /** Opens the routine's conversation in the host chat surface (closing the slide-in). */\n public OnConversationOpened(args: ConversationOpenedEventArgs): void {\n this.OnSlideInClosed();\n this.OpenConversation.emit(args.ConversationID);\n }\n\n /** Bridges the slide-in's HistoryRecordOpened to the standard openEntityRecord chain. */\n public OnHistoryRecordOpened(args: HistoryRecordOpenedEventArgs): void {\n this.OpenEntityRecord.emit({ entityName: args.EntityName, compositeKey: CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(args.EntityName), args.RecordID) });\n }\n\n public OnSlideInClosed(): void {\n this.SlideInVisible = false;\n this.SlideInRoutineID = null;\n this.SlideInNewRoutine = false;\n this.cdr.markForCheck();\n }\n\n // ---------------------------------------------------------------\n // Internals\n // ---------------------------------------------------------------\n private async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n const p = this.ProviderToUse;\n\n // Permission gate: hide entirely when the user lacks Read on the entity\n // (or the entity isn't present in this instance's metadata).\n const entityInfo = p.EntityByName('MJ: User Routines');\n const permissions = entityInfo && p.CurrentUser ? entityInfo.GetUserPermisions(p.CurrentUser) : null;\n this.CanRead = permissions?.CanRead === true;\n if (!this.CanRead) {\n this.cdr.markForCheck();\n return;\n }\n\n try {\n const engine = UserRoutineEngine.GetProviderInstance<UserRoutineEngine>(p, UserRoutineEngine) as UserRoutineEngine;\n await engine.Config(false, p.CurrentUser, p);\n engine.Routines$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.rebuildCounts(engine);\n });\n this.rebuildCounts(engine);\n } catch (e) {\n console.error('[RoutinesSection] Failed to load routines:', e);\n this.ActiveCount = 0;\n this.TotalCount = 0;\n }\n this.cdr.markForCheck();\n }\n\n private rebuildCounts(engine: UserRoutineEngine): void {\n const routines = engine.Routines;\n this.TotalCount = routines.length;\n this.ActiveCount = routines.filter((r: MJUserRoutineEntity) => r.Status === 'Active').length;\n this.cdr.markForCheck();\n }\n}\n","@if (IsVisible) {\n <div class=\"crs-section\">\n <button type=\"button\" class=\"crs-header\" [title]=\"HeaderTitle\" (click)=\"OpenRoutines()\">\n <i class=\"fa-solid fa-business-time crs-mark\"></i>\n <span class=\"crs-title\">Routines</span>\n @if (ActiveCount > 0) {\n <span class=\"crs-count\">{{ ActiveCount }}</span>\n }\n <span class=\"crs-spacer\"></span>\n <span class=\"crs-add\" role=\"button\" title=\"New routine\" (click)=\"NewRoutine($event)\">\n <i class=\"fa-solid fa-plus\"></i>\n </span>\n <span class=\"crs-details\" role=\"button\" title=\"Open routines\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </span>\n </button>\n\n <mj-user-routines-slide-in\n [Provider]=\"Provider\"\n [(Visible)]=\"SlideInVisible\"\n [InitialRoutineID]=\"SlideInRoutineID\"\n [StartInNewRoutine]=\"SlideInNewRoutine\"\n (Closed)=\"OnSlideInClosed()\"\n (HistoryRecordOpened)=\"OnHistoryRecordOpened($event)\"\n (ConversationOpened)=\"OnConversationOpened($event)\">\n </mj-user-routines-slide-in>\n </div>\n}\n"]}
1
+ {"version":3,"file":"routines-section.component.js","sourceRoot":"","sources":["../../../../src/lib/components/sidebar/routines-section.component.ts","../../../../src/lib/components/sidebar/routines-section.component.html"],"names":[],"mappings":"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","sourcesContent":["import { CompositeKey } from '@memberjunction/core';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJUserRoutineEntity, UserRoutineEngine } from '@memberjunction/core-entities';\nimport { ConversationOpenedEventArgs, HistoryRecordOpenedEventArgs } from '@memberjunction/ng-user-routines';\n\n/**\n * Compact \"Routines\" entry pinned at the very bottom of the conversations left\n * sidebar: a single header row — mark, \"Routines\", the ACTIVE routine count, a \"+\"\n * (straight into the New Routine editor) and a details chevron. No routine rows —\n * the full command-center slide-in is one click away and owns all detail.\n *\n * Visibility gates (both must pass):\n * 1. `ShowRoutines` — host opt-out input bubbled from the top-level conversations\n * workspace (default true).\n * 2. The current user must have Read permission on 'MJ: User Routines'\n * (EntityInfo user-permission check) — hidden entirely otherwise.\n */\n@Component({\n standalone: false,\n selector: 'mj-conversation-routines-section',\n templateUrl: './routines-section.component.html',\n styleUrls: ['./routines-section.component.css'],\n})\nexport class RoutinesSectionComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private destroy$ = new Subject<void>();\n\n private _showRoutines = true;\n /** Host opt-out (bubbled from the top-level conversations component). Default true. */\n @Input()\n public set ShowRoutines(value: boolean) {\n if (value !== this._showRoutines) {\n this._showRoutines = value;\n if (value && !this.initialized) {\n void this.initialize();\n }\n this.cdr.markForCheck();\n }\n }\n public get ShowRoutines(): boolean {\n return this._showRoutines;\n }\n\n /** True when the current user may read routines (permission gate). */\n public CanRead = false;\n /** Number of Active routines — the header badge. */\n public ActiveCount = 0;\n /** Total routines of any status (for the header tooltip). */\n public TotalCount = 0;\n\n /**\n * A run history row's linked execution record (Agent Run / Prompt Run / Action Log)\n * was clicked. Same shape as the chat area's openEntityRecord — the host (Explorer\n * wrapper or workspace) routes it to navigation; this package never navigates itself.\n */\n @Output() OpenEntityRecord = new EventEmitter<{ entityName: string; compositeKey: CompositeKey }>();\n\n /**\n * @deprecated Use {@link OpenEntityRecord}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (openEntityRecord) keeps working. Must stay AFTER OpenEntityRecord: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() openEntityRecord = this.OpenEntityRecord;\n\n /**\n * The user asked to open a routine's dedicated conversation (the hidden,\n * Application-scoped thread its runs append to). Emits the conversation ID;\n * the host selects it in chat — this component closes the slide-in first.\n */\n @Output() OpenConversation = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link OpenConversation}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (openConversation) keeps working. Must stay AFTER OpenConversation: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() openConversation = this.OpenConversation;\n\n /** Slide-in open state. */\n public SlideInVisible = false;\n /** Routine to open the slide-in on (history view). */\n public SlideInRoutineID: string | null = null;\n /** Whether the slide-in opens straight on the New Routine editor. */\n public SlideInNewRoutine = false;\n\n private initialized = false;\n\n /** Section renders only when the opt-out AND permission gates both pass. */\n public get IsVisible(): boolean {\n return this._showRoutines && this.CanRead;\n }\n\n /** Header tooltip: active/total breakdown. */\n public get HeaderTitle(): string {\n if (this.TotalCount === 0) {\n return 'Routines — none yet, click + to create one';\n }\n return `Routines — ${this.ActiveCount} active of ${this.TotalCount}. Click to open.`;\n }\n\n async ngOnInit(): Promise<void> {\n if (this._showRoutines) {\n await this.initialize();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /** Opens the slide-in on the routines list (header / details click). */\n public OpenRoutines(): void {\n this.SlideInRoutineID = null;\n this.SlideInNewRoutine = false;\n this.SlideInVisible = true;\n this.cdr.markForCheck();\n }\n\n /** Opens the slide-in straight on the New Routine editor (\"+\" affordance). */\n public NewRoutine(event: Event): void {\n event.stopPropagation();\n this.SlideInRoutineID = null;\n this.SlideInNewRoutine = true;\n this.SlideInVisible = true;\n this.cdr.markForCheck();\n }\n\n /** Opens the routine's conversation in the host chat surface (closing the slide-in). */\n public OnConversationOpened(args: ConversationOpenedEventArgs): void {\n this.OnSlideInClosed();\n this.OpenConversation.emit(args.ConversationID);\n }\n\n /** Bridges the slide-in's HistoryRecordOpened to the standard openEntityRecord chain. */\n public OnHistoryRecordOpened(args: HistoryRecordOpenedEventArgs): void {\n this.OpenEntityRecord.emit({ entityName: args.EntityName, compositeKey: CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(args.EntityName), args.RecordID) });\n }\n\n public OnSlideInClosed(): void {\n this.SlideInVisible = false;\n this.SlideInRoutineID = null;\n this.SlideInNewRoutine = false;\n this.cdr.markForCheck();\n }\n\n // ---------------------------------------------------------------\n // Internals\n // ---------------------------------------------------------------\n private async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n const p = this.ProviderToUse;\n\n // Permission gate: hide entirely when the user lacks Read on the entity\n // (or the entity isn't present in this instance's metadata).\n const entityInfo = p.EntityByName('MJ: User Routines');\n const permissions = entityInfo && p.CurrentUser ? entityInfo.GetUserPermisions(p.CurrentUser) : null;\n this.CanRead = permissions?.CanRead === true;\n if (!this.CanRead) {\n this.cdr.markForCheck();\n return;\n }\n\n try {\n const engine = UserRoutineEngine.GetProviderInstance<UserRoutineEngine>(p, UserRoutineEngine) as UserRoutineEngine;\n await engine.Config(false, p.CurrentUser, p);\n engine.Routines$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.rebuildCounts(engine);\n });\n this.rebuildCounts(engine);\n } catch (e) {\n console.error('[RoutinesSection] Failed to load routines:', e);\n this.ActiveCount = 0;\n this.TotalCount = 0;\n }\n this.cdr.markForCheck();\n }\n\n private rebuildCounts(engine: UserRoutineEngine): void {\n const routines = engine.Routines.filter((r: MJUserRoutineEntity) => r.RoutineType !== 'AgentWake');\n this.TotalCount = routines.length;\n this.ActiveCount = routines.filter((r: MJUserRoutineEntity) => r.Status === 'Active').length;\n this.cdr.markForCheck();\n }\n}\n","@if (IsVisible) {\n <div class=\"crs-section\">\n <button type=\"button\" class=\"crs-header\" [title]=\"HeaderTitle\" (click)=\"OpenRoutines()\">\n <i class=\"fa-solid fa-business-time crs-mark\"></i>\n <span class=\"crs-title\">Routines</span>\n @if (ActiveCount > 0) {\n <span class=\"crs-count\">{{ ActiveCount }}</span>\n }\n <span class=\"crs-spacer\"></span>\n <span class=\"crs-add\" role=\"button\" title=\"New routine\" (click)=\"NewRoutine($event)\">\n <i class=\"fa-solid fa-plus\"></i>\n </span>\n <span class=\"crs-details\" role=\"button\" title=\"Open routines\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </span>\n </button>\n\n <mj-user-routines-slide-in\n [Provider]=\"Provider\"\n [(Visible)]=\"SlideInVisible\"\n [InitialRoutineID]=\"SlideInRoutineID\"\n [StartInNewRoutine]=\"SlideInNewRoutine\"\n (Closed)=\"OnSlideInClosed()\"\n (HistoryRecordOpened)=\"OnHistoryRecordOpened($event)\"\n (ConversationOpened)=\"OnConversationOpened($event)\">\n </mj-user-routines-slide-in>\n </div>\n}\n"]}
@@ -1,14 +1,90 @@
1
- import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { EventEmitter, OnInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
2
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
3
3
  import { UserInfo } from '@memberjunction/core';
4
4
  import { MJTaskEntity, MJTaskDependencyEntity } from '@memberjunction/core-entities';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
- * Full-page tasks view with task list and Gantt chart
8
- * Generic component that displays tasks based on provided filter
9
- * Supports drilling into individual tasks to see sub-tasks
7
+ * Normalized status filter categories in the AI Agent Workflows & Tasks Command Center.
10
8
  */
11
- export declare class TasksFullViewComponent extends BaseAngularComponent implements OnInit, OnChanges {
9
+ export type WorkflowStatusFilter = 'all' | 'active' | 'completed' | 'failed';
10
+ /**
11
+ * Primary display modes for the AI Agent Workflows & Tasks Command Center.
12
+ */
13
+ export type WorkflowCommandCenterViewMode = 'workflows' | 'timeline';
14
+ /**
15
+ * Enriched representation of an individual step within a workflow group,
16
+ * including timing offsets for the second-resolution execution waterfall.
17
+ */
18
+ export interface EnrichedWorkflowStep {
19
+ Task: MJTaskEntity;
20
+ StepNumber: number;
21
+ AgentName: string | null;
22
+ AgentID: string | null;
23
+ AgentRunID: string | null;
24
+ Instructions: string;
25
+ Output: string | null;
26
+ IsErrorOutput: boolean;
27
+ OutputPreview: string;
28
+ DurationText: string;
29
+ DurationMs: number;
30
+ /** Offset percentage (0-92) from the workflow's start timestamp */
31
+ TimelineOffsetPercent: number;
32
+ /** Bar width percentage (8-100) relative to the workflow's total duration */
33
+ TimelineWidthPercent: number;
34
+ StartOffsetLabel: string;
35
+ DependsOnNames: string[];
36
+ DependsOnTaskIds: string[];
37
+ DependsOnConditions: string[];
38
+ }
39
+ /**
40
+ * Hierarchy-aware workflow group combining a parent orchestration container task
41
+ * (or standalone task) with its ordered specialist agent execution steps.
42
+ */
43
+ export interface WorkflowGroupViewModel {
44
+ RootTaskId: string;
45
+ ParentTask: MJTaskEntity;
46
+ Title: string;
47
+ SummaryInstruction: string;
48
+ Status: MJTaskEntity['Status'];
49
+ NormalizedCategory: 'active' | 'completed' | 'failed';
50
+ PercentComplete: number;
51
+ TotalSteps: number;
52
+ CompletedSteps: number;
53
+ SkippedSteps: number;
54
+ ActiveSteps: number;
55
+ FailedSteps: number;
56
+ Steps: EnrichedWorkflowStep[];
57
+ AgentPipeline: Array<{
58
+ id: string;
59
+ name: string;
60
+ }>;
61
+ StartedAt: Date | null;
62
+ CompletedAt: Date | null;
63
+ DurationText: string;
64
+ DurationMs: number;
65
+ RelativeTimeText: string;
66
+ ConversationDetailID: string | null;
67
+ IsMultiStep: boolean;
68
+ }
69
+ /**
70
+ * Summary KPI metrics displayed in the top command-center ribbon.
71
+ */
72
+ export interface WorkflowCommandCenterKPIs {
73
+ TotalWorkflows: number;
74
+ TotalSteps: number;
75
+ ActiveWorkflows: number;
76
+ CompletedSteps: number;
77
+ SuccessRatePercent: number;
78
+ AvgExecutionTimeText: string;
79
+ }
80
+ /**
81
+ * AI Agent Workflows & Tasks Command Center (`mj-tasks-full-view`).
82
+ *
83
+ * Provides a hierarchy-aware, real-time command center for monitoring and inspecting
84
+ * multi-agent task graphs and durable background agent executions launched from conversations.
85
+ */
86
+ export declare class TasksFullViewComponent extends BaseAngularComponent implements OnInit, OnChanges, OnDestroy {
87
+ private cdr;
12
88
  EnvironmentId: string;
13
89
  /** @deprecated Use {@link EnvironmentId}. */
14
90
  set environmentId(value: string);
@@ -24,6 +100,11 @@ export declare class TasksFullViewComponent extends BaseAngularComponent impleme
24
100
  set baseFilter(value: string);
25
101
  /** @deprecated Use {@link BaseFilter}. */
26
102
  get baseFilter(): string;
103
+ /**
104
+ * Builds the task filter each time the view loads or refreshes, so the list includes tasks
105
+ * created since the last load. Replaces {@link BaseFilter} when set.
106
+ */
107
+ BaseFilterResolver: (() => Promise<string>) | null;
27
108
  ActiveTaskId?: string;
28
109
  /** @deprecated Use {@link ActiveTaskId}. */
29
110
  set activeTaskId(value: string | undefined);
@@ -33,25 +114,13 @@ export declare class TasksFullViewComponent extends BaseAngularComponent impleme
33
114
  entityName: string;
34
115
  recordId: string;
35
116
  }>;
36
- /**
37
- * @deprecated Use {@link OpenEntityRecord}.
38
- *
39
- * The same emitter under the old binding name, so a template still binding
40
- * (openEntityRecord) keeps working. Must stay AFTER OpenEntityRecord: class fields
41
- * initialise in order, and the other way round this captures undefined.
42
- */
117
+ /** @deprecated Use {@link OpenEntityRecord}. */
43
118
  openEntityRecord: EventEmitter<{
44
119
  entityName: string;
45
120
  recordId: string;
46
121
  }>;
47
122
  TaskSelected: EventEmitter<string | null>;
48
- /**
49
- * @deprecated Use {@link TaskSelected}.
50
- *
51
- * The same emitter under the old binding name, so a template still binding
52
- * (taskSelected) keeps working. Must stay AFTER TaskSelected: class fields
53
- * initialise in order, and the other way round this captures undefined.
54
- */
123
+ /** @deprecated Use {@link TaskSelected}. */
55
124
  taskSelected: EventEmitter<string | null>;
56
125
  AllTasks: MJTaskEntity[];
57
126
  /** @deprecated Use {@link AllTasks}. */
@@ -95,31 +164,70 @@ export declare class TasksFullViewComponent extends BaseAngularComponent impleme
95
164
  set showDetailAnimation(value: boolean);
96
165
  isLoading: boolean;
97
166
  private aiEngineConfigured;
167
+ CommandViewMode: WorkflowCommandCenterViewMode;
168
+ StatusFilter: WorkflowStatusFilter;
169
+ SearchQuery: string;
170
+ SelectedAgentFilter: string;
171
+ WorkflowGroups: WorkflowGroupViewModel[];
172
+ FilteredWorkflowGroups: WorkflowGroupViewModel[];
173
+ AvailableAgents: Array<{
174
+ id: string;
175
+ name: string;
176
+ count: number;
177
+ }>;
178
+ InspectedGroup: WorkflowGroupViewModel | null;
179
+ InspectedStep: EnrichedWorkflowStep | null;
180
+ CopiedOutput: boolean;
181
+ Kpis: WorkflowCommandCenterKPIs;
182
+ private allHierarchyTasks;
183
+ private streamSubscription;
184
+ private livePollTimer;
98
185
  ngOnInit(): void;
99
186
  ngOnChanges(changes: SimpleChanges): void;
187
+ ngOnDestroy(): void;
188
+ private setupLiveTaskGraphSubscription;
189
+ private updateLivePollingState;
190
+ private stopLivePolling;
100
191
  LoadTasks(): Promise<void>;
101
192
  /** @deprecated Use {@link LoadTasks}. */
102
193
  loadTasks(): Promise<void>;
194
+ /**
195
+ * Ensures child step tasks and dependencies are loaded even when the primary filter
196
+ * scopes to top-level (`ParentID IS NULL`) tasks.
197
+ */
198
+ private loadChildTasksAndDependencies;
199
+ /**
200
+ * Builds the hierarchy-aware `WorkflowGroups`, KPI metrics, and agent filter options.
201
+ */
202
+ private rebuildWorkflowCommandCenter;
203
+ private computeCommandCenterKPIs;
204
+ ApplyWorkflowFilters(): void;
205
+ /** @deprecated Use {@link ApplyWorkflowFilters}. */
206
+ applyWorkflowFilters(): void;
207
+ SetCommandViewMode(mode: WorkflowCommandCenterViewMode): void;
208
+ SetStatusFilter(filter: WorkflowStatusFilter): void;
209
+ SetAgentFilter(agentId: string): void;
210
+ OnFilterCriteriaChanged(): void;
211
+ ClearSearch(): void;
212
+ ResetAllFilters(): void;
213
+ CountByCategory(category: 'active' | 'completed' | 'failed'): number;
214
+ GetStepCategory(status: MJTaskEntity['Status']): 'active' | 'completed' | 'failed' | 'skipped';
215
+ IsGroupInspected(group: WorkflowGroupViewModel): boolean;
216
+ IsStepInspected(task: MJTaskEntity): boolean;
217
+ InspectWorkflowGroup(group: WorkflowGroupViewModel, step?: EnrichedWorkflowStep, event?: MouseEvent): void;
218
+ SelectInspectorStep(step: EnrichedWorkflowStep): void;
219
+ private selectTaskById;
103
220
  OnTaskClick(task: MJTaskEntity): Promise<void>;
104
221
  /** @deprecated Use {@link OnTaskClick}. */
105
222
  onTaskClick(task: MJTaskEntity): Promise<void>;
106
- private loadTaskHierarchy;
107
- private loadTaskDependencies;
108
- /**
109
- * Builds the TaskID -> AgentRunID map from each task's own AgentRunID column.
110
- *
111
- * Previously this joined tasks to runs through the shared ConversationDetailID, which meant
112
- * every sibling task in a graph resolved to the SAME agent run — the run link in the Gantt
113
- * and detail panel was wrong for all but one task. Each task now records the specific run
114
- * that executed it (Task.AgentRunID), so the mapping is direct and needs no query at all.
115
- */
116
- private loadAgentRuns;
117
223
  BackToTaskList(): void;
118
224
  /** @deprecated Use {@link BackToTaskList}. */
119
225
  backToTaskList(): void;
120
226
  OnSubTaskClick(subTask: MJTaskEntity): void;
121
227
  /** @deprecated Use {@link OnSubTaskClick}. */
122
228
  onSubTaskClick(subTask: MJTaskEntity): void;
229
+ OnAgentChipClicked(event: MouseEvent, agentId: string): void;
230
+ OnOpenAgentRunClicked(event: MouseEvent, agentRunId: string): void;
123
231
  OnOpenEntityRecord(event: {
124
232
  entityName: string;
125
233
  recordId: string;
@@ -129,11 +237,24 @@ export declare class TasksFullViewComponent extends BaseAngularComponent impleme
129
237
  entityName: string;
130
238
  recordId: string;
131
239
  }): void;
240
+ CopyStepOutput(output: string): void;
241
+ private loadAgentRuns;
242
+ private resolveAgentName;
243
+ private splitTaskDescription;
244
+ /**
245
+ * Strips upstream keys inherited unchanged from earlier workflow steps and returns a formatted
246
+ * human-readable or JSON excerpt for the step inspector drawer.
247
+ */
248
+ private resolveDeltaStepOutput;
249
+ private toEpochMs;
250
+ private formatDurationMs;
251
+ private formatRelativeTime;
252
+ FormatDateTime(date: Date | null): string;
132
253
  getDescription(): string;
133
254
  GetTaskDetailDescription(): string;
134
255
  /** @deprecated Use {@link GetTaskDetailDescription}. */
135
256
  getTaskDetailDescription(): string;
136
257
  static ɵfac: i0.ɵɵFactoryDeclaration<TasksFullViewComponent, never>;
137
- static ɵcmp: i0.ɵɵComponentDeclaration<TasksFullViewComponent, "mj-tasks-full-view", never, { "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "BaseFilter": { "alias": "BaseFilter"; "required": false; }; "baseFilter": { "alias": "baseFilter"; "required": false; }; "ActiveTaskId": { "alias": "ActiveTaskId"; "required": false; }; "activeTaskId": { "alias": "activeTaskId"; "required": false; }; }, { "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "TaskSelected": "TaskSelected"; "taskSelected": "taskSelected"; }, never, never, true, never>;
258
+ static ɵcmp: i0.ɵɵComponentDeclaration<TasksFullViewComponent, "mj-tasks-full-view", never, { "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "BaseFilter": { "alias": "BaseFilter"; "required": false; }; "baseFilter": { "alias": "baseFilter"; "required": false; }; "BaseFilterResolver": { "alias": "BaseFilterResolver"; "required": false; }; "ActiveTaskId": { "alias": "ActiveTaskId"; "required": false; }; "activeTaskId": { "alias": "activeTaskId"; "required": false; }; }, { "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "TaskSelected": "TaskSelected"; "taskSelected": "taskSelected"; }, never, never, true, never>;
138
259
  }
139
260
  //# sourceMappingURL=tasks-full-view.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks-full-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/task/tasks-full-view.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks-full-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/task/tasks-full-view.component.ts"],"names":[],"mappings":"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"}