@webex/internal-plugin-ai-assistant 0.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +6 -0
- package/README.md +157 -0
- package/babel.config.js +3 -0
- package/dist/ai-assistant.js +491 -0
- package/dist/ai-assistant.js.map +1 -0
- package/dist/config.js +20 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.js +46 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/jest.config.js +3 -0
- package/package.json +53 -0
- package/src/ai-assistant.ts +448 -0
- package/src/config.ts +13 -0
- package/src/constants.ts +38 -0
- package/src/index.ts +8 -0
- package/src/types.ts +46 -0
- package/test/unit/spec/ai-assistant.ts +363 -0
|
@@ -0,0 +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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"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
/*!
|
|
9
|
+
* Copyright (c) 2015-2025 Cisco Systems, Inc. See LICENSE file.
|
|
10
|
+
*/
|
|
11
|
+
var _default = exports.default = {
|
|
12
|
+
aiassistant: {
|
|
13
|
+
/**
|
|
14
|
+
* Timeout before AI Assistant request fails, in milliseconds.
|
|
15
|
+
* @type {Number}
|
|
16
|
+
*/
|
|
17
|
+
requestTimeout: 6000
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
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;
|
|
8
|
+
var AI_ASSISTANT_REGISTERED = exports.AI_ASSISTANT_REGISTERED = 'aiassistant:registered';
|
|
9
|
+
var AI_ASSISTANT_UNREGISTERED = exports.AI_ASSISTANT_UNREGISTERED = 'aiassistant:unregistered';
|
|
10
|
+
var ASSISTANT_API_RESPONSE_EVENT = exports.ASSISTANT_API_RESPONSE_EVENT = 'event:assistant-api.response';
|
|
11
|
+
var AI_ASSISTANT_SERVICE_NAME = exports.AI_ASSISTANT_SERVICE_NAME = 'assistant-api';
|
|
12
|
+
var AI_ASSISTANT_RESULT = exports.AI_ASSISTANT_RESULT = 'aiassistant:result';
|
|
13
|
+
var AI_ASSISTANT_STREAM = exports.AI_ASSISTANT_STREAM = 'aiassistant:stream';
|
|
14
|
+
var AI_ASSISTANT_ERRORS = exports.AI_ASSISTANT_ERRORS = /*#__PURE__*/function (AI_ASSISTANT_ERRORS) {
|
|
15
|
+
AI_ASSISTANT_ERRORS["NOT_ENOUGH_CONTENT"] = "NO_ENOUGH_MEETING_TRANSCRIPT";
|
|
16
|
+
AI_ASSISTANT_ERRORS["TRANSCRIPT_AUTH_ERROR"] = "TRANSCRIPT_AUTH_ERROR";
|
|
17
|
+
AI_ASSISTANT_ERRORS["AI_ASSISTANT_TIMEOUT"] = "AI_ASSISTANT_TIMEOUT";
|
|
18
|
+
return AI_ASSISTANT_ERRORS;
|
|
19
|
+
}({}); // This one is generated by the plugin
|
|
20
|
+
var AI_ASSISTANT_ERROR_CODES = exports.AI_ASSISTANT_ERROR_CODES = /*#__PURE__*/function (AI_ASSISTANT_ERROR_CODES) {
|
|
21
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["AI_ASSISTANT_TIMEOUT"] = 9408] = "AI_ASSISTANT_TIMEOUT";
|
|
22
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["NOT_ENOUGH_CONTENT"] = 204] = "NOT_ENOUGH_CONTENT";
|
|
23
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["FORBIDDEN"] = 403] = "FORBIDDEN";
|
|
24
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["LLM_TIMEOUT"] = 408] = "LLM_TIMEOUT";
|
|
25
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["RATE_LIMIT"] = 429] = "RATE_LIMIT";
|
|
26
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["GENERIC_ERROR"] = 10000] = "GENERIC_ERROR";
|
|
27
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["WAIT_PREVIOUS"] = 10001] = "WAIT_PREVIOUS";
|
|
28
|
+
AI_ASSISTANT_ERROR_CODES[AI_ASSISTANT_ERROR_CODES["EMPTY_SEARCH_RESULT"] = 10002] = "EMPTY_SEARCH_RESULT";
|
|
29
|
+
return AI_ASSISTANT_ERROR_CODES;
|
|
30
|
+
}({});
|
|
31
|
+
var ACTION_TYPES = exports.ACTION_TYPES = /*#__PURE__*/function (ACTION_TYPES) {
|
|
32
|
+
ACTION_TYPES["SHOW_ALL_ACTION_ITEMS"] = "SHOW_ALL_ACTION_ITEMS";
|
|
33
|
+
ACTION_TYPES["WAS_MY_NAME_MENTIONED"] = "WAS_MY_NAME_MENTIONED";
|
|
34
|
+
ACTION_TYPES["SUMMARIZE_FOR_ME"] = "SUMMARIZE_FOR_ME";
|
|
35
|
+
return ACTION_TYPES;
|
|
36
|
+
}({});
|
|
37
|
+
var CONTENT_TYPES = exports.CONTENT_TYPES = /*#__PURE__*/function (CONTENT_TYPES) {
|
|
38
|
+
CONTENT_TYPES["ACTION"] = "action";
|
|
39
|
+
CONTENT_TYPES["MESSAGE"] = "message";
|
|
40
|
+
return CONTENT_TYPES;
|
|
41
|
+
}({});
|
|
42
|
+
var CONTEXT_RESOURCE_TYPES = exports.CONTEXT_RESOURCE_TYPES = /*#__PURE__*/function (CONTEXT_RESOURCE_TYPES) {
|
|
43
|
+
CONTEXT_RESOURCE_TYPES["MEETING"] = "meeting";
|
|
44
|
+
return CONTEXT_RESOURCE_TYPES;
|
|
45
|
+
}({});
|
|
46
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
_Object$defineProperty(exports, "default", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _aiAssistant.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
var _webexCore = require("@webex/webex-core");
|
|
15
|
+
var _aiAssistant = _interopRequireDefault(require("./ai-assistant"));
|
|
16
|
+
var _config = _interopRequireDefault(require("./config"));
|
|
17
|
+
(0, _webexCore.registerInternalPlugin)('aiassistant', _aiAssistant.default, {
|
|
18
|
+
config: _config.default
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_aiAssistant","_interopRequireDefault","_config","registerInternalPlugin","AIAssistant","config"],"sources":["index.ts"],"sourcesContent":["import {registerInternalPlugin} from '@webex/webex-core';\n\nimport AIAssistant from './ai-assistant';\nimport config from './config';\n\nregisterInternalPlugin('aiassistant', AIAssistant, {config});\n\nexport {default} from './ai-assistant';\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,iCAAsB,EAAC,aAAa,EAAEC,oBAAW,EAAE;EAACC,MAAM,EAANA;AAAM,CAAC,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +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":""}
|
package/jest.config.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webex/internal-plugin-ai-assistant",
|
|
3
|
+
"description": "A Webex plugin for AI Assistant functionality",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"author": "Colin Read <coread@cisco.com>",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"devMain": "src/index.ts",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/webex/webex-js-sdk.git",
|
|
11
|
+
"directory": "packages/@webex/internal-plugin-ai-assistant"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=16"
|
|
15
|
+
},
|
|
16
|
+
"browserify": {
|
|
17
|
+
"transform": [
|
|
18
|
+
"babelify",
|
|
19
|
+
"envify"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
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",
|
|
27
|
+
"lodash": "^4.17.21",
|
|
28
|
+
"uuid": "^3.3.2"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@babel/core": "^7.17.10",
|
|
32
|
+
"@webex/babel-config-legacy": "0.0.0",
|
|
33
|
+
"@webex/eslint-config-legacy": "0.0.0",
|
|
34
|
+
"@webex/jest-config-legacy": "0.0.0",
|
|
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",
|
|
39
|
+
"eslint": "^8.24.0",
|
|
40
|
+
"prettier": "^2.7.1",
|
|
41
|
+
"sinon": "^9.2.4"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "yarn build:src",
|
|
45
|
+
"build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
|
|
46
|
+
"deploy:npm": "yarn npm publish",
|
|
47
|
+
"test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
|
|
48
|
+
"test:browser": "webex-legacy-tools test --integration --runner karma",
|
|
49
|
+
"test:style": "eslint ./src/**/*.*",
|
|
50
|
+
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
51
|
+
},
|
|
52
|
+
"version": "0.0.0-next.1"
|
|
53
|
+
}
|