@memberjunction/ng-conversations 5.40.1 → 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":"whiteboard-channel.test.js","sourceRoot":"","sources":["../../src/__tests__/whiteboard-channel.test.ts"],"names":[],"mappings":"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","sourcesContent":["// The whiteboard channel imports its Angular surface component (partial-compiled Angular\n// libs require the JIT compiler in this node test environment), so load the compiler FIRST.\nimport '@angular/compiler';\nimport { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';\nimport { EventEmitter } from '@angular/core';\nimport { MJGlobal } from '@memberjunction/global';\nimport { BaseRealtimeChannelClient, RealtimeChannelContext } from '../lib/components/realtime/channels/base-realtime-channel-client';\nimport {\n RealtimeWhiteboardChannel, WHITEBOARD_INTERACTION_NOTE_THROTTLE_MS\n} from '../lib/components/realtime/whiteboard/whiteboard-channel';\nimport {\n RealtimeWhiteboardHostComponent, WHITEBOARD_TOOL_DEFINITIONS, WHITEBOARD_TOOL_PREFIX,\n WhiteboardToolResult, WhiteboardWidgetInteractionEvent, WhiteboardWidgetSubmitEvent\n} from '@memberjunction/ng-whiteboard';\n\n/**\n * The LIVE WHITEBOARD as a registry plugin — contract metadata, ClassFactory registration,\n * the no-surface ApplyAgentTool fallback (panel collapsed), surface binding/unbinding, the\n * save-on-mutation pipeline and Dispose. The \"surface\" here is a STRUCTURAL fake (the real\n * component needs an Angular injection context); the plugin only touches the members the\n * fake provides.\n */\n\n/** Structural stand-in for the bound board host. */\nclass FakeWhiteboardHost {\n public State: unknown = null;\n public AgentName = '';\n public FocusMode = false;\n public SceneDelta = new EventEmitter<string>();\n public AgentUndo = new EventEmitter<void>();\n public FocusModeChange = new EventEmitter<boolean>();\n public SaveToArtifactsRequested = new EventEmitter<void>();\n public WidgetSubmitted = new EventEmitter<WhiteboardWidgetSubmitEvent>();\n public WidgetInteraction = new EventEmitter<WhiteboardWidgetInteractionEvent>();\n public AppliedTools: Array<{ ToolName: string; ArgsJson: string }> = [];\n\n public ApplyAgentTool(toolName: string, argsJson: string): string {\n this.AppliedTools.push({ ToolName: toolName, ArgsJson: argsJson });\n return JSON.stringify({ success: true, itemId: 'host-item', summary: 'host applied' });\n }\n\n public ToggleFocus(): void {\n this.FocusMode = !this.FocusMode;\n this.FocusModeChange.emit(this.FocusMode);\n }\n}\n\nfunction asHost(fake: FakeWhiteboardHost): RealtimeWhiteboardHostComponent {\n return fake as unknown as RealtimeWhiteboardHostComponent;\n}\n\ninterface CtxLog {\n Notes: string[];\n Spoken: string[];\n Saves: string[];\n Focus: boolean[];\n}\n\nfunction makeContext(log: CtxLog): RealtimeChannelContext {\n return {\n AgentName: 'Sage',\n SendContextNote: (text: string) => log.Notes.push(text),\n RequestSpokenResponse: (instructions: string) => log.Spoken.push(instructions),\n RequestSave: (stateJson: string) => log.Saves.push(stateJson),\n SetFocusMode: (on: boolean) => log.Focus.push(on),\n SaveAsArtifact: async () => null,\n AgentSessionID: null,\n ExecuteServerAction: async () => null\n };\n}\n\ndescribe('RealtimeWhiteboardChannel — plugin contract', () => {\n let channel: RealtimeWhiteboardChannel;\n let log: CtxLog;\n\n beforeEach(() => {\n channel = new RealtimeWhiteboardChannel();\n log = { Notes: [], Spoken: [], Saves: [], Focus: [] };\n channel.Initialize(makeContext(log));\n });\n\n it('is resolvable from the ClassFactory by its registry ClientPluginClass key', () => {\n const registration = MJGlobal.Instance.ClassFactory.GetRegistration(BaseRealtimeChannelClient, 'RealtimeWhiteboardChannel');\n expect(registration).toBeTruthy();\n const instance = MJGlobal.Instance.ClassFactory.CreateInstance<BaseRealtimeChannelClient>(\n BaseRealtimeChannelClient, 'RealtimeWhiteboardChannel'\n );\n expect(instance).toBeInstanceOf(RealtimeWhiteboardChannel);\n });\n\n it('contributes the channel contract: name, prefix, tab chrome, tool set, surface', () => {\n expect(channel.ChannelName).toBe('Whiteboard');\n expect(channel.ToolNamePrefix).toBe(WHITEBOARD_TOOL_PREFIX);\n expect(channel.TabTitle).toBe('Whiteboard');\n expect(channel.TabIcon).toBe('fa-solid fa-chalkboard');\n expect(channel.GetToolDefinitions()).toBe(WHITEBOARD_TOOL_DEFINITIONS);\n expect(channel.GetSurfaceComponent()).toBe(RealtimeWhiteboardHostComponent);\n });\n\n it('supplies first-run onboarding details (heading, description, tips, icon)', () => {\n const details = channel.GetOnboardingDetails();\n expect(details).not.toBeNull();\n expect(details?.Heading).toBe('Whiteboard');\n expect(details?.IconClass).toBe('fa-solid fa-chalkboard');\n expect(details?.Description?.length).toBeGreaterThan(0);\n expect((details?.Tips?.length ?? 0)).toBeGreaterThan(0);\n });\n\n it('ApplyAgentTool with NO surface bound falls back to the pure engine (collapsed panel)', () => {\n const resultJson = channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'hello' }));\n const result = JSON.parse(resultJson) as WhiteboardToolResult;\n\n expect(result.success).toBe(true);\n expect(channel.State.ElementCount).toBe(1);\n expect(channel.State.CountByAuthor('agent')).toBe(1);\n });\n\n it('every board mutation requests a state-of-record save (user edits AND agent tools)', () => {\n channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'note' }));\n expect(log.Saves.length).toBeGreaterThan(0);\n const lastSave = JSON.parse(log.Saves[log.Saves.length - 1]) as { Items?: unknown[] };\n expect(JSON.stringify(lastSave)).toBe(channel.SerializeState());\n });\n\n it('BindSurface wires inputs + outputs; tools then route through the host (UI garnish path)', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n expect(fake.State).toBe(channel.State);\n expect(fake.AgentName).toBe('Sage');\n\n const resultJson = channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'via host' }));\n expect(fake.AppliedTools).toEqual([{ ToolName: 'Whiteboard_AddNote', ArgsJson: JSON.stringify({ text: 'via host' }) }]);\n expect((JSON.parse(resultJson) as WhiteboardToolResult).itemId).toBe('host-item');\n\n fake.SceneDelta.emit('{\"added\":[1]}');\n fake.AgentUndo.emit();\n fake.FocusModeChange.emit(true);\n // scene deltas carry the perception ETIQUETTE inline (don't comment on minor edits)\n expect(log.Notes).toHaveLength(2);\n expect(log.Notes[0]).toContain('[whiteboard] board update');\n expect(log.Notes[0]).toContain('do NOT comment on minor edits');\n expect(log.Notes[0]).toContain('{\"added\":[1]}');\n expect(log.Notes[1]).toBe('[whiteboard] user undid your last change');\n expect(log.Focus).toEqual([true]);\n });\n\n it('routes widget MJWhiteboard.submit input to the agent as a [whiteboard] context note', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetSubmitted.emit({ ItemID: 'html-2', Title: 'Quick quiz', DataJson: '{\"answer\":\"Mercury\"}' });\n expect(log.Notes).toHaveLength(1);\n expect(log.Notes[0]).toBe('[whiteboard] the user submitted input in widget \"Quick quiz\": {\"answer\":\"Mercury\"}');\n // …and the model is asked to REACT audibly (SendContextNote alone is silent by contract)\n expect(log.Spoken).toHaveLength(1);\n expect(log.Spoken[0]).toContain('Quick quiz');\n expect(log.Spoken[0]).toContain('{\"answer\":\"Mercury\"}');\n expect(log.Spoken[0]).toContain('React to it now');\n\n // untitled widgets fall back to the item ID\n fake.WidgetSubmitted.emit({ ItemID: 'html-3', Title: '', DataJson: '{\"ok\":true}' });\n expect(log.Notes[1]).toBe('[whiteboard] the user submitted input in widget \"html-3\": {\"ok\":true}');\n\n // released with the surface, like the other output subscriptions\n channel.UnbindSurface();\n fake.WidgetSubmitted.emit({ ItemID: 'html-2', Title: 'Quick quiz', DataJson: '{\"stale\":true}' });\n expect(log.Notes).toHaveLength(2);\n });\n\n describe('ambient widget-interaction notes — per-widget throttle (latest wins)', () => {\n function interaction(itemId: string, summary: string, title = 'Vibe picker'): WhiteboardWidgetInteractionEvent {\n return { ItemID: itemId, Title: title, Summary: summary };\n }\n\n beforeEach(() => {\n vi.useFakeTimers();\n });\n\n afterEach(() => {\n vi.useRealTimers();\n });\n\n it('first activity in a widget sends a note IMMEDIATELY with the ambient framing', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-2', 'clicked \"Playful pink\"; changed \"vibe\" to \"pink\"'));\n expect(log.Notes).toHaveLength(1);\n expect(log.Notes[0]).toBe(\n '[whiteboard] ambient activity in widget \"Vibe picker\" ' +\n '(background — do NOT respond unless it is significant or you are asked; ' +\n 'explicit submissions arrive separately): clicked \"Playful pink\"; changed \"vibe\" to \"pink\"');\n });\n\n it('untitled widgets fall back to the item ID in the framing', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-7', 'typing in \"email\"', ''));\n expect(log.Notes[0]).toContain('ambient activity in widget \"html-7\"');\n });\n\n it('within the window further activity coalesces — ONE trailing note, LATEST summary wins', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-2', 'first'));\n fake.WidgetInteraction.emit(interaction('html-2', 'second'));\n fake.WidgetInteraction.emit(interaction('html-2', 'third'));\n expect(log.Notes).toHaveLength(1); // only the immediate first note so far\n\n vi.advanceTimersByTime(WHITEBOARD_INTERACTION_NOTE_THROTTLE_MS);\n expect(log.Notes).toHaveLength(2);\n expect(log.Notes[1]).toContain(': third'); // latest summary won\n expect(log.Notes.some((n) => n.includes(': second'))).toBe(false);\n });\n\n it('the trailing send opens a NEW window — chatty widgets stay at ≤1 note per window', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-2', 'a')); // sent immediately\n fake.WidgetInteraction.emit(interaction('html-2', 'b')); // deferred\n vi.advanceTimersByTime(WHITEBOARD_INTERACTION_NOTE_THROTTLE_MS); // 'b' sent\n fake.WidgetInteraction.emit(interaction('html-2', 'c')); // inside b's window → deferred\n expect(log.Notes).toHaveLength(2);\n vi.advanceTimersByTime(WHITEBOARD_INTERACTION_NOTE_THROTTLE_MS);\n expect(log.Notes).toHaveLength(3);\n expect(log.Notes[2]).toContain(': c');\n });\n\n it('after a QUIET window expires, the next activity sends immediately again', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-2', 'early'));\n vi.advanceTimersByTime(WHITEBOARD_INTERACTION_NOTE_THROTTLE_MS + 1);\n fake.WidgetInteraction.emit(interaction('html-2', 'late'));\n expect(log.Notes).toHaveLength(2);\n expect(log.Notes[1]).toContain(': late');\n });\n\n it('throttles PER WIDGET — concurrent widgets do not share a window', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-2', 'in widget two'));\n fake.WidgetInteraction.emit(interaction('html-3', 'in widget three', 'Other'));\n expect(log.Notes).toHaveLength(2);\n expect(log.Notes[0]).toContain('\"Vibe picker\"');\n expect(log.Notes[1]).toContain('\"Other\"');\n });\n\n it('UnbindSurface cancels pending trailing notes (nothing stale reaches the agent)', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n\n fake.WidgetInteraction.emit(interaction('html-2', 'sent'));\n fake.WidgetInteraction.emit(interaction('html-2', 'pending'));\n channel.UnbindSurface();\n vi.advanceTimersByTime(WHITEBOARD_INTERACTION_NOTE_THROTTLE_MS * 2);\n expect(log.Notes).toHaveLength(1); // the pending trailing note was canceled\n\n // and the released surface's emitter no longer reaches the channel at all\n fake.WidgetInteraction.emit(interaction('html-2', 'stale'));\n expect(log.Notes).toHaveLength(1);\n });\n });\n\n it('UnbindSurface flips back to the engine fallback and stops listening to old outputs', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n channel.UnbindSurface();\n\n channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'after unbind' }));\n expect(fake.AppliedTools).toEqual([]); // host no longer consulted\n expect(channel.State.ElementCount).toBe(1); // engine applied it\n\n fake.SceneDelta.emit('{\"stale\":true}');\n expect(log.Notes).toEqual([]); // old subscription released\n });\n\n it('re-binding a NEW surface replaces the old one (pane recreated after collapse/expand)', () => {\n const first = new FakeWhiteboardHost();\n const second = new FakeWhiteboardHost();\n channel.BindSurface(asHost(first));\n channel.BindSurface(asHost(second));\n\n channel.ApplyAgentTool('Whiteboard_AddText', JSON.stringify({ text: 'x' }));\n expect(first.AppliedTools).toEqual([]);\n expect(second.AppliedTools).toHaveLength(1);\n\n first.SceneDelta.emit('{\"old\":true}');\n expect(log.Notes).toEqual([]); // first surface's outputs were unsubscribed\n });\n\n it('RequestFocusExit leaves focus THROUGH the bound host so its toggle stays in sync', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n fake.ToggleFocus(); // enter focus → SetFocusMode(true)\n expect(log.Focus).toEqual([true]);\n\n channel.RequestFocusExit();\n expect(fake.FocusMode).toBe(false);\n expect(log.Focus).toEqual([true, false]);\n\n channel.RequestFocusExit(); // not in focus → no double-toggle\n expect(log.Focus).toEqual([true, false]);\n });\n\n it('Dispose releases the surface, the state subscription and the context', () => {\n const fake = new FakeWhiteboardHost();\n channel.BindSurface(asHost(fake));\n channel.Dispose();\n\n // State mutations no longer request saves…\n const savesBefore = log.Saves.length;\n channel.State.AddItem({ Kind: 'text', X: 0, Y: 0, Text: 'post-dispose' }, 'user');\n expect(log.Saves.length).toBe(savesBefore);\n\n // …and tool calls fall back to the engine (no host).\n const spy = vi.spyOn(fake, 'ApplyAgentTool');\n channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'still works' }));\n expect(spy).not.toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whiteboard-restore-state.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/whiteboard-restore-state.test.ts"],"names":[],"mappings":"AAEA,OAAO,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// The whiteboard channel imports its Angular surface component (partial-compiled Angular
|
|
2
|
+
// libs require the JIT compiler in this node test environment), so load the compiler FIRST.
|
|
3
|
+
import '@angular/compiler';
|
|
4
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
5
|
+
import { BaseRealtimeChannelClient } from '../lib/components/realtime/channels/base-realtime-channel-client';
|
|
6
|
+
import { RealtimeWhiteboardChannel } from '../lib/components/realtime/whiteboard/whiteboard-channel';
|
|
7
|
+
/**
|
|
8
|
+
* The RestoreState hook — base-class default (channels keep no state → false) and the
|
|
9
|
+
* whiteboard implementation: a prior session's saved board round-trips into THIS session's
|
|
10
|
+
* engine in place; malformed/incompatible payloads return false, never throw, and leave
|
|
11
|
+
* the board fresh.
|
|
12
|
+
*/
|
|
13
|
+
/** Stand-in surface for the stateless test channel. */
|
|
14
|
+
class NullSurface {
|
|
15
|
+
}
|
|
16
|
+
/** Minimal concrete channel that exercises the BASE-CLASS defaults only. */
|
|
17
|
+
class StatelessChannel extends BaseRealtimeChannelClient {
|
|
18
|
+
get ChannelName() { return 'Stateless'; }
|
|
19
|
+
get ToolNamePrefix() { return 'Stateless_'; }
|
|
20
|
+
get TabTitle() { return 'Stateless'; }
|
|
21
|
+
get TabIcon() { return 'fa-solid fa-cube'; }
|
|
22
|
+
GetToolDefinitions() { return []; }
|
|
23
|
+
ApplyAgentTool() { return '{}'; }
|
|
24
|
+
GetSurfaceComponent() { return NullSurface; }
|
|
25
|
+
BindSurface() { }
|
|
26
|
+
}
|
|
27
|
+
function makeContext(log) {
|
|
28
|
+
return {
|
|
29
|
+
AgentName: 'Sage',
|
|
30
|
+
SendContextNote: () => undefined,
|
|
31
|
+
RequestSave: (stateJson) => log.Saves.push(stateJson),
|
|
32
|
+
SetFocusMode: () => undefined,
|
|
33
|
+
SaveAsArtifact: async () => null,
|
|
34
|
+
AgentSessionID: null,
|
|
35
|
+
ExecuteServerAction: async () => null
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
describe('BaseRealtimeChannelClient.RestoreState — default', () => {
|
|
39
|
+
it('returns false (a stateless channel ignores any saved payload)', () => {
|
|
40
|
+
const channel = new StatelessChannel();
|
|
41
|
+
channel.Initialize(makeContext({ Saves: [] }));
|
|
42
|
+
expect(channel.RestoreState('{"anything": true}')).toBe(false);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('RealtimeWhiteboardChannel.RestoreState', () => {
|
|
46
|
+
let channel;
|
|
47
|
+
let log;
|
|
48
|
+
beforeEach(() => {
|
|
49
|
+
channel = new RealtimeWhiteboardChannel();
|
|
50
|
+
log = { Saves: [] };
|
|
51
|
+
channel.Initialize(makeContext(log));
|
|
52
|
+
});
|
|
53
|
+
/** A prior session's saved board: styled sticky + text + a shape, via a throwaway channel. */
|
|
54
|
+
function priorSessionState() {
|
|
55
|
+
const prior = new RealtimeWhiteboardChannel();
|
|
56
|
+
prior.Initialize(makeContext({ Saves: [] }));
|
|
57
|
+
prior.State.AddItem({
|
|
58
|
+
Kind: 'sticky', X: 40, Y: 60, Text: 'carried over', FontSize: 24, FontFamily: 'serif', FontWeight: 700
|
|
59
|
+
}, 'user');
|
|
60
|
+
prior.State.AddItem({ Kind: 'text', X: 200, Y: 80, Text: 'styled label', FontSize: 18, Color: '#0ea5e9' }, 'agent');
|
|
61
|
+
prior.State.AddItem({ Kind: 'shape', Shape: 'diamond', X: 300, Y: 200, W: 120, H: 80, Label: 'Decision' }, 'agent');
|
|
62
|
+
const json = prior.SerializeState();
|
|
63
|
+
expect(json).toBeTruthy();
|
|
64
|
+
return json;
|
|
65
|
+
}
|
|
66
|
+
it('restores a valid prior-session board IN PLACE — items (and style fields) round-trip', () => {
|
|
67
|
+
const saved = priorSessionState();
|
|
68
|
+
const engineBefore = channel.State;
|
|
69
|
+
expect(channel.RestoreState(saved)).toBe(true);
|
|
70
|
+
expect(channel.State).toBe(engineBefore); // same engine instance — subscriptions intact
|
|
71
|
+
expect(channel.State.ElementCount).toBe(3);
|
|
72
|
+
expect(channel.State.CountByAuthor('user')).toBe(1);
|
|
73
|
+
expect(channel.State.CountByAuthor('agent')).toBe(2);
|
|
74
|
+
const sticky = channel.State.Items.find((i) => i.Kind === 'sticky');
|
|
75
|
+
expect(sticky.Text).toBe('carried over');
|
|
76
|
+
expect(sticky.FontSize).toBe(24);
|
|
77
|
+
expect(sticky.FontFamily).toBe('serif');
|
|
78
|
+
expect(sticky.FontWeight).toBe(700);
|
|
79
|
+
const text = channel.State.Items.find((i) => i.Kind === 'text');
|
|
80
|
+
expect(text.Color).toBe('#0ea5e9');
|
|
81
|
+
// the restored board re-serializes to the same items (the restore's own 'replace'
|
|
82
|
+
// change bumps the engine seq, so compare the items payload, not the raw string)
|
|
83
|
+
const reserialized = JSON.parse(channel.SerializeState());
|
|
84
|
+
expect(reserialized.items).toEqual(JSON.parse(saved).items);
|
|
85
|
+
});
|
|
86
|
+
it('keeps the save pipeline live after restore (mutations still persist)', () => {
|
|
87
|
+
channel.RestoreState(priorSessionState());
|
|
88
|
+
const savesBefore = log.Saves.length;
|
|
89
|
+
channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'post-restore' }));
|
|
90
|
+
expect(log.Saves.length).toBeGreaterThan(savesBefore);
|
|
91
|
+
expect(channel.State.ElementCount).toBe(4);
|
|
92
|
+
});
|
|
93
|
+
it('returns false on garbage JSON and leaves the board fresh (never throws)', () => {
|
|
94
|
+
expect(channel.RestoreState('not json at all {{{')).toBe(false);
|
|
95
|
+
expect(channel.State.ElementCount).toBe(0);
|
|
96
|
+
});
|
|
97
|
+
it('returns false on well-formed but incompatible payloads, preserving current state', () => {
|
|
98
|
+
channel.State.AddItem({ Kind: 'text', X: 0, Y: 0, Text: 'pre-existing' }, 'user');
|
|
99
|
+
expect(channel.RestoreState('{"items": 42}')).toBe(false);
|
|
100
|
+
expect(channel.RestoreState('null')).toBe(false);
|
|
101
|
+
expect(channel.RestoreState('"just a string"')).toBe(false);
|
|
102
|
+
expect(channel.RestoreState('[]')).toBe(false);
|
|
103
|
+
expect(channel.State.ElementCount).toBe(1); // untouched
|
|
104
|
+
const text = channel.State.Items[0];
|
|
105
|
+
expect(text.Text).toBe('pre-existing');
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=whiteboard-restore-state.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whiteboard-restore-state.test.js","sourceRoot":"","sources":["../../src/__tests__/whiteboard-restore-state.test.ts"],"names":[],"mappings":"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","sourcesContent":["// The whiteboard channel imports its Angular surface component (partial-compiled Angular\n// libs require the JIT compiler in this node test environment), so load the compiler FIRST.\nimport '@angular/compiler';\nimport { describe, it, expect, beforeEach } from 'vitest';\nimport type { Type } from '@angular/core';\nimport { RealtimeToolDefinition } from '@memberjunction/ai';\nimport { BaseRealtimeChannelClient, RealtimeChannelContext } from '../lib/components/realtime/channels/base-realtime-channel-client';\nimport { RealtimeWhiteboardChannel } from '../lib/components/realtime/whiteboard/whiteboard-channel';\nimport { WhiteboardStickyItem, WhiteboardTextItem } from '@memberjunction/ng-whiteboard';\n\n/**\n * The RestoreState hook — base-class default (channels keep no state → false) and the\n * whiteboard implementation: a prior session's saved board round-trips into THIS session's\n * engine in place; malformed/incompatible payloads return false, never throw, and leave\n * the board fresh.\n */\n\n/** Stand-in surface for the stateless test channel. */\nclass NullSurface {}\n\n/** Minimal concrete channel that exercises the BASE-CLASS defaults only. */\nclass StatelessChannel extends BaseRealtimeChannelClient<NullSurface> {\n public get ChannelName(): string { return 'Stateless'; }\n public get ToolNamePrefix(): string { return 'Stateless_'; }\n public get TabTitle(): string { return 'Stateless'; }\n public get TabIcon(): string { return 'fa-solid fa-cube'; }\n public GetToolDefinitions(): RealtimeToolDefinition[] { return []; }\n public ApplyAgentTool(): string { return '{}'; }\n public GetSurfaceComponent(): Type<NullSurface> { return NullSurface; }\n public BindSurface(): void { /* no surface */ }\n}\n\ninterface CtxLog {\n Saves: string[];\n}\n\nfunction makeContext(log: CtxLog): RealtimeChannelContext {\n return {\n AgentName: 'Sage',\n SendContextNote: () => undefined,\n RequestSave: (stateJson: string) => log.Saves.push(stateJson),\n SetFocusMode: () => undefined,\n SaveAsArtifact: async () => null,\n AgentSessionID: null,\n ExecuteServerAction: async () => null\n };\n}\n\ndescribe('BaseRealtimeChannelClient.RestoreState — default', () => {\n it('returns false (a stateless channel ignores any saved payload)', () => {\n const channel = new StatelessChannel();\n channel.Initialize(makeContext({ Saves: [] }));\n expect(channel.RestoreState('{\"anything\": true}')).toBe(false);\n });\n});\n\ndescribe('RealtimeWhiteboardChannel.RestoreState', () => {\n let channel: RealtimeWhiteboardChannel;\n let log: CtxLog;\n\n beforeEach(() => {\n channel = new RealtimeWhiteboardChannel();\n log = { Saves: [] };\n channel.Initialize(makeContext(log));\n });\n\n /** A prior session's saved board: styled sticky + text + a shape, via a throwaway channel. */\n function priorSessionState(): string {\n const prior = new RealtimeWhiteboardChannel();\n prior.Initialize(makeContext({ Saves: [] }));\n prior.State.AddItem({\n Kind: 'sticky', X: 40, Y: 60, Text: 'carried over', FontSize: 24, FontFamily: 'serif', FontWeight: 700\n }, 'user');\n prior.State.AddItem({ Kind: 'text', X: 200, Y: 80, Text: 'styled label', FontSize: 18, Color: '#0ea5e9' }, 'agent');\n prior.State.AddItem({ Kind: 'shape', Shape: 'diamond', X: 300, Y: 200, W: 120, H: 80, Label: 'Decision' }, 'agent');\n const json = prior.SerializeState();\n expect(json).toBeTruthy();\n return json as string;\n }\n\n it('restores a valid prior-session board IN PLACE — items (and style fields) round-trip', () => {\n const saved = priorSessionState();\n const engineBefore = channel.State;\n\n expect(channel.RestoreState(saved)).toBe(true);\n\n expect(channel.State).toBe(engineBefore); // same engine instance — subscriptions intact\n expect(channel.State.ElementCount).toBe(3);\n expect(channel.State.CountByAuthor('user')).toBe(1);\n expect(channel.State.CountByAuthor('agent')).toBe(2);\n\n const sticky = channel.State.Items.find((i) => i.Kind === 'sticky') as WhiteboardStickyItem;\n expect(sticky.Text).toBe('carried over');\n expect(sticky.FontSize).toBe(24);\n expect(sticky.FontFamily).toBe('serif');\n expect(sticky.FontWeight).toBe(700);\n\n const text = channel.State.Items.find((i) => i.Kind === 'text') as WhiteboardTextItem;\n expect(text.Color).toBe('#0ea5e9');\n\n // the restored board re-serializes to the same items (the restore's own 'replace'\n // change bumps the engine seq, so compare the items payload, not the raw string)\n const reserialized = JSON.parse(channel.SerializeState() as string) as { items: unknown[] };\n expect(reserialized.items).toEqual((JSON.parse(saved) as { items: unknown[] }).items);\n });\n\n it('keeps the save pipeline live after restore (mutations still persist)', () => {\n channel.RestoreState(priorSessionState());\n const savesBefore = log.Saves.length;\n channel.ApplyAgentTool('Whiteboard_AddNote', JSON.stringify({ text: 'post-restore' }));\n expect(log.Saves.length).toBeGreaterThan(savesBefore);\n expect(channel.State.ElementCount).toBe(4);\n });\n\n it('returns false on garbage JSON and leaves the board fresh (never throws)', () => {\n expect(channel.RestoreState('not json at all {{{')).toBe(false);\n expect(channel.State.ElementCount).toBe(0);\n });\n\n it('returns false on well-formed but incompatible payloads, preserving current state', () => {\n channel.State.AddItem({ Kind: 'text', X: 0, Y: 0, Text: 'pre-existing' }, 'user');\n\n expect(channel.RestoreState('{\"items\": 42}')).toBe(false);\n expect(channel.RestoreState('null')).toBe(false);\n expect(channel.RestoreState('\"just a string\"')).toBe(false);\n expect(channel.RestoreState('[]')).toBe(false);\n\n expect(channel.State.ElementCount).toBe(1); // untouched\n const text = channel.State.Items[0] as WhiteboardTextItem;\n expect(text.Text).toBe('pre-existing');\n });\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef, AfterViewChecked } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef, TemplateRef, AfterViewChecked } from '@angular/core';
|
|
2
2
|
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
3
3
|
import { UserInfo, CompositeKey, DataSnapshot } from '@memberjunction/core';
|
|
4
4
|
import { MJConversationEntity, MJConversationDetailEntity, MJAIAgentRunEntity, MJArtifactEntity, MJTaskEntity, RatingJSON } from '@memberjunction/core-entities';
|
|
@@ -20,7 +20,40 @@ import { DialogService as ConversationsDialogService } from '../../services/dial
|
|
|
20
20
|
import { Subject } from 'rxjs';
|
|
21
21
|
import { ConversationStreamingService } from '../../services/conversation-streaming.service';
|
|
22
22
|
import { ConversationBridgeService } from '../../services/conversation-bridge.service';
|
|
23
|
+
import { AgentClientService } from '@memberjunction/ng-agent-client';
|
|
24
|
+
import { RealtimeSessionService } from '../../services/realtime-session.service';
|
|
25
|
+
import { RealtimeSessionReview } from '../../services/realtime-session-review.service';
|
|
26
|
+
import { RealtimeNavigateRequest, RealtimeStartLiveRequest } from '../realtime/realtime-session-overlay.component';
|
|
27
|
+
import { RealtimeSessionTimelineMeta } from '../../utils/realtime-session-timeline';
|
|
28
|
+
import { type MJChatSlotName } from '../../directives/chat-slot.directive';
|
|
29
|
+
import type { MJChatAgentPresenceState } from '../slots/slot-interfaces';
|
|
30
|
+
import { BeforeAgentTurnEventArgs, AfterAgentTurnEventArgs, BeforeToolInvokedEventArgs, AfterToolInvokedEventArgs, BeforeResponseFormSubmittedEventArgs, AfterResponseFormSubmittedEventArgs, SessionStartedEventArgs, SessionChannelStateChangedEventArgs, SessionEndedEventArgs } from '../../events/chat-events';
|
|
23
31
|
import * as i0 from "@angular/core";
|
|
32
|
+
/**
|
|
33
|
+
* Configuration for the persona/character rendering in the `agentPresence` slot.
|
|
34
|
+
* Off by default — opt in via `showAgentCharacter`. Mirrors {@link IMJChatAgentPresenceComponent}.
|
|
35
|
+
*/
|
|
36
|
+
export interface AgentCharacterConfig {
|
|
37
|
+
/** Optional avatar URL. */
|
|
38
|
+
avatarUrl?: string;
|
|
39
|
+
/** Display name. */
|
|
40
|
+
characterName?: string;
|
|
41
|
+
/** Visual intensity. */
|
|
42
|
+
voiceStateMode?: 'subtle' | 'prominent';
|
|
43
|
+
/** Current voice state — drives state-colored styling on the default presence component. */
|
|
44
|
+
state?: MJChatAgentPresenceState;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Configuration payload for the `emptyState` slot's default component. When
|
|
48
|
+
* supplied, drives the empty-state's greeting / subtext / suggested prompts.
|
|
49
|
+
*/
|
|
50
|
+
export interface EmptyStateConfig {
|
|
51
|
+
greeting?: string;
|
|
52
|
+
subtext?: string;
|
|
53
|
+
suggestedPrompts?: string[];
|
|
54
|
+
/** Hide the default suggested prompts even if greeting/subtext are set. */
|
|
55
|
+
hideDefaultPrompts?: boolean;
|
|
56
|
+
}
|
|
24
57
|
export declare class ConversationChatAreaComponent extends BaseAngularComponent implements OnInit, OnDestroy, AfterViewChecked {
|
|
25
58
|
private agentStateService;
|
|
26
59
|
private conversationAgentService;
|
|
@@ -35,6 +68,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
35
68
|
private analyzeArtifactService;
|
|
36
69
|
private uiCommandHandler;
|
|
37
70
|
private interactiveFormApplyService;
|
|
71
|
+
private agentClientService;
|
|
38
72
|
environmentId: string;
|
|
39
73
|
currentUser: UserInfo;
|
|
40
74
|
private _conversationId;
|
|
@@ -187,6 +221,70 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
187
221
|
/** Greeting message shown in the empty state when no conversation is active */
|
|
188
222
|
emptyStateGreeting: string;
|
|
189
223
|
showSidebarToggle: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* When true, the `agentPresence` slot is allowed to render (using the
|
|
226
|
+
* supplied `agentCharacterConfig` for visualization data). Off by default
|
|
227
|
+
* so existing embeds (Form Builder, Component Studio AI Assistant, the
|
|
228
|
+
* corner overlay) see no UI change.
|
|
229
|
+
*/
|
|
230
|
+
showAgentCharacter: boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Visualization data forwarded to the `agentPresence` slot's default
|
|
233
|
+
* component (or to any consumer-projected template via slot context).
|
|
234
|
+
* Includes avatar URL, character name, voice state, and visual intensity.
|
|
235
|
+
*/
|
|
236
|
+
agentCharacterConfig: AgentCharacterConfig | null;
|
|
237
|
+
/**
|
|
238
|
+
* Structured config for the `emptyState` slot's default component —
|
|
239
|
+
* greeting, subtext, and optional suggested prompts. Backwards-compatible
|
|
240
|
+
* with the existing `emptyStateGreeting` input (which still wins when
|
|
241
|
+
* `emptyStateConfig` is null).
|
|
242
|
+
*/
|
|
243
|
+
emptyStateConfig: EmptyStateConfig | null;
|
|
244
|
+
/**
|
|
245
|
+
* Activate the `demonstrationSurface` slot layout-mode. Per Matt's 06-10
|
|
246
|
+
* placement design: when true AND a consumer has projected
|
|
247
|
+
* `mjChatSlot="demonstrationSurface"`, the chat-content-area restructures
|
|
248
|
+
* into [stage | conversation-rail] — the stage takes the main pane, the
|
|
249
|
+
* messages pane shrinks to a side rail (below the stage on mobile). When
|
|
250
|
+
* false (default), no layout change; the chat-area renders as normal.
|
|
251
|
+
*
|
|
252
|
+
* The consumer is expected to drive this from their own state (e.g., an
|
|
253
|
+
* agent emits a demonstration intent → host sets this true; user dismisses
|
|
254
|
+
* → host sets it false). The widget itself doesn't decide.
|
|
255
|
+
*/
|
|
256
|
+
showDemonstrationSurface: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Content payload forwarded to the `demonstrationSurface` slot via
|
|
259
|
+
* `$implicit` + named `content` context. Shape is consumer-defined per the
|
|
260
|
+
* {@link IMJChatDemonstrationSurfaceComponent} interface — the widget
|
|
261
|
+
* doesn't introspect or render it directly, just hands it through.
|
|
262
|
+
*/
|
|
263
|
+
demonstrationSurfaceContent: unknown;
|
|
264
|
+
/**
|
|
265
|
+
* True when the demonstrationSurface layout-mode is BOTH opted-in
|
|
266
|
+
* (`showDemonstrationSurface`) AND has a slot template projected to render
|
|
267
|
+
* into. Both conditions must hold for the layout restructure to kick in.
|
|
268
|
+
*/
|
|
269
|
+
get isDemonstrationActive(): boolean;
|
|
270
|
+
/** Cancelable — fired BEFORE a user message is sent to the agent. */
|
|
271
|
+
beforeAgentTurn: EventEmitter<BeforeAgentTurnEventArgs>;
|
|
272
|
+
/** Fired AFTER a successful agent turn completes. */
|
|
273
|
+
afterAgentTurn: EventEmitter<AfterAgentTurnEventArgs>;
|
|
274
|
+
/** Cancelable — fired BEFORE a registered client tool is invoked by the agent. */
|
|
275
|
+
beforeToolInvoked: EventEmitter<BeforeToolInvokedEventArgs>;
|
|
276
|
+
/** Fired AFTER a client tool invocation completes. */
|
|
277
|
+
afterToolInvoked: EventEmitter<AfterToolInvokedEventArgs>;
|
|
278
|
+
/** Cancelable — fired BEFORE a response form's submitted values are sent. */
|
|
279
|
+
beforeResponseFormSubmitted: EventEmitter<BeforeResponseFormSubmittedEventArgs>;
|
|
280
|
+
/** Fired AFTER a response form's values have been sent. */
|
|
281
|
+
afterResponseFormSubmitted: EventEmitter<AfterResponseFormSubmittedEventArgs>;
|
|
282
|
+
/** Informational. */
|
|
283
|
+
sessionStarted: EventEmitter<SessionStartedEventArgs>;
|
|
284
|
+
/** Informational. */
|
|
285
|
+
sessionChannelStateChanged: EventEmitter<SessionChannelStateChangedEventArgs>;
|
|
286
|
+
/** Informational. */
|
|
287
|
+
sessionEnded: EventEmitter<SessionEndedEventArgs>;
|
|
190
288
|
conversationRenamed: EventEmitter<{
|
|
191
289
|
conversationId: string;
|
|
192
290
|
name: string;
|
|
@@ -196,6 +294,15 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
196
294
|
entityName: string;
|
|
197
295
|
compositeKey: CompositeKey;
|
|
198
296
|
}>;
|
|
297
|
+
/**
|
|
298
|
+
* A realtime session that CREATED its own conversation has ended — the new
|
|
299
|
+
* conversation is named (background, shared helper) and ready. The workspace folds
|
|
300
|
+
* it into the cached list and selects it when the conversation list is visible.
|
|
301
|
+
*/
|
|
302
|
+
realtimeConversationReady: EventEmitter<{
|
|
303
|
+
conversationId: string;
|
|
304
|
+
select: boolean;
|
|
305
|
+
}>;
|
|
199
306
|
navigationRequest: EventEmitter<NavigationRequest>;
|
|
200
307
|
taskClicked: EventEmitter<MJTaskEntity>;
|
|
201
308
|
artifactLinkClicked: EventEmitter<{
|
|
@@ -220,6 +327,18 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
220
327
|
private messageInputComponents;
|
|
221
328
|
private artifactViewerComponent?;
|
|
222
329
|
private emptyStateComponent?;
|
|
330
|
+
/**
|
|
331
|
+
* Slot-fill templates supplied by consumers via the `mjChatSlot` directive.
|
|
332
|
+
* Looked up by slot name with {@link slotTemplate}.
|
|
333
|
+
*/
|
|
334
|
+
private chatSlotChildren;
|
|
335
|
+
/**
|
|
336
|
+
* Public helper for the template + consumers — resolve a slot name to the
|
|
337
|
+
* consumer-supplied `TemplateRef`, or `null` if no consumer template was
|
|
338
|
+
* projected for that slot. When `null`, the template should render the
|
|
339
|
+
* slot's default standalone component.
|
|
340
|
+
*/
|
|
341
|
+
slotTemplate(name: MJChatSlotName): TemplateRef<unknown> | null;
|
|
223
342
|
messages: MJConversationDetailEntity[];
|
|
224
343
|
showScrollToBottomIcon: boolean;
|
|
225
344
|
private scrollToBottom;
|
|
@@ -312,7 +431,32 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
312
431
|
acceptedFileTypes: string;
|
|
313
432
|
private conversationManagerAgent;
|
|
314
433
|
private engine;
|
|
315
|
-
|
|
434
|
+
/**
|
|
435
|
+
* Voice session service — exposed to the template so the realtime "call mode"
|
|
436
|
+
* overlay can be hosted here (it fills this conversation panel in place while
|
|
437
|
+
* `Active$` is true). The trigger wiring lives in <mj-message-input>.
|
|
438
|
+
*/
|
|
439
|
+
readonly RealtimeSession: RealtimeSessionService;
|
|
440
|
+
/** Stateless loader for the call overlay's SESSION REVIEW mode (past realtime sessions). */
|
|
441
|
+
private readonly realtimeReviewService;
|
|
442
|
+
/**
|
|
443
|
+
* The PAST realtime session currently under review, or null. While set (and no live
|
|
444
|
+
* call is active) the realtime overlay renders in SESSION REVIEW mode over this
|
|
445
|
+
* conversation panel. Populated via {@link OpenRealtimeSessionReview}; cleared when
|
|
446
|
+
* the user closes the review or resumes it as a new live call.
|
|
447
|
+
*/
|
|
448
|
+
RealtimeReview: RealtimeSessionReview | null;
|
|
449
|
+
/**
|
|
450
|
+
* Session-row enrichment for the timeline's realtime SESSION BLOCKS (details stamped
|
|
451
|
+
* with an `AgentSessionID` collapse to one card per session — see the message list's
|
|
452
|
+
* timeline pass). Keyed by `NormalizeUUID(sessionId)`; loaded with ONE batched
|
|
453
|
+
* `MJ: AI Agent Sessions` lookup per conversation, only when stamped rows exist.
|
|
454
|
+
* Tolerant: a failed lookup leaves the map empty and cards render their generic label.
|
|
455
|
+
*/
|
|
456
|
+
realtimeSessionMetaMap: Map<string, RealtimeSessionTimelineMeta>;
|
|
457
|
+
/** Agent name the overlay banner shows: the reviewed session's agent while reviewing, else the live call's. */
|
|
458
|
+
get realtimeOverlayAgentName(): string;
|
|
459
|
+
constructor(agentStateService: AgentStateService, conversationAgentService: ConversationAgentService, activeTasks: ActiveTasksService, cdr: ChangeDetectorRef, mentionAutocompleteService: MentionAutocompleteService, artifactPermissionService: ArtifactPermissionService, attachmentService: ConversationAttachmentService, streamingService: ConversationStreamingService, confirmDialog: ConversationsDialogService, bridge: ConversationBridgeService, analyzeArtifactService: AnalyzeArtifactService, uiCommandHandler: UICommandHandlerService, interactiveFormApplyService: InteractiveFormApplyService, agentClientService: AgentClientService);
|
|
316
460
|
/**
|
|
317
461
|
* Apply a form-role artifact's spec as an EntityFormOverride for the
|
|
318
462
|
* current user. The service handles the Create-vs-Modify decision (based
|
|
@@ -368,6 +512,14 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
368
512
|
* - Instant when switching between conversations
|
|
369
513
|
*/
|
|
370
514
|
private loadPeripheralData;
|
|
515
|
+
/**
|
|
516
|
+
* Loads the `MJ: AI Agent Sessions` rows referenced by the conversation's
|
|
517
|
+
* session-stamped details (one batched lookup, narrow fields, only when stamped rows
|
|
518
|
+
* exist) and rebuilds {@link realtimeSessionMetaMap} so the timeline's session cards
|
|
519
|
+
* can show the agent name and a status / close-reason chip. TOLERANT by design: any
|
|
520
|
+
* failure leaves the map empty — cards degrade to their generic label.
|
|
521
|
+
*/
|
|
522
|
+
private loadRealtimeSessionMeta;
|
|
371
523
|
/**
|
|
372
524
|
* REMOVED: Active tasks should only track currently-running tasks in this browser session.
|
|
373
525
|
* Database tasks with 'In-Progress' status are shown in the Tasks dropdown via loadDatabaseTasks().
|
|
@@ -668,6 +820,56 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
668
820
|
}): void;
|
|
669
821
|
onNavigationRequest(event: NavigationRequest): void;
|
|
670
822
|
viewTestRun(testRunId: string): void;
|
|
823
|
+
/**
|
|
824
|
+
* A gear-gated developer link in the live call overlay asked to open a record
|
|
825
|
+
* (delegated agent run / agent session). The overlay has already minimized itself
|
|
826
|
+
* (the call stays live behind the floating "on call" pill); re-emit on the SAME
|
|
827
|
+
* `openEntityRecord` chain every other chat record-open uses, so the Explorer
|
|
828
|
+
* wrapper routes it through `NavigationService.OpenEntityRecord`.
|
|
829
|
+
*/
|
|
830
|
+
onVoiceNavigateRequest(event: RealtimeNavigateRequest): void;
|
|
831
|
+
/**
|
|
832
|
+
* Post-call hook for sessions that created their own conversation: kicks the shared
|
|
833
|
+
* auto-naming helper in the background (first user utterance as the seed) and emits
|
|
834
|
+
* {@link realtimeConversationReady} so the workspace can refresh + select.
|
|
835
|
+
*/
|
|
836
|
+
private onVoiceSessionEnded;
|
|
837
|
+
/**
|
|
838
|
+
* ENTRY API for SESSION REVIEW: opens the realtime overlay in review mode over this
|
|
839
|
+
* conversation panel, rendering what went down in a PAST agent session (caption turns,
|
|
840
|
+
* delegated-run cards, the saved read-only whiteboard). Intended for conversation
|
|
841
|
+
* timeline affordances that reopen historical realtime sessions.
|
|
842
|
+
*
|
|
843
|
+
* @param agentSessionId The `MJ: AI Agent Sessions.ID` to review.
|
|
844
|
+
* @returns `true` when the session loaded and the review opened; `false` when it
|
|
845
|
+
* couldn't be loaded (missing/unreadable session) or a live call is already active.
|
|
846
|
+
*/
|
|
847
|
+
OpenRealtimeSessionReview(agentSessionId: string): Promise<boolean>;
|
|
848
|
+
/**
|
|
849
|
+
* STALENESS GUARD for the async review load: hosting is allowed when the active
|
|
850
|
+
* conversation hasn't changed since the request started, OR when it HAS changed but
|
|
851
|
+
* the loaded review belongs to the now-active conversation (the deep-link case where
|
|
852
|
+
* the conversation selection and the review open race each other). Anything else is
|
|
853
|
+
* a stale review for a conversation the user already left — never host it.
|
|
854
|
+
*/
|
|
855
|
+
private canHostLoadedReview;
|
|
856
|
+
/**
|
|
857
|
+
* Drops any hosted SESSION REVIEW so the overlay unhosts itself. Safe to call at any
|
|
858
|
+
* time: a LIVE call's overlay is unaffected (it renders off `RealtimeSession.Active$`).
|
|
859
|
+
* Called on every conversation change, on the overlay's Close, and available to hosts
|
|
860
|
+
* that need to programmatically dismiss a review.
|
|
861
|
+
*/
|
|
862
|
+
ClearRealtimeSessionReview(): void;
|
|
863
|
+
/**
|
|
864
|
+
* Review mode's "Start live session": RESUMES the reviewed session as a new live call
|
|
865
|
+
* through the SAME start path the composer's mic uses, chaining `lastSessionId` so the
|
|
866
|
+
* server restores saved channel states (e.g. the whiteboard) via `PriorChannelStatesJson`.
|
|
867
|
+
* The start flips `Active$` synchronously, so clearing the review immediately after
|
|
868
|
+
* never unhosts the overlay mid-transition.
|
|
869
|
+
*/
|
|
870
|
+
onReviewStartLive(request: RealtimeStartLiveRequest): Promise<void>;
|
|
871
|
+
/** Review mode's Close: drop the review state (the overlay unhosts itself). */
|
|
872
|
+
onReviewClosed(): void;
|
|
671
873
|
/**
|
|
672
874
|
* Handles Shift+Click on an AI message bubble.
|
|
673
875
|
* Dumps a live snapshot of in-memory streaming and agent-run state to the browser
|
|
@@ -840,6 +1042,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
840
1042
|
*/
|
|
841
1043
|
onIntentCheckCompleted(): void;
|
|
842
1044
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationChatAreaComponent, never>;
|
|
843
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "threadId": { "alias": "threadId"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; }, { "conversationRenamed": "conversationRenamed"; "openEntityRecord": "openEntityRecord"; "navigationRequest": "navigationRequest"; "taskClicked": "taskClicked"; "artifactLinkClicked": "artifactLinkClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "conversationCreated": "conversationCreated"; "threadOpened": "threadOpened"; "threadClosed": "threadClosed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "pendingMessageRequested": "pendingMessageRequested"; },
|
|
1045
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "threadId": { "alias": "threadId"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; }, { "beforeAgentTurn": "beforeAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "beforeToolInvoked": "beforeToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "sessionStarted": "sessionStarted"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "sessionEnded": "sessionEnded"; "conversationRenamed": "conversationRenamed"; "openEntityRecord": "openEntityRecord"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "taskClicked": "taskClicked"; "artifactLinkClicked": "artifactLinkClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "conversationCreated": "conversationCreated"; "threadOpened": "threadOpened"; "threadClosed": "threadClosed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "pendingMessageRequested": "pendingMessageRequested"; }, ["chatSlotChildren"], never, false, never>;
|
|
844
1046
|
}
|
|
845
1047
|
//# sourceMappingURL=conversation-chat-area.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-chat-area.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-chat-area.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-chat-area.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-chat-area.component.ts"],"names":[],"mappings":"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"}
|