@memberjunction/ng-conversations 6.2.0-edge.0 → 6.2.0-edge.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -2
- package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +19 -3
- 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 +39 -7
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts +74 -6
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.js +111 -21
- package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.d.ts +31 -5
- package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.js +71 -15
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +65 -9
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +169 -57
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.d.ts +77 -11
- package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.js +181 -47
- package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +129 -19
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +350 -116
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts +60 -8
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.js +130 -46
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts +63 -3
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.js +113 -19
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts +54 -8
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +130 -46
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts +70 -10
- package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +175 -53
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts +89 -9
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +220 -70
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts +89 -11
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +154 -40
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +390 -38
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +951 -367
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.d.ts +213 -18
- package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
- package/dist/lib/components/composer/ai-composer.component.js +388 -44
- package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +12 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-agent-picker.component.js +26 -4
- package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +1090 -123
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +2399 -706
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +139 -19
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js +296 -59
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.d.ts +579 -78
- package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js +2322 -823
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts +40 -4
- package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/pinned-messages-panel.component.js +72 -14
- package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.d.ts +57 -11
- package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.js +128 -16
- package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
- package/dist/lib/components/dialogs/rating-dialog.component.d.ts +68 -10
- package/dist/lib/components/dialogs/rating-dialog.component.d.ts.map +1 -1
- package/dist/lib/components/dialogs/rating-dialog.component.js +151 -27
- package/dist/lib/components/dialogs/rating-dialog.component.js.map +1 -1
- package/dist/lib/components/export/export-modal.component.d.ts +84 -10
- package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
- package/dist/lib/components/export/export-modal.component.js +173 -49
- package/dist/lib/components/export/export-modal.component.js.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +29 -3
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js +58 -12
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts +57 -8
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +119 -35
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts +76 -10
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +164 -50
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.d.ts +37 -5
- package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.js +82 -16
- package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts +46 -10
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js +120 -36
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +549 -74
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +1250 -421
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +411 -29
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +896 -222
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +288 -29
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +561 -123
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts +64 -5
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.js +101 -11
- package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.d.ts +6 -2
- package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.js +13 -3
- package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.d.ts +15 -3
- package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.js +36 -8
- package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.js +4 -4
- package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.d.ts +93 -11
- package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.js +348 -87
- package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
- package/dist/lib/components/project/project-selector.component.d.ts +78 -8
- package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-selector.component.js +177 -46
- package/dist/lib/components/project/project-selector.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +1 -1
- package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
- package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +1 -1
- package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
- package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-session-overlay.component.js +18 -18
- package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -23
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +136 -92
- package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +2 -2
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
- package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +1 -1
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
- package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
- package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
- package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
- package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +3 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +6 -2
- package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
- package/dist/lib/components/search/search-panel.component.d.ts +133 -22
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +312 -83
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts +69 -9
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +139 -31
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +110 -30
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
- package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
- package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/routines-section.component.js +25 -5
- package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
- package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
- package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
- package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
- package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +223 -75
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
- package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.js +100 -16
- package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
- package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.js +146 -36
- package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
- package/dist/lib/components/toast/toast.component.d.ts +11 -1
- package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
- package/dist/lib/components/toast/toast.component.js +25 -5
- package/dist/lib/components/toast/toast.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +887 -291
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
- package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
- package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
- package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
- package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
- package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
- package/dist/lib/directives/chat-slot.directive.js.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
- package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.js +14 -4
- package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
- package/dist/lib/events/chat-events.d.ts +34 -7
- package/dist/lib/events/chat-events.d.ts.map +1 -1
- package/dist/lib/events/chat-events.js +37 -7
- package/dist/lib/events/chat-events.js.map +1 -1
- package/dist/lib/models/agent-turn.model.d.ts +103 -0
- package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
- package/dist/lib/models/agent-turn.model.js +12 -0
- package/dist/lib/models/agent-turn.model.js.map +1 -0
- package/dist/lib/models/collection-view.model.js.map +1 -1
- package/dist/lib/models/conversation-state.model.d.ts +8 -0
- 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/models/lazy-artifact-info.d.ts +44 -12
- package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
- package/dist/lib/models/lazy-artifact-info.js +98 -34
- package/dist/lib/models/lazy-artifact-info.js.map +1 -1
- package/dist/lib/services/active-tasks.service.d.ts +30 -4
- package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
- package/dist/lib/services/active-tasks.service.js +71 -19
- package/dist/lib/services/active-tasks.service.js.map +1 -1
- package/dist/lib/services/agent-state.service.d.ts +17 -1
- package/dist/lib/services/agent-state.service.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.js +48 -16
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-permission.service.d.ts +39 -0
- package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-permission.service.js +152 -17
- package/dist/lib/services/artifact-permission.service.js.map +1 -1
- package/dist/lib/services/artifact-state.service.d.ts +58 -5
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-state.service.js +135 -35
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/collection-permission.service.d.ts +28 -0
- package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
- package/dist/lib/services/collection-permission.service.js +88 -32
- package/dist/lib/services/collection-permission.service.js.map +1 -1
- package/dist/lib/services/collection-state.service.d.ts +11 -1
- package/dist/lib/services/collection-state.service.d.ts.map +1 -1
- package/dist/lib/services/collection-state.service.js +25 -5
- package/dist/lib/services/collection-state.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +26 -4
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +57 -18
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-attachment.service.d.ts +17 -0
- package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-attachment.service.js +38 -10
- package/dist/lib/services/conversation-attachment.service.js.map +1 -1
- package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
- package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-streaming.service.js +50 -10
- package/dist/lib/services/conversation-streaming.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts +31 -0
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +71 -15
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/dialog.service.d.ts +13 -0
- package/dist/lib/services/dialog.service.d.ts.map +1 -1
- package/dist/lib/services/dialog.service.js +25 -5
- package/dist/lib/services/dialog.service.js.map +1 -1
- package/dist/lib/services/export.service.d.ts +2 -0
- package/dist/lib/services/export.service.d.ts.map +1 -1
- package/dist/lib/services/export.service.js +5 -1
- package/dist/lib/services/export.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.d.ts +10 -0
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
- package/dist/lib/services/mention-parser.service.js +25 -5
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/notification.service.d.ts +54 -6
- package/dist/lib/services/notification.service.d.ts.map +1 -1
- package/dist/lib/services/notification.service.js +123 -27
- package/dist/lib/services/notification.service.js.map +1 -1
- package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
- package/dist/lib/services/realtime-audio-recorder.js +12 -12
- package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
- package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
- package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
- package/dist/lib/services/realtime-pcm-wav.js +10 -2
- package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
- package/dist/lib/services/search.service.d.ts +42 -9
- package/dist/lib/services/search.service.d.ts.map +1 -1
- package/dist/lib/services/search.service.js +103 -23
- package/dist/lib/services/search.service.js.map +1 -1
- package/dist/lib/services/toast.service.d.ts +19 -1
- package/dist/lib/services/toast.service.d.ts.map +1 -1
- package/dist/lib/services/toast.service.js +45 -9
- package/dist/lib/services/toast.service.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.d.ts +16 -2
- package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
- package/dist/lib/services/ui-command-handler.service.js +36 -8
- package/dist/lib/services/ui-command-handler.service.js.map +1 -1
- package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
- package/dist/lib/utils/agent-artifact-summary.js +3 -3
- package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
- package/dist/lib/utils/agent-turn-routing.d.ts +69 -0
- package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
- package/dist/lib/utils/agent-turn-routing.js +96 -0
- package/dist/lib/utils/agent-turn-routing.js.map +1 -0
- package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
- package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
- package/dist/lib/utils/artifact-panel-action.js +10 -2
- package/dist/lib/utils/artifact-panel-action.js.map +1 -1
- package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
- package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
- package/dist/lib/utils/distinct-artifacts.js +5 -1
- package/dist/lib/utils/distinct-artifacts.js.map +1 -1
- package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
- package/dist/lib/utils/plan-mode-preference.js +6 -6
- package/dist/lib/utils/plan-mode-preference.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +32 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-artifact-info.d.ts","sourceRoot":"","sources":["../../../src/lib/models/lazy-artifact-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAA0B,MAAM,+BAA+B,CAAC;AAClH,OAAO,EAAY,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"lazy-artifact-info.d.ts","sourceRoot":"","sources":["../../../src/lib/models/lazy-artifact-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAA0B,MAAM,+BAA+B,CAAC;AAClH,OAAO,EAAY,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAkFzB,OAAO,CAAC,WAAW;IAGnB;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC;IAxFnB,SAAgB,oBAAoB,EAAE,MAAM,CAAC;IAE7C,oDAAoD;IACpD,IAAW,oBAAoB,IAAI,MAAM,CAExC;IACD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,yCAAyC;IACzC,IAAW,SAAS,IAAI,MAAM,CAE7B;IACD,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,iDAAiD;IACjD,IAAW,iBAAiB,IAAI,MAAM,CAErC;IACD,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC,6CAA6C;IAC7C,IAAW,aAAa,IAAI,MAAM,CAEjC;IACD,SAAgB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3C,2CAA2C;IAC3C,IAAW,WAAW,IAAI,MAAM,GAAG,IAAI,CAEtC;IACD,SAAgB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAElD,kDAAkD;IAClD,IAAW,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAE7C;IACD,SAAgB,gBAAgB,EAAE,IAAI,CAAC;IAEvC,gDAAgD;IAChD,IAAW,gBAAgB,IAAI,IAAI,CAElC;IACD,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,0CAA0C;IAC1C,IAAW,UAAU,IAAI,MAAM,CAE9B;IACD,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC,4CAA4C;IAC5C,IAAW,YAAY,IAAI,MAAM,CAEhC;IACD,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC,4CAA4C;IAC5C,IAAW,YAAY,IAAI,MAAM,CAEhC;IACD,SAAgB,mBAAmB,EAAE,MAAM,CAAC;IAE5C,mDAAmD;IACnD,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IACD,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,0CAA0C;IAC1C,IAAW,UAAU,IAAI,MAAM,CAE9B;IAGD,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,oBAAoB,CAA8B;gBAGxD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,WAAW,EAAE,QAAQ,EAC7B,iBAAiB,CAAC,EAAE,gBAAgB,EACpC,gBAAgB,CAAC,EAAE,uBAAuB;IAC1C;;;;OAIG;IACK,QAAQ,CAAC,EAAE,iBAAiB,YAAA;IA0BtC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAc9C,2CAA2C;IACrC,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI9C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAcpD,0CAA0C;IACpC,UAAU,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIpD;;;OAGG;IACH,IAAI,QAAQ,IAAI,OAAO,CAUtB;IAED,wCAAwC;IACxC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,yCAAyC;IACzC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;OAGG;YACW,oBAAoB;IASlC;;;OAGG;YACW,mBAAmB;IASjC;;;;OAIG;YACW,qBAAqB;YAkBrB,cAAc;YAed,kBAAkB;YAMlB,iBAAiB;CAKhC"}
|
|
@@ -18,18 +18,66 @@ export class LazyArtifactInfo {
|
|
|
18
18
|
currentUser;
|
|
19
19
|
provider;
|
|
20
20
|
// Display data (always available from initial query - no lazy loading needed)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
ConversationDetailId;
|
|
22
|
+
/** @deprecated Use {@link ConversationDetailId}. */
|
|
23
|
+
get conversationDetailId() {
|
|
24
|
+
return this.ConversationDetailId;
|
|
25
|
+
}
|
|
26
|
+
Direction;
|
|
27
|
+
/** @deprecated Use {@link Direction}. */
|
|
28
|
+
get direction() {
|
|
29
|
+
return this.Direction;
|
|
30
|
+
}
|
|
31
|
+
ArtifactVersionId;
|
|
32
|
+
/** @deprecated Use {@link ArtifactVersionId}. */
|
|
33
|
+
get artifactVersionId() {
|
|
34
|
+
return this.ArtifactVersionId;
|
|
35
|
+
}
|
|
36
|
+
VersionNumber;
|
|
37
|
+
/** @deprecated Use {@link VersionNumber}. */
|
|
38
|
+
get versionNumber() {
|
|
39
|
+
return this.VersionNumber;
|
|
40
|
+
}
|
|
41
|
+
VersionName;
|
|
42
|
+
/** @deprecated Use {@link VersionName}. */
|
|
43
|
+
get versionName() {
|
|
44
|
+
return this.VersionName;
|
|
45
|
+
}
|
|
46
|
+
VersionDescription;
|
|
47
|
+
/** @deprecated Use {@link VersionDescription}. */
|
|
48
|
+
get versionDescription() {
|
|
49
|
+
return this.VersionDescription;
|
|
50
|
+
}
|
|
51
|
+
VersionCreatedAt;
|
|
52
|
+
/** @deprecated Use {@link VersionCreatedAt}. */
|
|
53
|
+
get versionCreatedAt() {
|
|
54
|
+
return this.VersionCreatedAt;
|
|
55
|
+
}
|
|
56
|
+
ArtifactId;
|
|
57
|
+
/** @deprecated Use {@link ArtifactId}. */
|
|
58
|
+
get artifactId() {
|
|
59
|
+
return this.ArtifactId;
|
|
60
|
+
}
|
|
61
|
+
ArtifactName;
|
|
62
|
+
/** @deprecated Use {@link ArtifactName}. */
|
|
63
|
+
get artifactName() {
|
|
64
|
+
return this.ArtifactName;
|
|
65
|
+
}
|
|
66
|
+
ArtifactType;
|
|
67
|
+
/** @deprecated Use {@link ArtifactType}. */
|
|
68
|
+
get artifactType() {
|
|
69
|
+
return this.ArtifactType;
|
|
70
|
+
}
|
|
71
|
+
ArtifactDescription;
|
|
72
|
+
/** @deprecated Use {@link ArtifactDescription}. */
|
|
73
|
+
get artifactDescription() {
|
|
74
|
+
return this.ArtifactDescription;
|
|
75
|
+
}
|
|
76
|
+
Visibility;
|
|
77
|
+
/** @deprecated Use {@link Visibility}. */
|
|
78
|
+
get visibility() {
|
|
79
|
+
return this.Visibility;
|
|
80
|
+
}
|
|
33
81
|
// Fallback entities loaded directly when engine doesn't have them yet
|
|
34
82
|
_fallbackArtifact = null;
|
|
35
83
|
_fallbackVersion = null;
|
|
@@ -45,18 +93,18 @@ export class LazyArtifactInfo {
|
|
|
45
93
|
this.provider = provider;
|
|
46
94
|
// Populate display data from query result
|
|
47
95
|
// These fields come from GetConversationComplete query
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
58
|
-
this.
|
|
59
|
-
this.
|
|
96
|
+
this.ConversationDetailId = queryResult.ConversationDetailID;
|
|
97
|
+
this.Direction = queryResult.Direction;
|
|
98
|
+
this.ArtifactVersionId = queryResult.ArtifactVersionID;
|
|
99
|
+
this.VersionNumber = queryResult.VersionNumber;
|
|
100
|
+
this.VersionName = queryResult.VersionName || null;
|
|
101
|
+
this.VersionDescription = queryResult.VersionDescription || null;
|
|
102
|
+
this.VersionCreatedAt = queryResult.VersionCreatedAt ? new Date(queryResult.VersionCreatedAt) : new Date();
|
|
103
|
+
this.ArtifactId = queryResult.ArtifactID;
|
|
104
|
+
this.ArtifactName = queryResult.ArtifactName;
|
|
105
|
+
this.ArtifactType = queryResult.ArtifactType;
|
|
106
|
+
this.ArtifactDescription = queryResult.ArtifactDescription || '';
|
|
107
|
+
this.Visibility = queryResult.Visibility || 'User';
|
|
60
108
|
// If entities were pre-loaded via batch query, store as fallbacks
|
|
61
109
|
if (preloadedArtifact) {
|
|
62
110
|
this._fallbackArtifact = preloadedArtifact;
|
|
@@ -69,11 +117,11 @@ export class LazyArtifactInfo {
|
|
|
69
117
|
* Gets the full Artifact entity.
|
|
70
118
|
* Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.
|
|
71
119
|
*/
|
|
72
|
-
async
|
|
120
|
+
async GetArtifact() {
|
|
73
121
|
// Try the engine first — it stays in sync via BaseEntity events
|
|
74
122
|
const engine = ArtifactMetadataEngine.Instance;
|
|
75
123
|
if (engine.Loaded) {
|
|
76
|
-
const fromEngine = engine.FindCachedArtifactByID(this.
|
|
124
|
+
const fromEngine = engine.FindCachedArtifactByID(this.ArtifactId);
|
|
77
125
|
if (fromEngine) {
|
|
78
126
|
return fromEngine;
|
|
79
127
|
}
|
|
@@ -81,15 +129,19 @@ export class LazyArtifactInfo {
|
|
|
81
129
|
// Engine doesn't have it yet — use fallback
|
|
82
130
|
return this.loadArtifactFallback();
|
|
83
131
|
}
|
|
132
|
+
/** @deprecated Use {@link GetArtifact}. */
|
|
133
|
+
async getArtifact() {
|
|
134
|
+
return this.GetArtifact();
|
|
135
|
+
}
|
|
84
136
|
/**
|
|
85
137
|
* Gets the full ArtifactVersion entity including Content field.
|
|
86
138
|
* Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.
|
|
87
139
|
*/
|
|
88
|
-
async
|
|
140
|
+
async GetVersion() {
|
|
89
141
|
// Try the engine first — it stays in sync via BaseEntity events
|
|
90
142
|
const engine = ArtifactMetadataEngine.Instance;
|
|
91
143
|
if (engine.Loaded) {
|
|
92
|
-
const fromEngine = engine.FindCachedArtifactVersionByID(this.
|
|
144
|
+
const fromEngine = engine.FindCachedArtifactVersionByID(this.ArtifactVersionId);
|
|
93
145
|
if (fromEngine) {
|
|
94
146
|
return fromEngine;
|
|
95
147
|
}
|
|
@@ -97,27 +149,39 @@ export class LazyArtifactInfo {
|
|
|
97
149
|
// Engine doesn't have it yet — use fallback
|
|
98
150
|
return this.loadVersionFallback();
|
|
99
151
|
}
|
|
152
|
+
/** @deprecated Use {@link GetVersion}. */
|
|
153
|
+
async getVersion() {
|
|
154
|
+
return this.GetVersion();
|
|
155
|
+
}
|
|
100
156
|
/**
|
|
101
157
|
* Checks if the artifact entities can be accessed without triggering a load.
|
|
102
158
|
* True if the engine has them or fallbacks are populated.
|
|
103
159
|
*/
|
|
104
|
-
get
|
|
160
|
+
get IsLoaded() {
|
|
105
161
|
const engine = ArtifactMetadataEngine.Instance;
|
|
106
162
|
if (engine.Loaded) {
|
|
107
|
-
const hasArtifact = !!engine.FindCachedArtifactByID(this.
|
|
108
|
-
const hasVersion = !!engine.FindCachedArtifactVersionByID(this.
|
|
163
|
+
const hasArtifact = !!engine.FindCachedArtifactByID(this.ArtifactId);
|
|
164
|
+
const hasVersion = !!engine.FindCachedArtifactVersionByID(this.ArtifactVersionId);
|
|
109
165
|
if (hasArtifact && hasVersion) {
|
|
110
166
|
return true;
|
|
111
167
|
}
|
|
112
168
|
}
|
|
113
169
|
return this._fallbackArtifact !== null && this._fallbackVersion !== null;
|
|
114
170
|
}
|
|
171
|
+
/** @deprecated Use {@link IsLoaded}. */
|
|
172
|
+
get isLoaded() {
|
|
173
|
+
return this.IsLoaded;
|
|
174
|
+
}
|
|
115
175
|
/**
|
|
116
176
|
* Checks if a fallback load is currently in progress.
|
|
117
177
|
*/
|
|
118
|
-
get
|
|
178
|
+
get IsLoading() {
|
|
119
179
|
return this._fallbackLoadPromise !== null;
|
|
120
180
|
}
|
|
181
|
+
/** @deprecated Use {@link IsLoading}. */
|
|
182
|
+
get isLoading() {
|
|
183
|
+
return this.IsLoading;
|
|
184
|
+
}
|
|
121
185
|
/**
|
|
122
186
|
* Loads the artifact directly from the database as a fallback.
|
|
123
187
|
* Uses a shared promise to coalesce concurrent calls.
|
|
@@ -178,12 +242,12 @@ export class LazyArtifactInfo {
|
|
|
178
242
|
}
|
|
179
243
|
async loadSingleArtifact(md) {
|
|
180
244
|
const artifact = await md.GetEntityObject('MJ: Artifacts', this.currentUser);
|
|
181
|
-
await artifact.Load(this.
|
|
245
|
+
await artifact.Load(this.ArtifactId);
|
|
182
246
|
return artifact;
|
|
183
247
|
}
|
|
184
248
|
async loadSingleVersion(md) {
|
|
185
249
|
const version = await md.GetEntityObject('MJ: Artifact Versions', this.currentUser);
|
|
186
|
-
await version.Load(this.
|
|
250
|
+
await version.Load(this.ArtifactVersionId);
|
|
187
251
|
return version;
|
|
188
252
|
}
|
|
189
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy-artifact-info.js","sourceRoot":"","sources":["../../../src/lib/models/lazy-artifact-info.ts"],"names":[],"mappings":"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","sourcesContent":["import { MJArtifactEntity, MJArtifactVersionEntity, ArtifactMetadataEngine } from '@memberjunction/core-entities';\nimport { Metadata, UserInfo, IMetadataProvider } from '@memberjunction/core';\n\n/**\n * Represents artifact information with lazy-loading capabilities.\n * Stores minimal display data initially (from query) and loads full entities on-demand.\n *\n * For full entity access, this first checks {@link ArtifactMetadataEngine}'s\n * on-demand caches (populated when an artifact's versions were loaded earlier\n * this session) and otherwise loads the single artifact/version directly from\n * the database. Artifacts and versions are no longer bulk-loaded at boot — a\n * version's `Content` can be arbitrarily large — so a direct load is the normal\n * path here, not just a fallback.\n *\n * The direct load is coalesced via a shared promise so concurrent callers issue\n * a single query.\n */\nexport class LazyArtifactInfo {\n // Display data (always available from initial query - no lazy loading needed)\n public readonly conversationDetailId: string;\n public readonly direction: string;\n public readonly artifactVersionId: string;\n public readonly versionNumber: number;\n public readonly versionName: string | null;\n public readonly versionDescription: string | null;\n public readonly versionCreatedAt: Date;\n public readonly artifactId: string;\n public readonly artifactName: string;\n public readonly artifactType: string;\n public readonly artifactDescription: string;\n public readonly visibility: string;\n\n // Fallback entities loaded directly when engine doesn't have them yet\n private _fallbackArtifact: MJArtifactEntity | null = null;\n private _fallbackVersion: MJArtifactVersionEntity | null = null;\n private _fallbackLoadPromise: Promise<void> | null = null;\n\n constructor(\n queryResult: Record<string, unknown>,\n private currentUser: UserInfo,\n preloadedArtifact?: MJArtifactEntity,\n preloadedVersion?: MJArtifactVersionEntity,\n /**\n * The provider the fallback load reads through. A component constructing this in a\n * multi-provider tree passes its own `ProviderToUse`; omitting it falls back to the global\n * default, named explicitly rather than reached for via `new Metadata()`.\n */\n private provider?: IMetadataProvider\n ) {\n // Populate display data from query result\n // These fields come from GetConversationComplete query\n this.conversationDetailId = queryResult.ConversationDetailID as string;\n this.direction = queryResult.Direction as string;\n this.artifactVersionId = queryResult.ArtifactVersionID as string;\n this.versionNumber = queryResult.VersionNumber as number;\n this.versionName = (queryResult.VersionName as string) || null;\n this.versionDescription = (queryResult.VersionDescription as string) || null;\n this.versionCreatedAt = queryResult.VersionCreatedAt ? new Date(queryResult.VersionCreatedAt as string) : new Date();\n this.artifactId = queryResult.ArtifactID as string;\n this.artifactName = queryResult.ArtifactName as string;\n this.artifactType = queryResult.ArtifactType as string;\n this.artifactDescription = (queryResult.ArtifactDescription as string) || '';\n this.visibility = (queryResult.Visibility as string) || 'User';\n\n // If entities were pre-loaded via batch query, store as fallbacks\n if (preloadedArtifact) {\n this._fallbackArtifact = preloadedArtifact;\n }\n if (preloadedVersion) {\n this._fallbackVersion = preloadedVersion;\n }\n }\n\n /**\n * Gets the full Artifact entity.\n * Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.\n */\n async getArtifact(): Promise<MJArtifactEntity> {\n // Try the engine first — it stays in sync via BaseEntity events\n const engine = ArtifactMetadataEngine.Instance;\n if (engine.Loaded) {\n const fromEngine = engine.FindCachedArtifactByID(this.artifactId);\n if (fromEngine) {\n return fromEngine;\n }\n }\n\n // Engine doesn't have it yet — use fallback\n return this.loadArtifactFallback();\n }\n\n /**\n * Gets the full ArtifactVersion entity including Content field.\n * Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.\n */\n async getVersion(): Promise<MJArtifactVersionEntity> {\n // Try the engine first — it stays in sync via BaseEntity events\n const engine = ArtifactMetadataEngine.Instance;\n if (engine.Loaded) {\n const fromEngine = engine.FindCachedArtifactVersionByID(this.artifactVersionId);\n if (fromEngine) {\n return fromEngine;\n }\n }\n\n // Engine doesn't have it yet — use fallback\n return this.loadVersionFallback();\n }\n\n /**\n * Checks if the artifact entities can be accessed without triggering a load.\n * True if the engine has them or fallbacks are populated.\n */\n get isLoaded(): boolean {\n const engine = ArtifactMetadataEngine.Instance;\n if (engine.Loaded) {\n const hasArtifact = !!engine.FindCachedArtifactByID(this.artifactId);\n const hasVersion = !!engine.FindCachedArtifactVersionByID(this.artifactVersionId);\n if (hasArtifact && hasVersion) {\n return true;\n }\n }\n return this._fallbackArtifact !== null && this._fallbackVersion !== null;\n }\n\n /**\n * Checks if a fallback load is currently in progress.\n */\n get isLoading(): boolean {\n return this._fallbackLoadPromise !== null;\n }\n\n /**\n * Loads the artifact directly from the database as a fallback.\n * Uses a shared promise to coalesce concurrent calls.\n */\n private async loadArtifactFallback(): Promise<MJArtifactEntity> {\n if (this._fallbackArtifact) {\n return this._fallbackArtifact;\n }\n\n await this.ensureFallbacksLoaded();\n return this._fallbackArtifact!;\n }\n\n /**\n * Loads the artifact version directly from the database as a fallback.\n * Uses a shared promise to coalesce concurrent calls.\n */\n private async loadVersionFallback(): Promise<MJArtifactVersionEntity> {\n if (this._fallbackVersion) {\n return this._fallbackVersion;\n }\n\n await this.ensureFallbacksLoaded();\n return this._fallbackVersion!;\n }\n\n /**\n * Loads both artifact and version from database in parallel.\n * Called only when ArtifactMetadataEngine doesn't have the entities.\n * Shares a single promise across concurrent requests.\n */\n private async ensureFallbacksLoaded(): Promise<void> {\n if (this._fallbackArtifact && this._fallbackVersion) {\n return;\n }\n\n if (this._fallbackLoadPromise) {\n await this._fallbackLoadPromise;\n return;\n }\n\n this._fallbackLoadPromise = this.doFallbackLoad();\n try {\n await this._fallbackLoadPromise;\n } finally {\n this._fallbackLoadPromise = null;\n }\n }\n\n private async doFallbackLoad(): Promise<void> {\n try {\n const md = this.provider ?? Metadata.Provider;\n const [artifact, version] = await Promise.all([\n this._fallbackArtifact ? Promise.resolve(this._fallbackArtifact) : this.loadSingleArtifact(md),\n this._fallbackVersion ? Promise.resolve(this._fallbackVersion) : this.loadSingleVersion(md)\n ]);\n this._fallbackArtifact = artifact;\n this._fallbackVersion = version;\n } catch (error) {\n console.error('LazyArtifactInfo: Error loading fallback entities:', error);\n throw error;\n }\n }\n\n private async loadSingleArtifact(md: IMetadataProvider): Promise<MJArtifactEntity> {\n const artifact = await md.GetEntityObject<MJArtifactEntity>('MJ: Artifacts', this.currentUser);\n await artifact.Load(this.artifactId);\n return artifact;\n }\n\n private async loadSingleVersion(md: IMetadataProvider): Promise<MJArtifactVersionEntity> {\n const version = await md.GetEntityObject<MJArtifactVersionEntity>('MJ: Artifact Versions', this.currentUser);\n await version.Load(this.artifactVersionId);\n return version;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"lazy-artifact-info.js","sourceRoot":"","sources":["../../../src/lib/models/lazy-artifact-info.ts"],"names":[],"mappings":"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","sourcesContent":["import { MJArtifactEntity, MJArtifactVersionEntity, ArtifactMetadataEngine } from '@memberjunction/core-entities';\nimport { Metadata, UserInfo, IMetadataProvider } from '@memberjunction/core';\n\n/**\n * Represents artifact information with lazy-loading capabilities.\n * Stores minimal display data initially (from query) and loads full entities on-demand.\n *\n * For full entity access, this first checks {@link ArtifactMetadataEngine}'s\n * on-demand caches (populated when an artifact's versions were loaded earlier\n * this session) and otherwise loads the single artifact/version directly from\n * the database. Artifacts and versions are no longer bulk-loaded at boot — a\n * version's `Content` can be arbitrarily large — so a direct load is the normal\n * path here, not just a fallback.\n *\n * The direct load is coalesced via a shared promise so concurrent callers issue\n * a single query.\n */\nexport class LazyArtifactInfo {\n // Display data (always available from initial query - no lazy loading needed)\n public readonly ConversationDetailId: string;\n\n /** @deprecated Use {@link ConversationDetailId}. */\n public get conversationDetailId(): string {\n return this.ConversationDetailId;\n }\n public readonly Direction: string;\n\n /** @deprecated Use {@link Direction}. */\n public get direction(): string {\n return this.Direction;\n }\n public readonly ArtifactVersionId: string;\n\n /** @deprecated Use {@link ArtifactVersionId}. */\n public get artifactVersionId(): string {\n return this.ArtifactVersionId;\n }\n public readonly VersionNumber: number;\n\n /** @deprecated Use {@link VersionNumber}. */\n public get versionNumber(): number {\n return this.VersionNumber;\n }\n public readonly VersionName: string | null;\n\n /** @deprecated Use {@link VersionName}. */\n public get versionName(): string | null {\n return this.VersionName;\n }\n public readonly VersionDescription: string | null;\n\n /** @deprecated Use {@link VersionDescription}. */\n public get versionDescription(): string | null {\n return this.VersionDescription;\n }\n public readonly VersionCreatedAt: Date;\n\n /** @deprecated Use {@link VersionCreatedAt}. */\n public get versionCreatedAt(): Date {\n return this.VersionCreatedAt;\n }\n public readonly ArtifactId: string;\n\n /** @deprecated Use {@link ArtifactId}. */\n public get artifactId(): string {\n return this.ArtifactId;\n }\n public readonly ArtifactName: string;\n\n /** @deprecated Use {@link ArtifactName}. */\n public get artifactName(): string {\n return this.ArtifactName;\n }\n public readonly ArtifactType: string;\n\n /** @deprecated Use {@link ArtifactType}. */\n public get artifactType(): string {\n return this.ArtifactType;\n }\n public readonly ArtifactDescription: string;\n\n /** @deprecated Use {@link ArtifactDescription}. */\n public get artifactDescription(): string {\n return this.ArtifactDescription;\n }\n public readonly Visibility: string;\n\n /** @deprecated Use {@link Visibility}. */\n public get visibility(): string {\n return this.Visibility;\n }\n\n // Fallback entities loaded directly when engine doesn't have them yet\n private _fallbackArtifact: MJArtifactEntity | null = null;\n private _fallbackVersion: MJArtifactVersionEntity | null = null;\n private _fallbackLoadPromise: Promise<void> | null = null;\n\n constructor(\n queryResult: Record<string, unknown>,\n private currentUser: UserInfo,\n preloadedArtifact?: MJArtifactEntity,\n preloadedVersion?: MJArtifactVersionEntity,\n /**\n * The provider the fallback load reads through. A component constructing this in a\n * multi-provider tree passes its own `ProviderToUse`; omitting it falls back to the global\n * default, named explicitly rather than reached for via `new Metadata()`.\n */\n private provider?: IMetadataProvider\n ) {\n // Populate display data from query result\n // These fields come from GetConversationComplete query\n this.ConversationDetailId = queryResult.ConversationDetailID as string;\n this.Direction = queryResult.Direction as string;\n this.ArtifactVersionId = queryResult.ArtifactVersionID as string;\n this.VersionNumber = queryResult.VersionNumber as number;\n this.VersionName = (queryResult.VersionName as string) || null;\n this.VersionDescription = (queryResult.VersionDescription as string) || null;\n this.VersionCreatedAt = queryResult.VersionCreatedAt ? new Date(queryResult.VersionCreatedAt as string) : new Date();\n this.ArtifactId = queryResult.ArtifactID as string;\n this.ArtifactName = queryResult.ArtifactName as string;\n this.ArtifactType = queryResult.ArtifactType as string;\n this.ArtifactDescription = (queryResult.ArtifactDescription as string) || '';\n this.Visibility = (queryResult.Visibility as string) || 'User';\n\n // If entities were pre-loaded via batch query, store as fallbacks\n if (preloadedArtifact) {\n this._fallbackArtifact = preloadedArtifact;\n }\n if (preloadedVersion) {\n this._fallbackVersion = preloadedVersion;\n }\n }\n\n /**\n * Gets the full Artifact entity.\n * Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.\n */\n async GetArtifact(): Promise<MJArtifactEntity> {\n // Try the engine first — it stays in sync via BaseEntity events\n const engine = ArtifactMetadataEngine.Instance;\n if (engine.Loaded) {\n const fromEngine = engine.FindCachedArtifactByID(this.ArtifactId);\n if (fromEngine) {\n return fromEngine;\n }\n }\n\n // Engine doesn't have it yet — use fallback\n return this.loadArtifactFallback();\n }\n\n /** @deprecated Use {@link GetArtifact}. */\n async getArtifact(): Promise<MJArtifactEntity> {\n return this.GetArtifact();\n }\n\n /**\n * Gets the full ArtifactVersion entity including Content field.\n * Checks ArtifactMetadataEngine first (always fresh), falls back to direct load.\n */\n async GetVersion(): Promise<MJArtifactVersionEntity> {\n // Try the engine first — it stays in sync via BaseEntity events\n const engine = ArtifactMetadataEngine.Instance;\n if (engine.Loaded) {\n const fromEngine = engine.FindCachedArtifactVersionByID(this.ArtifactVersionId);\n if (fromEngine) {\n return fromEngine;\n }\n }\n\n // Engine doesn't have it yet — use fallback\n return this.loadVersionFallback();\n }\n\n /** @deprecated Use {@link GetVersion}. */\n async getVersion(): Promise<MJArtifactVersionEntity> {\n return this.GetVersion();\n }\n\n /**\n * Checks if the artifact entities can be accessed without triggering a load.\n * True if the engine has them or fallbacks are populated.\n */\n get IsLoaded(): boolean {\n const engine = ArtifactMetadataEngine.Instance;\n if (engine.Loaded) {\n const hasArtifact = !!engine.FindCachedArtifactByID(this.ArtifactId);\n const hasVersion = !!engine.FindCachedArtifactVersionByID(this.ArtifactVersionId);\n if (hasArtifact && hasVersion) {\n return true;\n }\n }\n return this._fallbackArtifact !== null && this._fallbackVersion !== null;\n }\n\n /** @deprecated Use {@link IsLoaded}. */\n get isLoaded(): boolean {\n return this.IsLoaded;\n }\n\n /**\n * Checks if a fallback load is currently in progress.\n */\n get IsLoading(): boolean {\n return this._fallbackLoadPromise !== null;\n }\n\n /** @deprecated Use {@link IsLoading}. */\n get isLoading(): boolean {\n return this.IsLoading;\n }\n\n /**\n * Loads the artifact directly from the database as a fallback.\n * Uses a shared promise to coalesce concurrent calls.\n */\n private async loadArtifactFallback(): Promise<MJArtifactEntity> {\n if (this._fallbackArtifact) {\n return this._fallbackArtifact;\n }\n\n await this.ensureFallbacksLoaded();\n return this._fallbackArtifact!;\n }\n\n /**\n * Loads the artifact version directly from the database as a fallback.\n * Uses a shared promise to coalesce concurrent calls.\n */\n private async loadVersionFallback(): Promise<MJArtifactVersionEntity> {\n if (this._fallbackVersion) {\n return this._fallbackVersion;\n }\n\n await this.ensureFallbacksLoaded();\n return this._fallbackVersion!;\n }\n\n /**\n * Loads both artifact and version from database in parallel.\n * Called only when ArtifactMetadataEngine doesn't have the entities.\n * Shares a single promise across concurrent requests.\n */\n private async ensureFallbacksLoaded(): Promise<void> {\n if (this._fallbackArtifact && this._fallbackVersion) {\n return;\n }\n\n if (this._fallbackLoadPromise) {\n await this._fallbackLoadPromise;\n return;\n }\n\n this._fallbackLoadPromise = this.doFallbackLoad();\n try {\n await this._fallbackLoadPromise;\n } finally {\n this._fallbackLoadPromise = null;\n }\n }\n\n private async doFallbackLoad(): Promise<void> {\n try {\n const md = this.provider ?? Metadata.Provider;\n const [artifact, version] = await Promise.all([\n this._fallbackArtifact ? Promise.resolve(this._fallbackArtifact) : this.loadSingleArtifact(md),\n this._fallbackVersion ? Promise.resolve(this._fallbackVersion) : this.loadSingleVersion(md)\n ]);\n this._fallbackArtifact = artifact;\n this._fallbackVersion = version;\n } catch (error) {\n console.error('LazyArtifactInfo: Error loading fallback entities:', error);\n throw error;\n }\n }\n\n private async loadSingleArtifact(md: IMetadataProvider): Promise<MJArtifactEntity> {\n const artifact = await md.GetEntityObject<MJArtifactEntity>('MJ: Artifacts', this.currentUser);\n await artifact.Load(this.ArtifactId);\n return artifact;\n }\n\n private async loadSingleVersion(md: IMetadataProvider): Promise<MJArtifactVersionEntity> {\n const version = await md.GetEntityObject<MJArtifactVersionEntity>('MJ: Artifact Versions', this.currentUser);\n await version.Load(this.ArtifactVersionId);\n return version;\n }\n}\n"]}
|
|
@@ -33,31 +33,43 @@ export declare class ActiveTasksService {
|
|
|
33
33
|
/**
|
|
34
34
|
* Observable of all active tasks as an array
|
|
35
35
|
*/
|
|
36
|
-
readonly
|
|
36
|
+
readonly Tasks$: Observable<ActiveTask[]>;
|
|
37
|
+
/** @deprecated Use {@link Tasks$}. */
|
|
38
|
+
get tasks$(): Observable<ActiveTask[]>;
|
|
37
39
|
/**
|
|
38
40
|
* Observable of the count of active tasks
|
|
39
41
|
*/
|
|
40
|
-
readonly
|
|
42
|
+
readonly TaskCount$: Observable<number>;
|
|
43
|
+
/** @deprecated Use {@link TaskCount$}. */
|
|
44
|
+
get taskCount$(): Observable<number>;
|
|
41
45
|
/**
|
|
42
46
|
* Observable of conversation IDs that have 1+ active tasks
|
|
43
47
|
* Use this for quick lookups in conversation lists
|
|
44
48
|
*/
|
|
45
|
-
readonly
|
|
49
|
+
readonly ConversationIdsWithTasks$: Observable<Set<string>>;
|
|
50
|
+
/** @deprecated Use {@link ConversationIdsWithTasks$}. */
|
|
51
|
+
get conversationIdsWithTasks$(): Observable<Set<string>>;
|
|
46
52
|
/**
|
|
47
53
|
* Observable of tasks grouped by conversation ID
|
|
48
54
|
* Returns Map<conversationId, ActiveTask[]>
|
|
49
55
|
*/
|
|
50
|
-
readonly
|
|
56
|
+
readonly TasksByConversationId$: Observable<Map<string, ActiveTask[]>>;
|
|
57
|
+
/** @deprecated Use {@link TasksByConversationId$}. */
|
|
58
|
+
get tasksByConversationId$(): Observable<Map<string, ActiveTask[]>>;
|
|
51
59
|
/**
|
|
52
60
|
* Add a new active task
|
|
53
61
|
* @param task Task details (without id and startTime)
|
|
54
62
|
* @returns The generated task ID
|
|
55
63
|
*/
|
|
64
|
+
Add(task: Omit<ActiveTask, 'id' | 'startTime'>): string;
|
|
65
|
+
/** @deprecated Use {@link Add}. */
|
|
56
66
|
add(task: Omit<ActiveTask, 'id' | 'startTime'>): string;
|
|
57
67
|
/**
|
|
58
68
|
* Remove an active task
|
|
59
69
|
* @param id The task ID to remove
|
|
60
70
|
*/
|
|
71
|
+
Remove(id: string): void;
|
|
72
|
+
/** @deprecated Use {@link Remove}. */
|
|
61
73
|
remove(id: string): void;
|
|
62
74
|
/**
|
|
63
75
|
* Update the set of conversation IDs with active tasks
|
|
@@ -69,12 +81,16 @@ export declare class ActiveTasksService {
|
|
|
69
81
|
* @param id The task ID
|
|
70
82
|
* @param status The new status text
|
|
71
83
|
*/
|
|
84
|
+
UpdateStatus(id: string, status: string): void;
|
|
85
|
+
/** @deprecated Use {@link UpdateStatus}. */
|
|
72
86
|
updateStatus(id: string, status: string): void;
|
|
73
87
|
/**
|
|
74
88
|
* Get an active task by its conversation detail ID
|
|
75
89
|
* @param conversationDetailId The conversation detail ID
|
|
76
90
|
* @returns The task if found, undefined otherwise
|
|
77
91
|
*/
|
|
92
|
+
GetByConversationDetailId(conversationDetailId: string): ActiveTask | undefined;
|
|
93
|
+
/** @deprecated Use {@link GetByConversationDetailId}. */
|
|
78
94
|
getByConversationDetailId(conversationDetailId: string): ActiveTask | undefined;
|
|
79
95
|
/**
|
|
80
96
|
* Update the status of a task by its conversation detail ID
|
|
@@ -82,28 +98,38 @@ export declare class ActiveTasksService {
|
|
|
82
98
|
* @param status The new status text
|
|
83
99
|
* @returns true if task was found and updated, false otherwise
|
|
84
100
|
*/
|
|
101
|
+
UpdateStatusByConversationDetailId(conversationDetailId: string, status: string): boolean;
|
|
102
|
+
/** @deprecated Use {@link UpdateStatusByConversationDetailId}. */
|
|
85
103
|
updateStatusByConversationDetailId(conversationDetailId: string, status: string): boolean;
|
|
86
104
|
/**
|
|
87
105
|
* Get an active task by its agent run ID
|
|
88
106
|
* @param agentRunId The AIAgentRun ID
|
|
89
107
|
* @returns The task if found, undefined otherwise
|
|
90
108
|
*/
|
|
109
|
+
GetByAgentRunId(agentRunId: string): ActiveTask | undefined;
|
|
110
|
+
/** @deprecated Use {@link GetByAgentRunId}. */
|
|
91
111
|
getByAgentRunId(agentRunId: string): ActiveTask | undefined;
|
|
92
112
|
/**
|
|
93
113
|
* Remove a task by its agent run ID
|
|
94
114
|
* @param agentRunId The AIAgentRun ID
|
|
95
115
|
* @returns true if task was found and removed, false otherwise
|
|
96
116
|
*/
|
|
117
|
+
RemoveByAgentRunId(agentRunId: string): boolean;
|
|
118
|
+
/** @deprecated Use {@link RemoveByAgentRunId}. */
|
|
97
119
|
removeByAgentRunId(agentRunId: string): boolean;
|
|
98
120
|
/**
|
|
99
121
|
* Clear all active tasks
|
|
100
122
|
*/
|
|
123
|
+
Clear(): void;
|
|
124
|
+
/** @deprecated Use {@link Clear}. */
|
|
101
125
|
clear(): void;
|
|
102
126
|
/**
|
|
103
127
|
* Restore active tasks from database by querying running agent runs.
|
|
104
128
|
* Call this on app initialization to restore state after browser refresh.
|
|
105
129
|
* @param currentUser The current user to filter agent runs by
|
|
106
130
|
*/
|
|
131
|
+
RestoreFromDatabase(currentUser: UserInfo): Promise<void>;
|
|
132
|
+
/** @deprecated Use {@link RestoreFromDatabase}. */
|
|
107
133
|
restoreFromDatabase(currentUser: UserInfo): Promise<void>;
|
|
108
134
|
static ɵfac: i0.ɵɵFactoryDeclaration<ActiveTasksService, never>;
|
|
109
135
|
static ɵprov: i0.ɵɵInjectableDeclaration<ActiveTasksService>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-tasks.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/active-tasks.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEnD,OAAO,EAAW,QAAQ,EAAY,iBAAiB,EAAe,MAAM,sBAAsB,CAAC;;AAInG;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAGa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA2D;IAC1E,OAAO,CAAC,0BAA0B,CAA+C;IACjF,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,SAAS,CAAkC;IAEnD;;OAEG;IACH,IAAW,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAElD;IAED,IAAW,QAAQ,IAAI,iBAAiB,CAEvC;IAED;;OAEG;IACH,SAAgB,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAE9C;IAEF;;OAEG;IACH,SAAgB,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAE5C;IAEF;;;OAGG;IACH,SAAgB,yBAAyB,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAkD;IAEpH;;;OAGG;IACH,SAAgB,sBAAsB,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAY3E;IAEF;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,MAAM;IAyBvD;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgBxB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;;OAIG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAY9C;;;;OAIG;IACH,yBAAyB,CAAC,oBAAoB,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAK/E;;;;;OAKG;IACH,kCAAkC,CAAC,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IASzF;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAK3D;;;;OAIG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAS/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"active-tasks.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/active-tasks.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,21 +25,33 @@ export class ActiveTasksService {
|
|
|
25
25
|
/**
|
|
26
26
|
* Observable of all active tasks as an array
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
Tasks$ = this._tasks$.pipe(map(taskMap => Array.from(taskMap.values())));
|
|
29
|
+
/** @deprecated Use {@link Tasks$}. */
|
|
30
|
+
get tasks$() {
|
|
31
|
+
return this.Tasks$;
|
|
32
|
+
}
|
|
29
33
|
/**
|
|
30
34
|
* Observable of the count of active tasks
|
|
31
35
|
*/
|
|
32
|
-
|
|
36
|
+
TaskCount$ = this.Tasks$.pipe(map(tasks => tasks.length));
|
|
37
|
+
/** @deprecated Use {@link TaskCount$}. */
|
|
38
|
+
get taskCount$() {
|
|
39
|
+
return this.TaskCount$;
|
|
40
|
+
}
|
|
33
41
|
/**
|
|
34
42
|
* Observable of conversation IDs that have 1+ active tasks
|
|
35
43
|
* Use this for quick lookups in conversation lists
|
|
36
44
|
*/
|
|
37
|
-
|
|
45
|
+
ConversationIdsWithTasks$ = this._conversationIdsWithTasks$.asObservable();
|
|
46
|
+
/** @deprecated Use {@link ConversationIdsWithTasks$}. */
|
|
47
|
+
get conversationIdsWithTasks$() {
|
|
48
|
+
return this.ConversationIdsWithTasks$;
|
|
49
|
+
}
|
|
38
50
|
/**
|
|
39
51
|
* Observable of tasks grouped by conversation ID
|
|
40
52
|
* Returns Map<conversationId, ActiveTask[]>
|
|
41
53
|
*/
|
|
42
|
-
|
|
54
|
+
TasksByConversationId$ = this.Tasks$.pipe(map(tasks => {
|
|
43
55
|
const grouped = new Map();
|
|
44
56
|
for (const task of tasks) {
|
|
45
57
|
if (task.conversationId) {
|
|
@@ -50,12 +62,16 @@ export class ActiveTasksService {
|
|
|
50
62
|
}
|
|
51
63
|
return grouped;
|
|
52
64
|
}));
|
|
65
|
+
/** @deprecated Use {@link TasksByConversationId$}. */
|
|
66
|
+
get tasksByConversationId$() {
|
|
67
|
+
return this.TasksByConversationId$;
|
|
68
|
+
}
|
|
53
69
|
/**
|
|
54
70
|
* Add a new active task
|
|
55
71
|
* @param task Task details (without id and startTime)
|
|
56
72
|
* @returns The generated task ID
|
|
57
73
|
*/
|
|
58
|
-
|
|
74
|
+
Add(task) {
|
|
59
75
|
const id = `task-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
60
76
|
const fullTask = {
|
|
61
77
|
...task,
|
|
@@ -76,11 +92,15 @@ export class ActiveTasksService {
|
|
|
76
92
|
LogStatusEx({ message: `🗂️ Conversation IDs with tasks:`, additionalArgs: [Array.from(this._conversationIdsWithTasks$.value)], verboseOnly: true });
|
|
77
93
|
return id;
|
|
78
94
|
}
|
|
95
|
+
/** @deprecated Use {@link Add}. */
|
|
96
|
+
add(task) {
|
|
97
|
+
return this.Add(task);
|
|
98
|
+
}
|
|
79
99
|
/**
|
|
80
100
|
* Remove an active task
|
|
81
101
|
* @param id The task ID to remove
|
|
82
102
|
*/
|
|
83
|
-
|
|
103
|
+
Remove(id) {
|
|
84
104
|
const current = this._tasks$.value;
|
|
85
105
|
const task = current.get(id);
|
|
86
106
|
current.delete(id);
|
|
@@ -93,6 +113,10 @@ export class ActiveTasksService {
|
|
|
93
113
|
LogStatusEx({ message: `📊 Total tasks remaining:`, additionalArgs: [this._tasks$.value.size], verboseOnly: true });
|
|
94
114
|
LogStatusEx({ message: `🗂️ Conversation IDs with tasks:`, additionalArgs: [Array.from(this._conversationIdsWithTasks$.value)], verboseOnly: true });
|
|
95
115
|
}
|
|
116
|
+
/** @deprecated Use {@link Remove}. */
|
|
117
|
+
remove(id) {
|
|
118
|
+
return this.Remove(id);
|
|
119
|
+
}
|
|
96
120
|
/**
|
|
97
121
|
* Update the set of conversation IDs with active tasks
|
|
98
122
|
* @private
|
|
@@ -111,7 +135,7 @@ export class ActiveTasksService {
|
|
|
111
135
|
* @param id The task ID
|
|
112
136
|
* @param status The new status text
|
|
113
137
|
*/
|
|
114
|
-
|
|
138
|
+
UpdateStatus(id, status) {
|
|
115
139
|
const current = this._tasks$.value;
|
|
116
140
|
const task = current.get(id);
|
|
117
141
|
// Same-value updates are no-ops so high-frequency callers (e.g. the streamed
|
|
@@ -122,63 +146,87 @@ export class ActiveTasksService {
|
|
|
122
146
|
this._tasks$.next(new Map(current));
|
|
123
147
|
}
|
|
124
148
|
}
|
|
149
|
+
/** @deprecated Use {@link UpdateStatus}. */
|
|
150
|
+
updateStatus(id, status) {
|
|
151
|
+
return this.UpdateStatus(id, status);
|
|
152
|
+
}
|
|
125
153
|
/**
|
|
126
154
|
* Get an active task by its conversation detail ID
|
|
127
155
|
* @param conversationDetailId The conversation detail ID
|
|
128
156
|
* @returns The task if found, undefined otherwise
|
|
129
157
|
*/
|
|
130
|
-
|
|
158
|
+
GetByConversationDetailId(conversationDetailId) {
|
|
131
159
|
const tasks = Array.from(this._tasks$.value.values());
|
|
132
160
|
return tasks.find(task => task.conversationDetailId === conversationDetailId);
|
|
133
161
|
}
|
|
162
|
+
/** @deprecated Use {@link GetByConversationDetailId}. */
|
|
163
|
+
getByConversationDetailId(conversationDetailId) {
|
|
164
|
+
return this.GetByConversationDetailId(conversationDetailId);
|
|
165
|
+
}
|
|
134
166
|
/**
|
|
135
167
|
* Update the status of a task by its conversation detail ID
|
|
136
168
|
* @param conversationDetailId The conversation detail ID
|
|
137
169
|
* @param status The new status text
|
|
138
170
|
* @returns true if task was found and updated, false otherwise
|
|
139
171
|
*/
|
|
140
|
-
|
|
141
|
-
const task = this.
|
|
172
|
+
UpdateStatusByConversationDetailId(conversationDetailId, status) {
|
|
173
|
+
const task = this.GetByConversationDetailId(conversationDetailId);
|
|
142
174
|
if (task) {
|
|
143
|
-
this.
|
|
175
|
+
this.UpdateStatus(task.id, status);
|
|
144
176
|
return true;
|
|
145
177
|
}
|
|
146
178
|
return false;
|
|
147
179
|
}
|
|
180
|
+
/** @deprecated Use {@link UpdateStatusByConversationDetailId}. */
|
|
181
|
+
updateStatusByConversationDetailId(conversationDetailId, status) {
|
|
182
|
+
return this.UpdateStatusByConversationDetailId(conversationDetailId, status);
|
|
183
|
+
}
|
|
148
184
|
/**
|
|
149
185
|
* Get an active task by its agent run ID
|
|
150
186
|
* @param agentRunId The AIAgentRun ID
|
|
151
187
|
* @returns The task if found, undefined otherwise
|
|
152
188
|
*/
|
|
153
|
-
|
|
189
|
+
GetByAgentRunId(agentRunId) {
|
|
154
190
|
const tasks = Array.from(this._tasks$.value.values());
|
|
155
191
|
return tasks.find(task => task.agentRunId === agentRunId);
|
|
156
192
|
}
|
|
193
|
+
/** @deprecated Use {@link GetByAgentRunId}. */
|
|
194
|
+
getByAgentRunId(agentRunId) {
|
|
195
|
+
return this.GetByAgentRunId(agentRunId);
|
|
196
|
+
}
|
|
157
197
|
/**
|
|
158
198
|
* Remove a task by its agent run ID
|
|
159
199
|
* @param agentRunId The AIAgentRun ID
|
|
160
200
|
* @returns true if task was found and removed, false otherwise
|
|
161
201
|
*/
|
|
162
|
-
|
|
163
|
-
const task = this.
|
|
202
|
+
RemoveByAgentRunId(agentRunId) {
|
|
203
|
+
const task = this.GetByAgentRunId(agentRunId);
|
|
164
204
|
if (task) {
|
|
165
|
-
this.
|
|
205
|
+
this.Remove(task.id);
|
|
166
206
|
return true;
|
|
167
207
|
}
|
|
168
208
|
return false;
|
|
169
209
|
}
|
|
210
|
+
/** @deprecated Use {@link RemoveByAgentRunId}. */
|
|
211
|
+
removeByAgentRunId(agentRunId) {
|
|
212
|
+
return this.RemoveByAgentRunId(agentRunId);
|
|
213
|
+
}
|
|
170
214
|
/**
|
|
171
215
|
* Clear all active tasks
|
|
172
216
|
*/
|
|
173
|
-
|
|
217
|
+
Clear() {
|
|
174
218
|
this._tasks$.next(new Map());
|
|
175
219
|
}
|
|
220
|
+
/** @deprecated Use {@link Clear}. */
|
|
221
|
+
clear() {
|
|
222
|
+
return this.Clear();
|
|
223
|
+
}
|
|
176
224
|
/**
|
|
177
225
|
* Restore active tasks from database by querying running agent runs.
|
|
178
226
|
* Call this on app initialization to restore state after browser refresh.
|
|
179
227
|
* @param currentUser The current user to filter agent runs by
|
|
180
228
|
*/
|
|
181
|
-
async
|
|
229
|
+
async RestoreFromDatabase(currentUser) {
|
|
182
230
|
try {
|
|
183
231
|
const rv = RunView.FromMetadataProvider(this.Provider);
|
|
184
232
|
// Query for running agent runs owned by this user
|
|
@@ -209,10 +257,10 @@ export class ActiveTasksService {
|
|
|
209
257
|
for (const agentRun of result.Results) {
|
|
210
258
|
// Skip if already tracked (prevents duplicates)
|
|
211
259
|
if (agentRun.ConversationDetailID &&
|
|
212
|
-
this.
|
|
260
|
+
this.GetByConversationDetailId(agentRun.ConversationDetailID)) {
|
|
213
261
|
continue;
|
|
214
262
|
}
|
|
215
|
-
this.
|
|
263
|
+
this.Add({
|
|
216
264
|
agentName: agentRun.Agent || 'Unknown Agent',
|
|
217
265
|
agentId: agentRun.AgentID,
|
|
218
266
|
agentRunId: agentRun.ID, // For finding task on completion
|
|
@@ -234,6 +282,10 @@ export class ActiveTasksService {
|
|
|
234
282
|
console.error('Failed to restore active tasks from database:', error);
|
|
235
283
|
}
|
|
236
284
|
}
|
|
285
|
+
/** @deprecated Use {@link RestoreFromDatabase}. */
|
|
286
|
+
async restoreFromDatabase(currentUser) {
|
|
287
|
+
return this.RestoreFromDatabase(currentUser);
|
|
288
|
+
}
|
|
237
289
|
static ɵfac = function ActiveTasksService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActiveTasksService)(); };
|
|
238
290
|
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ActiveTasksService, factory: ActiveTasksService.ɵfac, providedIn: 'root' });
|
|
239
291
|
}
|