@memberjunction/ng-conversations 6.2.0-edge.3 → 6.2.0-edge.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -7
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +1 -0
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.d.ts +14 -2
- package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.js +35 -4
- package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +1 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.js +3 -3
- package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +651 -53
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +3002 -661
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/forks-popover.component.d.ts +37 -0
- package/dist/lib/components/conversation/forks-popover.component.d.ts.map +1 -0
- package/dist/lib/components/conversation/forks-popover.component.js +164 -0
- package/dist/lib/components/conversation/forks-popover.component.js.map +1 -0
- package/dist/lib/components/export/export-modal.component.d.ts +7 -2
- package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
- package/dist/lib/components/export/export-modal.component.js +16 -3
- package/dist/lib/components/export/export-modal.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js +11 -9
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +96 -11
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +253 -112
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +304 -16
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +2029 -363
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +101 -22
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +326 -55
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/realtime/avatar/realtime-avatar-channel.d.ts +34 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-channel.js +75 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-channel.js.map +1 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.d.ts +80 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.js +202 -0
- package/dist/lib/components/realtime/avatar/realtime-avatar-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.d.ts +45 -0
- package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.js +123 -0
- package/dist/lib/components/realtime/capture/realtime-camera-check-card.component.js.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-capture-channel.d.ts +90 -0
- package/dist/lib/components/realtime/capture/realtime-capture-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-capture-channel.js +223 -0
- package/dist/lib/components/realtime/capture/realtime-capture-channel.js.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-capture-model.d.ts +98 -0
- package/dist/lib/components/realtime/capture/realtime-capture-model.d.ts.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-capture-model.js +161 -0
- package/dist/lib/components/realtime/capture/realtime-capture-model.js.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-capture-surface.component.d.ts +48 -0
- package/dist/lib/components/realtime/capture/realtime-capture-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/capture/realtime-capture-surface.component.js +205 -0
- package/dist/lib/components/realtime/capture/realtime-capture-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts +19 -2
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.js +83 -9
- package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +30 -9
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +78 -14
- package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
- package/dist/lib/components/realtime/identity-verification/identity-verification-channel.d.ts +71 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-channel.js +259 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-channel.js.map +1 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-model.d.ts +129 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-model.d.ts.map +1 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-model.js +373 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-model.js.map +1 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.d.ts +77 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.js +420 -0
- package/dist/lib/components/realtime/identity-verification/identity-verification-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-contract.d.ts +83 -0
- package/dist/lib/components/realtime/interactive-component/component-contract.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-contract.js +292 -0
- package/dist/lib/components/realtime/interactive-component/component-contract.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-data-state.d.ts +39 -0
- package/dist/lib/components/realtime/interactive-component/component-data-state.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-data-state.js +152 -0
- package/dist/lib/components/realtime/interactive-component/component-data-state.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-instance-engine.d.ts +109 -0
- package/dist/lib/components/realtime/interactive-component/component-instance-engine.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-instance-engine.js +146 -0
- package/dist/lib/components/realtime/interactive-component/component-instance-engine.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-spec-content.d.ts +19 -0
- package/dist/lib/components/realtime/interactive-component/component-spec-content.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/component-spec-content.js +39 -0
- package/dist/lib/components/realtime/interactive-component/component-spec-content.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-channel.d.ts +183 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-channel.js +761 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-channel.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-config.d.ts +25 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-config.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-config.js +57 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-config.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.d.ts +40 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.js +97 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-host.component.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-types.d.ts +144 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-types.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-types.js +57 -0
- package/dist/lib/components/realtime/interactive-component/interactive-component-types.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/react-component-handle.d.ts +36 -0
- package/dist/lib/components/realtime/interactive-component/react-component-handle.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/react-component-handle.js +55 -0
- package/dist/lib/components/realtime/interactive-component/react-component-handle.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.d.ts +55 -0
- package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.js +210 -0
- package/dist/lib/components/realtime/interactive-component/realtime-interactive-component-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.d.ts +32 -0
- package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.d.ts.map +1 -0
- package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js +90 -0
- package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts +7 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/media/media-channel.js +28 -1
- package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +8 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.js +89 -71
- package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-orb.component.d.ts +21 -0
- package/dist/lib/components/realtime/realtime-agent-orb.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-agent-orb.component.js +49 -0
- package/dist/lib/components/realtime/realtime-agent-orb.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +44 -11
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.js +162 -50
- package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +8 -2
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.js +14 -18
- package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.d.ts +42 -2
- package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.js +137 -102
- package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-perception-chip.component.d.ts +71 -0
- package/dist/lib/components/realtime/realtime-perception-chip.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-perception-chip.component.js +221 -0
- package/dist/lib/components/realtime/realtime-perception-chip.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +264 -22
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +851 -135
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-placement-prefs.d.ts +14 -0
- package/dist/lib/components/realtime/realtime-surface-placement-prefs.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-placement-prefs.js +14 -0
- package/dist/lib/components/realtime/realtime-surface-placement-prefs.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-stage.model.d.ts +74 -0
- package/dist/lib/components/realtime/realtime-surface-stage.model.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-stage.model.js +171 -0
- package/dist/lib/components/realtime/realtime-surface-stage.model.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +71 -13
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +232 -73
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +5 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +8 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.d.ts +12 -2
- package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.js +5 -1
- package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +10 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +42 -2
- package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts +20 -3
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js +44 -10
- package/dist/lib/components/realtime/remote-browser/remote-browser-surface.component.js.map +1 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +28 -44
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +76 -162
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
- package/dist/lib/components/search/search-panel.component.d.ts +2 -0
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +25 -12
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/sidebar/routines-section.component.js +1 -1
- package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts +152 -31
- package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +2227 -214
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +4 -4
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +33 -32
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +72 -88
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +30 -29
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +27 -5
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/events/chat-events.d.ts +25 -0
- package/dist/lib/events/chat-events.d.ts.map +1 -1
- package/dist/lib/events/chat-events.js +36 -0
- package/dist/lib/events/chat-events.js.map +1 -1
- package/dist/lib/models/agent-turn.model.d.ts +5 -0
- package/dist/lib/models/agent-turn.model.d.ts.map +1 -1
- package/dist/lib/models/agent-turn.model.js.map +1 -1
- package/dist/lib/services/agent-state.service.d.ts +34 -8
- package/dist/lib/services/agent-state.service.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.js +90 -37
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-state.service.d.ts +0 -9
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-state.service.js +1 -32
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/browser-realtime-media-host.d.ts +19 -7
- package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -1
- package/dist/lib/services/browser-realtime-media-host.js +21 -72
- package/dist/lib/services/browser-realtime-media-host.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +48 -16
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +110 -35
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-detail-window.store.d.ts +22 -4
- package/dist/lib/services/conversation-detail-window.store.d.ts.map +1 -1
- package/dist/lib/services/conversation-detail-window.store.js +50 -9
- package/dist/lib/services/conversation-detail-window.store.js.map +1 -1
- package/dist/lib/services/conversation-naming.d.ts +72 -22
- package/dist/lib/services/conversation-naming.d.ts.map +1 -1
- package/dist/lib/services/conversation-naming.js +93 -12
- package/dist/lib/services/conversation-naming.js.map +1 -1
- package/dist/lib/services/conversation-tasks-filter.d.ts +15 -0
- package/dist/lib/services/conversation-tasks-filter.d.ts.map +1 -0
- package/dist/lib/services/conversation-tasks-filter.js +69 -0
- package/dist/lib/services/conversation-tasks-filter.js.map +1 -0
- package/dist/lib/services/data-cache.service.d.ts +13 -5
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +39 -19
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/export.service.d.ts +26 -9
- package/dist/lib/services/export.service.d.ts.map +1 -1
- package/dist/lib/services/export.service.js +61 -18
- package/dist/lib/services/export.service.js.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.d.ts +115 -79
- package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.js +273 -186
- package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
- package/dist/lib/services/realtime-pairing.d.ts +10 -5
- package/dist/lib/services/realtime-pairing.d.ts.map +1 -1
- package/dist/lib/services/realtime-pairing.js +15 -6
- package/dist/lib/services/realtime-pairing.js.map +1 -1
- package/dist/lib/services/realtime-session.service.d.ts +31 -2
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session.service.js +34 -2
- package/dist/lib/services/realtime-session.service.js.map +1 -1
- package/dist/lib/services/recording/libopus-wasm-binary.d.ts +3 -0
- package/dist/lib/services/recording/libopus-wasm-binary.d.ts.map +1 -0
- package/dist/lib/services/recording/libopus-wasm-binary.js +489 -0
- package/dist/lib/services/recording/libopus-wasm-binary.js.map +1 -0
- package/dist/lib/services/recording/libopus-worker-source.d.ts +48 -0
- package/dist/lib/services/recording/libopus-worker-source.d.ts.map +1 -0
- package/dist/lib/services/recording/libopus-worker-source.js +170 -0
- package/dist/lib/services/recording/libopus-worker-source.js.map +1 -0
- package/dist/lib/services/recording/linear-resampler.d.ts +45 -0
- package/dist/lib/services/recording/linear-resampler.d.ts.map +1 -0
- package/dist/lib/services/recording/linear-resampler.js +85 -0
- package/dist/lib/services/recording/linear-resampler.js.map +1 -0
- package/dist/lib/services/recording/opus-packet-encoder.d.ts +50 -0
- package/dist/lib/services/recording/opus-packet-encoder.d.ts.map +1 -0
- package/dist/lib/services/recording/opus-packet-encoder.js +41 -0
- package/dist/lib/services/recording/opus-packet-encoder.js.map +1 -0
- package/dist/lib/services/recording/wasm-opus-encoder.d.ts +86 -0
- package/dist/lib/services/recording/wasm-opus-encoder.d.ts.map +1 -0
- package/dist/lib/services/recording/wasm-opus-encoder.js +232 -0
- package/dist/lib/services/recording/wasm-opus-encoder.js.map +1 -0
- package/dist/lib/services/recording/webcodecs-opus-encoder.d.ts +39 -0
- package/dist/lib/services/recording/webcodecs-opus-encoder.d.ts.map +1 -0
- package/dist/lib/services/recording/webcodecs-opus-encoder.js +101 -0
- package/dist/lib/services/recording/webcodecs-opus-encoder.js.map +1 -0
- package/dist/lib/services/search.service.d.ts +7 -2
- package/dist/lib/services/search.service.d.ts.map +1 -1
- package/dist/lib/services/search.service.js +16 -20
- package/dist/lib/services/search.service.js.map +1 -1
- package/dist/lib/utils/conversation-branching.d.ts +4 -0
- package/dist/lib/utils/conversation-branching.d.ts.map +1 -0
- package/dist/lib/utils/conversation-branching.js +5 -0
- package/dist/lib/utils/conversation-branching.js.map +1 -0
- package/dist/lib/utils/conversation-forks.d.ts +315 -0
- package/dist/lib/utils/conversation-forks.d.ts.map +1 -0
- package/dist/lib/utils/conversation-forks.js +456 -0
- package/dist/lib/utils/conversation-forks.js.map +1 -0
- package/dist/lib/utils/distinct-artifacts.d.ts +9 -3
- package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
- package/dist/lib/utils/distinct-artifacts.js +24 -5
- package/dist/lib/utils/distinct-artifacts.js.map +1 -1
- package/dist/public-api.d.ts +23 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +30 -1
- package/dist/public-api.js.map +1 -1
- package/package.json +37 -33
- package/dist/lib/components/thread/thread-panel.component.d.ts +0 -126
- package/dist/lib/components/thread/thread-panel.component.d.ts.map +0 -1
- package/dist/lib/components/thread/thread-panel.component.js +0 -440
- package/dist/lib/components/thread/thread-panel.component.js.map +0 -1
- package/dist/lib/services/realtime-pcm-wav.d.ts +0 -79
- package/dist/lib/services/realtime-pcm-wav.d.ts.map +0 -1
- package/dist/lib/services/realtime-pcm-wav.js +0 -213
- package/dist/lib/services/realtime-pcm-wav.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
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
|
-
import { MJConversationEntity, MJConversationDetailEntity, MJAIAgentRunEntity, MJArtifactEntity, MJTaskEntity, RatingJSON } from '@memberjunction/core-entities';
|
|
5
|
-
import { MJAIAgentRunEntityExtended } from "@memberjunction/ai-core-plus";
|
|
4
|
+
import { MJConversationEntity, MJConversationDetailEntity, MJAIAgentRunEntity, MJArtifactEntity, MJTaskEntity, RatingJSON, type ConversationScope, type ForkKind, type ForkSummary } from '@memberjunction/core-entities';
|
|
5
|
+
import { MJAIAgentRunEntityExtended, OpenResourceCommand, type TaskGraphSpec } from "@memberjunction/ai-core-plus";
|
|
6
6
|
import { UICommandHandlerService } from '../../services/ui-command-handler.service';
|
|
7
7
|
import { AgentStateService } from '../../services/agent-state.service';
|
|
8
8
|
import { ConversationLivenessDomService } from '../../services/conversation-liveness-dom.service';
|
|
9
9
|
import { ConversationAgentService } from '../../services/conversation-agent.service';
|
|
10
10
|
import { ActiveTasksService } from '../../services/active-tasks.service';
|
|
11
|
-
import { PendingAttachment } from '@memberjunction/ng-composer';
|
|
11
|
+
import { PendingAttachment, SendSlotMode } from '@memberjunction/ng-composer';
|
|
12
12
|
import { ArtifactPermissionService } from '../../services/artifact-permission.service';
|
|
13
13
|
import { ConversationAttachmentService } from '../../services/conversation-attachment.service';
|
|
14
14
|
import { MJResourcePermissionShareAdapter, ResourceShareContext } from '@memberjunction/ng-resource-permissions';
|
|
@@ -29,9 +29,10 @@ import type { ExportBranding } from '../../services/export.service';
|
|
|
29
29
|
import { RealtimeNavigateRequest, RealtimeStartLiveRequest } from '../realtime/realtime-session-overlay.component';
|
|
30
30
|
import { RealtimeSessionTimelineMeta } from '../../utils/realtime-session-timeline';
|
|
31
31
|
import { type DateJumpPeriod } from '../../utils/date-jump';
|
|
32
|
+
import { type ConversationOpenView, type ForkBreadcrumb, type ForkHeaderPath, type ForkChipOpenRequest, type ForkViewLayout, type LatestTurn, type MessageForkChip } from '../../utils/conversation-forks';
|
|
32
33
|
import { type MJChatSlotName } from '../../directives/chat-slot.directive';
|
|
33
34
|
import type { MJChatAgentPresenceState } from '../slots/slot-interfaces';
|
|
34
|
-
import { BeforeAgentTurnEventArgs, AfterAgentTurnEventArgs, BeforeToolInvokedEventArgs, AfterToolInvokedEventArgs, BeforeResponseFormSubmittedEventArgs, AfterResponseFormSubmittedEventArgs, SessionStartedEventArgs, SessionChannelStateChangedEventArgs, SessionEndedEventArgs } from '../../events/chat-events';
|
|
35
|
+
import { BeforeAgentTurnEventArgs, AfterAgentTurnEventArgs, BeforeToolInvokedEventArgs, AfterToolInvokedEventArgs, BeforeResponseFormSubmittedEventArgs, AfterResponseFormSubmittedEventArgs, BeforeStopClickedEventArgs, AfterStopClickedEventArgs, SessionStartedEventArgs, SessionChannelStateChangedEventArgs, SessionEndedEventArgs } from '../../events/chat-events';
|
|
35
36
|
import * as i0 from "@angular/core";
|
|
36
37
|
/**
|
|
37
38
|
* Configuration for the persona/character rendering in the `agentPresence` slot.
|
|
@@ -97,11 +98,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
97
98
|
set conversation(value: MJConversationEntity | null);
|
|
98
99
|
/** @deprecated Use {@link Conversation}. */
|
|
99
100
|
get conversation(): MJConversationEntity | null;
|
|
100
|
-
ThreadId: string | null;
|
|
101
|
-
/** @deprecated Use {@link ThreadId}. */
|
|
102
|
-
set threadId(value: string | null);
|
|
103
|
-
/** @deprecated Use {@link ThreadId}. */
|
|
104
|
-
get threadId(): string | null;
|
|
105
101
|
/**
|
|
106
102
|
* When true, render the normal message-list + message-input layout even
|
|
107
103
|
* before a conversation exists, instead of the centered empty-state
|
|
@@ -180,6 +176,24 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
180
176
|
set allowRealtime(value: ConversationChatAreaComponent['AllowRealtime']);
|
|
181
177
|
/** @deprecated Use {@link AllowRealtime}. */
|
|
182
178
|
get allowRealtime(): ConversationChatAreaComponent['AllowRealtime'];
|
|
179
|
+
/**
|
|
180
|
+
* Host-level cap for starting conversation forks: Fork from here, and Edit or
|
|
181
|
+
* Regenerate as a fork. Defaults true (current behavior). Hosts with no forking
|
|
182
|
+
* experience set false; Edit and Regenerate then change the latest turn in place,
|
|
183
|
+
* as for a person without the `Conversations: Fork` authorization. UI only: deny
|
|
184
|
+
* that authorization to a role to stop the server creating forks as well.
|
|
185
|
+
*/
|
|
186
|
+
AllowForking: boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Host-level cap for stopping and continuing agent runs: the composer's Stop and Stop all, the
|
|
189
|
+
* Stop pill on an in-progress reply, the Continue button on a stopped reply, and the "Continue,
|
|
190
|
+
* or tell {agent} what to do differently" placeholder. Defaults true (current behavior). Hosts
|
|
191
|
+
* with no stop experience (a review surface, a space whose runs are managed elsewhere) set false
|
|
192
|
+
* without making the conversation read-only. UI only: a run stopped from another client still
|
|
193
|
+
* shows as stopped, and the next message still continues it. The composer's status line
|
|
194
|
+
* ({@link StatusText}) is not part of the cap: it reports that a reply is in flight either way.
|
|
195
|
+
*/
|
|
196
|
+
AllowStopRun: boolean;
|
|
183
197
|
/**
|
|
184
198
|
* Whether the message list renders its built-in "No messages yet" filler
|
|
185
199
|
* when a conversation has zero messages. Defaults true. Hosts that render
|
|
@@ -719,6 +733,16 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
719
733
|
* initialise in order, and the other way round this captures undefined.
|
|
720
734
|
*/
|
|
721
735
|
afterResponseFormSubmitted: EventEmitter<AfterResponseFormSubmittedEventArgs>;
|
|
736
|
+
/**
|
|
737
|
+
* Fired BEFORE an in-progress agent run is stopped from its reply. Cancelable: set
|
|
738
|
+
* `event.Cancel = true` to keep the run going; `AfterStopClicked` then does not fire.
|
|
739
|
+
*/
|
|
740
|
+
BeforeStopClicked: EventEmitter<BeforeStopClickedEventArgs>;
|
|
741
|
+
/**
|
|
742
|
+
* Fired AFTER a stop was attempted, with whether the run's row was marked Cancelled.
|
|
743
|
+
* Not fired when `BeforeStopClicked` was canceled.
|
|
744
|
+
*/
|
|
745
|
+
AfterStopClicked: EventEmitter<AfterStopClickedEventArgs>;
|
|
722
746
|
/** Informational. */
|
|
723
747
|
SessionStarted: EventEmitter<SessionStartedEventArgs>;
|
|
724
748
|
/**
|
|
@@ -852,24 +876,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
852
876
|
pendingMessage?: string;
|
|
853
877
|
pendingAttachments?: PendingAttachment[];
|
|
854
878
|
}>;
|
|
855
|
-
ThreadOpened: EventEmitter<string>;
|
|
856
|
-
/**
|
|
857
|
-
* @deprecated Use {@link ThreadOpened}.
|
|
858
|
-
*
|
|
859
|
-
* The same emitter under the old binding name, so a template still binding
|
|
860
|
-
* (threadOpened) keeps working. Must stay AFTER ThreadOpened: class fields
|
|
861
|
-
* initialise in order, and the other way round this captures undefined.
|
|
862
|
-
*/
|
|
863
|
-
threadOpened: EventEmitter<string>;
|
|
864
|
-
ThreadClosed: EventEmitter<void>;
|
|
865
|
-
/**
|
|
866
|
-
* @deprecated Use {@link ThreadClosed}.
|
|
867
|
-
*
|
|
868
|
-
* The same emitter under the old binding name, so a template still binding
|
|
869
|
-
* (threadClosed) keeps working. Must stay AFTER ThreadClosed: class fields
|
|
870
|
-
* initialise in order, and the other way round this captures undefined.
|
|
871
|
-
*/
|
|
872
|
-
threadClosed: EventEmitter<void>;
|
|
873
879
|
PendingArtifactConsumed: EventEmitter<void>;
|
|
874
880
|
/**
|
|
875
881
|
* @deprecated Use {@link PendingArtifactConsumed}.
|
|
@@ -903,7 +909,13 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
903
909
|
text: string;
|
|
904
910
|
attachments: PendingAttachment[];
|
|
905
911
|
}>;
|
|
906
|
-
private scrollContainer
|
|
912
|
+
private scrollContainer?;
|
|
913
|
+
/** The transcript scroller; watched so the scroll-to-bottom arrow follows content that grows or shrinks without a scroll. */
|
|
914
|
+
private set scrollContainerRef(value);
|
|
915
|
+
/** Re-checks the scroll state when the transcript or its content changes size; null when nothing is watched. */
|
|
916
|
+
private scrollResizeObserver;
|
|
917
|
+
/** Watches `container` and its content for size changes (a new view, removed rows), which fire no scroll event. */
|
|
918
|
+
private watchScrollContent;
|
|
907
919
|
private messageInputComponents;
|
|
908
920
|
/**
|
|
909
921
|
* Prefill the composer with draft text (NOT sent — unlike pendingMessage) and focus
|
|
@@ -1028,8 +1040,20 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1028
1040
|
/** Gap kept between the pane's top edge and the turn's first message. */
|
|
1029
1041
|
private static readonly TURN_TOP_GAP_PX;
|
|
1030
1042
|
private lastLoadedConversationId;
|
|
1043
|
+
/**
|
|
1044
|
+
* The conversation whose artifacts are currently held in {@link ArtifactsByDetailId}.
|
|
1045
|
+
* Unlike {@link lastLoadedConversationId} (which {@link resetComponentState} zeroes on every
|
|
1046
|
+
* message send / agent response to force {@link loadPeripheralData} to re-run), this stays set
|
|
1047
|
+
* to the owning conversation until {@link ArtifactsByDetailId} is actually cleared or rebuilt
|
|
1048
|
+
* for another conversation.
|
|
1049
|
+
*/
|
|
1050
|
+
private artifactMapConversationId;
|
|
1031
1051
|
private currentlyLoadingConversationId;
|
|
1032
1052
|
private conversationLoadToken;
|
|
1053
|
+
/** The conversation whose load has ended; null while a load runs and before the first one. */
|
|
1054
|
+
private readyConversationId;
|
|
1055
|
+
/** Emits each time a conversation load ends. */
|
|
1056
|
+
private readonly conversationLoadEnded$;
|
|
1033
1057
|
/** The reconcile passes in progress, shared by every caller that arrives while they run. */
|
|
1034
1058
|
private reconcileInFlight;
|
|
1035
1059
|
/** Reason for one more reconcile pass, requested while a pass was running. */
|
|
@@ -1115,6 +1139,10 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1115
1139
|
/** @deprecated Use {@link ShowProjectSelector}. */
|
|
1116
1140
|
set showProjectSelector(value: boolean);
|
|
1117
1141
|
ShowArtifactPanel: boolean;
|
|
1142
|
+
SelectedTaskGraphPanel: {
|
|
1143
|
+
parentTaskId: string;
|
|
1144
|
+
workflowTitle: string;
|
|
1145
|
+
} | null;
|
|
1118
1146
|
/** @deprecated Use {@link ShowArtifactPanel}. */
|
|
1119
1147
|
get showArtifactPanel(): boolean;
|
|
1120
1148
|
/** @deprecated Use {@link ShowArtifactPanel}. */
|
|
@@ -1256,7 +1284,56 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1256
1284
|
* In-progress message IDs for streaming reconnection
|
|
1257
1285
|
* Passed to message-input component to reconnect PubSub updates
|
|
1258
1286
|
*/
|
|
1259
|
-
InProgressMessageIds: string[];
|
|
1287
|
+
get InProgressMessageIds(): string[];
|
|
1288
|
+
set InProgressMessageIds(value: string[]);
|
|
1289
|
+
private _inProgressMessageIds;
|
|
1290
|
+
/** Replies the person asked to stop that have not left In-Progress yet. */
|
|
1291
|
+
StoppingDetailIds: Set<string>;
|
|
1292
|
+
private _stopFallbackTimers;
|
|
1293
|
+
private _sendSlotTicker;
|
|
1294
|
+
/** The elapsed time of the in-flight reply, ticked once a second while one is in flight. */
|
|
1295
|
+
SendSlotElapsed: string | null;
|
|
1296
|
+
/** How many agent replies are in flight in the open view. */
|
|
1297
|
+
get InFlightCount(): number;
|
|
1298
|
+
/** What the composer's send slot is: Stop while replies are in flight and the viewer may stop them. */
|
|
1299
|
+
get SendSlotMode(): SendSlotMode;
|
|
1300
|
+
/** The count the slot shows: the in-flight replies, or none when the slot is Send. */
|
|
1301
|
+
get StopCount(): number;
|
|
1302
|
+
/** The slot's tooltip and accessible name: "Stop {agent}", or "Stop all N runs". */
|
|
1303
|
+
get StopLabel(): string;
|
|
1304
|
+
/**
|
|
1305
|
+
* The composer's status line: who is working, or what is being stopped. Null with nothing in
|
|
1306
|
+
* flight. It is information, not a control, so it shows whenever a reply is in flight, whether
|
|
1307
|
+
* or not the viewer may stop it (a read-only viewer, or a host with {@link AllowStopRun} off);
|
|
1308
|
+
* only the send slot is gated. The stopping text likewise reads the stopping state itself, not
|
|
1309
|
+
* the slot's mode.
|
|
1310
|
+
*/
|
|
1311
|
+
get StatusText(): string | null;
|
|
1312
|
+
/** The elapsed time after the status line, for a single run that is working (not one being stopped). */
|
|
1313
|
+
get StatusElapsed(): string | null;
|
|
1314
|
+
/**
|
|
1315
|
+
* The composer's stop control. Every in-flight reply is stopped through the same path as the
|
|
1316
|
+
* per-reply pill: `BeforeStopClicked` first (a listener that cancels keeps that run going),
|
|
1317
|
+
* then {@link OnStopMessage}, which fires `AfterStopClicked` with the outcome. Each reply asked
|
|
1318
|
+
* to stop reads as stopping until it leaves In-Progress, or until the retry window passes,
|
|
1319
|
+
* when the slot offers Stop again and a toast says the stop did not take.
|
|
1320
|
+
*/
|
|
1321
|
+
OnComposerStopClicked(): Promise<void>;
|
|
1322
|
+
/** The agent name of an in-flight reply: its run's agent, else the reply's, else the assistant name. */
|
|
1323
|
+
private agentNameFor;
|
|
1324
|
+
private inFlightAgentName;
|
|
1325
|
+
private isAnyStopping;
|
|
1326
|
+
private markStopping;
|
|
1327
|
+
private clearStopFallbackTimer;
|
|
1328
|
+
/**
|
|
1329
|
+
* Follows a change in the in-flight replies: a reply that left In-Progress is no longer
|
|
1330
|
+
* stopping, and the one-second elapsed ticker runs only while something is in flight.
|
|
1331
|
+
*/
|
|
1332
|
+
private syncSendSlot;
|
|
1333
|
+
private updateSendSlotElapsed;
|
|
1334
|
+
private stopSendSlotTicker;
|
|
1335
|
+
/** `m:ss` (or `h:mm:ss`), the same shape as the reply's time pill. */
|
|
1336
|
+
static FormatElapsed(ms: number): string;
|
|
1260
1337
|
/** @deprecated Use {@link InProgressMessageIds}. */
|
|
1261
1338
|
get inProgressMessageIds(): string[];
|
|
1262
1339
|
/** @deprecated Use {@link InProgressMessageIds}. */
|
|
@@ -1322,18 +1399,18 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1322
1399
|
/** @deprecated Use {@link PinnedMessageCount}. */
|
|
1323
1400
|
get pinnedMessageCount(): number;
|
|
1324
1401
|
/**
|
|
1325
|
-
* Opens/closes the pins panel, hydrating its rows on first open.
|
|
1402
|
+
* Opens/closes the pins panel, hydrating its rows on first open. Opening it closes the forks list.
|
|
1326
1403
|
*
|
|
1327
1404
|
* Lazy on purpose: the panel is closed by default, so loading pin entities during
|
|
1328
1405
|
* conversation open costs every user for a panel most never open.
|
|
1329
1406
|
*/
|
|
1330
1407
|
TogglePinsPanel(): Promise<void>;
|
|
1331
1408
|
/**
|
|
1332
|
-
*
|
|
1409
|
+
* The pinned messages on the open view's path, newest pin first.
|
|
1333
1410
|
*
|
|
1334
1411
|
* Read from the window store's separate pin set, NOT filtered out of `messages` — a pin
|
|
1335
|
-
* older than the loaded window would otherwise vanish from the panel. Loaded by
|
|
1336
|
-
*
|
|
1412
|
+
* older than the loaded window would otherwise vanish from the panel. Loaded by
|
|
1413
|
+
* {@link hydratePinnedMessages} when the pins panel first opens, already ordered `Sequence DESC`.
|
|
1337
1414
|
*
|
|
1338
1415
|
* This and the three getters around it are TEMPLATE-BOUND, so they run on every change
|
|
1339
1416
|
* detection cycle. They read the store's cheap single-value accessors rather than
|
|
@@ -1469,6 +1546,103 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1469
1546
|
private conversationManagerAgent;
|
|
1470
1547
|
private engine;
|
|
1471
1548
|
private windowStore;
|
|
1549
|
+
/**
|
|
1550
|
+
* This chat area's fork rows of the active conversation, loaded with the transcript. The scope of the
|
|
1551
|
+
* open view is built from them; no other chat area reads or changes them.
|
|
1552
|
+
*/
|
|
1553
|
+
private branches;
|
|
1554
|
+
/** The conversation whose fork rows {@link branches} holds; null when none are loaded. */
|
|
1555
|
+
private branchRowsConversationId;
|
|
1556
|
+
/** The conversation and branch of the last Main fallback that {@link openViewScope} logged. */
|
|
1557
|
+
private scopeFallbackLogged;
|
|
1558
|
+
/** What this chat area shows of the active conversation: Main or one fork. Per instance, in memory only. */
|
|
1559
|
+
private openView;
|
|
1560
|
+
/**
|
|
1561
|
+
* The view the loaded rows belong to: the open view once its window is applied. While a view change
|
|
1562
|
+
* reloads, the rows on screen keep the layout of this view.
|
|
1563
|
+
*/
|
|
1564
|
+
private windowView;
|
|
1565
|
+
/** True while a view change ends a voice session and reloads; other view changes are ignored meanwhile. */
|
|
1566
|
+
private viewChangeInFlight;
|
|
1567
|
+
/** True while a fork is being created and opened; other start actions are ignored meanwhile. */
|
|
1568
|
+
private forkStartInFlight;
|
|
1569
|
+
/** True while an in-place rerun hides a turn's answer and starts the agent again; other reruns are ignored meanwhile. */
|
|
1570
|
+
private inPlaceRerunInFlight;
|
|
1571
|
+
/** The in-place turn built for a window, with the inputs it was built from. */
|
|
1572
|
+
private inPlaceTurnCache;
|
|
1573
|
+
/** The draft whose fork a first send is creating, with that creation; a send in the same draft awaits it. */
|
|
1574
|
+
private draftForkStart;
|
|
1575
|
+
/** The fork a draft's first send created; the first user message sent into it names it ({@link nameForkFromFirstSend}). */
|
|
1576
|
+
private forkNamedByFirstSend;
|
|
1577
|
+
/** True while the header title (the conversation name in Main, the fork name in a fork) is edited. */
|
|
1578
|
+
IsRenamingTitle: boolean;
|
|
1579
|
+
/** The text of the title name field. */
|
|
1580
|
+
TitleRenameText: string;
|
|
1581
|
+
/** The title name field; focused when renaming starts. */
|
|
1582
|
+
private titleNameInput?;
|
|
1583
|
+
/** The rename button of the header title; focus goes back to it when the name field closes from the keyboard. */
|
|
1584
|
+
private titleRenameButton?;
|
|
1585
|
+
/** The breadcrumb built for a view, with the inputs it was built from. */
|
|
1586
|
+
private breadcrumbCache;
|
|
1587
|
+
/** Increments on every view reload; a reload whose token is no longer current stops. */
|
|
1588
|
+
private viewReloadToken;
|
|
1589
|
+
/**
|
|
1590
|
+
* The pins recorded before a view reload reset the store, with the conversation load they belong
|
|
1591
|
+
* to. A reload that replaces a running one in the same conversation load reuses them.
|
|
1592
|
+
*/
|
|
1593
|
+
private pinsDuringViewReload;
|
|
1594
|
+
/** The fork summaries of the active conversation: chips, the fork header and the forks list read them. */
|
|
1595
|
+
ForkSummaries: ForkSummary[];
|
|
1596
|
+
/** True while the forks list is open. */
|
|
1597
|
+
ShowForksPopover: boolean;
|
|
1598
|
+
/** The id of this chat area's forks popover; the header Forks button points at it. */
|
|
1599
|
+
readonly ForksPopoverID: string;
|
|
1600
|
+
/** The header Forks button; focus goes back to it when the forks list closes. */
|
|
1601
|
+
private forksButton?;
|
|
1602
|
+
private forkSummaryRefreshTimer;
|
|
1603
|
+
/** Numbers each fork summary read, so an older read cannot overwrite a newer one. */
|
|
1604
|
+
private forkSummaryReadSequence;
|
|
1605
|
+
/** The number of the newest fork summary read whose result is shown. */
|
|
1606
|
+
private forkSummaryShownSequence;
|
|
1607
|
+
/**
|
|
1608
|
+
* The chip map built from {@link ForkSummaries} for a window view, with the summaries, the view, the
|
|
1609
|
+
* fork's first own row and the avatar map (and its version) it was built from.
|
|
1610
|
+
*/
|
|
1611
|
+
private forkChipCache;
|
|
1612
|
+
/** Increments each time {@link UserAvatarMap} is filled, so the chip map is built again with the new avatars. */
|
|
1613
|
+
private userAvatarMapVersion;
|
|
1614
|
+
/** The loaded rows split for the window view, and the rows shown from that split. */
|
|
1615
|
+
private displayCache;
|
|
1616
|
+
/** The layout and composer hint of the rows shown, with the inputs they were built from. */
|
|
1617
|
+
private layoutCache;
|
|
1618
|
+
/** The open view; Main when none was set. */
|
|
1619
|
+
get OpenView(): ConversationOpenView;
|
|
1620
|
+
/** The branch whose path the open view reads; null is Main. */
|
|
1621
|
+
get OpenViewBranchId(): string | null;
|
|
1622
|
+
/** The branch a composer of `conversationId` writes to: the open view's for the active conversation, else Main. */
|
|
1623
|
+
TargetBranchIdFor(conversationId: string | null | undefined): string | null;
|
|
1624
|
+
/**
|
|
1625
|
+
* The scope of what this chat area shows of a conversation: the open view's path for the active
|
|
1626
|
+
* conversation, Main for any other. Built from this chat area's own fork rows. While the rows of
|
|
1627
|
+
* the open fork are not loaded yet, returns Main and logs once per conversation and branch.
|
|
1628
|
+
*/
|
|
1629
|
+
private openViewScope;
|
|
1630
|
+
/** The open view's scope, passed to the artifact viewer; null with no conversation. */
|
|
1631
|
+
get ArtifactViewerScope(): ConversationScope | null;
|
|
1632
|
+
/** The open view's scope, passed to the export modal; null with no conversation. */
|
|
1633
|
+
get ExportScope(): ConversationScope | null;
|
|
1634
|
+
/**
|
|
1635
|
+
* Answers the active composer's "which branch does this new message go to": the open fork, or null
|
|
1636
|
+
* for Main. In a draft fork, creates the fork first and opens it; undefined (the send stops) when
|
|
1637
|
+
* that fails. Bound to the composer's ResolveTargetBranch input, so it is one stable function.
|
|
1638
|
+
*/
|
|
1639
|
+
readonly ResolveComposerBranch: () => Promise<string | null | undefined>;
|
|
1640
|
+
private resolveComposerBranch;
|
|
1641
|
+
/**
|
|
1642
|
+
* Keeps the fork rows loaded for a conversation as this chat area's rows, so
|
|
1643
|
+
* {@link openViewScope} can build the scope of the open fork.
|
|
1644
|
+
*/
|
|
1645
|
+
private setBranchRows;
|
|
1472
1646
|
/**
|
|
1473
1647
|
* Voice session service — exposed to the template so the realtime "call mode"
|
|
1474
1648
|
* overlay can be hosted here (it fills this conversation panel in place while
|
|
@@ -1562,6 +1736,24 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1562
1736
|
*/
|
|
1563
1737
|
private getActiveMessageInputComponent;
|
|
1564
1738
|
private loadMessages;
|
|
1739
|
+
/**
|
|
1740
|
+
* Reads the store's loaded window into the transcript: messages, user avatars, attachment
|
|
1741
|
+
* support and in-progress message IDs.
|
|
1742
|
+
*/
|
|
1743
|
+
private applyWindowSnapshot;
|
|
1744
|
+
/**
|
|
1745
|
+
* The conversation's fork rows. An empty list when they cannot be read, so the transcript
|
|
1746
|
+
* still loads.
|
|
1747
|
+
*/
|
|
1748
|
+
private loadBranchesOrEmpty;
|
|
1749
|
+
/** The conversation's fork rows; null when they cannot be read. */
|
|
1750
|
+
private loadBranchesOrNull;
|
|
1751
|
+
/**
|
|
1752
|
+
* Loads the fork rows and keeps them, starts the fork summary read, then counts the pins
|
|
1753
|
+
* in the scope of the open view's path. Keeps and counts nothing when a newer conversation
|
|
1754
|
+
* load started.
|
|
1755
|
+
*/
|
|
1756
|
+
private loadBranchesAndPinCount;
|
|
1565
1757
|
/**
|
|
1566
1758
|
* Reads only the PIN COUNT on conversation open.
|
|
1567
1759
|
*
|
|
@@ -1584,6 +1776,11 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1584
1776
|
* from the panel with no error at all.
|
|
1585
1777
|
*/
|
|
1586
1778
|
private hydratePinnedMessages;
|
|
1779
|
+
/**
|
|
1780
|
+
* Reads the pin count in the scope of the open view's path and, when the pins panel's rows
|
|
1781
|
+
* are loaded, reads those rows again too. A read that throws is logged and changes nothing.
|
|
1782
|
+
*/
|
|
1783
|
+
private reloadPinsForScope;
|
|
1587
1784
|
/**
|
|
1588
1785
|
* Reshapes one detail's artifacts into the UI's `LazyArtifactInfo` lists, splitting the
|
|
1589
1786
|
* system-only ones out. Shared by the full rebuild and the incremental prepend so the two
|
|
@@ -1746,6 +1943,342 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1746
1943
|
* Called when agent completion is detected to discover newly delegated agent messages.
|
|
1747
1944
|
*/
|
|
1748
1945
|
private reloadMessagesForActiveConversation;
|
|
1946
|
+
/**
|
|
1947
|
+
* Shows `next` for the active conversation. Ends a voice session open for the conversation first (a
|
|
1948
|
+
* session keeps the path it started on), then reloads the window, fork rows, artifact viewer, agent
|
|
1949
|
+
* polling, peripherals and pins on the view's path (a draft reads its parent's path up to its
|
|
1950
|
+
* anchor). A view equal to the open one changes nothing. Ignored while another view change runs.
|
|
1951
|
+
* @returns true when `next` is shown; false when ignored, when there is no conversation, or when the reload failed.
|
|
1952
|
+
*/
|
|
1953
|
+
private changeOpenView;
|
|
1954
|
+
/** Opens a fork of the active conversation in the full view. */
|
|
1955
|
+
OpenFork(branchId: string): Promise<boolean>;
|
|
1956
|
+
/** Shows Main of the active conversation. */
|
|
1957
|
+
BackToMain(): Promise<boolean>;
|
|
1958
|
+
/**
|
|
1959
|
+
* The fork the back button opens; null is Main. A fork's parent fork, or a draft's ParentBranchID
|
|
1960
|
+
* (the view it started from).
|
|
1961
|
+
*/
|
|
1962
|
+
get BackForkId(): string | null;
|
|
1963
|
+
/** The label and aria-label of the back button: "Back to <parent fork>", or "Back to Main". */
|
|
1964
|
+
get BackLabel(): string;
|
|
1965
|
+
/** Goes up one level: opens the parent fork of the open fork or draft, else Main. */
|
|
1966
|
+
GoBack(): Promise<boolean>;
|
|
1967
|
+
/**
|
|
1968
|
+
* The breadcrumb of the header in a fork: the conversation, each ancestor fork, then the open fork ("New fork"
|
|
1969
|
+
* in a draft). Empty in Main. The same array until the view, the fork rows, the summaries or the
|
|
1970
|
+
* conversation name change.
|
|
1971
|
+
*/
|
|
1972
|
+
get ForkBreadcrumbs(): ForkBreadcrumb[];
|
|
1973
|
+
/** The header path of the open fork or draft: the breadcrumb with the crumbs that collapse into an ellipsis. */
|
|
1974
|
+
get HeaderPath(): ForkHeaderPath;
|
|
1975
|
+
private headerPathCache;
|
|
1976
|
+
/** The path's ellipsis was chosen: opens the forks list, which shows the whole chain. */
|
|
1977
|
+
ShowWholePath(): void;
|
|
1978
|
+
/**
|
|
1979
|
+
* Escape in the header or the transcript of a fork view: closes the forks list when it is open, else goes
|
|
1980
|
+
* up one level ({@link GoBack}). Ignored when an inner control handled the key (the rename field, a
|
|
1981
|
+
* message editor, an open menu), in a text field, and in Main.
|
|
1982
|
+
*/
|
|
1983
|
+
OnViewEscape(event: Event): void;
|
|
1984
|
+
/** A crumb was chosen: opens its fork, or Main for the conversation crumb. The last crumb opens nothing. */
|
|
1985
|
+
OpenCrumb(crumb: ForkBreadcrumb): Promise<boolean>;
|
|
1986
|
+
/** The fork rows this chat area knows: its loaded rows, then the rows of the fork summaries. */
|
|
1987
|
+
private knownForkRows;
|
|
1988
|
+
/** A fork's row among the loaded rows or the summaries; null when neither has it. */
|
|
1989
|
+
private knownForkRow;
|
|
1990
|
+
/** The display name of a fork: its summary's, else the default from its row, else "Fork". */
|
|
1991
|
+
private forkLabelOf;
|
|
1992
|
+
/** True when the open fork may be renamed: a saved fork (not a draft) of a conversation the person may write to. */
|
|
1993
|
+
get CanRenameFork(): boolean;
|
|
1994
|
+
/** True when the conversation may be renamed from the header: Main is open and the person may write to it. */
|
|
1995
|
+
get CanRenameConversation(): boolean;
|
|
1996
|
+
/** True when the header title may be renamed: the conversation in Main, the fork in a fork. */
|
|
1997
|
+
get CanRenameTitle(): boolean;
|
|
1998
|
+
/** The header title: the conversation name in Main, the open fork's display name in a fork or draft. */
|
|
1999
|
+
get HeaderTitle(): string;
|
|
2000
|
+
/** The label of the title rename button and name field. */
|
|
2001
|
+
get TitleRenameLabel(): string;
|
|
2002
|
+
/** Turns the header title into a text field holding its current name, and focuses it. */
|
|
2003
|
+
StartTitleRename(): void;
|
|
2004
|
+
/** Closes the title name field without saving (Escape) and puts focus back on the rename button. */
|
|
2005
|
+
CancelTitleRename(): void;
|
|
2006
|
+
/** Puts focus on the title rename button once the name field is gone, when the button is on the page. */
|
|
2007
|
+
private focusTitleRenameButton;
|
|
2008
|
+
/**
|
|
2009
|
+
* Saves the title name field (Enter, or leaving the field) to the conversation in Main or to the open
|
|
2010
|
+
* fork. With `restoreFocus` (Enter), focus goes back to the rename button.
|
|
2011
|
+
* @returns true when saved or unchanged; false when nothing was being renamed or the save failed.
|
|
2012
|
+
*/
|
|
2013
|
+
SaveTitleRename(restoreFocus?: boolean): Promise<boolean>;
|
|
2014
|
+
/**
|
|
2015
|
+
* Saves the title field as the conversation's Name through the engine, then tells the host. A blank or
|
|
2016
|
+
* unchanged name saves nothing. Shows "Could not rename the conversation" when the save fails.
|
|
2017
|
+
*/
|
|
2018
|
+
private saveConversationName;
|
|
2019
|
+
/**
|
|
2020
|
+
* Saves the title field as the fork's Name through the branch entity, then refreshes the fork summaries.
|
|
2021
|
+
* A blank name clears the Name so the default label shows; an unchanged name saves nothing. Shows
|
|
2022
|
+
* "Could not rename the fork" when the save fails.
|
|
2023
|
+
*/
|
|
2024
|
+
private saveForkName;
|
|
2025
|
+
/**
|
|
2026
|
+
* Names a new Fork or Edit fork from its first message, in the background: runs the Name Conversation
|
|
2027
|
+
* prompt and saves the name only when the fork still has none, then refreshes the fork summaries. Off
|
|
2028
|
+
* when {@link AutoNameConversation} is false. Failures are logged; no notice.
|
|
2029
|
+
*/
|
|
2030
|
+
private nameForkInBackground;
|
|
2031
|
+
/** Names the fork a draft's first send created from the first user message sent into it; once per fork. */
|
|
2032
|
+
private nameForkFromFirstSend;
|
|
2033
|
+
/**
|
|
2034
|
+
* Opens a new fork that replaces `message` (Fork from here): the full fork view with no own rows,
|
|
2035
|
+
* starting at the row before the message on its path (the same fork point as an edit). Nothing is
|
|
2036
|
+
* created until the first send. Ends a voice session of the conversation first, then puts the
|
|
2037
|
+
* message's text in the composer unless the composer holds unsent text.
|
|
2038
|
+
* @returns false for a message of another conversation, when the row before it cannot be found (after
|
|
2039
|
+
* a notice), or when the view change is ignored.
|
|
2040
|
+
*/
|
|
2041
|
+
OpenDraftFork(message: MJConversationDetailEntity): Promise<boolean>;
|
|
2042
|
+
/** The loaded row at a fork point (its branch and Sequence); null when there is none or it is not loaded. */
|
|
2043
|
+
private loadedRowAt;
|
|
2044
|
+
/**
|
|
2045
|
+
* Puts `text` in the active composer, unless the composer holds unsent text or there is no text. When the
|
|
2046
|
+
* composer has not rendered yet after the view change, tries again shortly, while `stillOpen` holds.
|
|
2047
|
+
*/
|
|
2048
|
+
private prefillComposer;
|
|
2049
|
+
/**
|
|
2050
|
+
* A chip was clicked: opens its fork. An original chip opens its view (a fork, or Main) positioned at
|
|
2051
|
+
* the replaced message, as a search hit does ({@link OpenMessage}).
|
|
2052
|
+
*/
|
|
2053
|
+
OnForkOpenRequested(event: ForkChipOpenRequest): void;
|
|
2054
|
+
/** Opens or closes the forks list. Opening it closes the pinned messages panel. */
|
|
2055
|
+
ToggleForksPopover(): void;
|
|
2056
|
+
/** Closes the forks list and puts focus back on the header Forks button when it is on the page. */
|
|
2057
|
+
CloseForksPopover(): void;
|
|
2058
|
+
/** A row of the forks list was chosen: close the list and open that fork. */
|
|
2059
|
+
OnForkSelectedFromList(branchId: string): void;
|
|
2060
|
+
/**
|
|
2061
|
+
* Ends the voice session open for `conversationId`, if any, and waits for it. Shows a notice when it
|
|
2062
|
+
* ended. When ending fails, logs the error and returns, so the view change still goes on.
|
|
2063
|
+
*/
|
|
2064
|
+
private endRealtimeSessionForViewChange;
|
|
2065
|
+
/**
|
|
2066
|
+
* Creates a fork, refreshes the fork summaries and opens the fork. Shows `failureText` when the
|
|
2067
|
+
* fork cannot be created, and `openFailureText` when it was created but could not be opened.
|
|
2068
|
+
* @returns the new fork's id when it is open; null otherwise.
|
|
2069
|
+
*/
|
|
2070
|
+
private createForkAndOpen;
|
|
2071
|
+
/**
|
|
2072
|
+
* Creates the fork of a draft on its first send and opens it. A send in the same draft while that
|
|
2073
|
+
* runs gets the same fork. Returns the new fork's id, or undefined (with a notice) when it could
|
|
2074
|
+
* not be created or opened, or while another start action runs; undefined stops the send.
|
|
2075
|
+
*/
|
|
2076
|
+
private materializeDraftFork;
|
|
2077
|
+
/**
|
|
2078
|
+
* Creates and opens the fork of a draft (Kind Fork, SourceDetailID the replaced message), with
|
|
2079
|
+
* {@link forkStartInFlight} set. Clears the draft's running creation when done; that runs after an
|
|
2080
|
+
* await, so after {@link materializeDraftFork} has recorded it.
|
|
2081
|
+
*/
|
|
2082
|
+
private createDraftForkAndOpen;
|
|
2083
|
+
/** The fork row of a saved `MJ: Conversation Branches` entity. */
|
|
2084
|
+
private forkRowOf;
|
|
2085
|
+
/** Adds a fork row to the conversation's rows, so the scope of the fork resolves at once. */
|
|
2086
|
+
private addForkRow;
|
|
2087
|
+
/**
|
|
2088
|
+
* Fork from here: opens a new fork that replaces the message (the draft view, {@link OpenDraftFork}).
|
|
2089
|
+
* Nothing is created until the first send, which creates the fork through {@link ResolveComposerBranch};
|
|
2090
|
+
* with no name, the fork is named from that first message. Only for a user message the current person
|
|
2091
|
+
* wrote. Ignored while another start action runs and when the person may not fork ({@link CanFork}).
|
|
2092
|
+
*/
|
|
2093
|
+
OnForkRequested(message: MJConversationDetailEntity): Promise<void>;
|
|
2094
|
+
/**
|
|
2095
|
+
* Saves an edit as a fork: creates an Edit fork at the row before the edited message,
|
|
2096
|
+
* opens it, then sends the edited text into it. The original message stays where it was. Ignored
|
|
2097
|
+
* while another start action runs and when the person may not fork ({@link CanFork}); makes no fork
|
|
2098
|
+
* while the composer cannot send.
|
|
2099
|
+
*/
|
|
2100
|
+
OnEditResendRequested(event: {
|
|
2101
|
+
Message: MJConversationDetailEntity;
|
|
2102
|
+
NewText: string;
|
|
2103
|
+
}): Promise<void>;
|
|
2104
|
+
/**
|
|
2105
|
+
* Regenerates an answer as a fork: creates a Regenerate fork at the user message the
|
|
2106
|
+
* answer replied to, opens it, then runs the agent for that message again inside it. The first answer
|
|
2107
|
+
* stays where it was. Ignored while another start action runs; makes no fork while the composer cannot
|
|
2108
|
+
* send or when the user message is not in the loaded window. When the person may not fork
|
|
2109
|
+
* ({@link CanFork}), reruns the latest answer's turn in place instead ({@link InPlaceTurn}).
|
|
2110
|
+
*/
|
|
2111
|
+
OnRegenerateRequested(aiMessage: MJConversationDetailEntity): Promise<void>;
|
|
2112
|
+
/**
|
|
2113
|
+
* The latest turn that in-place Edit and Regenerate may change: the window view's last own user message
|
|
2114
|
+
* and its answer. Null while the person may fork, in a draft, and when a fork depends on the turn's
|
|
2115
|
+
* answer rows. The same object until the rows, the window view, the fork rows or CanFork change.
|
|
2116
|
+
*/
|
|
2117
|
+
get InPlaceTurn(): LatestTurn | null;
|
|
2118
|
+
/** The latest turn of the rows, or null when there is none or a fork depends on its answer rows. */
|
|
2119
|
+
private unblockedLatestTurn;
|
|
2120
|
+
/** "Save and resend": the message item saved the new text of the latest user message; reruns its turn in place. */
|
|
2121
|
+
OnResendInPlaceRequested(userMessage: MJConversationDetailEntity): Promise<void>;
|
|
2122
|
+
/**
|
|
2123
|
+
* Runs the turn of `userMessage` again in place: reads the fork rows fresh and refuses when a fork
|
|
2124
|
+
* depends on the turn's answer rows, hides those rows ({@link hideReplacedRows}), then reruns the agent
|
|
2125
|
+
* for the user message on its own branch. Shows a notice for each failure.
|
|
2126
|
+
*/
|
|
2127
|
+
private rerunTurnInPlace;
|
|
2128
|
+
/**
|
|
2129
|
+
* Marks each row replaced, one save at a time (parallel saves race on the server's transaction
|
|
2130
|
+
* counter): `ReplacedAt` set and `HiddenToUser` true; the rows are kept for audit. Takes the saved rows
|
|
2131
|
+
* off the screen. Stops at the first failed save, puts back that row's values and returns false.
|
|
2132
|
+
*/
|
|
2133
|
+
private hideReplacedRows;
|
|
2134
|
+
/**
|
|
2135
|
+
* The active composer when it can resend a message or rerun an agent now. Otherwise shows why
|
|
2136
|
+
* and returns null: no composer is mounted, it is read-only, or it is still sending (an agent
|
|
2137
|
+
* reply is running).
|
|
2138
|
+
*/
|
|
2139
|
+
private composerReadyForResend;
|
|
2140
|
+
/**
|
|
2141
|
+
* Where an edit of `message`, or a fork that replaces it, starts; undefined after a notice: `Could not
|
|
2142
|
+
* locate the message before this one` when the row before it is unknown, `failureText` when reading
|
|
2143
|
+
* that row failed.
|
|
2144
|
+
*/
|
|
2145
|
+
private editForkPointOrNotify;
|
|
2146
|
+
/**
|
|
2147
|
+
* Where an edit of `message`, or a fork that replaces it, starts: the row before it on the open path.
|
|
2148
|
+
* Loads one older row when the window does not hold it. Undefined when it cannot be determined.
|
|
2149
|
+
*/
|
|
2150
|
+
private resolveEditForkPoint;
|
|
2151
|
+
/** The nearest earlier User row in the loaded window; null when the window holds none. */
|
|
2152
|
+
private findUserMessageBefore;
|
|
2153
|
+
/**
|
|
2154
|
+
* Loads the fork summaries of a conversation load. Keeps the earlier ones when the read fails, and
|
|
2155
|
+
* drops a result when a newer read's result is already shown.
|
|
2156
|
+
*/
|
|
2157
|
+
private loadForkSummaries;
|
|
2158
|
+
/**
|
|
2159
|
+
* Reads the active conversation's fork rows again, keeps them, then reloads the fork
|
|
2160
|
+
* summaries. Keeps the earlier rows and the summaries when the rows cannot be read.
|
|
2161
|
+
*/
|
|
2162
|
+
RefreshForkSummaries(): Promise<void>;
|
|
2163
|
+
/**
|
|
2164
|
+
* The chips of each message, from the fork summaries; the same map until the summaries, the window
|
|
2165
|
+
* view, the fork's first own row or the avatar map change. In a fork's full view, that fork's own
|
|
2166
|
+
* chip is left out (it would open the view already open), and its first own row shows the fork's
|
|
2167
|
+
* alternatives: the original view of the message it replaced and the other forks placed there.
|
|
2168
|
+
*/
|
|
2169
|
+
get ForkChipMap(): ReadonlyMap<string, readonly MessageForkChip[]>;
|
|
2170
|
+
/** The first own row of a fork view when the loaded window reaches it (see {@link FirstOwnRowID}); null in Main and in a draft. */
|
|
2171
|
+
private firstOwnRowIdOf;
|
|
2172
|
+
/** Records that {@link UserAvatarMap} was filled, so the chip map is built again. */
|
|
2173
|
+
private markUserAvatarMapChanged;
|
|
2174
|
+
/** A person's entry in {@link UserAvatarMap}; ids compared without regard to case. */
|
|
2175
|
+
private knownUserAvatar;
|
|
2176
|
+
/** The avatar of a fork participant: a person's image or icon when known, an agent's logo or icon. */
|
|
2177
|
+
private forkChipAvatar;
|
|
2178
|
+
/** The view the loaded rows belong to; Main when none was set. */
|
|
2179
|
+
get WindowView(): ConversationOpenView;
|
|
2180
|
+
/**
|
|
2181
|
+
* The rows the message list shows for the window view; the same array until the rows or the view
|
|
2182
|
+
* change. Main shows every loaded row; a fork shows every inherited row, then its own rows; a draft
|
|
2183
|
+
* shows the rows up to its anchor.
|
|
2184
|
+
*/
|
|
2185
|
+
get DisplayMessages(): MJConversationDetailEntity[];
|
|
2186
|
+
/** The loaded rows split for the window view, and the rows shown; rebuilt only when one of their inputs changes. */
|
|
2187
|
+
private displayState;
|
|
2188
|
+
/**
|
|
2189
|
+
* Puts `message` in place of the row with its id in the displayed rows and their split, keeping those
|
|
2190
|
+
* arrays. They are copies of `messages`, so an entity replaced in place there is replaced here too.
|
|
2191
|
+
*/
|
|
2192
|
+
private replaceDisplayedRow;
|
|
2193
|
+
/** Puts `message` in place of the row with its id in `rows`; leaves `messages` itself alone. */
|
|
2194
|
+
private replaceRowIn;
|
|
2195
|
+
/** True when older rows remain above the loaded window of the open view's path, in every view. */
|
|
2196
|
+
get ListHasMoreAbove(): boolean;
|
|
2197
|
+
/** The summary of the open fork; null in Main, in a draft, or before the summaries load. */
|
|
2198
|
+
get OpenForkSummary(): ForkSummary | null;
|
|
2199
|
+
/** The summary of the fork a view shows; null for Main, a draft, or before the summaries load. */
|
|
2200
|
+
private forkSummaryOf;
|
|
2201
|
+
/** The title of the open fork: its display name, "New fork" for a draft. */
|
|
2202
|
+
get OpenViewTitle(): string;
|
|
2203
|
+
/** The kind of the open fork (a draft is a Fork). */
|
|
2204
|
+
get OpenViewKind(): ForkKind;
|
|
2205
|
+
/** The kind icon of the open fork. */
|
|
2206
|
+
get OpenViewIcon(): string;
|
|
2207
|
+
/** How the message list draws the rows shown; null in Main. */
|
|
2208
|
+
get ForkLayout(): ForkViewLayout | null;
|
|
2209
|
+
/** The composer placeholder of a conversation's composer: "Message this fork" in a fork or draft of the active conversation. */
|
|
2210
|
+
ComposerPlaceholderFor(conversationId: string | null | undefined): string;
|
|
2211
|
+
/**
|
|
2212
|
+
* The agent of the last shown message when it is a reply the user stopped (null when its name
|
|
2213
|
+
* is unknown); undefined when the last message is anything else. Any message sent now resumes
|
|
2214
|
+
* that run, so the placeholder says so.
|
|
2215
|
+
*/
|
|
2216
|
+
private stoppedLastReplyAgent;
|
|
2217
|
+
/** The hint under the composer while a fork or draft window is shown; null in Main. */
|
|
2218
|
+
get ComposerHint(): string | null;
|
|
2219
|
+
/** The layout of the rows shown and the composer hint; rebuilt only when the rows, the window view or the summaries change. */
|
|
2220
|
+
private layoutState;
|
|
2221
|
+
/** The composer hint of a fork or draft view; reads the anchor row only when the summary has no anchor time. */
|
|
2222
|
+
private composerHintFor;
|
|
2223
|
+
/**
|
|
2224
|
+
* The fork marker text of a fork or draft view. The "from" part names the author of the replaced
|
|
2225
|
+
* message (the fork's SourceDetailID) when the fork has one, else the anchor's author.
|
|
2226
|
+
*/
|
|
2227
|
+
private forkMarkerText;
|
|
2228
|
+
/**
|
|
2229
|
+
* The author a fork's marker names: with a source message, the summary's source author, else that row's
|
|
2230
|
+
* author when it is loaded; with none, the summary's anchor author, else the loaded anchor row's.
|
|
2231
|
+
*/
|
|
2232
|
+
private forkFromAuthorOf;
|
|
2233
|
+
/** The fork row of a fork view among this chat area's fork rows; null for another view or when it is not loaded. */
|
|
2234
|
+
private forkRowOfView;
|
|
2235
|
+
/** The time of a view's anchor row; null when it is not loaded. */
|
|
2236
|
+
private anchorTimeOf;
|
|
2237
|
+
/** The author of a view's anchor row; null when it is not loaded. */
|
|
2238
|
+
private anchorAuthorOf;
|
|
2239
|
+
/** The author of a loaded row; null when the row is not loaded. */
|
|
2240
|
+
private loadedAuthorOf;
|
|
2241
|
+
/** The author of a row: the agent of an agent row, else the person. */
|
|
2242
|
+
private rowAuthorOf;
|
|
2243
|
+
/**
|
|
2244
|
+
* The anchor of a view among the loaded rows: a draft's anchor row when it is loaded, else the view's
|
|
2245
|
+
* last inherited row.
|
|
2246
|
+
*/
|
|
2247
|
+
private anchorRowOf;
|
|
2248
|
+
/** A short date and time for fork text, in the person's locale. */
|
|
2249
|
+
private formatForkTime;
|
|
2250
|
+
/** Refreshes the fork summaries once, shortly after a burst of fork rows. */
|
|
2251
|
+
private scheduleForkSummaryRefresh;
|
|
2252
|
+
/**
|
|
2253
|
+
* Refreshes the fork summaries soon when `row` is a fork row, then tells whether the row belongs
|
|
2254
|
+
* on screen in the open view. A row written in another view (a turn started in Main while a fork
|
|
2255
|
+
* is open) does not.
|
|
2256
|
+
*/
|
|
2257
|
+
private acceptRowForOpenView;
|
|
2258
|
+
/**
|
|
2259
|
+
* Has the open artifact viewer load again in the open view's scope; it reads its `Scope` input
|
|
2260
|
+
* only when it loads. Asks for the selected version (0 asks for the newest); a version that
|
|
2261
|
+
* is not in the scope shows the newest one with a notice. Does nothing while the pane is closed.
|
|
2262
|
+
*/
|
|
2263
|
+
private refreshArtifactViewerForScope;
|
|
2264
|
+
/**
|
|
2265
|
+
* Loads the window of the open view into the store: the newest page of the view's path; older pages
|
|
2266
|
+
* load as the person scrolls up. A draft's path is its parent's, and its first page ends at its
|
|
2267
|
+
* anchor; a draft with no anchor inherits nothing, so its window is empty.
|
|
2268
|
+
*/
|
|
2269
|
+
private loadWindowForOpenView;
|
|
2270
|
+
/**
|
|
2271
|
+
* Reloads the window of the open view's path (see {@link loadWindowForOpenView}), then the fork
|
|
2272
|
+
* rows, the open artifact viewer, the agent runs, artifacts and ratings, and the pins in the scope
|
|
2273
|
+
* of the open view's path. The earlier fork rows stay when the rows cannot be read. The pin count
|
|
2274
|
+
* and the loaded pins keep their earlier values until that read lands. Restarts the agent-run poll
|
|
2275
|
+
* in the new scope. Stops when a newer view reload or conversation load starts; the newer load
|
|
2276
|
+
* reads the window, fork rows and pins again.
|
|
2277
|
+
*
|
|
2278
|
+
* @returns true when the window and peripherals loaded on the open view's path; false when there
|
|
2279
|
+
* is no conversation, a newer load replaced this one, the window read failed, or the reload failed.
|
|
2280
|
+
*/
|
|
2281
|
+
private reloadWindowForView;
|
|
1749
2282
|
/** Detail ids whose completion this instance has already applied. A live callback and the replay window can both deliver one finish. */
|
|
1750
2283
|
private handledCompletionIds?;
|
|
1751
2284
|
/**
|
|
@@ -1941,6 +2474,15 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1941
2474
|
get isReadOnlyView(): boolean;
|
|
1942
2475
|
/** Read-only for any reason: the host said so, or the conversation is shared with View access. */
|
|
1943
2476
|
get EffectiveReadOnly(): boolean;
|
|
2477
|
+
/**
|
|
2478
|
+
* True when this person may start forks in the open conversation: the host allows forking
|
|
2479
|
+
* ({@link AllowForking}), the person holds `Conversations: Fork`, has not switched forking off in My
|
|
2480
|
+
* Profile, and may write. When false, no fork action is offered and Edit and Regenerate change the
|
|
2481
|
+
* latest turn in place.
|
|
2482
|
+
*/
|
|
2483
|
+
get CanFork(): boolean;
|
|
2484
|
+
/** The person's stored forking setting; undefined when there is none or the settings cannot be read. */
|
|
2485
|
+
private forkingSettingValue;
|
|
1944
2486
|
/**
|
|
1945
2487
|
* `true` when the current user is allowed to create new shares on this
|
|
1946
2488
|
* conversation: the owner, or a user with an Owner-level grant. Uses the same
|
|
@@ -1949,18 +2491,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1949
2491
|
get CanShareConversation(): boolean;
|
|
1950
2492
|
/** @deprecated Use {@link CanShareConversation}. */
|
|
1951
2493
|
get canShareConversation(): boolean;
|
|
1952
|
-
OnReplyInThread(message: MJConversationDetailEntity): void;
|
|
1953
|
-
/** @deprecated Use {@link OnReplyInThread}. */
|
|
1954
|
-
onReplyInThread(message: MJConversationDetailEntity): void;
|
|
1955
|
-
OnViewThread(message: MJConversationDetailEntity): void;
|
|
1956
|
-
/** @deprecated Use {@link OnViewThread}. */
|
|
1957
|
-
onViewThread(message: MJConversationDetailEntity): void;
|
|
1958
|
-
OnLocalThreadClosed(): void;
|
|
1959
|
-
/** @deprecated Use {@link OnLocalThreadClosed}. */
|
|
1960
|
-
onLocalThreadClosed(): void;
|
|
1961
|
-
OnThreadReplyAdded(reply: MJConversationDetailEntity): void;
|
|
1962
|
-
/** @deprecated Use {@link OnThreadReplyAdded}. */
|
|
1963
|
-
onThreadReplyAdded(reply: MJConversationDetailEntity): void;
|
|
1964
2494
|
OnToggleAgentPanel(): void;
|
|
1965
2495
|
/** @deprecated Use {@link OnToggleAgentPanel}. */
|
|
1966
2496
|
onToggleAgentPanel(): void;
|
|
@@ -1981,15 +2511,38 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
1981
2511
|
/** @deprecated Use {@link OnJumpToMessage}. */
|
|
1982
2512
|
onJumpToMessage(messageId: string): Promise<void>;
|
|
1983
2513
|
/**
|
|
1984
|
-
*
|
|
2514
|
+
* Opens a message, such as a search hit, in the active conversation: waits for the
|
|
2515
|
+
* conversation's load to end, opens the hit's fork (a Main hit opens Main) when it is not the
|
|
2516
|
+
* open view, pages older history until the window holds `sequence`, then scrolls to the row and
|
|
2517
|
+
* highlights it for 2 s.
|
|
1985
2518
|
*
|
|
1986
|
-
*
|
|
2519
|
+
* @param conversationId The conversation of the message. The caller activates it first.
|
|
2520
|
+
* @param branchId The message's fork; null is Main. Compared without case.
|
|
2521
|
+
* @param sequence The message's sequence in its conversation.
|
|
2522
|
+
* @returns true when the row was found and scrolled to; false when the conversation is not the
|
|
2523
|
+
* active one, the view change was ignored or failed, or the row is not on the view's path.
|
|
2524
|
+
*/
|
|
2525
|
+
OpenMessage(conversationId: string, branchId: string | null, sequence: number): Promise<boolean>;
|
|
2526
|
+
/**
|
|
2527
|
+
* Waits until the load of `conversationId` has ended. False when another conversation
|
|
2528
|
+
* becomes active first or the component is destroyed.
|
|
2529
|
+
*/
|
|
2530
|
+
private waitForConversationLoad;
|
|
2531
|
+
/** Pages older history until the pinned message `messageId` falls inside the loaded window. */
|
|
2532
|
+
private loadUntilMessageIsWindowed;
|
|
2533
|
+
/**
|
|
2534
|
+
* Pages older history until the loaded window reaches back to `sequence`.
|
|
2535
|
+
*
|
|
2536
|
+
* Deterministic rather than heuristic: the target's `Sequence` is known, so the stop
|
|
1987
2537
|
* condition is simply "the window now reaches at least that far back" — no equivalent of
|
|
1988
2538
|
* the date jump's `NeedsOlder` probing is needed. Bounded by the same page cap, for the same
|
|
1989
2539
|
* reason: an unbounded walk back is the thing windowing exists to avoid.
|
|
1990
2540
|
*/
|
|
1991
|
-
private
|
|
1992
|
-
/**
|
|
2541
|
+
private loadUntilSequenceIsWindowed;
|
|
2542
|
+
/**
|
|
2543
|
+
* Adds `cssClass` to a message for `durationMs` once its scroll has settled. Defaults to the
|
|
2544
|
+
* pin beacon.
|
|
2545
|
+
*/
|
|
1993
2546
|
private beaconMessage;
|
|
1994
2547
|
/**
|
|
1995
2548
|
* Unpins a message from the pins panel — saves to DB and patches the cache.
|
|
@@ -2013,9 +2566,17 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
2013
2566
|
OnDeleteMessage(message: MJConversationDetailEntity): Promise<void>;
|
|
2014
2567
|
/** @deprecated Use {@link OnDeleteMessage}. */
|
|
2015
2568
|
onDeleteMessage(message: MJConversationDetailEntity): Promise<void>;
|
|
2569
|
+
/** @deprecated Use {@link OnRegenerateRequested}. */
|
|
2016
2570
|
OnRetryMessage(message: MJConversationDetailEntity): void;
|
|
2017
|
-
/** @deprecated Use {@link
|
|
2571
|
+
/** @deprecated Use {@link OnRegenerateRequested}. */
|
|
2018
2572
|
onRetryMessage(message: MJConversationDetailEntity): void;
|
|
2573
|
+
/**
|
|
2574
|
+
* Stop the agent run behind an in-progress AI reply. Uses the run already mapped to the
|
|
2575
|
+
* reply when there is one; otherwise looks it up by the reply's detail id, since the run row
|
|
2576
|
+
* appears a moment after the placeholder. The run's own completion event then flows through
|
|
2577
|
+
* the normal path and the message leaves In-Progress on its own.
|
|
2578
|
+
*/
|
|
2579
|
+
OnStopMessage(message: MJConversationDetailEntity): Promise<void>;
|
|
2019
2580
|
/**
|
|
2020
2581
|
* Handle attachment click - opens the image viewer for images
|
|
2021
2582
|
*/
|
|
@@ -2049,6 +2610,20 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
2049
2610
|
artifactId: string;
|
|
2050
2611
|
versionId?: string;
|
|
2051
2612
|
}): Promise<void>;
|
|
2613
|
+
OnTaskGraphPanelRequested(data: {
|
|
2614
|
+
parentTaskId: string;
|
|
2615
|
+
workflowTitle?: string;
|
|
2616
|
+
workflowName?: string;
|
|
2617
|
+
isRunning?: boolean;
|
|
2618
|
+
}): void;
|
|
2619
|
+
IsSavingTaskGraphWorkflow: boolean;
|
|
2620
|
+
OnCloseTaskGraphPanel(): void;
|
|
2621
|
+
/**
|
|
2622
|
+
* Persists the currently displayed Task Graph in the chat side-panel as a reusable
|
|
2623
|
+
* Draft Flow Agent workflow via {@link WorkflowSaveOperation} and opens the new
|
|
2624
|
+
* `MJ: AI Agents` record.
|
|
2625
|
+
*/
|
|
2626
|
+
OnSaveTaskGraphAsWorkflow(spec: TaskGraphSpec | null): Promise<void>;
|
|
2052
2627
|
OnArtifactCreated(data: {
|
|
2053
2628
|
conversationId: string;
|
|
2054
2629
|
conversationDetailId: string;
|
|
@@ -2134,7 +2709,7 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
2134
2709
|
private onResizeTouchMove;
|
|
2135
2710
|
private onResizeTouchEnd;
|
|
2136
2711
|
/**
|
|
2137
|
-
*
|
|
2712
|
+
* UserInfoEngine persistence methods for artifact pane width
|
|
2138
2713
|
*/
|
|
2139
2714
|
private loadArtifactPaneWidth;
|
|
2140
2715
|
private saveArtifactPaneWidth;
|
|
@@ -2171,6 +2746,22 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
2171
2746
|
entityName: string;
|
|
2172
2747
|
compositeKey: CompositeKey;
|
|
2173
2748
|
}): void;
|
|
2749
|
+
/**
|
|
2750
|
+
* Returns true when an `open:resource` command refers to a conversation artifact or generated file
|
|
2751
|
+
* (either explicitly via `resourceType: 'Artifact' | 'File'` or via `resourceType: 'Record'` with
|
|
2752
|
+
* an artifact/file entity name).
|
|
2753
|
+
*/
|
|
2754
|
+
private isConversationArtifactCommand;
|
|
2755
|
+
/**
|
|
2756
|
+
* Opens the matching (or most recent) artifact in the current conversation's artifact viewer panel.
|
|
2757
|
+
* Returns true if a conversation artifact was found and opened.
|
|
2758
|
+
*/
|
|
2759
|
+
OpenConversationArtifactForCommand(command: OpenResourceCommand): boolean;
|
|
2760
|
+
/**
|
|
2761
|
+
* Handles non-Record `open:resource` commands when rendered inside the floating chat overlay
|
|
2762
|
+
* (`OverlayMode === true`), where `ChatConversationsResource` is not mounted.
|
|
2763
|
+
*/
|
|
2764
|
+
private handleOverlayOpenResourceCommand;
|
|
2174
2765
|
/** Record `open:resource` buttons → same openEntityRecord chain as agent-run links. */
|
|
2175
2766
|
private emitOpenResourceRecord;
|
|
2176
2767
|
OnNavigationRequest(event: NavigationRequest): void;
|
|
@@ -2243,12 +2834,19 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
2243
2834
|
* that need to programmatically dismiss a review.
|
|
2244
2835
|
*/
|
|
2245
2836
|
ClearRealtimeSessionReview(): void;
|
|
2837
|
+
/**
|
|
2838
|
+
* True when the session review may offer "Start live session": not while a draft fork is open,
|
|
2839
|
+
* the same rule as the composer's voice control (a session started there would run on the
|
|
2840
|
+
* draft's parent path).
|
|
2841
|
+
*/
|
|
2842
|
+
get CanStartVoiceFromReview(): boolean;
|
|
2246
2843
|
/**
|
|
2247
2844
|
* Review mode's "Start live session": RESUMES the reviewed session as a new live call
|
|
2248
2845
|
* through the SAME start path the composer's mic uses, chaining `lastSessionId` so the
|
|
2249
2846
|
* server restores saved channel states (e.g. the whiteboard) via `PriorChannelStatesJson`.
|
|
2250
2847
|
* The start flips `Active$` synchronously, so clearing the review immediately after
|
|
2251
|
-
* never unhosts the overlay mid-transition.
|
|
2848
|
+
* never unhosts the overlay mid-transition. Starts nothing, and keeps the review, while
|
|
2849
|
+
* {@link CanStartVoiceFromReview} is false.
|
|
2252
2850
|
*/
|
|
2253
2851
|
OnReviewStartLive(request: RealtimeStartLiveRequest): Promise<void>;
|
|
2254
2852
|
/** @deprecated Use {@link OnReviewStartLive}. */
|
|
@@ -2589,6 +3187,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
|
|
|
2589
3187
|
conversationId: string;
|
|
2590
3188
|
}): void;
|
|
2591
3189
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationChatAreaComponent, never>;
|
|
2592
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "Conversation": { "alias": "Conversation"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "ThreadId": { "alias": "ThreadId"; "required": false; }; "threadId": { "alias": "threadId"; "required": false; }; "SuppressNewConversationEmptyState": { "alias": "SuppressNewConversationEmptyState"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "AllowMentions": { "alias": "AllowMentions"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "AllowAgentMentions": { "alias": "AllowAgentMentions"; "required": false; }; "allowAgentMentions": { "alias": "allowAgentMentions"; "required": false; }; "AllowEntityMentions": { "alias": "AllowEntityMentions"; "required": false; }; "allowEntityMentions": { "alias": "allowEntityMentions"; "required": false; }; "AllowSkillCommands": { "alias": "AllowSkillCommands"; "required": false; }; "allowSkillCommands": { "alias": "allowSkillCommands"; "required": false; }; "AllowAttachments": { "alias": "AllowAttachments"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "AllowPlanMode": { "alias": "AllowPlanMode"; "required": false; }; "allowPlanMode": { "alias": "allowPlanMode"; "required": false; }; "AllowRealtime": { "alias": "AllowRealtime"; "required": false; }; "allowRealtime": { "alias": "allowRealtime"; "required": false; }; "ShowEmptyFill": { "alias": "ShowEmptyFill"; "required": false; }; "showEmptyFill": { "alias": "showEmptyFill"; "required": false; }; "ShowLoadingState": { "alias": "ShowLoadingState"; "required": false; }; "showLoadingState": { "alias": "showLoadingState"; "required": false; }; "ReadReplyFromTop": { "alias": "ReadReplyFromTop"; "required": false; }; "readReplyFromTop": { "alias": "readReplyFromTop"; "required": false; }; "ShowAgentRunDetails": { "alias": "ShowAgentRunDetails"; "required": false; }; "showAgentRunDetails": { "alias": "showAgentRunDetails"; "required": false; }; "ShowReactions": { "alias": "ShowReactions"; "required": false; }; "showReactions": { "alias": "showReactions"; "required": false; }; "ShowMessageRating": { "alias": "ShowMessageRating"; "required": false; }; "showMessageRating": { "alias": "showMessageRating"; "required": false; }; "AllowPinning": { "alias": "AllowPinning"; "required": false; }; "allowPinning": { "alias": "allowPinning"; "required": false; }; "AllowMessageEdit": { "alias": "AllowMessageEdit"; "required": false; }; "allowMessageEdit": { "alias": "allowMessageEdit"; "required": false; }; "AllowMessageDelete": { "alias": "AllowMessageDelete"; "required": false; }; "allowMessageDelete": { "alias": "allowMessageDelete"; "required": false; }; "ReadOnly": { "alias": "ReadOnly"; "required": false; }; "ReadOnlyMessage": { "alias": "ReadOnlyMessage"; "required": false; }; "ShowSuggestedPrompts": { "alias": "ShowSuggestedPrompts"; "required": false; }; "showSuggestedPrompts": { "alias": "showSuggestedPrompts"; "required": false; }; "ShowDateNavigation": { "alias": "ShowDateNavigation"; "required": false; }; "showDateNavigation": { "alias": "showDateNavigation"; "required": false; }; "AssistantDisplayName": { "alias": "AssistantDisplayName"; "required": false; }; "assistantDisplayName": { "alias": "assistantDisplayName"; "required": false; }; "AssistantAvatarUrl": { "alias": "AssistantAvatarUrl"; "required": false; }; "assistantAvatarUrl": { "alias": "assistantAvatarUrl"; "required": false; }; "IsNewConversation": { "alias": "IsNewConversation"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "PendingMessage": { "alias": "PendingMessage"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "PendingMessageConversationId": { "alias": "PendingMessageConversationId"; "required": false; }; "pendingMessageConversationId": { "alias": "pendingMessageConversationId"; "required": false; }; "PendingAttachments": { "alias": "PendingAttachments"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "PendingArtifactId": { "alias": "PendingArtifactId"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "PendingArtifactVersionNumber": { "alias": "PendingArtifactVersionNumber"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "PendingArtifactConversationId": { "alias": "PendingArtifactConversationId"; "required": false; }; "pendingArtifactConversationId": { "alias": "pendingArtifactConversationId"; "required": false; }; "OverlayMode": { "alias": "OverlayMode"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "ShowExportButton": { "alias": "ShowExportButton"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "ExportButtonLabel": { "alias": "ExportButtonLabel"; "required": false; }; "exportButtonLabel": { "alias": "exportButtonLabel"; "required": false; }; "ExportButtonIcon": { "alias": "ExportButtonIcon"; "required": false; }; "exportButtonIcon": { "alias": "exportButtonIcon"; "required": false; }; "ExportBranding": { "alias": "ExportBranding"; "required": false; }; "exportBranding": { "alias": "exportBranding"; "required": false; }; "ShowShareButton": { "alias": "ShowShareButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "ShowArtifactIndicator": { "alias": "ShowArtifactIndicator"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "AppContext": { "alias": "AppContext"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "DefaultAgentId": { "alias": "DefaultAgentId"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "AgentReplyMode": { "alias": "AgentReplyMode"; "required": false; }; "AllowedAgentIDs": { "alias": "AllowedAgentIDs"; "required": false; }; "MentionPeople": { "alias": "MentionPeople"; "required": false; }; "AgentHistoryFrom": { "alias": "AgentHistoryFrom"; "required": false; }; "AgentTurnHandler": { "alias": "AgentTurnHandler"; "required": false; }; "AutoNameConversation": { "alias": "AutoNameConversation"; "required": false; }; "EnableDecisionRouting": { "alias": "EnableDecisionRouting"; "required": false; }; "ApplicationScope": { "alias": "ApplicationScope"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "ApplicationId": { "alias": "ApplicationId"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "LinkedEntityId": { "alias": "LinkedEntityId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "LinkedRecordId": { "alias": "LinkedRecordId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "ShowAgentPicker": { "alias": "ShowAgentPicker"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "ShowAgentModePicker": { "alias": "ShowAgentModePicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "EmptyStateGreeting": { "alias": "EmptyStateGreeting"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "ShowSidebarToggle": { "alias": "ShowSidebarToggle"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "ShowAgentCharacter": { "alias": "ShowAgentCharacter"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "AgentCharacterConfig": { "alias": "AgentCharacterConfig"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "EmptyStateConfig": { "alias": "EmptyStateConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "ShowDemonstrationSurface": { "alias": "ShowDemonstrationSurface"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "DemonstrationSurfaceContent": { "alias": "DemonstrationSurfaceContent"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; "ComposerDraft": { "alias": "ComposerDraft"; "required": false; }; "composerDraft": { "alias": "composerDraft"; "required": false; }; "ComposerAgentMention": { "alias": "ComposerAgentMention"; "required": false; }; "composerAgentMention": { "alias": "composerAgentMention"; "required": false; }; }, { "BeforeAgentTurn": "BeforeAgentTurn"; "beforeAgentTurn": "beforeAgentTurn"; "AfterAgentTurn": "AfterAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "BeforeToolInvoked": "BeforeToolInvoked"; "beforeToolInvoked": "beforeToolInvoked"; "AfterToolInvoked": "AfterToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "BeforeResponseFormSubmitted": "BeforeResponseFormSubmitted"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "AfterResponseFormSubmitted": "AfterResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "SessionStarted": "SessionStarted"; "sessionStarted": "sessionStarted"; "SessionChannelStateChanged": "SessionChannelStateChanged"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "SessionEnded": "SessionEnded"; "sessionEnded": "sessionEnded"; "ConversationRenamed": "ConversationRenamed"; "conversationRenamed": "conversationRenamed"; "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "RealtimeConversationReady": "RealtimeConversationReady"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "TaskClicked": "TaskClicked"; "taskClicked": "taskClicked"; "ArtifactLinkClicked": "ArtifactLinkClicked"; "artifactLinkClicked": "artifactLinkClicked"; "SidebarToggleClicked": "SidebarToggleClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "ConversationCreated": "ConversationCreated"; "conversationCreated": "conversationCreated"; "ThreadOpened": "ThreadOpened"; "threadOpened": "threadOpened"; "ThreadClosed": "ThreadClosed"; "threadClosed": "threadClosed"; "PendingArtifactConsumed": "PendingArtifactConsumed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "PendingMessageConsumed": "PendingMessageConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "PendingMessageRequested": "PendingMessageRequested"; "pendingMessageRequested": "pendingMessageRequested"; "ComposerDraftConsumed": "ComposerDraftConsumed"; "composerDraftConsumed": "composerDraftConsumed"; "ComposerAgentMentionConsumed": "ComposerAgentMentionConsumed"; "composerAgentMentionConsumed": "composerAgentMentionConsumed"; }, ["chatSlotChildren"], never, false, never>;
|
|
3190
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "Conversation": { "alias": "Conversation"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "SuppressNewConversationEmptyState": { "alias": "SuppressNewConversationEmptyState"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "AllowMentions": { "alias": "AllowMentions"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "AllowAgentMentions": { "alias": "AllowAgentMentions"; "required": false; }; "allowAgentMentions": { "alias": "allowAgentMentions"; "required": false; }; "AllowEntityMentions": { "alias": "AllowEntityMentions"; "required": false; }; "allowEntityMentions": { "alias": "allowEntityMentions"; "required": false; }; "AllowSkillCommands": { "alias": "AllowSkillCommands"; "required": false; }; "allowSkillCommands": { "alias": "allowSkillCommands"; "required": false; }; "AllowAttachments": { "alias": "AllowAttachments"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "AllowPlanMode": { "alias": "AllowPlanMode"; "required": false; }; "allowPlanMode": { "alias": "allowPlanMode"; "required": false; }; "AllowRealtime": { "alias": "AllowRealtime"; "required": false; }; "allowRealtime": { "alias": "allowRealtime"; "required": false; }; "AllowForking": { "alias": "AllowForking"; "required": false; }; "AllowStopRun": { "alias": "AllowStopRun"; "required": false; }; "ShowEmptyFill": { "alias": "ShowEmptyFill"; "required": false; }; "showEmptyFill": { "alias": "showEmptyFill"; "required": false; }; "ShowLoadingState": { "alias": "ShowLoadingState"; "required": false; }; "showLoadingState": { "alias": "showLoadingState"; "required": false; }; "ReadReplyFromTop": { "alias": "ReadReplyFromTop"; "required": false; }; "readReplyFromTop": { "alias": "readReplyFromTop"; "required": false; }; "ShowAgentRunDetails": { "alias": "ShowAgentRunDetails"; "required": false; }; "showAgentRunDetails": { "alias": "showAgentRunDetails"; "required": false; }; "ShowReactions": { "alias": "ShowReactions"; "required": false; }; "showReactions": { "alias": "showReactions"; "required": false; }; "ShowMessageRating": { "alias": "ShowMessageRating"; "required": false; }; "showMessageRating": { "alias": "showMessageRating"; "required": false; }; "AllowPinning": { "alias": "AllowPinning"; "required": false; }; "allowPinning": { "alias": "allowPinning"; "required": false; }; "AllowMessageEdit": { "alias": "AllowMessageEdit"; "required": false; }; "allowMessageEdit": { "alias": "allowMessageEdit"; "required": false; }; "AllowMessageDelete": { "alias": "AllowMessageDelete"; "required": false; }; "allowMessageDelete": { "alias": "allowMessageDelete"; "required": false; }; "ReadOnly": { "alias": "ReadOnly"; "required": false; }; "ReadOnlyMessage": { "alias": "ReadOnlyMessage"; "required": false; }; "ShowSuggestedPrompts": { "alias": "ShowSuggestedPrompts"; "required": false; }; "showSuggestedPrompts": { "alias": "showSuggestedPrompts"; "required": false; }; "ShowDateNavigation": { "alias": "ShowDateNavigation"; "required": false; }; "showDateNavigation": { "alias": "showDateNavigation"; "required": false; }; "AssistantDisplayName": { "alias": "AssistantDisplayName"; "required": false; }; "assistantDisplayName": { "alias": "assistantDisplayName"; "required": false; }; "AssistantAvatarUrl": { "alias": "AssistantAvatarUrl"; "required": false; }; "assistantAvatarUrl": { "alias": "assistantAvatarUrl"; "required": false; }; "IsNewConversation": { "alias": "IsNewConversation"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "PendingMessage": { "alias": "PendingMessage"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "PendingMessageConversationId": { "alias": "PendingMessageConversationId"; "required": false; }; "pendingMessageConversationId": { "alias": "pendingMessageConversationId"; "required": false; }; "PendingAttachments": { "alias": "PendingAttachments"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "PendingArtifactId": { "alias": "PendingArtifactId"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "PendingArtifactVersionNumber": { "alias": "PendingArtifactVersionNumber"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "PendingArtifactConversationId": { "alias": "PendingArtifactConversationId"; "required": false; }; "pendingArtifactConversationId": { "alias": "pendingArtifactConversationId"; "required": false; }; "OverlayMode": { "alias": "OverlayMode"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "ShowExportButton": { "alias": "ShowExportButton"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "ExportButtonLabel": { "alias": "ExportButtonLabel"; "required": false; }; "exportButtonLabel": { "alias": "exportButtonLabel"; "required": false; }; "ExportButtonIcon": { "alias": "ExportButtonIcon"; "required": false; }; "exportButtonIcon": { "alias": "exportButtonIcon"; "required": false; }; "ExportBranding": { "alias": "ExportBranding"; "required": false; }; "exportBranding": { "alias": "exportBranding"; "required": false; }; "ShowShareButton": { "alias": "ShowShareButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "ShowArtifactIndicator": { "alias": "ShowArtifactIndicator"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "AppContext": { "alias": "AppContext"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "DefaultAgentId": { "alias": "DefaultAgentId"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "AgentReplyMode": { "alias": "AgentReplyMode"; "required": false; }; "AllowedAgentIDs": { "alias": "AllowedAgentIDs"; "required": false; }; "MentionPeople": { "alias": "MentionPeople"; "required": false; }; "AgentHistoryFrom": { "alias": "AgentHistoryFrom"; "required": false; }; "AgentTurnHandler": { "alias": "AgentTurnHandler"; "required": false; }; "AutoNameConversation": { "alias": "AutoNameConversation"; "required": false; }; "EnableDecisionRouting": { "alias": "EnableDecisionRouting"; "required": false; }; "ApplicationScope": { "alias": "ApplicationScope"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "ApplicationId": { "alias": "ApplicationId"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "LinkedEntityId": { "alias": "LinkedEntityId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "LinkedRecordId": { "alias": "LinkedRecordId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "ShowAgentPicker": { "alias": "ShowAgentPicker"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "ShowAgentModePicker": { "alias": "ShowAgentModePicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "EmptyStateGreeting": { "alias": "EmptyStateGreeting"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "ShowSidebarToggle": { "alias": "ShowSidebarToggle"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "ShowAgentCharacter": { "alias": "ShowAgentCharacter"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "AgentCharacterConfig": { "alias": "AgentCharacterConfig"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "EmptyStateConfig": { "alias": "EmptyStateConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "ShowDemonstrationSurface": { "alias": "ShowDemonstrationSurface"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "DemonstrationSurfaceContent": { "alias": "DemonstrationSurfaceContent"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; "ComposerDraft": { "alias": "ComposerDraft"; "required": false; }; "composerDraft": { "alias": "composerDraft"; "required": false; }; "ComposerAgentMention": { "alias": "ComposerAgentMention"; "required": false; }; "composerAgentMention": { "alias": "composerAgentMention"; "required": false; }; }, { "BeforeAgentTurn": "BeforeAgentTurn"; "beforeAgentTurn": "beforeAgentTurn"; "AfterAgentTurn": "AfterAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "BeforeToolInvoked": "BeforeToolInvoked"; "beforeToolInvoked": "beforeToolInvoked"; "AfterToolInvoked": "AfterToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "BeforeResponseFormSubmitted": "BeforeResponseFormSubmitted"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "AfterResponseFormSubmitted": "AfterResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "BeforeStopClicked": "BeforeStopClicked"; "AfterStopClicked": "AfterStopClicked"; "SessionStarted": "SessionStarted"; "sessionStarted": "sessionStarted"; "SessionChannelStateChanged": "SessionChannelStateChanged"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "SessionEnded": "SessionEnded"; "sessionEnded": "sessionEnded"; "ConversationRenamed": "ConversationRenamed"; "conversationRenamed": "conversationRenamed"; "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "RealtimeConversationReady": "RealtimeConversationReady"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "TaskClicked": "TaskClicked"; "taskClicked": "taskClicked"; "ArtifactLinkClicked": "ArtifactLinkClicked"; "artifactLinkClicked": "artifactLinkClicked"; "SidebarToggleClicked": "SidebarToggleClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "ConversationCreated": "ConversationCreated"; "conversationCreated": "conversationCreated"; "PendingArtifactConsumed": "PendingArtifactConsumed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "PendingMessageConsumed": "PendingMessageConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "PendingMessageRequested": "PendingMessageRequested"; "pendingMessageRequested": "pendingMessageRequested"; "ComposerDraftConsumed": "ComposerDraftConsumed"; "composerDraftConsumed": "composerDraftConsumed"; "ComposerAgentMentionConsumed": "ComposerAgentMentionConsumed"; "composerAgentMentionConsumed": "composerAgentMentionConsumed"; }, ["chatSlotChildren"], never, false, never>;
|
|
2593
3191
|
}
|
|
2594
3192
|
//# sourceMappingURL=conversation-chat-area.component.d.ts.map
|