@dataclouder/ngx-agent-cards 0.1.76 → 0.1.79

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.
@@ -7,11 +7,11 @@ import { AiWhisperService, TtsService, NgxAiServicesService, GeneratedAssetsServ
7
7
  import * as i2$1 from '@angular/common';
8
8
  import { DOCUMENT, CommonModule, DecimalPipe, KeyValuePipe, DatePipe, SlicePipe, JsonPipe } from '@angular/common';
9
9
  import { nanoid } from 'nanoid';
10
+ import { Subject, fromEvent, filter } from 'rxjs';
10
11
  import { DynamicDialogRef, DynamicDialogConfig, DialogService, DynamicDialogModule } from 'primeng/dynamicdialog';
11
12
  import * as i2 from 'primeng/button';
12
13
  import { ButtonModule } from 'primeng/button';
13
14
  import * as Plyr from 'plyr';
14
- import { Subject, fromEvent, filter } from 'rxjs';
15
15
  import * as i2$2 from 'primeng/progressbar';
16
16
  import { ProgressBarModule } from 'primeng/progressbar';
17
17
  import * as i1$1 from '@angular/forms';
@@ -1741,6 +1741,9 @@ class ConversationFlowStateService {
1741
1741
  * Components and services can subscribe to this signal to get real-time updates.
1742
1742
  */
1743
1743
  this.flowState = signal(this.initialState, ...(ngDevMode ? [{ debugName: "flowState" }] : []));
1744
+ this.currentMood = computed(() => this.flowState().moodState.value, ...(ngDevMode ? [{ debugName: "currentMood" }] : []));
1745
+ this.moodUpdated = new Subject();
1746
+ this.moodUpdated$ = this.moodUpdated.asObservable();
1744
1747
  }
1745
1748
  /**
1746
1749
  * @description
@@ -1757,6 +1760,9 @@ class ConversationFlowStateService {
1757
1760
  */
1758
1761
  updateState(newState) {
1759
1762
  this.flowState.update((current) => ({ ...current, ...newState }));
1763
+ if (newState.moodState?.value) {
1764
+ this.moodUpdated.next(newState.moodState.value);
1765
+ }
1760
1766
  }
1761
1767
  /**
1762
1768
  * @description
@@ -1801,6 +1807,9 @@ class ConversationFlowStateService {
1801
1807
  ...current,
1802
1808
  moodState: { ...current.moodState, ...moodState },
1803
1809
  }));
1810
+ if (moodState.value) {
1811
+ this.moodUpdated.next(moodState.value);
1812
+ }
1804
1813
  }
1805
1814
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: ConversationFlowStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1806
1815
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: ConversationFlowStateService, providedIn: 'root' }); }
@@ -2158,6 +2167,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
2158
2167
  }] });
2159
2168
 
2160
2169
  class ChatMonitorService {
2170
+ // Actualmente la única comunicación es con el background para cambiar el fondo.
2171
+ // El problema de comunicar así es si tiene que ser singleton, y en control markets tengo varias instancias de dc-chat.
2172
+ // Voy a utilizar el evento por ahora, y ver si combiene luego crear un servicio.
2161
2173
  // Se requiere comunicar el chat-engine con la app afuera, va a ver 2 formas de hacerlo.
2162
2174
  // Mediante eventos del chat, o estar subscrito al chat-monitor.
2163
2175
  // La complejidad del chat monitor es menor porque puedo injectarlo en cualquier lugar.
@@ -2914,36 +2926,16 @@ class DynamicFlowTaskService {
2914
2926
  this.messagesStateService = inject(MessagesStateService);
2915
2927
  this.userService = inject(UserService);
2916
2928
  }
2917
- async evaluateAssistantTaskTrigger(message) {
2918
- const canTriggerAssistant = this.userService.user()?.settings?.conversation?.assistantMessageTask;
2919
- if (!canTriggerAssistant) {
2920
- return;
2921
- }
2922
- const conversationFlow = this.dynamicFlowService.conversationFlowConfig();
2923
- if (!conversationFlow)
2924
- return;
2925
- const dynamicFlowTask = conversationFlow.triggerTasks.onAssistantMessage;
2926
- console.log('Trigger:', dynamicFlowTask);
2927
- if (dynamicFlowTask && message.messageId) {
2928
- const messageId = message.messageId;
2929
- // const contextMessages = this.contextEngineService.getContextMessages(this.messagesStateService.getMessagesSignal()(), ContextType.LastAssistantMessage);
2930
- // i cant override task in trigger.
2931
- const task = dynamicFlowTask.task + ' Here is the text: ' + (message.text || message.content);
2932
- const result = await this.evaluationService.evaluateWithTask({ model: dynamicFlowTask.model, task });
2933
- console.log('Assistant trigger evaluation result:', result);
2934
- message.evaluation = result;
2935
- this.messagesStateService.updateMessage(messageId, message);
2936
- }
2929
+ async triggerAfterAssistantMessage(message) {
2930
+ this.evaluateAssistantMessage(message);
2931
+ this.evaluateFlow();
2937
2932
  }
2938
- async evaluateUserTaskTrigger(message) {
2933
+ async triggerAfterUserMessage(message) {
2934
+ this.evaluateUserMessage(message);
2935
+ }
2936
+ async evaluateFlow() {
2939
2937
  const conversationFlow = this.dynamicFlowService.conversationFlowConfig();
2940
- if (!conversationFlow)
2941
- return;
2942
2938
  const goal = conversationFlow.goal;
2943
- // 1) Run Goal Evaluation
2944
- // TODO probably i need a different method for the goal.
2945
- // this.evaluationService.evaluateGoal(goal);
2946
- // Update Dynamic Flow State
2947
2939
  try {
2948
2940
  const messages = this.messagesStateService.getMessagesSignal()();
2949
2941
  const flowPrompt = this.dynamicFlowService.generateSystemPromptForFlow(messages);
@@ -2958,6 +2950,9 @@ class DynamicFlowTaskService {
2958
2950
  catch (err) {
2959
2951
  console.error('Error updating dynamic flow:', err);
2960
2952
  }
2953
+ }
2954
+ async evaluateUserMessage(message) {
2955
+ const conversationFlow = this.dynamicFlowService.conversationFlowConfig();
2961
2956
  // 2) Run User Trigger Evaluation only if user allows it
2962
2957
  const chatUserSettings = this.userService.user()?.settings?.conversation;
2963
2958
  if (chatUserSettings?.userMessageTask) {
@@ -2974,6 +2969,27 @@ class DynamicFlowTaskService {
2974
2969
  }
2975
2970
  }
2976
2971
  }
2972
+ async evaluateAssistantMessage(message) {
2973
+ const canTriggerAssistant = this.userService.user()?.settings?.conversation?.assistantMessageTask;
2974
+ if (!canTriggerAssistant) {
2975
+ return;
2976
+ }
2977
+ const conversationFlow = this.dynamicFlowService.conversationFlowConfig();
2978
+ if (!conversationFlow)
2979
+ return;
2980
+ const dynamicFlowTask = conversationFlow.triggerTasks.onAssistantMessage;
2981
+ console.log('Trigger:', dynamicFlowTask);
2982
+ if (dynamicFlowTask && message.messageId) {
2983
+ const messageId = message.messageId;
2984
+ // const contextMessages = this.contextEngineService.getContextMessages(this.messagesStateService.getMessagesSignal()(), ContextType.LastAssistantMessage);
2985
+ // i cant override task in trigger.
2986
+ const task = dynamicFlowTask.task + ' Here is the text: ' + (message.text || message.content);
2987
+ const result = await this.evaluationService.evaluateWithTask({ model: dynamicFlowTask.model, task });
2988
+ console.log('Assistant trigger evaluation result:', result);
2989
+ message.evaluation = result;
2990
+ this.messagesStateService.updateMessage(messageId, message);
2991
+ }
2992
+ }
2977
2993
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: DynamicFlowTaskService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2978
2994
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: DynamicFlowTaskService }); }
2979
2995
  }
@@ -3120,7 +3136,7 @@ class ConversationService {
3120
3136
  if (messageIndex !== -1) {
3121
3137
  conversationSettings.messages[messageIndex] = processedMessage;
3122
3138
  }
3123
- this.dynamicFlowTaskService.evaluateAssistantTaskTrigger(firstAssistantMsg);
3139
+ this.dynamicFlowTaskService.triggerAfterAssistantMessage(firstAssistantMsg);
3124
3140
  }
3125
3141
  else if (conversationSettings?.autoStart) {
3126
3142
  // Auto-start conversation if configured and no assistant message is present.
@@ -3171,7 +3187,7 @@ class ConversationService {
3171
3187
  this.isThinkingSignal.set(true);
3172
3188
  let assistantMessageId = null;
3173
3189
  // Trigger are asyn Run triggers in background
3174
- this.dynamicFlowTaskService.evaluateUserTaskTrigger({ messageId: userMessageId, role: ChatRole.User });
3190
+ this.dynamicFlowTaskService.triggerAfterUserMessage({ messageId: userMessageId, role: ChatRole.User });
3175
3191
  try {
3176
3192
  assistantMessageId = await this.requestAssistantConversationResponse();
3177
3193
  }
@@ -3223,11 +3239,7 @@ class ConversationService {
3223
3239
  this.messagesStateService.addMessage(newMessage);
3224
3240
  this.isThinkingSignal.set(false);
3225
3241
  // Run Dynamic Flow Evaluations
3226
- this.dynamicFlowTaskService.evaluateAssistantTaskTrigger(newMessage); // Not waiting should be parallel.
3227
- // this.dynamicCriteriaService.evaluateUsingTools();
3228
- if (this.dynamicFlowService.conversationFlowConfig()?.moodState.enabled) {
3229
- this.dynamicFlowService.syncMoodToLatestMessage(newMessage.messageId);
3230
- }
3242
+ this.dynamicFlowTaskService.triggerAfterAssistantMessage(newMessage); // Not waiting should be parallel.
3231
3243
  return newMessage.messageId;
3232
3244
  }
3233
3245
  // Reset conversation
@@ -4677,9 +4689,8 @@ class DCChatComponent {
4677
4689
  this.chatEvent.emit({ type: ChatEventType.AudioStarted, payload: message });
4678
4690
  }
4679
4691
  });
4680
- // Effect to watch for mood changes
4681
- effect(() => {
4682
- const mood = this.chatMonitorService.currentMood();
4692
+ // Subscribe to mood updates
4693
+ this.moodSubscription = this.conversationFlowStateService.moodUpdated$.subscribe((mood) => {
4683
4694
  if (mood) {
4684
4695
  this.chatEvent.emit({ type: ChatEventType.MoodDetected, payload: mood });
4685
4696
  }
@@ -4704,6 +4715,7 @@ class DCChatComponent {
4704
4715
  // Mark conversation as destroyed to prevent async operations
4705
4716
  this.conversationService.setDestroyed(true);
4706
4717
  this.chatMonitorService.cleanMonitorVars();
4718
+ this.moodSubscription?.unsubscribe();
4707
4719
  // Ensure the microphone is stopped when the chat component is destroyed
4708
4720
  this.chatFooterComponent?.stopMic();
4709
4721
  this.evaluationService.analylizePerformance();
@@ -4750,11 +4762,11 @@ class DCChatComponent {
4750
4762
  this.goalCompleted.emit();
4751
4763
  }
4752
4764
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: DCChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4753
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.6", type: DCChatComponent, isStandalone: true, selector: "dc-chat", inputs: { chatUserSettings: { classPropertyName: "chatUserSettings", publicName: "chatUserSettings", isSignal: false, isRequired: false, transformFunction: null }, conversationSettings: { classPropertyName: "conversationSettings", publicName: "conversationSettings", isSignal: false, isRequired: false, transformFunction: null }, conversationFlow: { classPropertyName: "conversationFlow", publicName: "conversationFlow", isSignal: false, isRequired: false, transformFunction: null }, agentCard: { classPropertyName: "agentCard", publicName: "agentCard", isSignal: false, isRequired: false, transformFunction: null }, parseDict: { classPropertyName: "parseDict", publicName: "parseDict", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { chatEvent: "chatEvent", goalCompleted: "goalCompleted" }, providers: [ConversationService, AIGenerationService, EvaluationService, DynamicFlowTaskService, ConversationInfoService, ChatMonitorService], viewQueries: [{ propertyName: "chatFooterComponent", first: true, predicate: ChatFooterComponent, descendants: true }], ngImport: i0, template: "<div class=\"chat-container\">\n <dc-chat-header\n [agentCard]=\"agentCard\"\n (showInfoEvent)=\"showInfo()\"\n (settingsClickEvent)=\"changeUserChatSettings()\"\n (restartConversationEvent)=\"restartConversation($event)\"\n (completeEvent)=\"complete()\">\n </dc-chat-header>\n\n <dc-chat-messages-list [chatUserSettings]=\"chatUserSettings\"> </dc-chat-messages-list>\n\n <dc-chat-footer [micSettings]=\"micSettings\"> </dc-chat-footer>\n</div>\n", styles: ["::ng-deep .p-drawer-content{padding:0!important}::ng-deep .p-dialog-content{display:contents}.chat-container{display:flex;flex-direction:column;height:100%;max-height:100vh;overflow:hidden;background-color:transparent}dc-chat-messages-list{flex:1;overflow-y:auto;padding:.5rem}.score-container{padding:.5rem 1rem;background-color:var(--surface-card, #ffffff);border-top:1px solid var(--surface-border, #dee2e6)}.info-content{max-height:70vh;overflow-y:auto;padding:1rem}.info-content h3{margin-top:1rem;margin-bottom:.5rem;font-size:1.2rem}.info-content pre{background-color:var(--surface-hover, #f1f1f1);padding:1rem;border-radius:4px;overflow-x:auto;font-size:.9rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ChatHeaderComponent, selector: "dc-chat-header", inputs: ["alternativeConversation", "agentCard"], outputs: ["restartConversationEvent", "showInfoEvent", "settingsClickEvent"] }, { kind: "component", type: ChatFooterComponent, selector: "dc-chat-footer", inputs: ["isAIThinking", "micSettings"], outputs: ["sendMessage", "textInputChanged"] }, { kind: "component", type: ChatMessagesListComponent, selector: "dc-chat-messages-list", inputs: ["chatUserSettings"] }, { kind: "ngmodule", type: ProgressBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4765
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.6", type: DCChatComponent, isStandalone: true, selector: "dc-chat", inputs: { chatUserSettings: { classPropertyName: "chatUserSettings", publicName: "chatUserSettings", isSignal: false, isRequired: false, transformFunction: null }, conversationSettings: { classPropertyName: "conversationSettings", publicName: "conversationSettings", isSignal: false, isRequired: false, transformFunction: null }, conversationFlow: { classPropertyName: "conversationFlow", publicName: "conversationFlow", isSignal: false, isRequired: false, transformFunction: null }, agentCard: { classPropertyName: "agentCard", publicName: "agentCard", isSignal: false, isRequired: false, transformFunction: null }, parseDict: { classPropertyName: "parseDict", publicName: "parseDict", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { chatEvent: "chatEvent", goalCompleted: "goalCompleted" }, providers: [ConversationService, AIGenerationService, EvaluationService, DynamicFlowTaskService, ConversationInfoService], viewQueries: [{ propertyName: "chatFooterComponent", first: true, predicate: ChatFooterComponent, descendants: true }], ngImport: i0, template: "<div class=\"chat-container\">\n <dc-chat-header\n [agentCard]=\"agentCard\"\n (showInfoEvent)=\"showInfo()\"\n (settingsClickEvent)=\"changeUserChatSettings()\"\n (restartConversationEvent)=\"restartConversation($event)\"\n (completeEvent)=\"complete()\">\n </dc-chat-header>\n\n <dc-chat-messages-list [chatUserSettings]=\"chatUserSettings\"> </dc-chat-messages-list>\n\n <dc-chat-footer [micSettings]=\"micSettings\"> </dc-chat-footer>\n</div>\n", styles: ["::ng-deep .p-drawer-content{padding:0!important}::ng-deep .p-dialog-content{display:contents}.chat-container{display:flex;flex-direction:column;height:100%;max-height:100vh;overflow:hidden;background-color:transparent}dc-chat-messages-list{flex:1;overflow-y:auto;padding:.5rem}.score-container{padding:.5rem 1rem;background-color:var(--surface-card, #ffffff);border-top:1px solid var(--surface-border, #dee2e6)}.info-content{max-height:70vh;overflow-y:auto;padding:1rem}.info-content h3{margin-top:1rem;margin-bottom:.5rem;font-size:1.2rem}.info-content pre{background-color:var(--surface-hover, #f1f1f1);padding:1rem;border-radius:4px;overflow-x:auto;font-size:.9rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ChatHeaderComponent, selector: "dc-chat-header", inputs: ["alternativeConversation", "agentCard"], outputs: ["restartConversationEvent", "showInfoEvent", "settingsClickEvent"] }, { kind: "component", type: ChatFooterComponent, selector: "dc-chat-footer", inputs: ["isAIThinking", "micSettings"], outputs: ["sendMessage", "textInputChanged"] }, { kind: "component", type: ChatMessagesListComponent, selector: "dc-chat-messages-list", inputs: ["chatUserSettings"] }, { kind: "ngmodule", type: ProgressBarModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4754
4766
  }
4755
4767
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: DCChatComponent, decorators: [{
4756
4768
  type: Component,
4757
- args: [{ selector: 'dc-chat', standalone: true, imports: [CommonModule, ChatHeaderComponent, ChatFooterComponent, ChatMessagesListComponent, ProgressBarModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConversationService, AIGenerationService, EvaluationService, DynamicFlowTaskService, ConversationInfoService, ChatMonitorService], template: "<div class=\"chat-container\">\n <dc-chat-header\n [agentCard]=\"agentCard\"\n (showInfoEvent)=\"showInfo()\"\n (settingsClickEvent)=\"changeUserChatSettings()\"\n (restartConversationEvent)=\"restartConversation($event)\"\n (completeEvent)=\"complete()\">\n </dc-chat-header>\n\n <dc-chat-messages-list [chatUserSettings]=\"chatUserSettings\"> </dc-chat-messages-list>\n\n <dc-chat-footer [micSettings]=\"micSettings\"> </dc-chat-footer>\n</div>\n", styles: ["::ng-deep .p-drawer-content{padding:0!important}::ng-deep .p-dialog-content{display:contents}.chat-container{display:flex;flex-direction:column;height:100%;max-height:100vh;overflow:hidden;background-color:transparent}dc-chat-messages-list{flex:1;overflow-y:auto;padding:.5rem}.score-container{padding:.5rem 1rem;background-color:var(--surface-card, #ffffff);border-top:1px solid var(--surface-border, #dee2e6)}.info-content{max-height:70vh;overflow-y:auto;padding:1rem}.info-content h3{margin-top:1rem;margin-bottom:.5rem;font-size:1.2rem}.info-content pre{background-color:var(--surface-hover, #f1f1f1);padding:1rem;border-radius:4px;overflow-x:auto;font-size:.9rem}\n"] }]
4769
+ args: [{ selector: 'dc-chat', standalone: true, imports: [CommonModule, ChatHeaderComponent, ChatFooterComponent, ChatMessagesListComponent, ProgressBarModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ConversationService, AIGenerationService, EvaluationService, DynamicFlowTaskService, ConversationInfoService], template: "<div class=\"chat-container\">\n <dc-chat-header\n [agentCard]=\"agentCard\"\n (showInfoEvent)=\"showInfo()\"\n (settingsClickEvent)=\"changeUserChatSettings()\"\n (restartConversationEvent)=\"restartConversation($event)\"\n (completeEvent)=\"complete()\">\n </dc-chat-header>\n\n <dc-chat-messages-list [chatUserSettings]=\"chatUserSettings\"> </dc-chat-messages-list>\n\n <dc-chat-footer [micSettings]=\"micSettings\"> </dc-chat-footer>\n</div>\n", styles: ["::ng-deep .p-drawer-content{padding:0!important}::ng-deep .p-dialog-content{display:contents}.chat-container{display:flex;flex-direction:column;height:100%;max-height:100vh;overflow:hidden;background-color:transparent}dc-chat-messages-list{flex:1;overflow-y:auto;padding:.5rem}.score-container{padding:.5rem 1rem;background-color:var(--surface-card, #ffffff);border-top:1px solid var(--surface-border, #dee2e6)}.info-content{max-height:70vh;overflow-y:auto;padding:1rem}.info-content h3{margin-top:1rem;margin-bottom:.5rem;font-size:1.2rem}.info-content pre{background-color:var(--surface-hover, #f1f1f1);padding:1rem;border-radius:4px;overflow-x:auto;font-size:.9rem}\n"] }]
4758
4770
  }], ctorParameters: () => [], propDecorators: { chatFooterComponent: [{
4759
4771
  type: ViewChild,
4760
4772
  args: [ChatFooterComponent]
@@ -7172,21 +7184,19 @@ class DcAgentCardDetailsComponent {
7172
7184
  this.route = inject(ActivatedRoute);
7173
7185
  this.toastService = inject(TOAST_ALERTS_TOKEN);
7174
7186
  this.chatMonitorService = inject(ChatMonitorService);
7187
+ this.conversationFlowStateService = inject(ConversationFlowStateService);
7175
7188
  this.userService = inject(UserService);
7176
7189
  this.videoPlayerService = inject(VideoPlayerService);
7177
7190
  this.agentCardId = '';
7178
7191
  this.onStartConversation = output();
7179
7192
  this.agentCard = signal(undefined, ...(ngDevMode ? [{ debugName: "agentCard" }] : []));
7180
7193
  this.showInfoLayer = signal(false, ...(ngDevMode ? [{ debugName: "showInfoLayer" }] : []));
7181
- effect(() => {
7182
- const mood = this.chatMonitorService.currentMood();
7194
+ this.moodSubscription = this.conversationFlowStateService.moodUpdated$.subscribe((mood) => {
7183
7195
  const card = this.agentCard();
7184
7196
  if (mood && card?.assets?.motions) {
7185
- const motions = mood
7186
- .map((currentMood) => card.assets.motions.find((m) => m.metadata?.moodState === currentMood)?.url)
7187
- .filter((url) => !!url);
7188
- if (motions.length > 0) {
7189
- this.videoPlayerService.addVideosToQueue(motions);
7197
+ const motionUrl = card.assets.motions.find((m) => m.metadata?.moodState === mood)?.url;
7198
+ if (motionUrl) {
7199
+ this.videoPlayerService.addVideosToQueue([motionUrl]);
7190
7200
  this.videoPlayerService.playAndRewind();
7191
7201
  }
7192
7202
  }
@@ -7201,6 +7211,7 @@ class DcAgentCardDetailsComponent {
7201
7211
  ngOnDestroy() {
7202
7212
  this.videoPlayerService.cleanUp();
7203
7213
  this.chatMonitorService.setBackground(undefined);
7214
+ this.moodSubscription?.unsubscribe();
7204
7215
  }
7205
7216
  ngAfterViewInit() {
7206
7217
  if (this.videoPlayer) {
@@ -7659,5 +7670,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
7659
7670
  * Generated bundle index. Do not edit.
7660
7671
  */
7661
7672
 
7662
- export { ACCDataGenerationComponent, AGENT_CARDS_STATE_SERVICE, AIGenerationService, AgentCardListComponent, AgentCardUI, AgentCardsGenerationService, AudioService, AudioSpeed, BACKGROUND_SERVICE_TOKEN, CONVERSATION_AI_TOKEN, CardsCreatorComponent, ChatEngineTestComponent, ChatEventType, ChatMessage, ChatMessageOrchestratorComponent, ChatMonitorService, ChatRole, ConditionOperator, ConditionType, ContextEngineService, ContextType, ConversationDTO, ConversationEvents, ConversationMessagesDTO, ConversationPromptBuilderService, ConversationRuleService, ConversationRulesComponent, ConversationType, ConversationTypeOptions, DCAgentCardFormComponent, DCChatComponent, DCConversationUserChatSettingsComponent, DcAgentCardDetailsComponent, DefaultAgentCardsService, DoActionTypeOptions, DynamicFlowService, DynamicFlowTaskTypeOptions, EAccountsPlatform, EAgentType, EDoActionType, EDynamicFlowTaskType, EntityThen, EntityWhatOptions, EntityWhenOptions, EvalResultStringDefinition, GlobalToolsService, MessageContent, MessageContentDisplayer, MessagesStateService, ModelSelectorComponent, PopupService, PromptPreviewComponent, SectionType, SystemPromptType, TextEngineOptions, TextEngines, VIDEO_PLAYER_SERVICE_TOKEN, VideoPlayerService, VoiceTTSOption, VoiceTTSOptions, WordTimestamps, buildObjectTTSRequest, characterCardStringDataDefinition, convertToHTML, createAIModelFormGroup, defaultconvUserSettings, extractAudioAndTranscription, extractJsonFromResponse, getMoodStateLabelsAsString, getMoodStatePrompt, markdownToHtml, matchTranscription, provideAgentCardService, removeEmojis, removeEmojisAndSpecialCharacters, removeSpecialCharacters };
7673
+ export { ACCDataGenerationComponent, AGENT_CARDS_STATE_SERVICE, AIGenerationService, AgentCardListComponent, AgentCardUI, AgentCardsGenerationService, AudioService, AudioSpeed, BACKGROUND_SERVICE_TOKEN, CONVERSATION_AI_TOKEN, CardsCreatorComponent, ChatEngineTestComponent, ChatEventType, ChatMessage, ChatMessageOrchestratorComponent, ChatMonitorService, ChatRole, ConditionOperator, ConditionType, ContextEngineService, ContextType, ConversationDTO, ConversationEvents, ConversationFlowStateService, ConversationMessagesDTO, ConversationPromptBuilderService, ConversationRuleService, ConversationRulesComponent, ConversationType, ConversationTypeOptions, DCAgentCardFormComponent, DCChatComponent, DCConversationUserChatSettingsComponent, DcAgentCardDetailsComponent, DefaultAgentCardsService, DoActionTypeOptions, DynamicFlowService, DynamicFlowTaskTypeOptions, EAccountsPlatform, EAgentType, EDoActionType, EDynamicFlowTaskType, EntityThen, EntityWhatOptions, EntityWhenOptions, EvalResultStringDefinition, GlobalToolsService, MessageContent, MessageContentDisplayer, MessagesStateService, ModelSelectorComponent, PopupService, PromptPreviewComponent, SectionType, SystemPromptType, TextEngineOptions, TextEngines, VIDEO_PLAYER_SERVICE_TOKEN, VideoPlayerService, VoiceTTSOption, VoiceTTSOptions, WordTimestamps, buildObjectTTSRequest, characterCardStringDataDefinition, convertToHTML, createAIModelFormGroup, defaultconvUserSettings, extractAudioAndTranscription, extractJsonFromResponse, getMoodStateLabelsAsString, getMoodStatePrompt, markdownToHtml, matchTranscription, provideAgentCardService, removeEmojis, removeEmojisAndSpecialCharacters, removeSpecialCharacters };
7663
7674
  //# sourceMappingURL=dataclouder-ngx-agent-cards.mjs.map