@webex/internal-plugin-ai-assistant 0.0.0-next.22 → 0.0.0-next.24
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 +12 -7
- package/dist/ai-assistant.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/utils.js +27 -4
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/ai-assistant.ts +5 -1
- package/src/constants.ts +1 -0
- package/src/utils.ts +8 -0
- package/test/unit/data/messages.ts +386 -0
- package/test/unit/spec/ai-assistant.ts +48 -1
package/dist/ai-assistant.js
CHANGED
|
@@ -149,28 +149,33 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
149
149
|
while (1) switch (_context.prev = _context.next) {
|
|
150
150
|
case 0:
|
|
151
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;
|
|
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 : _context.t0 === _constants.RESPONSE_NAMES.WORKSPACE ? 13 : 16;
|
|
153
153
|
break;
|
|
154
154
|
case 3:
|
|
155
155
|
_context.next = 5;
|
|
156
156
|
return (0, _utils.decryptMessage)(responseContent, _this4.webex);
|
|
157
157
|
case 5:
|
|
158
|
-
return _context.abrupt("break",
|
|
158
|
+
return _context.abrupt("break", 17);
|
|
159
159
|
case 6:
|
|
160
160
|
_context.next = 8;
|
|
161
161
|
return (0, _utils.decryptCitedAnswer)(responseContent, _this4.webex);
|
|
162
162
|
case 8:
|
|
163
|
-
return _context.abrupt("break",
|
|
163
|
+
return _context.abrupt("break", 17);
|
|
164
164
|
case 9:
|
|
165
|
-
return _context.abrupt("break",
|
|
165
|
+
return _context.abrupt("break", 17);
|
|
166
166
|
case 10:
|
|
167
167
|
_context.next = 12;
|
|
168
168
|
return (0, _utils.decryptToolUse)(responseContent, _this4.webex);
|
|
169
169
|
case 12:
|
|
170
|
-
return _context.abrupt("break",
|
|
170
|
+
return _context.abrupt("break", 17);
|
|
171
171
|
case 13:
|
|
172
|
+
_context.next = 15;
|
|
173
|
+
return (0, _utils.decryptWorkspace)(responseContent, _this4.webex);
|
|
174
|
+
case 15:
|
|
175
|
+
return _context.abrupt("break", 17);
|
|
176
|
+
case 16:
|
|
172
177
|
_this4.logger.error("AI assistant->_decryptContent#ERROR, Unknown response content name: ".concat(responseContent.name));
|
|
173
|
-
case
|
|
178
|
+
case 17:
|
|
174
179
|
case "end":
|
|
175
180
|
return _context.stop();
|
|
176
181
|
}
|
|
@@ -445,7 +450,7 @@ var AIAssistant = _webexCore.WebexPlugin.extend({
|
|
|
445
450
|
contentValue: options.question
|
|
446
451
|
}));
|
|
447
452
|
},
|
|
448
|
-
version: "0.0.0-next.
|
|
453
|
+
version: "0.0.0-next.24"
|
|
449
454
|
});
|
|
450
455
|
var _default = exports.default = AIAssistant;
|
|
451
456
|
//# 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","_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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"}
|
|
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","WORKSPACE","decryptMessage","abrupt","decryptCitedAnswer","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","_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, decryptWorkspace} 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 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 = 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/constants.js
CHANGED
|
@@ -48,6 +48,7 @@ var RESPONSE_NAMES = exports.RESPONSE_NAMES = /*#__PURE__*/function (RESPONSE_NA
|
|
|
48
48
|
RESPONSE_NAMES["CITED_ANSWER"] = "cited_answer";
|
|
49
49
|
RESPONSE_NAMES["MESSAGE"] = "message";
|
|
50
50
|
RESPONSE_NAMES["TOOL_RESULT"] = "tool_result";
|
|
51
|
+
RESPONSE_NAMES["WORKSPACE"] = "workspace";
|
|
51
52
|
return RESPONSE_NAMES;
|
|
52
53
|
}({});
|
|
53
54
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -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","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"}
|
|
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}\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;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA"}
|
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.decryptToolUse = exports.decryptMessage = exports.decryptCitedAnswer = void 0;
|
|
8
|
+
exports.decryptWorkspace = exports.decryptToolUse = 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"));
|
|
@@ -18,12 +18,18 @@ var decryptInPlace = /*#__PURE__*/function () {
|
|
|
18
18
|
case 0:
|
|
19
19
|
encryptedValue = (0, _lodash.get)(item, valuePath);
|
|
20
20
|
encryptionKeyUrl = (0, _lodash.get)(item, keyPath);
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
if (!(!encryptedValue || !encryptionKeyUrl)) {
|
|
22
|
+
_context.next = 4;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
return _context.abrupt("return");
|
|
23
26
|
case 4:
|
|
27
|
+
_context.next = 6;
|
|
28
|
+
return webex.internal.encryption.decryptText(encryptionKeyUrl, encryptedValue);
|
|
29
|
+
case 6:
|
|
24
30
|
decryptedValue = _context.sent;
|
|
25
31
|
(0, _lodash.set)(item, valuePath, decryptedValue);
|
|
26
|
-
case
|
|
32
|
+
case 8:
|
|
27
33
|
case "end":
|
|
28
34
|
return _context.stop();
|
|
29
35
|
}
|
|
@@ -93,4 +99,21 @@ var decryptMessage = exports.decryptMessage = /*#__PURE__*/function () {
|
|
|
93
99
|
return _ref4.apply(this, arguments);
|
|
94
100
|
};
|
|
95
101
|
}();
|
|
102
|
+
var decryptWorkspace = exports.decryptWorkspace = /*#__PURE__*/function () {
|
|
103
|
+
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(data, webex) {
|
|
104
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
105
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
106
|
+
case 0:
|
|
107
|
+
_context5.next = 2;
|
|
108
|
+
return decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);
|
|
109
|
+
case 2:
|
|
110
|
+
case "end":
|
|
111
|
+
return _context5.stop();
|
|
112
|
+
}
|
|
113
|
+
}, _callee5);
|
|
114
|
+
}));
|
|
115
|
+
return function decryptWorkspace(_x11, _x12) {
|
|
116
|
+
return _ref5.apply(this, arguments);
|
|
117
|
+
};
|
|
118
|
+
}();
|
|
96
119
|
//# 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","_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","value","citations","_promise","all","map","citation","index","concat","_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 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};\n\nexport const decryptMessage = async (data, webex) => {\n await decryptInPlace(data, 'value', 'encryptionKeyUrl', webex);\n};\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAMC,cAAc;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,gBAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QAAOC,IAAI,EAAEC,SAAS,EAAEC,OAAO,EAAEC,KAAK;IAAA,IAAAC,cAAA,EAAAC,gBAAA,EAAAC,cAAA;IAAA,OAAAT,YAAA,CAAAD,OAAA,CAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACrDP,cAAc,GAAG,IAAAQ,WAAG,EAACZ,IAAI,EAAEC,SAAS,CAAC;UACrCI,gBAAgB,GAAG,IAAAO,WAAG,EAACZ,IAAI,EAAEE,OAAO,CAAC;
|
|
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","abrupt","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","value","citations","_promise","all","map","citation","index","concat","_x7","_x8","decryptMessage","_ref4","_callee4","_callee4$","_context4","_x9","_x10","decryptWorkspace","_ref5","_callee5","_callee5$","_context5","_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};\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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"}
|
package/package.json
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@webex/common": "3.8.1-next.11",
|
|
24
24
|
"@webex/common-timers": "3.8.1-next.11",
|
|
25
|
-
"@webex/internal-plugin-mercury": "3.9.0-next.
|
|
26
|
-
"@webex/webex-core": "3.9.0-next.
|
|
25
|
+
"@webex/internal-plugin-mercury": "3.9.0-next.3",
|
|
26
|
+
"@webex/webex-core": "3.9.0-next.3",
|
|
27
27
|
"lodash": "^4.17.21",
|
|
28
28
|
"uuid": "^3.3.2"
|
|
29
29
|
},
|
|
@@ -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.
|
|
52
|
+
"version": "0.0.0-next.24"
|
|
53
53
|
}
|
package/src/ai-assistant.ts
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
CONTEXT_RESOURCE_TYPES,
|
|
28
28
|
RESPONSE_NAMES,
|
|
29
29
|
} from './constants';
|
|
30
|
-
import {decryptCitedAnswer, decryptMessage, decryptToolUse} from './utils';
|
|
30
|
+
import {decryptCitedAnswer, decryptMessage, decryptToolUse, decryptWorkspace} from './utils';
|
|
31
31
|
|
|
32
32
|
const AIAssistant = WebexPlugin.extend({
|
|
33
33
|
namespace: 'AIAssistant',
|
|
@@ -177,6 +177,10 @@ const AIAssistant = WebexPlugin.extend({
|
|
|
177
177
|
await decryptToolUse(responseContent, this.webex);
|
|
178
178
|
break;
|
|
179
179
|
}
|
|
180
|
+
case RESPONSE_NAMES.WORKSPACE: {
|
|
181
|
+
await decryptWorkspace(responseContent, this.webex);
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
180
184
|
default:
|
|
181
185
|
this.logger.error(
|
|
182
186
|
`AI assistant->_decryptContent#ERROR, Unknown response content name: ${responseContent.name}`
|
package/src/constants.ts
CHANGED
package/src/utils.ts
CHANGED
|
@@ -4,6 +4,10 @@ const decryptInPlace = async (item, valuePath, keyPath, webex) => {
|
|
|
4
4
|
const encryptedValue = get(item, valuePath);
|
|
5
5
|
const encryptionKeyUrl = get(item, keyPath);
|
|
6
6
|
|
|
7
|
+
if (!encryptedValue || !encryptionKeyUrl) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
7
11
|
const decryptedValue = await webex.internal.encryption.decryptText(
|
|
8
12
|
encryptionKeyUrl,
|
|
9
13
|
encryptedValue
|
|
@@ -31,3 +35,7 @@ export const decryptCitedAnswer = async (data, webex) => {
|
|
|
31
35
|
export const decryptMessage = async (data, webex) => {
|
|
32
36
|
await decryptInPlace(data, 'value', 'encryptionKeyUrl', webex);
|
|
33
37
|
};
|
|
38
|
+
|
|
39
|
+
export const decryptWorkspace = async (data, webex) => {
|
|
40
|
+
await decryptInPlace(data, 'value.value', 'encryptionKeyUrl', webex);
|
|
41
|
+
};
|
|
@@ -270,4 +270,390 @@ export const jsonResponse = [
|
|
|
270
270
|
},
|
|
271
271
|
},
|
|
272
272
|
},
|
|
273
|
+
];
|
|
274
|
+
|
|
275
|
+
export const workspaceResponse = [
|
|
276
|
+
{
|
|
277
|
+
eventType: 'assistant-api.response',
|
|
278
|
+
sequence: 0,
|
|
279
|
+
finished: false,
|
|
280
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
281
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
282
|
+
responseType: 'response',
|
|
283
|
+
response: {
|
|
284
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
285
|
+
sessionUrl:
|
|
286
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
287
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
288
|
+
messageUrl:
|
|
289
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
290
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
291
|
+
responseUrl:
|
|
292
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
293
|
+
content: {
|
|
294
|
+
name: 'workspace',
|
|
295
|
+
type: 'json',
|
|
296
|
+
encryptionKeyUrl: 'workspace_0_encryption_key_url',
|
|
297
|
+
value: {
|
|
298
|
+
value:
|
|
299
|
+
'workspace_0_encrypted_value',
|
|
300
|
+
type: 'markdown',
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
createdAt: '2025-10-01T16:03:14.618039425Z',
|
|
304
|
+
creator: {
|
|
305
|
+
role: 'assistant',
|
|
306
|
+
},
|
|
307
|
+
},
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
eventType: 'assistant-api.response',
|
|
311
|
+
sequence: 1,
|
|
312
|
+
finished: false,
|
|
313
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
314
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
315
|
+
responseType: 'response',
|
|
316
|
+
response: {
|
|
317
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
318
|
+
sessionUrl:
|
|
319
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
320
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
321
|
+
messageUrl:
|
|
322
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
323
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
324
|
+
responseUrl:
|
|
325
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
326
|
+
content: {
|
|
327
|
+
name: 'workspace',
|
|
328
|
+
type: 'json',
|
|
329
|
+
encryptionKeyUrl: 'workspace_1_encryption_key_url',
|
|
330
|
+
value: {
|
|
331
|
+
value:
|
|
332
|
+
'workspace_1_encrypted_value',
|
|
333
|
+
type: 'markdown',
|
|
334
|
+
},
|
|
335
|
+
},
|
|
336
|
+
createdAt: '2025-10-01T16:03:14.632634365Z',
|
|
337
|
+
creator: {
|
|
338
|
+
role: 'assistant',
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
eventType: 'assistant-api.response',
|
|
344
|
+
sequence: 2,
|
|
345
|
+
finished: false,
|
|
346
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
347
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
348
|
+
responseType: 'response',
|
|
349
|
+
response: {
|
|
350
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
351
|
+
sessionUrl:
|
|
352
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
353
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
354
|
+
messageUrl:
|
|
355
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
356
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
357
|
+
responseUrl:
|
|
358
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
359
|
+
content: {
|
|
360
|
+
name: 'workspace',
|
|
361
|
+
type: 'json',
|
|
362
|
+
encryptionKeyUrl: 'workspace_2_encryption_key_url',
|
|
363
|
+
value: {
|
|
364
|
+
value:
|
|
365
|
+
'workspace_2_encrypted_value',
|
|
366
|
+
type: 'markdown',
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
createdAt: '2025-10-01T16:03:14.638066338Z',
|
|
370
|
+
creator: {
|
|
371
|
+
role: 'assistant',
|
|
372
|
+
},
|
|
373
|
+
},
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
eventType: 'assistant-api.response',
|
|
377
|
+
sequence: 3,
|
|
378
|
+
finished: false,
|
|
379
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
380
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
381
|
+
responseType: 'response',
|
|
382
|
+
response: {
|
|
383
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
384
|
+
sessionUrl:
|
|
385
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
386
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
387
|
+
messageUrl:
|
|
388
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
389
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
390
|
+
responseUrl:
|
|
391
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
392
|
+
content: {
|
|
393
|
+
name: 'workspace',
|
|
394
|
+
type: 'json',
|
|
395
|
+
encryptionKeyUrl: 'workspace_3_encryption_key_url',
|
|
396
|
+
value: {
|
|
397
|
+
value:
|
|
398
|
+
'workspace_3_encrypted_value',
|
|
399
|
+
type: 'markdown',
|
|
400
|
+
},
|
|
401
|
+
},
|
|
402
|
+
createdAt: '2025-10-01T16:03:14.642730033Z',
|
|
403
|
+
creator: {
|
|
404
|
+
role: 'assistant',
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
eventType: 'assistant-api.response',
|
|
410
|
+
sequence: 4,
|
|
411
|
+
finished: false,
|
|
412
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
413
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
414
|
+
responseType: 'response',
|
|
415
|
+
response: {
|
|
416
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
417
|
+
sessionUrl:
|
|
418
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
419
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
420
|
+
messageUrl:
|
|
421
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
422
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
423
|
+
responseUrl:
|
|
424
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
425
|
+
content: {
|
|
426
|
+
name: 'workspace',
|
|
427
|
+
type: 'json',
|
|
428
|
+
encryptionKeyUrl: 'workspace_4_encryption_key_url',
|
|
429
|
+
value: {
|
|
430
|
+
value:
|
|
431
|
+
'workspace_4_encrypted_value',
|
|
432
|
+
type: 'markdown',
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
createdAt: '2025-10-01T16:03:14.646888868Z',
|
|
436
|
+
creator: {
|
|
437
|
+
role: 'assistant',
|
|
438
|
+
},
|
|
439
|
+
},
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
eventType: 'assistant-api.response',
|
|
443
|
+
sequence: 5,
|
|
444
|
+
finished: false,
|
|
445
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
446
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
447
|
+
responseType: 'response',
|
|
448
|
+
response: {
|
|
449
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
450
|
+
sessionUrl:
|
|
451
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
452
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
453
|
+
messageUrl:
|
|
454
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
455
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
456
|
+
responseUrl:
|
|
457
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
458
|
+
content: {
|
|
459
|
+
name: 'workspace',
|
|
460
|
+
type: 'json',
|
|
461
|
+
encryptionKeyUrl: 'workspace_5_encryption_key_url',
|
|
462
|
+
value: {
|
|
463
|
+
value:
|
|
464
|
+
'workspace_5_encrypted_value',
|
|
465
|
+
type: 'markdown',
|
|
466
|
+
},
|
|
467
|
+
},
|
|
468
|
+
createdAt: '2025-10-01T16:03:14.835012270Z',
|
|
469
|
+
creator: {
|
|
470
|
+
role: 'assistant',
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
eventType: 'assistant-api.response',
|
|
476
|
+
sequence: 6,
|
|
477
|
+
finished: false,
|
|
478
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
479
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
480
|
+
responseType: 'response',
|
|
481
|
+
response: {
|
|
482
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
483
|
+
sessionUrl:
|
|
484
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
485
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
486
|
+
messageUrl:
|
|
487
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
488
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
489
|
+
responseUrl:
|
|
490
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
491
|
+
content: {
|
|
492
|
+
name: 'workspace',
|
|
493
|
+
type: 'json',
|
|
494
|
+
encryptionKeyUrl: 'workspace_6_encryption_key_url',
|
|
495
|
+
value: {
|
|
496
|
+
value:
|
|
497
|
+
'workspace_6_encrypted_value',
|
|
498
|
+
type: 'markdown',
|
|
499
|
+
},
|
|
500
|
+
},
|
|
501
|
+
createdAt: '2025-10-01T16:03:14.841182063Z',
|
|
502
|
+
creator: {
|
|
503
|
+
role: 'assistant',
|
|
504
|
+
},
|
|
505
|
+
},
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
eventType: 'assistant-api.response',
|
|
509
|
+
sequence: 8,
|
|
510
|
+
finished: false,
|
|
511
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
512
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
513
|
+
responseType: 'response',
|
|
514
|
+
response: {
|
|
515
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
516
|
+
sessionUrl:
|
|
517
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
518
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
519
|
+
messageUrl:
|
|
520
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
521
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
522
|
+
responseUrl:
|
|
523
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
524
|
+
content: {
|
|
525
|
+
name: 'workspace',
|
|
526
|
+
type: 'json',
|
|
527
|
+
encryptionKeyUrl: 'workspace_7_encryption_key_url',
|
|
528
|
+
value: {
|
|
529
|
+
value:
|
|
530
|
+
'workspace_7_encrypted_value',
|
|
531
|
+
type: 'markdown',
|
|
532
|
+
},
|
|
533
|
+
},
|
|
534
|
+
createdAt: '2025-10-01T16:03:14.850312819Z',
|
|
535
|
+
creator: {
|
|
536
|
+
role: 'assistant',
|
|
537
|
+
},
|
|
538
|
+
},
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
eventType: 'assistant-api.response',
|
|
542
|
+
sequence: 7,
|
|
543
|
+
finished: false,
|
|
544
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
545
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
546
|
+
responseType: 'response',
|
|
547
|
+
response: {
|
|
548
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
549
|
+
sessionUrl:
|
|
550
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
551
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
552
|
+
messageUrl:
|
|
553
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
554
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
555
|
+
responseUrl:
|
|
556
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
557
|
+
content: {
|
|
558
|
+
name: 'workspace',
|
|
559
|
+
type: 'json',
|
|
560
|
+
encryptionKeyUrl: 'workspace_8_encryption_key_url',
|
|
561
|
+
value: {
|
|
562
|
+
value:
|
|
563
|
+
'workspace_8_encrypted_value',
|
|
564
|
+
type: 'markdown',
|
|
565
|
+
},
|
|
566
|
+
},
|
|
567
|
+
createdAt: '2025-10-01T16:03:14.845884433Z',
|
|
568
|
+
creator: {
|
|
569
|
+
role: 'assistant',
|
|
570
|
+
},
|
|
571
|
+
},
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
eventType: 'assistant-api.response',
|
|
575
|
+
sequence: 9,
|
|
576
|
+
finished: false,
|
|
577
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
578
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
579
|
+
responseType: 'response',
|
|
580
|
+
response: {
|
|
581
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
582
|
+
sessionUrl:
|
|
583
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
584
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
585
|
+
messageUrl:
|
|
586
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
587
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
588
|
+
responseUrl:
|
|
589
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
590
|
+
content: {
|
|
591
|
+
name: 'workspace',
|
|
592
|
+
type: 'json',
|
|
593
|
+
encryptionKeyUrl: 'workspace_9_encryption_key_url',
|
|
594
|
+
value: {
|
|
595
|
+
value:
|
|
596
|
+
'workspace_9_encrypted_value',
|
|
597
|
+
type: 'markdown',
|
|
598
|
+
},
|
|
599
|
+
},
|
|
600
|
+
createdAt: '2025-10-01T16:03:14.855166806Z',
|
|
601
|
+
creator: {
|
|
602
|
+
role: 'assistant',
|
|
603
|
+
},
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
eventType: 'assistant-api.response',
|
|
608
|
+
sequence: 10,
|
|
609
|
+
finished: true,
|
|
610
|
+
clientRequestId: 'e884e177-562a-4938-9c6f-e631eb2d7e4e',
|
|
611
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
612
|
+
responseType: 'response',
|
|
613
|
+
response: {
|
|
614
|
+
sessionId: '221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
615
|
+
sessionUrl:
|
|
616
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97',
|
|
617
|
+
messageId: '221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
618
|
+
messageUrl:
|
|
619
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/221f60b0-9ee0-11f0-afd6-4fccce6dcc97',
|
|
620
|
+
responseId: '2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
621
|
+
responseUrl:
|
|
622
|
+
'https://assistant-api-intb2.ciscospark.com:443/assistant-api/api/v1/sessions/221b4200-9ee0-11f0-afd6-4fccce6dcc97/messages/2220e750-9ee0-11f0-afd6-4fccce6dcc97',
|
|
623
|
+
content: {
|
|
624
|
+
name: 'workspace',
|
|
625
|
+
type: 'json',
|
|
626
|
+
encryptionKeyUrl: 'workspace_10_encryption_key_url',
|
|
627
|
+
value: {
|
|
628
|
+
value: 'workspace_10_encrypted_value',
|
|
629
|
+
type: 'markdown',
|
|
630
|
+
workspace: {
|
|
631
|
+
name: 'New Workspace',
|
|
632
|
+
spaceUrl: 'https://example.com/workspaces/project-a',
|
|
633
|
+
participants: [
|
|
634
|
+
{
|
|
635
|
+
displayName: 'Person 1',
|
|
636
|
+
email: 'email1@example.com',
|
|
637
|
+
userId: '9f25cab0-1234-11f0-92dd-d5fbeb2f299a',
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
displayName: 'Person 2',
|
|
641
|
+
email: 'email2@example.com',
|
|
642
|
+
userId: 'a1345f10-1234-11f0-92dd-d5fbeb2f299a',
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
displayName: 'Person 3',
|
|
646
|
+
email: 'email3@example.com',
|
|
647
|
+
userId: 'b2487c40-1234-11f0-92dd-d5fbeb2f299a',
|
|
648
|
+
},
|
|
649
|
+
],
|
|
650
|
+
},
|
|
651
|
+
},
|
|
652
|
+
},
|
|
653
|
+
createdAt: '2025-10-01T16:03:14.914682155Z',
|
|
654
|
+
creator: {
|
|
655
|
+
role: 'assistant',
|
|
656
|
+
},
|
|
657
|
+
},
|
|
658
|
+
},
|
|
273
659
|
];
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
AI_ASSISTANT_ERROR_CODES,
|
|
17
17
|
AI_ASSISTANT_ERRORS,
|
|
18
18
|
} from '@webex/internal-plugin-ai-assistant/src/constants';
|
|
19
|
-
import {jsonResponse, messageResponse} from '../data/messages';
|
|
19
|
+
import {jsonResponse, messageResponse, workspaceResponse} from '../data/messages';
|
|
20
20
|
|
|
21
21
|
const waitForAsync = () =>
|
|
22
22
|
new Promise<void>((resolve) =>
|
|
@@ -559,6 +559,53 @@ describe('plugin-ai-assistant', () => {
|
|
|
559
559
|
expect(triggerSpy.getCall(1).args[1]).to.deep.equal(expectedResult);
|
|
560
560
|
});
|
|
561
561
|
|
|
562
|
+
it('handles a workspace response', async () => {
|
|
563
|
+
const triggerSpy = sinon.spy(webex.internal.aiAssistant, 'trigger');
|
|
564
|
+
webex.internal.encryption.decryptText.callsFake(async (keyUrl, value) => {
|
|
565
|
+
return `decrypted-with-${keyUrl}-${value}`;
|
|
566
|
+
});
|
|
567
|
+
|
|
568
|
+
await webex.internal.aiAssistant._request({
|
|
569
|
+
resource: 'test-resource',
|
|
570
|
+
params: {param1: 'value1'},
|
|
571
|
+
});
|
|
572
|
+
|
|
573
|
+
// first event is a workspace chunk with an encrypted value
|
|
574
|
+
// Update the clientRequestId to match the test setup
|
|
575
|
+
const firstEvent = cloneDeep(workspaceResponse[0]);
|
|
576
|
+
firstEvent.clientRequestId = 'test-request-id';
|
|
577
|
+
|
|
578
|
+
await webex.internal.aiAssistant._handleEvent(firstEvent);
|
|
579
|
+
|
|
580
|
+
expect(triggerSpy.getCall(0).args[0]).to.equal(
|
|
581
|
+
`aiassistant:result:test-request-id`
|
|
582
|
+
);
|
|
583
|
+
|
|
584
|
+
await waitForAsync();
|
|
585
|
+
|
|
586
|
+
let expectedResult = set(
|
|
587
|
+
cloneDeep(firstEvent),
|
|
588
|
+
'response.content.value.value',
|
|
589
|
+
'decrypted-with-workspace_0_encryption_key_url-workspace_0_encrypted_value'
|
|
590
|
+
);
|
|
591
|
+
|
|
592
|
+
expect(triggerSpy.getCall(0).args[1]).to.deep.equal(expectedResult);
|
|
593
|
+
|
|
594
|
+
// second event is another workspace chunk with an encrypted value
|
|
595
|
+
const secondEvent = cloneDeep(workspaceResponse[1]);
|
|
596
|
+
secondEvent.clientRequestId = 'test-request-id';
|
|
597
|
+
|
|
598
|
+
await webex.internal.aiAssistant._handleEvent(secondEvent);
|
|
599
|
+
|
|
600
|
+
expectedResult = set(
|
|
601
|
+
cloneDeep(secondEvent),
|
|
602
|
+
'response.content.value.value',
|
|
603
|
+
'decrypted-with-workspace_1_encryption_key_url-workspace_1_encrypted_value'
|
|
604
|
+
);
|
|
605
|
+
|
|
606
|
+
expect(triggerSpy.getCall(2).args[1]).to.deep.equal(expectedResult);
|
|
607
|
+
});
|
|
608
|
+
|
|
562
609
|
it('decrypts and emits data when receiving event data', async () => {
|
|
563
610
|
const triggerSpy = sinon.spy(webex.internal.aiAssistant, 'trigger');
|
|
564
611
|
|