pcm-agents 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{components-chat-message_33.cjs.entry.js → components-chat-message_34.cjs.entry.js} +5990 -4059
- package/dist/cjs/components-chat-message_34.cjs.entry.js.map +1 -0
- package/dist/cjs/{conversation-utils-B4jUfmtU.js → conversation-utils-BcyjwLyB.js} +4 -4
- package/dist/cjs/{conversation-utils-B4jUfmtU.js.map → conversation-utils-BcyjwLyB.js.map} +1 -1
- package/dist/cjs/{index-Dghp_NL6.js → index-ByczPiFt.js} +3 -3
- package/dist/cjs/{index-Dghp_NL6.js.map → index-ByczPiFt.js.map} +1 -1
- package/dist/cjs/index-C_qhED9Z.js +6 -6
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/oem-htws-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-jd-modal.cjs.entry.js +2 -2
- package/dist/cjs/oem-jlpp-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-jlzz-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-mnct-modal.cjs.entry.js +1 -1
- package/dist/cjs/oem-qgqjl-modal.cjs.entry.js +3 -3
- package/dist/cjs/pcm-agents.cjs.js +1 -1
- package/dist/cjs/pcm-hr-chat-modal.cjs.entry.js +2 -2
- package/dist/cjs/pcm-jlsx-modal.cjs.entry.js +2 -2
- package/dist/cjs/{oem-mnms-modal.cjs.entry.js → pcm-mnms-modal.cjs.entry.js} +41 -156
- package/dist/cjs/pcm-mnms-modal.cjs.entry.js.map +1 -0
- package/dist/cjs/pcm-mnms-modal.entry.cjs.js.map +1 -0
- package/dist/cjs/{sentry-reporter-CgJowDyu.js → sentry-reporter-CAMphGVG.js} +3 -3
- package/dist/cjs/{sentry-reporter-CgJowDyu.js.map → sentry-reporter-CAMphGVG.js.map} +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/components-oem-virtual-chat-modal/components-oem-virtual-chat-modal.css +1109 -0
- package/dist/collection/components/components-oem-virtual-chat-modal/components-oem-virtual-chat-modal.js +2334 -0
- package/dist/collection/components/components-oem-virtual-chat-modal/components-oem-virtual-chat-modal.js.map +1 -0
- package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js +2 -2
- package/dist/collection/components/oem-mnms-modal/oem-mnms-modal.js.map +1 -1
- package/dist/components/components-chat-message.js +1 -1
- package/dist/components/components-digital-human.js +1 -1
- package/dist/components/components-export-records-modal.js +1 -1
- package/dist/components/components-mobile-input-btn.js +1 -1
- package/dist/components/components-mobile-upload-btn.js +1 -1
- package/dist/components/components-oem-virtual-chat-modal.d.ts +11 -0
- package/dist/components/components-oem-virtual-chat-modal.js +9 -0
- package/dist/components/components-oem-virtual-chat-modal.js.map +1 -0
- package/dist/components/components-position-selector.js +1 -1
- package/dist/components/components-thousand-resume-wrapper.js +1 -1
- package/dist/components/components-upload.js +1 -1
- package/dist/components/components-voice-input-btn.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/oem-htws-modal.js +5 -5
- package/dist/components/oem-jd-modal.js +5 -5
- package/dist/components/oem-jlpp-modal.js +7 -7
- package/dist/components/oem-jlsx-modal.js +5 -5
- package/dist/components/oem-jlzz-modal.js +5 -5
- package/dist/components/oem-mnct-modal.js +7 -7
- package/dist/components/oem-mnms-modal.js +14 -14
- package/dist/components/oem-mnms-modal.js.map +1 -1
- package/dist/components/oem-qgqjl-modal.js +9 -9
- package/dist/components/oem-zygh-modal.js +5 -5
- package/dist/components/{p-CB7myOe_.js → p-BG57SwXj.js} +3 -3
- package/dist/components/{p-CB7myOe_.js.map → p-BG57SwXj.js.map} +1 -1
- package/dist/components/p-Br04SWVa.js +1910 -0
- package/dist/components/p-Br04SWVa.js.map +1 -0
- package/dist/components/{p-DJDJfWq9.js → p-C4wDoFmj.js} +3 -3
- package/dist/components/{p-DJDJfWq9.js.map → p-C4wDoFmj.js.map} +1 -1
- package/dist/components/{p-C-lvK9NX.js → p-CdChGfaD.js} +3 -3
- package/dist/components/{p-C-lvK9NX.js.map → p-CdChGfaD.js.map} +1 -1
- package/dist/components/{p-i4wY2JnB.js → p-DBGeSJL5.js} +4 -4
- package/dist/components/{p-i4wY2JnB.js.map → p-DBGeSJL5.js.map} +1 -1
- package/dist/components/{p-Bg0KKnpU.js → p-DCqDbDa5.js} +3 -3
- package/dist/components/{p-Bg0KKnpU.js.map → p-DCqDbDa5.js.map} +1 -1
- package/dist/components/{p-BDEiyYVl.js → p-DNYpOoXt.js} +3 -3
- package/dist/components/{p-BDEiyYVl.js.map → p-DNYpOoXt.js.map} +1 -1
- package/dist/components/{p-D4RnNrxx.js → p-DOARr5co.js} +3 -3
- package/dist/components/{p-D4RnNrxx.js.map → p-DOARr5co.js.map} +1 -1
- package/dist/components/{p-oVAdweom.js → p-DR3ZWkeG.js} +3 -3
- package/dist/components/{p-oVAdweom.js.map → p-DR3ZWkeG.js.map} +1 -1
- package/dist/components/{p-CEu-bFot.js → p-Di4zSDY1.js} +3 -3
- package/dist/components/{p-CEu-bFot.js.map → p-Di4zSDY1.js.map} +1 -1
- package/dist/components/{p-C7ubjB1x.js → p-DlSEOwkR.js} +3 -3
- package/dist/components/{p-C7ubjB1x.js.map → p-DlSEOwkR.js.map} +1 -1
- package/dist/components/{p-CPq5-i_-.js → p-PGWPY7oW.js} +4 -4
- package/dist/components/{p-CPq5-i_-.js.map → p-PGWPY7oW.js.map} +1 -1
- package/dist/components/{p-CzFKth7J.js → p-vqnzSTh9.js} +3 -3
- package/dist/components/{p-CzFKth7J.js.map → p-vqnzSTh9.js.map} +1 -1
- package/dist/components/{p-BhdGTSLg.js → p-ypLAX0-r.js} +5 -5
- package/dist/components/{p-BhdGTSLg.js.map → p-ypLAX0-r.js.map} +1 -1
- package/dist/components/pcm-1zhanshi-mnms-modal.js +5 -5
- package/dist/components/pcm-app-chat-modal.js +1 -1
- package/dist/components/pcm-ats-mnms-modal.js +5 -5
- package/dist/components/pcm-card.js +1 -1
- package/dist/components/pcm-hr-chat-modal.js +2 -2
- package/dist/components/pcm-htws-modal.js +8 -8
- package/dist/components/pcm-hyzj-modal.js +5 -5
- package/dist/components/pcm-jd-modal.js +6 -6
- package/dist/components/pcm-jlpp-modal.js +8 -8
- package/dist/components/pcm-jlsx-modal.js +5 -5
- package/dist/components/pcm-jlzz-modal.js +6 -6
- package/dist/components/pcm-mnct-modal.js +7 -7
- package/dist/components/pcm-mnms-modal.js +8 -8
- package/dist/components/pcm-mnms-zp-modal.js +8 -8
- package/dist/components/pcm-msbg-modal.js +5 -5
- package/dist/components/pcm-qgqjl-modal.js +9 -9
- package/dist/components/pcm-virtual-chat-modal.js +1 -1
- package/dist/components/pcm-zsk-chat-modal.js +2 -2
- package/dist/components/pcm-zygh-modal.js +7 -7
- package/dist/components/pcm-zygh-v2-modal.js +7 -7
- package/dist/esm/{components-chat-message_33.entry.js → components-chat-message_34.entry.js} +5989 -4059
- package/dist/esm/components-chat-message_34.entry.js.map +1 -0
- package/dist/esm/{conversation-utils-CLO35DHR.js → conversation-utils-Cq6kOMLn.js} +4 -4
- package/dist/esm/{conversation-utils-CLO35DHR.js.map → conversation-utils-Cq6kOMLn.js.map} +1 -1
- package/dist/esm/index-Bq0K-WqZ.js +6 -6
- package/dist/esm/{index-KVnu9w-h.js → index-f9qzAcsI.js} +4 -4
- package/dist/esm/{index-KVnu9w-h.js.map → index-f9qzAcsI.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/oem-htws-modal.entry.js +1 -1
- package/dist/esm/oem-jd-modal.entry.js +2 -2
- package/dist/esm/oem-jlpp-modal.entry.js +1 -1
- package/dist/esm/oem-jlzz-modal.entry.js +1 -1
- package/dist/esm/oem-mnct-modal.entry.js +1 -1
- package/dist/esm/oem-qgqjl-modal.entry.js +3 -3
- package/dist/esm/pcm-agents.js +1 -1
- package/dist/esm/pcm-hr-chat-modal.entry.js +2 -2
- package/dist/esm/pcm-jlsx-modal.entry.js +2 -2
- package/dist/esm/{oem-mnms-modal.entry.js → pcm-mnms-modal.entry.js} +41 -156
- package/dist/esm/pcm-mnms-modal.entry.js.map +1 -0
- package/dist/esm/{sentry-reporter-B4aHQq-A.js → sentry-reporter-BuVO55kB.js} +3 -3
- package/dist/esm/{sentry-reporter-B4aHQq-A.js.map → sentry-reporter-BuVO55kB.js.map} +1 -1
- package/dist/pcm-agents/index.esm.js +1 -1
- package/dist/pcm-agents/p-1a823412.entry.js +2 -0
- package/dist/pcm-agents/p-1a823412.entry.js.map +1 -0
- package/dist/pcm-agents/{p-8144f0d4.entry.js → p-1d7baf58.entry.js} +2 -2
- package/dist/pcm-agents/p-2c7f6866.entry.js +8 -0
- package/dist/pcm-agents/p-2c7f6866.entry.js.map +1 -0
- package/dist/pcm-agents/{p-efb4e819.entry.js → p-3798a359.entry.js} +2 -2
- package/dist/pcm-agents/{p-dd6362f0.entry.js → p-3bc49010.entry.js} +2 -2
- package/dist/pcm-agents/{p-8256890d.entry.js → p-612d5346.entry.js} +2 -2
- package/dist/pcm-agents/{p-e2b9a9f2.entry.js → p-7f080b51.entry.js} +2 -2
- package/dist/pcm-agents/{p-aa606968.entry.js → p-84226c3e.entry.js} +2 -2
- package/dist/pcm-agents/p-BvtPZTpv.js +2 -0
- package/dist/pcm-agents/{p-B4ClCdh9.js.map → p-BvtPZTpv.js.map} +1 -1
- package/dist/pcm-agents/{p-Bktjt_YJ.js → p-CQH9qich.js} +2 -2
- package/dist/pcm-agents/{p-Bktjt_YJ.js.map → p-CQH9qich.js.map} +1 -1
- package/dist/pcm-agents/{p-CMfzTNOk.js → p-CUnvGnxr.js} +2 -2
- package/dist/pcm-agents/{p-CMfzTNOk.js.map → p-CUnvGnxr.js.map} +1 -1
- package/dist/pcm-agents/{p-eb9b355e.entry.js → p-a7dffe87.entry.js} +2 -2
- package/dist/pcm-agents/{p-4d7511e0.entry.js → p-aaf860b0.entry.js} +2 -2
- package/dist/pcm-agents/pcm-agents.esm.js +1 -1
- package/dist/pcm-agents/pcm-mnms-modal.entry.esm.js.map +1 -0
- package/dist/types/components/components-oem-virtual-chat-modal/components-oem-virtual-chat-modal.d.ts +290 -0
- package/dist/types/components.d.ts +186 -0
- package/package.json +1 -1
- package/dist/cjs/components-chat-message_33.cjs.entry.js.map +0 -1
- package/dist/cjs/oem-mnms-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/oem-mnms-modal.entry.cjs.js.map +0 -1
- package/dist/esm/components-chat-message_33.entry.js.map +0 -1
- package/dist/esm/oem-mnms-modal.entry.js.map +0 -1
- package/dist/pcm-agents/oem-mnms-modal.entry.esm.js.map +0 -1
- package/dist/pcm-agents/p-7e8bdfa6.entry.js +0 -2
- package/dist/pcm-agents/p-7e8bdfa6.entry.js.map +0 -1
- package/dist/pcm-agents/p-B4ClCdh9.js +0 -2
- package/dist/pcm-agents/p-f6683f29.entry.js +0 -8
- package/dist/pcm-agents/p-f6683f29.entry.js.map +0 -1
- /package/dist/pcm-agents/{p-8144f0d4.entry.js.map → p-1d7baf58.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-efb4e819.entry.js.map → p-3798a359.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-dd6362f0.entry.js.map → p-3bc49010.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-8256890d.entry.js.map → p-612d5346.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-e2b9a9f2.entry.js.map → p-7f080b51.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-aa606968.entry.js.map → p-84226c3e.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-eb9b355e.entry.js.map → p-a7dffe87.entry.js.map} +0 -0
- /package/dist/pcm-agents/{p-4d7511e0.entry.js.map → p-aaf860b0.entry.js.map} +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { ChatMessage } from '../../interfaces/chat';
|
|
3
|
+
import { StreamCompleteEventData, ConversationStartEventData, InterviewCompleteEventData, RecordingErrorEventData, RecordingStatusChangeEventData } from '../../interfaces/events';
|
|
4
|
+
export declare class ComponentsOemVirtualChatModal {
|
|
5
|
+
/**
|
|
6
|
+
* SDK鉴权密钥
|
|
7
|
+
*/
|
|
8
|
+
token?: string;
|
|
9
|
+
/**
|
|
10
|
+
* 是否显示聊天模态框
|
|
11
|
+
*/
|
|
12
|
+
isOpen: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* 聊天消息历史
|
|
15
|
+
*/
|
|
16
|
+
messages: ChatMessage[];
|
|
17
|
+
/**
|
|
18
|
+
* 聊天框的页面层级
|
|
19
|
+
*/
|
|
20
|
+
zIndex?: number;
|
|
21
|
+
/**
|
|
22
|
+
* 会话ID,传入继续对话,否则创建新会话
|
|
23
|
+
*/
|
|
24
|
+
conversationId?: string;
|
|
25
|
+
/**
|
|
26
|
+
* 是否正在加载回复
|
|
27
|
+
*/
|
|
28
|
+
isLoading: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* 当前正在流式输出的消息
|
|
31
|
+
*/
|
|
32
|
+
currentStreamingMessage: ChatMessage | null;
|
|
33
|
+
isLoadingHistory: boolean;
|
|
34
|
+
hostElement: HTMLElement;
|
|
35
|
+
/**
|
|
36
|
+
* 一轮对话结束时的回调
|
|
37
|
+
*/
|
|
38
|
+
streamComplete: EventEmitter<StreamCompleteEventData>;
|
|
39
|
+
/**
|
|
40
|
+
* 新会话开始的回调,只会在一轮对话开始时触发一次
|
|
41
|
+
*/
|
|
42
|
+
conversationStart: EventEmitter<ConversationStartEventData>;
|
|
43
|
+
/**
|
|
44
|
+
* 默认发送文本
|
|
45
|
+
*/
|
|
46
|
+
defaultQuery: string;
|
|
47
|
+
/**
|
|
48
|
+
* 视频录制最大时长(秒)
|
|
49
|
+
*/
|
|
50
|
+
maxRecordingTime: number;
|
|
51
|
+
/**
|
|
52
|
+
* 录制倒计时提醒时间(秒)
|
|
53
|
+
* 当剩余时间小于此值时,显示倒计时警告
|
|
54
|
+
*/
|
|
55
|
+
countdownWarningTime: number;
|
|
56
|
+
isRecording: boolean;
|
|
57
|
+
recordingStream: MediaStream | null;
|
|
58
|
+
recordedBlob: Blob | null;
|
|
59
|
+
mediaRecorder: MediaRecorder | null;
|
|
60
|
+
recordingTimeLeft: number;
|
|
61
|
+
showRecordingUI: boolean;
|
|
62
|
+
recordingTimer: any;
|
|
63
|
+
recordingStartTime: number;
|
|
64
|
+
waitingToRecord: boolean;
|
|
65
|
+
waitingTimer: any;
|
|
66
|
+
private _visibilityChangeHandler;
|
|
67
|
+
waitingTimeLeft: number;
|
|
68
|
+
private videoRef;
|
|
69
|
+
/**
|
|
70
|
+
* 当前轮数
|
|
71
|
+
*/
|
|
72
|
+
currentQuestionNumber: number;
|
|
73
|
+
/**
|
|
74
|
+
* 当聊天完成时触发
|
|
75
|
+
*/
|
|
76
|
+
interviewComplete: EventEmitter<InterviewCompleteEventData>;
|
|
77
|
+
showCountdownWarning: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* 是否以全屏模式打开,移动端建议设置为true
|
|
80
|
+
*/
|
|
81
|
+
fullscreen: boolean;
|
|
82
|
+
isUploadingVideo: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 数字人视频相关状态
|
|
85
|
+
*/
|
|
86
|
+
digitalHumanVideoUrl: string;
|
|
87
|
+
digitalHumanDefaultVideoUrl: string;
|
|
88
|
+
virtualmanKey: string;
|
|
89
|
+
isPlayingDigitalHumanVideo: boolean;
|
|
90
|
+
digitalHumanVideoReady: boolean;
|
|
91
|
+
digitalHumanOpeningContents: Array<{
|
|
92
|
+
text: string;
|
|
93
|
+
video_url: string;
|
|
94
|
+
}>;
|
|
95
|
+
isPlayingWelcomeVideo: boolean;
|
|
96
|
+
isGeneratingDigitalHumanVideo: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* 待播放的生成视频URL(当开场白视频播放时,暂存生成的视频URL)
|
|
99
|
+
*/
|
|
100
|
+
pendingGeneratedVideoUrl: string;
|
|
101
|
+
private preloadedVideos;
|
|
102
|
+
private preloadingVideos;
|
|
103
|
+
/**
|
|
104
|
+
* 是否正在等待数字人视频播放完成
|
|
105
|
+
*/
|
|
106
|
+
waitingForDigitalHuman: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* 虚拟数字人ID,指定则开启虚拟数字人功能
|
|
109
|
+
*/
|
|
110
|
+
digitalId?: string;
|
|
111
|
+
/**
|
|
112
|
+
* 数字人开场白索引,用于选择开场白和开场视频(可选:0, 1, 2)
|
|
113
|
+
* 0、您好,我是聘才猫 AI 面试助手。很高兴为你主持这场面试!在开始前,请确保:身处安静、光线充足的环境。网络顺畅,摄像头和麦克风工作正常。现在我正在查看本次面试的相关信息,为您生成专属面试题,马上就好,请稍等片刻。</br>
|
|
114
|
+
* 1、您好,我是您的 AI 面试助手。欢迎参加本次AI面试!为了获得最佳效果,请确认:您在安静、明亮的环境中。您的网络稳定,摄像头和麦克风已开启。我们正在后台为您准备本次专属面试内容,很快开始,请稍候。<br>
|
|
115
|
+
* 2、您好,我是您的 AI 面试助手。面试马上开始。趁此片刻,请快速确认:周围安静吗?光线足够吗?网络没问题?摄像头和麦克风准备好了吗?我们正在为您加载个性化的面试环节,稍等就好!
|
|
116
|
+
*/
|
|
117
|
+
openingIndex: number;
|
|
118
|
+
/**
|
|
119
|
+
* 等待录制时间(秒)默认10
|
|
120
|
+
*/
|
|
121
|
+
waitingTime: number;
|
|
122
|
+
/**
|
|
123
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
124
|
+
*/
|
|
125
|
+
playbackRate: number;
|
|
126
|
+
/**
|
|
127
|
+
* 是否显示结束面试按钮
|
|
128
|
+
*/
|
|
129
|
+
showEndInterviewButton: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* 录制错误事件
|
|
132
|
+
*/
|
|
133
|
+
recordingError: EventEmitter<RecordingErrorEventData>;
|
|
134
|
+
/**
|
|
135
|
+
* 录制状态变化事件
|
|
136
|
+
*/
|
|
137
|
+
recordingStatusChange: EventEmitter<RecordingStatusChangeEventData>;
|
|
138
|
+
/**
|
|
139
|
+
* SDK密钥验证失败事件
|
|
140
|
+
*/
|
|
141
|
+
tokenInvalid: EventEmitter<void>;
|
|
142
|
+
/**
|
|
143
|
+
* 当点击模态框关闭时触发
|
|
144
|
+
*/
|
|
145
|
+
modalClosed: EventEmitter<void>;
|
|
146
|
+
/**
|
|
147
|
+
* 自定义智能体inputs输入参数
|
|
148
|
+
*/
|
|
149
|
+
customInputs: Record<string, any>;
|
|
150
|
+
/**
|
|
151
|
+
* 机器人ID
|
|
152
|
+
*/
|
|
153
|
+
botId?: string;
|
|
154
|
+
/**
|
|
155
|
+
* 智能体头像URL(从后端获取)
|
|
156
|
+
*/
|
|
157
|
+
agentLogo: string;
|
|
158
|
+
isTaskCompleted: boolean;
|
|
159
|
+
private tokenInvalidListener;
|
|
160
|
+
deviceError: string | null;
|
|
161
|
+
/**
|
|
162
|
+
* 面试流程状态管理说明:
|
|
163
|
+
*
|
|
164
|
+
* 核心状态:
|
|
165
|
+
* - isTaskCompleted: 任务是否已完成(面试正常结束)
|
|
166
|
+
* - isEndingInterview: 是否正在执行结束面试流程(用户主动结束)
|
|
167
|
+
* - isRecording: 是否正在录制视频
|
|
168
|
+
* - waitingToRecord: 是否正在等待开始录制
|
|
169
|
+
* - waitingForDigitalHuman: 是否正在等待数字人视频播放完成
|
|
170
|
+
* - isLoading: 是否正在等待AI回复
|
|
171
|
+
* - isUploadingVideo: 是否正在上传视频
|
|
172
|
+
* - isGeneratingDigitalHumanVideo: 是否正在生成数字人视频
|
|
173
|
+
*
|
|
174
|
+
* 流程控制原则:
|
|
175
|
+
* 1. 一旦 isTaskCompleted 或 isEndingInterview 为 true,所有录制和等待流程都应停止
|
|
176
|
+
* 2. isEndingInterview 设置为 true 后,只允许发送结束面试消息
|
|
177
|
+
* 3. 结束面试按钮在 isTaskCompleted 或 isEndingInterview 为 true 时置灰禁用
|
|
178
|
+
* 4. 所有可能触发新录制的地方都需要检查这两个状态
|
|
179
|
+
*/
|
|
180
|
+
showConfirmModal: boolean;
|
|
181
|
+
skipConfirmThisInterview: boolean;
|
|
182
|
+
showCloseConfirmModal: boolean;
|
|
183
|
+
showEndInterviewConfirmModal: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* 标记是否正在执行结束面试流程
|
|
186
|
+
*/
|
|
187
|
+
isEndingInterview: boolean;
|
|
188
|
+
private isComponentActive;
|
|
189
|
+
handleTokenChange(newToken: string): void;
|
|
190
|
+
/**
|
|
191
|
+
* 公共方法:设置组件活动状态
|
|
192
|
+
* 可被外部调用来控制组件是否继续执行异步操作
|
|
193
|
+
*/
|
|
194
|
+
setComponentActive(active: boolean): Promise<void>;
|
|
195
|
+
componentWillLoad(): void;
|
|
196
|
+
private fetchAgentLogo;
|
|
197
|
+
private sendMessageToAPI;
|
|
198
|
+
private loadHistoryMessages;
|
|
199
|
+
private startWaitingToRecord;
|
|
200
|
+
private startRecording;
|
|
201
|
+
private setupVideoPreview;
|
|
202
|
+
private stopRecording;
|
|
203
|
+
private handleStopRecording;
|
|
204
|
+
private handleSkipConfirmChange;
|
|
205
|
+
private handleConfirmModalCancel;
|
|
206
|
+
private handleConfirmModalOk;
|
|
207
|
+
private handleConfirmModalCancelEvent;
|
|
208
|
+
private uploadRecordedVideo;
|
|
209
|
+
private handleCloseClick;
|
|
210
|
+
private handleCloseConfirmOk;
|
|
211
|
+
private handleCloseConfirmCancel;
|
|
212
|
+
disconnectedCallback(): void;
|
|
213
|
+
/**
|
|
214
|
+
* 预创建数字人视频
|
|
215
|
+
*/
|
|
216
|
+
private precreateDigitalHumanVideos;
|
|
217
|
+
/**
|
|
218
|
+
* 初始化数字人功能
|
|
219
|
+
*/
|
|
220
|
+
private initializeDigitalHuman;
|
|
221
|
+
/**
|
|
222
|
+
* 生成数字人视频
|
|
223
|
+
*/
|
|
224
|
+
private generateDigitalHumanVideo;
|
|
225
|
+
/**
|
|
226
|
+
* 轮询查询视频生成进度
|
|
227
|
+
*/
|
|
228
|
+
private pollVideoProgress;
|
|
229
|
+
/**
|
|
230
|
+
* 播放数字人视频
|
|
231
|
+
*/
|
|
232
|
+
private playDigitalHumanVideo;
|
|
233
|
+
/**
|
|
234
|
+
* 智能视频预加载管理器
|
|
235
|
+
* 确保每个视频只预加载一次,避免重复请求
|
|
236
|
+
*/
|
|
237
|
+
private preloadVideo;
|
|
238
|
+
/**
|
|
239
|
+
* 执行实际的视频预加载操作
|
|
240
|
+
*/
|
|
241
|
+
private executeVideoPreload;
|
|
242
|
+
/**
|
|
243
|
+
* 顺序预加载多个视频
|
|
244
|
+
* 上一个视频加载完毕后立刻加载下一个视频
|
|
245
|
+
*/
|
|
246
|
+
private sequentialPreloadVideos;
|
|
247
|
+
/**
|
|
248
|
+
* 顺序视频URL处理器
|
|
249
|
+
* 一旦获得视频URL,按顺序预加载
|
|
250
|
+
*/
|
|
251
|
+
private handleVideoUrlReceivedSequential;
|
|
252
|
+
/**
|
|
253
|
+
* 处理页面从后台恢复(关屏/切后台回来)
|
|
254
|
+
* 检测并恢复可能卡住的流程
|
|
255
|
+
*/
|
|
256
|
+
private handlePageResume;
|
|
257
|
+
/**
|
|
258
|
+
* 跳过当前数字人视频播放,直接进入录制流程
|
|
259
|
+
*/
|
|
260
|
+
private skipDigitalHumanVideo;
|
|
261
|
+
/**
|
|
262
|
+
* 处理数字人视频播放结束
|
|
263
|
+
*/
|
|
264
|
+
private handleVideoElementEnded;
|
|
265
|
+
/**
|
|
266
|
+
* 处理面试结束按钮点击 - 显示二次确认模态框
|
|
267
|
+
*/
|
|
268
|
+
private handleInterviewEnd;
|
|
269
|
+
/**
|
|
270
|
+
* 确认结束面试
|
|
271
|
+
*/
|
|
272
|
+
private handleConfirmEndInterview;
|
|
273
|
+
/**
|
|
274
|
+
* 发送结束面试消息
|
|
275
|
+
*/
|
|
276
|
+
private sendEndInterviewMessage;
|
|
277
|
+
/**
|
|
278
|
+
* 取消结束面试
|
|
279
|
+
*/
|
|
280
|
+
private handleCancelEndInterview;
|
|
281
|
+
/**
|
|
282
|
+
* 计算已回答的题数
|
|
283
|
+
*/
|
|
284
|
+
private getAnsweredQuestionCount;
|
|
285
|
+
private renderChatHistory;
|
|
286
|
+
render(): any;
|
|
287
|
+
private renderVideoPreview;
|
|
288
|
+
private renderRecordingStatusBar;
|
|
289
|
+
private renderStatusIndicator;
|
|
290
|
+
}
|
|
@@ -249,6 +249,72 @@ export namespace Components {
|
|
|
249
249
|
*/
|
|
250
250
|
"uploadText": string;
|
|
251
251
|
}
|
|
252
|
+
interface ComponentsOemVirtualChatModal {
|
|
253
|
+
/**
|
|
254
|
+
* 机器人ID
|
|
255
|
+
*/
|
|
256
|
+
"botId"?: string;
|
|
257
|
+
/**
|
|
258
|
+
* 会话ID,传入继续对话,否则创建新会话
|
|
259
|
+
*/
|
|
260
|
+
"conversationId"?: string;
|
|
261
|
+
/**
|
|
262
|
+
* 录制倒计时提醒时间(秒) 当剩余时间小于此值时,显示倒计时警告
|
|
263
|
+
*/
|
|
264
|
+
"countdownWarningTime": number;
|
|
265
|
+
/**
|
|
266
|
+
* 自定义智能体inputs输入参数
|
|
267
|
+
*/
|
|
268
|
+
"customInputs": Record<string, any>;
|
|
269
|
+
/**
|
|
270
|
+
* 默认发送文本
|
|
271
|
+
*/
|
|
272
|
+
"defaultQuery": string;
|
|
273
|
+
/**
|
|
274
|
+
* 虚拟数字人ID,指定则开启虚拟数字人功能
|
|
275
|
+
*/
|
|
276
|
+
"digitalId"?: string;
|
|
277
|
+
/**
|
|
278
|
+
* 是否以全屏模式打开,移动端建议设置为true
|
|
279
|
+
*/
|
|
280
|
+
"fullscreen": boolean;
|
|
281
|
+
/**
|
|
282
|
+
* 是否显示聊天模态框
|
|
283
|
+
*/
|
|
284
|
+
"isOpen": boolean;
|
|
285
|
+
/**
|
|
286
|
+
* 视频录制最大时长(秒)
|
|
287
|
+
*/
|
|
288
|
+
"maxRecordingTime": number;
|
|
289
|
+
/**
|
|
290
|
+
* 数字人开场白索引,用于选择开场白和开场视频(可选:0, 1, 2) 0、您好,我是聘才猫 AI 面试助手。很高兴为你主持这场面试!在开始前,请确保:身处安静、光线充足的环境。网络顺畅,摄像头和麦克风工作正常。现在我正在查看本次面试的相关信息,为您生成专属面试题,马上就好,请稍等片刻。</br> 1、您好,我是您的 AI 面试助手。欢迎参加本次AI面试!为了获得最佳效果,请确认:您在安静、明亮的环境中。您的网络稳定,摄像头和麦克风已开启。我们正在后台为您准备本次专属面试内容,很快开始,请稍候。<br> 2、您好,我是您的 AI 面试助手。面试马上开始。趁此片刻,请快速确认:周围安静吗?光线足够吗?网络没问题?摄像头和麦克风准备好了吗?我们正在为您加载个性化的面试环节,稍等就好!
|
|
291
|
+
*/
|
|
292
|
+
"openingIndex": number;
|
|
293
|
+
/**
|
|
294
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
295
|
+
*/
|
|
296
|
+
"playbackRate": number;
|
|
297
|
+
/**
|
|
298
|
+
* 公共方法:设置组件活动状态 可被外部调用来控制组件是否继续执行异步操作
|
|
299
|
+
*/
|
|
300
|
+
"setComponentActive": (active: boolean) => Promise<void>;
|
|
301
|
+
/**
|
|
302
|
+
* 是否显示结束面试按钮
|
|
303
|
+
*/
|
|
304
|
+
"showEndInterviewButton": boolean;
|
|
305
|
+
/**
|
|
306
|
+
* SDK鉴权密钥
|
|
307
|
+
*/
|
|
308
|
+
"token"?: string;
|
|
309
|
+
/**
|
|
310
|
+
* 等待录制时间(秒)默认10
|
|
311
|
+
*/
|
|
312
|
+
"waitingTime": number;
|
|
313
|
+
/**
|
|
314
|
+
* 聊天框的页面层级
|
|
315
|
+
*/
|
|
316
|
+
"zIndex"?: number;
|
|
317
|
+
}
|
|
252
318
|
/**
|
|
253
319
|
* 职位选择器组件
|
|
254
320
|
* 支持单选和多选模式
|
|
@@ -2560,6 +2626,10 @@ export interface ComponentsMobileUploadBtnCustomEvent<T> extends CustomEvent<T>
|
|
|
2560
2626
|
detail: T;
|
|
2561
2627
|
target: HTMLComponentsMobileUploadBtnElement;
|
|
2562
2628
|
}
|
|
2629
|
+
export interface ComponentsOemVirtualChatModalCustomEvent<T> extends CustomEvent<T> {
|
|
2630
|
+
detail: T;
|
|
2631
|
+
target: HTMLComponentsOemVirtualChatModalElement;
|
|
2632
|
+
}
|
|
2563
2633
|
export interface ComponentsPositionSelectorCustomEvent<T> extends CustomEvent<T> {
|
|
2564
2634
|
detail: T;
|
|
2565
2635
|
target: HTMLComponentsPositionSelectorElement;
|
|
@@ -2852,6 +2922,29 @@ declare global {
|
|
|
2852
2922
|
prototype: HTMLComponentsMobileUploadBtnElement;
|
|
2853
2923
|
new (): HTMLComponentsMobileUploadBtnElement;
|
|
2854
2924
|
};
|
|
2925
|
+
interface HTMLComponentsOemVirtualChatModalElementEventMap {
|
|
2926
|
+
"streamComplete": StreamCompleteEventData;
|
|
2927
|
+
"conversationStart": ConversationStartEventData;
|
|
2928
|
+
"interviewComplete": InterviewCompleteEventData;
|
|
2929
|
+
"recordingError": RecordingErrorEventData;
|
|
2930
|
+
"recordingStatusChange": RecordingStatusChangeEventData;
|
|
2931
|
+
"tokenInvalid": void;
|
|
2932
|
+
"modalClosed": void;
|
|
2933
|
+
}
|
|
2934
|
+
interface HTMLComponentsOemVirtualChatModalElement extends Components.ComponentsOemVirtualChatModal, HTMLStencilElement {
|
|
2935
|
+
addEventListener<K extends keyof HTMLComponentsOemVirtualChatModalElementEventMap>(type: K, listener: (this: HTMLComponentsOemVirtualChatModalElement, ev: ComponentsOemVirtualChatModalCustomEvent<HTMLComponentsOemVirtualChatModalElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2936
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2937
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2938
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2939
|
+
removeEventListener<K extends keyof HTMLComponentsOemVirtualChatModalElementEventMap>(type: K, listener: (this: HTMLComponentsOemVirtualChatModalElement, ev: ComponentsOemVirtualChatModalCustomEvent<HTMLComponentsOemVirtualChatModalElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2940
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2941
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2942
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2943
|
+
}
|
|
2944
|
+
var HTMLComponentsOemVirtualChatModalElement: {
|
|
2945
|
+
prototype: HTMLComponentsOemVirtualChatModalElement;
|
|
2946
|
+
new (): HTMLComponentsOemVirtualChatModalElement;
|
|
2947
|
+
};
|
|
2855
2948
|
interface HTMLComponentsPositionSelectorElementEventMap {
|
|
2856
2949
|
"positionSelected": Position;
|
|
2857
2950
|
"positionSelectionChange": { action: 'add' | 'remove'; positions: Position[] };
|
|
@@ -3721,6 +3814,7 @@ declare global {
|
|
|
3721
3814
|
"components-message": HTMLComponentsMessageElement;
|
|
3722
3815
|
"components-mobile-input-btn": HTMLComponentsMobileInputBtnElement;
|
|
3723
3816
|
"components-mobile-upload-btn": HTMLComponentsMobileUploadBtnElement;
|
|
3817
|
+
"components-oem-virtual-chat-modal": HTMLComponentsOemVirtualChatModalElement;
|
|
3724
3818
|
"components-position-selector": HTMLComponentsPositionSelectorElement;
|
|
3725
3819
|
"components-thousand-resume-wrapper": HTMLComponentsThousandResumeWrapperElement;
|
|
3726
3820
|
"components-upload": HTMLComponentsUploadElement;
|
|
@@ -4033,6 +4127,96 @@ declare namespace LocalJSX {
|
|
|
4033
4127
|
*/
|
|
4034
4128
|
"uploadText"?: string;
|
|
4035
4129
|
}
|
|
4130
|
+
interface ComponentsOemVirtualChatModal {
|
|
4131
|
+
/**
|
|
4132
|
+
* 机器人ID
|
|
4133
|
+
*/
|
|
4134
|
+
"botId"?: string;
|
|
4135
|
+
/**
|
|
4136
|
+
* 会话ID,传入继续对话,否则创建新会话
|
|
4137
|
+
*/
|
|
4138
|
+
"conversationId"?: string;
|
|
4139
|
+
/**
|
|
4140
|
+
* 录制倒计时提醒时间(秒) 当剩余时间小于此值时,显示倒计时警告
|
|
4141
|
+
*/
|
|
4142
|
+
"countdownWarningTime"?: number;
|
|
4143
|
+
/**
|
|
4144
|
+
* 自定义智能体inputs输入参数
|
|
4145
|
+
*/
|
|
4146
|
+
"customInputs"?: Record<string, any>;
|
|
4147
|
+
/**
|
|
4148
|
+
* 默认发送文本
|
|
4149
|
+
*/
|
|
4150
|
+
"defaultQuery"?: string;
|
|
4151
|
+
/**
|
|
4152
|
+
* 虚拟数字人ID,指定则开启虚拟数字人功能
|
|
4153
|
+
*/
|
|
4154
|
+
"digitalId"?: string;
|
|
4155
|
+
/**
|
|
4156
|
+
* 是否以全屏模式打开,移动端建议设置为true
|
|
4157
|
+
*/
|
|
4158
|
+
"fullscreen"?: boolean;
|
|
4159
|
+
/**
|
|
4160
|
+
* 是否显示聊天模态框
|
|
4161
|
+
*/
|
|
4162
|
+
"isOpen"?: boolean;
|
|
4163
|
+
/**
|
|
4164
|
+
* 视频录制最大时长(秒)
|
|
4165
|
+
*/
|
|
4166
|
+
"maxRecordingTime"?: number;
|
|
4167
|
+
/**
|
|
4168
|
+
* 新会话开始的回调,只会在一轮对话开始时触发一次
|
|
4169
|
+
*/
|
|
4170
|
+
"onConversationStart"?: (event: ComponentsOemVirtualChatModalCustomEvent<ConversationStartEventData>) => void;
|
|
4171
|
+
/**
|
|
4172
|
+
* 当聊天完成时触发
|
|
4173
|
+
*/
|
|
4174
|
+
"onInterviewComplete"?: (event: ComponentsOemVirtualChatModalCustomEvent<InterviewCompleteEventData>) => void;
|
|
4175
|
+
/**
|
|
4176
|
+
* 当点击模态框关闭时触发
|
|
4177
|
+
*/
|
|
4178
|
+
"onModalClosed"?: (event: ComponentsOemVirtualChatModalCustomEvent<void>) => void;
|
|
4179
|
+
/**
|
|
4180
|
+
* 录制错误事件
|
|
4181
|
+
*/
|
|
4182
|
+
"onRecordingError"?: (event: ComponentsOemVirtualChatModalCustomEvent<RecordingErrorEventData>) => void;
|
|
4183
|
+
/**
|
|
4184
|
+
* 录制状态变化事件
|
|
4185
|
+
*/
|
|
4186
|
+
"onRecordingStatusChange"?: (event: ComponentsOemVirtualChatModalCustomEvent<RecordingStatusChangeEventData>) => void;
|
|
4187
|
+
/**
|
|
4188
|
+
* 一轮对话结束时的回调
|
|
4189
|
+
*/
|
|
4190
|
+
"onStreamComplete"?: (event: ComponentsOemVirtualChatModalCustomEvent<StreamCompleteEventData>) => void;
|
|
4191
|
+
/**
|
|
4192
|
+
* SDK密钥验证失败事件
|
|
4193
|
+
*/
|
|
4194
|
+
"onTokenInvalid"?: (event: ComponentsOemVirtualChatModalCustomEvent<void>) => void;
|
|
4195
|
+
/**
|
|
4196
|
+
* 数字人开场白索引,用于选择开场白和开场视频(可选:0, 1, 2) 0、您好,我是聘才猫 AI 面试助手。很高兴为你主持这场面试!在开始前,请确保:身处安静、光线充足的环境。网络顺畅,摄像头和麦克风工作正常。现在我正在查看本次面试的相关信息,为您生成专属面试题,马上就好,请稍等片刻。</br> 1、您好,我是您的 AI 面试助手。欢迎参加本次AI面试!为了获得最佳效果,请确认:您在安静、明亮的环境中。您的网络稳定,摄像头和麦克风已开启。我们正在后台为您准备本次专属面试内容,很快开始,请稍候。<br> 2、您好,我是您的 AI 面试助手。面试马上开始。趁此片刻,请快速确认:周围安静吗?光线足够吗?网络没问题?摄像头和麦克风准备好了吗?我们正在为您加载个性化的面试环节,稍等就好!
|
|
4197
|
+
*/
|
|
4198
|
+
"openingIndex"?: number;
|
|
4199
|
+
/**
|
|
4200
|
+
* 数字人视频播放速率(0.5-2.0之间),默认1.0
|
|
4201
|
+
*/
|
|
4202
|
+
"playbackRate"?: number;
|
|
4203
|
+
/**
|
|
4204
|
+
* 是否显示结束面试按钮
|
|
4205
|
+
*/
|
|
4206
|
+
"showEndInterviewButton"?: boolean;
|
|
4207
|
+
/**
|
|
4208
|
+
* SDK鉴权密钥
|
|
4209
|
+
*/
|
|
4210
|
+
"token"?: string;
|
|
4211
|
+
/**
|
|
4212
|
+
* 等待录制时间(秒)默认10
|
|
4213
|
+
*/
|
|
4214
|
+
"waitingTime"?: number;
|
|
4215
|
+
/**
|
|
4216
|
+
* 聊天框的页面层级
|
|
4217
|
+
*/
|
|
4218
|
+
"zIndex"?: number;
|
|
4219
|
+
}
|
|
4036
4220
|
/**
|
|
4037
4221
|
* 职位选择器组件
|
|
4038
4222
|
* 支持单选和多选模式
|
|
@@ -7241,6 +7425,7 @@ declare namespace LocalJSX {
|
|
|
7241
7425
|
"components-message": ComponentsMessage;
|
|
7242
7426
|
"components-mobile-input-btn": ComponentsMobileInputBtn;
|
|
7243
7427
|
"components-mobile-upload-btn": ComponentsMobileUploadBtn;
|
|
7428
|
+
"components-oem-virtual-chat-modal": ComponentsOemVirtualChatModal;
|
|
7244
7429
|
"components-position-selector": ComponentsPositionSelector;
|
|
7245
7430
|
"components-thousand-resume-wrapper": ComponentsThousandResumeWrapper;
|
|
7246
7431
|
"components-upload": ComponentsUpload;
|
|
@@ -7297,6 +7482,7 @@ declare module "@stencil/core" {
|
|
|
7297
7482
|
"components-message": LocalJSX.ComponentsMessage & JSXBase.HTMLAttributes<HTMLComponentsMessageElement>;
|
|
7298
7483
|
"components-mobile-input-btn": LocalJSX.ComponentsMobileInputBtn & JSXBase.HTMLAttributes<HTMLComponentsMobileInputBtnElement>;
|
|
7299
7484
|
"components-mobile-upload-btn": LocalJSX.ComponentsMobileUploadBtn & JSXBase.HTMLAttributes<HTMLComponentsMobileUploadBtnElement>;
|
|
7485
|
+
"components-oem-virtual-chat-modal": LocalJSX.ComponentsOemVirtualChatModal & JSXBase.HTMLAttributes<HTMLComponentsOemVirtualChatModalElement>;
|
|
7300
7486
|
/**
|
|
7301
7487
|
* 职位选择器组件
|
|
7302
7488
|
* 支持单选和多选模式
|