@webex/internal-plugin-ai-assistant 0.0.0-next.2 → 0.0.0-next.21

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/README.md CHANGED
@@ -22,7 +22,7 @@ npm install --save @webex/internal-plugin-ai-assistant
22
22
 
23
23
  ## Usage
24
24
 
25
- The responses from the AI assistant service are delivered asynchronously via mercury. The methods in this plugin return a stream ID which can then be used to listen to the updates for a given request. The service will return preliminary versions of a response. The latest response for a given request should be used.
25
+ The responses from the AI assistant service are delivered asynchronously via mercury. The methods in this plugin return a stream ID which can then be used to listen to the updates for a given request. The service will respond in chunks. The latest response for a given request will contain the full response.
26
26
 
27
27
  The data used for the arguments to the methods in this plugin is obtained from either Locus or the Meeting Container.
28
28
  ```js
@@ -22,6 +22,7 @@ require("@webex/internal-plugin-mercury");
22
22
  var _lodash = require("lodash");
23
23
  var _commonTimers = require("@webex/common-timers");
24
24
  var _constants = require("./constants");
25
+ var _utils = require("./utils");
25
26
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
27
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /*!
27
28
  * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
@@ -137,26 +138,39 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
137
138
  this.trigger(this._getResultEventName(data.clientRequestId), data);
138
139
  },
139
140
  /**
140
- * Decrypts the encrypted value using the encryption key URL
141
- * @param {Object} options
142
- * @param {string} options.value the encrypted value to decrypt
143
- * @param {string} options.encryptionKeyUrl the encryption key URL to use for
144
- * @returns {Promise<Object>} returns a promise that resolves with the decrypted value
141
+ * Decrypts the response content in place
142
+ * @param {any} responseContent the content object from the assistant-api response
143
+ * @returns {Promise} resolves once decryption is complete
145
144
  */
146
- _decryptData: function _decryptData(_ref) {
145
+ _decryptContent: function _decryptContent(responseContent) {
147
146
  var _this4 = this;
148
147
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
149
- var value, encryptionKeyUrl, result;
150
148
  return _regenerator.default.wrap(function _callee$(_context) {
151
149
  while (1) switch (_context.prev = _context.next) {
152
150
  case 0:
153
- value = _ref.value, encryptionKeyUrl = _ref.encryptionKeyUrl;
154
- _context.next = 3;
155
- return _this4.webex.internal.encryption.decryptText(encryptionKeyUrl, value);
151
+ _context.t0 = responseContent.name;
152
+ _context.next = _context.t0 === _constants.RESPONSE_NAMES.MESSAGE ? 3 : _context.t0 === _constants.RESPONSE_NAMES.CITED_ANSWER ? 6 : _context.t0 === _constants.RESPONSE_NAMES.TOOL_RESULT ? 9 : _context.t0 === _constants.RESPONSE_NAMES.TOOL_USE ? 10 : 13;
153
+ break;
156
154
  case 3:
157
- result = _context.sent;
158
- return _context.abrupt("return", result);
155
+ _context.next = 5;
156
+ return (0, _utils.decryptMessage)(responseContent, _this4.webex);
159
157
  case 5:
158
+ return _context.abrupt("break", 14);
159
+ case 6:
160
+ _context.next = 8;
161
+ return (0, _utils.decryptCitedAnswer)(responseContent, _this4.webex);
162
+ case 8:
163
+ return _context.abrupt("break", 14);
164
+ case 9:
165
+ return _context.abrupt("break", 14);
166
+ case 10:
167
+ _context.next = 12;
168
+ return (0, _utils.decryptToolUse)(responseContent, _this4.webex);
169
+ case 12:
170
+ return _context.abrupt("break", 14);
171
+ case 13:
172
+ _this4.logger.error("AI assistant->_decryptContent#ERROR, Unknown response content name: ".concat(responseContent.name));
173
+ case 14:
160
174
  case "end":
161
175
  return _context.stop();
162
176
  }
@@ -168,19 +182,16 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
168
182
  * @param {Object} options
169
183
  * @param {string} options.resource the URL to query
170
184
  * @param {Mixed} options.params additional params for the body of the request
171
- * @param {string} options.dataPath the path to get the data in the result object
172
185
  * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName
173
186
  */
174
187
  _request: function _request(options) {
175
188
  var _this5 = this;
176
189
  var resource = options.resource,
177
- params = options.params,
178
- dataPath = options.dataPath;
190
+ params = options.params;
179
191
  var timeout = this.config.requestTimeout;
180
192
  var requestId = _uuid.default.v4();
181
193
  var eventName = this._getResultEventName(requestId);
182
194
  var streamEventName = this._getStreamEventName(requestId);
183
- var concatenatedMessage = '';
184
195
 
185
196
  // eslint-disable-next-line no-async-promise-executor
186
197
  return new _promise.default(function (resolve, reject) {
@@ -194,98 +205,50 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
194
205
  });
195
206
  }, timeout);
196
207
  _this5.listenTo(_this5, eventName, /*#__PURE__*/function () {
197
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
198
- var resultData, errorMessage, errorCode, decryptedMessage, _decryptedMessage;
208
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data) {
209
+ var resultData, errorMessage, errorCode, responseType, decryptErrorMessage;
199
210
  return _regenerator.default.wrap(function _callee2$(_context2) {
200
211
  while (1) switch (_context2.prev = _context2.next) {
201
212
  case 0:
202
213
  timer.reset();
203
- resultData = (0, _lodash.get)(data, dataPath, []);
214
+ resultData = (0, _lodash.get)(data, 'response.content', {});
204
215
  errorMessage = (0, _lodash.get)(data, 'response.errorMessage');
205
216
  errorCode = (0, _lodash.get)(data, 'response.errorCode');
206
- if (!data.finished) {
207
- _context2.next = 20;
208
- break;
217
+ responseType = (0, _lodash.get)(data, 'responseType');
218
+ if (data.finished) {
219
+ timer.cancel();
220
+ _this5.stopListening(_this5, eventName);
209
221
  }
210
- // For finished messages, decrypt and emit the final complete message
211
- timer.cancel();
212
222
  _context2.prev = 6;
213
- if (!(resultData !== null && resultData !== void 0 && resultData.value)) {
214
- _context2.next = 11;
223
+ if (errorCode) {
224
+ _context2.next = 10;
215
225
  break;
216
226
  }
217
227
  _context2.next = 10;
218
- return _this5._decryptData(resultData);
228
+ return _this5._decryptContent(resultData);
219
229
  case 10:
220
- decryptedMessage = _context2.sent;
221
- case 11:
222
- // Emit the final message
223
- _this5.trigger(streamEventName, {
224
- message: decryptedMessage || '',
225
- requestId: requestId,
226
- finished: true,
227
- errorMessage: errorMessage,
228
- errorCode: errorCode
229
- });
230
- _this5.stopListening(_this5, eventName);
231
- _context2.next = 18;
230
+ _context2.next = 15;
232
231
  break;
233
- case 15:
234
- _context2.prev = 15;
232
+ case 12:
233
+ _context2.prev = 12;
235
234
  _context2.t0 = _context2["catch"](6);
236
- _this5.trigger(streamEventName, {
237
- message: concatenatedMessage,
238
- requestId: requestId,
239
- finished: true,
240
- errorMessage: errorMessage || _context2.t0.message,
241
- errorCode: errorCode
242
- });
243
- case 18:
244
- _context2.next = 33;
245
- break;
246
- case 20:
247
- _context2.prev = 20;
248
- _decryptedMessage = '';
249
- if (!(resultData !== null && resultData !== void 0 && resultData.value)) {
250
- _context2.next = 26;
251
- break;
252
- }
253
- _context2.next = 25;
254
- return _this5._decryptData(resultData);
255
- case 25:
256
- _decryptedMessage = _context2.sent;
257
- case 26:
258
- concatenatedMessage += _decryptedMessage;
259
-
260
- // Emit the concatenated message so far
261
- _this5.trigger(streamEventName, {
262
- message: concatenatedMessage,
263
- requestId: requestId,
264
- finished: false,
265
- errorMessage: errorMessage,
266
- errorCode: errorCode
267
- });
268
- _context2.next = 33;
269
- break;
270
- case 30:
271
- _context2.prev = 30;
272
- _context2.t1 = _context2["catch"](20);
273
- // If decryption fails, we still want to continue listening for more messages
274
- _this5.trigger(streamEventName, {
275
- message: concatenatedMessage,
235
+ decryptErrorMessage = _context2.t0.message;
236
+ case 15:
237
+ _this5.trigger(streamEventName, (0, _lodash.merge)({}, data.response, {
238
+ responseType: responseType,
276
239
  requestId: requestId,
277
- finished: false,
278
- errorMessage: errorMessage || _context2.t1.message,
240
+ finished: data.finished,
241
+ errorMessage: errorMessage || decryptErrorMessage,
279
242
  errorCode: errorCode
280
- });
281
- case 33:
243
+ }));
244
+ case 16:
282
245
  case "end":
283
246
  return _context2.stop();
284
247
  }
285
- }, _callee2, null, [[6, 15], [20, 30]]);
248
+ }, _callee2, null, [[6, 12]]);
286
249
  }));
287
250
  return function (_x) {
288
- return _ref2.apply(this, arguments);
251
+ return _ref.apply(this, arguments);
289
252
  };
290
253
  }());
291
254
  _this5.webex.request({
@@ -298,14 +261,12 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
298
261
  }, params)
299
262
  }).catch(function (error) {
300
263
  reject(error);
301
- }).then(function (_ref3) {
302
- var body = _ref3.body;
303
- var sessionId = body.sessionId;
304
- resolve({
264
+ }).then(function (_ref2) {
265
+ var body = _ref2.body;
266
+ resolve(_objectSpread(_objectSpread({}, body), {}, {
305
267
  requestId: requestId,
306
- sessionId: sessionId,
307
268
  streamEventName: streamEventName
308
- });
269
+ }));
309
270
  timer.start();
310
271
  });
311
272
  });
@@ -351,12 +312,11 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
351
312
  type: options.contentType,
352
313
  value: value
353
314
  };
354
- if (options.contentType === 'action' && options.parameters) {
315
+ if (options.parameters) {
355
316
  content.parameters = options.parameters;
356
317
  }
357
318
  return _context3.abrupt("return", _this6._request({
358
319
  resource: options.sessionId ? "sessions/".concat(options.sessionId, "/messages") : 'sessions/messages',
359
- dataPath: 'response.content',
360
320
  params: _objectSpread({
361
321
  async: 'chunked',
362
322
  locale: options.locale || 'en_US',
@@ -444,14 +404,14 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
444
404
  * @param {string} options.encryptionKeyUrl the encryption key URL to use for encryption
445
405
  * @returns {Promise<string>} returns a promise that resolves with the encrypted text
446
406
  */
447
- _encryptData: function _encryptData(_ref4) {
407
+ _encryptData: function _encryptData(_ref3) {
448
408
  var _this7 = this;
449
409
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
450
410
  var text, encryptionKeyUrl, result;
451
411
  return _regenerator.default.wrap(function _callee4$(_context4) {
452
412
  while (1) switch (_context4.prev = _context4.next) {
453
413
  case 0:
454
- text = _ref4.text, encryptionKeyUrl = _ref4.encryptionKeyUrl;
414
+ text = _ref3.text, encryptionKeyUrl = _ref3.encryptionKeyUrl;
455
415
  _context4.next = 3;
456
416
  return _this7.webex.internal.encryption.encryptText(encryptionKeyUrl, text);
457
417
  case 3:
@@ -485,7 +445,7 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
485
445
  contentValue: options.question
486
446
  }));
487
447
  },
488
- version: "0.0.0-next.2"
448
+ version: "0.0.0-next.21"
489
449
  });
490
450
  var _default = exports.default = AIAssistant;
491
451
  //# sourceMappingURL=ai-assistant.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_lodash","_commonTimers","_constants","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","_decryptData","_ref","_this4","_asyncToGenerator2","_regenerator","mark","_callee","value","encryptionKeyUrl","result","wrap","_callee$","_context","prev","next","encryption","decryptText","sent","abrupt","stop","_request","options","_this5","resource","params","dataPath","timeout","config","requestTimeout","uuid","v4","eventName","streamEventName","concatenatedMessage","timer","Timer","stopListening","finished","errorMessage","AI_ASSISTANT_ERRORS","AI_ASSISTANT_TIMEOUT","errorCode","AI_ASSISTANT_ERROR_CODES","listenTo","_ref2","_callee2","resultData","decryptedMessage","_decryptedMessage","_callee2$","_context2","reset","get","cancel","t0","t1","_x","request","service","AI_ASSISTANT_SERVICE_NAME","method","contentType","body","_ref3","sessionId","start","_makeMeetingRequest","_this6","_callee3","content","_callee3$","_context3","contentValue","_encryptData","text","context","resources","contextResources","type","parameters","async","locale","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","_ref4","_this7","_callee4","_callee4$","_context4","encryptText","askMeAnything","MESSAGE","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} from 'lodash';\nimport {Timer} from '@webex/common-timers';\n\nimport {\n MakeMeetingRequestOptions,\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} from './constants';\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 encrypted value using the encryption key URL\n * @param {Object} options\n * @param {string} options.value the encrypted value to decrypt\n * @param {string} options.encryptionKeyUrl the encryption key URL to use for\n * @returns {Promise<Object>} returns a promise that resolves with the decrypted value\n */\n async _decryptData({value, encryptionKeyUrl}) {\n const result = await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value);\n\n return result;\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 * @param {string} options.dataPath the path to get the data in the result object\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, dataPath} = options;\n\n const timeout = this.config.requestTimeout;\n const requestId = uuid.v4();\n const eventName = this._getResultEventName(requestId);\n const streamEventName = this._getStreamEventName(requestId);\n let concatenatedMessage = '';\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, dataPath, []);\n const errorMessage = get(data, 'response.errorMessage');\n const errorCode = get(data, 'response.errorCode');\n\n if (data.finished) {\n // For finished messages, decrypt and emit the final complete message\n timer.cancel();\n\n try {\n let decryptedMessage;\n if (resultData?.value) {\n decryptedMessage = await this._decryptData(resultData);\n }\n\n // Emit the final message\n this.trigger(streamEventName, {\n message: decryptedMessage || '',\n requestId,\n finished: true,\n errorMessage,\n errorCode,\n });\n\n this.stopListening(this, eventName);\n } catch (decryptError) {\n this.trigger(streamEventName, {\n message: concatenatedMessage,\n requestId,\n finished: true,\n errorMessage: errorMessage || decryptError.message,\n errorCode,\n });\n }\n } else {\n // For non-finished messages, concatenate and emit the accumulated message\n try {\n let decryptedMessage = '';\n if (resultData?.value) {\n decryptedMessage = await this._decryptData(resultData);\n }\n\n concatenatedMessage += decryptedMessage;\n\n // Emit the concatenated message so far\n this.trigger(streamEventName, {\n message: concatenatedMessage,\n requestId,\n finished: false,\n errorMessage,\n errorCode,\n });\n } catch (decryptError) {\n // If decryption fails, we still want to continue listening for more messages\n this.trigger(streamEventName, {\n message: concatenatedMessage,\n requestId,\n finished: false,\n errorMessage: errorMessage || decryptError.message,\n errorCode,\n });\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 .catch((error) => {\n reject(error);\n })\n .then(({body}) => {\n const {sessionId} = body;\n\n resolve({\n requestId,\n sessionId,\n streamEventName,\n });\n timer.start();\n });\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n async _makeMeetingRequest(options: MakeMeetingRequestOptions): 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.contentType === 'action' && options.parameters) {\n content.parameters = options.parameters;\n }\n\n return this._request({\n resource: options.sessionId ? `sessions/${options.sessionId}/messages` : 'sessions/messages',\n dataPath: 'response.content',\n params: {\n async: 'chunked',\n locale: options.locale || 'en_US',\n content,\n ...(options.assistant ? {assistant: options.assistant} : {}),\n },\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n summarizeMeeting(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this._makeMeetingRequest({\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n wasMyNameMentioned(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this._makeMeetingRequest({\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n showAllActionItems(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this._makeMeetingRequest({\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 * @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._makeMeetingRequest({\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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"}
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","wrap","_callee$","_context","prev","next","t0","name","RESPONSE_NAMES","MESSAGE","CITED_ANSWER","TOOL_RESULT","TOOL_USE","decryptMessage","abrupt","decryptCitedAnswer","decryptToolUse","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","_callee2$","_context2","reset","get","cancel","merge","response","_x","request","service","AI_ASSISTANT_SERVICE_NAME","method","contentType","body","_ref2","start","_makeMeetingRequest","_this6","_callee3","value","content","_callee3$","_context3","contentValue","_encryptData","text","encryptionKeyUrl","sent","context","resources","contextResources","type","parameters","sessionId","async","locale","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","_callee4$","_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 MakeMeetingRequestOptions,\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 {decryptCitedAnswer, decryptMessage, decryptToolUse} 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.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 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 = 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 .catch((error) => {\n reject(error);\n })\n .then(({body}) => {\n resolve({...body, requestId, streamEventName});\n timer.start();\n });\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n async _makeMeetingRequest(options: MakeMeetingRequestOptions): 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.assistant ? {assistant: options.assistant} : {}),\n },\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n summarizeMeeting(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this._makeMeetingRequest({\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n wasMyNameMentioned(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this._makeMeetingRequest({\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 * @returns {Promise<Object>} Resolves with an object containing the requestId, sessionId and streamEventName\n */\n showAllActionItems(options: SummarizeMeetingOptions): Promise<RequestResponse> {\n return this._makeMeetingRequest({\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 * @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._makeMeetingRequest({\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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"}
package/dist/config.js CHANGED
@@ -14,7 +14,7 @@ var _default = exports.default = {
14
14
  * Timeout before AI Assistant request fails, in milliseconds.
15
15
  * @type {Number}
16
16
  */
17
- requestTimeout: 6000
17
+ requestTimeout: 60000
18
18
  }
19
19
  };
20
20
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_default","exports","default","aiassistant","requestTimeout"],"sources":["config.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2025 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n aiassistant: {\n /**\n * Timeout before AI Assistant request fails, in milliseconds.\n * @type {Number}\n */\n requestTimeout: 6000,\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,WAAW,EAAE;IACX;AACJ;AACA;AACA;IACIC,cAAc,EAAE;EAClB;AACF,CAAC"}
1
+ {"version":3,"names":["_default","exports","default","aiassistant","requestTimeout"],"sources":["config.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2025 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n aiassistant: {\n /**\n * Timeout before AI Assistant request fails, in milliseconds.\n * @type {Number}\n */\n requestTimeout: 60000,\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,WAAW,EAAE;IACX;AACJ;AACA;AACA;IACIC,cAAc,EAAE;EAClB;AACF,CAAC"}
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.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;
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';
@@ -43,4 +43,11 @@ var CONTEXT_RESOURCE_TYPES = exports.CONTEXT_RESOURCE_TYPES = /*#__PURE__*/funct
43
43
  CONTEXT_RESOURCE_TYPES["MEETING"] = "meeting";
44
44
  return CONTEXT_RESOURCE_TYPES;
45
45
  }({});
46
+ var RESPONSE_NAMES = exports.RESPONSE_NAMES = /*#__PURE__*/function (RESPONSE_NAMES) {
47
+ RESPONSE_NAMES["TOOL_USE"] = "tool_use";
48
+ RESPONSE_NAMES["CITED_ANSWER"] = "cited_answer";
49
+ RESPONSE_NAMES["MESSAGE"] = "message";
50
+ RESPONSE_NAMES["TOOL_RESULT"] = "tool_result";
51
+ return RESPONSE_NAMES;
52
+ }({});
46
53
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
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"],"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"],"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;EAAA,OAAnBA,mBAAmB;AAAA,OAGkB;AAAA,IAGrCC,wBAAwB,GAAAP,OAAA,CAAAO,wBAAA,0BAAxBA,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;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"}
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}\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;EAAA,OAAnBA,mBAAmB;AAAA,OAGkB;AAAA,IAGrCC,wBAAwB,GAAAP,OAAA,CAAAO,wBAAA,0BAAxBA,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;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;EAAA,OAAdA,cAAc;AAAA"}
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}\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}\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}\n\nexport interface MakeMeetingRequestOptions {\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}\n"],"mappings":""}
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}\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}\n\nexport interface MakeMeetingRequestOptions {\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}\n"],"mappings":""}
package/dist/utils.js ADDED
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.decryptToolUse = exports.decryptMessage = exports.decryptCitedAnswer = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
11
+ var _lodash = require("lodash");
12
+ var decryptInPlace = /*#__PURE__*/function () {
13
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(item, valuePath, keyPath, webex) {
14
+ var encryptedValue, encryptionKeyUrl, decryptedValue;
15
+ return _regenerator.default.wrap(function _callee$(_context) {
16
+ while (1) switch (_context.prev = _context.next) {
17
+ case 0:
18
+ encryptedValue = (0, _lodash.get)(item, valuePath);
19
+ encryptionKeyUrl = (0, _lodash.get)(item, keyPath);
20
+ _context.next = 4;
21
+ return webex.internal.encryption.decryptText(encryptionKeyUrl, encryptedValue);
22
+ case 4:
23
+ decryptedValue = _context.sent;
24
+ (0, _lodash.set)(item, valuePath, decryptedValue);
25
+ case 6:
26
+ case "end":
27
+ return _context.stop();
28
+ }
29
+ }, _callee);
30
+ }));
31
+ return function decryptInPlace(_x, _x2, _x3, _x4) {
32
+ return _ref.apply(this, arguments);
33
+ };
34
+ }();
35
+ var decryptToolUse = exports.decryptToolUse = /*#__PURE__*/function () {
36
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(data, webex) {
37
+ return _regenerator.default.wrap(function _callee2$(_context2) {
38
+ while (1) switch (_context2.prev = _context2.next) {
39
+ case 0:
40
+ _context2.next = 2;
41
+ return decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);
42
+ case 2:
43
+ case "end":
44
+ return _context2.stop();
45
+ }
46
+ }, _callee2);
47
+ }));
48
+ return function decryptToolUse(_x5, _x6) {
49
+ return _ref2.apply(this, arguments);
50
+ };
51
+ }();
52
+ var decryptCitedAnswer = exports.decryptCitedAnswer = /*#__PURE__*/function () {
53
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(data, webex) {
54
+ return _regenerator.default.wrap(function _callee3$(_context3) {
55
+ while (1) switch (_context3.prev = _context3.next) {
56
+ case 0:
57
+ _context3.next = 2;
58
+ return decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);
59
+ case 2:
60
+ case "end":
61
+ return _context3.stop();
62
+ }
63
+ }, _callee3);
64
+ }));
65
+ return function decryptCitedAnswer(_x7, _x8) {
66
+ return _ref3.apply(this, arguments);
67
+ };
68
+ }();
69
+ var decryptMessage = exports.decryptMessage = /*#__PURE__*/function () {
70
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(data, webex) {
71
+ return _regenerator.default.wrap(function _callee4$(_context4) {
72
+ while (1) switch (_context4.prev = _context4.next) {
73
+ case 0:
74
+ _context4.next = 2;
75
+ return decryptInPlace(data, 'value', 'encryptionKeyUrl', webex);
76
+ case 2:
77
+ case "end":
78
+ return _context4.stop();
79
+ }
80
+ }, _callee4);
81
+ }));
82
+ return function decryptMessage(_x9, _x10) {
83
+ return _ref4.apply(this, arguments);
84
+ };
85
+ }();
86
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_lodash","require","decryptInPlace","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","item","valuePath","keyPath","webex","encryptedValue","encryptionKeyUrl","decryptedValue","wrap","_callee$","_context","prev","next","get","internal","encryption","decryptText","sent","set","stop","_x","_x2","_x3","_x4","apply","arguments","decryptToolUse","exports","_ref2","_callee2","data","_callee2$","_context2","_x5","_x6","decryptCitedAnswer","_ref3","_callee3","_callee3$","_context3","_x7","_x8","decryptMessage","_ref4","_callee4","_callee4$","_context4","_x9","_x10"],"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 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 await decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);\n};\n\nexport const decryptMessage = async (data, webex) => {\n await decryptInPlace(data, 'value', 'encryptionKeyUrl', webex);\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -20,10 +20,10 @@
20
20
  ]
21
21
  },
22
22
  "dependencies": {
23
- "@webex/common": "3.8.1-next.1",
24
- "@webex/common-timers": "3.8.1-next.1",
25
- "@webex/internal-plugin-mercury": "3.8.1-next.1",
26
- "@webex/webex-core": "3.8.1-next.1",
23
+ "@webex/common": "3.8.1-next.11",
24
+ "@webex/common-timers": "3.8.1-next.11",
25
+ "@webex/internal-plugin-mercury": "3.9.0-next.2",
26
+ "@webex/webex-core": "3.9.0-next.2",
27
27
  "lodash": "^4.17.21",
28
28
  "uuid": "^3.3.2"
29
29
  },
@@ -33,9 +33,9 @@
33
33
  "@webex/eslint-config-legacy": "0.0.0",
34
34
  "@webex/jest-config-legacy": "0.0.0",
35
35
  "@webex/legacy-tools": "0.0.0",
36
- "@webex/test-helper-chai": "3.8.1-next.1",
37
- "@webex/test-helper-mock-webex": "3.8.1-next.1",
38
- "@webex/test-helper-test-users": "3.8.1-next.1",
36
+ "@webex/test-helper-chai": "3.8.1-next.11",
37
+ "@webex/test-helper-mock-webex": "3.8.1-next.11",
38
+ "@webex/test-helper-test-users": "3.8.1-next.11",
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": "0.0.0-next.2"
52
+ "version": "0.0.0-next.21"
53
53
  }
package/process ADDED
@@ -0,0 +1 @@
1
+ module.exports = {browser: true};