@dataclouder/ngx-agent-cards 0.0.84 → 0.0.86
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/fesm2022/dataclouder-ngx-agent-cards.mjs +1515 -578
- package/fesm2022/dataclouder-ngx-agent-cards.mjs.map +1 -1
- package/lib/components/audio-text-sync/audio-text-sync.component.d.ts +42 -0
- package/lib/components/chat/chat.models.d.ts +2 -0
- package/lib/components/chat/dc-chat.component.d.ts +5 -7
- package/lib/components/chat-container/chat-container.component.d.ts +66 -0
- package/lib/components/chat-container/chat-footer/chat-footer.component.d.ts +30 -0
- package/lib/components/chat-container/chat-header/chat-header.component.d.ts +20 -0
- package/lib/components/chat-container/chat-messages-list/chat-message/chat-message.component.d.ts +30 -0
- package/lib/components/chat-container/chat-messages-list/chat-message/chat-message.utils.d.ts +3 -0
- package/lib/components/chat-container/chat-messages-list/chat-message/message-content/message-content.component.d.ts +24 -0
- package/lib/components/chat-container/chat-messages-list/chat-message/multi-message-content/multi-message-content.d.ts +22 -0
- package/lib/components/chat-container/chat-messages-list/chat-messages-list.component.d.ts +13 -0
- package/lib/components/dc-agent-card-details/dc-agent-card-details.component.d.ts +8 -4
- package/lib/components/dc-agent-card-lists/agent-card-default-ui/agent-card-default-ui.component.d.ts +2 -1
- package/lib/components/dc-agent-card-lists/dc-agent-card-lists.component.d.ts +3 -5
- package/lib/components/dc-agent-form/dc-agent-card-form.component.d.ts +12 -8
- package/lib/components/icons/icon-map.d.ts +0 -3
- package/lib/models/agent.models.d.ts +11 -15
- package/lib/models/conversation-enums.d.ts +2 -0
- package/lib/pipes/parse-card.pipe.d.ts +10 -0
- package/lib/services/audio-text-sync.service.d.ts +57 -0
- package/lib/services/conversation.service.d.ts +31 -0
- package/lib/services/dc-conversation-builder.service.d.ts +6 -1
- package/lib/services/evaluation.service.d.ts +17 -0
- package/lib/services/message-processing.service.d.ts +11 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -1
- package/lib/components/chat-message/chat-message.component.d.ts +0 -28
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ChangeDetectorRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { HighlightedWord } from '../../services/audio-text-sync.service';
|
|
3
|
+
import { MessageAudio } from '../../models/agent.models';
|
|
4
|
+
import { AudioTextSyncService } from '../../services/audio-text-sync.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AudioTextSyncComponent implements OnInit {
|
|
7
|
+
private cdr;
|
|
8
|
+
private audioTextSyncService;
|
|
9
|
+
message: MessageAudio;
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
playAudio: EventEmitter<MessageAudio>;
|
|
12
|
+
highlightedWords: import("@angular/core").WritableSignal<HighlightedWord[]>;
|
|
13
|
+
private messageId;
|
|
14
|
+
private injector;
|
|
15
|
+
constructor(cdr: ChangeDetectorRef, audioTextSyncService: AudioTextSyncService);
|
|
16
|
+
/**
|
|
17
|
+
* Check if the message has transcription timestamps
|
|
18
|
+
*/
|
|
19
|
+
get hasTranscription(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Get the message text content
|
|
22
|
+
*/
|
|
23
|
+
get messageText(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Track function for ngFor to improve performance
|
|
26
|
+
* @param index The current item's index
|
|
27
|
+
* @param item The current item
|
|
28
|
+
*/
|
|
29
|
+
trackByIndex(index: number, item: any): number;
|
|
30
|
+
ngOnInit(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Generate a unique ID for this message instance
|
|
33
|
+
* Uses message content/text and a timestamp to ensure uniqueness
|
|
34
|
+
*/
|
|
35
|
+
private generateMessageId;
|
|
36
|
+
/**
|
|
37
|
+
* Emit event to play the audio message
|
|
38
|
+
*/
|
|
39
|
+
onPlayMessage(): void;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudioTextSyncComponent, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AudioTextSyncComponent, "dc-audio-text-sync", never, { "message": { "alias": "message"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, { "playAudio": "playAudio"; }, never, never, true, never>;
|
|
42
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { FormControl } from '@angular/forms';
|
|
3
2
|
import { DialogService } from 'primeng/dynamicdialog';
|
|
4
3
|
import { ToastAlertsAbstractService } from '@dataclouder/ngx-core';
|
|
5
4
|
import { MicSettings } from '@dataclouder/ngx-mic';
|
|
@@ -25,13 +24,14 @@ export declare class DCChatComponent implements OnInit {
|
|
|
25
24
|
messages: ChatMessage[];
|
|
26
25
|
imageUser: string;
|
|
27
26
|
thinkingImg: string;
|
|
27
|
+
aiIcon: string;
|
|
28
28
|
isDestroyed: boolean;
|
|
29
29
|
score: number;
|
|
30
|
+
isAdmin: boolean;
|
|
31
|
+
isInfoVisible: boolean;
|
|
30
32
|
isChatSettingsVisible: boolean;
|
|
31
|
-
chatInputControl: FormControl;
|
|
32
33
|
isAIThinking: boolean;
|
|
33
34
|
isUserTalking: boolean;
|
|
34
|
-
aiIcon: string;
|
|
35
35
|
user: any;
|
|
36
36
|
isGettingTranscription: boolean;
|
|
37
37
|
private defaultVoice;
|
|
@@ -39,20 +39,18 @@ export declare class DCChatComponent implements OnInit {
|
|
|
39
39
|
alternativeConversation: IAgentCard[];
|
|
40
40
|
ngOnInit(): Promise<void>;
|
|
41
41
|
private buildChatMessage;
|
|
42
|
-
|
|
42
|
+
changeUserChatSettings(): void;
|
|
43
43
|
ngOnDestroy(): void;
|
|
44
44
|
setAIthinking(): void;
|
|
45
45
|
sendUserMessage(message?: ChatMessage): Promise<void>;
|
|
46
46
|
sendCurrentConversation(): Promise<void>;
|
|
47
47
|
private getVoice;
|
|
48
|
-
setInputText(text:
|
|
48
|
+
setInputText(text: string): void;
|
|
49
49
|
micFinished(eventBlob: any): Promise<void>;
|
|
50
50
|
playMessage(message: ChatMessage): void;
|
|
51
51
|
subsItalicsByTag(text: any, voiceId?: string, tagName?: string): any;
|
|
52
52
|
private processMultiMessages;
|
|
53
|
-
isInfoVisible: boolean;
|
|
54
53
|
showInfo(): void;
|
|
55
|
-
changeConversationCard(): Promise<void>;
|
|
56
54
|
restartConversation(conversation?: IAgentCard): Promise<void>;
|
|
57
55
|
private evaluateConversation;
|
|
58
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<DCChatComponent, never>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { DialogService } from 'primeng/dynamicdialog';
|
|
3
|
+
import { ToastAlertsAbstractService } from '@dataclouder/ngx-core';
|
|
4
|
+
import { MicSettings } from '@dataclouder/ngx-mic';
|
|
5
|
+
import { ChatUserSettings, IAgentCard, IMiniAgentCard, ChatMessage } from '../../models/agent.models';
|
|
6
|
+
import { AgentCardsAbstractService } from '../../models/conversation-ai.class';
|
|
7
|
+
import { DCConversationPromptBuilderService } from '../../services/dc-conversation-builder.service';
|
|
8
|
+
import { ConversationService } from '../../services/conversation.service';
|
|
9
|
+
import { EvaluationService } from '../../services/evaluation.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export declare class ChatContainerComponent implements OnInit, OnDestroy {
|
|
12
|
+
private agentCardService;
|
|
13
|
+
private toastService;
|
|
14
|
+
private conversationBuilder;
|
|
15
|
+
private dialogService;
|
|
16
|
+
private conversationService;
|
|
17
|
+
private evaluationService;
|
|
18
|
+
chatUserSettings: ChatUserSettings;
|
|
19
|
+
agentCard: IAgentCard;
|
|
20
|
+
evaluatorAgentCard: IMiniAgentCard;
|
|
21
|
+
parseDict: {
|
|
22
|
+
[key: string]: string;
|
|
23
|
+
};
|
|
24
|
+
sendMessage: EventEmitter<string>;
|
|
25
|
+
micSettings: MicSettings;
|
|
26
|
+
imageUser: string;
|
|
27
|
+
thinkingImg: string;
|
|
28
|
+
aiIcon: string;
|
|
29
|
+
isInfoVisible: boolean;
|
|
30
|
+
isChatSettingsVisible: boolean;
|
|
31
|
+
isUserTalking: boolean;
|
|
32
|
+
isGettingTranscription: boolean;
|
|
33
|
+
isAdmin: boolean;
|
|
34
|
+
messages: import("@angular/core").Signal<ChatMessage[]>;
|
|
35
|
+
isThinking: import("@angular/core").Signal<boolean>;
|
|
36
|
+
score: import("@angular/core").Signal<number>;
|
|
37
|
+
constructor(agentCardService: AgentCardsAbstractService, toastService: ToastAlertsAbstractService, conversationBuilder: DCConversationPromptBuilderService, dialogService: DialogService, conversationService: ConversationService, evaluationService: EvaluationService);
|
|
38
|
+
ngOnInit(): Promise<void>;
|
|
39
|
+
ngOnDestroy(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Handle user message from chat footer
|
|
42
|
+
*/
|
|
43
|
+
onUserMessage(message: ChatMessage): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Handle microphone input finished
|
|
46
|
+
*/
|
|
47
|
+
onMicFinished(eventBlob: any): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Open chat settings dialog
|
|
50
|
+
*/
|
|
51
|
+
changeUserChatSettings(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Show debug info
|
|
54
|
+
*/
|
|
55
|
+
showInfo(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Restart conversation
|
|
58
|
+
*/
|
|
59
|
+
restartConversation(conversation?: IAgentCard | null): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Evaluate conversation using evaluator agent
|
|
62
|
+
*/
|
|
63
|
+
private evaluateConversation;
|
|
64
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatContainerComponent, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatContainerComponent, "dc-chat", never, { "chatUserSettings": { "alias": "chatUserSettings"; "required": false; }; "agentCard": { "alias": "agentCard"; "required": false; }; "evaluatorAgentCard": { "alias": "evaluatorAgentCard"; "required": false; }; "parseDict": { "alias": "parseDict"; "required": false; }; }, { "sendMessage": "sendMessage"; }, never, never, true, never>;
|
|
66
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { MicSettings } from '@dataclouder/ngx-mic';
|
|
4
|
+
import { ChatMessage } from '../../../models/agent.models';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ChatFooterComponent {
|
|
7
|
+
isAIThinking: boolean;
|
|
8
|
+
score: number;
|
|
9
|
+
micSettings: MicSettings;
|
|
10
|
+
sendMessage: EventEmitter<ChatMessage>;
|
|
11
|
+
textInputChanged: EventEmitter<string>;
|
|
12
|
+
micFinishedEvent: EventEmitter<any>;
|
|
13
|
+
chatInputControl: FormControl;
|
|
14
|
+
/**
|
|
15
|
+
* Sets the input text in the textarea
|
|
16
|
+
* @param text The text to set
|
|
17
|
+
*/
|
|
18
|
+
setInputText(text: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Handles the mic finished event
|
|
21
|
+
* @param eventBlob The blob event from the mic component
|
|
22
|
+
*/
|
|
23
|
+
micFinished(eventBlob: any): void;
|
|
24
|
+
/**
|
|
25
|
+
* Sends the user message
|
|
26
|
+
*/
|
|
27
|
+
sendUserMessage(): void;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatFooterComponent, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatFooterComponent, "dc-chat-footer", never, { "isAIThinking": { "alias": "isAIThinking"; "required": false; }; "score": { "alias": "score"; "required": false; }; "micSettings": { "alias": "micSettings"; "required": false; }; }, { "sendMessage": "sendMessage"; "textInputChanged": "textInputChanged"; "micFinishedEvent": "micFinishedEvent"; }, never, never, true, never>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { IAgentCard } from '../../../models/agent.models';
|
|
3
|
+
import { AgentCardsAbstractService } from '../../../models/conversation-ai.class';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ChatHeaderComponent {
|
|
6
|
+
private agentCardService;
|
|
7
|
+
isAdmin: boolean;
|
|
8
|
+
alternativeConversation: IAgentCard[];
|
|
9
|
+
agentCard: IAgentCard;
|
|
10
|
+
restartConversationEvent: EventEmitter<IAgentCard>;
|
|
11
|
+
showInfoEvent: EventEmitter<void>;
|
|
12
|
+
settingsClickEvent: EventEmitter<void>;
|
|
13
|
+
constructor(agentCardService: AgentCardsAbstractService);
|
|
14
|
+
restartConversation(conversation?: IAgentCard | null): void;
|
|
15
|
+
showInfo(): void;
|
|
16
|
+
settingsClick(): void;
|
|
17
|
+
changeConversationCard(): Promise<void>;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatHeaderComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatHeaderComponent, "dc-chat-header", never, { "isAdmin": { "alias": "isAdmin"; "required": false; }; "alternativeConversation": { "alias": "alternativeConversation"; "required": false; }; "agentCard": { "alias": "agentCard"; "required": false; }; }, { "restartConversationEvent": "restartConversationEvent"; "showInfoEvent": "showInfoEvent"; "settingsClickEvent": "settingsClickEvent"; }, never, never, true, never>;
|
|
20
|
+
}
|
package/lib/components/chat-container/chat-messages-list/chat-message/chat-message.component.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { OnInit, WritableSignal } from '@angular/core';
|
|
2
|
+
import { ChatMessage, ChatMultiMessage, ChatUserSettings, MessageAudio } from '../../../../models/agent.models';
|
|
3
|
+
import { AgentCardsAbstractService } from '../../../../models/conversation-ai.class';
|
|
4
|
+
import { AudioService } from '../../../../services/audio.service';
|
|
5
|
+
import { AudioTextSyncService } from '../../../../services/audio-text-sync.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class ChatMessageComponent implements OnInit {
|
|
8
|
+
private audioService;
|
|
9
|
+
private agentCardService;
|
|
10
|
+
private audioTextSyncService;
|
|
11
|
+
chatMessage: ChatMessage;
|
|
12
|
+
chatUserSettings: ChatUserSettings;
|
|
13
|
+
private readonly destroyRef;
|
|
14
|
+
conversationChatSettings: WritableSignal<ChatUserSettings | null>;
|
|
15
|
+
isLoading: WritableSignal<boolean>;
|
|
16
|
+
constructor(audioService: AudioService, agentCardService: AgentCardsAbstractService, audioTextSyncService: AudioTextSyncService);
|
|
17
|
+
ngOnInit(): Promise<void>;
|
|
18
|
+
generateAndPlayAudio(message: ChatMessage, overwriteText?: string | null): Promise<void>;
|
|
19
|
+
playMessage(message: MessageAudio): HTMLAudioElement | null;
|
|
20
|
+
/**
|
|
21
|
+
* Generate a unique ID for a message
|
|
22
|
+
* Uses message content/text and a timestamp to ensure uniqueness
|
|
23
|
+
*/
|
|
24
|
+
private generateMessageId;
|
|
25
|
+
generateAndPlayAllAudios(multiMessages: ChatMultiMessage[]): void;
|
|
26
|
+
private preloadNextMessageAudio;
|
|
27
|
+
private buildObjectTTSRequest;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatMessageComponent, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatMessageComponent, "dc-chat-message", never, { "chatMessage": { "alias": "chatMessage"; "required": false; }; "chatUserSettings": { "alias": "chatUserSettings"; "required": false; }; }, {}, never, never, true, never>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AudioGenerated, ChatMessage, ChatMultiMessage } from '../../../../models/agent.models';
|
|
2
|
+
export declare function matchTranscription(originalText: string, transcription: any[]): any[];
|
|
3
|
+
export declare function extractAudioAndTranscription(message: ChatMessage | ChatMultiMessage, audio: AudioGenerated): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { MessageAudio } from '../../../../../models/agent.models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class MessageContentComponent implements OnInit {
|
|
5
|
+
message: MessageAudio;
|
|
6
|
+
isLoading: boolean;
|
|
7
|
+
playAudio: EventEmitter<MessageAudio>;
|
|
8
|
+
constructor();
|
|
9
|
+
get hasTranscription(): boolean;
|
|
10
|
+
get messageText(): string;
|
|
11
|
+
get messageTag(): string | string[] | Set<string> | {
|
|
12
|
+
[klass: string]: any;
|
|
13
|
+
} | null;
|
|
14
|
+
onPlayMessage(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Track function for ngFor to improve performance
|
|
17
|
+
* @param index The current item's index
|
|
18
|
+
* @param item The current item
|
|
19
|
+
*/
|
|
20
|
+
trackByIndex(index: number, item: any): number;
|
|
21
|
+
ngOnInit(): void;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MessageContentComponent, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageContentComponent, "dc-message-content", never, { "message": { "alias": "message"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, { "playAudio": "playAudio"; }, never, never, true, never>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { ChatMultiMessage } from '../../../../../models/agent.models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class MultiMessageContentComponent implements OnInit {
|
|
5
|
+
messages: ChatMultiMessage[];
|
|
6
|
+
isLoading: boolean;
|
|
7
|
+
playAudio: EventEmitter<ChatMultiMessage>;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Checks if a message has transcription timestamps
|
|
11
|
+
* @param message The message to check
|
|
12
|
+
*/
|
|
13
|
+
hasTranscription(message: ChatMultiMessage): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Emits the playAudio event with the selected message
|
|
16
|
+
* @param message The message to play
|
|
17
|
+
*/
|
|
18
|
+
onPlayMessage(message: ChatMultiMessage): void;
|
|
19
|
+
ngOnInit(): void;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiMessageContentComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiMessageContentComponent, "dc-multi-message-content", never, { "messages": { "alias": "messages"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, { "playAudio": "playAudio"; }, never, never, true, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ChatMessage, ChatUserSettings } from '../../../models/agent.models';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class ChatMessagesListComponent {
|
|
4
|
+
chatUserSettings: ChatUserSettings;
|
|
5
|
+
thinkingImg: string;
|
|
6
|
+
aiIcon: string;
|
|
7
|
+
private conversationService;
|
|
8
|
+
messages: import("@angular/core").Signal<ChatMessage[]>;
|
|
9
|
+
isThinking: import("@angular/core").Signal<boolean>;
|
|
10
|
+
trackByMessage(index: number, message: ChatMessage): string;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatMessagesListComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatMessagesListComponent, "dc-chat-messages-list", never, { "chatUserSettings": { "alias": "chatUserSettings"; "required": false; }; "thinkingImg": { "alias": "thinkingImg"; "required": false; }; }, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
@@ -2,17 +2,21 @@ import { ChangeDetectorRef, EventEmitter, OnInit } from '@angular/core';
|
|
|
2
2
|
import { AgentCardsAbstractService } from '../../models/conversation-ai.class';
|
|
3
3
|
import { IAgentCard } from '../../models/agent.models';
|
|
4
4
|
import { ActivatedRoute } from '@angular/router';
|
|
5
|
+
import { UserDataExchangeAbstractService } from '../../models/user-data-exchange';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class DcAgentCardDetailsComponent implements OnInit {
|
|
7
8
|
private agentCardService;
|
|
8
9
|
private route;
|
|
9
10
|
private cdr;
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
private userDataExchange;
|
|
12
|
+
constructor(agentCardService: AgentCardsAbstractService, route: ActivatedRoute, cdr: ChangeDetectorRef, userDataExchange: UserDataExchangeAbstractService);
|
|
13
|
+
agentCardId: string;
|
|
12
14
|
onStartConversation: EventEmitter<any>;
|
|
13
|
-
|
|
15
|
+
agentCard: IAgentCard;
|
|
14
16
|
ngOnInit(): Promise<void>;
|
|
15
17
|
startConversation(): void;
|
|
18
|
+
toggleInfoLayer(): void;
|
|
19
|
+
showInfoLayer: boolean;
|
|
16
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<DcAgentCardDetailsComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DcAgentCardDetailsComponent, "dc-agent-card-details", never, { "
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DcAgentCardDetailsComponent, "dc-agent-card-details", never, { "agentCardId": { "alias": "agentCardId"; "required": false; }; }, { "onStartConversation": "onStartConversation"; }, never, never, true, never>;
|
|
18
22
|
}
|
|
@@ -6,6 +6,7 @@ export declare class DCConversationCardUIComponent implements OnInit {
|
|
|
6
6
|
speedDialModel: MenuItem[];
|
|
7
7
|
ngOnInit(): void;
|
|
8
8
|
card: IAgentCard;
|
|
9
|
+
showOptions: boolean;
|
|
9
10
|
onCardAction: EventEmitter<{
|
|
10
11
|
event: string;
|
|
11
12
|
card: IAgentCard;
|
|
@@ -14,5 +15,5 @@ export declare class DCConversationCardUIComponent implements OnInit {
|
|
|
14
15
|
onEdit(): void;
|
|
15
16
|
onDelete(): void;
|
|
16
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<DCConversationCardUIComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DCConversationCardUIComponent, "dc-agent-card-default-ui", never, { "card": { "alias": "card"; "required": false; }; }, { "onCardAction": "onCardAction"; }, never, never, true, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DCConversationCardUIComponent, "dc-agent-card-default-ui", never, { "card": { "alias": "card"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; }, { "onCardAction": "onCardAction"; }, never, never, true, never>;
|
|
18
19
|
}
|
|
@@ -14,6 +14,7 @@ export declare class AgentCardListComponent extends PaginationBase implements On
|
|
|
14
14
|
private cdr;
|
|
15
15
|
viewMode: 'cards' | 'table';
|
|
16
16
|
customCardComponent?: Type<DCConversationCardUIComponent>;
|
|
17
|
+
showOptions?: boolean;
|
|
17
18
|
gridLayout: boolean;
|
|
18
19
|
getCustomButtons: (card: IAgentCard) => MenuItem[];
|
|
19
20
|
outlets: QueryList<NgComponentOutlet>;
|
|
@@ -35,13 +36,10 @@ export declare class AgentCardListComponent extends PaginationBase implements On
|
|
|
35
36
|
}): Promise<void>;
|
|
36
37
|
deleteCard(id: string): Promise<void>;
|
|
37
38
|
protected loadData(): Promise<void>;
|
|
38
|
-
doFilterBarAction({ action, item }:
|
|
39
|
-
action: string;
|
|
40
|
-
item: MenuItem | null;
|
|
41
|
-
}): void;
|
|
39
|
+
doFilterBarAction({ action, item }: OnActionEvent): void;
|
|
42
40
|
search(text: string): Promise<void>;
|
|
43
41
|
filterChange(filters: FiltersConfig): Promise<void>;
|
|
44
42
|
onCardAction(actionEvent: OnActionEvent): void;
|
|
45
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<AgentCardListComponent, never>;
|
|
46
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AgentCardListComponent, "dc-agent-card-lists", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "customCardComponent": { "alias": "customCardComponent"; "required": false; }; "gridLayout": { "alias": "gridLayout"; "required": false; }; "getCustomButtons": { "alias": "getCustomButtons"; "required": false; }; }, {}, never, never, true, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AgentCardListComponent, "dc-agent-card-lists", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "customCardComponent": { "alias": "customCardComponent"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; "gridLayout": { "alias": "gridLayout"; "required": false; }; "getCustomButtons": { "alias": "getCustomButtons"; "required": false; }; }, {}, never, never, true, never>;
|
|
47
45
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
2
|
import { FormBuilder, FormArray } from '@angular/forms';
|
|
3
3
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { ToastAlertsAbstractService } from '@dataclouder/ngx-core';
|
|
4
|
+
import { AudioSpeed, ToastAlertsAbstractService } from '@dataclouder/ngx-core';
|
|
5
5
|
import { StorageImageSettings, MultiImagesStorageService } from '@dataclouder/ngx-cloud-storage';
|
|
6
6
|
import { DCConversationPromptBuilderService } from '../../services/dc-conversation-builder.service';
|
|
7
7
|
import { DialogService } from 'primeng/dynamicdialog';
|
|
@@ -37,6 +37,10 @@ export declare class DCAgentCardFormComponent implements OnInit {
|
|
|
37
37
|
conversation: IAgentCard;
|
|
38
38
|
agentCardId: string;
|
|
39
39
|
imageSettings: any;
|
|
40
|
+
audioSpeedOptions: {
|
|
41
|
+
label: string;
|
|
42
|
+
value: AudioSpeed;
|
|
43
|
+
}[];
|
|
40
44
|
storageSettings: StorageImageSettings;
|
|
41
45
|
bannerImgSettings: StorageImageSettings;
|
|
42
46
|
imageStorageSettings: StorageImageSettings;
|
|
@@ -71,14 +75,14 @@ export declare class DCAgentCardFormComponent implements OnInit {
|
|
|
71
75
|
textEngine: import("@angular/forms").FormControl<TextEngines>;
|
|
72
76
|
conversationType: import("@angular/forms").FormControl<ConversationType>;
|
|
73
77
|
autoStart: import("@angular/forms").FormControl<boolean>;
|
|
78
|
+
tts: import("@angular/forms").FormGroup<{
|
|
79
|
+
voice: import("@angular/forms").FormControl<string>;
|
|
80
|
+
secondaryVoice: import("@angular/forms").FormControl<string>;
|
|
81
|
+
speed: import("@angular/forms").FormControl<string>;
|
|
82
|
+
speedRate: import("@angular/forms").FormControl<number>;
|
|
83
|
+
}>;
|
|
74
84
|
}>;
|
|
75
85
|
lang: import("@angular/forms").FormControl<string>;
|
|
76
|
-
tts: import("@angular/forms").FormGroup<{
|
|
77
|
-
voice: import("@angular/forms").FormControl<string>;
|
|
78
|
-
secondaryVoice: import("@angular/forms").FormControl<string>;
|
|
79
|
-
speed: import("@angular/forms").FormControl<string>;
|
|
80
|
-
speedRate: import("@angular/forms").FormControl<number>;
|
|
81
|
-
}>;
|
|
82
86
|
metaApp: import("@angular/forms").FormGroup<{
|
|
83
87
|
isPublished: import("@angular/forms").FormControl<boolean>;
|
|
84
88
|
isPublic: import("@angular/forms").FormControl<boolean>;
|
|
@@ -117,5 +121,5 @@ export declare class DCAgentCardFormComponent implements OnInit {
|
|
|
117
121
|
private extractJsonFromResponse;
|
|
118
122
|
removeSticker(sticker: any): Promise<void>;
|
|
119
123
|
static ɵfac: i0.ɵɵFactoryDeclaration<DCAgentCardFormComponent, [null, null, null, null, null, null, null, null, { optional: true; }]>;
|
|
120
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DCAgentCardFormComponent, "dc-
|
|
124
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DCAgentCardFormComponent, "dc-agent-form", never, { "storageSettings": { "alias": "storageSettings"; "required": false; }; "bannerImgSettings": { "alias": "bannerImgSettings"; "required": false; }; "imageStorageSettings": { "alias": "imageStorageSettings"; "required": false; }; }, { "onImageLoaded": "onImageLoaded"; "onSave": "onSave"; "onGoDetails": "onGoDetails"; "onTranslate": "onTranslate"; }, never, never, true, never>;
|
|
121
125
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export declare const ICONS: {
|
|
2
|
-
readonly gear: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\">\n <path d=\"M12 1.75a1.25 1.25 0 0 1 1.25 1.25v.917a8.456 8.456 0 0 1 2.334.98l.645-.647a1.25 1.25 0 1 1 1.768 1.768l-.646.645c.389.69.729 1.437.98 2.334h.917a1.25 1.25 0 0 1 0 2.5h-.917a8.456 8.456 0 0 1-.98 2.334l.646.645a1.25 1.25 0 1 1-1.768 1.768l-.645-.646a8.456 8.456 0 0 1-2.334.98v.917a1.25 1.25 0 0 1-2.5 0v-.917a8.456 8.456 0 0 1-2.334-.98l-.645.646a1.25 1.25 0 1 1-1.768-1.768l.646-.645a8.456 8.456 0 0 1-.98-2.334H1.75a1.25 1.25 0 0 1 0-2.5h.917a8.456 8.456 0 0 1 .98-2.334l-.646-.645a1.25 1.25 0 1 1 1.768-1.768l.645.647c.69-.389 1.437-.729 2.334-.98V3a1.25 1.25 0 0 1 1.25-1.25h.083ZM12 7.5a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9Z\"/>\n </svg>\n ";
|
|
3
2
|
readonly chat: "<svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c...\" />\n </svg>";
|
|
4
3
|
readonly play: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"#263042\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <polygon points=\"10 8 16 12 10 16 10 8\"></polygon>\n </svg>";
|
|
5
4
|
readonly loading: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"#263042\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"6\"></line>\n <line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"22\"></line>\n <line x1=\"4.93\" y1=\"4.93\" x2=\"7.76\" y2=\"7.76\"></line>\n <line x1=\"16.24\" y1=\"16.24\" x2=\"19.07\" y2=\"19.07\"></line>\n <line x1=\"2\" y1=\"12\" x2=\"6\" y2=\"12\"></line>\n <line x1=\"18\" y1=\"12\" x2=\"22\" y2=\"12\"></line>\n <line x1=\"4.93\" y1=\"19.07\" x2=\"7.76\" y2=\"16.24\"></line>\n <line x1=\"16.24\" y1=\"7.76\" x2=\"19.07\" y2=\"4.93\"></line>\n </svg>";
|
|
6
|
-
readonly user: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <!-- Head circle -->\n <circle cx=\"12\" cy=\"8\" r=\"4\" fill=\"currentColor\"/>\n \n <!-- Body shape -->\n <path d=\"M20 19v1a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1c0-3.87 3.13-7 7-7h2c3.87 0 7 3.13 7 7z\" fill=\"currentColor\"/>\n</svg>";
|
|
7
|
-
readonly ai: "<svg \n xmlns=\"http://www.w3.org/2000/svg\" \n viewBox=\"0 0 100 100\" \n width=\"100\" \n height=\"100\" \n fill=\"none\" \n stroke=\"black\" \n stroke-width=\"2\"\n>\n <!-- Brain outline -->\n <path \n d=\"M50 10\n C60 10, 70 20, 70 30\n S60 50, 50 50\n S30 40, 30 30\n S40 10, 50 10Z\"\n fill=\"#B3E5FC\"\n />\n \n <!-- Circuit lines -->\n <line x1=\"50\" y1=\"50\" x2=\"50\" y2=\"70\" stroke=\"#0288D1\" stroke-width=\"2\" />\n <line x1=\"50\" y1=\"70\" x2=\"40\" y2=\"80\" stroke=\"#0288D1\" stroke-width=\"2\" />\n <line x1=\"50\" y1=\"70\" x2=\"60\" y2=\"80\" stroke=\"#0288D1\" stroke-width=\"2\" />\n \n <!-- Nodes -->\n <circle cx=\"50\" cy=\"70\" r=\"2\" fill=\"#0288D1\" />\n <circle cx=\"40\" cy=\"80\" r=\"3\" fill=\"#0288D1\" />\n <circle cx=\"60\" cy=\"80\" r=\"3\" fill=\"#0288D1\" />\n</svg>\n";
|
|
8
5
|
};
|
|
9
6
|
export type IconName = keyof typeof ICONS;
|
|
@@ -50,6 +50,7 @@ export interface IConversationSettings {
|
|
|
50
50
|
last_prompt?: string;
|
|
51
51
|
voice?: string;
|
|
52
52
|
secondaryVoice?: string;
|
|
53
|
+
repeatRecording?: boolean;
|
|
53
54
|
}
|
|
54
55
|
export type IConversationSettingsDTO = Pick<IConversationSettings, 'messages' | 'textEngine' | 'conversationType'> & {
|
|
55
56
|
model?: IAIModel;
|
|
@@ -74,7 +75,6 @@ export interface IAgentCard {
|
|
|
74
75
|
assets?: IAgentAssets;
|
|
75
76
|
characterCard?: ICharacterCardDC;
|
|
76
77
|
conversationSettings?: IConversationSettings;
|
|
77
|
-
tts?: ITTS;
|
|
78
78
|
metaApp?: IAgentMetadata;
|
|
79
79
|
accounts?: Array<IAccounts>;
|
|
80
80
|
}
|
|
@@ -108,17 +108,19 @@ export declare class WordTimestamps {
|
|
|
108
108
|
word: string;
|
|
109
109
|
start: number;
|
|
110
110
|
end: number;
|
|
111
|
-
highlighted:
|
|
111
|
+
highlighted: boolean;
|
|
112
112
|
}
|
|
113
|
-
export declare class
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
text: string;
|
|
117
|
-
audioUrl: string;
|
|
118
|
-
audioPromise: any;
|
|
113
|
+
export declare class MessageAudio {
|
|
114
|
+
audioUrl?: string;
|
|
115
|
+
audioPromise?: any;
|
|
119
116
|
isLoading?: boolean;
|
|
120
117
|
transcription?: any;
|
|
121
118
|
transcriptionTimestamps?: WordTimestamps[];
|
|
119
|
+
text?: string;
|
|
120
|
+
content?: string;
|
|
121
|
+
voice?: string;
|
|
122
|
+
}
|
|
123
|
+
export declare class ChatMultiMessage extends MessageAudio {
|
|
122
124
|
tag: string | string[] | Set<string> | {
|
|
123
125
|
[klass: string]: any;
|
|
124
126
|
};
|
|
@@ -129,20 +131,14 @@ export declare enum ChatRole {
|
|
|
129
131
|
Assistant = "assistant",
|
|
130
132
|
AssistantHelper = "assistantHelper"
|
|
131
133
|
}
|
|
132
|
-
export declare class ChatMessage {
|
|
133
|
-
content: string;
|
|
134
|
+
export declare class ChatMessage extends MessageAudio {
|
|
134
135
|
role: ChatRole;
|
|
135
136
|
ssml?: string;
|
|
136
|
-
text?: string;
|
|
137
137
|
translation?: string;
|
|
138
|
-
audioUrl?: string;
|
|
139
138
|
audioHtml?: HTMLAudioElement;
|
|
140
139
|
promisePlay?: any;
|
|
141
140
|
stats?: any;
|
|
142
141
|
multiMessages?: ChatMultiMessage[];
|
|
143
|
-
transcription?: TranscriptionsWhisper;
|
|
144
|
-
transcriptionTimestamps?: WordTimestamps[];
|
|
145
|
-
voice?: string;
|
|
146
142
|
}
|
|
147
143
|
export declare class ChatUserSettings {
|
|
148
144
|
realTime: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChatUserSettings } from './agent.models';
|
|
1
2
|
export declare const LangCodeDescriptionEs: {
|
|
2
3
|
es: string;
|
|
3
4
|
en: string;
|
|
@@ -5,6 +6,7 @@ export declare const LangCodeDescriptionEs: {
|
|
|
5
6
|
pt: string;
|
|
6
7
|
fr: string;
|
|
7
8
|
};
|
|
9
|
+
export declare const defaultconvUserSettings: ChatUserSettings;
|
|
8
10
|
export declare class VoiceTTSOption {
|
|
9
11
|
provider: string;
|
|
10
12
|
name: string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { IAgentCard } from '../models/agent.models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ParseCardPipe implements PipeTransform {
|
|
5
|
+
private userDataExchange;
|
|
6
|
+
private builderConversation;
|
|
7
|
+
transform(text: string, card?: IAgentCard): string;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ParseCardPipe, never>;
|
|
9
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ParseCardPipe, "parseCard", true>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { WordTimestamps } from '../models/agent.models';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export interface HighlightedWord {
|
|
6
|
+
word: string;
|
|
7
|
+
index: number;
|
|
8
|
+
isHighlighted: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class AudioTextSyncService {
|
|
11
|
+
private highlightedWordsSignalMap;
|
|
12
|
+
private highlightedWords$Map;
|
|
13
|
+
private cleanup$Map;
|
|
14
|
+
private activeAudioMap;
|
|
15
|
+
private destroyRef;
|
|
16
|
+
constructor();
|
|
17
|
+
/**
|
|
18
|
+
* Synchronizes audio playback with text transcription
|
|
19
|
+
* @param audioElement The audio element to sync with
|
|
20
|
+
* @param transcriptionTimestamps Array of word timestamps
|
|
21
|
+
* @param messageId Unique identifier for the message
|
|
22
|
+
*/
|
|
23
|
+
syncAudioWithText(audioElement: HTMLAudioElement, transcriptionTimestamps: WordTimestamps[], messageId: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Stops the sync for a specific message and cleans up resources
|
|
26
|
+
* @param messageId The ID of the message to stop syncing
|
|
27
|
+
*/
|
|
28
|
+
stopSync(messageId: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Stops all syncs and cleans up all resources
|
|
31
|
+
*/
|
|
32
|
+
stopAllSyncs(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the highlighted words signal for a specific message
|
|
35
|
+
* @param messageId The ID of the message
|
|
36
|
+
*/
|
|
37
|
+
getHighlightedWordsSignal(messageId: string): Signal<HighlightedWord[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Returns the highlighted words observable for a specific message
|
|
40
|
+
* @param messageId The ID of the message
|
|
41
|
+
*/
|
|
42
|
+
getHighlightedWords$(messageId: string): Observable<HighlightedWord[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if a word at a specific index is currently highlighted for a specific message
|
|
45
|
+
* @param messageId The ID of the message
|
|
46
|
+
* @param index The index of the word to check
|
|
47
|
+
*/
|
|
48
|
+
isWordHighlighted(messageId: string, index: number): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Returns an observable that emits true when a word at a specific index is highlighted for a specific message
|
|
51
|
+
* @param messageId The ID of the message
|
|
52
|
+
* @param index The index of the word to observe
|
|
53
|
+
*/
|
|
54
|
+
isWordHighlighted$(messageId: string, index: number): Observable<boolean>;
|
|
55
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudioTextSyncService, never>;
|
|
56
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AudioTextSyncService>;
|
|
57
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { ChatMessage, IAgentCard, IAgentResponseDTO, IConversationSettings } from '../models/agent.models';
|
|
3
|
+
import { AgentCardsAbstractService } from '../models/conversation-ai.class';
|
|
4
|
+
import { MessageProcessingService } from './message-processing.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ConversationService {
|
|
7
|
+
private agentCardService;
|
|
8
|
+
private messageProcessingService;
|
|
9
|
+
private messagesSignal;
|
|
10
|
+
private isThinkingSignal;
|
|
11
|
+
private conversationSettingsSignal;
|
|
12
|
+
private agentCardSignal;
|
|
13
|
+
private isDestroyedSignal;
|
|
14
|
+
constructor(agentCardService: AgentCardsAbstractService, messageProcessingService: MessageProcessingService);
|
|
15
|
+
getMessages(): Signal<ChatMessage[]>;
|
|
16
|
+
isThinking(): Signal<boolean>;
|
|
17
|
+
getConversationSettings(): Signal<IConversationSettings | null>;
|
|
18
|
+
getAgentCard(): Signal<IAgentCard | null>;
|
|
19
|
+
setDestroyed(value: boolean): void;
|
|
20
|
+
initConversation(agentCard: IAgentCard, conversationBuilder: any, parseDict?: {
|
|
21
|
+
[key: string]: string;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
sendUserMessage(message: ChatMessage): Promise<void>;
|
|
24
|
+
addMessage(message: ChatMessage): void;
|
|
25
|
+
processAssistantMessage(message: IAgentResponseDTO | ChatMessage, mutate?: boolean): ChatMessage;
|
|
26
|
+
sendCurrentConversation(): Promise<void>;
|
|
27
|
+
private getAudioPlaybackSetting;
|
|
28
|
+
resetConversation(agentCard?: IAgentCard): Promise<void>;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConversationService, never>;
|
|
30
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ConversationService>;
|
|
31
|
+
}
|