@memberjunction/ng-conversations 5.43.0 → 5.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +0 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js +56 -52
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +37 -41
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +10 -14
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +41 -45
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +22 -36
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -0
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +134 -166
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +73 -8
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +487 -123
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.js +6 -9
- package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +20 -24
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +10 -11
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.js +49 -28
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +24 -10
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts +11 -16
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +52 -46
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +83 -18
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +238 -151
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +10 -1
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +67 -15
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.js +6 -9
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts +3 -0
- package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.js +9 -4
- package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +45 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +1 -1
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +10 -0
- package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +1 -1
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts +46 -0
- package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/channels/client-context-channel.js +174 -0
- package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts +123 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js +397 -0
- package/dist/lib/components/realtime/evidence-playback/realtime-evidence-playback.component.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-state.d.ts +103 -0
- package/dist/lib/components/realtime/media/media-channel-state.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-state.js +143 -0
- package/dist/lib/components/realtime/media/media-channel-state.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-tools.d.ts +24 -0
- package/dist/lib/components/realtime/media/media-channel-tools.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel-tools.js +107 -0
- package/dist/lib/components/realtime/media/media-channel-tools.js.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts +89 -0
- package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/media-channel.js +253 -0
- package/dist/lib/components/realtime/media/media-channel.js.map +1 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts +141 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts.map +1 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.js +574 -0
- package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -0
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +59 -14
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +277 -74
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +28 -27
- package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-banner.component.js +144 -143
- package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts +12 -0
- package/dist/lib/components/realtime/realtime-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-agent-picker.component.js +105 -43
- package/dist/lib/components/realtime/realtime-agent-picker.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-audio-visuals.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-audio-visuals.js.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.d.ts +41 -7
- package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-composer.component.js +216 -102
- package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +0 -2
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.js +67 -71
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +364 -44
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +839 -153
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.d.ts +5 -5
- package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts +70 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.js +115 -0
- package/dist/lib/components/realtime/realtime-surface-tab-style.js.map +1 -0
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +55 -57
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +165 -143
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +80 -71
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +83 -113
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.d.ts +270 -0
- package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -0
- package/dist/lib/components/realtime/realtime-ui-config.js +212 -0
- package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -0
- 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 +92 -101
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +10 -11
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +12 -15
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +18 -7
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +29 -26
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +37 -6
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/conversation-state.model.d.ts +6 -3
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/models/conversation-state.model.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +2 -2
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +6 -2
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts +17 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +58 -2
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.d.ts +143 -0
- package/dist/lib/services/realtime-audio-recorder.d.ts.map +1 -0
- package/dist/lib/services/realtime-audio-recorder.js +379 -0
- package/dist/lib/services/realtime-audio-recorder.js.map +1 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts +75 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -0
- package/dist/lib/services/realtime-pcm-wav.js +205 -0
- package/dist/lib/services/realtime-pcm-wav.js.map +1 -0
- package/dist/lib/services/realtime-session-review.service.d.ts +28 -1
- package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session-review.service.js +12 -3
- package/dist/lib/services/realtime-session-review.service.js.map +1 -1
- package/dist/lib/services/realtime-session.service.d.ts +210 -20
- package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
- package/dist/lib/services/realtime-session.service.js +452 -21
- package/dist/lib/services/realtime-session.service.js.map +1 -1
- package/dist/lib/services/realtime-sessions-adapter.js +1 -1
- package/dist/lib/services/realtime-sessions-adapter.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.d.ts +7 -2
- package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
- package/dist/lib/services/ui-command-handler.service.js +6 -2
- package/dist/lib/services/ui-command-handler.service.js.map +1 -1
- package/dist/lib/utils/plan-mode-preference.d.ts +62 -0
- package/dist/lib/utils/plan-mode-preference.d.ts.map +1 -0
- package/dist/lib/utils/plan-mode-preference.js +130 -0
- package/dist/lib/utils/plan-mode-preference.js.map +1 -0
- package/dist/public-api.d.ts +6 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +8 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +28 -26
- package/dist/__tests__/attachment-badge.test.d.ts +0 -2
- package/dist/__tests__/attachment-badge.test.d.ts.map +0 -1
- package/dist/__tests__/attachment-badge.test.js +0 -66
- package/dist/__tests__/attachment-badge.test.js.map +0 -1
- package/dist/__tests__/channel-optional-surface.test.d.ts +0 -2
- package/dist/__tests__/channel-optional-surface.test.d.ts.map +0 -1
- package/dist/__tests__/channel-optional-surface.test.js +0 -53
- package/dist/__tests__/channel-optional-surface.test.js.map +0 -1
- package/dist/__tests__/chat-events.test.d.ts +0 -14
- package/dist/__tests__/chat-events.test.d.ts.map +0 -1
- package/dist/__tests__/chat-events.test.js +0 -109
- package/dist/__tests__/chat-events.test.js.map +0 -1
- package/dist/__tests__/collections-full-view.test.d.ts +0 -2
- package/dist/__tests__/collections-full-view.test.d.ts.map +0 -1
- package/dist/__tests__/collections-full-view.test.js +0 -225
- package/dist/__tests__/collections-full-view.test.js.map +0 -1
- package/dist/__tests__/conversation-cache.test.d.ts +0 -2
- package/dist/__tests__/conversation-cache.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-cache.test.js +0 -233
- package/dist/__tests__/conversation-cache.test.js.map +0 -1
- package/dist/__tests__/conversation-naming.test.d.ts +0 -2
- package/dist/__tests__/conversation-naming.test.d.ts.map +0 -1
- package/dist/__tests__/conversation-naming.test.js +0 -110
- package/dist/__tests__/conversation-naming.test.js.map +0 -1
- package/dist/__tests__/delegation-result-parser.test.d.ts +0 -2
- package/dist/__tests__/delegation-result-parser.test.d.ts.map +0 -1
- package/dist/__tests__/delegation-result-parser.test.js +0 -107
- package/dist/__tests__/delegation-result-parser.test.js.map +0 -1
- package/dist/__tests__/distinct-artifacts.test.d.ts +0 -2
- package/dist/__tests__/distinct-artifacts.test.d.ts.map +0 -1
- package/dist/__tests__/distinct-artifacts.test.js +0 -56
- package/dist/__tests__/distinct-artifacts.test.js.map +0 -1
- package/dist/__tests__/event-wiring.test.d.ts +0 -15
- package/dist/__tests__/event-wiring.test.d.ts.map +0 -1
- package/dist/__tests__/event-wiring.test.js +0 -100
- package/dist/__tests__/event-wiring.test.js.map +0 -1
- package/dist/__tests__/index.test.d.ts +0 -2
- package/dist/__tests__/index.test.d.ts.map +0 -1
- package/dist/__tests__/index.test.js +0 -7
- package/dist/__tests__/index.test.js.map +0 -1
- package/dist/__tests__/narration-template.test.d.ts +0 -2
- package/dist/__tests__/narration-template.test.d.ts.map +0 -1
- package/dist/__tests__/narration-template.test.js +0 -76
- package/dist/__tests__/narration-template.test.js.map +0 -1
- package/dist/__tests__/notification-model.test.d.ts +0 -2
- package/dist/__tests__/notification-model.test.d.ts.map +0 -1
- package/dist/__tests__/notification-model.test.js +0 -68
- package/dist/__tests__/notification-model.test.js.map +0 -1
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts +0 -2
- package/dist/__tests__/realtime-agent-picker-models.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-agent-picker-models.test.js +0 -49
- package/dist/__tests__/realtime-agent-picker-models.test.js.map +0 -1
- package/dist/__tests__/realtime-audio-visuals.test.d.ts +0 -2
- package/dist/__tests__/realtime-audio-visuals.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-audio-visuals.test.js +0 -123
- package/dist/__tests__/realtime-audio-visuals.test.js.map +0 -1
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts +0 -2
- package/dist/__tests__/realtime-delegation-card-cancel.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-delegation-card-cancel.test.js +0 -48
- package/dist/__tests__/realtime-delegation-card-cancel.test.js.map +0 -1
- package/dist/__tests__/realtime-disclosure.test.d.ts +0 -2
- package/dist/__tests__/realtime-disclosure.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-disclosure.test.js +0 -164
- package/dist/__tests__/realtime-disclosure.test.js.map +0 -1
- package/dist/__tests__/realtime-pairing.test.d.ts +0 -2
- package/dist/__tests__/realtime-pairing.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-pairing.test.js +0 -207
- package/dist/__tests__/realtime-pairing.test.js.map +0 -1
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts +0 -2
- package/dist/__tests__/realtime-review-lifecycle.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-review-lifecycle.test.js +0 -154
- package/dist/__tests__/realtime-review-lifecycle.test.js.map +0 -1
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-cancel-usage.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-cancel-usage.test.js +0 -230
- package/dist/__tests__/realtime-session-cancel-usage.test.js.map +0 -1
- package/dist/__tests__/realtime-session-channels.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-channels.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-channels.test.js +0 -252
- package/dist/__tests__/realtime-session-channels.test.js.map +0 -1
- package/dist/__tests__/realtime-session-client-tools.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-client-tools.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-client-tools.test.js +0 -103
- package/dist/__tests__/realtime-session-client-tools.test.js.map +0 -1
- package/dist/__tests__/realtime-session-minimized.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-minimized.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-minimized.test.js +0 -32
- package/dist/__tests__/realtime-session-minimized.test.js.map +0 -1
- package/dist/__tests__/realtime-session-mint.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-mint.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-mint.test.js +0 -69
- package/dist/__tests__/realtime-session-mint.test.js.map +0 -1
- package/dist/__tests__/realtime-session-policy.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-policy.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-policy.test.js +0 -303
- package/dist/__tests__/realtime-session-policy.test.js.map +0 -1
- package/dist/__tests__/realtime-session-review.service.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-review.service.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-review.service.test.js +0 -743
- package/dist/__tests__/realtime-session-review.service.test.js.map +0 -1
- package/dist/__tests__/realtime-session-state.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-state.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-state.test.js +0 -83
- package/dist/__tests__/realtime-session-state.test.js.map +0 -1
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-timeline-card.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-timeline-card.test.js +0 -106
- package/dist/__tests__/realtime-session-timeline-card.test.js.map +0 -1
- package/dist/__tests__/realtime-session-timeline.test.d.ts +0 -2
- package/dist/__tests__/realtime-session-timeline.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-session-timeline.test.js +0 -142
- package/dist/__tests__/realtime-session-timeline.test.js.map +0 -1
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts +0 -19
- package/dist/__tests__/realtime-sessions-adapter.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-sessions-adapter.test.js +0 -188
- package/dist/__tests__/realtime-sessions-adapter.test.js.map +0 -1
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts +0 -2
- package/dist/__tests__/realtime-surface-panel-prefs.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-surface-panel-prefs.test.js +0 -100
- package/dist/__tests__/realtime-surface-panel-prefs.test.js.map +0 -1
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts +0 -2
- package/dist/__tests__/realtime-surface-tabs-model.test.d.ts.map +0 -1
- package/dist/__tests__/realtime-surface-tabs-model.test.js +0 -193
- package/dist/__tests__/realtime-surface-tabs-model.test.js.map +0 -1
- package/dist/__tests__/remote-browser-audio-player.test.d.ts +0 -2
- package/dist/__tests__/remote-browser-audio-player.test.d.ts.map +0 -1
- package/dist/__tests__/remote-browser-audio-player.test.js +0 -137
- package/dist/__tests__/remote-browser-audio-player.test.js.map +0 -1
- package/dist/__tests__/remote-browser-channel.test.d.ts +0 -2
- package/dist/__tests__/remote-browser-channel.test.d.ts.map +0 -1
- package/dist/__tests__/remote-browser-channel.test.js +0 -585
- package/dist/__tests__/remote-browser-channel.test.js.map +0 -1
- package/dist/__tests__/search-service.test.d.ts +0 -2
- package/dist/__tests__/search-service.test.d.ts.map +0 -1
- package/dist/__tests__/search-service.test.js +0 -114
- package/dist/__tests__/search-service.test.js.map +0 -1
- package/dist/__tests__/slot-defaults.test.d.ts +0 -24
- package/dist/__tests__/slot-defaults.test.d.ts.map +0 -1
- package/dist/__tests__/slot-defaults.test.js +0 -63
- package/dist/__tests__/slot-defaults.test.js.map +0 -1
- package/dist/__tests__/toast-service.test.d.ts +0 -2
- package/dist/__tests__/toast-service.test.d.ts.map +0 -1
- package/dist/__tests__/toast-service.test.js +0 -143
- package/dist/__tests__/toast-service.test.js.map +0 -1
- package/dist/__tests__/user-authorization.test.d.ts +0 -2
- package/dist/__tests__/user-authorization.test.d.ts.map +0 -1
- package/dist/__tests__/user-authorization.test.js +0 -97
- package/dist/__tests__/user-authorization.test.js.map +0 -1
- package/dist/__tests__/voice-session-narration.test.d.ts +0 -2
- package/dist/__tests__/voice-session-narration.test.d.ts.map +0 -1
- package/dist/__tests__/voice-session-narration.test.js +0 -609
- package/dist/__tests__/voice-session-narration.test.js.map +0 -1
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-artifact-viewer.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-artifact-viewer.test.js +0 -101
- package/dist/__tests__/whiteboard-artifact-viewer.test.js.map +0 -1
- package/dist/__tests__/whiteboard-channel.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-channel.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-channel.test.js +0 -260
- package/dist/__tests__/whiteboard-channel.test.js.map +0 -1
- package/dist/__tests__/whiteboard-restore-state.test.d.ts +0 -2
- package/dist/__tests__/whiteboard-restore-state.test.d.ts.map +0 -1
- package/dist/__tests__/whiteboard-restore-state.test.js +0 -108
- package/dist/__tests__/whiteboard-restore-state.test.js.map +0 -1
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ChangeDetectorRef, inject } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { AngularSplitModule } from 'angular-split';
|
|
4
|
+
import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
5
|
+
import { ArtifactsModule } from '@memberjunction/ng-artifacts';
|
|
3
6
|
import { FriendlyStepLabel, FormatElapsed } from './realtime-session-state';
|
|
7
|
+
import { ACTIVITY_SPLIT_DEFAULT_PERCENT, ACTIVITY_SPLIT_PREF_KEY, ClampActivitySplitPercent, ParseActivitySplitPercent, SerializeActivitySplitPercent } from './realtime-surface-tab-style';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
import * as i1 from "@angular/common";
|
|
6
|
-
|
|
10
|
+
import * as i2 from "angular-split";
|
|
11
|
+
import * as i3 from "@memberjunction/ng-artifacts";
|
|
7
12
|
function RealtimeActivityRailComponent_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
8
13
|
i0.ɵɵelementStart(0, "span", 5);
|
|
9
14
|
i0.ɵɵelement(1, "i", 6);
|
|
@@ -28,133 +33,247 @@ function RealtimeActivityRailComponent_Conditional_1_Template(rf, ctx) { if (rf
|
|
|
28
33
|
i0.ɵɵadvance();
|
|
29
34
|
i0.ɵɵconditional(!ctx_r1.Collapsed ? 3 : -1);
|
|
30
35
|
} }
|
|
31
|
-
function
|
|
32
|
-
i0.ɵɵ
|
|
33
|
-
i0.ɵɵ
|
|
36
|
+
function RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
38
|
+
i0.ɵɵelementStart(0, "mj-artifact-message-card", 20);
|
|
39
|
+
i0.ɵɵlistener("actionPerformed", function RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Conditional_1_Template_mj_artifact_message_card_actionPerformed_0_listener() { i0.ɵɵrestoreView(_r4); const artifact_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenArtifact(artifact_r5)); });
|
|
40
|
+
i0.ɵɵelementEnd();
|
|
41
|
+
} if (rf & 2) {
|
|
42
|
+
const artifact_r5 = i0.ɵɵnextContext().$implicit;
|
|
43
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
44
|
+
i0.ɵɵproperty("artifactId", artifact_r5.ArtifactID)("currentUser", ctx_r1.CurrentUser);
|
|
45
|
+
} }
|
|
46
|
+
function RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
48
|
+
i0.ɵɵelementStart(0, "button", 21);
|
|
49
|
+
i0.ɵɵlistener("click", function RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const artifact_r5 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenArtifact(artifact_r5)); });
|
|
50
|
+
i0.ɵɵelement(1, "i", 22);
|
|
51
|
+
i0.ɵɵelementStart(2, "span");
|
|
52
|
+
i0.ɵɵtext(3);
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
i0.ɵɵelement(4, "i", 23);
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
} if (rf & 2) {
|
|
57
|
+
const artifact_r5 = i0.ɵɵnextContext().$implicit;
|
|
58
|
+
i0.ɵɵproperty("title", "View " + artifact_r5.Name);
|
|
59
|
+
i0.ɵɵadvance(3);
|
|
60
|
+
i0.ɵɵtextInterpolate(artifact_r5.Name);
|
|
61
|
+
} }
|
|
62
|
+
function RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
64
|
+
i0.ɵɵconditionalCreate(1, RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Conditional_1_Template, 1, 2, "mj-artifact-message-card", 18)(2, RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Conditional_2_Template, 5, 2, "button", 19);
|
|
65
|
+
i0.ɵɵelementEnd();
|
|
66
|
+
} if (rf & 2) {
|
|
67
|
+
const artifact_r5 = ctx.$implicit;
|
|
68
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
69
|
+
i0.ɵɵclassProp("act-card__artifact--open", ctx_r1.IsArtifactOpen(artifact_r5));
|
|
70
|
+
i0.ɵɵadvance();
|
|
71
|
+
i0.ɵɵconditional(ctx_r1.CurrentUser ? 1 : 2);
|
|
72
|
+
} }
|
|
73
|
+
function RealtimeActivityRailComponent_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
+
i0.ɵɵelementStart(0, "div", 10)(1, "div", 14);
|
|
75
|
+
i0.ɵɵelement(2, "i", 15);
|
|
76
|
+
i0.ɵɵtext(3, " Session artifacts ");
|
|
77
|
+
i0.ɵɵelementEnd();
|
|
78
|
+
i0.ɵɵrepeaterCreate(4, RealtimeActivityRailComponent_Conditional_2_Conditional_3_For_5_Template, 3, 3, "div", 16, i0.ɵɵcomponentInstance().TrackArtifact, true);
|
|
79
|
+
i0.ɵɵelementEnd();
|
|
80
|
+
} if (rf & 2) {
|
|
81
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
82
|
+
i0.ɵɵadvance(4);
|
|
83
|
+
i0.ɵɵrepeater(ctx_r1.ExtraArtifacts);
|
|
84
|
+
} }
|
|
85
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "span", 27);
|
|
87
|
+
i0.ɵɵelement(1, "i", 32);
|
|
34
88
|
i0.ɵɵtext(2, " Running ");
|
|
35
89
|
i0.ɵɵelementEnd();
|
|
36
90
|
} }
|
|
37
|
-
function
|
|
38
|
-
i0.ɵɵelementStart(0, "span",
|
|
39
|
-
i0.ɵɵelement(1, "i",
|
|
91
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
+
i0.ɵɵelementStart(0, "span", 28);
|
|
93
|
+
i0.ɵɵelement(1, "i", 33);
|
|
40
94
|
i0.ɵɵtext(2, " Done ");
|
|
41
95
|
i0.ɵɵelementEnd();
|
|
42
96
|
} }
|
|
43
|
-
function
|
|
44
|
-
i0.ɵɵelementStart(0, "span",
|
|
45
|
-
i0.ɵɵelement(1, "i",
|
|
97
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
98
|
+
i0.ɵɵelementStart(0, "span", 29);
|
|
99
|
+
i0.ɵɵelement(1, "i", 34);
|
|
46
100
|
i0.ɵɵtext(2, " Failed ");
|
|
47
101
|
i0.ɵɵelementEnd();
|
|
48
102
|
} }
|
|
49
|
-
function
|
|
50
|
-
i0.ɵɵelementStart(0, "div",
|
|
51
|
-
i0.ɵɵelement(1, "i",
|
|
103
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
104
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
105
|
+
i0.ɵɵelement(1, "i", 37);
|
|
52
106
|
i0.ɵɵtext(2);
|
|
53
107
|
i0.ɵɵelementEnd();
|
|
54
108
|
} if (rf & 2) {
|
|
55
109
|
i0.ɵɵadvance(2);
|
|
56
110
|
i0.ɵɵtextInterpolate1(" ", ctx, " ");
|
|
57
111
|
} }
|
|
58
|
-
function
|
|
59
|
-
i0.ɵɵelementStart(0, "div",
|
|
112
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
+
i0.ɵɵelementStart(0, "div", 36);
|
|
60
114
|
i0.ɵɵtext(1);
|
|
61
115
|
i0.ɵɵelementEnd();
|
|
62
116
|
} if (rf & 2) {
|
|
63
|
-
const
|
|
117
|
+
const card_r7 = i0.ɵɵnextContext(2).$implicit;
|
|
64
118
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
65
119
|
i0.ɵɵadvance();
|
|
66
|
-
i0.ɵɵtextInterpolate(ctx_r1.Preview(
|
|
120
|
+
i0.ɵɵtextInterpolate(ctx_r1.Preview(card_r7));
|
|
67
121
|
} }
|
|
68
|
-
function
|
|
69
|
-
i0.ɵɵconditionalCreate(0,
|
|
70
|
-
i0.ɵɵconditionalCreate(1,
|
|
122
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
123
|
+
i0.ɵɵconditionalCreate(0, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_9_Conditional_0_Template, 3, 1, "div", 35);
|
|
124
|
+
i0.ɵɵconditionalCreate(1, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_9_Conditional_1_Template, 2, 1, "div", 36);
|
|
71
125
|
} if (rf & 2) {
|
|
72
126
|
let tmp_12_0;
|
|
73
|
-
const
|
|
127
|
+
const card_r7 = i0.ɵɵnextContext().$implicit;
|
|
74
128
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
75
|
-
i0.ɵɵconditional((tmp_12_0 = ctx_r1.Elapsed(
|
|
129
|
+
i0.ɵɵconditional((tmp_12_0 = ctx_r1.Elapsed(card_r7)) ? 0 : -1, tmp_12_0);
|
|
76
130
|
i0.ɵɵadvance();
|
|
77
|
-
i0.ɵɵconditional(ctx_r1.Preview(
|
|
131
|
+
i0.ɵɵconditional(ctx_r1.Preview(card_r7) ? 1 : -1);
|
|
78
132
|
} }
|
|
79
|
-
function
|
|
80
|
-
const
|
|
81
|
-
i0.ɵɵelementStart(0, "
|
|
82
|
-
i0.ɵɵlistener("
|
|
83
|
-
i0.ɵɵ
|
|
133
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
135
|
+
i0.ɵɵelementStart(0, "mj-artifact-message-card", 20);
|
|
136
|
+
i0.ɵɵlistener("actionPerformed", function RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Conditional_1_Template_mj_artifact_message_card_actionPerformed_0_listener() { i0.ɵɵrestoreView(_r8); const artifact_r9 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenArtifact(artifact_r9)); });
|
|
137
|
+
i0.ɵɵelementEnd();
|
|
138
|
+
} if (rf & 2) {
|
|
139
|
+
const artifact_r9 = i0.ɵɵnextContext().$implicit;
|
|
140
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
141
|
+
i0.ɵɵproperty("artifactId", artifact_r9.ArtifactID)("currentUser", ctx_r1.CurrentUser);
|
|
142
|
+
} }
|
|
143
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
145
|
+
i0.ɵɵelementStart(0, "button", 21);
|
|
146
|
+
i0.ɵɵlistener("click", function RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const artifact_r9 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenArtifact(artifact_r9)); });
|
|
147
|
+
i0.ɵɵelement(1, "i", 22);
|
|
84
148
|
i0.ɵɵelementStart(2, "span");
|
|
85
|
-
i0.ɵɵtext(3
|
|
149
|
+
i0.ɵɵtext(3);
|
|
86
150
|
i0.ɵɵelementEnd();
|
|
87
|
-
i0.ɵɵelement(4, "i",
|
|
151
|
+
i0.ɵɵelement(4, "i", 23);
|
|
88
152
|
i0.ɵɵelementEnd();
|
|
89
153
|
} if (rf & 2) {
|
|
90
|
-
const
|
|
91
|
-
i0.ɵɵproperty("title", "View " +
|
|
154
|
+
const artifact_r9 = i0.ɵɵnextContext().$implicit;
|
|
155
|
+
i0.ɵɵproperty("title", "View " + artifact_r9.Name);
|
|
156
|
+
i0.ɵɵadvance(3);
|
|
157
|
+
i0.ɵɵtextInterpolate(artifact_r9.Name);
|
|
92
158
|
} }
|
|
93
|
-
function
|
|
94
|
-
|
|
95
|
-
i0.ɵɵ
|
|
96
|
-
i0.ɵɵ
|
|
97
|
-
|
|
159
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
161
|
+
i0.ɵɵconditionalCreate(1, RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Conditional_1_Template, 1, 2, "mj-artifact-message-card", 18)(2, RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Conditional_2_Template, 5, 2, "button", 19);
|
|
162
|
+
i0.ɵɵelementEnd();
|
|
163
|
+
} if (rf & 2) {
|
|
164
|
+
const artifact_r9 = ctx.$implicit;
|
|
165
|
+
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
166
|
+
i0.ɵɵclassProp("act-card__artifact--open", ctx_r1.IsArtifactOpen(artifact_r9));
|
|
167
|
+
i0.ɵɵadvance();
|
|
168
|
+
i0.ɵɵconditional(ctx_r1.CurrentUser ? 1 : 2);
|
|
169
|
+
} }
|
|
170
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
171
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
172
|
+
i0.ɵɵelementStart(0, "button", 38);
|
|
173
|
+
i0.ɵɵlistener("click", function RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const card_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OpenRun(card_r7)); });
|
|
174
|
+
i0.ɵɵelement(1, "i", 39);
|
|
98
175
|
i0.ɵɵelementStart(2, "span");
|
|
99
176
|
i0.ɵɵtext(3, "Open run");
|
|
100
177
|
i0.ɵɵelementEnd()();
|
|
101
178
|
} }
|
|
102
|
-
function
|
|
103
|
-
i0.ɵɵelementStart(0, "div",
|
|
179
|
+
function RealtimeActivityRailComponent_Conditional_2_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
i0.ɵɵelementStart(0, "div", 24)(1, "div", 25)(2, "span", 26);
|
|
104
181
|
i0.ɵɵtext(3);
|
|
105
182
|
i0.ɵɵelementEnd();
|
|
106
|
-
i0.ɵɵconditionalCreate(4,
|
|
183
|
+
i0.ɵɵconditionalCreate(4, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_4_Template, 3, 0, "span", 27)(5, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_5_Template, 3, 0, "span", 28)(6, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_6_Template, 3, 0, "span", 29);
|
|
107
184
|
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵelementStart(7, "div",
|
|
185
|
+
i0.ɵɵelementStart(7, "div", 30);
|
|
109
186
|
i0.ɵɵtext(8);
|
|
110
187
|
i0.ɵɵelementEnd();
|
|
111
|
-
i0.ɵɵconditionalCreate(9,
|
|
112
|
-
i0.ɵɵrepeaterCreate(10,
|
|
113
|
-
i0.ɵɵconditionalCreate(12,
|
|
188
|
+
i0.ɵɵconditionalCreate(9, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_9_Template, 2, 2);
|
|
189
|
+
i0.ɵɵrepeaterCreate(10, RealtimeActivityRailComponent_Conditional_2_For_5_For_11_Template, 3, 3, "div", 16, i0.ɵɵcomponentInstance().TrackArtifact, true);
|
|
190
|
+
i0.ɵɵconditionalCreate(12, RealtimeActivityRailComponent_Conditional_2_For_5_Conditional_12_Template, 4, 0, "button", 31);
|
|
114
191
|
i0.ɵɵelementEnd();
|
|
115
192
|
} if (rf & 2) {
|
|
116
|
-
const
|
|
193
|
+
const card_r7 = ctx.$implicit;
|
|
117
194
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
118
|
-
i0.ɵɵclassProp("act-card--running", !
|
|
195
|
+
i0.ɵɵclassProp("act-card--running", !card_r7.Done)("act-card--done", card_r7.Done && card_r7.Success)("act-card--failed", card_r7.Done && !card_r7.Success);
|
|
119
196
|
i0.ɵɵadvance(3);
|
|
120
|
-
i0.ɵɵtextInterpolate(
|
|
197
|
+
i0.ɵɵtextInterpolate(card_r7.AgentName);
|
|
121
198
|
i0.ɵɵadvance();
|
|
122
|
-
i0.ɵɵconditional(!
|
|
199
|
+
i0.ɵɵconditional(!card_r7.Done ? 4 : card_r7.Success ? 5 : 6);
|
|
123
200
|
i0.ɵɵadvance(4);
|
|
124
|
-
i0.ɵɵtextInterpolate(ctx_r1.StepLabel(
|
|
201
|
+
i0.ɵɵtextInterpolate(ctx_r1.StepLabel(card_r7));
|
|
125
202
|
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵconditional(
|
|
203
|
+
i0.ɵɵconditional(card_r7.Done ? 9 : -1);
|
|
127
204
|
i0.ɵɵadvance();
|
|
128
|
-
i0.ɵɵrepeater(ctx_r1.CardArtifacts(
|
|
205
|
+
i0.ɵɵrepeater(ctx_r1.CardArtifacts(card_r7));
|
|
129
206
|
i0.ɵɵadvance(2);
|
|
130
|
-
i0.ɵɵconditional(ctx_r1.ShowOpenRun(
|
|
207
|
+
i0.ɵɵconditional(ctx_r1.ShowOpenRun(card_r7) ? 12 : -1);
|
|
131
208
|
} }
|
|
132
|
-
function
|
|
133
|
-
i0.ɵɵelementStart(0, "div",
|
|
209
|
+
function RealtimeActivityRailComponent_Conditional_2_ForEmpty_6_Template(rf, ctx) { if (rf & 1) {
|
|
210
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
134
211
|
i0.ɵɵtext(1, "Tool and agent calls will appear here as they run.");
|
|
135
212
|
i0.ɵɵelementEnd();
|
|
136
213
|
} }
|
|
214
|
+
function RealtimeActivityRailComponent_Conditional_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
215
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
216
|
+
i0.ɵɵelementStart(0, "as-split-area", 13)(1, "div", 40)(2, "div", 41)(3, "span", 42);
|
|
217
|
+
i0.ɵɵelement(4, "i", 22);
|
|
218
|
+
i0.ɵɵtext(5);
|
|
219
|
+
i0.ɵɵelementEnd();
|
|
220
|
+
i0.ɵɵelementStart(6, "button", 43);
|
|
221
|
+
i0.ɵɵlistener("click", function RealtimeActivityRailComponent_Conditional_2_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.CloseArtifact()); });
|
|
222
|
+
i0.ɵɵelement(7, "i", 34);
|
|
223
|
+
i0.ɵɵelementEnd()();
|
|
224
|
+
i0.ɵɵelementStart(8, "div", 44);
|
|
225
|
+
i0.ɵɵelement(9, "mj-artifact-viewer-panel", 45);
|
|
226
|
+
i0.ɵɵelementEnd()()();
|
|
227
|
+
} if (rf & 2) {
|
|
228
|
+
const artifact_r13 = ctx;
|
|
229
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
230
|
+
i0.ɵɵproperty("size", ctx_r1.SplitArtifactPercent)("minSize", 25);
|
|
231
|
+
i0.ɵɵadvance(3);
|
|
232
|
+
i0.ɵɵproperty("title", artifact_r13.Name);
|
|
233
|
+
i0.ɵɵadvance(2);
|
|
234
|
+
i0.ɵɵtextInterpolate1(" ", artifact_r13.Name, " ");
|
|
235
|
+
i0.ɵɵadvance(4);
|
|
236
|
+
i0.ɵɵproperty("artifactId", artifact_r13.ArtifactID)("currentUser", ctx_r1.CurrentUser)("environmentId", ctx_r1.EnvironmentID)("showHeader", false)("showTabs", false)("showSaveToCollection", false)("showCloseButton", false)("showMaximizeButton", false);
|
|
237
|
+
} }
|
|
137
238
|
function RealtimeActivityRailComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
138
|
-
i0.ɵɵ
|
|
139
|
-
i0.ɵɵ
|
|
239
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
240
|
+
i0.ɵɵelementStart(0, "as-split", 7);
|
|
241
|
+
i0.ɵɵlistener("dragEnd", function RealtimeActivityRailComponent_Conditional_2_Template_as_split_dragEnd_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSplitDragEnd($event)); });
|
|
242
|
+
i0.ɵɵelementStart(1, "as-split-area", 8)(2, "div", 9);
|
|
243
|
+
i0.ɵɵconditionalCreate(3, RealtimeActivityRailComponent_Conditional_2_Conditional_3_Template, 6, 0, "div", 10);
|
|
244
|
+
i0.ɵɵrepeaterCreate(4, RealtimeActivityRailComponent_Conditional_2_For_5_Template, 13, 11, "div", 11, i0.ɵɵcomponentInstance().TrackCard, true, RealtimeActivityRailComponent_Conditional_2_ForEmpty_6_Template, 2, 0, "div", 12);
|
|
245
|
+
i0.ɵɵelementEnd()();
|
|
246
|
+
i0.ɵɵconditionalCreate(7, RealtimeActivityRailComponent_Conditional_2_Conditional_7_Template, 10, 12, "as-split-area", 13);
|
|
140
247
|
i0.ɵɵelementEnd();
|
|
141
248
|
} if (rf & 2) {
|
|
249
|
+
let tmp_7_0;
|
|
142
250
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
251
|
+
i0.ɵɵproperty("gutterSize", ctx_r1.SelectedArtifact ? 8 : 0)("disabled", !ctx_r1.SelectedArtifact)("useTransition", !ctx_r1.PrefersReducedMotion);
|
|
252
|
+
i0.ɵɵadvance();
|
|
253
|
+
i0.ɵɵproperty("size", ctx_r1.SelectedArtifact ? 100 - ctx_r1.SplitArtifactPercent : 100);
|
|
254
|
+
i0.ɵɵadvance(2);
|
|
255
|
+
i0.ɵɵconditional(ctx_r1.ExtraArtifacts.length > 0 ? 3 : -1);
|
|
143
256
|
i0.ɵɵadvance();
|
|
144
257
|
i0.ɵɵrepeater(ctx_r1.State.Cards);
|
|
258
|
+
i0.ɵɵadvance(3);
|
|
259
|
+
i0.ɵɵconditional((tmp_7_0 = ctx_r1.SelectedArtifact) ? 7 : -1, tmp_7_0);
|
|
145
260
|
} }
|
|
146
261
|
/**
|
|
147
|
-
* The "Session activity"
|
|
148
|
-
* of EVERY tool/agent call of the session — so parallel/multiple delegations live here
|
|
149
|
-
*
|
|
262
|
+
* The "Session activity" surface (the Activity tab's content): a compact, newest-first list
|
|
263
|
+
* of EVERY tool/agent call of the session — so parallel/multiple delegations live here and
|
|
264
|
+
* the conversation thread stays clean.
|
|
150
265
|
*
|
|
151
|
-
* Each entry shows agent name, status
|
|
152
|
-
*
|
|
153
|
-
*
|
|
266
|
+
* Each entry shows agent name, status, the latest friendly step label, elapsed time, and a
|
|
267
|
+
* one-line result preview. When a run produced ARTIFACTS, each artifact renders as an inline
|
|
268
|
+
* PREVIEW card (reusing `mj-artifact-message-card`, the same component the conversation
|
|
269
|
+
* messages use). Clicking a preview SPLITS this pane horizontally — activity list on the
|
|
270
|
+
* LEFT, the full artifact viewer on the RIGHT (`as-split`); clicking another swaps the right
|
|
271
|
+
* pane; a close control collapses back to full-width activity. The split width is persisted
|
|
272
|
+
* per-user via {@link UserInfoEngine} (NOT localStorage). This replaces the old "one surface
|
|
273
|
+
* tab per artifact" model.
|
|
154
274
|
*
|
|
155
|
-
* Collapsible via the chevron in its header (
|
|
156
|
-
*
|
|
157
|
-
* no subscriptions of its own beyond the state's change notifications.
|
|
275
|
+
* Collapsible via the chevron in its header (standalone presentation only). Presentational
|
|
276
|
+
* over the same {@link RealtimeSessionState} the thread renders.
|
|
158
277
|
*/
|
|
159
278
|
export class RealtimeActivityRailComponent {
|
|
160
279
|
/** Maximum characters of the result preview in a done card. */
|
|
@@ -170,21 +289,39 @@ export class RealtimeActivityRailComponent {
|
|
|
170
289
|
* right-rail presentation for any other consumer.
|
|
171
290
|
*/
|
|
172
291
|
Embedded = false;
|
|
292
|
+
/** The signed-in user, threaded to the split-pane artifact viewer. */
|
|
293
|
+
CurrentUser = null;
|
|
294
|
+
/** The active environment id, threaded to the split-pane artifact viewer. */
|
|
295
|
+
EnvironmentID = '';
|
|
296
|
+
/**
|
|
297
|
+
* Extra artifacts NOT tied to a specific activity card — the SESSION-REVIEW chain's
|
|
298
|
+
* carryover artifacts. Rendered as a "Session artifacts" group above the activity list so
|
|
299
|
+
* a reviewed session's outputs are reachable inside the Activity tab (the live path gets
|
|
300
|
+
* artifacts from each card's `Artifacts`). Empty for a live session.
|
|
301
|
+
*/
|
|
302
|
+
ExtraArtifacts = [];
|
|
173
303
|
/** Emitted with the delegated run's ID when an entry's dev "Open run" link is clicked. */
|
|
174
304
|
OpenRunRequested = new EventEmitter();
|
|
175
|
-
/** Emitted when an
|
|
305
|
+
/** Emitted when an artifact is opened in the split viewer (lets a host react if it wants). */
|
|
176
306
|
OpenArtifactRequested = new EventEmitter();
|
|
177
|
-
/** Whether the rail is collapsed to its slim toggle strip. */
|
|
307
|
+
/** Whether the rail is collapsed to its slim toggle strip (standalone mode only). */
|
|
178
308
|
Collapsed = false;
|
|
309
|
+
/** The artifact currently shown in the split-pane viewer, or null when the split is closed. */
|
|
310
|
+
SelectedArtifact = null;
|
|
311
|
+
/** The artifact (right) pane's width percentage — persisted per-user, clamped on load. */
|
|
312
|
+
SplitArtifactPercent = ACTIVITY_SPLIT_DEFAULT_PERCENT;
|
|
179
313
|
changedSub;
|
|
180
314
|
cdr = inject(ChangeDetectorRef);
|
|
315
|
+
/** True while reduced-motion is preferred — disables the split's drag transition. */
|
|
316
|
+
PrefersReducedMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
181
317
|
ngOnInit() {
|
|
318
|
+
this.loadSplitPref();
|
|
182
319
|
this.changedSub = this.State.Changed$.subscribe(() => this.cdr.markForCheck());
|
|
183
320
|
}
|
|
184
321
|
ngOnDestroy() {
|
|
185
322
|
this.changedSub?.unsubscribe();
|
|
186
323
|
}
|
|
187
|
-
/** Toggle the rail between expanded and slim-collapsed. */
|
|
324
|
+
/** Toggle the rail between expanded and slim-collapsed (standalone presentation). */
|
|
188
325
|
Toggle() {
|
|
189
326
|
this.Collapsed = !this.Collapsed;
|
|
190
327
|
}
|
|
@@ -217,9 +354,48 @@ export class RealtimeActivityRailComponent {
|
|
|
217
354
|
CardArtifacts(card) {
|
|
218
355
|
return card.Done && card.Artifacts ? card.Artifacts : [];
|
|
219
356
|
}
|
|
220
|
-
/**
|
|
357
|
+
/** track fn for the @for over a card's artifacts. */
|
|
358
|
+
TrackArtifact(index, artifact) {
|
|
359
|
+
return artifact.ArtifactVersionID;
|
|
360
|
+
}
|
|
361
|
+
/** Whether the artifact `a` is the one currently open in the split viewer. */
|
|
362
|
+
IsArtifactOpen(artifact) {
|
|
363
|
+
return this.SelectedArtifact?.ArtifactVersionID === artifact.ArtifactVersionID;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Opens (or swaps to) `artifact` in the split-pane viewer: the activity list keeps the
|
|
367
|
+
* left pane, the full artifact viewer fills the right. Re-opening the same artifact is a
|
|
368
|
+
* no-op; opening a different one swaps the right pane. Also reachable from the surface-tabs
|
|
369
|
+
* "View →" affordance.
|
|
370
|
+
*/
|
|
221
371
|
OpenArtifact(artifact) {
|
|
372
|
+
if (this.SelectedArtifact?.ArtifactVersionID === artifact.ArtifactVersionID) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
this.SelectedArtifact = artifact;
|
|
222
376
|
this.OpenArtifactRequested.emit(artifact);
|
|
377
|
+
this.cdr.markForCheck();
|
|
378
|
+
}
|
|
379
|
+
/** Closes the split, returning to a full-width activity list. */
|
|
380
|
+
CloseArtifact() {
|
|
381
|
+
if (this.SelectedArtifact) {
|
|
382
|
+
this.SelectedArtifact = null;
|
|
383
|
+
this.cdr.markForCheck();
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* `as-split` drag finished: adopt + persist the artifact (right) pane's width percentage
|
|
388
|
+
* per-user (debounced, via {@link UserInfoEngine} — never localStorage). The split reports
|
|
389
|
+
* the two area sizes (percent here); index 1 is the artifact pane. A wildcard `'*'` size
|
|
390
|
+
* (non-numeric) is ignored — nothing to persist.
|
|
391
|
+
*/
|
|
392
|
+
OnSplitDragEnd(event) {
|
|
393
|
+
const right = event.sizes[1];
|
|
394
|
+
if (typeof right !== 'number') {
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
this.SplitArtifactPercent = ClampActivitySplitPercent(right);
|
|
398
|
+
this.persistSplitPref(this.SplitArtifactPercent);
|
|
223
399
|
}
|
|
224
400
|
/** One-line result preview for done items. */
|
|
225
401
|
Preview(card) {
|
|
@@ -227,11 +403,32 @@ export class RealtimeActivityRailComponent {
|
|
|
227
403
|
const max = RealtimeActivityRailComponent.PreviewMaxChars;
|
|
228
404
|
return text.length > max ? `${text.slice(0, max).trimEnd()}…` : text;
|
|
229
405
|
}
|
|
406
|
+
/** Reads the persisted split width once (tolerant; default tier applies when unset). */
|
|
407
|
+
loadSplitPref() {
|
|
408
|
+
try {
|
|
409
|
+
const percent = ParseActivitySplitPercent(UserInfoEngine.Instance.GetSetting(ACTIVITY_SPLIT_PREF_KEY));
|
|
410
|
+
if (percent !== null) {
|
|
411
|
+
this.SplitArtifactPercent = percent;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
catch {
|
|
415
|
+
// UserInfoEngine not configured (plain-node tests / early bootstrap) — default applies.
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/** Persists the split width preference server-side (debounced, best-effort). */
|
|
419
|
+
persistSplitPref(percent) {
|
|
420
|
+
try {
|
|
421
|
+
UserInfoEngine.Instance.SetSettingDebounced(ACTIVITY_SPLIT_PREF_KEY, SerializeActivitySplitPercent(percent));
|
|
422
|
+
}
|
|
423
|
+
catch {
|
|
424
|
+
// engine unavailable — the width still applies for this session
|
|
425
|
+
}
|
|
426
|
+
}
|
|
230
427
|
static ɵfac = function RealtimeActivityRailComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RealtimeActivityRailComponent)(); };
|
|
231
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RealtimeActivityRailComponent, selectors: [["mj-realtime-activity-rail"]], inputs: { State: "State", DevMode: "DevMode", Embedded: "Embedded" }, outputs: { OpenRunRequested: "OpenRunRequested", OpenArtifactRequested: "OpenArtifactRequested" }, decls: 3, vars: 6, consts: [["aria-label", "Session activity", 1, "rail"], [1, "rail__head"], [1, "
|
|
428
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RealtimeActivityRailComponent, selectors: [["mj-realtime-activity-rail"]], inputs: { State: "State", DevMode: "DevMode", Embedded: "Embedded", CurrentUser: "CurrentUser", EnvironmentID: "EnvironmentID", ExtraArtifacts: "ExtraArtifacts" }, outputs: { OpenRunRequested: "OpenRunRequested", OpenArtifactRequested: "OpenArtifactRequested" }, decls: 3, vars: 6, consts: [["aria-label", "Session activity", 1, "rail"], [1, "rail__head"], ["direction", "horizontal", "unit", "percent", 1, "rail__split", 3, "gutterSize", "disabled", "useTransition"], ["type", "button", 1, "rail__toggle", 3, "click", "title"], ["aria-hidden", "true", 1, "fa-solid", 3, "ngClass"], [1, "rail__title"], ["aria-hidden", "true", 1, "fa-solid", "fa-wave-square"], ["direction", "horizontal", "unit", "percent", 1, "rail__split", 3, "dragEnd", "gutterSize", "disabled", "useTransition"], [3, "size"], [1, "rail__list"], [1, "rail__group"], [1, "act-card", 3, "act-card--running", "act-card--done", "act-card--failed"], [1, "rail__empty"], [3, "size", "minSize"], [1, "rail__group-title"], ["aria-hidden", "true", 1, "fa-solid", "fa-folder-open"], [1, "act-card__artifact", 3, "act-card__artifact--open"], [1, "act-card__artifact"], [3, "artifactId", "currentUser"], ["type", "button", 1, "act-card__artifact-link", 3, "title"], [3, "actionPerformed", "artifactId", "currentUser"], ["type", "button", 1, "act-card__artifact-link", 3, "click", "title"], ["aria-hidden", "true", 1, "fa-solid", "fa-file-lines"], ["aria-hidden", "true", 1, "fa-solid", "fa-up-right-and-down-left-from-center"], [1, "act-card"], [1, "act-card__top"], [1, "act-card__name"], [1, "act-status", "act-status--running"], [1, "act-status", "act-status--done"], [1, "act-status", "act-status--failed"], [1, "act-card__step"], ["type", "button", "title", "Open the delegated agent run record", 1, "act-card__dev-link"], ["aria-hidden", "true", 1, "fa-solid", "fa-spinner", "spin"], ["aria-hidden", "true", 1, "fa-solid", "fa-check"], ["aria-hidden", "true", 1, "fa-solid", "fa-xmark"], [1, "act-card__meta"], [1, "act-card__preview"], ["aria-hidden", "true", 1, "fa-regular", "fa-clock"], ["type", "button", "title", "Open the delegated agent run record", 1, "act-card__dev-link", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "rail__viewer"], [1, "rail__viewer-head"], [1, "rail__viewer-title", 3, "title"], ["type", "button", "title", "Close artifact", "aria-label", "Close artifact", 1, "rail__viewer-close", 3, "click"], [1, "rail__viewer-body"], [3, "artifactId", "currentUser", "environmentId", "showHeader", "showTabs", "showSaveToCollection", "showCloseButton", "showMaximizeButton"]], template: function RealtimeActivityRailComponent_Template(rf, ctx) { if (rf & 1) {
|
|
232
429
|
i0.ɵɵelementStart(0, "aside", 0);
|
|
233
430
|
i0.ɵɵconditionalCreate(1, RealtimeActivityRailComponent_Conditional_1_Template, 4, 4, "div", 1);
|
|
234
|
-
i0.ɵɵconditionalCreate(2, RealtimeActivityRailComponent_Conditional_2_Template,
|
|
431
|
+
i0.ɵɵconditionalCreate(2, RealtimeActivityRailComponent_Conditional_2_Template, 8, 7, "as-split", 2);
|
|
235
432
|
i0.ɵɵelementEnd();
|
|
236
433
|
} if (rf & 2) {
|
|
237
434
|
i0.ɵɵclassProp("rail--collapsed", ctx.Collapsed && !ctx.Embedded)("rail--embedded", ctx.Embedded);
|
|
@@ -239,11 +436,11 @@ export class RealtimeActivityRailComponent {
|
|
|
239
436
|
i0.ɵɵconditional(!ctx.Embedded ? 1 : -1);
|
|
240
437
|
i0.ɵɵadvance();
|
|
241
438
|
i0.ɵɵconditional(!ctx.Collapsed || ctx.Embedded ? 2 : -1);
|
|
242
|
-
} }, dependencies: [CommonModule, i1.NgClass], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 10%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 38%, transparent);\n}\n\n.rail[_ngcontent-%COMP%] {\n width: 308px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n transition: width 180ms ease;\n}\n.rail--collapsed[_ngcontent-%COMP%] {\n width: 40px;\n}\n\n\n\n\n.rail--embedded[_ngcontent-%COMP%] {\n width: 100%;\n border-left: 0;\n}\n\n.rail__head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n.rail--collapsed[_ngcontent-%COMP%] .rail__head[_ngcontent-%COMP%] {\n justify-content: center;\n padding: 10px 6px;\n border-bottom-color: transparent;\n}\n.rail__toggle[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: grid;\n place-items: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 10px;\n transition: color 140ms ease, border-color 140ms ease;\n}\n.rail__toggle[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n}\n.rail__title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n display: inline-flex;\n align-items: center;\n gap: 7px;\n white-space: nowrap;\n}\n.rail__title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.rail__list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--mj-border-strong) transparent;\n}\n.rail__list[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n.rail__list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.rail__empty[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-disabled);\n text-align: center;\n padding: 18px 8px;\n}\n\n\n\n.act-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 10px);\n padding: 8px 10px;\n background: var(--mj-bg-surface);\n}\n.act-card--running[_ngcontent-%COMP%] {\n border-color: var(--sage-border);\n background: var(--sage-bg);\n box-shadow: 0 0 0 1px var(--sage-border);\n}\n.act-card--done[_ngcontent-%COMP%], \n.act-card--failed[_ngcontent-%COMP%] {\n opacity: 0.72;\n}\n.act-card--done[_ngcontent-%COMP%]:hover, \n.act-card--failed[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.act-card__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n.act-card__name[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.act-status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n padding: 1px 7px;\n border-radius: var(--mj-radius-full, 9999px);\n flex-shrink: 0;\n line-height: 1.6;\n}\n.act-status[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 8.5px; }\n.act-status--running[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.act-status--done[_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg, transparent);\n color: var(--mj-status-success);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 35%, transparent);\n}\n.act-status--failed[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg, transparent);\n color: var(--mj-status-error);\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 35%, transparent);\n}\n.spin[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_rail-spin 1.1s linear infinite;\n}\n\n.act-card__step[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.act-card--running[_ngcontent-%COMP%] .act-card__step[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n.act-card__meta[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n.act-card__preview[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 3px;\n line-height: 1.45;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.act-card__artifact-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n margin-top: 6px;\n margin-right: 6px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__artifact-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.act-card__artifact-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n}\n\n\n\n.act-card__dev-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-top: 6px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__dev-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.act-card__dev-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n}\n\n@keyframes _ngcontent-%COMP%_rail-spin {\n to { transform: rotate(360deg); }\n}\n\n\n\n\n@media (max-width: 860px) {\n .rail[_ngcontent-%COMP%]:not(.rail--embedded) {\n display: none;\n }\n}"] });
|
|
439
|
+
} }, dependencies: [CommonModule, i1.NgClass, AngularSplitModule, i2.SplitComponent, i2.SplitAreaComponent, ArtifactsModule, i3.ArtifactViewerPanelComponent, i3.ArtifactMessageCardComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 10%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 38%, transparent);\n}\n\n.rail[_ngcontent-%COMP%] {\n width: 308px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n transition: width 180ms ease;\n}\n.rail--collapsed[_ngcontent-%COMP%] {\n width: 40px;\n}\n\n\n\n\n.rail--embedded[_ngcontent-%COMP%] {\n width: 100%;\n border-left: 0;\n}\n\n.rail__head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n.rail--collapsed[_ngcontent-%COMP%] .rail__head[_ngcontent-%COMP%] {\n justify-content: center;\n padding: 10px 6px;\n border-bottom-color: transparent;\n}\n.rail__toggle[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: grid;\n place-items: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 10px;\n transition: color 140ms ease, border-color 140ms ease;\n}\n.rail__toggle[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n}\n.rail__title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n display: inline-flex;\n align-items: center;\n gap: 7px;\n white-space: nowrap;\n}\n.rail__title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n\n\n.rail__split[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n width: 100%;\n height: 100%;\n}\n\n.rail__list[_ngcontent-%COMP%] {\n height: 100%;\n overflow-y: auto;\n padding: 10px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--mj-border-strong) transparent;\n}\n.rail__list[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n.rail__list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.rail__empty[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-disabled);\n text-align: center;\n padding: 18px 8px;\n}\n\n\n\n.rail__group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding-bottom: 8px;\n margin-bottom: 4px;\n border-bottom: 1px dashed var(--mj-border-default);\n}\n.rail__group-title[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 10.5px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted);\n}\n.rail__group-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--sage);\n}\n\n\n\n.rail__viewer[_ngcontent-%COMP%] {\n height: 100%;\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n.rail__viewer-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n.rail__viewer-title[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n min-width: 0;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.rail__viewer-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--sage);\n flex-shrink: 0;\n}\n.rail__viewer-close[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: grid;\n place-items: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 11px;\n transition: color 140ms ease, border-color 140ms ease;\n}\n.rail__viewer-close[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n}\n.rail__viewer-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.rail__viewer-body[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n\n\n.act-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 10px);\n padding: 8px 10px;\n background: var(--mj-bg-surface);\n}\n.act-card--running[_ngcontent-%COMP%] {\n border-color: var(--sage-border);\n background: var(--sage-bg);\n box-shadow: 0 0 0 1px var(--sage-border);\n}\n.act-card--done[_ngcontent-%COMP%], \n.act-card--failed[_ngcontent-%COMP%] {\n opacity: 0.72;\n}\n.act-card--done[_ngcontent-%COMP%]:hover, \n.act-card--failed[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.act-card__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n.act-card__name[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.act-status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n padding: 1px 7px;\n border-radius: var(--mj-radius-full, 9999px);\n flex-shrink: 0;\n line-height: 1.6;\n}\n.act-status[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 8.5px; }\n.act-status--running[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.act-status--done[_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg, transparent);\n color: var(--mj-status-success);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 35%, transparent);\n}\n.act-status--failed[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg, transparent);\n color: var(--mj-status-error);\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 35%, transparent);\n}\n.spin[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_rail-spin 1.1s linear infinite;\n}\n\n.act-card__step[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.act-card--running[_ngcontent-%COMP%] .act-card__step[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n.act-card__meta[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n.act-card__preview[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 3px;\n line-height: 1.45;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n\n.act-card__artifact[_ngcontent-%COMP%] {\n margin-top: 6px;\n border-radius: var(--mj-radius-lg, 10px);\n transition: box-shadow 140ms ease;\n}\n\n\n.act-card__artifact[_ngcontent-%COMP%] .artifact-message-card {\n margin: 0;\n}\n\n\n.act-card__artifact--open[_ngcontent-%COMP%] {\n box-shadow: 0 0 0 2px var(--sage);\n border-radius: calc(var(--mj-radius-lg, 10px) + 2px);\n}\n\n\n\n.act-card__artifact-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n max-width: 100%;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__artifact-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.act-card__artifact-link[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.act-card__artifact-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n flex-shrink: 0;\n}\n\n\n\n.act-card__dev-link[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-top: 6px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__dev-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.act-card__dev-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n}\n\n@keyframes _ngcontent-%COMP%_rail-spin {\n to { transform: rotate(360deg); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .rail[_ngcontent-%COMP%] { transition: none; }\n .spin[_ngcontent-%COMP%] { animation: none; }\n}\n\n\n\n\n@media (max-width: 860px) {\n .rail[_ngcontent-%COMP%]:not(.rail--embedded) {\n display: none;\n }\n}"] });
|
|
243
440
|
}
|
|
244
441
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RealtimeActivityRailComponent, [{
|
|
245
442
|
type: Component,
|
|
246
|
-
args: [{ standalone: true, selector: 'mj-realtime-activity-rail', imports: [CommonModule], template: "<aside class=\"rail\" [class.rail--collapsed]=\"Collapsed && !Embedded\" [class.rail--embedded]=\"Embedded\" aria-label=\"Session activity\">\n @if (!Embedded) {\n <div class=\"rail__head\">\n <button type=\"button\"\n class=\"rail__toggle\"\n (click)=\"Toggle()\"\n [title]=\"Collapsed ? 'Show session activity' : 'Hide session activity'\"\n [attr.aria-expanded]=\"!Collapsed\">\n <i class=\"fa-solid\" [ngClass]=\"Collapsed ? 'fa-chevron-left' : 'fa-chevron-right'\" aria-hidden=\"true\"></i>\n </button>\n @if (!Collapsed) {\n <span class=\"rail__title\">\n <i class=\"fa-solid fa-list-check\" aria-hidden=\"true\"></i>\n Session activity\n </span>\n }\n </div>\n }\n\n @if (!Collapsed || Embedded) {\n <div class=\"rail__list\">\n @for (card of State.Cards; track TrackCard($index, card)) {\n <div class=\"act-card\"\n [class.act-card--running]=\"!card.Done\"\n [class.act-card--done]=\"card.Done && card.Success\"\n [class.act-card--failed]=\"card.Done && !card.Success\">\n <div class=\"act-card__top\">\n <span class=\"act-card__name\">{{ card.AgentName }}</span>\n @if (!card.Done) {\n <span class=\"act-status act-status--running\">\n <i class=\"fa-solid fa-spinner spin\" aria-hidden=\"true\"></i> Running\n </span>\n } @else if (card.Success) {\n <span class=\"act-status act-status--done\">\n <i class=\"fa-solid fa-check\" aria-hidden=\"true\"></i> Done\n </span>\n } @else {\n <span class=\"act-status act-status--failed\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i> Failed\n </span>\n }\n </div>\n <div class=\"act-card__step\">{{ StepLabel(card) }}</div>\n @if (card.Done) {\n @if (Elapsed(card); as elapsed) {\n <div class=\"act-card__meta\">\n <i class=\"fa-regular fa-clock\" aria-hidden=\"true\"></i> {{ elapsed }}\n </div>\n }\n @if (Preview(card)) {\n <div class=\"act-card__preview\">{{ Preview(card) }}</div>\n }\n }\n @for (artifact of CardArtifacts(card); track artifact.ArtifactVersionID) {\n <button type=\"button\" class=\"act-card__artifact-link\" (click)=\"OpenArtifact(artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>View</span>\n <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowOpenRun(card)) {\n <button type=\"button\" class=\"act-card__dev-link\" (click)=\"OpenRun(card)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </div>\n } @empty {\n <div class=\"rail__empty\">Tool and agent calls will appear here as they run.</div>\n }\n </div>\n }\n</aside>\n", styles: [":host {\n display: block;\n height: 100%;\n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 10%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 38%, transparent);\n}\n\n.rail {\n width: 308px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n transition: width 180ms ease;\n}\n.rail--collapsed {\n width: 40px;\n}\n\n/* EMBEDDED in the surface panel's Activity tab: the panel owns chrome + collapse,\n so the rail stretches to the pane and drops its own border. */\n.rail--embedded {\n width: 100%;\n border-left: 0;\n}\n\n.rail__head {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n.rail--collapsed .rail__head {\n justify-content: center;\n padding: 10px 6px;\n border-bottom-color: transparent;\n}\n.rail__toggle {\n width: 24px;\n height: 24px;\n display: grid;\n place-items: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 10px;\n transition: color 140ms ease, border-color 140ms ease;\n}\n.rail__toggle:hover {\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n}\n.rail__title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n display: inline-flex;\n align-items: center;\n gap: 7px;\n white-space: nowrap;\n}\n.rail__title i {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.rail__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--mj-border-strong) transparent;\n}\n.rail__list::-webkit-scrollbar {\n width: 6px;\n}\n.rail__list::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.rail__empty {\n font-size: 11.5px;\n color: var(--mj-text-disabled);\n text-align: center;\n padding: 18px 8px;\n}\n\n/* ---------- Activity cards ---------- */\n.act-card {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 10px);\n padding: 8px 10px;\n background: var(--mj-bg-surface);\n}\n.act-card--running {\n border-color: var(--sage-border);\n background: var(--sage-bg);\n box-shadow: 0 0 0 1px var(--sage-border);\n}\n.act-card--done,\n.act-card--failed {\n opacity: 0.72;\n}\n.act-card--done:hover,\n.act-card--failed:hover {\n opacity: 1;\n}\n\n.act-card__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n.act-card__name {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.act-status {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n padding: 1px 7px;\n border-radius: var(--mj-radius-full, 9999px);\n flex-shrink: 0;\n line-height: 1.6;\n}\n.act-status i { font-size: 8.5px; }\n.act-status--running {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.act-status--done {\n background: var(--mj-status-success-bg, transparent);\n color: var(--mj-status-success);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 35%, transparent);\n}\n.act-status--failed {\n background: var(--mj-status-error-bg, transparent);\n color: var(--mj-status-error);\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 35%, transparent);\n}\n.spin {\n animation: rail-spin 1.1s linear infinite;\n}\n\n.act-card__step {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.act-card--running .act-card__step {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n.act-card__meta {\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n.act-card__preview {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 3px;\n line-height: 1.45;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* \"View \u2192\" chip for an artifact a delegated run produced (focuses its surface tab) */\n.act-card__artifact-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n margin-top: 6px;\n margin-right: 6px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__artifact-link:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.act-card__artifact-link i {\n font-size: 9px;\n}\n\n/* Gear-gated developer link to the delegated run record */\n.act-card__dev-link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-top: 6px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__dev-link:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.act-card__dev-link i {\n font-size: 8px;\n}\n\n@keyframes rail-spin {\n to { transform: rotate(360deg); }\n}\n\n/* On narrow widths the STANDALONE rail stacks out of the way (overlay falls back to a\n single column). The embedded rail is governed by the surface panel's own breakpoint. */\n@media (max-width: 860px) {\n .rail:not(.rail--embedded) {\n display: none;\n }\n}\n"] }]
|
|
443
|
+
args: [{ standalone: true, selector: 'mj-realtime-activity-rail', imports: [CommonModule, AngularSplitModule, ArtifactsModule], template: "<aside class=\"rail\" [class.rail--collapsed]=\"Collapsed && !Embedded\" [class.rail--embedded]=\"Embedded\" aria-label=\"Session activity\">\n @if (!Embedded) {\n <div class=\"rail__head\">\n <button type=\"button\"\n class=\"rail__toggle\"\n (click)=\"Toggle()\"\n [title]=\"Collapsed ? 'Show session activity' : 'Hide session activity'\"\n [attr.aria-expanded]=\"!Collapsed\">\n <i class=\"fa-solid\" [ngClass]=\"Collapsed ? 'fa-chevron-left' : 'fa-chevron-right'\" aria-hidden=\"true\"></i>\n </button>\n @if (!Collapsed) {\n <span class=\"rail__title\">\n <i class=\"fa-solid fa-wave-square\" aria-hidden=\"true\"></i>\n Session activity\n </span>\n }\n </div>\n }\n\n @if (!Collapsed || Embedded) {\n <as-split class=\"rail__split\"\n direction=\"horizontal\"\n unit=\"percent\"\n [gutterSize]=\"SelectedArtifact ? 8 : 0\"\n [disabled]=\"!SelectedArtifact\"\n [useTransition]=\"!PrefersReducedMotion\"\n (dragEnd)=\"OnSplitDragEnd($event)\">\n\n <!-- LEFT: the activity list (full width until an artifact splits the pane) -->\n <as-split-area [size]=\"SelectedArtifact ? (100 - SplitArtifactPercent) : 100\">\n <div class=\"rail__list\">\n @if (ExtraArtifacts.length > 0) {\n <div class=\"rail__group\">\n <div class=\"rail__group-title\">\n <i class=\"fa-solid fa-folder-open\" aria-hidden=\"true\"></i> Session artifacts\n </div>\n @for (artifact of ExtraArtifacts; track TrackArtifact($index, artifact)) {\n <div class=\"act-card__artifact\"\n [class.act-card__artifact--open]=\"IsArtifactOpen(artifact)\">\n @if (CurrentUser) {\n <mj-artifact-message-card\n [artifactId]=\"artifact.ArtifactID\"\n [currentUser]=\"CurrentUser\"\n (actionPerformed)=\"OpenArtifact(artifact)\">\n </mj-artifact-message-card>\n } @else {\n <button type=\"button\" class=\"act-card__artifact-link\" (click)=\"OpenArtifact(artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>{{ artifact.Name }}</span>\n <i class=\"fa-solid fa-up-right-and-down-left-from-center\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n </div>\n }\n @for (card of State.Cards; track TrackCard($index, card)) {\n <div class=\"act-card\"\n [class.act-card--running]=\"!card.Done\"\n [class.act-card--done]=\"card.Done && card.Success\"\n [class.act-card--failed]=\"card.Done && !card.Success\">\n <div class=\"act-card__top\">\n <span class=\"act-card__name\">{{ card.AgentName }}</span>\n @if (!card.Done) {\n <span class=\"act-status act-status--running\">\n <i class=\"fa-solid fa-spinner spin\" aria-hidden=\"true\"></i> Running\n </span>\n } @else if (card.Success) {\n <span class=\"act-status act-status--done\">\n <i class=\"fa-solid fa-check\" aria-hidden=\"true\"></i> Done\n </span>\n } @else {\n <span class=\"act-status act-status--failed\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i> Failed\n </span>\n }\n </div>\n <div class=\"act-card__step\">{{ StepLabel(card) }}</div>\n @if (card.Done) {\n @if (Elapsed(card); as elapsed) {\n <div class=\"act-card__meta\">\n <i class=\"fa-regular fa-clock\" aria-hidden=\"true\"></i> {{ elapsed }}\n </div>\n }\n @if (Preview(card)) {\n <div class=\"act-card__preview\">{{ Preview(card) }}</div>\n }\n }\n @for (artifact of CardArtifacts(card); track TrackArtifact($index, artifact)) {\n <div class=\"act-card__artifact\"\n [class.act-card__artifact--open]=\"IsArtifactOpen(artifact)\">\n @if (CurrentUser) {\n <!-- Inline preview (same component the conversation message cards use);\n clicking expands it into the split-pane viewer on the right. -->\n <mj-artifact-message-card\n [artifactId]=\"artifact.ArtifactID\"\n [currentUser]=\"CurrentUser\"\n (actionPerformed)=\"OpenArtifact(artifact)\">\n </mj-artifact-message-card>\n } @else {\n <button type=\"button\" class=\"act-card__artifact-link\" (click)=\"OpenArtifact(artifact)\"\n [title]=\"'View ' + artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n <span>{{ artifact.Name }}</span>\n <i class=\"fa-solid fa-up-right-and-down-left-from-center\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n @if (ShowOpenRun(card)) {\n <button type=\"button\" class=\"act-card__dev-link\" (click)=\"OpenRun(card)\"\n title=\"Open the delegated agent run record\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\" aria-hidden=\"true\"></i>\n <span>Open run</span>\n </button>\n }\n </div>\n } @empty {\n <div class=\"rail__empty\">Tool and agent calls will appear here as they run.</div>\n }\n </div>\n </as-split-area>\n\n <!-- RIGHT: the full artifact viewer (only present while an artifact is open) -->\n @if (SelectedArtifact; as artifact) {\n <as-split-area [size]=\"SplitArtifactPercent\" [minSize]=\"25\">\n <div class=\"rail__viewer\">\n <div class=\"rail__viewer-head\">\n <span class=\"rail__viewer-title\" [title]=\"artifact.Name\">\n <i class=\"fa-solid fa-file-lines\" aria-hidden=\"true\"></i>\n {{ artifact.Name }}\n </span>\n <button type=\"button\" class=\"rail__viewer-close\" (click)=\"CloseArtifact()\"\n title=\"Close artifact\" aria-label=\"Close artifact\">\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n <div class=\"rail__viewer-body\">\n <mj-artifact-viewer-panel\n [artifactId]=\"artifact.ArtifactID\"\n [currentUser]=\"CurrentUser!\"\n [environmentId]=\"EnvironmentID\"\n [showHeader]=\"false\"\n [showTabs]=\"false\"\n [showSaveToCollection]=\"false\"\n [showCloseButton]=\"false\"\n [showMaximizeButton]=\"false\">\n </mj-artifact-viewer-panel>\n </div>\n </div>\n </as-split-area>\n }\n </as-split>\n }\n</aside>\n", styles: [":host {\n display: block;\n height: 100%;\n --sage: var(--mj-color-violet-400, #a78bfa);\n --sage-bg: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 10%, transparent);\n --sage-border: color-mix(in srgb, var(--mj-color-violet-400, #a78bfa) 38%, transparent);\n}\n\n.rail {\n width: 308px;\n height: 100%;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n transition: width 180ms ease;\n}\n.rail--collapsed {\n width: 40px;\n}\n\n/* EMBEDDED in the surface panel's Activity tab: the panel owns chrome + collapse,\n so the rail stretches to the pane and drops its own border. */\n.rail--embedded {\n width: 100%;\n border-left: 0;\n}\n\n.rail__head {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n.rail--collapsed .rail__head {\n justify-content: center;\n padding: 10px 6px;\n border-bottom-color: transparent;\n}\n.rail__toggle {\n width: 24px;\n height: 24px;\n display: grid;\n place-items: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 10px;\n transition: color 140ms ease, border-color 140ms ease;\n}\n.rail__toggle:hover {\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n}\n.rail__title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n display: inline-flex;\n align-items: center;\n gap: 7px;\n white-space: nowrap;\n}\n.rail__title i {\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n/* ---------- split: activity list (left) | artifact viewer (right) ---------- */\n.rail__split {\n flex: 1;\n min-height: 0;\n width: 100%;\n height: 100%;\n}\n\n.rail__list {\n height: 100%;\n overflow-y: auto;\n padding: 10px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--mj-border-strong) transparent;\n}\n.rail__list::-webkit-scrollbar {\n width: 6px;\n}\n.rail__list::-webkit-scrollbar-thumb {\n background: var(--mj-border-strong);\n border-radius: 3px;\n}\n\n.rail__empty {\n font-size: 11.5px;\n color: var(--mj-text-disabled);\n text-align: center;\n padding: 18px 8px;\n}\n\n/* Session-review carryover artifacts group (above the activity cards). */\n.rail__group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding-bottom: 8px;\n margin-bottom: 4px;\n border-bottom: 1px dashed var(--mj-border-default);\n}\n.rail__group-title {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 10.5px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted);\n}\n.rail__group-title i {\n font-size: 10px;\n color: var(--sage);\n}\n\n/* ---------- artifact viewer (right split pane) ---------- */\n.rail__viewer {\n height: 100%;\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n.rail__viewer-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n}\n.rail__viewer-title {\n display: inline-flex;\n align-items: center;\n gap: 7px;\n min-width: 0;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.rail__viewer-title i {\n font-size: 11px;\n color: var(--sage);\n flex-shrink: 0;\n}\n.rail__viewer-close {\n width: 24px;\n height: 24px;\n display: grid;\n place-items: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n font-size: 11px;\n transition: color 140ms ease, border-color 140ms ease;\n}\n.rail__viewer-close:hover {\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n}\n.rail__viewer-body {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.rail__viewer-body > * {\n flex: 1;\n min-height: 0;\n}\n\n/* ---------- Activity cards ---------- */\n.act-card {\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg, 10px);\n padding: 8px 10px;\n background: var(--mj-bg-surface);\n}\n.act-card--running {\n border-color: var(--sage-border);\n background: var(--sage-bg);\n box-shadow: 0 0 0 1px var(--sage-border);\n}\n.act-card--done,\n.act-card--failed {\n opacity: 0.72;\n}\n.act-card--done:hover,\n.act-card--failed:hover {\n opacity: 1;\n}\n\n.act-card__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n.act-card__name {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.act-status {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 10px;\n font-weight: 700;\n padding: 1px 7px;\n border-radius: var(--mj-radius-full, 9999px);\n flex-shrink: 0;\n line-height: 1.6;\n}\n.act-status i { font-size: 8.5px; }\n.act-status--running {\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n border: 1px solid var(--sage-border);\n}\n.act-status--done {\n background: var(--mj-status-success-bg, transparent);\n color: var(--mj-status-success);\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 35%, transparent);\n}\n.act-status--failed {\n background: var(--mj-status-error-bg, transparent);\n color: var(--mj-status-error);\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 35%, transparent);\n}\n.spin {\n animation: rail-spin 1.1s linear infinite;\n}\n\n.act-card__step {\n font-size: 11.5px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.act-card--running .act-card__step {\n color: var(--mj-text-primary);\n font-weight: 600;\n}\n.act-card__meta {\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n.act-card__preview {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 3px;\n line-height: 1.45;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n/* ---------- inline artifact preview (opens the split viewer on click) ---------- */\n.act-card__artifact {\n margin-top: 6px;\n border-radius: var(--mj-radius-lg, 10px);\n transition: box-shadow 140ms ease;\n}\n/* The inline preview card carries its own margins; collapse them inside the slot. */\n.act-card__artifact ::ng-deep .artifact-message-card {\n margin: 0;\n}\n/* Highlight the artifact whose viewer is currently open in the split pane. */\n.act-card__artifact--open {\n box-shadow: 0 0 0 2px var(--sage);\n border-radius: calc(var(--mj-radius-lg, 10px) + 2px);\n}\n\n/* Fallback \"View \u2192\" chip (used only when no CurrentUser to render the rich preview) */\n.act-card__artifact-link {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 9px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px solid var(--sage-border);\n background: var(--sage-bg);\n color: var(--mj-color-violet-300, var(--mj-text-secondary));\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n max-width: 100%;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__artifact-link:hover {\n color: var(--mj-text-primary);\n border-color: var(--sage);\n background: color-mix(in srgb, var(--sage) 18%, transparent);\n}\n.act-card__artifact-link span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.act-card__artifact-link i {\n font-size: 9px;\n flex-shrink: 0;\n}\n\n/* Gear-gated developer link to the delegated run record */\n.act-card__dev-link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-top: 6px;\n padding: 2px 8px;\n border-radius: var(--mj-radius-full, 9999px);\n border: 1px dashed var(--mj-border-strong);\n background: transparent;\n color: var(--mj-text-muted);\n font-family: inherit;\n font-size: 10px;\n font-weight: 700;\n cursor: pointer;\n transition: color 140ms ease, border-color 140ms ease, background 140ms ease;\n}\n.act-card__dev-link:hover {\n color: var(--mj-text-link, var(--mj-brand-primary));\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n}\n.act-card__dev-link i {\n font-size: 8px;\n}\n\n@keyframes rail-spin {\n to { transform: rotate(360deg); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .rail { transition: none; }\n .spin { animation: none; }\n}\n\n/* On narrow widths the STANDALONE rail stacks out of the way (overlay falls back to a\n single column). The embedded rail is governed by the surface panel's own breakpoint. */\n@media (max-width: 860px) {\n .rail:not(.rail--embedded) {\n display: none;\n }\n}\n"] }]
|
|
247
444
|
}], null, { State: [{
|
|
248
445
|
type: Input,
|
|
249
446
|
args: [{ required: true }]
|
|
@@ -251,10 +448,16 @@ export class RealtimeActivityRailComponent {
|
|
|
251
448
|
type: Input
|
|
252
449
|
}], Embedded: [{
|
|
253
450
|
type: Input
|
|
451
|
+
}], CurrentUser: [{
|
|
452
|
+
type: Input
|
|
453
|
+
}], EnvironmentID: [{
|
|
454
|
+
type: Input
|
|
455
|
+
}], ExtraArtifacts: [{
|
|
456
|
+
type: Input
|
|
254
457
|
}], OpenRunRequested: [{
|
|
255
458
|
type: Output
|
|
256
459
|
}], OpenArtifactRequested: [{
|
|
257
460
|
type: Output
|
|
258
461
|
}] }); })();
|
|
259
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RealtimeActivityRailComponent, { className: "RealtimeActivityRailComponent", filePath: "src/lib/components/realtime/realtime-activity-rail.component.ts", lineNumber:
|
|
462
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RealtimeActivityRailComponent, { className: "RealtimeActivityRailComponent", filePath: "src/lib/components/realtime/realtime-activity-rail.component.ts", lineNumber: 41 }); })();
|
|
260
463
|
//# sourceMappingURL=realtime-activity-rail.component.js.map
|