@memberjunction/ng-conversations 5.40.2 → 5.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -0
- package/dist/__tests__/channel-optional-surface.test.d.ts +2 -0
- package/dist/__tests__/channel-optional-surface.test.d.ts.map +1 -0
- package/dist/__tests__/channel-optional-surface.test.js +53 -0
- package/dist/__tests__/channel-optional-surface.test.js.map +1 -0
- package/dist/__tests__/chat-events.test.d.ts +14 -0
- package/dist/__tests__/chat-events.test.d.ts.map +1 -0
- package/dist/__tests__/chat-events.test.js +109 -0
- package/dist/__tests__/chat-events.test.js.map +1 -0
- package/dist/__tests__/conversation-naming.test.d.ts +2 -0
- package/dist/__tests__/conversation-naming.test.d.ts.map +1 -0
- package/dist/__tests__/conversation-naming.test.js +110 -0
- package/dist/__tests__/conversation-naming.test.js.map +1 -0
- package/dist/__tests__/delegation-result-parser.test.d.ts +2 -0
- package/dist/__tests__/delegation-result-parser.test.d.ts.map +1 -0
- package/dist/__tests__/delegation-result-parser.test.js +107 -0
- package/dist/__tests__/delegation-result-parser.test.js.map +1 -0
- package/dist/__tests__/event-wiring.test.d.ts +15 -0
- package/dist/__tests__/event-wiring.test.d.ts.map +1 -0
- package/dist/__tests__/event-wiring.test.js +100 -0
- package/dist/__tests__/event-wiring.test.js.map +1 -0
- package/dist/__tests__/narration-template.test.d.ts +2 -0
- package/dist/__tests__/narration-template.test.d.ts.map +1 -0
- package/dist/__tests__/narration-template.test.js +76 -0
- package/dist/__tests__/narration-template.test.js.map +1 -0
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts +2 -0
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-agent-picker-models.test.js +49 -0
- package/dist/__tests__/realtime-agent-picker-models.test.js.map +1 -0
- package/dist/__tests__/realtime-audio-visuals.test.d.ts +2 -0
- package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-audio-visuals.test.js +123 -0
- package/dist/__tests__/realtime-audio-visuals.test.js.map +1 -0
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +2 -0
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-delegation-card-cancel.test.js +48 -0
- package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +1 -0
- package/dist/__tests__/realtime-disclosure.test.d.ts +2 -0
- package/dist/__tests__/realtime-disclosure.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-disclosure.test.js +164 -0
- package/dist/__tests__/realtime-disclosure.test.js.map +1 -0
- package/dist/__tests__/realtime-pairing.test.d.ts +2 -0
- package/dist/__tests__/realtime-pairing.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-pairing.test.js +207 -0
- package/dist/__tests__/realtime-pairing.test.js.map +1 -0
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts +2 -0
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-review-lifecycle.test.js +154 -0
- package/dist/__tests__/realtime-review-lifecycle.test.js.map +1 -0
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-cancel-usage.test.js +230 -0
- package/dist/__tests__/realtime-session-cancel-usage.test.js.map +1 -0
- package/dist/__tests__/realtime-session-channels.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-channels.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-channels.test.js +252 -0
- package/dist/__tests__/realtime-session-channels.test.js.map +1 -0
- package/dist/__tests__/realtime-session-client-tools.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-client-tools.test.js +103 -0
- package/dist/__tests__/realtime-session-client-tools.test.js.map +1 -0
- package/dist/__tests__/realtime-session-minimized.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-minimized.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-minimized.test.js +32 -0
- package/dist/__tests__/realtime-session-minimized.test.js.map +1 -0
- package/dist/__tests__/realtime-session-mint.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-mint.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-mint.test.js +69 -0
- package/dist/__tests__/realtime-session-mint.test.js.map +1 -0
- package/dist/__tests__/realtime-session-policy.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-policy.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-policy.test.js +303 -0
- package/dist/__tests__/realtime-session-policy.test.js.map +1 -0
- package/dist/__tests__/realtime-session-review.service.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-review.service.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-review.service.test.js +743 -0
- package/dist/__tests__/realtime-session-review.service.test.js.map +1 -0
- package/dist/__tests__/realtime-session-state.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-state.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-state.test.js +83 -0
- package/dist/__tests__/realtime-session-state.test.js.map +1 -0
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-timeline-card.test.js +106 -0
- package/dist/__tests__/realtime-session-timeline-card.test.js.map +1 -0
- package/dist/__tests__/realtime-session-timeline.test.d.ts +2 -0
- package/dist/__tests__/realtime-session-timeline.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-session-timeline.test.js +142 -0
- package/dist/__tests__/realtime-session-timeline.test.js.map +1 -0
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts +19 -0
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-sessions-adapter.test.js +188 -0
- package/dist/__tests__/realtime-sessions-adapter.test.js.map +1 -0
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +2 -0
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-surface-panel-prefs.test.js +100 -0
- package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +1 -0
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +2 -0
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +1 -0
- package/dist/__tests__/realtime-surface-tabs-model.test.js +193 -0
- package/dist/__tests__/realtime-surface-tabs-model.test.js.map +1 -0
- package/dist/__tests__/remote-browser-audio-player.test.d.ts +2 -0
- package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +1 -0
- package/dist/__tests__/remote-browser-audio-player.test.js +137 -0
- package/dist/__tests__/remote-browser-audio-player.test.js.map +1 -0
- package/dist/__tests__/remote-browser-channel.test.d.ts +2 -0
- package/dist/__tests__/remote-browser-channel.test.d.ts.map +1 -0
- package/dist/__tests__/remote-browser-channel.test.js +423 -0
- package/dist/__tests__/remote-browser-channel.test.js.map +1 -0
- package/dist/__tests__/slot-defaults.test.d.ts +24 -0
- package/dist/__tests__/slot-defaults.test.d.ts.map +1 -0
- package/dist/__tests__/slot-defaults.test.js +63 -0
- package/dist/__tests__/slot-defaults.test.js.map +1 -0
- package/dist/__tests__/user-authorization.test.d.ts +2 -0
- package/dist/__tests__/user-authorization.test.d.ts.map +1 -0
- package/dist/__tests__/user-authorization.test.js +97 -0
- package/dist/__tests__/user-authorization.test.js.map +1 -0
- package/dist/__tests__/voice-session-narration.test.d.ts +2 -0
- package/dist/__tests__/voice-session-narration.test.d.ts.map +1 -0
- package/dist/__tests__/voice-session-narration.test.js +609 -0
- package/dist/__tests__/voice-session-narration.test.js.map +1 -0
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +2 -0
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +1 -0
- package/dist/__tests__/whiteboard-artifact-viewer.test.js +101 -0
- package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +1 -0
- package/dist/__tests__/whiteboard-channel.test.d.ts +2 -0
- package/dist/__tests__/whiteboard-channel.test.d.ts.map +1 -0
- package/dist/__tests__/whiteboard-channel.test.js +260 -0
- package/dist/__tests__/whiteboard-channel.test.js.map +1 -0
- package/dist/__tests__/whiteboard-restore-state.test.d.ts +2 -0
- package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +1 -0
- package/dist/__tests__/whiteboard-restore-state.test.js +108 -0
- package/dist/__tests__/whiteboard-restore-state.test.js.map +1 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +205 -3
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +911 -342
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.js +35 -17
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts +4 -0
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +43 -19
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts +17 -1
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +73 -15
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +142 -6
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +328 -82
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +28 -3
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +180 -108
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +81 -2
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +252 -87
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +282 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +158 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -0
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts +25 -0
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js +140 -0
- package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js.map +1 -0
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +35 -0
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +58 -0
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +63 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +260 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +117 -0
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-agent-banner.component.js +504 -0
- package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +168 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.js +556 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +97 -0
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-audio-visuals.js +139 -0
- package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -0
- package/dist/lib/components/realtime/realtime-channel-strip.component.d.ts +29 -0
- package/dist/lib/components/realtime/realtime-channel-strip.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-channel-strip.component.js +69 -0
- package/dist/lib/components/realtime/realtime-channel-strip.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-composer.component.d.ts +65 -0
- package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-composer.component.js +256 -0
- package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +71 -0
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-delegation-card.component.js +324 -0
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-disclosure.d.ts +135 -0
- package/dist/lib/components/realtime/realtime-disclosure.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-disclosure.js +188 -0
- package/dist/lib/components/realtime/realtime-disclosure.js.map +1 -0
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +491 -0
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +1274 -0
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-session-state.d.ts +191 -0
- package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-session-state.js +244 -0
- package/dist/lib/components/realtime/realtime-session-state.js.map +1 -0
- package/dist/lib/components/realtime/realtime-session-thread.component.d.ts +56 -0
- package/dist/lib/components/realtime/realtime-session-thread.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-session-thread.component.js +246 -0
- package/dist/lib/components/realtime/realtime-session-thread.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +51 -0
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +193 -0
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-panel-prefs.d.ts +77 -0
- package/dist/lib/components/realtime/realtime-surface-panel-prefs.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-panel-prefs.js +114 -0
- package/dist/lib/components/realtime/realtime-surface-panel-prefs.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +173 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +496 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +181 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +223 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.d.ts +163 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.d.ts.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.js +309 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-audio-player.js.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +168 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +524 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts +346 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js +851 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts +86 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts.map +1 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js +210 -0
- package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js.map +1 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.d.ts +48 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.js +180 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component.js.map +1 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +119 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +274 -0
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -0
- package/dist/lib/components/slots/mj-chat-agent-presence-default.component.d.ts +11 -0
- package/dist/lib/components/slots/mj-chat-agent-presence-default.component.d.ts.map +1 -0
- package/dist/lib/components/slots/mj-chat-agent-presence-default.component.js +98 -0
- package/dist/lib/components/slots/mj-chat-agent-presence-default.component.js.map +1 -0
- package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.d.ts +9 -0
- package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.d.ts.map +1 -0
- package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.js +35 -0
- package/dist/lib/components/slots/mj-chat-demonstration-surface-default.component.js.map +1 -0
- package/dist/lib/components/slots/mj-chat-empty-state-default.component.d.ts +28 -0
- package/dist/lib/components/slots/mj-chat-empty-state-default.component.d.ts.map +1 -0
- package/dist/lib/components/slots/mj-chat-empty-state-default.component.js +104 -0
- package/dist/lib/components/slots/mj-chat-empty-state-default.component.js.map +1 -0
- package/dist/lib/components/slots/mj-chat-header-default.component.d.ts +11 -0
- package/dist/lib/components/slots/mj-chat-header-default.component.d.ts.map +1 -0
- package/dist/lib/components/slots/mj-chat-header-default.component.js +103 -0
- package/dist/lib/components/slots/mj-chat-header-default.component.js.map +1 -0
- package/dist/lib/components/slots/mj-chat-message-bubble-default.component.d.ts +15 -0
- package/dist/lib/components/slots/mj-chat-message-bubble-default.component.d.ts.map +1 -0
- package/dist/lib/components/slots/mj-chat-message-bubble-default.component.js +73 -0
- package/dist/lib/components/slots/mj-chat-message-bubble-default.component.js.map +1 -0
- package/dist/lib/components/slots/mj-chat-message-extra-default.component.d.ts +9 -0
- package/dist/lib/components/slots/mj-chat-message-extra-default.component.d.ts.map +1 -0
- package/dist/lib/components/slots/mj-chat-message-extra-default.component.js +34 -0
- package/dist/lib/components/slots/mj-chat-message-extra-default.component.js.map +1 -0
- package/dist/lib/components/slots/slot-interfaces.d.ts +95 -0
- package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -0
- package/dist/lib/components/slots/slot-interfaces.js +18 -0
- package/dist/lib/components/slots/slot-interfaces.js.map +1 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +11 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +28 -4
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +12 -1
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +93 -5
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/directives/chat-slot.directive.d.ts +44 -0
- package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -0
- package/dist/lib/directives/chat-slot.directive.js +54 -0
- package/dist/lib/directives/chat-slot.directive.js.map +1 -0
- package/dist/lib/events/chat-events.d.ts +137 -0
- package/dist/lib/events/chat-events.d.ts.map +1 -0
- package/dist/lib/events/chat-events.js +189 -0
- package/dist/lib/events/chat-events.js.map +1 -0
- package/dist/lib/models/conversation-state.model.d.ts +2 -1
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/models/conversation-state.model.js.map +1 -1
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-state.service.js +23 -6
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +60 -74
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +100 -313
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-bridge.service.d.ts +11 -70
- package/dist/lib/services/conversation-bridge.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-bridge.service.js +51 -85
- package/dist/lib/services/conversation-bridge.service.js.map +1 -1
- package/dist/lib/services/conversation-naming.d.ts +63 -0
- package/dist/lib/services/conversation-naming.d.ts.map +1 -0
- package/dist/lib/services/conversation-naming.js +58 -0
- package/dist/lib/services/conversation-naming.js.map +1 -0
- package/dist/lib/services/conversation-streaming.service.d.ts +24 -154
- package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-streaming.service.js +39 -361
- package/dist/lib/services/conversation-streaming.service.js.map +1 -1
- package/dist/lib/services/conversations-runtime-bootstrap.service.d.ts +10 -0
- package/dist/lib/services/conversations-runtime-bootstrap.service.d.ts.map +1 -0
- package/dist/lib/services/conversations-runtime-bootstrap.service.js +104 -0
- package/dist/lib/services/conversations-runtime-bootstrap.service.js.map +1 -0
- package/dist/lib/services/delegation-result-parser.d.ts +45 -0
- package/dist/lib/services/delegation-result-parser.d.ts.map +1 -0
- package/dist/lib/services/delegation-result-parser.js +48 -0
- package/dist/lib/services/delegation-result-parser.js.map +1 -0
- package/dist/lib/services/mention-autocomplete.service.d.ts +19 -4
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +65 -4
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.d.ts +8 -53
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
- package/dist/lib/services/mention-parser.service.js +32 -243
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/narration-template.d.ts +42 -0
- package/dist/lib/services/narration-template.d.ts.map +1 -0
- package/dist/lib/services/narration-template.js +73 -0
- package/dist/lib/services/narration-template.js.map +1 -0
- package/dist/lib/services/realtime-pairing.d.ts +120 -0
- package/dist/lib/services/realtime-pairing.d.ts.map +1 -0
- package/dist/lib/services/realtime-pairing.js +150 -0
- package/dist/lib/services/realtime-pairing.js.map +1 -0
- package/dist/lib/services/realtime-session-review.service.d.ts +233 -0
- package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -0
- package/dist/lib/services/realtime-session-review.service.js +417 -0
- package/dist/lib/services/realtime-session-review.service.js.map +1 -0
- package/dist/lib/services/realtime-session.service.d.ts +739 -0
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -0
- package/dist/lib/services/realtime-session.service.js +1647 -0
- package/dist/lib/services/realtime-session.service.js.map +1 -0
- package/dist/lib/services/realtime-sessions-adapter.d.ts +54 -0
- package/dist/lib/services/realtime-sessions-adapter.d.ts.map +1 -0
- package/dist/lib/services/realtime-sessions-adapter.js +154 -0
- package/dist/lib/services/realtime-sessions-adapter.js.map +1 -0
- package/dist/lib/services/user-authorization.d.ts +67 -0
- package/dist/lib/services/user-authorization.d.ts.map +1 -0
- package/dist/lib/services/user-authorization.js +66 -0
- package/dist/lib/services/user-authorization.js.map +1 -0
- package/dist/lib/utils/realtime-session-timeline.d.ts +84 -0
- package/dist/lib/utils/realtime-session-timeline.d.ts.map +1 -0
- package/dist/lib/utils/realtime-session-timeline.js +94 -0
- package/dist/lib/utils/realtime-session-timeline.js.map +1 -0
- package/dist/public-api.d.ts +41 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +50 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +27 -24
- package/dist/__tests__/conversation-bridge.service.test.d.ts +0 -2
- package/dist/__tests__/conversation-bridge.service.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-bridge.service.test.js +0 -98
- package/dist/__tests__/conversation-bridge.service.test.js.map +0 -1
- package/dist/__tests__/mention-parser.test.d.ts +0 -2
- package/dist/__tests__/mention-parser.test.d.ts.map +0 -1
- package/dist/__tests__/mention-parser.test.js +0 -154
- package/dist/__tests__/mention-parser.test.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime-agent-banner.component.js","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-agent-banner.component.ts","../../../../src/lib/components/realtime/realtime-agent-banner.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;;;;;ICSvC,+BAAwC;IAAA,YAAsB;IAAA,iBAAO;;;IAA7B,cAAsB;IAAtB,6CAAsB;;;IAG9D,+BAAqF;IAAA,YAA4B;IAAA,iBAAO;;;IAAlF,mEAA8C;IAAC,cAA4B;IAA5B,mDAA4B;;;;IAGjH,kCAC8C;IADP,+MAAS,oBAAa,KAAC;IAE5D,wBAAyE;IACzE,4BAAM;IAAA,4BAAY;IACpB,AADoB,iBAAO,EAClB;;;;IAhBb,yBAAkE;IAGhE,AADF,8BAAwB,cACK;IAAA,YAAyB;IAAA,iBAAO;IAC3D,+BAAgC;IAAA,uBAAgE;IAAC,+BAAc;IAAA,iBAAO;IACtH,6GAAwB;IAGxB,6GAA8B;IAG9B,+GAAuB;IAOzB,iBAAM;IAEN,+BAAiD;IAC/C,yBAA0D;IAC1D,iCAA8D;IAAA,uCAAsB;IACtF,AADsF,iBAAO,EACvF;IAGJ,AADF,gCAAyB,kBAEgC;IADT,iMAAS,gCAAyB,KAAC;IAE/E,yBAAoD;IACpD,6BAAM;IAAA,mCAAkB;IAC1B,AAD0B,iBAAO,EACxB;IACT,mCAC+D;IAD3B,iMAAS,4BAAqB,KAAC;IAEjE,yBAAoD;IAExD,AADE,iBAAS,EACL;;;IAhCuB,eAAyB;IAAzB,qDAAyB;IAEpD,eAEC;IAFD,kDAEC;IACD,cAEC;IAFD,wDAEC;IACD,cAMC;IAND,iDAMC;;;IA2BC,gCAA2E;IAAA,YAAiB;IAAA,iBAAO;;;IAAvE,mEAA8C;IAAC,cAAiB;IAAjB,kDAAiB;;;;IAG5F,kCAC8C;IADP,gNAAS,oBAAa,KAAC;IAE5D,wBAAyE;IACzE,4BAAM;IAAA,4BAAY;IACpB,AADoB,iBAAO,EAClB;;;IAMT,wBAA8D;;;IAE9D,+BAAuF;IAE9C,AAAb,AAAb,AAAb,AADuC,AAAb,AAAb,AAAb,uBAAa,WAAa,WAAa,WAAa,WACvC,WAAa,WAAa,WAAa;IACtD,iBAAM;;;IAHgB,6DAA6C;;;;IAWnE,kCAE0D;IAFtB,gNAAS,gCAAyB,KAAC;IAGrE,wBAAyD;IAC3D,iBAAS;;;;IAGT,kCAGyC;IAFjC,gNAAS,uBAAgB,KAAC;IAGhC,wBAAgE;IAClE,iBAAS;;;IAL2B,8CAA8B;IAE1D,6EAAwD;;;;;IAMhE,kCAGwC;IAFhC,sNAAS,yBAAkB,KAAC;IAGlC,wBAAmD;IACrD,iBAAS;;;IAL2B,8DAAuC;;;;;IAQ3E,kCAE4C;IAFR,gNAAS,+BAAwB,KAAC;IAGpE,wBAA+E;IACjF,iBAAS;;;;IAGT,2BAAgD;IAChD,kCACmD;IADZ,gNAAS,0BAAmB,KAAC;IAElE,wBAA0D;IAC1D,4BAAM;IAAA,wBAAQ;IAChB,AADgB,iBAAO,EACd;;;;IAYH,kCAE6D;IADrD,+OAAS,+BAAoB,KAAC;IACuB,YAAa;IAAA,iBAAS;;;;IAF7D,kDAA8B;;IAES,cAAa;IAAb,iCAAa;;;;IARlF,+BAAqG;IAA/E,gLAAS,wBAAwB,KAAC;IACtD,+BAAkB;IAAA,yBAAS;IAAA,iBAAM;IAE/B,AADF,+BAAoB,eACC;IAAA,uBAAO;IAAA,iBAAO;IACjC,+BAAqE;IACnE,gIAIC;IAEL,AADE,iBAAM,EACF;IACN,+BAAqB;IAAA,gGAA+E;IAAA,iBAAM;IAC1G,2BAA0B;IAC1B,mCAA0F;IAApD,kNAAS,kBAAW,KAAC;IACzD,yBAAkG;IAClG,aACF;IACF,AADE,iBAAS,EACL;;;IAbA,eAIC;IAJD,+BAIC;IAKuD,eAA6B;;IACnE,cAAsD;IAAtD,2EAAsD;IAC1E,cACF;IADE,8EACF;;;IA3FJ,0BAAoF;IAGlF,AADF,8BAAwB,cACK;IAAA,YAAyB;IAAA,iBAAO;IAC3D,gCAA8B;IAAA,wBAAsD;IAAC,yBAAQ;IAAA,iBAAO;IACpG,gCAA0B;IAAA,4BAAY;IAAA,yBAAG;IAAA,aAAe;IAAI,AAAJ,iBAAI,EAAO;IACnE,gHAAiB;IAGjB,iHAAuB;IAOzB,iBAAM;IAEN,gCAAuE;IAGnE,AAFF,6GAAqB,yFAEZ;IAMT,iCAAkC;IAAA,aAAuB;IAC3D,AAD2D,iBAAO,EAC5D;IAGN,gCAAyB;IACvB,kHAAqB;IAOrB,kHAA2B;IAQ3B,kHAAgB;IAQhB,kHAAoB;IAOpB,oGAAe;IAQjB,iBAAM;IAGN,gHAAgB;;;;IAtEa,eAAyB;IAAzB,qDAAyB;IAEX,eAAe;IAAf,sCAAe;IACxD,cAEC;IAFD,4CAEC;IACD,cAMC;IAND,kDAMC;IAGwB,cAA2C;IAA3C,kEAA2C;IACpE,cAOC;IAPD,uDAOC;IACiC,eAAuB;IAAvB,qDAAuB;IAKzD,eAMC;IAND,gDAMC;IACD,cAOC;IAPD,sDAOC;IACD,cAOC;IAPD,2CAOC;IACD,cAMC;IAND,+CAMC;IACD,cAOC;IAPD,0CAOC;IAIH,cAoBC;IApBD,2CAoBC;;ADjIL;;;;;;;;;;;;;;;;;GAiBG;AAQH,MAAM,OAAO,4BAA4B;IACvC,gFAAgF;IACrD,KAAK,CAAwB;IAExD,wEAAwE;IAC/D,SAAS,GAAG,WAAW,CAAC;IAEjC;;;OAGG;IACM,SAAS,GAAkB,IAAI,CAAC;IAEzC,yFAAyF;IAChF,OAAO,GAAG,KAAK,CAAC;IAEzB,wFAAwF;IAC/E,SAAS,GAAkB,IAAI,CAAC;IAEzC;;;;OAIG;IACM,UAAU,GAAG,KAAK,CAAC;IAE5B,wEAAwE;IAC/D,eAAe,GAAgB,IAAI,CAAC;IAE7C,kFAAkF;IACzE,cAAc,GAAgB,IAAI,CAAC;IAE5C,+GAA+G;IACtG,iBAAiB,GAAkB,IAAI,CAAC;IAEjD,+EAA+E;IAE/E,mFAAmF;IAC1E,UAAU,GAAG,IAAI,CAAC;IAE3B,kEAAkE;IACzD,mBAAmB,GAAG,KAAK,CAAC;IAErC,0FAA0F;IACjF,QAAQ,GAAG,KAAK,CAAC;IAE1B,4FAA4F;IACnF,OAAO,GAAG,KAAK,CAAC;IAEzB,iEAAiE;IACxD,YAAY,GAAG,KAAK,CAAC;IAE9B,4FAA4F;IACnF,aAAa,GAAG,KAAK,CAAC;IAE/B,0FAA0F;IACjF,OAAO,GAAsB,MAAM,CAAC;IAE7C,wFAAwF;IAC9E,oBAAoB,GAAG,IAAI,YAAY,EAAU,CAAC;IAE5D,mFAAmF;IACzE,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;IAExD,2EAA2E;IACjE,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;IAEvD,4EAA4E;IAClE,cAAc,GAAG,IAAI,YAAY,EAAqB,CAAC;IAEjE,2EAA2E;IACjE,iBAAiB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAEvD,8FAA8F;IACpF,kBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAExD,uEAAuE;IAC7D,YAAY,GAAG,IAAI,YAAY,EAAQ,CAAC;IAElD,qFAAqF;IAC3E,kBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAExD,sFAAsF;IAC5E,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;IAEpD,sEAAsE;IAC/D,QAAQ,GAAG,KAAK,CAAC;IAExB,qEAAqE;IACrD,SAAS,GAA6D;QACpF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QAClC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QACtC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;QAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;KAC/B,CAAC;IAEF,wFAAwF;IACxF,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,wEAAwE;IACjE,WAAW;QAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,6DAA6D;IACtD,cAAc;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,6FAA6F;IACtF,UAAU,CAAC,KAAiB;QACjC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,iDAAiD;IAE1C,eAAe;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,mFAAmF;IAC5E,aAAa,CAAC,OAA0B;QAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,4CAA4C;IACrC,SAAS;QACd,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,iGAAiG;IACjG,IAAW,gBAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,GAAG,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,oEAAoE;IACpE,IAAW,sBAAsB;QAC/B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,KAAK,UAAU,CAAC,CAAC,OAAO,eAAe,CAAC;YACxC,KAAK,SAAS,CAAC,CAAC,OAAO,mBAAmB,CAAC;YAC3C,KAAK,UAAU,CAAC,CAAC,OAAO,oBAAoB,CAAC;YAC7C,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC;YACxC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,iFAAiF;IACzE,WAAW,CAAC,IAAU,EAAE,SAAuB;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/F,IAAI,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IACvF,CAAC;IAED,kGAAkG;IAC3F,QAAQ,CAAC,KAA2B;QACzC,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,OAAO,CAAC,CAAC,OAAO,WAAW,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,qEAAqE;IAC9D,UAAU,CAAC,KAA2B;QAC3C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,YAAY,CAAC,CAAC,OAAO,aAAa,CAAC;YACxC,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;YACrC,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,eAAe,CAAC;YACzD,KAAK,UAAU,CAAC,CAAC,OAAO,gBAAgB,CAAC;YACzC,KAAK,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC;YACxC,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC;YACnC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,+EAA+E;IACxE,MAAM,CAAC,KAA2B;QACvC,OAAO,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,UAAU,CAAC;IACxD,CAAC;sHApMU,4BAA4B;6DAA5B,4BAA4B;YAA5B,iGAAA,qBAAiB,0BAAW;;YC9BzC,8BAAwD;YAwCpD,AAvCF,qFAAkB,gEAuCT;YAgGX,iBAAM;;YAxIc,gDAAmC;YACrD,cAsIC;YAtID,wCAsIC;4BD7GS,YAAY;;iFAIX,4BAA4B;cAPxC,SAAS;6BACI,IAAI,YACN,0BAA0B,WAC3B,CAAC,YAAY,CAAC;;kBAMtB,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;kBAGxB,KAAK;;kBAML,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAOL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAKL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAGL,KAAK;;kBAGL,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAGN,MAAM;;kBAsCN,YAAY;mBAAC,gBAAgB;;kFAzHnB,4BAA4B","sourcesContent":["import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VoiceConnectionState } from '../../services/realtime-session.service';\nimport { RealtimeUxDensity } from './realtime-disclosure';\n\n/**\n * The call overlay's UNIFIED APP-BAR (per Redesign A — `plans/realtime/mockups/redesign-a.html`):\n * ONE header that owns identity, state, and every session action.\n *\n * - LEFT: the glowing agent orb (motion = turn-state), agent name + \"Co-Agent\" badge,\n * \"speaking as\" subline (+ subtle realtime-model suffix), and the state pill that swaps\n * between a waveform (speaking/listening) and a spinner (connecting/thinking).\n * - RIGHT (live): the disclosure-gated action cluster — Captions toggle (level 1+), the\n * gear (level 2+, opens a popover hosting the Simple/Standard/Pro/Auto INTERFACE DENSITY\n * control — the progressive-disclosure escape hatch — plus the developer-links toggle),\n * Minimize (hide the call view, call stays live), and the End-call pill (level 2+; below\n * that the phone-call strip's big End control owns ending).\n * - RIGHT (review): \"Start live session\" (resume, affirmative leads) + Close — the\n * review session's exit lives up here in the header bar, not floating in the body.\n *\n * Which controls render is decided by the OVERLAY (it owns the disclosure model) and\n * passed down as booleans — this component stays purely presentational.\n */\n@Component({\n standalone: true,\n selector: 'mj-realtime-agent-banner',\n imports: [CommonModule],\n templateUrl: './realtime-agent-banner.component.html',\n styleUrl: './realtime-agent-banner.component.css'\n})\nexport class RealtimeAgentBannerComponent {\n /** Current connection / turn state — drives the orb animation + state label. */\n @Input({ required: true }) State!: VoiceConnectionState;\n\n /** Display name of the agent the voice session fronts (e.g. \"Sage\"). */\n @Input() AgentName = 'the agent';\n\n /**\n * Display name of the realtime model the live session runs on (e.g. \"GPT Realtime 2\").\n * Rendered as a subtle suffix in the identity line; hidden when null/empty.\n */\n @Input() ModelName: string | null = null;\n\n /** Whether developer affordances (the \"Open session\" link) are revealed (gear-gated). */\n @Input() DevMode = false;\n\n /** ID of the server-side agent session record (`MJ: AI Agent Sessions`), when known. */\n @Input() SessionID: string | null = null;\n\n /**\n * SESSION REVIEW presentation: the banner shows the past session's identity\n * (review badge, started→closed range, close-reason chip) instead of live turn-state,\n * and the action cluster swaps to Start-live + Close.\n */\n @Input() ReviewMode = false;\n\n /** When reviewing: when the past session started (`__mj_CreatedAt`). */\n @Input() ReviewStartedAt: Date | null = null;\n\n /** When reviewing: when the past session closed (null while it is still open). */\n @Input() ReviewClosedAt: Date | null = null;\n\n /** When reviewing: why the past session closed (`Explicit` | `Janitor` | `Shutdown` | `Error`), when known. */\n @Input() ReviewCloseReason: string | null = null;\n\n // ── App-bar action cluster (disclosure-gated by the overlay) ────────────────\n\n /** Whether captions are currently shown (active state on the captions control). */\n @Input() CaptionsOn = true;\n\n /** Whether the captions control renders (disclosure level 1+). */\n @Input() ShowCaptionsControl = false;\n\n /** Whether the gear (density escape hatch + dev toggle) renders (disclosure level 2+). */\n @Input() ShowGear = false;\n\n /** Whether the End-call pill renders here (level 2+; the strip's big End owns it below). */\n @Input() ShowEnd = false;\n\n /** Whether the Minimize control renders (live sessions only). */\n @Input() ShowMinimize = false;\n\n /** Whether the \"Return to pure audio\" control renders (live + disclosure level above 0). */\n @Input() ShowPureAudio = false;\n\n /** The user's current interface-density override (selected state in the gear popover). */\n @Input() Density: RealtimeUxDensity = 'auto';\n\n /** Emitted with the session record's ID when the dev \"Open session\" link is clicked. */\n @Output() OpenSessionRequested = new EventEmitter<string>();\n\n /** Emitted when the user toggles captions; the overlay flips its caption state. */\n @Output() CaptionsToggled = new EventEmitter<boolean>();\n\n /** Emitted when the user toggles developer links from the gear popover. */\n @Output() DevModeToggled = new EventEmitter<boolean>();\n\n /** Emitted when the user picks an interface density in the gear popover. */\n @Output() DensityChanged = new EventEmitter<RealtimeUxDensity>();\n\n /** Emitted when the user minimizes the call view (the call stays live). */\n @Output() MinimizeRequested = new EventEmitter<void>();\n\n /** Emitted when the user asks to return to the pure-audio surface (level 0, this session). */\n @Output() PureAudioRequested = new EventEmitter<void>();\n\n /** Emitted when the user ends the call from the app-bar's End pill. */\n @Output() EndRequested = new EventEmitter<void>();\n\n /** Review only: the user asked to RESUME the reviewed session as a new live call. */\n @Output() StartLiveRequested = new EventEmitter<void>();\n\n /** Review only: the user asked to close the review and return to the conversation. */\n @Output() CloseRequested = new EventEmitter<void>();\n\n /** Whether the gear popover is open (closed by any outside click). */\n public GearOpen = false;\n\n /** The density choices the gear popover offers, in display order. */\n public readonly Densities: ReadonlyArray<{ Key: RealtimeUxDensity; Label: string }> = [\n { Key: 'simple', Label: 'Simple' },\n { Key: 'standard', Label: 'Standard' },\n { Key: 'pro', Label: 'Pro' },\n { Key: 'auto', Label: 'Auto' }\n ];\n\n /** True when the dev \"Open session\" link should render (gear on + session id known). */\n public get ShowOpenSession(): boolean {\n return this.DevMode && !!this.SessionID;\n }\n\n /** Emits the open-session request for the live agent session record. */\n public OpenSession(): void {\n if (this.SessionID) {\n this.OpenSessionRequested.emit(this.SessionID);\n }\n }\n\n /** Toggles the captions control and notifies the overlay. */\n public ToggleCaptions(): void {\n this.CaptionsOn = !this.CaptionsOn;\n this.CaptionsToggled.emit(this.CaptionsOn);\n }\n\n /** Opens/closes the gear popover (stops propagation so the outside-click close skips it). */\n public ToggleGear(event: MouseEvent): void {\n event.stopPropagation();\n this.GearOpen = !this.GearOpen;\n }\n\n /** Any outside click closes the gear popover. */\n @HostListener('document:click')\n public OnDocumentClick(): void {\n if (this.GearOpen) {\n this.GearOpen = false;\n }\n }\n\n /** Gear popover: pick an interface density (the overlay applies + persists it). */\n public SelectDensity(density: RealtimeUxDensity): void {\n this.DensityChanged.emit(density);\n }\n\n /** Gear popover: toggle developer links. */\n public ToggleDev(): void {\n this.DevMode = !this.DevMode;\n this.DevModeToggled.emit(this.DevMode);\n }\n\n /** The review banner's \"started → closed\" time-range label (empty when the start is unknown). */\n public get ReviewRangeLabel(): string {\n if (!this.ReviewStartedAt) {\n return '';\n }\n const start = this.formatStamp(this.ReviewStartedAt);\n if (!this.ReviewClosedAt) {\n return start;\n }\n return `${start} → ${this.formatStamp(this.ReviewClosedAt, this.ReviewStartedAt)}`;\n }\n\n /** Human label for the close-reason chip (empty hides the chip). */\n public get ReviewCloseReasonLabel(): string {\n switch (this.ReviewCloseReason) {\n case 'Explicit': return 'Ended by user';\n case 'Janitor': return 'Closed by janitor';\n case 'Shutdown': return 'Closed at shutdown';\n case 'Error': return 'Ended with error';\n default: return '';\n }\n }\n\n /** Compact date+time stamp; same-day end stamps drop the redundant date part. */\n private formatStamp(date: Date, sameDayAs?: Date | null): string {\n const time = date.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }).toLowerCase();\n if (sameDayAs && date.toDateString() === sameDayAs.toDateString()) {\n return time;\n }\n return `${date.toLocaleDateString([], { month: 'short', day: 'numeric' })}, ${time}`;\n }\n\n /** Maps the realtime state to the orb's `data-state` (the orb only models active turn-states). */\n public OrbState(state: VoiceConnectionState): 'speaking' | 'listening' | 'thinking' {\n switch (state) {\n case 'speaking': return 'speaking';\n case 'thinking': return 'thinking';\n default: return 'listening';\n }\n }\n\n /** Human-readable state label, agent-aware where it reads better. */\n public StateLabel(state: VoiceConnectionState): string {\n switch (state) {\n case 'connecting': return 'Connecting…';\n case 'listening': return 'Listening';\n case 'speaking': return `${this.AgentName} is speaking…`;\n case 'thinking': return 'Working on it…';\n case 'error': return 'Connection error';\n case 'closed': return 'Call ended';\n default: return '';\n }\n }\n\n /** True while the state pill should show a spinner instead of the waveform. */\n public IsBusy(state: VoiceConnectionState): boolean {\n return state === 'connecting' || state === 'thinking';\n }\n}\n","<div class=\"banner\" [class.banner--review]=\"ReviewMode\">\n @if (ReviewMode) {\n <!-- SESSION REVIEW: static orb · name · review badge · started→closed · close-reason chip,\n with the review's exit actions up here in the header bar (Start live leads, Close trails). -->\n <div class=\"agent-orb agent-orb--review\" aria-hidden=\"true\"></div>\n\n <div class=\"banner__id\">\n <span class=\"banner__name\">Voice for {{ AgentName }}</span>\n <span class=\"pill pill--review\"><i class=\"fa-solid fa-clock-rotate-left\" aria-hidden=\"true\"></i> Session review</span>\n @if (ReviewRangeLabel) {\n <span class=\"banner__for banner__range\">{{ ReviewRangeLabel }}</span>\n }\n @if (ReviewCloseReasonLabel) {\n <span class=\"pill pill--close-reason\" [title]=\"'Close reason: ' + ReviewCloseReason\">{{ ReviewCloseReasonLabel }}</span>\n }\n @if (ShowOpenSession) {\n <button type=\"button\" class=\"dev-link\" (click)=\"OpenSession()\"\n title=\"Open the agent session record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open session</span>\n </button>\n }\n </div>\n\n <div class=\"banner__state banner__state--review\">\n <i class=\"fa-solid fa-box-archive\" aria-hidden=\"true\"></i>\n <span class=\"banner__state-label banner__state-label--review\">Reviewing past session</span>\n </div>\n\n <div class=\"bar-actions\">\n <button type=\"button\" class=\"start-live-pill\" (click)=\"StartLiveRequested.emit()\"\n title=\"Resume this session as a new live call\">\n <i class=\"fa-solid fa-phone\" aria-hidden=\"true\"></i>\n <span>Start live session</span>\n </button>\n <button type=\"button\" class=\"iconb\" (click)=\"CloseRequested.emit()\"\n title=\"Close review\" aria-label=\"Close session review\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n } @else {\n <div class=\"agent-orb\" [attr.data-state]=\"OrbState(State)\" aria-hidden=\"true\"></div>\n\n <div class=\"banner__id\">\n <span class=\"banner__name\">Voice for {{ AgentName }}</span>\n <span class=\"pill pill--sage\"><i class=\"fa-solid fa-feather\" aria-hidden=\"true\"></i> Co-Agent</span>\n <span class=\"banner__for\">speaking as <b>{{ AgentName }}</b></span>\n @if (ModelName) {\n <span class=\"banner__model\" [title]=\"'Realtime voice model: ' + ModelName\">· {{ ModelName }}</span>\n }\n @if (ShowOpenSession) {\n <button type=\"button\" class=\"dev-link\" (click)=\"OpenSession()\"\n title=\"Open the agent session record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open session</span>\n </button>\n }\n </div>\n\n <div class=\"banner__state\" [class.banner__state--busy]=\"IsBusy(State)\">\n @if (IsBusy(State)) {\n <i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n } @else {\n <div class=\"waveform\" [class.waveform--idle]=\"State !== 'speaking'\" aria-hidden=\"true\">\n <span></span><span></span><span></span><span></span>\n <span></span><span></span><span></span><span></span>\n </div>\n }\n <span class=\"banner__state-label\">{{ StateLabel(State) }}</span>\n </div>\n\n <!-- Disclosure-gated app-bar action cluster (the overlay decides what renders). -->\n <div class=\"bar-actions\">\n @if (ShowPureAudio) {\n <button type=\"button\" class=\"iconb\" (click)=\"PureAudioRequested.emit()\"\n title=\"Pure audio — simplest view, just the orb and the voice (sticks until you change it in the gear)\"\n aria-label=\"Switch to the simple pure-audio view\">\n <i class=\"fa-solid fa-headphones\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowCaptionsControl) {\n <button type=\"button\" class=\"iconb\" [class.iconb--on]=\"CaptionsOn\"\n (click)=\"ToggleCaptions()\"\n [title]=\"CaptionsOn ? 'Hide captions' : 'Show captions'\"\n [attr.aria-pressed]=\"CaptionsOn\">\n <i class=\"fa-solid fa-closed-captioning\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowGear) {\n <button type=\"button\" class=\"iconb\" [class.iconb--on]=\"GearOpen || DevMode\"\n (click)=\"ToggleGear($event)\"\n title=\"Interface density & developer links\"\n [attr.aria-expanded]=\"GearOpen\">\n <i class=\"fa-solid fa-gear\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowMinimize) {\n <button type=\"button\" class=\"iconb\" (click)=\"MinimizeRequested.emit()\"\n title=\"Hide the call view — the call stays live\"\n aria-label=\"Minimize the call view\">\n <i class=\"fa-solid fa-down-left-and-up-right-to-center\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowEnd) {\n <span class=\"bar-sep\" aria-hidden=\"true\"></span>\n <button type=\"button\" class=\"end-pill\" (click)=\"EndRequested.emit()\"\n title=\"End call\" aria-label=\"End the call\">\n <i class=\"fa-solid fa-phone-slash\" aria-hidden=\"true\"></i>\n <span>End call</span>\n </button>\n }\n </div>\n\n <!-- Gear popover: interface density (the disclosure escape hatch) + developer links. -->\n @if (GearOpen) {\n <div class=\"gear-pop\" (click)=\"$event.stopPropagation()\" role=\"menu\" aria-label=\"Interface settings\">\n <div class=\"gp-h\">Interface</div>\n <div class=\"gp-row\">\n <span class=\"gp-l\">Density</span>\n <div class=\"gp-seg\" role=\"radiogroup\" aria-label=\"Interface density\">\n @for (d of Densities; track d.Key) {\n <button type=\"button\" [class.on]=\"Density === d.Key\"\n (click)=\"SelectDensity(d.Key)\"\n [attr.aria-checked]=\"Density === d.Key\" role=\"radio\">{{ d.Label }}</button>\n }\n </div>\n </div>\n <div class=\"gp-note\">Simple returns to the pure-audio surface. Auto grows the console as you use it.</div>\n <div class=\"gp-div\"></div>\n <button type=\"button\" class=\"gp-link\" (click)=\"ToggleDev()\" [attr.aria-pressed]=\"DevMode\">\n <i class=\"fa-solid\" [ngClass]=\"DevMode ? 'fa-toggle-on' : 'fa-toggle-off'\" aria-hidden=\"true\"></i>\n Developer links {{ DevMode ? 'on' : 'off' }}\n </button>\n </div>\n }\n }\n</div>\n"]}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, AfterViewInit } from '@angular/core';
|
|
2
|
+
import type { MJAIAgentEntityExtended } from '@memberjunction/ai-core-plus';
|
|
3
|
+
import { UUIDsEqual } from '@memberjunction/global';
|
|
4
|
+
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
5
|
+
import { RealtimeModelOption, RealtimePairedAgentRow } from '../../services/realtime-pairing';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* The user's confirmed choice from the realtime picker: the agent to call, an optional
|
|
9
|
+
* EXPLICIT realtime model (`null` = "Auto (recommended)", i.e. let the server pick —
|
|
10
|
+
* always `null` for users without the `Realtime: Advanced Session Controls`
|
|
11
|
+
* authorization, who never see the model selector), and an optional EXPLICIT co-agent
|
|
12
|
+
* (`null` = the server's co-agent resolution chain).
|
|
13
|
+
*/
|
|
14
|
+
export interface RealtimeAgentPick {
|
|
15
|
+
/** The agent the voice call should front. */
|
|
16
|
+
Agent: MJAIAgentEntityExtended;
|
|
17
|
+
/** Explicit realtime model id, or `null` for the server's automatic selection. */
|
|
18
|
+
PreferredModelId: string | null;
|
|
19
|
+
/** Explicit co-agent id (`MJ: AI Agents.ID`, Realtime type), or `null` for the server's resolution chain. */
|
|
20
|
+
CoAgentId: string | null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Compact anchored popover that lets the user choose WHICH agent a realtime
|
|
24
|
+
* voice call should front — shown by {@link MessageInputComponent} when the
|
|
25
|
+
* phone button is clicked on a conversation with **no prior agent
|
|
26
|
+
* participation** (new / empty conversation), and on demand via the caret
|
|
27
|
+
* button next to the phone (any conversation), where it doubles as the way
|
|
28
|
+
* to pick a specific **co-agent** (the Realtime-type agent that voices the
|
|
29
|
+
* call) and — for authorized users — a specific **voice model**. The plain
|
|
30
|
+
* phone click on an existing conversation keeps its friction-free "call the
|
|
31
|
+
* resolved agent immediately" behavior.
|
|
32
|
+
*
|
|
33
|
+
* Mostly dumb: the host supplies the agent list (the same cached set the
|
|
34
|
+
* @mention autocomplete / routing logic uses), the Realtime-type co-agent
|
|
35
|
+
* candidates (filtered from that same set), and the defaults to preselect;
|
|
36
|
+
* the picker emits the user's choice. The data it loads itself:
|
|
37
|
+
* - the compact "Voice model" option list (active Realtime models via a
|
|
38
|
+
* narrow RunView) — loaded and rendered ONLY when the current user holds
|
|
39
|
+
* the `Realtime: Advanced Session Controls` authorization (pure UX
|
|
40
|
+
* disclosure; the server enforces the authorization on the mint), and
|
|
41
|
+
* - the chosen co-agent's pairing rows (`MJ: AI Agent Co Agents`, Active 'CoAgent'-type rows): a
|
|
42
|
+
* co-agent with pairing rows may only front its paired targets, so the
|
|
43
|
+
* agent list constrains to those rows (Sequence order) with the IsDefault
|
|
44
|
+
* row preselected; a co-agent with zero rows is universal and the list is
|
|
45
|
+
* untouched.
|
|
46
|
+
*
|
|
47
|
+
* It does NOT persist anything (the host persists the co-agent preference
|
|
48
|
+
* via `UserInfoEngine`; `mj-conversation-agent-picker` pins
|
|
49
|
+
* `MJConversationEntity.DefaultAgentID` — different jobs, which is why this
|
|
50
|
+
* is a separate component).
|
|
51
|
+
*
|
|
52
|
+
* Anchors itself bottom-right above the composer — the host's
|
|
53
|
+
* `.message-input-wrapper` is `position: relative`.
|
|
54
|
+
*/
|
|
55
|
+
export declare class RealtimeAgentPickerComponent extends BaseAngularComponent implements OnInit, AfterViewInit {
|
|
56
|
+
/** Agents the user can call — same cached set the @mention / routing logic uses. */
|
|
57
|
+
Agents: MJAIAgentEntityExtended[];
|
|
58
|
+
/** The agent the default resolution would pick — preselected and listed first. */
|
|
59
|
+
DefaultAgentId: string | null;
|
|
60
|
+
/**
|
|
61
|
+
* The ACTIVE Realtime-type co-agent candidates the user can run (host-filtered from
|
|
62
|
+
* the same cached, run-permission-filtered agent set as {@link Agents}). The co-agent
|
|
63
|
+
* selector renders only when MORE THAN ONE candidate exists — with zero or one
|
|
64
|
+
* there's nothing meaningful to choose and the server's resolution chain applies.
|
|
65
|
+
*/
|
|
66
|
+
CoAgents: MJAIAgentEntityExtended[];
|
|
67
|
+
/**
|
|
68
|
+
* The user's persisted co-agent preference (host-loaded via `UserInfoEngine`) —
|
|
69
|
+
* preselected in the co-agent selector when it's still a valid candidate.
|
|
70
|
+
*/
|
|
71
|
+
DefaultCoAgentId: string | null;
|
|
72
|
+
/** Emitted with the chosen agent + optional explicit voice model / co-agent when the user confirms. */
|
|
73
|
+
AgentPicked: EventEmitter<RealtimeAgentPick>;
|
|
74
|
+
/** Emitted when the user dismisses without starting a call. */
|
|
75
|
+
Cancelled: EventEmitter<void>;
|
|
76
|
+
private searchInput?;
|
|
77
|
+
SearchText: string;
|
|
78
|
+
SelectedAgentId: string | null;
|
|
79
|
+
/** Active Realtime models the model selector offers (loaded only for authorized users). */
|
|
80
|
+
Models: RealtimeModelOption[];
|
|
81
|
+
/** The explicitly chosen voice model id, or `null` for "Auto (recommended)" (the default). */
|
|
82
|
+
SelectedModelId: string | null;
|
|
83
|
+
/** The explicitly chosen co-agent id, or `null` for "Auto (recommended)" (the server's chain). */
|
|
84
|
+
SelectedCoAgentId: string | null;
|
|
85
|
+
/**
|
|
86
|
+
* Whether the current user holds the `Realtime: Advanced Session Controls`
|
|
87
|
+
* authorization. Gates the voice-model selector (and any future config-override
|
|
88
|
+
* controls) — pure disclosure; the server enforces the authorization on the mint.
|
|
89
|
+
*/
|
|
90
|
+
CanOverrideSessionConfig: boolean;
|
|
91
|
+
/** The selected co-agent's pairing rows; empty = universal co-agent (no constraint). */
|
|
92
|
+
Pairings: RealtimePairedAgentRow[];
|
|
93
|
+
readonly UUIDsEqual: typeof UUIDsEqual;
|
|
94
|
+
private readonly cdr;
|
|
95
|
+
private readonly elementRef;
|
|
96
|
+
/** Monotonic guard so a stale pairing load can't clobber a newer co-agent choice. */
|
|
97
|
+
private pairingLoadToken;
|
|
98
|
+
/** Co-agent selector visibility: only when there is a real choice to make. */
|
|
99
|
+
get ShowCoAgentSelect(): boolean;
|
|
100
|
+
/** True while the agent list is constrained to the selected co-agent's paired targets. */
|
|
101
|
+
get IsConstrainedByPairings(): boolean;
|
|
102
|
+
ngOnInit(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Loads the "Voice model" options: active models whose type is `Realtime`, filtered from
|
|
105
|
+
* {@link AIEngineBase}'s already-cached `Models` (provider-scoped engine instance, lazy
|
|
106
|
+
* `Config` — no RunView round-trip). Called ONLY for users who hold the
|
|
107
|
+
* advanced-session-controls authorization. Tolerant — a failure simply leaves
|
|
108
|
+
* the selector hidden (the server's automatic selection still applies).
|
|
109
|
+
*/
|
|
110
|
+
private loadVoiceModels;
|
|
111
|
+
/** Records the voice-model choice (`''` = Auto → `null`). */
|
|
112
|
+
OnModelChange(value: string): void;
|
|
113
|
+
/** Records the co-agent choice (`''` = Auto → `null`) and refreshes the pairing constraint. */
|
|
114
|
+
OnCoAgentChange(value: string): void;
|
|
115
|
+
/**
|
|
116
|
+
* Loads the selected co-agent's pairing rows and re-applies the target constraint:
|
|
117
|
+
* with rows present, the agent list narrows to the paired targets (Sequence order)
|
|
118
|
+
* and the IsDefault row's target is preselected; with zero rows (or Auto co-agent)
|
|
119
|
+
* the list returns to the unconstrained default. Guarded against stale loads when
|
|
120
|
+
* the user changes co-agents quickly.
|
|
121
|
+
*/
|
|
122
|
+
private reloadPairings;
|
|
123
|
+
/**
|
|
124
|
+
* Keeps the target selection coherent after the visible list changes: prefers the
|
|
125
|
+
* pairing default (when constrained), then the host default, then keeps the current
|
|
126
|
+
* selection when still visible, then the first visible row.
|
|
127
|
+
*/
|
|
128
|
+
private ensureSelectionVisible;
|
|
129
|
+
ngAfterViewInit(): void;
|
|
130
|
+
/**
|
|
131
|
+
* The visible target list: pairing-constrained first (a co-agent WITH pairing rows may
|
|
132
|
+
* only front its paired targets, kept in pairing Sequence order), then search-filtered.
|
|
133
|
+
* Unconstrained lists keep the default-first + alphabetical ordering.
|
|
134
|
+
*/
|
|
135
|
+
get FilteredAgents(): MJAIAgentEntityExtended[];
|
|
136
|
+
get SelectedAgent(): MJAIAgentEntityExtended | null;
|
|
137
|
+
IsSelected(agent: MJAIAgentEntityExtended): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Whether `agent` carries the "default" badge: under a pairing constraint that's the
|
|
140
|
+
* co-agent's IsDefault target; otherwise the host-resolved default agent.
|
|
141
|
+
*/
|
|
142
|
+
IsDefaultChoice(agent: MJAIAgentEntityExtended): boolean;
|
|
143
|
+
IconClassFor(agent: MJAIAgentEntityExtended): string;
|
|
144
|
+
OnSearchInput(value: string): void;
|
|
145
|
+
/** Arrow-key navigation through the filtered list. */
|
|
146
|
+
MoveSelection(delta: number): void;
|
|
147
|
+
Select(agent: MJAIAgentEntityExtended): void;
|
|
148
|
+
/** Confirm a specific agent immediately (double-click shortcut). */
|
|
149
|
+
Pick(agent: MJAIAgentEntityExtended): void;
|
|
150
|
+
StartCall(): void;
|
|
151
|
+
Cancel(): void;
|
|
152
|
+
/** Dismiss when the user clicks anywhere outside the popover. (The phone
|
|
153
|
+
* button that opens it stops propagation, so the opening click never
|
|
154
|
+
* reaches this handler.) */
|
|
155
|
+
OnDocumentClick(event: MouseEvent): void;
|
|
156
|
+
OnEscape(): void;
|
|
157
|
+
/**
|
|
158
|
+
* Assembles the emitted pick. The model preference is hard-gated on the
|
|
159
|
+
* authorization here (defense in depth — unauthorized users never see the selector,
|
|
160
|
+
* so `SelectedModelId` should already be null).
|
|
161
|
+
*/
|
|
162
|
+
private buildPick;
|
|
163
|
+
private isDefault;
|
|
164
|
+
private findAgent;
|
|
165
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RealtimeAgentPickerComponent, never>;
|
|
166
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RealtimeAgentPickerComponent, "mj-realtime-agent-picker", never, { "Agents": { "alias": "Agents"; "required": false; }; "DefaultAgentId": { "alias": "DefaultAgentId"; "required": false; }; "CoAgents": { "alias": "CoAgents"; "required": false; }; "DefaultCoAgentId": { "alias": "DefaultCoAgentId"; "required": false; }; }, { "AgentPicked": "AgentPicked"; "Cancelled": "Cancelled"; }, never, never, true, never>;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=realtime-agent-picker.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime-agent-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/realtime/realtime-agent-picker.component.ts"],"names":[],"mappings":"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"}
|