@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,58 @@
|
|
|
1
|
+
import { CleanAndParseJSON } from '@memberjunction/global';
|
|
2
|
+
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
3
|
+
import { GraphQLAIClient } from '@memberjunction/graphql-dataprovider';
|
|
4
|
+
import { ConversationEngine } from '@memberjunction/core-entities';
|
|
5
|
+
/** The seeded name of the AI prompt that generates conversation names. */
|
|
6
|
+
export const NAME_CONVERSATION_PROMPT = 'Name Conversation';
|
|
7
|
+
/**
|
|
8
|
+
* Generates a name + description for a conversation from its first message and SAVES it
|
|
9
|
+
* (DB + engine cache) — the single naming implementation shared by the regular composer
|
|
10
|
+
* and the realtime session path.
|
|
11
|
+
*
|
|
12
|
+
* @returns The applied `{ Name, Description }`, or `null` when naming was skipped/failed
|
|
13
|
+
* (missing prompt, provider unavailable, timeout, unparseable output, save failure) —
|
|
14
|
+
* the conversation keeps its current name in every null case.
|
|
15
|
+
*/
|
|
16
|
+
export async function GenerateAndApplyConversationName(options) {
|
|
17
|
+
try {
|
|
18
|
+
await AIEngineBase.Instance.Config(false);
|
|
19
|
+
const prompt = AIEngineBase.Instance.Prompts.find(pr => pr.Name === NAME_CONVERSATION_PROMPT);
|
|
20
|
+
if (!prompt) {
|
|
21
|
+
console.warn(`⚠️ ${NAME_CONVERSATION_PROMPT} prompt not found`);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (!options.Provider) {
|
|
25
|
+
console.warn('⚠️ GraphQLDataProvider not available for conversation naming');
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const run = options.RunPrompt
|
|
29
|
+
?? ((promptId, messageText) => new GraphQLAIClient(options.Provider).RunAIPrompt({
|
|
30
|
+
promptId,
|
|
31
|
+
messages: [{ role: 'user', content: messageText }]
|
|
32
|
+
}));
|
|
33
|
+
const timeoutMs = options.TimeoutMs ?? 30000;
|
|
34
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
35
|
+
setTimeout(() => reject(new Error(`Conversation naming timed out after ${Math.round(timeoutMs / 1000)} seconds`)), timeoutMs);
|
|
36
|
+
});
|
|
37
|
+
const result = await Promise.race([run(prompt.ID, options.MessageText), timeoutPromise]);
|
|
38
|
+
if (!result || !result.success || (!result.parsedResult && !result.output)) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
// parsedResult preferred; CleanAndParseJSON tolerates ```json fences in raw output.
|
|
42
|
+
const parsed = (result.parsedResult ?? (result.output ? CleanAndParseJSON(result.output) : null));
|
|
43
|
+
if (!parsed?.name) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const saved = await ConversationEngine.Instance.SaveConversation(options.ConversationId, { Name: parsed.name, Description: parsed.description || '' }, options.CurrentUser);
|
|
47
|
+
if (!saved) {
|
|
48
|
+
console.warn('⚠️ Conversation naming generated a name but the save failed');
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return { Name: parsed.name, Description: parsed.description || '' };
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.warn('⚠️ Conversation naming failed (conversation keeps its default name):', error);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=conversation-naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-naming.js","sourceRoot":"","sources":["../../../src/lib/services/conversation-naming.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Shared conversation auto-naming helper — extracted from the message\n * input's first-message naming flow so BOTH chat paths use one implementation:\n *\n * - **Regular chat**: the composer names a brand-new conversation from its first\n * user message (the original behavior, now delegated here).\n * - **Realtime sessions**: a voice call that created a fresh conversation names it\n * from the first user utterance when the call ends.\n *\n * The naming itself is DB-driven: the `Name Conversation` AI prompt runs through the\n * GraphQL AI client (same path agents use) with a timeout guard; the parsed\n * `{ name, description }` is saved through {@link ConversationEngine.SaveConversation},\n * which updates the engine's cached conversation list in place (the sidebar reacts\n * through the engine's observables). Failures are logged and return `null` — naming is\n * always best-effort background work that must never affect the user experience.\n */\nimport { UserInfo } from '@memberjunction/core';\nimport { CleanAndParseJSON } from '@memberjunction/global';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { GraphQLDataProvider, GraphQLAIClient } from '@memberjunction/graphql-dataprovider';\nimport { ConversationEngine } from '@memberjunction/core-entities';\n\n/** The applied result of a successful auto-naming run. */\nexport interface ConversationNameResult {\n /** The generated conversation name (already saved). */\n Name: string;\n /** The generated description (already saved; empty string when the prompt omitted it). */\n Description: string;\n}\n\n/** Options for {@link GenerateAndApplyConversationName}. */\nexport interface GenerateConversationNameOptions {\n /** The conversation to name (must exist; the caller owns membership checks). */\n ConversationId: string;\n /**\n * The text the name is derived from — the first user message (regular chat) or the\n * first spoken user utterance (realtime). Callers strip mentions/markup first.\n */\n MessageText: string;\n /** The GraphQL provider the AI client runs over. */\n Provider: GraphQLDataProvider;\n /** The acting user (threaded into the conversation save). */\n CurrentUser: UserInfo;\n /** Abort guard for the prompt run. Default 30s — the conversation keeps its default name on timeout. */\n TimeoutMs?: number;\n /**\n * Test seam: overrides the prompt execution. Production leaves this undefined and the\n * helper runs the `Name Conversation` prompt via {@link GraphQLAIClient.RunAIPrompt}.\n */\n RunPrompt?: (promptId: string, messageText: string) => Promise<{ success: boolean; parsedResult?: unknown; output?: string } | null>;\n}\n\n/** The seeded name of the AI prompt that generates conversation names. */\nexport const NAME_CONVERSATION_PROMPT = 'Name Conversation';\n\n/**\n * Generates a name + description for a conversation from its first message and SAVES it\n * (DB + engine cache) — the single naming implementation shared by the regular composer\n * and the realtime session path.\n *\n * @returns The applied `{ Name, Description }`, or `null` when naming was skipped/failed\n * (missing prompt, provider unavailable, timeout, unparseable output, save failure) —\n * the conversation keeps its current name in every null case.\n */\nexport async function GenerateAndApplyConversationName(\n options: GenerateConversationNameOptions\n): Promise<ConversationNameResult | null> {\n try {\n await AIEngineBase.Instance.Config(false);\n const prompt = AIEngineBase.Instance.Prompts.find(pr => pr.Name === NAME_CONVERSATION_PROMPT);\n if (!prompt) {\n console.warn(`⚠️ ${NAME_CONVERSATION_PROMPT} prompt not found`);\n return null;\n }\n if (!options.Provider) {\n console.warn('⚠️ GraphQLDataProvider not available for conversation naming');\n return null;\n }\n\n const run = options.RunPrompt\n ?? ((promptId: string, messageText: string) =>\n new GraphQLAIClient(options.Provider).RunAIPrompt({\n promptId,\n messages: [{ role: 'user', content: messageText }]\n }));\n\n const timeoutMs = options.TimeoutMs ?? 30000;\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => reject(new Error(`Conversation naming timed out after ${Math.round(timeoutMs / 1000)} seconds`)), timeoutMs);\n });\n\n const result = await Promise.race([run(prompt.ID, options.MessageText), timeoutPromise]);\n if (!result || !result.success || (!result.parsedResult && !result.output)) {\n return null;\n }\n\n // parsedResult preferred; CleanAndParseJSON tolerates ```json fences in raw output.\n const parsed = (result.parsedResult ?? (result.output ? CleanAndParseJSON(result.output) : null)) as\n | { name?: string; description?: string }\n | null;\n if (!parsed?.name) {\n return null;\n }\n\n const saved = await ConversationEngine.Instance.SaveConversation(\n options.ConversationId,\n { Name: parsed.name, Description: parsed.description || '' },\n options.CurrentUser\n );\n if (!saved) {\n console.warn('⚠️ Conversation naming generated a name but the save failed');\n return null;\n }\n return { Name: parsed.name, Description: parsed.description || '' };\n } catch (error) {\n console.warn('⚠️ Conversation naming failed (conversation keeps its default name):', error);\n return null;\n }\n}\n"]}
|
|
@@ -1,172 +1,42 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { ActiveTasksService } from './active-tasks.service';
|
|
4
|
-
import { DataCacheService } from './data-cache.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* Completion event structure broadcast when an agent finishes.
|
|
8
|
-
* Includes enriched result data from the server's fire-and-forget completion event.
|
|
9
|
-
*/
|
|
10
|
-
export interface CompletionEvent {
|
|
11
|
-
conversationDetailId: string;
|
|
12
|
-
agentRunId: string;
|
|
13
|
-
/** Whether the agent execution succeeded */
|
|
14
|
-
success?: boolean;
|
|
15
|
-
/** Error message if the agent execution failed */
|
|
16
|
-
errorMessage?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Metadata structure for message progress updates
|
|
20
|
-
*/
|
|
21
|
-
export interface MessageProgressMetadata {
|
|
22
|
-
/** Progress details (from RunAIAgentResolver) */
|
|
23
|
-
progress?: {
|
|
24
|
-
hierarchicalStep?: string;
|
|
25
|
-
percentage?: number;
|
|
26
|
-
message?: string;
|
|
27
|
-
stepCount?: number;
|
|
28
|
-
agentName?: string;
|
|
29
|
-
agentType?: string;
|
|
30
|
-
};
|
|
31
|
-
/** Agent run information (from RunAIAgentResolver) */
|
|
32
|
-
agentRun?: {
|
|
33
|
-
Agent?: string;
|
|
34
|
-
ConversationDetailID?: string;
|
|
35
|
-
ID?: string;
|
|
36
|
-
};
|
|
37
|
-
/** Agent run ID (alternative to agentRun.ID) */
|
|
38
|
-
agentRunId?: string;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Message progress update structure
|
|
42
|
-
*/
|
|
43
|
-
export interface MessageProgressUpdate {
|
|
44
|
-
message: string;
|
|
45
|
-
percentComplete?: number;
|
|
46
|
-
taskName?: string;
|
|
47
|
-
conversationDetailId: string;
|
|
48
|
-
metadata?: MessageProgressMetadata;
|
|
49
|
-
stepCount?: number;
|
|
50
|
-
/** Identifies which backend resolver published this update */
|
|
51
|
-
resolver?: 'TaskOrchestrator' | 'RunAIAgentResolver' | string;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Callback type for message progress updates
|
|
55
|
-
*/
|
|
56
|
-
export type MessageProgressCallback = (progress: MessageProgressUpdate) => Promise<void> | void;
|
|
57
|
-
/**
|
|
58
|
-
* Connection status for streaming service
|
|
59
|
-
*/
|
|
60
|
-
export type StreamingConnectionStatus = 'connected' | 'disconnected' | 'error' | 'reconnecting';
|
|
61
1
|
/**
|
|
62
|
-
*
|
|
2
|
+
* @fileoverview Angular DI shim over the framework-agnostic `ConversationStreaming`
|
|
3
|
+
* from `@memberjunction/conversations-runtime`.
|
|
63
4
|
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
5
|
+
* The PubSub subscription, message routing, completion replay, and reconnection
|
|
6
|
+
* logic all moved into the runtime in PR 2a. This service is now a thin pass-
|
|
7
|
+
* through. The runtime accesses the active-task tracker via the adapter
|
|
8
|
+
* registered by `ConversationsRuntimeBootstrap`.
|
|
9
|
+
*
|
|
10
|
+
* **For new code:** prefer `ConversationsRuntime.Instance.Streaming` directly.
|
|
67
11
|
*/
|
|
12
|
+
import { OnDestroy } from '@angular/core';
|
|
13
|
+
import { Observable, Subject } from 'rxjs';
|
|
14
|
+
import { ConversationsRuntime, type CompletionEvent, type MessageProgressCallback, type MessageProgressMetadata, type MessageProgressUpdate, type StreamingConnectionStatus } from '@memberjunction/conversations-runtime';
|
|
15
|
+
import { ConversationsRuntimeBootstrap } from './conversations-runtime-bootstrap.service';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
export type { CompletionEvent, MessageProgressCallback, MessageProgressMetadata, MessageProgressUpdate, StreamingConnectionStatus, };
|
|
68
18
|
export declare class ConversationStreamingService implements OnDestroy {
|
|
69
|
-
|
|
70
|
-
private
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
private recentCompletions;
|
|
74
|
-
completionEvents$: Subject<CompletionEvent>;
|
|
75
|
-
private connectionStatus$;
|
|
76
|
-
private initialized;
|
|
77
|
-
private reconnectionTimeout?;
|
|
78
|
-
constructor(activeTasks: ActiveTasksService, dataCache: DataCacheService);
|
|
79
|
-
/**
|
|
80
|
-
* Initialize the global PubSub subscription.
|
|
81
|
-
* Should be called once at app startup (e.g., in workspace component).
|
|
82
|
-
*/
|
|
19
|
+
constructor(_bootstrap: ConversationsRuntimeBootstrap);
|
|
20
|
+
private get streaming();
|
|
21
|
+
/** Pass-through to {@link ConversationsRuntime.Instance.Streaming.completionEvents$}. */
|
|
22
|
+
get completionEvents$(): Subject<CompletionEvent>;
|
|
83
23
|
initialize(): void;
|
|
84
|
-
|
|
85
|
-
* Get the current connection status as an observable
|
|
86
|
-
*/
|
|
87
|
-
getConnectionStatus$(): import("rxjs").Observable<StreamingConnectionStatus>;
|
|
88
|
-
/**
|
|
89
|
-
* Get the current connection status value
|
|
90
|
-
*/
|
|
24
|
+
getConnectionStatus$(): Observable<StreamingConnectionStatus>;
|
|
91
25
|
getConnectionStatus(): StreamingConnectionStatus;
|
|
92
|
-
/**
|
|
93
|
-
* Register a callback for a specific conversation detail (message).
|
|
94
|
-
* The callback will be invoked whenever progress updates arrive for this message.
|
|
95
|
-
*
|
|
96
|
-
* @param conversationDetailId - The ID of the conversation detail entity
|
|
97
|
-
* @param callback - Function to call with progress updates
|
|
98
|
-
*/
|
|
99
26
|
registerMessageCallback(conversationDetailId: string, callback: MessageProgressCallback): void;
|
|
100
|
-
/**
|
|
101
|
-
* Unregister a callback for a specific conversation detail.
|
|
102
|
-
* If no callback is provided, all callbacks for the message are removed.
|
|
103
|
-
*
|
|
104
|
-
* @param conversationDetailId - The ID of the conversation detail entity
|
|
105
|
-
* @param callback - Optional specific callback to remove
|
|
106
|
-
*/
|
|
107
27
|
unregisterMessageCallback(conversationDetailId: string, callback?: MessageProgressCallback): void;
|
|
108
|
-
/**
|
|
109
|
-
* Get the number of registered callbacks (for monitoring/debugging)
|
|
110
|
-
*/
|
|
111
28
|
getRegisteredCallbackCount(): number;
|
|
112
|
-
/**
|
|
113
|
-
* Get the number of messages being tracked (for monitoring/debugging)
|
|
114
|
-
*/
|
|
115
29
|
getTrackedMessageCount(): number;
|
|
116
|
-
/**
|
|
117
|
-
* Handle incoming PubSub status updates and route to registered callbacks
|
|
118
|
-
*/
|
|
119
|
-
private handlePushStatusUpdate;
|
|
120
|
-
/**
|
|
121
|
-
* Route task progress updates to registered callbacks.
|
|
122
|
-
* Uses conversationDetailId from PubSub message for direct routing.
|
|
123
|
-
*/
|
|
124
|
-
private routeTaskProgress;
|
|
125
|
-
/**
|
|
126
|
-
* Route agent progress updates (from RunAIAgentResolver) to registered callbacks.
|
|
127
|
-
* Uses conversationDetailID from agentRun data for direct routing.
|
|
128
|
-
* Also handles completion messages to remove tasks from ActiveTasksService.
|
|
129
|
-
*/
|
|
130
|
-
private routeAgentProgress;
|
|
131
|
-
/**
|
|
132
|
-
* Schedule a reconnection attempt after a delay
|
|
133
|
-
*/
|
|
134
|
-
private scheduleReconnection;
|
|
135
|
-
/**
|
|
136
|
-
* Get a recent completion event for a message (used when component initializes after completion)
|
|
137
|
-
* This handles the navigation scenario: user navigates away, agent completes, user returns.
|
|
138
|
-
* @param conversationDetailId - The message ID to check
|
|
139
|
-
* @returns Completion info if found within the last 5 minutes, undefined otherwise
|
|
140
|
-
*/
|
|
141
30
|
getRecentCompletion(conversationDetailId: string): {
|
|
142
31
|
agentRunId: string;
|
|
143
32
|
} | undefined;
|
|
144
|
-
/**
|
|
145
|
-
* Clear a recent completion after it has been handled
|
|
146
|
-
* @param conversationDetailId - The message ID to clear
|
|
147
|
-
*/
|
|
148
33
|
clearRecentCompletion(conversationDetailId: string): void;
|
|
34
|
+
getDiagnosticSnapshot(messageId: string): ReturnType<typeof ConversationsRuntime.Instance.Streaming.getDiagnosticSnapshot>;
|
|
149
35
|
/**
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
|
|
154
|
-
getDiagnosticSnapshot(messageId: string): {
|
|
155
|
-
hasCallbacks: boolean;
|
|
156
|
-
callbackCount: number;
|
|
157
|
-
recentCompletion: {
|
|
158
|
-
conversationDetailId: string;
|
|
159
|
-
agentRunId: string;
|
|
160
|
-
timestamp: Date;
|
|
161
|
-
} | undefined;
|
|
162
|
-
connectionStatus: StreamingConnectionStatus;
|
|
163
|
-
};
|
|
164
|
-
/**
|
|
165
|
-
* Cleanup completions older than 5 minutes to prevent memory leak
|
|
166
|
-
*/
|
|
167
|
-
private cleanupOldCompletions;
|
|
168
|
-
/**
|
|
169
|
-
* Cleanup when service is destroyed
|
|
36
|
+
* Angular OnDestroy hook. We do NOT call the runtime's Streaming.Dispose()
|
|
37
|
+
* here — that would tear down a shared singleton on a per-injector destroy,
|
|
38
|
+
* which could affect other consumers. The runtime is process-scoped; its
|
|
39
|
+
* lifecycle ends with the process, not with any Angular injector.
|
|
170
40
|
*/
|
|
171
41
|
ngOnDestroy(): void;
|
|
172
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationStreamingService, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-streaming.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/conversation-streaming.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"conversation-streaming.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/conversation-streaming.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EACH,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EACjC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;;AAG1F,YAAY,EACR,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,GAC5B,CAAC;AAEF,qBACa,4BAA6B,YAAW,SAAS;gBAC9C,UAAU,EAAE,6BAA6B;IAIrD,OAAO,KAAK,SAAS,GAEpB;IAED,yFAAyF;IACzF,IAAW,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC,CAEvD;IAEM,UAAU,IAAI,IAAI;IAIlB,oBAAoB,IAAI,UAAU,CAAC,yBAAyB,CAAC;IAI7D,mBAAmB,IAAI,yBAAyB;IAIhD,uBAAuB,CAC1B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,uBAAuB,GAClC,IAAI;IAIA,yBAAyB,CAC5B,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,CAAC,EAAE,uBAAuB,GACnC,IAAI;IAIA,0BAA0B,IAAI,MAAM;IAIpC,sBAAsB,IAAI,MAAM;IAIhC,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAIrF,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI;IAIzD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CACvD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CACvE;IAID;;;;;OAKG;IACI,WAAW,IAAI,IAAI;yCApEjB,4BAA4B;6CAA5B,4BAA4B;CAuExC"}
|