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

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 (279) hide show
  1. package/README.md +4 -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-chat-area.component.d.ts +632 -55
  10. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  11. package/dist/lib/components/conversation/conversation-chat-area.component.js +2748 -624
  12. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  13. package/dist/lib/components/conversation/forks-popover.component.d.ts +37 -0
  14. package/dist/lib/components/conversation/forks-popover.component.d.ts.map +1 -0
  15. package/dist/lib/components/conversation/forks-popover.component.js +164 -0
  16. package/dist/lib/components/conversation/forks-popover.component.js.map +1 -0
  17. package/dist/lib/components/export/export-modal.component.d.ts +7 -2
  18. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  19. package/dist/lib/components/export/export-modal.component.js +16 -3
  20. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  21. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  22. package/dist/lib/components/message/conversation-message-rating.component.js +11 -9
  23. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  24. package/dist/lib/components/message/message-input.component.d.ts +121 -11
  25. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  26. package/dist/lib/components/message/message-input.component.js +307 -106
  27. package/dist/lib/components/message/message-input.component.js.map +1 -1
  28. package/dist/lib/components/message/message-item.component.d.ts +178 -5
  29. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  30. package/dist/lib/components/message/message-item.component.js +919 -306
  31. package/dist/lib/components/message/message-item.component.js.map +1 -1
  32. package/dist/lib/components/message/message-list.component.d.ts +92 -21
  33. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  34. package/dist/lib/components/message/message-list.component.js +337 -52
  35. package/dist/lib/components/message/message-list.component.js.map +1 -1
  36. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.d.ts +34 -0
  37. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.d.ts.map +1 -0
  38. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.js +75 -0
  39. package/dist/lib/components/realtime/avatar/realtime-avatar-channel.js.map +1 -0
  40. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.d.ts +80 -0
  41. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.d.ts.map +1 -0
  42. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.js +202 -0
  43. package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.js.map +1 -0
  44. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.d.ts +45 -0
  45. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.d.ts.map +1 -0
  46. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.js +123 -0
  47. package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.js.map +1 -0
  48. package/dist/lib/components/realtime/capture/realtime-capture-channel.d.ts +90 -0
  49. package/dist/lib/components/realtime/capture/realtime-capture-channel.d.ts.map +1 -0
  50. package/dist/lib/components/realtime/capture/realtime-capture-channel.js +223 -0
  51. package/dist/lib/components/realtime/capture/realtime-capture-channel.js.map +1 -0
  52. package/dist/lib/components/realtime/capture/realtime-capture-model.d.ts +98 -0
  53. package/dist/lib/components/realtime/capture/realtime-capture-model.d.ts.map +1 -0
  54. package/dist/lib/components/realtime/capture/realtime-capture-model.js +161 -0
  55. package/dist/lib/components/realtime/capture/realtime-capture-model.js.map +1 -0
  56. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.d.ts +48 -0
  57. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.d.ts.map +1 -0
  58. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.js +205 -0
  59. package/dist/lib/components/realtime/capture/realtime-capture-surface.component.js.map +1 -0
  60. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +19 -2
  61. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
  62. package/dist/lib/components/realtime/channels/client-context-channel.js +83 -9
  63. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
  64. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +30 -9
  65. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
  66. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +78 -14
  67. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
  68. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.d.ts +71 -0
  69. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.d.ts.map +1 -0
  70. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.js +259 -0
  71. package/dist/lib/components/realtime/identity-verification/identity-verification-channel.js.map +1 -0
  72. package/dist/lib/components/realtime/identity-verification/identity-verification-model.d.ts +129 -0
  73. package/dist/lib/components/realtime/identity-verification/identity-verification-model.d.ts.map +1 -0
  74. package/dist/lib/components/realtime/identity-verification/identity-verification-model.js +373 -0
  75. package/dist/lib/components/realtime/identity-verification/identity-verification-model.js.map +1 -0
  76. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.d.ts +77 -0
  77. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.d.ts.map +1 -0
  78. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.js +420 -0
  79. package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.js.map +1 -0
  80. package/dist/lib/components/realtime/interactive-component/component-contract.d.ts +83 -0
  81. package/dist/lib/components/realtime/interactive-component/component-contract.d.ts.map +1 -0
  82. package/dist/lib/components/realtime/interactive-component/component-contract.js +292 -0
  83. package/dist/lib/components/realtime/interactive-component/component-contract.js.map +1 -0
  84. package/dist/lib/components/realtime/interactive-component/component-data-state.d.ts +39 -0
  85. package/dist/lib/components/realtime/interactive-component/component-data-state.d.ts.map +1 -0
  86. package/dist/lib/components/realtime/interactive-component/component-data-state.js +152 -0
  87. package/dist/lib/components/realtime/interactive-component/component-data-state.js.map +1 -0
  88. package/dist/lib/components/realtime/interactive-component/component-instance-engine.d.ts +109 -0
  89. package/dist/lib/components/realtime/interactive-component/component-instance-engine.d.ts.map +1 -0
  90. package/dist/lib/components/realtime/interactive-component/component-instance-engine.js +146 -0
  91. package/dist/lib/components/realtime/interactive-component/component-instance-engine.js.map +1 -0
  92. package/dist/lib/components/realtime/interactive-component/component-spec-content.d.ts +19 -0
  93. package/dist/lib/components/realtime/interactive-component/component-spec-content.d.ts.map +1 -0
  94. package/dist/lib/components/realtime/interactive-component/component-spec-content.js +39 -0
  95. package/dist/lib/components/realtime/interactive-component/component-spec-content.js.map +1 -0
  96. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.d.ts +183 -0
  97. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.d.ts.map +1 -0
  98. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.js +761 -0
  99. package/dist/lib/components/realtime/interactive-component/interactive-component-channel.js.map +1 -0
  100. package/dist/lib/components/realtime/interactive-component/interactive-component-config.d.ts +25 -0
  101. package/dist/lib/components/realtime/interactive-component/interactive-component-config.d.ts.map +1 -0
  102. package/dist/lib/components/realtime/interactive-component/interactive-component-config.js +57 -0
  103. package/dist/lib/components/realtime/interactive-component/interactive-component-config.js.map +1 -0
  104. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.d.ts +40 -0
  105. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.d.ts.map +1 -0
  106. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.js +97 -0
  107. package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.js.map +1 -0
  108. package/dist/lib/components/realtime/interactive-component/interactive-component-types.d.ts +144 -0
  109. package/dist/lib/components/realtime/interactive-component/interactive-component-types.d.ts.map +1 -0
  110. package/dist/lib/components/realtime/interactive-component/interactive-component-types.js +57 -0
  111. package/dist/lib/components/realtime/interactive-component/interactive-component-types.js.map +1 -0
  112. package/dist/lib/components/realtime/interactive-component/react-component-handle.d.ts +36 -0
  113. package/dist/lib/components/realtime/interactive-component/react-component-handle.d.ts.map +1 -0
  114. package/dist/lib/components/realtime/interactive-component/react-component-handle.js +55 -0
  115. package/dist/lib/components/realtime/interactive-component/react-component-handle.js.map +1 -0
  116. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.d.ts +55 -0
  117. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.d.ts.map +1 -0
  118. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.js +210 -0
  119. package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.js.map +1 -0
  120. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.d.ts +32 -0
  121. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.d.ts.map +1 -0
  122. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js +90 -0
  123. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js.map +1 -0
  124. package/dist/lib/components/realtime/media/media-channel.d.ts +7 -0
  125. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
  126. package/dist/lib/components/realtime/media/media-channel.js +28 -1
  127. package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
  128. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +8 -1
  129. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  130. package/dist/lib/components/realtime/realtime-agent-banner.component.js +89 -71
  131. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  132. package/dist/lib/components/realtime/realtime-agent-orb.component.d.ts +21 -0
  133. package/dist/lib/components/realtime/realtime-agent-orb.component.d.ts.map +1 -0
  134. package/dist/lib/components/realtime/realtime-agent-orb.component.js +49 -0
  135. package/dist/lib/components/realtime/realtime-agent-orb.component.js.map +1 -0
  136. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +44 -11
  137. package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
  138. package/dist/lib/components/realtime/realtime-agent-picker.component.js +162 -50
  139. package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
  140. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +8 -2
  141. package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
  142. package/dist/lib/components/realtime/realtime-audio-visuals.js +14 -18
  143. package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
  144. package/dist/lib/components/realtime/realtime-composer.component.d.ts +42 -2
  145. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  146. package/dist/lib/components/realtime/realtime-composer.component.js +137 -102
  147. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  148. package/dist/lib/components/realtime/realtime-perception-chip.component.d.ts +71 -0
  149. package/dist/lib/components/realtime/realtime-perception-chip.component.d.ts.map +1 -0
  150. package/dist/lib/components/realtime/realtime-perception-chip.component.js +221 -0
  151. package/dist/lib/components/realtime/realtime-perception-chip.component.js.map +1 -0
  152. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +264 -22
  153. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  154. package/dist/lib/components/realtime/realtime-session-overlay.component.js +851 -135
  155. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  156. package/dist/lib/components/realtime/realtime-surface-placement-prefs.d.ts +14 -0
  157. package/dist/lib/components/realtime/realtime-surface-placement-prefs.d.ts.map +1 -0
  158. package/dist/lib/components/realtime/realtime-surface-placement-prefs.js +14 -0
  159. package/dist/lib/components/realtime/realtime-surface-placement-prefs.js.map +1 -0
  160. package/dist/lib/components/realtime/realtime-surface-stage.model.d.ts +74 -0
  161. package/dist/lib/components/realtime/realtime-surface-stage.model.d.ts.map +1 -0
  162. package/dist/lib/components/realtime/realtime-surface-stage.model.js +171 -0
  163. package/dist/lib/components/realtime/realtime-surface-stage.model.js.map +1 -0
  164. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +71 -13
  165. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  166. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +232 -73
  167. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  168. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +5 -0
  169. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  170. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +8 -0
  171. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  172. package/dist/lib/components/realtime/realtime-ui-config.d.ts +12 -2
  173. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  174. package/dist/lib/components/realtime/realtime-ui-config.js +5 -1
  175. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  176. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +10 -1
  177. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  178. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +42 -2
  179. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  180. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts +20 -3
  181. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts.map +1 -1
  182. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js +44 -10
  183. package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js.map +1 -1
  184. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +28 -44
  185. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  186. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +76 -162
  187. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  188. package/dist/lib/components/search/search-panel.component.d.ts +2 -0
  189. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  190. package/dist/lib/components/search/search-panel.component.js +25 -12
  191. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  192. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +22 -31
  193. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  194. package/dist/lib/components/workspace/conversation-workspace.component.js +50 -63
  195. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  196. package/dist/lib/conversations.module.d.ts +30 -29
  197. package/dist/lib/conversations.module.d.ts.map +1 -1
  198. package/dist/lib/conversations.module.js +27 -5
  199. package/dist/lib/conversations.module.js.map +1 -1
  200. package/dist/lib/events/chat-events.d.ts +25 -0
  201. package/dist/lib/events/chat-events.d.ts.map +1 -1
  202. package/dist/lib/events/chat-events.js +36 -0
  203. package/dist/lib/events/chat-events.js.map +1 -1
  204. package/dist/lib/models/agent-turn.model.d.ts +5 -0
  205. package/dist/lib/models/agent-turn.model.d.ts.map +1 -1
  206. package/dist/lib/models/agent-turn.model.js.map +1 -1
  207. package/dist/lib/services/agent-state.service.d.ts +34 -8
  208. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  209. package/dist/lib/services/agent-state.service.js +82 -29
  210. package/dist/lib/services/agent-state.service.js.map +1 -1
  211. package/dist/lib/services/artifact-state.service.d.ts +0 -9
  212. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  213. package/dist/lib/services/artifact-state.service.js +1 -32
  214. package/dist/lib/services/artifact-state.service.js.map +1 -1
  215. package/dist/lib/services/browser-realtime-media-host.d.ts +12 -0
  216. package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -1
  217. package/dist/lib/services/browser-realtime-media-host.js +19 -0
  218. package/dist/lib/services/browser-realtime-media-host.js.map +1 -1
  219. package/dist/lib/services/browser-recording-unload-guard.d.ts +30 -0
  220. package/dist/lib/services/browser-recording-unload-guard.d.ts.map +1 -0
  221. package/dist/lib/services/browser-recording-unload-guard.js +43 -0
  222. package/dist/lib/services/browser-recording-unload-guard.js.map +1 -0
  223. package/dist/lib/services/conversation-agent.service.d.ts +35 -11
  224. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  225. package/dist/lib/services/conversation-agent.service.js +65 -20
  226. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  227. package/dist/lib/services/conversation-detail-window.store.d.ts +22 -4
  228. package/dist/lib/services/conversation-detail-window.store.d.ts.map +1 -1
  229. package/dist/lib/services/conversation-detail-window.store.js +50 -9
  230. package/dist/lib/services/conversation-detail-window.store.js.map +1 -1
  231. package/dist/lib/services/conversation-naming.d.ts +72 -22
  232. package/dist/lib/services/conversation-naming.d.ts.map +1 -1
  233. package/dist/lib/services/conversation-naming.js +84 -10
  234. package/dist/lib/services/conversation-naming.js.map +1 -1
  235. package/dist/lib/services/data-cache.service.d.ts +13 -5
  236. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  237. package/dist/lib/services/data-cache.service.js +39 -19
  238. package/dist/lib/services/data-cache.service.js.map +1 -1
  239. package/dist/lib/services/export.service.d.ts +26 -9
  240. package/dist/lib/services/export.service.d.ts.map +1 -1
  241. package/dist/lib/services/export.service.js +61 -18
  242. package/dist/lib/services/export.service.js.map +1 -1
  243. package/dist/lib/services/realtime-audio-recorder.d.ts +33 -5
  244. package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -1
  245. package/dist/lib/services/realtime-audio-recorder.js +71 -11
  246. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  247. package/dist/lib/services/realtime-pairing.d.ts +10 -5
  248. package/dist/lib/services/realtime-pairing.d.ts.map +1 -1
  249. package/dist/lib/services/realtime-pairing.js +15 -6
  250. package/dist/lib/services/realtime-pairing.js.map +1 -1
  251. package/dist/lib/services/realtime-session.service.d.ts +3 -2
  252. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  253. package/dist/lib/services/realtime-session.service.js +7 -2
  254. package/dist/lib/services/realtime-session.service.js.map +1 -1
  255. package/dist/lib/services/search.service.d.ts +7 -2
  256. package/dist/lib/services/search.service.d.ts.map +1 -1
  257. package/dist/lib/services/search.service.js +13 -4
  258. package/dist/lib/services/search.service.js.map +1 -1
  259. package/dist/lib/util/frame-zone.d.ts +10 -0
  260. package/dist/lib/util/frame-zone.d.ts.map +1 -0
  261. package/dist/lib/util/frame-zone.js +10 -0
  262. package/dist/lib/util/frame-zone.js.map +1 -0
  263. package/dist/lib/utils/conversation-branching.d.ts +4 -0
  264. package/dist/lib/utils/conversation-branching.d.ts.map +1 -0
  265. package/dist/lib/utils/conversation-branching.js +5 -0
  266. package/dist/lib/utils/conversation-branching.js.map +1 -0
  267. package/dist/lib/utils/conversation-forks.d.ts +315 -0
  268. package/dist/lib/utils/conversation-forks.d.ts.map +1 -0
  269. package/dist/lib/utils/conversation-forks.js +456 -0
  270. package/dist/lib/utils/conversation-forks.js.map +1 -0
  271. package/dist/public-api.d.ts +23 -1
  272. package/dist/public-api.d.ts.map +1 -1
  273. package/dist/public-api.js +30 -1
  274. package/dist/public-api.js.map +1 -1
  275. package/package.json +37 -32
  276. package/dist/lib/components/thread/thread-panel.component.d.ts +0 -126
  277. package/dist/lib/components/thread/thread-panel.component.d.ts.map +0 -1
  278. package/dist/lib/components/thread/thread-panel.component.js +0 -440
  279. package/dist/lib/components/thread/thread-panel.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ai-composer.component.js","sourceRoot":"","sources":["../../../../src/lib/components/composer/ai-composer.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IMetadataProvider, UserInfo } from '@memberjunction/core';\nimport type { MentionPerson } from '@memberjunction/conversations-runtime';\nimport { MentionSuggestion,\n ComposerTriggerProvider,\n MentionEditorComponent,\n MessageInputBoxComponent,\n PendingAttachment,\n BeforeSkillsOpenedEventArgs\n} from '@memberjunction/ng-composer';\nimport { AgentMentionProvider } from '../../composer-plugins/agent-mention.provider';\nimport { RecordMentionProvider } from '../../composer-plugins/record-mention.provider';\nimport { SkillCommandProvider } from '../../composer-plugins/skill-command.provider';\n\n/**\n * AI-aware composer: wraps the generic `<mj-message-input-box>` (from\n * `@memberjunction/ng-composer`, which ships zero AI knowledge) and builds the AI\n * trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and\n * '/' skill commands — while proxying the input box's full surface (inputs, outputs,\n * and public methods).\n *\n * The familiar granular flags live HERE now:\n * - `EnableAgentMentions` (default true) — the '@' trigger\n * - `EnableEntityMentions` (default true) — the '#' trigger\n * - `EnableSkillCommands` (default true) — the '/' trigger\n * plus the pass-through `enableMentions` master switch.\n *\n * The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the\n * list; it deliberately does not proxy `TriggerProviders` / `ExcludedTriggerKeys` — use\n * the raw `<mj-message-input-box>` when you need custom providers or discovery mode).\n */\n@Component({\n standalone: false,\n selector: 'mj-ai-composer',\n template: `\n <mj-message-input-box\n #inputBox\n [Placeholder]=\"placeholder\"\n [Disabled]=\"disabled\"\n [Value]=\"value\"\n [ShowCharacterCount]=\"showCharacterCount\"\n [EnableMentions]=\"enableMentions\"\n [TriggerProviders]=\"ActiveTriggerProviders\"\n [Provider]=\"Provider\"\n [CurrentUser]=\"currentUser\"\n [Rows]=\"rows\"\n [EnableAttachments]=\"enableAttachments\"\n [MaxAttachments]=\"maxAttachments\"\n [MaxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [AcceptedFileTypes]=\"acceptedFileTypes\"\n [EnableRealtime]=\"enableRealtime\"\n [VoiceActive]=\"voiceActive\"\n [CanStartRealtime]=\"canStartRealtime\"\n [EnablePlanMode]=\"enablePlanMode\"\n [EnableSkills]=\"EnableSkillCommands\"\n [PlanModeActive]=\"planModeActive\"\n (TextSubmitted)=\"textSubmitted.emit($event)\"\n (Blurred)=\"blurred.emit()\"\n (ValueChange)=\"onInnerValueChange($event)\"\n (AttachmentsChanged)=\"attachmentsChanged.emit($event)\"\n (AttachmentError)=\"attachmentError.emit($event)\"\n (AttachmentClicked)=\"attachmentClicked.emit($event)\"\n (VoiceRequested)=\"voiceRequested.emit()\"\n (VoiceOptionsRequested)=\"voiceOptionsRequested.emit()\"\n (PlanModeToggle)=\"planModeToggle.emit()\"\n (BeforeSkillsOpened)=\"beforeSkillsOpened.emit($event)\"\n (AfterSkillsOpened)=\"afterSkillsOpened.emit()\">\n </mj-message-input-box>\n `\n})\nexport class AiComposerComponent {\n @ViewChild('inputBox') InputBox?: MessageInputBoxComponent;\n\n /** @deprecated Use {@link InputBox}. */\n get inputBox(): MessageInputBoxComponent | undefined {\n return this.InputBox;\n }\n /** @deprecated Use {@link InputBox}. */\n set inputBox(value: MessageInputBoxComponent | undefined) {\n this.InputBox = value;\n }\n\n // ── AI convenience flags (the wrapper's reason to exist) ─────────────────────────\n private _enableAgentMentions: boolean = true;\n private _enableEntityMentions: boolean = true;\n private _enableSkillCommands: boolean = true;\n private _activeTriggerProviders: ComposerTriggerProvider[] = [];\n\n // One instance per plugin per composer — all instances share the singleton\n // MentionAutocompleteService engine, so there is no duplicate cache warm-up.\n private readonly agentMentionProvider = new AgentMentionProvider();\n private readonly recordMentionProvider = new RecordMentionProvider();\n private readonly skillCommandProvider = new SkillCommandProvider();\n\n /**\n * The agent the message is expected to go to, when the host knows it (`mj-message-input` binds an\n * explicit `@agent` chip in the draft, else its resolved continuity/pinned/default agent). Narrows\n * the '/' skill picker to the skills that agent accepts (`AcceptsSkills` + `MJ: AI Agent Skills`\n * grants). Null = unknown, no narrowing — the server's RequestedSkills guard is the backstop.\n */\n @Input()\n set TargetAgentId(value: string | null) {\n this.skillCommandProvider.TargetAgentId = value ?? null;\n }\n get TargetAgentId(): string | null {\n return this.skillCommandProvider.TargetAgentId;\n }\n\n private _allowedAgentIDs: readonly string[] | null = null;\n private _mentionPeople: readonly MentionPerson[] | null = null;\n\n /**\n * The agents the '@' list may offer. Null (the default) offers every agent the user can run;\n * an empty list offers none. Applies to this composer only.\n */\n @Input()\n set AllowedAgentIDs(value: readonly string[] | null) {\n this._allowedAgentIDs = value ?? null;\n this.applyMentionScope();\n }\n get AllowedAgentIDs(): readonly string[] | null {\n return this._allowedAgentIDs;\n }\n\n /**\n * The people the '@' list offers, such as a chat's members. Null (the default) offers the\n * current user, as before. Applies to this composer only.\n */\n @Input()\n set MentionPeople(value: readonly MentionPerson[] | null) {\n this._mentionPeople = value ?? null;\n this.applyMentionScope();\n }\n get MentionPeople(): readonly MentionPerson[] | null {\n return this._mentionPeople;\n }\n\n constructor() {\n this.rebuildTriggerProviders();\n }\n\n /** Hands this composer's '@' scope to its own agent-mention provider (never the shared engine). */\n private applyMentionScope(): void {\n this.agentMentionProvider.Scope = this._allowedAgentIDs == null && this._mentionPeople == null\n ? null\n : { AllowedAgentIDs: this._allowedAgentIDs, People: this._mentionPeople };\n }\n\n /** Enables the '@' trigger (agent + user mentions). */\n @Input()\n set EnableAgentMentions(value: boolean) {\n if (value !== this._enableAgentMentions) {\n this._enableAgentMentions = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableAgentMentions(): boolean {\n return this._enableAgentMentions;\n }\n\n /** Enables the '#' trigger (entity + query record mentions). */\n @Input()\n set EnableEntityMentions(value: boolean) {\n if (value !== this._enableEntityMentions) {\n this._enableEntityMentions = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableEntityMentions(): boolean {\n return this._enableEntityMentions;\n }\n\n /** Enables the '/' trigger (skill commands). */\n @Input()\n set EnableSkillCommands(value: boolean) {\n if (value !== this._enableSkillCommands) {\n this._enableSkillCommands = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableSkillCommands(): boolean {\n return this._enableSkillCommands;\n }\n\n /** The explicit provider list bound to the inner editor (stable reference; rebuilt only when a flag flips). */\n public get ActiveTriggerProviders(): ComposerTriggerProvider[] {\n return this._activeTriggerProviders;\n }\n\n private rebuildTriggerProviders(): void {\n const providers: ComposerTriggerProvider[] = [];\n if (this._enableAgentMentions) providers.push(this.agentMentionProvider);\n if (this._enableEntityMentions) providers.push(this.recordMentionProvider);\n if (this._enableSkillCommands) providers.push(this.skillCommandProvider);\n this._activeTriggerProviders = providers;\n }\n\n // ── Proxied inputs (identical names/defaults to MessageInputBoxComponent) ────────\n @Input() Placeholder: string = 'Type your message to start a new conversation...';\n\n /** @deprecated Use {@link Placeholder}. */\n @Input() set placeholder(value: string) {\n this.Placeholder = value;\n }\n /** @deprecated Use {@link Placeholder}. */\n get placeholder(): string {\n return this.Placeholder;\n }\n @Input() Disabled: boolean = false;\n\n /** @deprecated Use {@link Disabled}. */\n @Input() set disabled(value: boolean) {\n this.Disabled = value;\n }\n /** @deprecated Use {@link Disabled}. */\n get disabled(): boolean {\n return this.Disabled;\n }\n @Input() Value: string = '';\n\n /** @deprecated Use {@link Value}. */\n @Input() set value(value: string) {\n this.Value = value;\n }\n /** @deprecated Use {@link Value}. */\n get value(): string {\n return this.Value;\n }\n @Input() ShowCharacterCount: boolean = false;\n\n /** @deprecated Use {@link ShowCharacterCount}. */\n @Input() set showCharacterCount(value: boolean) {\n this.ShowCharacterCount = value;\n }\n /** @deprecated Use {@link ShowCharacterCount}. */\n get showCharacterCount(): boolean {\n return this.ShowCharacterCount;\n }\n /** Master switch for all mention/command triggers (pass-through). */\n @Input() EnableMentions: boolean = true;\n\n /** @deprecated Use {@link EnableMentions}. */\n @Input() set enableMentions(value: boolean) {\n this.EnableMentions = value;\n }\n /** @deprecated Use {@link EnableMentions}. */\n get enableMentions(): boolean {\n return this.EnableMentions;\n }\n /** Optional metadata provider scoping this composer (pass-through to the trigger plugins). */\n @Input() Provider: IMetadataProvider | null = null;\n @Input() CurrentUser?: UserInfo;\n\n /** @deprecated Use {@link CurrentUser}. */\n @Input() set currentUser(value: UserInfo | undefined) {\n this.CurrentUser = value;\n }\n /** @deprecated Use {@link CurrentUser}. */\n get currentUser(): UserInfo | undefined {\n return this.CurrentUser;\n }\n @Input() Rows: number = 3;\n\n /** @deprecated Use {@link Rows}. */\n @Input() set rows(value: number) {\n this.Rows = value;\n }\n /** @deprecated Use {@link Rows}. */\n get rows(): number {\n return this.Rows;\n }\n @Input() EnableAttachments: boolean = true;\n\n /** @deprecated Use {@link EnableAttachments}. */\n @Input() set enableAttachments(value: boolean) {\n this.EnableAttachments = value;\n }\n /** @deprecated Use {@link EnableAttachments}. */\n get enableAttachments(): boolean {\n return this.EnableAttachments;\n }\n @Input() MaxAttachments: number = 10;\n\n /** @deprecated Use {@link MaxAttachments}. */\n @Input() set maxAttachments(value: number) {\n this.MaxAttachments = value;\n }\n /** @deprecated Use {@link MaxAttachments}. */\n get maxAttachments(): number {\n return this.MaxAttachments;\n }\n @Input() MaxAttachmentSizeBytes: number = 20 * 1024 * 1024;\n\n /** @deprecated Use {@link MaxAttachmentSizeBytes}. */\n @Input() set maxAttachmentSizeBytes(value: number) {\n this.MaxAttachmentSizeBytes = value;\n }\n /** @deprecated Use {@link MaxAttachmentSizeBytes}. */\n get maxAttachmentSizeBytes(): number {\n return this.MaxAttachmentSizeBytes;\n } // 20MB\n @Input() AcceptedFileTypes: string = 'image/*';\n\n /** @deprecated Use {@link AcceptedFileTypes}. */\n @Input() set acceptedFileTypes(value: string) {\n this.AcceptedFileTypes = value;\n }\n /** @deprecated Use {@link AcceptedFileTypes}. */\n get acceptedFileTypes(): string {\n return this.AcceptedFileTypes;\n }\n @Input() EnableRealtime: boolean = false;\n\n /** @deprecated Use {@link EnableRealtime}. */\n @Input() set enableRealtime(value: boolean) {\n this.EnableRealtime = value;\n }\n /** @deprecated Use {@link EnableRealtime}. */\n get enableRealtime(): boolean {\n return this.EnableRealtime;\n }\n @Input() VoiceActive: boolean = false;\n\n /** @deprecated Use {@link VoiceActive}. */\n @Input() set voiceActive(value: boolean) {\n this.VoiceActive = value;\n }\n /** @deprecated Use {@link VoiceActive}. */\n get voiceActive(): boolean {\n return this.VoiceActive;\n }\n @Input() CanStartRealtime: boolean = true;\n\n /** @deprecated Use {@link CanStartRealtime}. */\n @Input() set canStartRealtime(value: boolean) {\n this.CanStartRealtime = value;\n }\n /** @deprecated Use {@link CanStartRealtime}. */\n get canStartRealtime(): boolean {\n return this.CanStartRealtime;\n }\n @Input() EnablePlanMode: boolean = false;\n\n /** @deprecated Use {@link EnablePlanMode}. */\n @Input() set enablePlanMode(value: boolean) {\n this.EnablePlanMode = value;\n }\n /** @deprecated Use {@link EnablePlanMode}. */\n get enablePlanMode(): boolean {\n return this.EnablePlanMode;\n }\n @Input() PlanModeActive: boolean = false;\n\n /** @deprecated Use {@link PlanModeActive}. */\n @Input() set planModeActive(value: boolean) {\n this.PlanModeActive = value;\n }\n /** @deprecated Use {@link PlanModeActive}. */\n get planModeActive(): boolean {\n return this.PlanModeActive;\n }\n\n // ── Proxied outputs ───────────────────────────────────────────────────────────────\n @Output() TextSubmitted = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link TextSubmitted}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (textSubmitted) keeps working. Must stay AFTER TextSubmitted: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() textSubmitted = this.TextSubmitted;\n /** Composer lost focus — hosts persist drafts on this. */\n @Output() Blurred = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link Blurred}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (blurred) keeps working. Must stay AFTER Blurred: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() blurred = this.Blurred;\n @Output() ValueChange = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link ValueChange}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (valueChange) keeps working. Must stay AFTER ValueChange: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() valueChange = this.ValueChange;\n @Output() AttachmentsChanged = new EventEmitter<PendingAttachment[]>();\n\n /**\n * @deprecated Use {@link AttachmentsChanged}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (attachmentsChanged) keeps working. Must stay AFTER AttachmentsChanged: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() attachmentsChanged = this.AttachmentsChanged;\n @Output() AttachmentError = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link AttachmentError}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (attachmentError) keeps working. Must stay AFTER AttachmentError: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() attachmentError = this.AttachmentError;\n @Output() AttachmentClicked = new EventEmitter<PendingAttachment>();\n\n /**\n * @deprecated Use {@link AttachmentClicked}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (attachmentClicked) keeps working. Must stay AFTER AttachmentClicked: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() attachmentClicked = this.AttachmentClicked;\n @Output() VoiceRequested = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link VoiceRequested}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (voiceRequested) keeps working. Must stay AFTER VoiceRequested: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() voiceRequested = this.VoiceRequested;\n @Output() VoiceOptionsRequested = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link VoiceOptionsRequested}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (voiceOptionsRequested) keeps working. Must stay AFTER VoiceOptionsRequested: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() voiceOptionsRequested = this.VoiceOptionsRequested;\n @Output() PlanModeToggle = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link PlanModeToggle}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (planModeToggle) keeps working. Must stay AFTER PlanModeToggle: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() planModeToggle = this.PlanModeToggle;\n /**\n * Before/After pair for the Skills button, proxied straight through from the input box. Gated on\n * `EnableSkillCommands` — the button and the keystroke are two doors to the same feature, so one\n * flag governs both rather than letting a composer advertise skills it will not serve.\n *\n * Cancel on `beforeSkillsOpened` vetoes the dropdown; `afterSkillsOpened` then does not fire.\n */\n @Output() BeforeSkillsOpened = new EventEmitter<BeforeSkillsOpenedEventArgs>();\n\n /**\n * @deprecated Use {@link BeforeSkillsOpened}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (beforeSkillsOpened) keeps working. Must stay AFTER BeforeSkillsOpened: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() beforeSkillsOpened = this.BeforeSkillsOpened;\n @Output() AfterSkillsOpened = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link AfterSkillsOpened}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (afterSkillsOpened) keeps working. Must stay AFTER AfterSkillsOpened: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() afterSkillsOpened = this.AfterSkillsOpened;\n\n OnInnerValueChange(newValue: string): void {\n this.Value = newValue;\n this.ValueChange.emit(newValue);\n }\n\n /** @deprecated Use {@link OnInnerValueChange}. */\n onInnerValueChange(newValue: string): void {\n return this.OnInnerValueChange(newValue);\n }\n\n // ── Proxied public methods (ViewChild delegation) ─────────────────────────────────\n\n /** The inner mention editor — kept reachable for hosts that drive it directly (e.g. clear-after-programmatic-send). */\n public get MentionEditor(): MentionEditorComponent | undefined {\n return this.InputBox?.mentionEditor;\n }\n\n /** @deprecated Use {@link MentionEditor}. */\n public get mentionEditor(): MentionEditorComponent | undefined {\n return this.MentionEditor;\n }\n\n /** Focus the composer input. */\n /** Inserts a resolved mention chip + space (see MentionEditorComponent.InsertMention). */\n public InsertMention(suggestion: MentionSuggestion, focus: boolean = true): boolean {\n return this.InputBox?.InsertMention(suggestion, focus) ?? false;\n }\n\n /** Focus with the caret at the end of content. */\n public FocusCaretAtEnd(): boolean {\n return this.InputBox?.FocusCaretAtEnd() ?? false;\n }\n\n public Focus(): void {\n this.InputBox?.focus();\n }\n\n /** @deprecated Use {@link Focus}. */\n public focus(): void {\n return this.Focus();\n }\n\n /** Clear the editor content and pending attachments. */\n public Clear(): void {\n this.InputBox?.mentionEditor?.clear();\n }\n\n /** @deprecated Use {@link Clear}. */\n public clear(): void {\n return this.Clear();\n }\n\n /** Mention chip data (id/type/name + preset info) currently in the editor. */\n public GetMentionChipsData(): Array<{ id: string; type: string; name: string; presetId?: string; presetName?: string }> {\n return this.InputBox?.GetMentionChipsData() || [];\n }\n\n /** @deprecated Use {@link GetMentionChipsData}. */\n public getMentionChipsData(): Array<{ id: string; type: string; name: string; presetId?: string; presetName?: string }> {\n return this.GetMentionChipsData();\n }\n\n /** Plain text with mentions encoded as JSON (`@{\"type\":...}`) — the persistence format. */\n public GetPlainTextWithJsonMentions(): string {\n return this.InputBox?.mentionEditor?.getPlainTextWithJsonMentions() || '';\n }\n\n /** @deprecated Use {@link GetPlainTextWithJsonMentions}. */\n public getPlainTextWithJsonMentions(): string {\n return this.GetPlainTextWithJsonMentions();\n }\n\n /** Pending (not yet uploaded) attachments. */\n public GetPendingAttachments(): PendingAttachment[] {\n return this.InputBox?.GetPendingAttachments() || [];\n }\n\n /** @deprecated Use {@link GetPendingAttachments}. */\n public getPendingAttachments(): PendingAttachment[] {\n return this.GetPendingAttachments();\n }\n\n /** Open the attachment file picker programmatically. */\n public OpenFilePicker(): void {\n this.InputBox?.OpenFilePicker();\n }\n\n /** @deprecated Use {@link OpenFilePicker}. */\n public openFilePicker(): void {\n return this.OpenFilePicker();\n }\n\n /** Attach an artifact as a pending attachment (artifact picker flow). */\n public AddArtifactAttachment(artifact: {\n fileID: string; fileName: string; mimeType: string;\n sizeBytes: number; artifactVersionId?: string;\n }): PendingAttachment | undefined {\n return this.InputBox?.AddArtifactAttachment(artifact);\n }\n}\n"]}
1
+ {"version":3,"file":"ai-composer.component.js","sourceRoot":"","sources":["../../../../src/lib/components/composer/ai-composer.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IMetadataProvider, UserInfo } from '@memberjunction/core';\nimport type { MentionPerson } from '@memberjunction/conversations-runtime';\nimport { MentionSuggestion,\n ComposerTriggerProvider,\n MentionEditorComponent,\n MessageInputBoxComponent,\n PendingAttachment,\n BeforeSkillsOpenedEventArgs, SendSlotMode } from '@memberjunction/ng-composer';\nimport { AgentMentionProvider } from '../../composer-plugins/agent-mention.provider';\nimport { RecordMentionProvider } from '../../composer-plugins/record-mention.provider';\nimport { SkillCommandProvider } from '../../composer-plugins/skill-command.provider';\n\n/**\n * AI-aware composer: wraps the generic `<mj-message-input-box>` (from\n * `@memberjunction/ng-composer`, which ships zero AI knowledge) and builds the AI\n * trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and\n * '/' skill commands — while proxying the input box's full surface (inputs, outputs,\n * and public methods).\n *\n * The familiar granular flags live HERE now:\n * - `EnableAgentMentions` (default true) — the '@' trigger\n * - `EnableEntityMentions` (default true) — the '#' trigger\n * - `EnableSkillCommands` (default true) — the '/' trigger\n * plus the pass-through `enableMentions` master switch.\n *\n * The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the\n * list; it deliberately does not proxy `TriggerProviders` / `ExcludedTriggerKeys` — use\n * the raw `<mj-message-input-box>` when you need custom providers or discovery mode).\n */\n@Component({\n standalone: false,\n selector: 'mj-ai-composer',\n template: `\n <mj-message-input-box\n #inputBox\n [Placeholder]=\"placeholder\"\n [Disabled]=\"disabled\"\n [Value]=\"value\"\n [ShowCharacterCount]=\"showCharacterCount\"\n [EnableMentions]=\"enableMentions\"\n [TriggerProviders]=\"ActiveTriggerProviders\"\n [Provider]=\"Provider\"\n [CurrentUser]=\"currentUser\"\n [Rows]=\"rows\"\n [EnableAttachments]=\"enableAttachments\"\n [MaxAttachments]=\"maxAttachments\"\n [MaxAttachmentSizeBytes]=\"maxAttachmentSizeBytes\"\n [AcceptedFileTypes]=\"acceptedFileTypes\"\n [EnableRealtime]=\"enableRealtime\"\n [VoiceActive]=\"voiceActive\"\n [CanStartRealtime]=\"canStartRealtime\"\n [EnablePlanMode]=\"enablePlanMode\"\n [EnableSkills]=\"EnableSkillCommands\"\n [PlanModeActive]=\"planModeActive\"\n [SendSlotMode]=\"SendSlotMode\"\n [StopCount]=\"StopCount\"\n [StopLabel]=\"StopLabel\"\n [StatusText]=\"StatusText\"\n [StatusElapsed]=\"StatusElapsed\"\n (StopClicked)=\"StopClicked.emit()\"\n (TextSubmitted)=\"textSubmitted.emit($event)\"\n (Blurred)=\"blurred.emit()\"\n (ValueChange)=\"onInnerValueChange($event)\"\n (AttachmentsChanged)=\"attachmentsChanged.emit($event)\"\n (AttachmentError)=\"attachmentError.emit($event)\"\n (AttachmentClicked)=\"attachmentClicked.emit($event)\"\n (VoiceRequested)=\"voiceRequested.emit()\"\n (VoiceOptionsRequested)=\"voiceOptionsRequested.emit()\"\n (PlanModeToggle)=\"planModeToggle.emit()\"\n (BeforeSkillsOpened)=\"beforeSkillsOpened.emit($event)\"\n (AfterSkillsOpened)=\"afterSkillsOpened.emit()\">\n </mj-message-input-box>\n `\n})\nexport class AiComposerComponent {\n @ViewChild('inputBox') InputBox?: MessageInputBoxComponent;\n\n /** @deprecated Use {@link InputBox}. */\n get inputBox(): MessageInputBoxComponent | undefined {\n return this.InputBox;\n }\n /** @deprecated Use {@link InputBox}. */\n set inputBox(value: MessageInputBoxComponent | undefined) {\n this.InputBox = value;\n }\n\n // ── AI convenience flags (the wrapper's reason to exist) ─────────────────────────\n private _enableAgentMentions: boolean = true;\n private _enableEntityMentions: boolean = true;\n private _enableSkillCommands: boolean = true;\n private _activeTriggerProviders: ComposerTriggerProvider[] = [];\n\n // One instance per plugin per composer — all instances share the singleton\n // MentionAutocompleteService engine, so there is no duplicate cache warm-up.\n private readonly agentMentionProvider = new AgentMentionProvider();\n private readonly recordMentionProvider = new RecordMentionProvider();\n private readonly skillCommandProvider = new SkillCommandProvider();\n\n /**\n * The agent the message is expected to go to, when the host knows it (`mj-message-input` binds an\n * explicit `@agent` chip in the draft, else its resolved continuity/pinned/default agent). Narrows\n * the '/' skill picker to the skills that agent accepts (`AcceptsSkills` + `MJ: AI Agent Skills`\n * grants). Null = unknown, no narrowing — the server's RequestedSkills guard is the backstop.\n */\n @Input()\n set TargetAgentId(value: string | null) {\n this.skillCommandProvider.TargetAgentId = value ?? null;\n }\n get TargetAgentId(): string | null {\n return this.skillCommandProvider.TargetAgentId;\n }\n\n private _allowedAgentIDs: readonly string[] | null = null;\n private _mentionPeople: readonly MentionPerson[] | null = null;\n\n /**\n * The agents the '@' list may offer. Null (the default) offers every agent the user can run;\n * an empty list offers none. Applies to this composer only.\n */\n @Input()\n set AllowedAgentIDs(value: readonly string[] | null) {\n this._allowedAgentIDs = value ?? null;\n this.applyMentionScope();\n }\n get AllowedAgentIDs(): readonly string[] | null {\n return this._allowedAgentIDs;\n }\n\n /**\n * The people the '@' list offers, such as a chat's members. Null (the default) offers the\n * current user, as before. Applies to this composer only.\n */\n @Input()\n set MentionPeople(value: readonly MentionPerson[] | null) {\n this._mentionPeople = value ?? null;\n this.applyMentionScope();\n }\n get MentionPeople(): readonly MentionPerson[] | null {\n return this._mentionPeople;\n }\n\n constructor() {\n this.rebuildTriggerProviders();\n }\n\n /** Hands this composer's '@' scope to its own agent-mention provider (never the shared engine). */\n private applyMentionScope(): void {\n this.agentMentionProvider.Scope = this._allowedAgentIDs == null && this._mentionPeople == null\n ? null\n : { AllowedAgentIDs: this._allowedAgentIDs, People: this._mentionPeople };\n }\n\n /** Enables the '@' trigger (agent + user mentions). */\n @Input()\n set EnableAgentMentions(value: boolean) {\n if (value !== this._enableAgentMentions) {\n this._enableAgentMentions = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableAgentMentions(): boolean {\n return this._enableAgentMentions;\n }\n\n /** Enables the '#' trigger (entity + query record mentions). */\n @Input()\n set EnableEntityMentions(value: boolean) {\n if (value !== this._enableEntityMentions) {\n this._enableEntityMentions = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableEntityMentions(): boolean {\n return this._enableEntityMentions;\n }\n\n /** Enables the '/' trigger (skill commands). */\n @Input()\n set EnableSkillCommands(value: boolean) {\n if (value !== this._enableSkillCommands) {\n this._enableSkillCommands = value;\n this.rebuildTriggerProviders();\n }\n }\n get EnableSkillCommands(): boolean {\n return this._enableSkillCommands;\n }\n\n /** The explicit provider list bound to the inner editor (stable reference; rebuilt only when a flag flips). */\n public get ActiveTriggerProviders(): ComposerTriggerProvider[] {\n return this._activeTriggerProviders;\n }\n\n private rebuildTriggerProviders(): void {\n const providers: ComposerTriggerProvider[] = [];\n if (this._enableAgentMentions) providers.push(this.agentMentionProvider);\n if (this._enableEntityMentions) providers.push(this.recordMentionProvider);\n if (this._enableSkillCommands) providers.push(this.skillCommandProvider);\n this._activeTriggerProviders = providers;\n }\n\n // ── Proxied inputs (identical names/defaults to MessageInputBoxComponent) ────────\n @Input() Placeholder: string = 'Type your message to start a new conversation...';\n\n // ── The send slot as a stop control (pass-through; see MessageInputBoxComponent) ──────\n /** What the send slot is doing; the host decides. */\n @Input() SendSlotMode: SendSlotMode = 'send';\n /** How many things a stop would stop; above 1 the slot reads \"Stop all\". */\n @Input() StopCount: number = 0;\n /** Tooltip and accessible name of the slot in `stop` mode. */\n @Input() StopLabel: string = 'Stop';\n /** Status line shown bottom-left inside the box while non-null. */\n @Input() StatusText: string | null = null;\n /** Elapsed time after the status text, kept out of the live region and dropped on narrow screens. */\n @Input() StatusElapsed: string | null = null;\n\n /** @deprecated Use {@link Placeholder}. */\n @Input() set placeholder(value: string) {\n this.Placeholder = value;\n }\n /** @deprecated Use {@link Placeholder}. */\n get placeholder(): string {\n return this.Placeholder;\n }\n @Input() Disabled: boolean = false;\n\n /** @deprecated Use {@link Disabled}. */\n @Input() set disabled(value: boolean) {\n this.Disabled = value;\n }\n /** @deprecated Use {@link Disabled}. */\n get disabled(): boolean {\n return this.Disabled;\n }\n @Input() Value: string = '';\n\n /** @deprecated Use {@link Value}. */\n @Input() set value(value: string) {\n this.Value = value;\n }\n /** @deprecated Use {@link Value}. */\n get value(): string {\n return this.Value;\n }\n @Input() ShowCharacterCount: boolean = false;\n\n /** @deprecated Use {@link ShowCharacterCount}. */\n @Input() set showCharacterCount(value: boolean) {\n this.ShowCharacterCount = value;\n }\n /** @deprecated Use {@link ShowCharacterCount}. */\n get showCharacterCount(): boolean {\n return this.ShowCharacterCount;\n }\n /** Master switch for all mention/command triggers (pass-through). */\n @Input() EnableMentions: boolean = true;\n\n /** @deprecated Use {@link EnableMentions}. */\n @Input() set enableMentions(value: boolean) {\n this.EnableMentions = value;\n }\n /** @deprecated Use {@link EnableMentions}. */\n get enableMentions(): boolean {\n return this.EnableMentions;\n }\n /** Optional metadata provider scoping this composer (pass-through to the trigger plugins). */\n @Input() Provider: IMetadataProvider | null = null;\n @Input() CurrentUser?: UserInfo;\n\n /** @deprecated Use {@link CurrentUser}. */\n @Input() set currentUser(value: UserInfo | undefined) {\n this.CurrentUser = value;\n }\n /** @deprecated Use {@link CurrentUser}. */\n get currentUser(): UserInfo | undefined {\n return this.CurrentUser;\n }\n @Input() Rows: number = 3;\n\n /** @deprecated Use {@link Rows}. */\n @Input() set rows(value: number) {\n this.Rows = value;\n }\n /** @deprecated Use {@link Rows}. */\n get rows(): number {\n return this.Rows;\n }\n @Input() EnableAttachments: boolean = true;\n\n /** @deprecated Use {@link EnableAttachments}. */\n @Input() set enableAttachments(value: boolean) {\n this.EnableAttachments = value;\n }\n /** @deprecated Use {@link EnableAttachments}. */\n get enableAttachments(): boolean {\n return this.EnableAttachments;\n }\n @Input() MaxAttachments: number = 10;\n\n /** @deprecated Use {@link MaxAttachments}. */\n @Input() set maxAttachments(value: number) {\n this.MaxAttachments = value;\n }\n /** @deprecated Use {@link MaxAttachments}. */\n get maxAttachments(): number {\n return this.MaxAttachments;\n }\n @Input() MaxAttachmentSizeBytes: number = 20 * 1024 * 1024;\n\n /** @deprecated Use {@link MaxAttachmentSizeBytes}. */\n @Input() set maxAttachmentSizeBytes(value: number) {\n this.MaxAttachmentSizeBytes = value;\n }\n /** @deprecated Use {@link MaxAttachmentSizeBytes}. */\n get maxAttachmentSizeBytes(): number {\n return this.MaxAttachmentSizeBytes;\n } // 20MB\n @Input() AcceptedFileTypes: string = 'image/*';\n\n /** @deprecated Use {@link AcceptedFileTypes}. */\n @Input() set acceptedFileTypes(value: string) {\n this.AcceptedFileTypes = value;\n }\n /** @deprecated Use {@link AcceptedFileTypes}. */\n get acceptedFileTypes(): string {\n return this.AcceptedFileTypes;\n }\n @Input() EnableRealtime: boolean = false;\n\n /** @deprecated Use {@link EnableRealtime}. */\n @Input() set enableRealtime(value: boolean) {\n this.EnableRealtime = value;\n }\n /** @deprecated Use {@link EnableRealtime}. */\n get enableRealtime(): boolean {\n return this.EnableRealtime;\n }\n @Input() VoiceActive: boolean = false;\n\n /** @deprecated Use {@link VoiceActive}. */\n @Input() set voiceActive(value: boolean) {\n this.VoiceActive = value;\n }\n /** @deprecated Use {@link VoiceActive}. */\n get voiceActive(): boolean {\n return this.VoiceActive;\n }\n @Input() CanStartRealtime: boolean = true;\n\n /** @deprecated Use {@link CanStartRealtime}. */\n @Input() set canStartRealtime(value: boolean) {\n this.CanStartRealtime = value;\n }\n /** @deprecated Use {@link CanStartRealtime}. */\n get canStartRealtime(): boolean {\n return this.CanStartRealtime;\n }\n @Input() EnablePlanMode: boolean = false;\n\n /** @deprecated Use {@link EnablePlanMode}. */\n @Input() set enablePlanMode(value: boolean) {\n this.EnablePlanMode = value;\n }\n /** @deprecated Use {@link EnablePlanMode}. */\n get enablePlanMode(): boolean {\n return this.EnablePlanMode;\n }\n @Input() PlanModeActive: boolean = false;\n\n /** @deprecated Use {@link PlanModeActive}. */\n @Input() set planModeActive(value: boolean) {\n this.PlanModeActive = value;\n }\n /** @deprecated Use {@link PlanModeActive}. */\n get planModeActive(): boolean {\n return this.PlanModeActive;\n }\n\n // ── Proxied outputs ───────────────────────────────────────────────────────────────\n @Output() TextSubmitted = new EventEmitter<string>();\n /** The send slot was clicked in `stop` mode. */\n @Output() StopClicked = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link TextSubmitted}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (textSubmitted) keeps working. Must stay AFTER TextSubmitted: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() textSubmitted = this.TextSubmitted;\n /** Composer lost focus — hosts persist drafts on this. */\n @Output() Blurred = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link Blurred}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (blurred) keeps working. Must stay AFTER Blurred: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() blurred = this.Blurred;\n @Output() ValueChange = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link ValueChange}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (valueChange) keeps working. Must stay AFTER ValueChange: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() valueChange = this.ValueChange;\n @Output() AttachmentsChanged = new EventEmitter<PendingAttachment[]>();\n\n /**\n * @deprecated Use {@link AttachmentsChanged}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (attachmentsChanged) keeps working. Must stay AFTER AttachmentsChanged: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() attachmentsChanged = this.AttachmentsChanged;\n @Output() AttachmentError = new EventEmitter<string>();\n\n /**\n * @deprecated Use {@link AttachmentError}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (attachmentError) keeps working. Must stay AFTER AttachmentError: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() attachmentError = this.AttachmentError;\n @Output() AttachmentClicked = new EventEmitter<PendingAttachment>();\n\n /**\n * @deprecated Use {@link AttachmentClicked}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (attachmentClicked) keeps working. Must stay AFTER AttachmentClicked: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() attachmentClicked = this.AttachmentClicked;\n @Output() VoiceRequested = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link VoiceRequested}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (voiceRequested) keeps working. Must stay AFTER VoiceRequested: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() voiceRequested = this.VoiceRequested;\n @Output() VoiceOptionsRequested = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link VoiceOptionsRequested}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (voiceOptionsRequested) keeps working. Must stay AFTER VoiceOptionsRequested: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() voiceOptionsRequested = this.VoiceOptionsRequested;\n @Output() PlanModeToggle = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link PlanModeToggle}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (planModeToggle) keeps working. Must stay AFTER PlanModeToggle: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() planModeToggle = this.PlanModeToggle;\n /**\n * Before/After pair for the Skills button, proxied straight through from the input box. Gated on\n * `EnableSkillCommands` — the button and the keystroke are two doors to the same feature, so one\n * flag governs both rather than letting a composer advertise skills it will not serve.\n *\n * Cancel on `beforeSkillsOpened` vetoes the dropdown; `afterSkillsOpened` then does not fire.\n */\n @Output() BeforeSkillsOpened = new EventEmitter<BeforeSkillsOpenedEventArgs>();\n\n /**\n * @deprecated Use {@link BeforeSkillsOpened}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (beforeSkillsOpened) keeps working. Must stay AFTER BeforeSkillsOpened: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() beforeSkillsOpened = this.BeforeSkillsOpened;\n @Output() AfterSkillsOpened = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link AfterSkillsOpened}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (afterSkillsOpened) keeps working. Must stay AFTER AfterSkillsOpened: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() afterSkillsOpened = this.AfterSkillsOpened;\n\n OnInnerValueChange(newValue: string): void {\n this.Value = newValue;\n this.ValueChange.emit(newValue);\n }\n\n /** @deprecated Use {@link OnInnerValueChange}. */\n onInnerValueChange(newValue: string): void {\n return this.OnInnerValueChange(newValue);\n }\n\n // ── Proxied public methods (ViewChild delegation) ─────────────────────────────────\n\n /** The inner mention editor — kept reachable for hosts that drive it directly (e.g. clear-after-programmatic-send). */\n public get MentionEditor(): MentionEditorComponent | undefined {\n return this.InputBox?.mentionEditor;\n }\n\n /** @deprecated Use {@link MentionEditor}. */\n public get mentionEditor(): MentionEditorComponent | undefined {\n return this.MentionEditor;\n }\n\n /** Focus the composer input. */\n /** Inserts a resolved mention chip + space (see MentionEditorComponent.InsertMention). */\n public InsertMention(suggestion: MentionSuggestion, focus: boolean = true): boolean {\n return this.InputBox?.InsertMention(suggestion, focus) ?? false;\n }\n\n /** Focus with the caret at the end of content. */\n public FocusCaretAtEnd(): boolean {\n return this.InputBox?.FocusCaretAtEnd() ?? false;\n }\n\n public Focus(): void {\n this.InputBox?.focus();\n }\n\n /** @deprecated Use {@link Focus}. */\n public focus(): void {\n return this.Focus();\n }\n\n /** Clear the editor content and pending attachments. */\n public Clear(): void {\n this.InputBox?.mentionEditor?.clear();\n }\n\n /** @deprecated Use {@link Clear}. */\n public clear(): void {\n return this.Clear();\n }\n\n /** Mention chip data (id/type/name + preset info) currently in the editor. */\n public GetMentionChipsData(): Array<{ id: string; type: string; name: string; presetId?: string; presetName?: string }> {\n return this.InputBox?.GetMentionChipsData() || [];\n }\n\n /** @deprecated Use {@link GetMentionChipsData}. */\n public getMentionChipsData(): Array<{ id: string; type: string; name: string; presetId?: string; presetName?: string }> {\n return this.GetMentionChipsData();\n }\n\n /** Plain text with mentions encoded as JSON (`@{\"type\":...}`) — the persistence format. */\n public GetPlainTextWithJsonMentions(): string {\n return this.InputBox?.mentionEditor?.getPlainTextWithJsonMentions() || '';\n }\n\n /** @deprecated Use {@link GetPlainTextWithJsonMentions}. */\n public getPlainTextWithJsonMentions(): string {\n return this.GetPlainTextWithJsonMentions();\n }\n\n /** Pending (not yet uploaded) attachments. */\n public GetPendingAttachments(): PendingAttachment[] {\n return this.InputBox?.GetPendingAttachments() || [];\n }\n\n /** @deprecated Use {@link GetPendingAttachments}. */\n public getPendingAttachments(): PendingAttachment[] {\n return this.GetPendingAttachments();\n }\n\n /** Open the attachment file picker programmatically. */\n public OpenFilePicker(): void {\n this.InputBox?.OpenFilePicker();\n }\n\n /** @deprecated Use {@link OpenFilePicker}. */\n public openFilePicker(): void {\n return this.OpenFilePicker();\n }\n\n /** Attach an artifact as a pending attachment (artifact picker flow). */\n public AddArtifactAttachment(artifact: {\n fileID: string; fileName: string; mimeType: string;\n sizeBytes: number; artifactVersionId?: string;\n }): PendingAttachment | undefined {\n return this.InputBox?.AddArtifactAttachment(artifact);\n }\n}\n"]}