@webex/internal-plugin-ai-assistant 3.12.0-next.8 → 3.12.0-task-refactor.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/ai-assistant.js +57 -90
- package/dist/ai-assistant.js.map +1 -1
- package/dist/constants.js +1 -3
- package/dist/constants.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.js +2 -28
- package/dist/utils.js.map +1 -1
- package/package.json +8 -8
- package/src/ai-assistant.ts +5 -33
- package/src/constants.ts +0 -2
- package/src/types.ts +0 -2
- package/src/utils.ts +0 -12
- package/test/unit/data/messages.ts +21 -122
- package/test/unit/spec/ai-assistant.ts +43 -232
package/dist/ai-assistant.js
CHANGED
|
@@ -81,14 +81,16 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
81
81
|
* @memberof AIAssistant
|
|
82
82
|
*/
|
|
83
83
|
unregister: function unregister() {
|
|
84
|
+
var _this2 = this;
|
|
84
85
|
if (!this.registered) {
|
|
85
86
|
this.logger.info('AI assistant->unregister#INFO, AI assistant plugin already unregistered');
|
|
86
87
|
return _promise.default.resolve();
|
|
87
88
|
}
|
|
88
89
|
this.stopListeningForEvents();
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
return this.webex.internal.mercury.disconnect().then(function () {
|
|
91
|
+
_this2.trigger(_constants.AI_ASSISTANT_UNREGISTERED);
|
|
92
|
+
_this2.registered = false;
|
|
93
|
+
});
|
|
92
94
|
},
|
|
93
95
|
/**
|
|
94
96
|
* registers for Assistant API events through mercury
|
|
@@ -96,12 +98,9 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
96
98
|
* @private
|
|
97
99
|
*/
|
|
98
100
|
listenForEvents: function listenForEvents() {
|
|
99
|
-
var
|
|
101
|
+
var _this3 = this;
|
|
100
102
|
this.webex.internal.mercury.on(_constants.ASSISTANT_API_RESPONSE_EVENT, function (envelope) {
|
|
101
|
-
|
|
102
|
-
});
|
|
103
|
-
this.webex.internal.mercury.on(_constants.ASSISTANT_API_ACTIVITY, function (envelope) {
|
|
104
|
-
_this2._handleAssistantActivity(envelope.data);
|
|
103
|
+
_this3._handleEvent(envelope.data);
|
|
105
104
|
});
|
|
106
105
|
},
|
|
107
106
|
/**
|
|
@@ -111,7 +110,6 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
111
110
|
*/
|
|
112
111
|
stopListeningForEvents: function stopListeningForEvents() {
|
|
113
112
|
this.webex.internal.mercury.off(_constants.ASSISTANT_API_RESPONSE_EVENT);
|
|
114
|
-
this.webex.internal.mercury.off(_constants.ASSISTANT_API_ACTIVITY);
|
|
115
113
|
},
|
|
116
114
|
/**
|
|
117
115
|
* constructs the event name based on request id
|
|
@@ -139,28 +137,6 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
139
137
|
_handleEvent: function _handleEvent(data) {
|
|
140
138
|
this.trigger(this._getResultEventName(data.clientRequestId), data);
|
|
141
139
|
},
|
|
142
|
-
/**
|
|
143
|
-
* Handles an incoming activity event from the assistant API and triggers the correct event for consumers to listen to
|
|
144
|
-
* @param {Object} data the event data
|
|
145
|
-
* @returns {undefined}
|
|
146
|
-
*/
|
|
147
|
-
_handleAssistantActivity: function _handleAssistantActivity(data) {
|
|
148
|
-
var _this3 = this;
|
|
149
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
150
|
-
return _regenerator.default.wrap(function (_context) {
|
|
151
|
-
while (1) switch (_context.prev = _context.next) {
|
|
152
|
-
case 0:
|
|
153
|
-
_context.next = 1;
|
|
154
|
-
return (0, _utils.decryptAssistantActivity)(data.activity, _this3.webex);
|
|
155
|
-
case 1:
|
|
156
|
-
_this3.trigger(_constants.AI_ASSISTANT_ACTIVITY_RECEIVED, data);
|
|
157
|
-
case 2:
|
|
158
|
-
case "end":
|
|
159
|
-
return _context.stop();
|
|
160
|
-
}
|
|
161
|
-
}, _callee);
|
|
162
|
-
}))();
|
|
163
|
-
},
|
|
164
140
|
/**
|
|
165
141
|
* Decrypts the response content in place
|
|
166
142
|
* @param {any} responseContent the content object from the assistant-api response
|
|
@@ -168,48 +144,48 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
168
144
|
*/
|
|
169
145
|
_decryptContent: function _decryptContent(responseContent) {
|
|
170
146
|
var _this4 = this;
|
|
171
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
147
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
172
148
|
var _t;
|
|
173
|
-
return _regenerator.default.wrap(function (
|
|
174
|
-
while (1) switch (
|
|
149
|
+
return _regenerator.default.wrap(function (_context) {
|
|
150
|
+
while (1) switch (_context.prev = _context.next) {
|
|
175
151
|
case 0:
|
|
176
152
|
_t = responseContent.name;
|
|
177
|
-
|
|
153
|
+
_context.next = _t === _constants.RESPONSE_NAMES.MESSAGE ? 1 : _t === _constants.RESPONSE_NAMES.CITED_ANSWER ? 3 : _t === _constants.RESPONSE_NAMES.SCHEDULE_MEETING ? 5 : _t === _constants.RESPONSE_NAMES.TOOL_RESULT ? 7 : _t === _constants.RESPONSE_NAMES.TOOL_USE ? 8 : _t === _constants.RESPONSE_NAMES.WORKSPACE ? 10 : 12;
|
|
178
154
|
break;
|
|
179
155
|
case 1:
|
|
180
|
-
|
|
156
|
+
_context.next = 2;
|
|
181
157
|
return (0, _utils.decryptMessage)(responseContent, _this4.webex);
|
|
182
158
|
case 2:
|
|
183
|
-
return
|
|
159
|
+
return _context.abrupt("continue", 13);
|
|
184
160
|
case 3:
|
|
185
|
-
|
|
161
|
+
_context.next = 4;
|
|
186
162
|
return (0, _utils.decryptCitedAnswer)(responseContent, _this4.webex);
|
|
187
163
|
case 4:
|
|
188
|
-
return
|
|
164
|
+
return _context.abrupt("continue", 13);
|
|
189
165
|
case 5:
|
|
190
|
-
|
|
166
|
+
_context.next = 6;
|
|
191
167
|
return (0, _utils.decryptScheduleMeeting)(responseContent, _this4.webex);
|
|
192
168
|
case 6:
|
|
193
|
-
return
|
|
169
|
+
return _context.abrupt("continue", 13);
|
|
194
170
|
case 7:
|
|
195
|
-
return
|
|
171
|
+
return _context.abrupt("continue", 13);
|
|
196
172
|
case 8:
|
|
197
|
-
|
|
173
|
+
_context.next = 9;
|
|
198
174
|
return (0, _utils.decryptToolUse)(responseContent, _this4.webex);
|
|
199
175
|
case 9:
|
|
200
|
-
return
|
|
176
|
+
return _context.abrupt("continue", 13);
|
|
201
177
|
case 10:
|
|
202
|
-
|
|
178
|
+
_context.next = 11;
|
|
203
179
|
return (0, _utils.decryptWorkspace)(responseContent, _this4.webex);
|
|
204
180
|
case 11:
|
|
205
|
-
return
|
|
181
|
+
return _context.abrupt("continue", 13);
|
|
206
182
|
case 12:
|
|
207
183
|
_this4.logger.error("AI assistant->_decryptContent#ERROR, Unknown response content name: ".concat(responseContent.name));
|
|
208
184
|
case 13:
|
|
209
185
|
case "end":
|
|
210
|
-
return
|
|
186
|
+
return _context.stop();
|
|
211
187
|
}
|
|
212
|
-
},
|
|
188
|
+
}, _callee);
|
|
213
189
|
}))();
|
|
214
190
|
},
|
|
215
191
|
/**
|
|
@@ -222,8 +198,7 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
222
198
|
_request: function _request(options) {
|
|
223
199
|
var _this5 = this;
|
|
224
200
|
var resource = options.resource,
|
|
225
|
-
params = options.params
|
|
226
|
-
headers = options.headers;
|
|
201
|
+
params = options.params;
|
|
227
202
|
var timeout = this.config.requestTimeout;
|
|
228
203
|
var requestId = options.requestId || _uuid.default.v4();
|
|
229
204
|
var eventName = this._getResultEventName(requestId);
|
|
@@ -241,10 +216,10 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
241
216
|
});
|
|
242
217
|
}, timeout);
|
|
243
218
|
_this5.listenTo(_this5, eventName, /*#__PURE__*/function () {
|
|
244
|
-
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
219
|
+
var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
|
|
245
220
|
var resultData, errorMessage, errorCode, responseType, decryptErrorMessage, _t2;
|
|
246
|
-
return _regenerator.default.wrap(function (
|
|
247
|
-
while (1) switch (
|
|
221
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
222
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
248
223
|
case 0:
|
|
249
224
|
timer.reset();
|
|
250
225
|
resultData = (0, _lodash.get)(data, 'response.content', {});
|
|
@@ -255,19 +230,19 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
255
230
|
timer.cancel();
|
|
256
231
|
_this5.stopListening(_this5, eventName);
|
|
257
232
|
}
|
|
258
|
-
|
|
233
|
+
_context2.prev = 1;
|
|
259
234
|
if (errorCode) {
|
|
260
|
-
|
|
235
|
+
_context2.next = 2;
|
|
261
236
|
break;
|
|
262
237
|
}
|
|
263
|
-
|
|
238
|
+
_context2.next = 2;
|
|
264
239
|
return _this5._decryptContent(resultData);
|
|
265
240
|
case 2:
|
|
266
|
-
|
|
241
|
+
_context2.next = 4;
|
|
267
242
|
break;
|
|
268
243
|
case 3:
|
|
269
|
-
|
|
270
|
-
_t2 =
|
|
244
|
+
_context2.prev = 3;
|
|
245
|
+
_t2 = _context2["catch"](1);
|
|
271
246
|
decryptErrorMessage = _t2.message;
|
|
272
247
|
case 4:
|
|
273
248
|
_this5.trigger(streamEventName, (0, _lodash.merge)({}, data.response, {
|
|
@@ -279,9 +254,9 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
279
254
|
}));
|
|
280
255
|
case 5:
|
|
281
256
|
case "end":
|
|
282
|
-
return
|
|
257
|
+
return _context2.stop();
|
|
283
258
|
}
|
|
284
|
-
},
|
|
259
|
+
}, _callee2, null, [[1, 3]]);
|
|
285
260
|
}));
|
|
286
261
|
return function (_x) {
|
|
287
262
|
return _ref.apply(this, arguments);
|
|
@@ -294,8 +269,7 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
294
269
|
contentType: 'application/json',
|
|
295
270
|
body: _objectSpread({
|
|
296
271
|
clientRequestId: requestId
|
|
297
|
-
}, params)
|
|
298
|
-
headers: headers
|
|
272
|
+
}, params)
|
|
299
273
|
}).then(function (_ref2) {
|
|
300
274
|
var body = _ref2.body;
|
|
301
275
|
resolve(_objectSpread(_objectSpread({}, body), {}, {
|
|
@@ -321,30 +295,29 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
321
295
|
* @param {Object} options.locale optional locale to use for the request, defaults to 'en_US'
|
|
322
296
|
* @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated
|
|
323
297
|
* @param {string} options.entryPoint optional entryPoint to use for this request
|
|
324
|
-
* @param {string} options.renderProtocolVersion optional render protocol version to use for this request
|
|
325
298
|
* @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName
|
|
326
299
|
* @public
|
|
327
300
|
* @memberof AIAssistant
|
|
328
301
|
*/
|
|
329
302
|
makeAiAssistantRequest: function makeAiAssistantRequest(options) {
|
|
330
303
|
var _this6 = this;
|
|
331
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
332
|
-
var value, content
|
|
333
|
-
return _regenerator.default.wrap(function (
|
|
334
|
-
while (1) switch (
|
|
304
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
305
|
+
var value, content;
|
|
306
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
307
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
335
308
|
case 0:
|
|
336
309
|
value = options.contentValue;
|
|
337
310
|
if (!(options.contentType === 'message')) {
|
|
338
|
-
|
|
311
|
+
_context3.next = 2;
|
|
339
312
|
break;
|
|
340
313
|
}
|
|
341
|
-
|
|
314
|
+
_context3.next = 1;
|
|
342
315
|
return _this6._encryptData({
|
|
343
316
|
text: options.contentValue,
|
|
344
317
|
encryptionKeyUrl: options.encryptionKeyUrl
|
|
345
318
|
});
|
|
346
319
|
case 1:
|
|
347
|
-
value =
|
|
320
|
+
value = _context3.sent;
|
|
348
321
|
case 2:
|
|
349
322
|
content = {
|
|
350
323
|
context: {
|
|
@@ -357,11 +330,7 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
357
330
|
if (options.parameters) {
|
|
358
331
|
content.parameters = options.parameters;
|
|
359
332
|
}
|
|
360
|
-
|
|
361
|
-
if (options.renderProtocolVersion) {
|
|
362
|
-
headers['AI-Assistant-Render-Protocol'] = options.renderProtocolVersion;
|
|
363
|
-
}
|
|
364
|
-
return _context4.abrupt("return", _this6._request(_objectSpread(_objectSpread({
|
|
333
|
+
return _context3.abrupt("return", _this6._request(_objectSpread({
|
|
365
334
|
resource: options.sessionId ? "sessions/".concat(options.sessionId, "/messages") : 'sessions/messages',
|
|
366
335
|
params: _objectSpread(_objectSpread({
|
|
367
336
|
async: 'chunked',
|
|
@@ -374,14 +343,12 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
374
343
|
} : {})
|
|
375
344
|
}, options.requestId ? {
|
|
376
345
|
requestId: options.requestId
|
|
377
|
-
} : {})
|
|
378
|
-
headers: headers
|
|
379
|
-
})));
|
|
346
|
+
} : {})));
|
|
380
347
|
case 3:
|
|
381
348
|
case "end":
|
|
382
|
-
return
|
|
349
|
+
return _context3.stop();
|
|
383
350
|
}
|
|
384
|
-
},
|
|
351
|
+
}, _callee3);
|
|
385
352
|
}))();
|
|
386
353
|
},
|
|
387
354
|
/**
|
|
@@ -461,22 +428,22 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
461
428
|
*/
|
|
462
429
|
_encryptData: function _encryptData(_ref3) {
|
|
463
430
|
var _this7 = this;
|
|
464
|
-
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function
|
|
431
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
465
432
|
var text, encryptionKeyUrl, result;
|
|
466
|
-
return _regenerator.default.wrap(function (
|
|
467
|
-
while (1) switch (
|
|
433
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
434
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
468
435
|
case 0:
|
|
469
436
|
text = _ref3.text, encryptionKeyUrl = _ref3.encryptionKeyUrl;
|
|
470
|
-
|
|
437
|
+
_context4.next = 1;
|
|
471
438
|
return _this7.webex.internal.encryption.encryptText(encryptionKeyUrl, text);
|
|
472
439
|
case 1:
|
|
473
|
-
result =
|
|
474
|
-
return
|
|
440
|
+
result = _context4.sent;
|
|
441
|
+
return _context4.abrupt("return", result);
|
|
475
442
|
case 2:
|
|
476
443
|
case "end":
|
|
477
|
-
return
|
|
444
|
+
return _context4.stop();
|
|
478
445
|
}
|
|
479
|
-
},
|
|
446
|
+
}, _callee4);
|
|
480
447
|
}))();
|
|
481
448
|
},
|
|
482
449
|
/**
|
|
@@ -501,7 +468,7 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
501
468
|
contentValue: options.question
|
|
502
469
|
}));
|
|
503
470
|
},
|
|
504
|
-
version: "3.12.0-
|
|
471
|
+
version: "3.12.0-task-refactor.1"
|
|
505
472
|
});
|
|
506
473
|
var _default = exports.default = AIAssistant;
|
|
507
474
|
//# sourceMappingURL=ai-assistant.js.map
|
package/dist/ai-assistant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_lodash","_commonTimers","_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","AIAssistant","WebexPlugin","extend","namespace","registered","initialize","_len","args","Array","_key","_apply","prototype","register","_this","webex","canAuthorize","logger","error","_promise","reject","Error","info","resolve","internal","mercury","connect","then","listenForEvents","trigger","AI_ASSISTANT_REGISTERED","catch","concat","message","unregister","stopListeningForEvents","AI_ASSISTANT_UNREGISTERED","_this2","on","ASSISTANT_API_RESPONSE_EVENT","envelope","_handleEvent","data","ASSISTANT_API_ACTIVITY","_handleAssistantActivity","off","_getResultEventName","requestId","AI_ASSISTANT_RESULT","_getStreamEventName","AI_ASSISTANT_STREAM","clientRequestId","_this3","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_context","prev","next","decryptAssistantActivity","activity","AI_ASSISTANT_ACTIVITY_RECEIVED","stop","_decryptContent","responseContent","_this4","_callee2","_t","_context2","name","RESPONSE_NAMES","MESSAGE","CITED_ANSWER","SCHEDULE_MEETING","TOOL_RESULT","TOOL_USE","WORKSPACE","decryptMessage","abrupt","decryptCitedAnswer","decryptScheduleMeeting","decryptToolUse","decryptWorkspace","_request","options","_this5","resource","params","headers","timeout","config","requestTimeout","uuid","v4","eventName","streamEventName","timer","Timer","stopListening","finished","errorMessage","AI_ASSISTANT_ERRORS","AI_ASSISTANT_TIMEOUT","errorCode","AI_ASSISTANT_ERROR_CODES","listenTo","_ref","_callee3","resultData","responseType","decryptErrorMessage","_t2","_context3","reset","get","cancel","merge","response","_x","request","service","AI_ASSISTANT_SERVICE_NAME","method","contentType","body","_ref2","start","makeAiAssistantRequest","_this6","_callee4","value","content","_context4","contentValue","_encryptData","text","encryptionKeyUrl","sent","context","resources","contextResources","type","parameters","renderProtocolVersion","sessionId","async","locale","entryPoint","assistant","summarizeMeeting","CONTENT_TYPES","ACTION","ACTION_TYPES","SUMMARIZE_FOR_ME","id","meetingInstanceId","CONTEXT_RESOURCE_TYPES","MEETING","url","meetingSite","lastMinutes","wasMyNameMentioned","WAS_MY_NAME_MENTIONED","showAllActionItems","SHOW_ALL_ACTION_ITEMS","_ref3","_this7","_callee5","result","_context5","encryption","encryptText","askMeAnything","question","version","_default","exports"],"sources":["ai-assistant.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\nimport uuid from 'uuid';\nimport {WebexPlugin} from '@webex/webex-core';\nimport '@webex/internal-plugin-mercury';\nimport {get, merge} from 'lodash';\nimport {Timer} from '@webex/common-timers';\n\nimport {\n AiAssistantRequestOptions,\n RequestOptions,\n RequestResponse,\n SummarizeMeetingOptions,\n} from './types';\nimport {\n AI_ASSISTANT_ERROR_CODES,\n AI_ASSISTANT_ERRORS,\n AI_ASSISTANT_REGISTERED,\n AI_ASSISTANT_RESULT,\n AI_ASSISTANT_STREAM,\n AI_ASSISTANT_UNREGISTERED,\n AI_ASSISTANT_SERVICE_NAME,\n ASSISTANT_API_RESPONSE_EVENT,\n ASSISTANT_API_ACTIVITY,\n ACTION_TYPES,\n CONTENT_TYPES,\n CONTEXT_RESOURCE_TYPES,\n RESPONSE_NAMES,\n AI_ASSISTANT_ACTIVITY_RECEIVED,\n} from './constants';\nimport {\n decryptAssistantActivity,\n decryptCitedAnswer,\n decryptMessage,\n decryptScheduleMeeting,\n decryptToolUse,\n decryptWorkspace,\n} from './utils';\n\nconst AIAssistant = WebexPlugin.extend({\n namespace: 'AIAssistant',\n\n /**\n * registered value indicating events registration is successful\n * @instance\n * @type {Boolean}\n * @memberof AIAssistant\n */\n registered: false,\n\n /**\n * Initializer\n * @private\n * @param {Object} attrs\n * @param {Object} options\n * @returns {undefined}\n */\n initialize(...args) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n },\n\n /**\n * Explicitly sets up the AI assistant plugin by connecting to mercury, and listening for AI assistant events.\n * @returns {Promise}\n * @public\n * @memberof AIAssistant\n */\n register() {\n if (!this.webex.canAuthorize) {\n this.logger.error('AI assistant->register#ERROR, Unable to register, SDK cannot authorize');\n\n return Promise.reject(new Error('SDK cannot authorize'));\n }\n\n if (this.registered) {\n this.logger.info('AI assistant->register#INFO, AI assistant plugin already registered');\n\n return Promise.resolve();\n }\n\n return this.webex.internal.mercury\n .connect()\n .then(() => {\n this.listenForEvents();\n this.trigger(AI_ASSISTANT_REGISTERED);\n this.registered = true;\n })\n .catch((error) => {\n this.logger.error(`AI assistant->register#ERROR, Unable to register, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Explicitly tears down the AI assistant plugin by disconnecting from mercury, and stops listening to AI assistant events\n * @returns {Promise}\n * @public\n * @memberof AIAssistant\n */\n unregister() {\n if (!this.registered) {\n this.logger.info('AI assistant->unregister#INFO, AI assistant plugin already unregistered');\n\n return Promise.resolve();\n }\n\n this.stopListeningForEvents();\n\n this.trigger(AI_ASSISTANT_UNREGISTERED);\n this.registered = false;\n\n return Promise.resolve();\n },\n\n /**\n * registers for Assistant API events through mercury\n * @returns {undefined}\n * @private\n */\n listenForEvents() {\n this.webex.internal.mercury.on(ASSISTANT_API_RESPONSE_EVENT, (envelope) => {\n this._handleEvent(envelope.data);\n });\n\n this.webex.internal.mercury.on(ASSISTANT_API_ACTIVITY, (envelope) => {\n this._handleAssistantActivity(envelope.data);\n });\n },\n\n /**\n * unregisteres all the Assistant API events from mercury\n * @returns {undefined}\n * @private\n */\n stopListeningForEvents() {\n this.webex.internal.mercury.off(ASSISTANT_API_RESPONSE_EVENT);\n this.webex.internal.mercury.off(ASSISTANT_API_ACTIVITY);\n },\n\n /**\n * constructs the event name based on request id\n * This is used by the plugin to listen for the result of a particular request\n * @param {UUID} requestId the id of the request\n * @returns {string}\n */\n _getResultEventName(requestId: string) {\n return `${AI_ASSISTANT_RESULT}:${requestId}`;\n },\n\n /**\n * constructs the stream event name based on request id\n * This is used by the consumer to listen for the stream (i.e. the data) of a particular request\n * @param {UUID} requestId the id of the request\n * @returns {string}\n */\n _getStreamEventName(requestId: string) {\n return `${AI_ASSISTANT_STREAM}:${requestId}`;\n },\n\n /**\n * Takes incoming data and triggers correct events\n * @param {Object} data the event data\n * @returns {undefined}\n */\n _handleEvent(data) {\n this.trigger(this._getResultEventName(data.clientRequestId), data);\n },\n\n /**\n * Handles an incoming activity event from the assistant API and triggers the correct event for consumers to listen to\n * @param {Object} data the event data\n * @returns {undefined}\n */\n async _handleAssistantActivity(data) {\n await decryptAssistantActivity(data.activity, this.webex);\n\n this.trigger(AI_ASSISTANT_ACTIVITY_RECEIVED, data);\n },\n\n /**\n * Decrypts the response content in place\n * @param {any} responseContent the content object from the assistant-api response\n * @returns {Promise} resolves once decryption is complete\n */\n async _decryptContent(responseContent) {\n switch (responseContent.name) {\n case RESPONSE_NAMES.MESSAGE: {\n await decryptMessage(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.CITED_ANSWER: {\n await decryptCitedAnswer(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.SCHEDULE_MEETING: {\n await decryptScheduleMeeting(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.TOOL_RESULT: {\n // No encrypted content in tool_result\n break;\n }\n case RESPONSE_NAMES.TOOL_USE: {\n await decryptToolUse(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.WORKSPACE: {\n await decryptWorkspace(responseContent, this.webex);\n break;\n }\n default:\n this.logger.error(\n `AI assistant->_decryptContent#ERROR, Unknown response content name: ${responseContent.name}`\n );\n }\n },\n\n /**\n * Makes the request to the AI assistant service\n * @param {Object} options\n * @param {string} options.resource the URL to query\n * @param {Mixed} options.params additional params for the body of the request\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n _request(options: RequestOptions): Promise<RequestResponse> {\n const {resource, params, headers} = options;\n\n const timeout = this.config.requestTimeout;\n const requestId = options.requestId || uuid.v4();\n const eventName = this._getResultEventName(requestId);\n const streamEventName = this._getStreamEventName(requestId);\n\n // eslint-disable-next-line no-async-promise-executor\n return new Promise((resolve, reject) => {\n const timer = new Timer(() => {\n this.stopListening(this, eventName);\n this.trigger(streamEventName, {\n requestId,\n finished: true,\n errorMessage: AI_ASSISTANT_ERRORS.AI_ASSISTANT_TIMEOUT,\n errorCode: AI_ASSISTANT_ERROR_CODES.AI_ASSISTANT_TIMEOUT,\n });\n }, timeout);\n\n this.listenTo(this, eventName, async (data) => {\n timer.reset();\n const resultData = get(data, 'response.content', {});\n const errorMessage = get(data, 'response.errorMessage');\n const errorCode = get(data, 'response.errorCode');\n const responseType = get(data, 'responseType');\n\n if (data.finished) {\n timer.cancel();\n this.stopListening(this, eventName);\n }\n\n let decryptErrorMessage;\n\n try {\n if (!errorCode) {\n await this._decryptContent(resultData);\n }\n } catch (decryptError) {\n decryptErrorMessage = decryptError.message;\n }\n\n this.trigger(\n streamEventName,\n merge({}, data.response, {\n responseType,\n requestId,\n finished: data.finished,\n errorMessage: errorMessage || decryptErrorMessage,\n errorCode,\n })\n );\n });\n\n this.webex\n .request({\n service: AI_ASSISTANT_SERVICE_NAME,\n resource,\n method: 'POST',\n contentType: 'application/json',\n body: {clientRequestId: requestId, ...params},\n headers,\n })\n .then(({body}) => {\n resolve({...body, requestId, streamEventName});\n })\n .catch((error) => {\n reject(error);\n });\n\n timer.start();\n });\n },\n\n /**\n * Common method to make AI assistant requests for meeting analysis\n * @param {Object} options\n * @param {string} options.contextResources array of context resources to include in the request\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.contentType the type of content ('action' or 'message')\n * @param {string} options.contentValue the value to use (action name or message text)\n * @param {Object} options.parameters optional parameters to include in the request (for action type only)\n * @param {Object} options.assistant optional parameter to specify the assistant to use\n * @param {Object} options.locale optional locale to use for the request, defaults to 'en_US'\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @param {string} options.entryPoint optional entryPoint to use for this request\n * @param {string} options.renderProtocolVersion optional render protocol version to use for this request\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n * @public\n * @memberof AIAssistant\n */\n async makeAiAssistantRequest(options: AiAssistantRequestOptions): Promise<RequestResponse> {\n let value = options.contentValue;\n\n if (options.contentType === 'message') {\n value = await this._encryptData({\n text: options.contentValue,\n encryptionKeyUrl: options.encryptionKeyUrl,\n });\n }\n\n const content: any = {\n context: {\n resources: options.contextResources,\n },\n encryptionKeyUrl: options.encryptionKeyUrl,\n type: options.contentType,\n value,\n };\n\n if (options.parameters) {\n content.parameters = options.parameters;\n }\n\n const headers = {};\n\n if (options.renderProtocolVersion) {\n headers['AI-Assistant-Render-Protocol'] = options.renderProtocolVersion;\n }\n\n return this._request({\n resource: options.sessionId ? `sessions/${options.sessionId}/messages` : 'sessions/messages',\n params: {\n async: 'chunked',\n locale: options.locale || 'en_US',\n content,\n ...(options.entryPoint ? {entryPoint: options.entryPoint} : {}),\n ...(options.assistant ? {assistant: options.assistant} : {}),\n },\n ...(options.requestId ? {requestId: options.requestId} : {}),\n headers,\n });\n },\n\n /**\n * Returns the summary of a meeting\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {number} options.lastMinutes Optional number of minutes to summarize from the end of the meeting. If not included, summarizes from the start.\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n summarizeMeeting(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contentType: CONTENT_TYPES.ACTION,\n contentValue: ACTION_TYPES.SUMMARIZE_FOR_ME,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n ...(options.lastMinutes ? {parameters: {lastMinutes: options.lastMinutes}} : {}),\n });\n },\n\n /**\n * Checks if the user's name was mentioned in a meeting\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n wasMyNameMentioned(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n contentType: CONTENT_TYPES.ACTION,\n contentValue: ACTION_TYPES.WAS_MY_NAME_MENTIONED,\n });\n },\n\n /**\n * Returns all action items from a meeting\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n showAllActionItems(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n contentType: CONTENT_TYPES.ACTION,\n contentValue: ACTION_TYPES.SHOW_ALL_ACTION_ITEMS,\n });\n },\n\n /**\n * Helper method to encrypt text using the encryption key URL\n * @param {Object} options\n * @param {string} options.text the text to encrypt\n * @param {string} options.encryptionKeyUrl the encryption key URL to use for encryption\n * @returns {Promise<string>} returns a promise that resolves with the encrypted text\n */\n async _encryptData({text, encryptionKeyUrl}) {\n const result = await this.webex.internal.encryption.encryptText(encryptionKeyUrl, text);\n\n return result;\n },\n\n /**\n * Ask any question about the meeting content\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.question the question to ask about the meeting content\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n askMeAnything(options: SummarizeMeetingOptions & {question: string}): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n contentType: CONTENT_TYPES.MESSAGE,\n contentValue: options.question,\n });\n },\n});\n\nexport default AIAssistant;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_lodash","_commonTimers","_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","AIAssistant","WebexPlugin","extend","namespace","registered","initialize","_len","args","Array","_key","_apply","prototype","register","_this","webex","canAuthorize","logger","error","_promise","reject","Error","info","resolve","internal","mercury","connect","then","listenForEvents","trigger","AI_ASSISTANT_REGISTERED","catch","concat","message","unregister","_this2","stopListeningForEvents","disconnect","AI_ASSISTANT_UNREGISTERED","_this3","on","ASSISTANT_API_RESPONSE_EVENT","envelope","_handleEvent","data","off","_getResultEventName","requestId","AI_ASSISTANT_RESULT","_getStreamEventName","AI_ASSISTANT_STREAM","clientRequestId","_decryptContent","responseContent","_this4","_asyncToGenerator2","_regenerator","mark","_callee","_t","wrap","_context","prev","next","name","RESPONSE_NAMES","MESSAGE","CITED_ANSWER","SCHEDULE_MEETING","TOOL_RESULT","TOOL_USE","WORKSPACE","decryptMessage","abrupt","decryptCitedAnswer","decryptScheduleMeeting","decryptToolUse","decryptWorkspace","stop","_request","options","_this5","resource","params","timeout","config","requestTimeout","uuid","v4","eventName","streamEventName","timer","Timer","stopListening","finished","errorMessage","AI_ASSISTANT_ERRORS","AI_ASSISTANT_TIMEOUT","errorCode","AI_ASSISTANT_ERROR_CODES","listenTo","_ref","_callee2","resultData","responseType","decryptErrorMessage","_t2","_context2","reset","get","cancel","merge","response","_x","request","service","AI_ASSISTANT_SERVICE_NAME","method","contentType","body","_ref2","start","makeAiAssistantRequest","_this6","_callee3","value","content","_context3","contentValue","_encryptData","text","encryptionKeyUrl","sent","context","resources","contextResources","type","parameters","sessionId","async","locale","entryPoint","assistant","summarizeMeeting","CONTENT_TYPES","ACTION","ACTION_TYPES","SUMMARIZE_FOR_ME","id","meetingInstanceId","CONTEXT_RESOURCE_TYPES","MEETING","url","meetingSite","lastMinutes","wasMyNameMentioned","WAS_MY_NAME_MENTIONED","showAllActionItems","SHOW_ALL_ACTION_ITEMS","_ref3","_this7","_callee4","result","_context4","encryption","encryptText","askMeAnything","question","version","_default","exports"],"sources":["ai-assistant.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\nimport uuid from 'uuid';\nimport {WebexPlugin} from '@webex/webex-core';\nimport '@webex/internal-plugin-mercury';\nimport {get, merge} from 'lodash';\nimport {Timer} from '@webex/common-timers';\n\nimport {\n AiAssistantRequestOptions,\n RequestOptions,\n RequestResponse,\n SummarizeMeetingOptions,\n} from './types';\nimport {\n AI_ASSISTANT_ERROR_CODES,\n AI_ASSISTANT_ERRORS,\n AI_ASSISTANT_REGISTERED,\n AI_ASSISTANT_RESULT,\n AI_ASSISTANT_STREAM,\n AI_ASSISTANT_UNREGISTERED,\n AI_ASSISTANT_SERVICE_NAME,\n ASSISTANT_API_RESPONSE_EVENT,\n ACTION_TYPES,\n CONTENT_TYPES,\n CONTEXT_RESOURCE_TYPES,\n RESPONSE_NAMES,\n} from './constants';\nimport {\n decryptCitedAnswer,\n decryptMessage,\n decryptScheduleMeeting,\n decryptToolUse,\n decryptWorkspace,\n} from './utils';\n\nconst AIAssistant = WebexPlugin.extend({\n namespace: 'AIAssistant',\n\n /**\n * registered value indicating events registration is successful\n * @instance\n * @type {Boolean}\n * @memberof AIAssistant\n */\n registered: false,\n\n /**\n * Initializer\n * @private\n * @param {Object} attrs\n * @param {Object} options\n * @returns {undefined}\n */\n initialize(...args) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n },\n\n /**\n * Explicitly sets up the AI assistant plugin by connecting to mercury, and listening for AI assistant events.\n * @returns {Promise}\n * @public\n * @memberof AIAssistant\n */\n register() {\n if (!this.webex.canAuthorize) {\n this.logger.error('AI assistant->register#ERROR, Unable to register, SDK cannot authorize');\n\n return Promise.reject(new Error('SDK cannot authorize'));\n }\n\n if (this.registered) {\n this.logger.info('AI assistant->register#INFO, AI assistant plugin already registered');\n\n return Promise.resolve();\n }\n\n return this.webex.internal.mercury\n .connect()\n .then(() => {\n this.listenForEvents();\n this.trigger(AI_ASSISTANT_REGISTERED);\n this.registered = true;\n })\n .catch((error) => {\n this.logger.error(`AI assistant->register#ERROR, Unable to register, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Explicitly tears down the AI assistant plugin by disconnecting from mercury, and stops listening to AI assistant events\n * @returns {Promise}\n * @public\n * @memberof AIAssistant\n */\n unregister() {\n if (!this.registered) {\n this.logger.info('AI assistant->unregister#INFO, AI assistant plugin already unregistered');\n\n return Promise.resolve();\n }\n\n this.stopListeningForEvents();\n\n return this.webex.internal.mercury.disconnect().then(() => {\n this.trigger(AI_ASSISTANT_UNREGISTERED);\n this.registered = false;\n });\n },\n\n /**\n * registers for Assistant API events through mercury\n * @returns {undefined}\n * @private\n */\n listenForEvents() {\n this.webex.internal.mercury.on(ASSISTANT_API_RESPONSE_EVENT, (envelope) => {\n this._handleEvent(envelope.data);\n });\n },\n\n /**\n * unregisteres all the Assistant API events from mercury\n * @returns {undefined}\n * @private\n */\n stopListeningForEvents() {\n this.webex.internal.mercury.off(ASSISTANT_API_RESPONSE_EVENT);\n },\n\n /**\n * constructs the event name based on request id\n * This is used by the plugin to listen for the result of a particular request\n * @param {UUID} requestId the id of the request\n * @returns {string}\n */\n _getResultEventName(requestId: string) {\n return `${AI_ASSISTANT_RESULT}:${requestId}`;\n },\n\n /**\n * constructs the stream event name based on request id\n * This is used by the consumer to listen for the stream (i.e. the data) of a particular request\n * @param {UUID} requestId the id of the request\n * @returns {string}\n */\n _getStreamEventName(requestId: string) {\n return `${AI_ASSISTANT_STREAM}:${requestId}`;\n },\n\n /**\n * Takes incoming data and triggers correct events\n * @param {Object} data the event data\n * @returns {undefined}\n */\n _handleEvent(data) {\n this.trigger(this._getResultEventName(data.clientRequestId), data);\n },\n\n /**\n * Decrypts the response content in place\n * @param {any} responseContent the content object from the assistant-api response\n * @returns {Promise} resolves once decryption is complete\n */\n async _decryptContent(responseContent) {\n switch (responseContent.name) {\n case RESPONSE_NAMES.MESSAGE: {\n await decryptMessage(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.CITED_ANSWER: {\n await decryptCitedAnswer(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.SCHEDULE_MEETING: {\n await decryptScheduleMeeting(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.TOOL_RESULT: {\n // No encrypted content in tool_result\n break;\n }\n case RESPONSE_NAMES.TOOL_USE: {\n await decryptToolUse(responseContent, this.webex);\n break;\n }\n case RESPONSE_NAMES.WORKSPACE: {\n await decryptWorkspace(responseContent, this.webex);\n break;\n }\n default:\n this.logger.error(\n `AI assistant->_decryptContent#ERROR, Unknown response content name: ${responseContent.name}`\n );\n }\n },\n\n /**\n * Makes the request to the AI assistant service\n * @param {Object} options\n * @param {string} options.resource the URL to query\n * @param {Mixed} options.params additional params for the body of the request\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n _request(options: RequestOptions): Promise<RequestResponse> {\n const {resource, params} = options;\n\n const timeout = this.config.requestTimeout;\n const requestId = options.requestId || uuid.v4();\n const eventName = this._getResultEventName(requestId);\n const streamEventName = this._getStreamEventName(requestId);\n\n // eslint-disable-next-line no-async-promise-executor\n return new Promise((resolve, reject) => {\n const timer = new Timer(() => {\n this.stopListening(this, eventName);\n this.trigger(streamEventName, {\n requestId,\n finished: true,\n errorMessage: AI_ASSISTANT_ERRORS.AI_ASSISTANT_TIMEOUT,\n errorCode: AI_ASSISTANT_ERROR_CODES.AI_ASSISTANT_TIMEOUT,\n });\n }, timeout);\n\n this.listenTo(this, eventName, async (data) => {\n timer.reset();\n const resultData = get(data, 'response.content', {});\n const errorMessage = get(data, 'response.errorMessage');\n const errorCode = get(data, 'response.errorCode');\n const responseType = get(data, 'responseType');\n\n if (data.finished) {\n timer.cancel();\n this.stopListening(this, eventName);\n }\n\n let decryptErrorMessage;\n\n try {\n if (!errorCode) {\n await this._decryptContent(resultData);\n }\n } catch (decryptError) {\n decryptErrorMessage = decryptError.message;\n }\n\n this.trigger(\n streamEventName,\n merge({}, data.response, {\n responseType,\n requestId,\n finished: data.finished,\n errorMessage: errorMessage || decryptErrorMessage,\n errorCode,\n })\n );\n });\n\n this.webex\n .request({\n service: AI_ASSISTANT_SERVICE_NAME,\n resource,\n method: 'POST',\n contentType: 'application/json',\n body: {clientRequestId: requestId, ...params},\n })\n .then(({body}) => {\n resolve({...body, requestId, streamEventName});\n })\n .catch((error) => {\n reject(error);\n });\n\n timer.start();\n });\n },\n\n /**\n * Common method to make AI assistant requests for meeting analysis\n * @param {Object} options\n * @param {string} options.contextResources array of context resources to include in the request\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.contentType the type of content ('action' or 'message')\n * @param {string} options.contentValue the value to use (action name or message text)\n * @param {Object} options.parameters optional parameters to include in the request (for action type only)\n * @param {Object} options.assistant optional parameter to specify the assistant to use\n * @param {Object} options.locale optional locale to use for the request, defaults to 'en_US'\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @param {string} options.entryPoint optional entryPoint to use for this request\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n * @public\n * @memberof AIAssistant\n */\n async makeAiAssistantRequest(options: AiAssistantRequestOptions): Promise<RequestResponse> {\n let value = options.contentValue;\n\n if (options.contentType === 'message') {\n value = await this._encryptData({\n text: options.contentValue,\n encryptionKeyUrl: options.encryptionKeyUrl,\n });\n }\n\n const content: any = {\n context: {\n resources: options.contextResources,\n },\n encryptionKeyUrl: options.encryptionKeyUrl,\n type: options.contentType,\n value,\n };\n\n if (options.parameters) {\n content.parameters = options.parameters;\n }\n\n return this._request({\n resource: options.sessionId ? `sessions/${options.sessionId}/messages` : 'sessions/messages',\n params: {\n async: 'chunked',\n locale: options.locale || 'en_US',\n content,\n ...(options.entryPoint ? {entryPoint: options.entryPoint} : {}),\n ...(options.assistant ? {assistant: options.assistant} : {}),\n },\n ...(options.requestId ? {requestId: options.requestId} : {}),\n });\n },\n\n /**\n * Returns the summary of a meeting\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {number} options.lastMinutes Optional number of minutes to summarize from the end of the meeting. If not included, summarizes from the start.\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n summarizeMeeting(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contentType: CONTENT_TYPES.ACTION,\n contentValue: ACTION_TYPES.SUMMARIZE_FOR_ME,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n ...(options.lastMinutes ? {parameters: {lastMinutes: options.lastMinutes}} : {}),\n });\n },\n\n /**\n * Checks if the user's name was mentioned in a meeting\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n wasMyNameMentioned(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n contentType: CONTENT_TYPES.ACTION,\n contentValue: ACTION_TYPES.WAS_MY_NAME_MENTIONED,\n });\n },\n\n /**\n * Returns all action items from a meeting\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n showAllActionItems(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n contentType: CONTENT_TYPES.ACTION,\n contentValue: ACTION_TYPES.SHOW_ALL_ACTION_ITEMS,\n });\n },\n\n /**\n * Helper method to encrypt text using the encryption key URL\n * @param {Object} options\n * @param {string} options.text the text to encrypt\n * @param {string} options.encryptionKeyUrl the encryption key URL to use for encryption\n * @returns {Promise<string>} returns a promise that resolves with the encrypted text\n */\n async _encryptData({text, encryptionKeyUrl}) {\n const result = await this.webex.internal.encryption.encryptText(encryptionKeyUrl, text);\n\n return result;\n },\n\n /**\n * Ask any question about the meeting content\n * @param {Object} options\n * @param {string} options.meetingInstanceId the meeting instance ID for the meeting from locus\n * @param {string} options.meetingSite the name.webex.com site for the meeting\n * @param {string} options.sessionId the session ID for subsequent requests, not required for the first request\n * @param {string} options.encryptionKeyUrl the encryption key URL for this meeting summary\n * @param {string} options.question the question to ask about the meeting content\n * @param {string} options.requestId optional request ID to use for this request, if not provided a new UUID will be generated\n * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n askMeAnything(options: SummarizeMeetingOptions & {question: string}): Promise<RequestResponse> {\n return this.makeAiAssistantRequest({\n ...options,\n contextResources: [\n {\n id: options.meetingInstanceId,\n type: CONTEXT_RESOURCE_TYPES.MEETING,\n url: options.meetingSite,\n },\n ],\n contentType: CONTENT_TYPES.MESSAGE,\n contentValue: options.question,\n });\n },\n});\n\nexport default AIAssistant;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/constants.js
CHANGED
|
@@ -4,14 +4,12 @@ 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.RESPONSE_NAMES = exports.CONTEXT_RESOURCE_TYPES = exports.CONTENT_TYPES = exports.ASSISTANT_API_RESPONSE_EVENT = exports.
|
|
7
|
+
exports.RESPONSE_NAMES = exports.CONTEXT_RESOURCE_TYPES = exports.CONTENT_TYPES = exports.ASSISTANT_API_RESPONSE_EVENT = exports.AI_ASSISTANT_UNREGISTERED = exports.AI_ASSISTANT_STREAM = exports.AI_ASSISTANT_SERVICE_NAME = exports.AI_ASSISTANT_RESULT = exports.AI_ASSISTANT_REGISTERED = exports.AI_ASSISTANT_ERROR_CODES = exports.AI_ASSISTANT_ERRORS = exports.ACTION_TYPES = void 0;
|
|
8
8
|
var AI_ASSISTANT_REGISTERED = exports.AI_ASSISTANT_REGISTERED = 'aiassistant:registered';
|
|
9
9
|
var AI_ASSISTANT_UNREGISTERED = exports.AI_ASSISTANT_UNREGISTERED = 'aiassistant:unregistered';
|
|
10
10
|
var ASSISTANT_API_RESPONSE_EVENT = exports.ASSISTANT_API_RESPONSE_EVENT = 'event:assistant-api.response';
|
|
11
|
-
var ASSISTANT_API_ACTIVITY = exports.ASSISTANT_API_ACTIVITY = 'assistant-api.activity';
|
|
12
11
|
var AI_ASSISTANT_SERVICE_NAME = exports.AI_ASSISTANT_SERVICE_NAME = 'assistant-api';
|
|
13
12
|
var AI_ASSISTANT_RESULT = exports.AI_ASSISTANT_RESULT = 'aiassistant:result';
|
|
14
|
-
var AI_ASSISTANT_ACTIVITY_RECEIVED = exports.AI_ASSISTANT_ACTIVITY_RECEIVED = 'aiassistant:activityReceived';
|
|
15
13
|
var AI_ASSISTANT_STREAM = exports.AI_ASSISTANT_STREAM = 'aiassistant:stream';
|
|
16
14
|
var AI_ASSISTANT_ERRORS = exports.AI_ASSISTANT_ERRORS = /*#__PURE__*/function (AI_ASSISTANT_ERRORS) {
|
|
17
15
|
AI_ASSISTANT_ERRORS["NOT_ENOUGH_CONTENT"] = "NO_ENOUGH_MEETING_TRANSCRIPT";
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AI_ASSISTANT_REGISTERED","exports","AI_ASSISTANT_UNREGISTERED","ASSISTANT_API_RESPONSE_EVENT","
|
|
1
|
+
{"version":3,"names":["AI_ASSISTANT_REGISTERED","exports","AI_ASSISTANT_UNREGISTERED","ASSISTANT_API_RESPONSE_EVENT","AI_ASSISTANT_SERVICE_NAME","AI_ASSISTANT_RESULT","AI_ASSISTANT_STREAM","AI_ASSISTANT_ERRORS","AI_ASSISTANT_ERROR_CODES","ACTION_TYPES","CONTENT_TYPES","CONTEXT_RESOURCE_TYPES","RESPONSE_NAMES"],"sources":["constants.ts"],"sourcesContent":["export const AI_ASSISTANT_REGISTERED = 'aiassistant:registered';\nexport const AI_ASSISTANT_UNREGISTERED = 'aiassistant:unregistered';\nexport const ASSISTANT_API_RESPONSE_EVENT = 'event:assistant-api.response';\nexport const AI_ASSISTANT_SERVICE_NAME = 'assistant-api';\nexport const AI_ASSISTANT_RESULT = 'aiassistant:result';\nexport const AI_ASSISTANT_STREAM = 'aiassistant:stream';\n\nexport enum AI_ASSISTANT_ERRORS {\n NOT_ENOUGH_CONTENT = 'NO_ENOUGH_MEETING_TRANSCRIPT',\n TRANSCRIPT_AUTH_ERROR = 'TRANSCRIPT_AUTH_ERROR',\n AI_ASSISTANT_TIMEOUT = 'AI_ASSISTANT_TIMEOUT', // This one is generated by the plugin\n}\n\nexport enum AI_ASSISTANT_ERROR_CODES {\n AI_ASSISTANT_TIMEOUT = 9408, // This one is generated by the plugin\n NOT_ENOUGH_CONTENT = 204,\n FORBIDDEN = 403,\n LLM_TIMEOUT = 408,\n RATE_LIMIT = 429,\n GENERIC_ERROR = 10000,\n WAIT_PREVIOUS = 10001,\n EMPTY_SEARCH_RESULT = 10002,\n}\n\nexport enum ACTION_TYPES {\n SHOW_ALL_ACTION_ITEMS = 'SHOW_ALL_ACTION_ITEMS',\n WAS_MY_NAME_MENTIONED = 'WAS_MY_NAME_MENTIONED',\n SUMMARIZE_FOR_ME = 'SUMMARIZE_FOR_ME',\n}\n\nexport enum CONTENT_TYPES {\n ACTION = 'action',\n MESSAGE = 'message',\n}\n\nexport enum CONTEXT_RESOURCE_TYPES {\n MEETING = 'meeting',\n}\n\nexport enum RESPONSE_NAMES {\n TOOL_USE = 'tool_use',\n CITED_ANSWER = 'cited_answer',\n MESSAGE = 'message',\n TOOL_RESULT = 'tool_result',\n WORKSPACE = 'workspace',\n SCHEDULE_MEETING = 'schedule_meeting',\n}\n"],"mappings":";;;;;;;AAAO,IAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,wBAAwB;AACxD,IAAME,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAG,0BAA0B;AAC5D,IAAMC,4BAA4B,GAAAF,OAAA,CAAAE,4BAAA,GAAG,8BAA8B;AACnE,IAAMC,yBAAyB,GAAAH,OAAA,CAAAG,yBAAA,GAAG,eAAe;AACjD,IAAMC,mBAAmB,GAAAJ,OAAA,CAAAI,mBAAA,GAAG,oBAAoB;AAChD,IAAMC,mBAAmB,GAAAL,OAAA,CAAAK,mBAAA,GAAG,oBAAoB;AAAC,IAE5CC,mBAAmB,GAAAN,OAAA,CAAAM,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB,mDAGkB;EAAA,OAHrCA,mBAAmB;AAAA;AAAA,IAMnBC,wBAAwB,GAAAP,OAAA,CAAAO,wBAAA,0BAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EACL;EADnBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAxBA,wBAAwB,CAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAAA,IAWxBC,YAAY,GAAAR,OAAA,CAAAQ,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAMZC,aAAa,GAAAT,OAAA,CAAAS,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAAA,IAKbC,sBAAsB,GAAAV,OAAA,CAAAU,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAAA,IAItBC,cAAc,GAAAX,OAAA,CAAAW,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface RequestResponse {\n sessionId: string;\n requestId: string;\n streamEventName: string;\n id: string;\n url: string;\n sessionUrl: string;\n creatorId: string;\n createdAt: string;\n}\n\nexport interface StreamEvent {\n message: string;\n requestId: string;\n finished: boolean;\n error: string | null;\n}\n\nexport interface RequestOptions {\n resource: string;\n dataPath: string;\n foundPath?: string;\n notFoundPath?: string;\n params?: Record<string, unknown>;\n requestId?: string;\n
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface RequestResponse {\n sessionId: string;\n requestId: string;\n streamEventName: string;\n id: string;\n url: string;\n sessionUrl: string;\n creatorId: string;\n createdAt: string;\n}\n\nexport interface StreamEvent {\n message: string;\n requestId: string;\n finished: boolean;\n error: string | null;\n}\n\nexport interface RequestOptions {\n resource: string;\n dataPath: string;\n foundPath?: string;\n notFoundPath?: string;\n params?: Record<string, unknown>;\n requestId?: string;\n}\n\nexport interface ContextResource {\n id: string;\n type: string;\n url: string;\n}\n\nexport interface SummarizeMeetingOptions {\n assistant?: string;\n meetingInstanceId: string;\n meetingSite: string;\n sessionId: string;\n encryptionKeyUrl: string;\n lastMinutes?: number;\n requestId?: string;\n}\n\nexport interface AiAssistantRequestOptions {\n sessionId: string;\n encryptionKeyUrl: string;\n contextResources: ContextResource[];\n contentType: 'action' | 'message';\n contentValue: string;\n parameters?: any;\n assistant?: string;\n locale?: string;\n requestId?: string;\n entryPoint?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
package/dist/utils.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
|
|
|
5
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.decryptWorkspace = exports.decryptToolUse = exports.decryptScheduleMeeting = exports.decryptMessage = exports.decryptCitedAnswer =
|
|
8
|
+
exports.decryptWorkspace = exports.decryptToolUse = exports.decryptScheduleMeeting = exports.decryptMessage = exports.decryptCitedAnswer = void 0;
|
|
9
9
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
10
10
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
11
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
@@ -70,18 +70,9 @@ var decryptCitedAnswer = exports.decryptCitedAnswer = /*#__PURE__*/function () {
|
|
|
70
70
|
return decryptInPlace(data, "value.citations.".concat(index, ".name"), 'encryptionKeyUrl', webex);
|
|
71
71
|
}));
|
|
72
72
|
case 1:
|
|
73
|
-
if (!data.value.sources) {
|
|
74
|
-
_context3.next = 2;
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
73
|
_context3.next = 2;
|
|
78
|
-
return _promise.default.all(data.value.sources.map(function (source, index) {
|
|
79
|
-
return decryptInPlace(data, "value.sources.".concat(index, ".name"), 'encryptionKeyUrl', webex);
|
|
80
|
-
}));
|
|
81
|
-
case 2:
|
|
82
|
-
_context3.next = 3;
|
|
83
74
|
return decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);
|
|
84
|
-
case
|
|
75
|
+
case 2:
|
|
85
76
|
case "end":
|
|
86
77
|
return _context3.stop();
|
|
87
78
|
}
|
|
@@ -161,21 +152,4 @@ var decryptWorkspace = exports.decryptWorkspace = /*#__PURE__*/function () {
|
|
|
161
152
|
return _ref6.apply(this, arguments);
|
|
162
153
|
};
|
|
163
154
|
}();
|
|
164
|
-
var decryptAssistantActivity = exports.decryptAssistantActivity = /*#__PURE__*/function () {
|
|
165
|
-
var _ref7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7(data, webex) {
|
|
166
|
-
return _regenerator.default.wrap(function (_context7) {
|
|
167
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
168
|
-
case 0:
|
|
169
|
-
_context7.next = 1;
|
|
170
|
-
return decryptInPlace(data, 'content.value.message', 'encryptionKeyUrl', webex);
|
|
171
|
-
case 1:
|
|
172
|
-
case "end":
|
|
173
|
-
return _context7.stop();
|
|
174
|
-
}
|
|
175
|
-
}, _callee7);
|
|
176
|
-
}));
|
|
177
|
-
return function decryptAssistantActivity(_x13, _x14) {
|
|
178
|
-
return _ref7.apply(this, arguments);
|
|
179
|
-
};
|
|
180
|
-
}();
|
|
181
155
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lodash","require","decryptInPlace","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","item","valuePath","keyPath","webex","encryptedValue","encryptionKeyUrl","decryptedValue","wrap","_context","prev","next","get","abrupt","internal","encryption","decryptText","sent","set","stop","_x","_x2","_x3","_x4","apply","arguments","decryptToolUse","exports","_ref2","_callee2","data","_context2","_x5","_x6","decryptCitedAnswer","_ref3","_callee3","_context3","value","citations","_promise","all","map","citation","index","concat","
|
|
1
|
+
{"version":3,"names":["_lodash","require","decryptInPlace","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","item","valuePath","keyPath","webex","encryptedValue","encryptionKeyUrl","decryptedValue","wrap","_context","prev","next","get","abrupt","internal","encryption","decryptText","sent","set","stop","_x","_x2","_x3","_x4","apply","arguments","decryptToolUse","exports","_ref2","_callee2","data","_context2","_x5","_x6","decryptCitedAnswer","_ref3","_callee3","_context3","value","citations","_promise","all","map","citation","index","concat","_x7","_x8","decryptScheduleMeeting","_ref4","_callee4","_data$value","_data$value$results","meetingData","_context4","results","attendees","attendee","_x9","_x0","decryptMessage","_ref5","_callee5","_context5","_x1","_x10","decryptWorkspace","_ref6","_callee6","_context6","_x11","_x12"],"sources":["utils.ts"],"sourcesContent":["import {get, set} from 'lodash';\n\nconst decryptInPlace = async (item, valuePath, keyPath, webex) => {\n const encryptedValue = get(item, valuePath);\n const encryptionKeyUrl = get(item, keyPath);\n\n if (!encryptedValue || !encryptionKeyUrl) {\n return;\n }\n\n const decryptedValue = await webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n encryptedValue\n );\n\n set(item, valuePath, decryptedValue);\n};\n\nexport const decryptToolUse = async (data, webex) => {\n await decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);\n};\n\nexport const decryptCitedAnswer = async (data, webex) => {\n if (data.value.citations) {\n await Promise.all(\n data.value.citations.map((citation, index) => {\n return decryptInPlace(data, `value.citations.${index}.name`, 'encryptionKeyUrl', webex);\n })\n );\n }\n\n await decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);\n};\nexport const decryptScheduleMeeting = async (data, webex) => {\n // Decrypt commentary in parameters\n await decryptInPlace(data, 'parameters.commentary', 'encryptionKeyUrl', webex);\n\n const meetingData = data.value?.results?.data;\n if (meetingData) {\n // Decrypt attendee emails\n if (meetingData.attendees) {\n await Promise.all(\n meetingData.attendees.map((attendee, index) => {\n return decryptInPlace(\n data,\n `value.results.data.attendees.${index}.email`,\n 'encryptionKeyUrl',\n webex\n );\n })\n );\n }\n\n // Decrypt other fields in the meeting data\n await Promise.all([\n decryptInPlace(data, 'value.results.data.title', 'encryptionKeyUrl', webex),\n decryptInPlace(data, 'value.results.data.inScopeReply', 'encryptionKeyUrl', webex),\n decryptInPlace(data, 'value.results.data.meetingLink', 'encryptionKeyUrl', webex),\n decryptInPlace(data, 'value.results.data.description', 'encryptionKeyUrl', webex),\n ]);\n }\n};\n\nexport const decryptMessage = async (data, webex) => {\n await decryptInPlace(data, 'value', 'encryptionKeyUrl', webex);\n};\n\nexport const decryptWorkspace = async (data, webex) => {\n await decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);\n};\n"],"mappings":"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","ignoreList":[]}
|