@webex/internal-plugin-voicea 3.11.0-webex-services-ready.1 → 3.12.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/voicea.d.ts +47 -0
- package/dist/voicea.js +143 -18
- package/dist/voicea.js.map +1 -1
- package/package.json +9 -9
- package/src/constants.ts +1 -0
- package/src/voicea.ts +132 -18
- package/test/unit/spec/voicea.js +392 -18
package/dist/constants.js
CHANGED
|
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
|
|
|
4
4
|
_Object$defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.VOICEA = exports.TURN_ON_CAPTION_STATUS = exports.TRANSCRIPTION_TYPE = exports.TOGGLE_MANUAL_CAPTION_STATUS = exports.LANGUAGE_ASSIGNMENT = exports.EVENT_TRIGGERS = exports.DEFAULT_SPOKEN_LANGUAGE = exports.ANNOUNCE_STATUS = exports.AIBRIDGE_RELAY_TYPES = void 0;
|
|
7
|
+
exports.VOICEA = exports.TURN_ON_CAPTION_STATUS = exports.TRANSCRIPTION_TYPE = exports.TOGGLE_MANUAL_CAPTION_STATUS = exports.LLM_PRACTICE_SESSION = exports.LANGUAGE_ASSIGNMENT = exports.EVENT_TRIGGERS = exports.DEFAULT_SPOKEN_LANGUAGE = exports.ANNOUNCE_STATUS = exports.AIBRIDGE_RELAY_TYPES = void 0;
|
|
8
8
|
var EVENT_TRIGGERS = exports.EVENT_TRIGGERS = {
|
|
9
9
|
VOICEA_ANNOUNCEMENT: 'voicea:announcement',
|
|
10
10
|
CAPTION_LANGUAGE_UPDATE: 'voicea:captionLanguageUpdate',
|
|
@@ -46,6 +46,7 @@ var TRANSCRIPTION_TYPE = exports.TRANSCRIPTION_TYPE = {
|
|
|
46
46
|
};
|
|
47
47
|
var VOICEA = exports.VOICEA = 'voicea';
|
|
48
48
|
var DEFAULT_SPOKEN_LANGUAGE = exports.DEFAULT_SPOKEN_LANGUAGE = 'en';
|
|
49
|
+
var LLM_PRACTICE_SESSION = exports.LLM_PRACTICE_SESSION = 'llm-practice-session';
|
|
49
50
|
var ANNOUNCE_STATUS = exports.ANNOUNCE_STATUS = {
|
|
50
51
|
IDLE: 'idle',
|
|
51
52
|
JOINED: 'joined',
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EVENT_TRIGGERS","exports","VOICEA_ANNOUNCEMENT","CAPTION_LANGUAGE_UPDATE","SPOKEN_LANGUAGE_UPDATE","CAPTIONS_TURNED_ON","TRANSCRIBING_ON","TRANSCRIBING_OFF","NEW_CAPTION","EVA_COMMAND","HIGHLIGHT_CREATED","NEW_MANUAL_CAPTION","LANGUAGE_DETECTED","AIBRIDGE_RELAY_TYPES","VOICEA","ANNOUNCEMENT","CLIENT_ANNOUNCEMENT","TRANSLATION_REQUEST","TRANSLATION_RESPONSE","TRANSCRIPTION","MANUAL","CAPTIONER","TRANSCRIPTION_TYPE","UNKNOWN","EVA_WAKE","EVA_THANKS","EVA_CANCEL","TRANSCRIPT_INTERIM_RESULTS","TRANSCRIPT_FINAL_RESULT","MANUAL_CAPTION_INTERIM_RESULTS","MANUAL_CAPTION_INTERIM_RESULT","MANUAL_CAPTION_FINAL_RESULT","DEFAULT_SPOKEN_LANGUAGE","ANNOUNCE_STATUS","IDLE","JOINED","JOINING","TURN_ON_CAPTION_STATUS","ENABLED","SENDING","TOGGLE_MANUAL_CAPTION_STATUS","LANGUAGE_ASSIGNMENT","AUTO","DEFAULT"],"sources":["constants.ts"],"sourcesContent":["export const EVENT_TRIGGERS = {\n VOICEA_ANNOUNCEMENT: 'voicea:announcement',\n CAPTION_LANGUAGE_UPDATE: 'voicea:captionLanguageUpdate',\n SPOKEN_LANGUAGE_UPDATE: 'voicea:spokenLanguageUpdate',\n CAPTIONS_TURNED_ON: 'voicea:captionOn',\n TRANSCRIBING_ON: 'voicea:transcribingOn',\n TRANSCRIBING_OFF: 'voicea:transcribingOff',\n\n NEW_CAPTION: 'voicea:newCaption',\n EVA_COMMAND: 'voicea:wxa',\n HIGHLIGHT_CREATED: 'voicea:highlightCreated',\n NEW_MANUAL_CAPTION: 'aibridge:newManualCaption',\n\n LANGUAGE_DETECTED: 'voicea:languageDetected',\n};\n\nexport const AIBRIDGE_RELAY_TYPES = {\n VOICEA: {\n ANNOUNCEMENT: 'voicea.annc',\n CLIENT_ANNOUNCEMENT: 'client.annc',\n TRANSLATION_REQUEST: 'voicea.transl.req',\n TRANSLATION_RESPONSE: 'voicea.transl.rsp',\n TRANSCRIPTION: 'voicea.transcription',\n },\n MANUAL: {\n TRANSCRIPTION: 'aibridge.manual_transcription',\n CAPTIONER: 'client.manual_transcription',\n },\n};\n\nexport const TRANSCRIPTION_TYPE = {\n UNKNOWN: 'unknown',\n EVA_WAKE: 'eva_wake',\n EVA_THANKS: 'eva_thanks',\n EVA_CANCEL: 'eva_cancel',\n HIGHLIGHT_CREATED: 'highlight_created',\n TRANSCRIPT_INTERIM_RESULTS: 'transcript_interim_results',\n TRANSCRIPT_FINAL_RESULT: 'transcript_final_result',\n MANUAL_CAPTION_INTERIM_RESULTS: 'manual_caption_interim_results',\n MANUAL_CAPTION_INTERIM_RESULT: 'manual_caption_interim_result',\n MANUAL_CAPTION_FINAL_RESULT: 'manual_caption_final_result',\n LANGUAGE_DETECTED: 'language_detected',\n};\n\nexport const VOICEA = 'voicea';\nexport const DEFAULT_SPOKEN_LANGUAGE = 'en';\n\nexport const ANNOUNCE_STATUS = {\n IDLE: 'idle',\n JOINED: 'joined',\n JOINING: 'joining',\n};\n\nexport const TURN_ON_CAPTION_STATUS = {\n IDLE: 'idle',\n ENABLED: 'enabled',\n SENDING: 'sending',\n};\n\nexport const TOGGLE_MANUAL_CAPTION_STATUS = {\n IDLE: 'idle',\n SENDING: 'sending',\n};\n\nexport const LANGUAGE_ASSIGNMENT = {\n AUTO: 'AUTO',\n MANUAL: 'MANUAL',\n DEFAULT: 'DEFAULT',\n};\n"],"mappings":";;;;;;;AAAO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,mBAAmB,EAAE,qBAAqB;EAC1CC,uBAAuB,EAAE,8BAA8B;EACvDC,sBAAsB,EAAE,6BAA6B;EACrDC,kBAAkB,EAAE,kBAAkB;EACtCC,eAAe,EAAE,uBAAuB;EACxCC,gBAAgB,EAAE,wBAAwB;EAE1CC,WAAW,EAAE,mBAAmB;EAChCC,WAAW,EAAE,YAAY;EACzBC,iBAAiB,EAAE,yBAAyB;EAC5CC,kBAAkB,EAAE,2BAA2B;EAE/CC,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAMC,oBAAoB,GAAAZ,OAAA,CAAAY,oBAAA,GAAG;EAClCC,MAAM,EAAE;IACNC,YAAY,EAAE,aAAa;IAC3BC,mBAAmB,EAAE,aAAa;IAClCC,mBAAmB,EAAE,mBAAmB;IACxCC,oBAAoB,EAAE,mBAAmB;IACzCC,aAAa,EAAE;EACjB,CAAC;EACDC,MAAM,EAAE;IACND,aAAa,EAAE,+BAA+B;IAC9CE,SAAS,EAAE;EACb;AACF,CAAC;AAEM,IAAMC,kBAAkB,GAAArB,OAAA,CAAAqB,kBAAA,GAAG;EAChCC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAE,YAAY;EACxBhB,iBAAiB,EAAE,mBAAmB;EACtCiB,0BAA0B,EAAE,4BAA4B;EACxDC,uBAAuB,EAAE,yBAAyB;EAClDC,8BAA8B,EAAE,gCAAgC;EAChEC,6BAA6B,EAAE,+BAA+B;EAC9DC,2BAA2B,EAAE,6BAA6B;EAC1DnB,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAME,MAAM,GAAAb,OAAA,CAAAa,MAAA,GAAG,QAAQ;AACvB,IAAMkB,uBAAuB,GAAA/B,OAAA,CAAA+B,uBAAA,GAAG,IAAI;
|
|
1
|
+
{"version":3,"names":["EVENT_TRIGGERS","exports","VOICEA_ANNOUNCEMENT","CAPTION_LANGUAGE_UPDATE","SPOKEN_LANGUAGE_UPDATE","CAPTIONS_TURNED_ON","TRANSCRIBING_ON","TRANSCRIBING_OFF","NEW_CAPTION","EVA_COMMAND","HIGHLIGHT_CREATED","NEW_MANUAL_CAPTION","LANGUAGE_DETECTED","AIBRIDGE_RELAY_TYPES","VOICEA","ANNOUNCEMENT","CLIENT_ANNOUNCEMENT","TRANSLATION_REQUEST","TRANSLATION_RESPONSE","TRANSCRIPTION","MANUAL","CAPTIONER","TRANSCRIPTION_TYPE","UNKNOWN","EVA_WAKE","EVA_THANKS","EVA_CANCEL","TRANSCRIPT_INTERIM_RESULTS","TRANSCRIPT_FINAL_RESULT","MANUAL_CAPTION_INTERIM_RESULTS","MANUAL_CAPTION_INTERIM_RESULT","MANUAL_CAPTION_FINAL_RESULT","DEFAULT_SPOKEN_LANGUAGE","LLM_PRACTICE_SESSION","ANNOUNCE_STATUS","IDLE","JOINED","JOINING","TURN_ON_CAPTION_STATUS","ENABLED","SENDING","TOGGLE_MANUAL_CAPTION_STATUS","LANGUAGE_ASSIGNMENT","AUTO","DEFAULT"],"sources":["constants.ts"],"sourcesContent":["export const EVENT_TRIGGERS = {\n VOICEA_ANNOUNCEMENT: 'voicea:announcement',\n CAPTION_LANGUAGE_UPDATE: 'voicea:captionLanguageUpdate',\n SPOKEN_LANGUAGE_UPDATE: 'voicea:spokenLanguageUpdate',\n CAPTIONS_TURNED_ON: 'voicea:captionOn',\n TRANSCRIBING_ON: 'voicea:transcribingOn',\n TRANSCRIBING_OFF: 'voicea:transcribingOff',\n\n NEW_CAPTION: 'voicea:newCaption',\n EVA_COMMAND: 'voicea:wxa',\n HIGHLIGHT_CREATED: 'voicea:highlightCreated',\n NEW_MANUAL_CAPTION: 'aibridge:newManualCaption',\n\n LANGUAGE_DETECTED: 'voicea:languageDetected',\n};\n\nexport const AIBRIDGE_RELAY_TYPES = {\n VOICEA: {\n ANNOUNCEMENT: 'voicea.annc',\n CLIENT_ANNOUNCEMENT: 'client.annc',\n TRANSLATION_REQUEST: 'voicea.transl.req',\n TRANSLATION_RESPONSE: 'voicea.transl.rsp',\n TRANSCRIPTION: 'voicea.transcription',\n },\n MANUAL: {\n TRANSCRIPTION: 'aibridge.manual_transcription',\n CAPTIONER: 'client.manual_transcription',\n },\n};\n\nexport const TRANSCRIPTION_TYPE = {\n UNKNOWN: 'unknown',\n EVA_WAKE: 'eva_wake',\n EVA_THANKS: 'eva_thanks',\n EVA_CANCEL: 'eva_cancel',\n HIGHLIGHT_CREATED: 'highlight_created',\n TRANSCRIPT_INTERIM_RESULTS: 'transcript_interim_results',\n TRANSCRIPT_FINAL_RESULT: 'transcript_final_result',\n MANUAL_CAPTION_INTERIM_RESULTS: 'manual_caption_interim_results',\n MANUAL_CAPTION_INTERIM_RESULT: 'manual_caption_interim_result',\n MANUAL_CAPTION_FINAL_RESULT: 'manual_caption_final_result',\n LANGUAGE_DETECTED: 'language_detected',\n};\n\nexport const VOICEA = 'voicea';\nexport const DEFAULT_SPOKEN_LANGUAGE = 'en';\nexport const LLM_PRACTICE_SESSION = 'llm-practice-session';\n\nexport const ANNOUNCE_STATUS = {\n IDLE: 'idle',\n JOINED: 'joined',\n JOINING: 'joining',\n};\n\nexport const TURN_ON_CAPTION_STATUS = {\n IDLE: 'idle',\n ENABLED: 'enabled',\n SENDING: 'sending',\n};\n\nexport const TOGGLE_MANUAL_CAPTION_STATUS = {\n IDLE: 'idle',\n SENDING: 'sending',\n};\n\nexport const LANGUAGE_ASSIGNMENT = {\n AUTO: 'AUTO',\n MANUAL: 'MANUAL',\n DEFAULT: 'DEFAULT',\n};\n"],"mappings":";;;;;;;AAAO,IAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,mBAAmB,EAAE,qBAAqB;EAC1CC,uBAAuB,EAAE,8BAA8B;EACvDC,sBAAsB,EAAE,6BAA6B;EACrDC,kBAAkB,EAAE,kBAAkB;EACtCC,eAAe,EAAE,uBAAuB;EACxCC,gBAAgB,EAAE,wBAAwB;EAE1CC,WAAW,EAAE,mBAAmB;EAChCC,WAAW,EAAE,YAAY;EACzBC,iBAAiB,EAAE,yBAAyB;EAC5CC,kBAAkB,EAAE,2BAA2B;EAE/CC,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAMC,oBAAoB,GAAAZ,OAAA,CAAAY,oBAAA,GAAG;EAClCC,MAAM,EAAE;IACNC,YAAY,EAAE,aAAa;IAC3BC,mBAAmB,EAAE,aAAa;IAClCC,mBAAmB,EAAE,mBAAmB;IACxCC,oBAAoB,EAAE,mBAAmB;IACzCC,aAAa,EAAE;EACjB,CAAC;EACDC,MAAM,EAAE;IACND,aAAa,EAAE,+BAA+B;IAC9CE,SAAS,EAAE;EACb;AACF,CAAC;AAEM,IAAMC,kBAAkB,GAAArB,OAAA,CAAAqB,kBAAA,GAAG;EAChCC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAE,YAAY;EACxBhB,iBAAiB,EAAE,mBAAmB;EACtCiB,0BAA0B,EAAE,4BAA4B;EACxDC,uBAAuB,EAAE,yBAAyB;EAClDC,8BAA8B,EAAE,gCAAgC;EAChEC,6BAA6B,EAAE,+BAA+B;EAC9DC,2BAA2B,EAAE,6BAA6B;EAC1DnB,iBAAiB,EAAE;AACrB,CAAC;AAEM,IAAME,MAAM,GAAAb,OAAA,CAAAa,MAAA,GAAG,QAAQ;AACvB,IAAMkB,uBAAuB,GAAA/B,OAAA,CAAA+B,uBAAA,GAAG,IAAI;AACpC,IAAMC,oBAAoB,GAAAhC,OAAA,CAAAgC,oBAAA,GAAG,sBAAsB;AAEnD,IAAMC,eAAe,GAAAjC,OAAA,CAAAiC,eAAA,GAAG;EAC7BC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAE;AACX,CAAC;AAEM,IAAMC,sBAAsB,GAAArC,OAAA,CAAAqC,sBAAA,GAAG;EACpCH,IAAI,EAAE,MAAM;EACZI,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACX,CAAC;AAEM,IAAMC,4BAA4B,GAAAxC,OAAA,CAAAwC,4BAAA,GAAG;EAC1CN,IAAI,EAAE,MAAM;EACZK,OAAO,EAAE;AACX,CAAC;AAEM,IAAME,mBAAmB,GAAAzC,OAAA,CAAAyC,mBAAA,GAAG;EACjCC,IAAI,EAAE,MAAM;EACZvB,MAAM,EAAE,QAAQ;EAChBwB,OAAO,EAAE;AACX,CAAC","ignoreList":[]}
|
|
@@ -39,6 +39,7 @@ export declare const TRANSCRIPTION_TYPE: {
|
|
|
39
39
|
};
|
|
40
40
|
export declare const VOICEA = "voicea";
|
|
41
41
|
export declare const DEFAULT_SPOKEN_LANGUAGE = "en";
|
|
42
|
+
export declare const LLM_PRACTICE_SESSION = "llm-practice-session";
|
|
42
43
|
export declare const ANNOUNCE_STATUS: {
|
|
43
44
|
IDLE: string;
|
|
44
45
|
JOINED: string;
|
package/dist/types/voicea.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare class VoiceaChannel extends WebexPlugin implements IVoiceaChannel
|
|
|
13
13
|
private captionServiceId?;
|
|
14
14
|
private announceStatus;
|
|
15
15
|
private captionStatus;
|
|
16
|
+
private isCaptionBoxOn;
|
|
16
17
|
private toggleManualCaptionStatus;
|
|
17
18
|
private currentSpokenLanguage?;
|
|
18
19
|
private spokenLanguages;
|
|
@@ -61,6 +62,18 @@ export declare class VoiceaChannel extends WebexPlugin implements IVoiceaChannel
|
|
|
61
62
|
* @returns {void}
|
|
62
63
|
*/
|
|
63
64
|
private processAnnouncementMessage;
|
|
65
|
+
/**
|
|
66
|
+
* Indicates whether the default or practice-session LLM connection is active.
|
|
67
|
+
* @returns {boolean}
|
|
68
|
+
*/
|
|
69
|
+
private isLLMConnected;
|
|
70
|
+
getIsCaptionBoxOn: () => boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Resolves the active LLM publish transport, preferring the practice-session
|
|
73
|
+
* connection only when that session is fully connected.
|
|
74
|
+
* @returns {Object}
|
|
75
|
+
*/
|
|
76
|
+
private getPublishTransport;
|
|
64
77
|
/**
|
|
65
78
|
* Sends Announcement to add voicea to the meeting
|
|
66
79
|
* @returns {void}
|
|
@@ -99,6 +112,11 @@ export declare class VoiceaChannel extends WebexPlugin implements IVoiceaChannel
|
|
|
99
112
|
* @returns {boolean}
|
|
100
113
|
*/
|
|
101
114
|
private isAnnounceProcessing;
|
|
115
|
+
/**
|
|
116
|
+
* is announce processed
|
|
117
|
+
* @returns {boolean}
|
|
118
|
+
*/
|
|
119
|
+
private isAnnounceProcessed;
|
|
102
120
|
/**
|
|
103
121
|
* announce to voicea data chanel
|
|
104
122
|
* @returns {void}
|
|
@@ -151,5 +169,34 @@ export declare class VoiceaChannel extends WebexPlugin implements IVoiceaChannel
|
|
|
151
169
|
* @returns {string}
|
|
152
170
|
*/
|
|
153
171
|
getAnnounceStatus: () => string;
|
|
172
|
+
/**
|
|
173
|
+
* update LLM sub‑channel subscriptions.
|
|
174
|
+
*
|
|
175
|
+
* sends a single `subchannelSubscriptionRequest` to LLM,
|
|
176
|
+
* allowing subscribe and unsubscribe subchannel.
|
|
177
|
+
*
|
|
178
|
+
* @param {string[]} options.subscribe Sub‑channels to subscribe to.
|
|
179
|
+
* @param {string[]} options.unsubscribe Sub‑channels to unsubscribe from.
|
|
180
|
+
* @returns {Promise}
|
|
181
|
+
*/
|
|
182
|
+
updateSubchannelSubscriptions: ({ subscribe, unsubscribe, }?: {
|
|
183
|
+
subscribe?: string[];
|
|
184
|
+
unsubscribe?: string[];
|
|
185
|
+
}) => Promise<void>;
|
|
186
|
+
/**
|
|
187
|
+
* Syncs the UI caption intent and updates transcription subchannel
|
|
188
|
+
* subscriptions accordingly.
|
|
189
|
+
*
|
|
190
|
+
* @param {Object} [options] - Subscription options.
|
|
191
|
+
* @param {string[]} [options.subscribe] - Subchannels to subscribe to.
|
|
192
|
+
* @param {string[]} [options.unsubscribe] - Subchannels to unsubscribe from.
|
|
193
|
+
* @param {boolean} [isCaptionBoxOn=false] - Whether captions are intended to be enabled.
|
|
194
|
+
*
|
|
195
|
+
* @returns {Promise<void>}
|
|
196
|
+
*/
|
|
197
|
+
updateSubchannelSubscriptionsAndSyncCaptionState: (options?: {
|
|
198
|
+
subscribe?: string[];
|
|
199
|
+
unsubscribe?: string[];
|
|
200
|
+
}, isCaptionBoxOn?: boolean) => Promise<void>;
|
|
154
201
|
}
|
|
155
202
|
export default VoiceaChannel;
|
package/dist/voicea.js
CHANGED
|
@@ -52,6 +52,7 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
52
52
|
(0, _defineProperty2.default)(_this, "captionServiceId", void 0);
|
|
53
53
|
(0, _defineProperty2.default)(_this, "announceStatus", void 0);
|
|
54
54
|
(0, _defineProperty2.default)(_this, "captionStatus", void 0);
|
|
55
|
+
(0, _defineProperty2.default)(_this, "isCaptionBoxOn", void 0);
|
|
55
56
|
(0, _defineProperty2.default)(_this, "toggleManualCaptionStatus", void 0);
|
|
56
57
|
(0, _defineProperty2.default)(_this, "currentSpokenLanguage", void 0);
|
|
57
58
|
(0, _defineProperty2.default)(_this, "spokenLanguages", []);
|
|
@@ -205,6 +206,36 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
205
206
|
// @ts-ignore
|
|
206
207
|
_this.trigger(_constants.EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, voiceaLanguageOptions);
|
|
207
208
|
});
|
|
209
|
+
/**
|
|
210
|
+
* Indicates whether the default or practice-session LLM connection is active.
|
|
211
|
+
* @returns {boolean}
|
|
212
|
+
*/
|
|
213
|
+
(0, _defineProperty2.default)(_this, "isLLMConnected", function () {
|
|
214
|
+
return (
|
|
215
|
+
// @ts-ignore
|
|
216
|
+
_this.webex.internal.llm.isConnected() ||
|
|
217
|
+
// @ts-ignore
|
|
218
|
+
_this.webex.internal.llm.isConnected(_constants.LLM_PRACTICE_SESSION)
|
|
219
|
+
);
|
|
220
|
+
});
|
|
221
|
+
(0, _defineProperty2.default)(_this, "getIsCaptionBoxOn", function () {
|
|
222
|
+
return _this.isCaptionBoxOn;
|
|
223
|
+
});
|
|
224
|
+
/**
|
|
225
|
+
* Resolves the active LLM publish transport, preferring the practice-session
|
|
226
|
+
* connection only when that session is fully connected.
|
|
227
|
+
* @returns {Object}
|
|
228
|
+
*/
|
|
229
|
+
(0, _defineProperty2.default)(_this, "getPublishTransport", function () {
|
|
230
|
+
// @ts-ignore
|
|
231
|
+
var llm = _this.webex.internal.llm;
|
|
232
|
+
var isPracticeSessionConnected = llm.isConnected(_constants.LLM_PRACTICE_SESSION);
|
|
233
|
+
return {
|
|
234
|
+
socket: isPracticeSessionConnected && llm.getSocket(_constants.LLM_PRACTICE_SESSION) || llm.socket,
|
|
235
|
+
binding: isPracticeSessionConnected && llm.getBinding(_constants.LLM_PRACTICE_SESSION) || llm.getBinding(),
|
|
236
|
+
datachannelUrl: isPracticeSessionConnected && llm.getDatachannelUrl(_constants.LLM_PRACTICE_SESSION) || llm.getDatachannelUrl()
|
|
237
|
+
};
|
|
238
|
+
});
|
|
208
239
|
/**
|
|
209
240
|
* Sends Announcement to add voicea to the meeting
|
|
210
241
|
* @returns {void}
|
|
@@ -212,13 +243,15 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
212
243
|
(0, _defineProperty2.default)(_this, "sendAnnouncement", function () {
|
|
213
244
|
_this.announceStatus = _constants.ANNOUNCE_STATUS.JOINING;
|
|
214
245
|
_this.listenToEvents();
|
|
215
|
-
|
|
216
|
-
|
|
246
|
+
var _this$getPublishTrans = _this.getPublishTransport(),
|
|
247
|
+
socket = _this$getPublishTrans.socket,
|
|
248
|
+
binding = _this$getPublishTrans.binding;
|
|
249
|
+
socket.send({
|
|
217
250
|
id: "".concat(_this.seqNum),
|
|
218
251
|
type: 'publishRequest',
|
|
219
252
|
recipients: {
|
|
220
253
|
// @ts-ignore
|
|
221
|
-
route:
|
|
254
|
+
route: binding
|
|
222
255
|
},
|
|
223
256
|
// If captionServiceId exists, send it as the 'to' header; otherwise keep headers empty.
|
|
224
257
|
headers: _this.captionServiceId ? {
|
|
@@ -269,15 +302,18 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
269
302
|
* @returns {void}
|
|
270
303
|
*/
|
|
271
304
|
(0, _defineProperty2.default)(_this, "requestLanguage", function (languageCode) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
_this.
|
|
305
|
+
if (!_this.isLLMConnected()) {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
var _this$getPublishTrans2 = _this.getPublishTransport(),
|
|
309
|
+
socket = _this$getPublishTrans2.socket,
|
|
310
|
+
binding = _this$getPublishTrans2.binding;
|
|
311
|
+
socket.send({
|
|
276
312
|
id: "".concat(_this.seqNum),
|
|
277
313
|
type: 'publishRequest',
|
|
278
314
|
recipients: {
|
|
279
315
|
// @ts-ignore
|
|
280
|
-
route:
|
|
316
|
+
route: binding
|
|
281
317
|
},
|
|
282
318
|
headers: {
|
|
283
319
|
to: _this.captionServiceId
|
|
@@ -304,16 +340,18 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
304
340
|
* @returns {void}
|
|
305
341
|
*/
|
|
306
342
|
(0, _defineProperty2.default)(_this, "sendManualClosedCaption", function (text, timeStamp, csis, isFinal) {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
343
|
+
if (!_this.isLLMConnected()) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
var _this$getPublishTrans3 = _this.getPublishTransport(),
|
|
347
|
+
socket = _this$getPublishTrans3.socket,
|
|
348
|
+
binding = _this$getPublishTrans3.binding;
|
|
349
|
+
socket === null || socket === void 0 ? void 0 : socket.send({
|
|
312
350
|
id: "".concat(_this.seqNum),
|
|
313
351
|
type: 'publishRequest',
|
|
314
352
|
recipients: {
|
|
315
353
|
// @ts-ignore
|
|
316
|
-
route:
|
|
354
|
+
route: binding
|
|
317
355
|
},
|
|
318
356
|
headers: {},
|
|
319
357
|
data: {
|
|
@@ -364,6 +402,9 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
364
402
|
_this.areCaptionsEnabled = true;
|
|
365
403
|
_this.captionStatus = _constants.TURN_ON_CAPTION_STATUS.ENABLED;
|
|
366
404
|
_this.announce();
|
|
405
|
+
_this.updateSubchannelSubscriptionsAndSyncCaptionState({
|
|
406
|
+
subscribe: ['transcription']
|
|
407
|
+
}, true);
|
|
367
408
|
}).catch(function () {
|
|
368
409
|
_this.captionStatus = _constants.TURN_ON_CAPTION_STATUS.IDLE;
|
|
369
410
|
throw new Error('turn on captions fail');
|
|
@@ -376,14 +417,22 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
376
417
|
(0, _defineProperty2.default)(_this, "isAnnounceProcessing", function () {
|
|
377
418
|
return [_constants.ANNOUNCE_STATUS.JOINING, _constants.ANNOUNCE_STATUS.JOINED].includes(_this.announceStatus);
|
|
378
419
|
});
|
|
420
|
+
/**
|
|
421
|
+
* is announce processed
|
|
422
|
+
* @returns {boolean}
|
|
423
|
+
*/
|
|
424
|
+
(0, _defineProperty2.default)(_this, "isAnnounceProcessed", function () {
|
|
425
|
+
return _this.announceStatus === _constants.ANNOUNCE_STATUS.JOINED;
|
|
426
|
+
});
|
|
379
427
|
/**
|
|
380
428
|
* announce to voicea data chanel
|
|
381
429
|
* @returns {void}
|
|
382
430
|
*/
|
|
383
431
|
(0, _defineProperty2.default)(_this, "announce", function () {
|
|
384
|
-
if (_this.
|
|
385
|
-
|
|
386
|
-
|
|
432
|
+
if (_this.isAnnounceProcessed()) {
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
if (!_this.isLLMConnected()) {
|
|
387
436
|
throw new Error('voicea can not announce before llm connected');
|
|
388
437
|
}
|
|
389
438
|
_this.sendAnnouncement();
|
|
@@ -411,7 +460,7 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
411
460
|
}
|
|
412
461
|
return _context.abrupt("return", undefined);
|
|
413
462
|
case 1:
|
|
414
|
-
if (_this.
|
|
463
|
+
if (_this.isLLMConnected()) {
|
|
415
464
|
_context.next = 2;
|
|
416
465
|
break;
|
|
417
466
|
}
|
|
@@ -525,6 +574,77 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
525
574
|
(0, _defineProperty2.default)(_this, "getAnnounceStatus", function () {
|
|
526
575
|
return _this.announceStatus;
|
|
527
576
|
});
|
|
577
|
+
/**
|
|
578
|
+
* update LLM sub‑channel subscriptions.
|
|
579
|
+
*
|
|
580
|
+
* sends a single `subchannelSubscriptionRequest` to LLM,
|
|
581
|
+
* allowing subscribe and unsubscribe subchannel.
|
|
582
|
+
*
|
|
583
|
+
* @param {string[]} options.subscribe Sub‑channels to subscribe to.
|
|
584
|
+
* @param {string[]} options.unsubscribe Sub‑channels to unsubscribe from.
|
|
585
|
+
* @returns {Promise}
|
|
586
|
+
*/
|
|
587
|
+
(0, _defineProperty2.default)(_this, "updateSubchannelSubscriptions", /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
588
|
+
var _ref3,
|
|
589
|
+
_ref3$subscribe,
|
|
590
|
+
subscribe,
|
|
591
|
+
_ref3$unsubscribe,
|
|
592
|
+
unsubscribe,
|
|
593
|
+
isDataChannelTokenEnabled,
|
|
594
|
+
_this$getPublishTrans4,
|
|
595
|
+
socket,
|
|
596
|
+
datachannelUrl,
|
|
597
|
+
_args2 = arguments;
|
|
598
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
599
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
600
|
+
case 0:
|
|
601
|
+
_ref3 = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}, _ref3$subscribe = _ref3.subscribe, subscribe = _ref3$subscribe === void 0 ? [] : _ref3$subscribe, _ref3$unsubscribe = _ref3.unsubscribe, unsubscribe = _ref3$unsubscribe === void 0 ? [] : _ref3$unsubscribe;
|
|
602
|
+
_context2.next = 1;
|
|
603
|
+
return _this.webex.internal.llm.isDataChannelTokenEnabled();
|
|
604
|
+
case 1:
|
|
605
|
+
isDataChannelTokenEnabled = _context2.sent;
|
|
606
|
+
if (!(!_this.isLLMConnected() || !isDataChannelTokenEnabled)) {
|
|
607
|
+
_context2.next = 2;
|
|
608
|
+
break;
|
|
609
|
+
}
|
|
610
|
+
return _context2.abrupt("return");
|
|
611
|
+
case 2:
|
|
612
|
+
_this$getPublishTrans4 = _this.getPublishTransport(), socket = _this$getPublishTrans4.socket, datachannelUrl = _this$getPublishTrans4.datachannelUrl; // @ts-ignore
|
|
613
|
+
socket.send({
|
|
614
|
+
id: "".concat(_this.seqNum),
|
|
615
|
+
type: 'subchannelSubscriptionRequest',
|
|
616
|
+
data: {
|
|
617
|
+
// @ts-ignore
|
|
618
|
+
datachannelUri: datachannelUrl,
|
|
619
|
+
subscribe: subscribe,
|
|
620
|
+
unsubscribe: unsubscribe
|
|
621
|
+
},
|
|
622
|
+
trackingId: "".concat(_webexCore.config.trackingIdPrefix, "_").concat(_uuid.default.v4().toString())
|
|
623
|
+
});
|
|
624
|
+
_this.seqNum += 1;
|
|
625
|
+
case 3:
|
|
626
|
+
case "end":
|
|
627
|
+
return _context2.stop();
|
|
628
|
+
}
|
|
629
|
+
}, _callee2);
|
|
630
|
+
})));
|
|
631
|
+
/**
|
|
632
|
+
* Syncs the UI caption intent and updates transcription subchannel
|
|
633
|
+
* subscriptions accordingly.
|
|
634
|
+
*
|
|
635
|
+
* @param {Object} [options] - Subscription options.
|
|
636
|
+
* @param {string[]} [options.subscribe] - Subchannels to subscribe to.
|
|
637
|
+
* @param {string[]} [options.unsubscribe] - Subchannels to unsubscribe from.
|
|
638
|
+
* @param {boolean} [isCaptionBoxOn=false] - Whether captions are intended to be enabled.
|
|
639
|
+
*
|
|
640
|
+
* @returns {Promise<void>}
|
|
641
|
+
*/
|
|
642
|
+
(0, _defineProperty2.default)(_this, "updateSubchannelSubscriptionsAndSyncCaptionState", function () {
|
|
643
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
644
|
+
var isCaptionBoxOn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
645
|
+
_this.isCaptionBoxOn = isCaptionBoxOn;
|
|
646
|
+
return _this.updateSubchannelSubscriptions(options);
|
|
647
|
+
});
|
|
528
648
|
_this.seqNum = 1;
|
|
529
649
|
_this.areCaptionsEnabled = false;
|
|
530
650
|
_this.captionServiceId = undefined;
|
|
@@ -547,6 +667,8 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
547
667
|
if (!this.hasSubscribedToEvents) {
|
|
548
668
|
// @ts-ignore
|
|
549
669
|
this.webex.internal.llm.on('event:relay.event', this.eventProcessor);
|
|
670
|
+
// @ts-ignore
|
|
671
|
+
this.webex.internal.llm.on("event:relay.event:".concat(_constants.LLM_PRACTICE_SESSION), this.eventProcessor);
|
|
550
672
|
this.hasSubscribedToEvents = true;
|
|
551
673
|
}
|
|
552
674
|
}
|
|
@@ -559,9 +681,12 @@ var VoiceaChannel = exports.VoiceaChannel = /*#__PURE__*/function (_WebexPlugin)
|
|
|
559
681
|
key: "deregisterEvents",
|
|
560
682
|
value: function deregisterEvents() {
|
|
561
683
|
this.areCaptionsEnabled = false;
|
|
684
|
+
this.isCaptionBoxOn = false;
|
|
562
685
|
this.captionServiceId = undefined;
|
|
563
686
|
// @ts-ignore
|
|
564
687
|
this.webex.internal.llm.off('event:relay.event', this.eventProcessor);
|
|
688
|
+
// @ts-ignore
|
|
689
|
+
this.webex.internal.llm.off("event:relay.event:".concat(_constants.LLM_PRACTICE_SESSION), this.eventProcessor);
|
|
565
690
|
this.hasSubscribedToEvents = false;
|
|
566
691
|
this.announceStatus = _constants.ANNOUNCE_STATUS.IDLE;
|
|
567
692
|
this.captionStatus = _constants.TURN_ON_CAPTION_STATUS.IDLE;
|
package/dist/voicea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_constants","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","VoiceaChannel","exports","_WebexPlugin","_this","_classCallCheck2","_len","args","Array","_key","concat","VOICEA","_e$headers","seqNum","sequenceNumber","data","relayType","AIBRIDGE_RELAY_TYPES","ANNOUNCEMENT","onCaptionServiceIdUpdate","headers","from","announceStatus","ANNOUNCE_STATUS","JOINED","processAnnouncementMessage","voiceaPayload","TRANSLATION_RESPONSE","processCaptionLanguageResponse","TRANSCRIPTION","processTranscription","MANUAL","CAPTIONER","processManualTranscription","transcriptPayload","sender","data_source","type","TRANSCRIPTION_TYPE","MANUAL_CAPTION_FINAL_RESULT","MANUAL_CAPTION_INTERIM_RESULT","trigger","EVENT_TRIGGERS","NEW_MANUAL_CAPTION","isFinal","transcriptId","id","transcripts","source","TRANSCRIPT_INTERIM_RESULTS","NEW_CAPTION","transcript_id","TRANSCRIPT_FINAL_RESULT","map","transcript","timestamp","millisToMinutesAndSeconds","end_millis","HIGHLIGHT_CREATED","csis","highlight","highlightId","highlight_id","text","highlightLabel","highlight_label","highlightSource","highlight_source","EVA_THANKS","EVA_COMMAND","isListening","command_response","EVA_WAKE","EVA_CANCEL","LANGUAGE_DETECTED","isInSpokenLanguages","spokenLanguages","includes","language","languageCode","statusCode","CAPTION_LANGUAGE_UPDATE","errorCode","errorMessage","message","_voiceaPayload$transl","_voiceaPayload$transl2","_voiceaPayload$transl3","_voiceaPayload$transl4","_voiceaPayload$ASR$sp","_voiceaPayload$ASR","_voiceaPayload$ASR$sp2","_voiceaPayload$ASR2","voiceaLanguageOptions","captionLanguages","translation","allowed_languages","maxLanguages","max_languages","ASR","spoken_languages","currentSpokenLanguage","VOICEA_ANNOUNCEMENT","JOINING","listenToEvents","webex","internal","llm","socket","send","recipients","route","getBinding","captionServiceId","to","clientPayload","version","eventType","CLIENT_ANNOUNCEMENT","trackingId","config","trackingIdPrefix","uuid","v4","toString","languageAssignment","request","method","url","getLocusUrl","body","transcribe","spokenLanguage","then","SPOKEN_LANGUAGE_UPDATE","isConnected","translationLanguage","TRANSLATION_REQUEST","currentCaptionLanguage","timeStamp","start_millis","captionStatus","TURN_ON_CAPTION_STATUS","SENDING","caption","CAPTIONS_TURNED_ON","areCaptionsEnabled","ENABLED","announce","catch","IDLE","Error","isAnnounceProcessing","sendAnnouncement","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_context","prev","next","abrupt","undefined","requestTurnOnCaptions","stop","_x","activate","transcribing","turnOnCaptions","enable","toggleManualCaptionStatus","TOGGLE_MANUAL_CAPTION_STATUS","manualCaption","meetingId","serviceId","requestLanguage","DEFAULT_SPOKEN_LANGUAGE","_inherits2","_createClass2","key","value","hasSubscribedToEvents","on","eventProcessor","deregisterEvents","off","WebexPlugin","_default"],"sources":["voicea.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {WebexPlugin, config} from '@webex/webex-core';\n\nimport {\n EVENT_TRIGGERS,\n AIBRIDGE_RELAY_TYPES,\n TRANSCRIPTION_TYPE,\n VOICEA,\n ANNOUNCE_STATUS,\n TURN_ON_CAPTION_STATUS,\n TOGGLE_MANUAL_CAPTION_STATUS,\n DEFAULT_SPOKEN_LANGUAGE,\n LANGUAGE_ASSIGNMENT,\n} from './constants';\n// eslint-disable-next-line no-unused-vars\nimport {\n AnnouncementPayload,\n CaptionLanguageResponse,\n TranscriptionResponse,\n IVoiceaChannel,\n} from './voicea.types';\nimport {millisToMinutesAndSeconds} from './utils';\n\n/**\n * @description VoiceaChannel to hold single instance of LLM\n * @export\n * @class VoiceaChannel\n */\nexport class VoiceaChannel extends WebexPlugin implements IVoiceaChannel {\n namespace = VOICEA;\n\n private seqNum: number;\n\n private areCaptionsEnabled: boolean;\n\n private hasSubscribedToEvents = false;\n\n private captionServiceId?: string;\n\n private announceStatus: string;\n\n private captionStatus: string;\n\n private toggleManualCaptionStatus: string;\n\n private currentSpokenLanguage?: string;\n\n private spokenLanguages: string[] = [];\n\n private currentCaptionLanguage?: string;\n\n /**\n * @param {Object} e\n * @returns {undefined}\n */\n\n private eventProcessor = (e) => {\n this.seqNum = e.sequenceNumber + 1;\n switch (e.data.relayType) {\n case AIBRIDGE_RELAY_TYPES.VOICEA.ANNOUNCEMENT:\n this.onCaptionServiceIdUpdate(e.headers.from);\n this.announceStatus = ANNOUNCE_STATUS.JOINED;\n this.processAnnouncementMessage(e.data.voiceaPayload);\n break;\n case AIBRIDGE_RELAY_TYPES.VOICEA.TRANSLATION_RESPONSE:\n this.processCaptionLanguageResponse(e.data.voiceaPayload);\n break;\n case AIBRIDGE_RELAY_TYPES.VOICEA.TRANSCRIPTION:\n this.processTranscription(e.data.voiceaPayload);\n break;\n case AIBRIDGE_RELAY_TYPES.MANUAL.TRANSCRIPTION:\n case AIBRIDGE_RELAY_TYPES.MANUAL.CAPTIONER:\n this.processManualTranscription({\n ...e.data.transcriptPayload,\n sender: e.headers?.from,\n data_source: e.data.relayType,\n });\n break;\n default:\n break;\n }\n };\n\n /**\n * Listen to websocket messages\n * @returns {undefined}\n */\n private listenToEvents() {\n if (!this.hasSubscribedToEvents) {\n // @ts-ignore\n this.webex.internal.llm.on('event:relay.event', this.eventProcessor);\n this.hasSubscribedToEvents = true;\n }\n }\n\n /**\n * Listen to websocket messages\n * @returns {void}\n */\n public deregisterEvents() {\n this.areCaptionsEnabled = false;\n this.captionServiceId = undefined;\n // @ts-ignore\n this.webex.internal.llm.off('event:relay.event', this.eventProcessor);\n this.hasSubscribedToEvents = false;\n this.announceStatus = ANNOUNCE_STATUS.IDLE;\n this.captionStatus = TURN_ON_CAPTION_STATUS.IDLE;\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n this.currentSpokenLanguage = undefined;\n this.currentCaptionLanguage = undefined;\n }\n\n /**\n * Initializes Voicea plugin\n * @param {any} args\n */\n constructor(...args) {\n super(...args);\n this.seqNum = 1;\n this.areCaptionsEnabled = false;\n this.captionServiceId = undefined;\n this.announceStatus = ANNOUNCE_STATUS.IDLE;\n this.captionStatus = TURN_ON_CAPTION_STATUS.IDLE;\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n this.currentSpokenLanguage = DEFAULT_SPOKEN_LANGUAGE;\n this.currentCaptionLanguage = undefined;\n }\n\n /**\n * Process manual Transcript and send alert\n * @param {TranscriptionResponse} transcriptPayload\n * @returns {void}\n */\n private processManualTranscription = (transcriptPayload: TranscriptionResponse): void => {\n if (\n transcriptPayload.type === TRANSCRIPTION_TYPE.MANUAL_CAPTION_FINAL_RESULT ||\n transcriptPayload.type === TRANSCRIPTION_TYPE.MANUAL_CAPTION_INTERIM_RESULT\n ) {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.NEW_MANUAL_CAPTION, {\n isFinal: transcriptPayload.type === TRANSCRIPTION_TYPE.MANUAL_CAPTION_FINAL_RESULT,\n transcriptId: transcriptPayload.id,\n transcripts: transcriptPayload.transcripts,\n sender: transcriptPayload.sender,\n source: transcriptPayload.data_source,\n });\n }\n };\n\n /**\n * Process Transcript and send alert\n * @param {TranscriptionResponse} voiceaPayload\n * @returns {void}\n */\n private processTranscription = (voiceaPayload: TranscriptionResponse): void => {\n switch (voiceaPayload.type) {\n case TRANSCRIPTION_TYPE.TRANSCRIPT_INTERIM_RESULTS:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.NEW_CAPTION, {\n isFinal: false,\n transcriptId: voiceaPayload.transcript_id,\n transcripts: voiceaPayload.transcripts,\n });\n break;\n\n case TRANSCRIPTION_TYPE.TRANSCRIPT_FINAL_RESULT:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.NEW_CAPTION, {\n isFinal: true,\n transcriptId: voiceaPayload.transcript_id,\n transcripts: voiceaPayload.transcripts.map((transcript) => {\n transcript.timestamp = millisToMinutesAndSeconds(transcript.end_millis);\n\n return transcript;\n }),\n });\n break;\n\n case TRANSCRIPTION_TYPE.HIGHLIGHT_CREATED:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.HIGHLIGHT_CREATED, {\n csis: voiceaPayload.highlight.csis,\n highlightId: voiceaPayload.highlight.highlight_id,\n text: voiceaPayload.highlight.transcript,\n highlightLabel: voiceaPayload.highlight.highlight_label,\n highlightSource: voiceaPayload.highlight.highlight_source,\n timestamp: millisToMinutesAndSeconds(voiceaPayload.highlight.end_millis),\n });\n break;\n\n case TRANSCRIPTION_TYPE.EVA_THANKS:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.EVA_COMMAND, {\n isListening: false,\n text: voiceaPayload.command_response,\n });\n break;\n\n case TRANSCRIPTION_TYPE.EVA_WAKE:\n case TRANSCRIPTION_TYPE.EVA_CANCEL:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.EVA_COMMAND, {\n isListening: voiceaPayload.type === TRANSCRIPTION_TYPE.EVA_WAKE,\n });\n break;\n\n case TRANSCRIPTION_TYPE.LANGUAGE_DETECTED: {\n const isInSpokenLanguages = this.spokenLanguages.includes(voiceaPayload.language);\n\n if (isInSpokenLanguages) {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.LANGUAGE_DETECTED, {\n languageCode: voiceaPayload.language,\n });\n }\n\n break;\n }\n default:\n break;\n }\n };\n\n /**\n * Processes Caption Language Response\n * @param {CaptionLanguageResponse} voiceaPayload\n * @returns {void}\n */\n private processCaptionLanguageResponse = (voiceaPayload: CaptionLanguageResponse): void => {\n if (voiceaPayload.statusCode === 200) {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, {statusCode: 200});\n } else {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, {\n statusCode: voiceaPayload.errorCode,\n errorMessage: voiceaPayload.message,\n });\n }\n };\n\n /**\n * processes voicea announcement response and triggers event\n * @param {Object} voiceaPayload\n * @returns {void}\n */\n private processAnnouncementMessage = (voiceaPayload: AnnouncementPayload): void => {\n const voiceaLanguageOptions = {\n captionLanguages: voiceaPayload?.translation?.allowed_languages ?? [],\n maxLanguages: voiceaPayload?.translation?.max_languages ?? 0,\n spokenLanguages: voiceaPayload?.ASR?.spoken_languages ?? [],\n currentSpokenLanguage: this.currentSpokenLanguage,\n };\n\n this.spokenLanguages = voiceaPayload?.ASR?.spoken_languages ?? [];\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, voiceaLanguageOptions);\n };\n\n /**\n * Sends Announcement to add voicea to the meeting\n * @returns {void}\n */\n private sendAnnouncement = (): void => {\n this.announceStatus = ANNOUNCE_STATUS.JOINING;\n this.listenToEvents();\n // @ts-ignore\n this.webex.internal.llm.socket.send({\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: this.webex.internal.llm.getBinding(),\n },\n // If captionServiceId exists, send it as the 'to' header; otherwise keep headers empty.\n headers: this.captionServiceId ? {to: this.captionServiceId} : {},\n data: {\n clientPayload: {\n version: 'v2',\n },\n eventType: 'relay.event',\n relayType: AIBRIDGE_RELAY_TYPES.VOICEA.CLIENT_ANNOUNCEMENT,\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n this.seqNum += 1;\n };\n\n /**\n * Set Spoken Language for the meeting\n * @param {string} languageCode\n * @param {\"DEFAULT\" | \"AUTO\" | \"MANUAL\"} languageAssignment\n * @returns {Promise}\n */\n public setSpokenLanguage = (\n languageCode: string,\n languageAssignment?: 'DEFAULT' | 'AUTO' | 'MANUAL'\n ): Promise<void> =>\n // @ts-ignore\n this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body: {\n transcribe: {\n spokenLanguage: languageCode,\n ...(languageAssignment && {languageAssignment}),\n },\n },\n }).then(() => {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, {languageCode});\n });\n\n /**\n * Request Language translation\n * @param {string} languageCode\n * @returns {void}\n */\n public requestLanguage = (languageCode: string): void => {\n // @ts-ignore\n if (!this.webex.internal.llm.isConnected()) return;\n // @ts-ignore\n this.webex.internal.llm.socket.send({\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: this.webex.internal.llm.getBinding(),\n },\n headers: {\n to: this.captionServiceId,\n },\n data: {\n clientPayload: {\n translationLanguage: languageCode,\n id: uuid.v4(),\n },\n eventType: 'relay.event',\n relayType: AIBRIDGE_RELAY_TYPES.VOICEA.TRANSLATION_REQUEST,\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n this.currentCaptionLanguage = languageCode;\n\n this.seqNum += 1;\n };\n\n /**\n * Send manual closed captions to voicea service\n * @param {string} text\n * @param {number} timeStamp\n * @param {number[]} csis\n * @param {boolean} isFinal\n * @returns {void}\n */\n public sendManualClosedCaption = (\n text: string,\n timeStamp: number,\n csis: number[],\n isFinal: boolean\n ): void => {\n // @ts-ignore\n if (!this.webex.internal.llm.isConnected()) return;\n\n // @ts-ignore\n this.webex.internal.llm.socket.send({\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: this.webex.internal.llm.getBinding(),\n },\n headers: {},\n data: {\n eventType: 'relay.event',\n relayType: AIBRIDGE_RELAY_TYPES.MANUAL.CAPTIONER,\n transcriptPayload: {\n type: isFinal\n ? TRANSCRIPTION_TYPE.MANUAL_CAPTION_FINAL_RESULT\n : TRANSCRIPTION_TYPE.MANUAL_CAPTION_INTERIM_RESULT,\n id: uuid.v4(),\n transcripts: [\n {\n text,\n start_millis: timeStamp,\n end_millis: timeStamp,\n csis,\n },\n ],\n transcript_id: uuid.v4(),\n },\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n this.seqNum += 1;\n };\n\n /**\n * request turn on Captions\n * @param {string} [languageCode] - Optional Parameter for spoken language code. Defaults to English\n * @returns {Promise}\n */\n private requestTurnOnCaptions = (languageCode?): undefined | Promise<void> => {\n this.captionStatus = TURN_ON_CAPTION_STATUS.SENDING;\n\n // only set the spoken language if it is provided\n const body = {\n transcribe: {caption: true},\n languageCode,\n };\n\n // @ts-ignore\n // eslint-disable-next-line newline-before-return\n return this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body,\n })\n .then(() => {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.CAPTIONS_TURNED_ON);\n\n this.areCaptionsEnabled = true;\n this.captionStatus = TURN_ON_CAPTION_STATUS.ENABLED;\n this.announce();\n })\n .catch(() => {\n this.captionStatus = TURN_ON_CAPTION_STATUS.IDLE;\n throw new Error('turn on captions fail');\n });\n };\n\n /**\n * is announce processing\n * @returns {boolean}\n */\n private isAnnounceProcessing = () =>\n [ANNOUNCE_STATUS.JOINING, ANNOUNCE_STATUS.JOINED].includes(this.announceStatus);\n\n /**\n * announce to voicea data chanel\n * @returns {void}\n */\n public announce = () => {\n if (this.isAnnounceProcessing()) return;\n // @ts-ignore\n if (!this.webex.internal.llm.isConnected()) {\n throw new Error('voicea can not announce before llm connected');\n }\n this.sendAnnouncement();\n };\n\n /**\n * is turn on caption processing\n * @returns {boolean}\n */\n private isCaptionProcessing = () =>\n [TURN_ON_CAPTION_STATUS.SENDING, TURN_ON_CAPTION_STATUS.ENABLED].includes(this.captionStatus);\n\n /**\n * Turn on Captions\n * @param {string} [spokenLanguage] - Optional Spoken language code\n * @returns {Promise}\n */\n public turnOnCaptions = async (spokenLanguage?): undefined | Promise<void> => {\n if (this.captionStatus === TURN_ON_CAPTION_STATUS.SENDING) return undefined;\n // @ts-ignore\n if (!this.webex.internal.llm.isConnected()) {\n throw new Error('can not turn on captions before llm connected');\n }\n\n return this.requestTurnOnCaptions(spokenLanguage);\n };\n\n /**\n * Toggle transcribing for highlights\n * @param {boolean} activate true means to turn on transcribing and false means to turn off\n * @param {string} spokenLanguage language code for spoken language\n * @returns {Promise}\n */\n public toggleTranscribing = (\n activate: boolean,\n spokenLanguage?: string\n ): undefined | Promise<void> => {\n // @ts-ignore\n return this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body: {\n transcribe: {\n transcribing: activate,\n },\n spokenLanguage,\n },\n }).then((): undefined | Promise<void> => {\n if (activate && !this.areCaptionsEnabled) {\n return this.turnOnCaptions(spokenLanguage);\n }\n\n return undefined;\n });\n };\n\n /**\n * Toggle turn on manual caption\n * @param {boolean} enable true means to turn on manual caption, false means to turn off\n * @returns {Promise}\n */\n public toggleManualCaption = (enable: boolean): undefined | Promise<void> => {\n if (this.toggleManualCaptionStatus === TOGGLE_MANUAL_CAPTION_STATUS.SENDING) return undefined;\n\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.SENDING;\n\n // @ts-ignore\n return this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body: {\n manualCaption: {\n enable,\n },\n },\n })\n .then((): undefined | Promise<void> => {\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n\n return undefined;\n })\n .catch(() => {\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n throw new Error('toggle manual captions fail');\n });\n };\n\n /**\n * In meeting Spoken Language changed event\n * @param {string} languageCode\n * @param {string} meetingId\n * @returns {void}\n */\n public onSpokenLanguageUpdate = (languageCode: string, meetingId): void => {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, {languageCode, meetingId});\n this.currentSpokenLanguage = languageCode;\n };\n\n /**\n * In meeting Spoken Language changed event\n * @param {string} serviceId\n * @returns {void}\n */\n public onCaptionServiceIdUpdate = (serviceId: string): void => {\n if (!serviceId) {\n return;\n }\n if (this.captionServiceId !== serviceId) {\n this.captionServiceId = serviceId;\n // if service id value has changed and the translation language has been set, client needs to resend the translator language message to the LLM.\n if (this.currentCaptionLanguage) {\n this.requestLanguage(this.currentCaptionLanguage);\n }\n }\n };\n\n /**\n * get caption status\n * @returns {string}\n */\n public getCaptionStatus = () => this.captionStatus;\n\n /**\n * get announce status\n * @returns {string}\n */\n public getAnnounceStatus = () => this.announceStatus;\n}\n\nexport default VoiceaChannel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_constants","_utils","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","Boolean","prototype","valueOf","call","VoiceaChannel","exports","_WebexPlugin","_this","_classCallCheck2","_len","args","Array","_key","concat","VOICEA","_e$headers","seqNum","sequenceNumber","data","relayType","AIBRIDGE_RELAY_TYPES","ANNOUNCEMENT","onCaptionServiceIdUpdate","headers","from","announceStatus","ANNOUNCE_STATUS","JOINED","processAnnouncementMessage","voiceaPayload","TRANSLATION_RESPONSE","processCaptionLanguageResponse","TRANSCRIPTION","processTranscription","MANUAL","CAPTIONER","processManualTranscription","transcriptPayload","sender","data_source","type","TRANSCRIPTION_TYPE","MANUAL_CAPTION_FINAL_RESULT","MANUAL_CAPTION_INTERIM_RESULT","trigger","EVENT_TRIGGERS","NEW_MANUAL_CAPTION","isFinal","transcriptId","id","transcripts","source","TRANSCRIPT_INTERIM_RESULTS","NEW_CAPTION","transcript_id","TRANSCRIPT_FINAL_RESULT","map","transcript","timestamp","millisToMinutesAndSeconds","end_millis","HIGHLIGHT_CREATED","csis","highlight","highlightId","highlight_id","text","highlightLabel","highlight_label","highlightSource","highlight_source","EVA_THANKS","EVA_COMMAND","isListening","command_response","EVA_WAKE","EVA_CANCEL","LANGUAGE_DETECTED","isInSpokenLanguages","spokenLanguages","includes","language","languageCode","statusCode","CAPTION_LANGUAGE_UPDATE","errorCode","errorMessage","message","_voiceaPayload$transl","_voiceaPayload$transl2","_voiceaPayload$transl3","_voiceaPayload$transl4","_voiceaPayload$ASR$sp","_voiceaPayload$ASR","_voiceaPayload$ASR$sp2","_voiceaPayload$ASR2","voiceaLanguageOptions","captionLanguages","translation","allowed_languages","maxLanguages","max_languages","ASR","spoken_languages","currentSpokenLanguage","VOICEA_ANNOUNCEMENT","webex","internal","llm","isConnected","LLM_PRACTICE_SESSION","isCaptionBoxOn","isPracticeSessionConnected","socket","getSocket","binding","getBinding","datachannelUrl","getDatachannelUrl","JOINING","listenToEvents","_this$getPublishTrans","getPublishTransport","send","recipients","route","captionServiceId","to","clientPayload","version","eventType","CLIENT_ANNOUNCEMENT","trackingId","config","trackingIdPrefix","uuid","v4","toString","languageAssignment","request","method","url","getLocusUrl","body","transcribe","spokenLanguage","then","SPOKEN_LANGUAGE_UPDATE","isLLMConnected","_this$getPublishTrans2","translationLanguage","TRANSLATION_REQUEST","currentCaptionLanguage","timeStamp","_this$getPublishTrans3","start_millis","captionStatus","TURN_ON_CAPTION_STATUS","SENDING","caption","CAPTIONS_TURNED_ON","areCaptionsEnabled","ENABLED","announce","updateSubchannelSubscriptionsAndSyncCaptionState","subscribe","catch","IDLE","Error","isAnnounceProcessed","sendAnnouncement","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_context","prev","next","abrupt","undefined","requestTurnOnCaptions","stop","_x","activate","transcribing","turnOnCaptions","enable","toggleManualCaptionStatus","TOGGLE_MANUAL_CAPTION_STATUS","manualCaption","meetingId","serviceId","requestLanguage","_callee2","_ref3","_ref3$subscribe","_ref3$unsubscribe","unsubscribe","isDataChannelTokenEnabled","_this$getPublishTrans4","_args2","_context2","sent","datachannelUri","options","updateSubchannelSubscriptions","DEFAULT_SPOKEN_LANGUAGE","_inherits2","_createClass2","key","value","hasSubscribedToEvents","on","eventProcessor","deregisterEvents","off","WebexPlugin","_default"],"sources":["voicea.ts"],"sourcesContent":["import uuid from 'uuid';\nimport {WebexPlugin, config} from '@webex/webex-core';\n\nimport {\n EVENT_TRIGGERS,\n AIBRIDGE_RELAY_TYPES,\n TRANSCRIPTION_TYPE,\n VOICEA,\n LLM_PRACTICE_SESSION,\n ANNOUNCE_STATUS,\n TURN_ON_CAPTION_STATUS,\n TOGGLE_MANUAL_CAPTION_STATUS,\n DEFAULT_SPOKEN_LANGUAGE,\n LANGUAGE_ASSIGNMENT,\n} from './constants';\n// eslint-disable-next-line no-unused-vars\nimport {\n AnnouncementPayload,\n CaptionLanguageResponse,\n TranscriptionResponse,\n IVoiceaChannel,\n} from './voicea.types';\nimport {millisToMinutesAndSeconds} from './utils';\n\n/**\n * @description VoiceaChannel to hold single instance of LLM\n * @export\n * @class VoiceaChannel\n */\nexport class VoiceaChannel extends WebexPlugin implements IVoiceaChannel {\n namespace = VOICEA;\n\n private seqNum: number;\n\n private areCaptionsEnabled: boolean;\n\n private hasSubscribedToEvents = false;\n\n private captionServiceId?: string;\n\n private announceStatus: string;\n\n private captionStatus: string;\n\n private isCaptionBoxOn: boolean;\n\n private toggleManualCaptionStatus: string;\n\n private currentSpokenLanguage?: string;\n\n private spokenLanguages: string[] = [];\n\n private currentCaptionLanguage?: string;\n\n /**\n * @param {Object} e\n * @returns {undefined}\n */\n\n private eventProcessor = (e) => {\n this.seqNum = e.sequenceNumber + 1;\n switch (e.data.relayType) {\n case AIBRIDGE_RELAY_TYPES.VOICEA.ANNOUNCEMENT:\n this.onCaptionServiceIdUpdate(e.headers.from);\n this.announceStatus = ANNOUNCE_STATUS.JOINED;\n this.processAnnouncementMessage(e.data.voiceaPayload);\n break;\n case AIBRIDGE_RELAY_TYPES.VOICEA.TRANSLATION_RESPONSE:\n this.processCaptionLanguageResponse(e.data.voiceaPayload);\n break;\n case AIBRIDGE_RELAY_TYPES.VOICEA.TRANSCRIPTION:\n this.processTranscription(e.data.voiceaPayload);\n break;\n case AIBRIDGE_RELAY_TYPES.MANUAL.TRANSCRIPTION:\n case AIBRIDGE_RELAY_TYPES.MANUAL.CAPTIONER:\n this.processManualTranscription({\n ...e.data.transcriptPayload,\n sender: e.headers?.from,\n data_source: e.data.relayType,\n });\n break;\n default:\n break;\n }\n };\n\n /**\n * Listen to websocket messages\n * @returns {undefined}\n */\n private listenToEvents() {\n if (!this.hasSubscribedToEvents) {\n // @ts-ignore\n this.webex.internal.llm.on('event:relay.event', this.eventProcessor);\n // @ts-ignore\n this.webex.internal.llm.on(`event:relay.event:${LLM_PRACTICE_SESSION}`, this.eventProcessor);\n this.hasSubscribedToEvents = true;\n }\n }\n\n /**\n * Listen to websocket messages\n * @returns {void}\n */\n public deregisterEvents() {\n this.areCaptionsEnabled = false;\n this.isCaptionBoxOn = false;\n this.captionServiceId = undefined;\n // @ts-ignore\n this.webex.internal.llm.off('event:relay.event', this.eventProcessor);\n // @ts-ignore\n this.webex.internal.llm.off(`event:relay.event:${LLM_PRACTICE_SESSION}`, this.eventProcessor);\n this.hasSubscribedToEvents = false;\n this.announceStatus = ANNOUNCE_STATUS.IDLE;\n this.captionStatus = TURN_ON_CAPTION_STATUS.IDLE;\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n this.currentSpokenLanguage = undefined;\n this.currentCaptionLanguage = undefined;\n }\n\n /**\n * Initializes Voicea plugin\n * @param {any} args\n */\n constructor(...args) {\n super(...args);\n this.seqNum = 1;\n this.areCaptionsEnabled = false;\n this.captionServiceId = undefined;\n this.announceStatus = ANNOUNCE_STATUS.IDLE;\n this.captionStatus = TURN_ON_CAPTION_STATUS.IDLE;\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n this.currentSpokenLanguage = DEFAULT_SPOKEN_LANGUAGE;\n this.currentCaptionLanguage = undefined;\n }\n\n /**\n * Process manual Transcript and send alert\n * @param {TranscriptionResponse} transcriptPayload\n * @returns {void}\n */\n private processManualTranscription = (transcriptPayload: TranscriptionResponse): void => {\n if (\n transcriptPayload.type === TRANSCRIPTION_TYPE.MANUAL_CAPTION_FINAL_RESULT ||\n transcriptPayload.type === TRANSCRIPTION_TYPE.MANUAL_CAPTION_INTERIM_RESULT\n ) {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.NEW_MANUAL_CAPTION, {\n isFinal: transcriptPayload.type === TRANSCRIPTION_TYPE.MANUAL_CAPTION_FINAL_RESULT,\n transcriptId: transcriptPayload.id,\n transcripts: transcriptPayload.transcripts,\n sender: transcriptPayload.sender,\n source: transcriptPayload.data_source,\n });\n }\n };\n\n /**\n * Process Transcript and send alert\n * @param {TranscriptionResponse} voiceaPayload\n * @returns {void}\n */\n private processTranscription = (voiceaPayload: TranscriptionResponse): void => {\n switch (voiceaPayload.type) {\n case TRANSCRIPTION_TYPE.TRANSCRIPT_INTERIM_RESULTS:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.NEW_CAPTION, {\n isFinal: false,\n transcriptId: voiceaPayload.transcript_id,\n transcripts: voiceaPayload.transcripts,\n });\n break;\n\n case TRANSCRIPTION_TYPE.TRANSCRIPT_FINAL_RESULT:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.NEW_CAPTION, {\n isFinal: true,\n transcriptId: voiceaPayload.transcript_id,\n transcripts: voiceaPayload.transcripts.map((transcript) => {\n transcript.timestamp = millisToMinutesAndSeconds(transcript.end_millis);\n\n return transcript;\n }),\n });\n break;\n\n case TRANSCRIPTION_TYPE.HIGHLIGHT_CREATED:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.HIGHLIGHT_CREATED, {\n csis: voiceaPayload.highlight.csis,\n highlightId: voiceaPayload.highlight.highlight_id,\n text: voiceaPayload.highlight.transcript,\n highlightLabel: voiceaPayload.highlight.highlight_label,\n highlightSource: voiceaPayload.highlight.highlight_source,\n timestamp: millisToMinutesAndSeconds(voiceaPayload.highlight.end_millis),\n });\n break;\n\n case TRANSCRIPTION_TYPE.EVA_THANKS:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.EVA_COMMAND, {\n isListening: false,\n text: voiceaPayload.command_response,\n });\n break;\n\n case TRANSCRIPTION_TYPE.EVA_WAKE:\n case TRANSCRIPTION_TYPE.EVA_CANCEL:\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.EVA_COMMAND, {\n isListening: voiceaPayload.type === TRANSCRIPTION_TYPE.EVA_WAKE,\n });\n break;\n\n case TRANSCRIPTION_TYPE.LANGUAGE_DETECTED: {\n const isInSpokenLanguages = this.spokenLanguages.includes(voiceaPayload.language);\n\n if (isInSpokenLanguages) {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.LANGUAGE_DETECTED, {\n languageCode: voiceaPayload.language,\n });\n }\n\n break;\n }\n default:\n break;\n }\n };\n\n /**\n * Processes Caption Language Response\n * @param {CaptionLanguageResponse} voiceaPayload\n * @returns {void}\n */\n private processCaptionLanguageResponse = (voiceaPayload: CaptionLanguageResponse): void => {\n if (voiceaPayload.statusCode === 200) {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, {statusCode: 200});\n } else {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.CAPTION_LANGUAGE_UPDATE, {\n statusCode: voiceaPayload.errorCode,\n errorMessage: voiceaPayload.message,\n });\n }\n };\n\n /**\n * processes voicea announcement response and triggers event\n * @param {Object} voiceaPayload\n * @returns {void}\n */\n private processAnnouncementMessage = (voiceaPayload: AnnouncementPayload): void => {\n const voiceaLanguageOptions = {\n captionLanguages: voiceaPayload?.translation?.allowed_languages ?? [],\n maxLanguages: voiceaPayload?.translation?.max_languages ?? 0,\n spokenLanguages: voiceaPayload?.ASR?.spoken_languages ?? [],\n currentSpokenLanguage: this.currentSpokenLanguage,\n };\n\n this.spokenLanguages = voiceaPayload?.ASR?.spoken_languages ?? [];\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.VOICEA_ANNOUNCEMENT, voiceaLanguageOptions);\n };\n\n /**\n * Indicates whether the default or practice-session LLM connection is active.\n * @returns {boolean}\n */\n private isLLMConnected = (): boolean =>\n // @ts-ignore\n this.webex.internal.llm.isConnected() ||\n // @ts-ignore\n this.webex.internal.llm.isConnected(LLM_PRACTICE_SESSION);\n\n public getIsCaptionBoxOn = (): boolean => this.isCaptionBoxOn;\n\n /**\n * Resolves the active LLM publish transport, preferring the practice-session\n * connection only when that session is fully connected.\n * @returns {Object}\n */\n private getPublishTransport = () => {\n // @ts-ignore\n const {llm} = this.webex.internal;\n const isPracticeSessionConnected = llm.isConnected(LLM_PRACTICE_SESSION);\n\n return {\n socket: (isPracticeSessionConnected && llm.getSocket(LLM_PRACTICE_SESSION)) || llm.socket,\n binding:\n (isPracticeSessionConnected && llm.getBinding(LLM_PRACTICE_SESSION)) || llm.getBinding(),\n datachannelUrl:\n (isPracticeSessionConnected && llm.getDatachannelUrl(LLM_PRACTICE_SESSION)) ||\n llm.getDatachannelUrl(),\n };\n };\n\n /**\n * Sends Announcement to add voicea to the meeting\n * @returns {void}\n */\n private sendAnnouncement = (): void => {\n this.announceStatus = ANNOUNCE_STATUS.JOINING;\n this.listenToEvents();\n const {socket, binding} = this.getPublishTransport();\n socket.send({\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: binding,\n },\n // If captionServiceId exists, send it as the 'to' header; otherwise keep headers empty.\n headers: this.captionServiceId ? {to: this.captionServiceId} : {},\n data: {\n clientPayload: {\n version: 'v2',\n },\n eventType: 'relay.event',\n relayType: AIBRIDGE_RELAY_TYPES.VOICEA.CLIENT_ANNOUNCEMENT,\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n this.seqNum += 1;\n };\n\n /**\n * Set Spoken Language for the meeting\n * @param {string} languageCode\n * @param {\"DEFAULT\" | \"AUTO\" | \"MANUAL\"} languageAssignment\n * @returns {Promise}\n */\n public setSpokenLanguage = (\n languageCode: string,\n languageAssignment?: 'DEFAULT' | 'AUTO' | 'MANUAL'\n ): Promise<void> =>\n // @ts-ignore\n this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body: {\n transcribe: {\n spokenLanguage: languageCode,\n ...(languageAssignment && {languageAssignment}),\n },\n },\n }).then(() => {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, {languageCode});\n });\n\n /**\n * Request Language translation\n * @param {string} languageCode\n * @returns {void}\n */\n public requestLanguage = (languageCode: string): void => {\n if (!this.isLLMConnected()) {\n return;\n }\n\n const {socket, binding} = this.getPublishTransport();\n socket.send({\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: binding,\n },\n headers: {\n to: this.captionServiceId,\n },\n data: {\n clientPayload: {\n translationLanguage: languageCode,\n id: uuid.v4(),\n },\n eventType: 'relay.event',\n relayType: AIBRIDGE_RELAY_TYPES.VOICEA.TRANSLATION_REQUEST,\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n this.currentCaptionLanguage = languageCode;\n\n this.seqNum += 1;\n };\n\n /**\n * Send manual closed captions to voicea service\n * @param {string} text\n * @param {number} timeStamp\n * @param {number[]} csis\n * @param {boolean} isFinal\n * @returns {void}\n */\n public sendManualClosedCaption = (\n text: string,\n timeStamp: number,\n csis: number[],\n isFinal: boolean\n ): void => {\n if (!this.isLLMConnected()) {\n return;\n }\n\n const {socket, binding} = this.getPublishTransport();\n\n socket?.send({\n id: `${this.seqNum}`,\n type: 'publishRequest',\n recipients: {\n // @ts-ignore\n route: binding,\n },\n headers: {},\n data: {\n eventType: 'relay.event',\n relayType: AIBRIDGE_RELAY_TYPES.MANUAL.CAPTIONER,\n transcriptPayload: {\n type: isFinal\n ? TRANSCRIPTION_TYPE.MANUAL_CAPTION_FINAL_RESULT\n : TRANSCRIPTION_TYPE.MANUAL_CAPTION_INTERIM_RESULT,\n id: uuid.v4(),\n transcripts: [\n {\n text,\n start_millis: timeStamp,\n end_millis: timeStamp,\n csis,\n },\n ],\n transcript_id: uuid.v4(),\n },\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n this.seqNum += 1;\n };\n\n /**\n * request turn on Captions\n * @param {string} [languageCode] - Optional Parameter for spoken language code. Defaults to English\n * @returns {Promise}\n */\n private requestTurnOnCaptions = (languageCode?): undefined | Promise<void> => {\n this.captionStatus = TURN_ON_CAPTION_STATUS.SENDING;\n\n // only set the spoken language if it is provided\n const body = {\n transcribe: {caption: true},\n languageCode,\n };\n\n // @ts-ignore\n // eslint-disable-next-line newline-before-return\n return this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body,\n })\n .then(() => {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.CAPTIONS_TURNED_ON);\n\n this.areCaptionsEnabled = true;\n this.captionStatus = TURN_ON_CAPTION_STATUS.ENABLED;\n this.announce();\n this.updateSubchannelSubscriptionsAndSyncCaptionState({subscribe: ['transcription']}, true);\n })\n .catch(() => {\n this.captionStatus = TURN_ON_CAPTION_STATUS.IDLE;\n throw new Error('turn on captions fail');\n });\n };\n\n /**\n * is announce processing\n * @returns {boolean}\n */\n private isAnnounceProcessing = () =>\n [ANNOUNCE_STATUS.JOINING, ANNOUNCE_STATUS.JOINED].includes(this.announceStatus);\n\n /**\n * is announce processed\n * @returns {boolean}\n */\n private isAnnounceProcessed = () => this.announceStatus === ANNOUNCE_STATUS.JOINED;\n\n /**\n * announce to voicea data chanel\n * @returns {void}\n */\n public announce = () => {\n if (this.isAnnounceProcessed()) {\n return;\n }\n if (!this.isLLMConnected()) {\n throw new Error('voicea can not announce before llm connected');\n }\n this.sendAnnouncement();\n };\n\n /**\n * is turn on caption processing\n * @returns {boolean}\n */\n private isCaptionProcessing = () =>\n [TURN_ON_CAPTION_STATUS.SENDING, TURN_ON_CAPTION_STATUS.ENABLED].includes(this.captionStatus);\n\n /**\n * Turn on Captions\n * @param {string} [spokenLanguage] - Optional Spoken language code\n * @returns {Promise}\n */\n public turnOnCaptions = async (spokenLanguage?): undefined | Promise<void> => {\n if (this.captionStatus === TURN_ON_CAPTION_STATUS.SENDING) return undefined;\n\n if (!this.isLLMConnected()) {\n throw new Error('can not turn on captions before llm connected');\n }\n\n return this.requestTurnOnCaptions(spokenLanguage);\n };\n\n /**\n * Toggle transcribing for highlights\n * @param {boolean} activate true means to turn on transcribing and false means to turn off\n * @param {string} spokenLanguage language code for spoken language\n * @returns {Promise}\n */\n public toggleTranscribing = (\n activate: boolean,\n spokenLanguage?: string\n ): undefined | Promise<void> => {\n // @ts-ignore\n return this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body: {\n transcribe: {\n transcribing: activate,\n },\n spokenLanguage,\n },\n }).then((): undefined | Promise<void> => {\n if (activate && !this.areCaptionsEnabled) {\n return this.turnOnCaptions(spokenLanguage);\n }\n\n return undefined;\n });\n };\n\n /**\n * Toggle turn on manual caption\n * @param {boolean} enable true means to turn on manual caption, false means to turn off\n * @returns {Promise}\n */\n public toggleManualCaption = (enable: boolean): undefined | Promise<void> => {\n if (this.toggleManualCaptionStatus === TOGGLE_MANUAL_CAPTION_STATUS.SENDING) return undefined;\n\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.SENDING;\n\n // @ts-ignore\n return this.request({\n method: 'PUT',\n // @ts-ignore\n url: `${this.webex.internal.llm.getLocusUrl()}/controls/`,\n body: {\n manualCaption: {\n enable,\n },\n },\n })\n .then((): undefined | Promise<void> => {\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n\n return undefined;\n })\n .catch(() => {\n this.toggleManualCaptionStatus = TOGGLE_MANUAL_CAPTION_STATUS.IDLE;\n throw new Error('toggle manual captions fail');\n });\n };\n\n /**\n * In meeting Spoken Language changed event\n * @param {string} languageCode\n * @param {string} meetingId\n * @returns {void}\n */\n public onSpokenLanguageUpdate = (languageCode: string, meetingId): void => {\n // @ts-ignore\n this.trigger(EVENT_TRIGGERS.SPOKEN_LANGUAGE_UPDATE, {languageCode, meetingId});\n this.currentSpokenLanguage = languageCode;\n };\n\n /**\n * In meeting Spoken Language changed event\n * @param {string} serviceId\n * @returns {void}\n */\n public onCaptionServiceIdUpdate = (serviceId: string): void => {\n if (!serviceId) {\n return;\n }\n if (this.captionServiceId !== serviceId) {\n this.captionServiceId = serviceId;\n // if service id value has changed and the translation language has been set, client needs to resend the translator language message to the LLM.\n if (this.currentCaptionLanguage) {\n this.requestLanguage(this.currentCaptionLanguage);\n }\n }\n };\n\n /**\n * get caption status\n * @returns {string}\n */\n public getCaptionStatus = () => this.captionStatus;\n\n /**\n * get announce status\n * @returns {string}\n */\n public getAnnounceStatus = () => this.announceStatus;\n /**\n * update LLM sub‑channel subscriptions.\n *\n * sends a single `subchannelSubscriptionRequest` to LLM,\n * allowing subscribe and unsubscribe subchannel.\n *\n * @param {string[]} options.subscribe Sub‑channels to subscribe to.\n * @param {string[]} options.unsubscribe Sub‑channels to unsubscribe from.\n * @returns {Promise}\n */\n public updateSubchannelSubscriptions = async ({\n subscribe = [],\n unsubscribe = [],\n }: {\n subscribe?: string[];\n unsubscribe?: string[];\n } = {}): Promise<void> => {\n // @ts-ignore\n const isDataChannelTokenEnabled = await this.webex.internal.llm.isDataChannelTokenEnabled();\n // @ts-ignore\n if (!this.isLLMConnected() || !isDataChannelTokenEnabled) return;\n\n const {socket, datachannelUrl} = this.getPublishTransport();\n\n // @ts-ignore\n socket.send({\n id: `${this.seqNum}`,\n type: 'subchannelSubscriptionRequest',\n data: {\n // @ts-ignore\n datachannelUri: datachannelUrl,\n subscribe,\n unsubscribe,\n },\n trackingId: `${config.trackingIdPrefix}_${uuid.v4().toString()}`,\n });\n\n this.seqNum += 1;\n };\n\n /**\n * Syncs the UI caption intent and updates transcription subchannel\n * subscriptions accordingly.\n *\n * @param {Object} [options] - Subscription options.\n * @param {string[]} [options.subscribe] - Subchannels to subscribe to.\n * @param {string[]} [options.unsubscribe] - Subchannels to unsubscribe from.\n * @param {boolean} [isCaptionBoxOn=false] - Whether captions are intended to be enabled.\n *\n * @returns {Promise<void>}\n */\n public updateSubchannelSubscriptionsAndSyncCaptionState = (\n options: {\n subscribe?: string[];\n unsubscribe?: string[];\n } = {},\n isCaptionBoxOn = false\n ): Promise<void> => {\n this.isCaptionBoxOn = isCaptionBoxOn;\n\n return this.updateSubchannelSubscriptions(options);\n };\n}\n\nexport default VoiceaChannel;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"node": ">=18"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@webex/internal-plugin-llm": "3.
|
|
18
|
-
"@webex/internal-plugin-mercury": "3.11.0-
|
|
19
|
-
"@webex/webex-core": "3.11.0-
|
|
17
|
+
"@webex/internal-plugin-llm": "3.12.0-next.1",
|
|
18
|
+
"@webex/internal-plugin-mercury": "3.11.0-next.10",
|
|
19
|
+
"@webex/webex-core": "3.11.0-next.8",
|
|
20
20
|
"uuid": "^3.3.2"
|
|
21
21
|
},
|
|
22
22
|
"browserify": {
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
32
32
|
"@webex/jest-config-legacy": "0.0.0",
|
|
33
33
|
"@webex/legacy-tools": "0.0.0",
|
|
34
|
-
"@webex/test-helper-chai": "3.
|
|
35
|
-
"@webex/test-helper-mocha": "3.
|
|
36
|
-
"@webex/test-helper-mock-web-socket": "3.
|
|
37
|
-
"@webex/test-helper-mock-webex": "3.
|
|
38
|
-
"@webex/test-helper-test-users": "3.
|
|
34
|
+
"@webex/test-helper-chai": "3.11.0-next.1",
|
|
35
|
+
"@webex/test-helper-mocha": "3.11.0-next.1",
|
|
36
|
+
"@webex/test-helper-mock-web-socket": "3.11.0-next.1",
|
|
37
|
+
"@webex/test-helper-mock-webex": "3.11.0-next.1",
|
|
38
|
+
"@webex/test-helper-test-users": "3.11.0-next.1",
|
|
39
39
|
"eslint": "^8.24.0",
|
|
40
40
|
"prettier": "^2.7.1",
|
|
41
41
|
"sinon": "^9.2.4"
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"test:style": "eslint ./src/**/*.*",
|
|
50
50
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
51
51
|
},
|
|
52
|
-
"version": "3.
|
|
52
|
+
"version": "3.12.0-next.1"
|
|
53
53
|
}
|
package/src/constants.ts
CHANGED