@webex/internal-plugin-llm 3.0.0-beta.3 → 3.0.0-beta.300

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,14 +22,13 @@ npm install --save @webex/internal-plugin-llm
22
22
  ## Usage
23
23
 
24
24
  ```js
25
-
26
25
  import '@webex/internal-plugin-llm';
27
26
 
28
27
  import WebexCore from '@webex/webex-core';
29
28
 
30
29
  const webex = new WebexCore();
31
30
  // locusUrl is got from meeting.locusInfo.url;
32
- // datachannelUrl is got from meeting.locusInfo.info.datachannelUrl;
31
+ // datachannelUrl is got from meeting.locusInfo.info.datachannelUrl;
33
32
  webex.internal.llm.registerAndConnect(locusUrl, datachannelUrl);
34
33
 
35
34
  // Checks if LLM is connected
package/dist/constants.js CHANGED
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  _Object$defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
-
9
7
  exports.LLM = void 0;
10
8
  // eslint-disable-next-line import/prefer-default-export
11
9
  var LLM = 'llm';
@@ -1 +1 @@
1
- {"version":3,"names":["LLM"],"sources":["constants.ts"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const LLM = 'llm';\n"],"mappings":";;;;;;;;;AAAA;AACO,IAAMA,GAAG,GAAG,KAAZ"}
1
+ {"version":3,"names":["LLM"],"sources":["constants.ts"],"sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const LLM = 'llm';\n"],"mappings":";;;;;;;AAAA;AACO,IAAMA,GAAG,GAAG,KAAK;AAAC"}
package/dist/index.js CHANGED
@@ -1,32 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
-
5
4
  var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
6
-
7
5
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
8
-
9
6
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
10
-
11
7
  _Object$defineProperty(exports, "__esModule", {
12
8
  value: true
13
9
  });
14
-
15
10
  _Object$defineProperty(exports, "default", {
16
11
  enumerable: true,
17
12
  get: function get() {
18
13
  return _llm.default;
19
14
  }
20
15
  });
21
-
22
16
  var WebexCore = _interopRequireWildcard(require("@webex/webex-core"));
23
-
24
17
  var _llm = _interopRequireWildcard(require("./llm"));
25
-
26
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
20
  WebexCore.registerInternalPlugin('llm', _llm.default, {
31
21
  config: _llm.config
32
22
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["WebexCore","registerInternalPlugin","LLMChannel","config"],"sources":["index.ts"],"sourcesContent":["import * as WebexCore from '@webex/webex-core';\nimport LLMChannel, {config} from './llm';\n\nWebexCore.registerInternalPlugin('llm', LLMChannel, {\n config,\n});\n\nexport {default} from './llm';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEAA,SAAS,CAACC,sBAAV,CAAiC,KAAjC,EAAwCC,YAAxC,EAAoD;EAClDC,MAAM,EAANA;AADkD,CAApD"}
1
+ {"version":3,"names":["WebexCore","registerInternalPlugin","LLMChannel","config"],"sources":["index.ts"],"sourcesContent":["import * as WebexCore from '@webex/webex-core';\nimport LLMChannel, {config} from './llm';\n\nWebexCore.registerInternalPlugin('llm', LLMChannel, {\n config,\n});\n\nexport {default} from './llm';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AACA;AAAyC;AAAA;AAEzCA,SAAS,CAACC,sBAAsB,CAAC,KAAK,EAAEC,YAAU,EAAE;EAClDC,MAAM,EAANA;AACF,CAAC,CAAC"}
package/dist/llm.js CHANGED
@@ -1,41 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
-
7
5
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
-
9
6
  _Object$defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
-
13
9
  exports.default = exports.config = void 0;
14
-
15
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
18
-
19
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
20
-
21
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
22
-
23
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
24
-
25
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
26
-
27
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
28
-
29
17
  var _internalPluginMercury = _interopRequireDefault(require("@webex/internal-plugin-mercury"));
30
-
31
- var _pluginMeetings = require("@webex/plugin-meetings");
32
-
33
18
  var _constants = require("./constants");
34
-
35
19
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
36
-
37
20
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
38
-
39
21
  var config = {
40
22
  llm: {
41
23
  /**
@@ -43,25 +25,21 @@ var config = {
43
25
  * @type {number}
44
26
  */
45
27
  pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,
46
-
47
28
  /**
48
29
  * Milliseconds to wait for a pong before declaring the connection dead
49
30
  * @type {number}
50
31
  */
51
32
  pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,
52
-
53
33
  /**
54
34
  * Maximum milliseconds between connection attempts
55
35
  * @type {Number}
56
36
  */
57
37
  backoffTimeMax: process.env.MERCURY_BACKOFF_TIME_MAX || 32000,
58
-
59
38
  /**
60
39
  * Initial milliseconds between connection attempts
61
40
  * @type {Number}
62
41
  */
63
42
  backoffTimeReset: process.env.MERCURY_BACKOFF_TIME_RESET || 1000,
64
-
65
43
  /**
66
44
  * Milliseconds to wait for a close frame before declaring the socket dead and
67
45
  * discarding it
@@ -70,55 +48,37 @@ var config = {
70
48
  forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000
71
49
  }
72
50
  };
51
+
73
52
  /**
74
53
  * LLMChannel to provide socket connections
75
54
  */
76
-
77
55
  exports.config = config;
78
-
79
56
  var LLMChannel = /*#__PURE__*/function (_ref) {
80
57
  (0, _inherits2.default)(LLMChannel, _ref);
81
-
82
58
  var _super = _createSuper(LLMChannel);
83
-
84
- /**
85
- * If the LLM plugin has been registered and listening
86
- * @instance
87
- * @type {Boolean}
88
- * @public
89
- */
90
-
91
- /**
92
- * Initializes the LLM Plugin
93
- * @constructor
94
- * @public
95
- */
96
59
  function LLMChannel() {
97
60
  var _this;
98
-
99
61
  (0, _classCallCheck2.default)(this, LLMChannel);
100
-
101
62
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
102
63
  args[_key] = arguments[_key];
103
64
  }
104
-
105
- // eslint-disable-next-line constructor-super
106
65
  _this = _super.call.apply(_super, [this].concat(args));
107
66
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "namespace", _constants.LLM);
108
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "registered", false);
109
67
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "webSocketUrl", void 0);
110
68
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "binding", void 0);
111
69
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "locusUrl", void 0);
112
70
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "register", function (llmSocketUrl) {
113
71
  return _this.request({
114
72
  method: 'POST',
115
- url: llmSocketUrl
73
+ url: llmSocketUrl,
74
+ body: {
75
+ deviceUrl: _this.webex.internal.device.url
76
+ }
116
77
  }).then(function (res) {
117
78
  _this.webSocketUrl = res.body.webSocketUrl;
118
79
  _this.binding = res.body.binding;
119
80
  }).catch(function (error) {
120
- _pluginMeetings.LoggerProxy.logger.error("Error connecting to websocket: ".concat(error));
121
-
81
+ _this.logger.error("Error connecting to websocket: ".concat(error));
122
82
  throw error;
123
83
  });
124
84
  });
@@ -126,14 +86,11 @@ var LLMChannel = /*#__PURE__*/function (_ref) {
126
86
  return _this.register(datachannelUrl).then(function () {
127
87
  if (!locusUrl || !datachannelUrl) return undefined;
128
88
  _this.locusUrl = locusUrl;
129
-
130
- _this.connect(_this.webSocketUrl).then(function () {
131
- _this.registered = true;
132
- });
89
+ _this.connect(_this.webSocketUrl);
133
90
  });
134
91
  });
135
92
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isConnected", function () {
136
- return _this.registered;
93
+ return _this.connected;
137
94
  });
138
95
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getBinding", function () {
139
96
  return _this.binding;
@@ -143,24 +100,14 @@ var LLMChannel = /*#__PURE__*/function (_ref) {
143
100
  });
144
101
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "disconnectLLM", function () {
145
102
  return _this.disconnect().then(function () {
146
- _this.registered = false;
147
103
  _this.locusUrl = undefined;
148
104
  _this.binding = undefined;
149
105
  _this.webSocketUrl = undefined;
150
106
  });
151
107
  });
152
- _this.registered = false;
153
108
  return _this;
154
109
  }
155
- /**
156
- * Register to the websocket
157
- * @param {string} llmSocketUrl
158
- * @returns {Promise<void>}
159
- */
160
-
161
-
162
110
  return (0, _createClass2.default)(LLMChannel);
163
111
  }(_internalPluginMercury.default);
164
-
165
112
  exports.default = LLMChannel;
166
113
  //# sourceMappingURL=llm.js.map
package/dist/llm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["config","llm","pingInterval","process","env","MERCURY_PING_INTERVAL","pongTimeout","MERCURY_PONG_TIMEOUT","backoffTimeMax","MERCURY_BACKOFF_TIME_MAX","backoffTimeReset","MERCURY_BACKOFF_TIME_RESET","forceCloseDelay","MERCURY_FORCE_CLOSE_DELAY","LLMChannel","args","LLM","llmSocketUrl","request","method","url","then","res","webSocketUrl","body","binding","catch","error","LoggerProxy","logger","locusUrl","datachannelUrl","register","undefined","connect","registered","disconnect","Mercury"],"sources":["llm.ts"],"sourcesContent":["import Mercury from '@webex/internal-plugin-mercury';\nimport {LoggerProxy} from '@webex/plugin-meetings';\n\nimport {LLM} from './constants';\n// eslint-disable-next-line no-unused-vars\nimport {ILLMChannel} from './llm.types';\n\nexport const config = {\n llm: {\n /**\n * Milliseconds between pings sent up the socket\n * @type {number}\n */\n pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,\n /**\n * Milliseconds to wait for a pong before declaring the connection dead\n * @type {number}\n */\n pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,\n /**\n * Maximum milliseconds between connection attempts\n * @type {Number}\n */\n backoffTimeMax: process.env.MERCURY_BACKOFF_TIME_MAX || 32000,\n /**\n * Initial milliseconds between connection attempts\n * @type {Number}\n */\n backoffTimeReset: process.env.MERCURY_BACKOFF_TIME_RESET || 1000,\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * @type {[type]}\n */\n forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000,\n },\n};\n\n/**\n * LLMChannel to provide socket connections\n */\nexport default class LLMChannel extends (Mercury as any) implements ILLMChannel {\n namespace = LLM;\n\n /**\n * If the LLM plugin has been registered and listening\n * @instance\n * @type {Boolean}\n * @public\n */\n private registered: boolean = false;\n\n private webSocketUrl?: string;\n\n private binding?: string;\n\n private locusUrl?: string;\n\n /**\n * Initializes the LLM Plugin\n * @constructor\n * @public\n */\n constructor(...args) {\n // eslint-disable-next-line constructor-super\n super(...args);\n\n this.registered = false;\n }\n\n /**\n * Register to the websocket\n * @param {string} llmSocketUrl\n * @returns {Promise<void>}\n */\n private register = (llmSocketUrl: string): Promise<void> =>\n this.request({\n method: 'POST',\n url: llmSocketUrl,\n })\n .then((res: {body: {webSocketUrl: string; binding: string}}) => {\n this.webSocketUrl = res.body.webSocketUrl;\n this.binding = res.body.binding;\n })\n .catch((error: any) => {\n LoggerProxy.logger.error(`Error connecting to websocket: ${error}`);\n throw error;\n });\n\n /**\n * Register and connect to the websocket\n * @param {string} locusUrl\n * @param {string} datachannelUrl\n * @returns {Promise<void>}\n */\n public registerAndConnect = (locusUrl: string, datachannelUrl: string): Promise<void> =>\n this.register(datachannelUrl).then(() => {\n if (!locusUrl || !datachannelUrl) return undefined;\n this.locusUrl = locusUrl;\n this.connect(this.webSocketUrl).then(() => {\n this.registered = true;\n });\n });\n\n /**\n * Tells if LLM socket is connected\n * @returns {boolean} isRegistered\n */\n public isConnected = (): boolean => this.registered;\n\n /**\n * Tells if LLM socket is connected\n * @returns {bool} isRegistered\n */\n public getBinding = (): string => this.binding;\n\n /**\n * Get Locus URL for the connection\n * @returns {string} locus Url\n */\n public getLocusUrl = (): string => this.locusUrl;\n\n /**\n * Disconnects websocket connection\n * @returns {Promise<void>}\n */\n public disconnectLLM = (): Promise<void> =>\n this.disconnect().then(() => {\n this.registered = false;\n this.locusUrl = undefined;\n this.binding = undefined;\n this.webSocketUrl = undefined;\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;AAIO,IAAMA,MAAM,GAAG;EACpBC,GAAG,EAAE;IACH;AACJ;AACA;AACA;IACIC,YAAY,EAAEC,OAAO,CAACC,GAAR,CAAYC,qBAAZ,IAAqC,KALhD;;IAMH;AACJ;AACA;AACA;IACIC,WAAW,EAAEH,OAAO,CAACC,GAAR,CAAYG,oBAAZ,IAAoC,KAV9C;;IAWH;AACJ;AACA;AACA;IACIC,cAAc,EAAEL,OAAO,CAACC,GAAR,CAAYK,wBAAZ,IAAwC,KAfrD;;IAgBH;AACJ;AACA;AACA;IACIC,gBAAgB,EAAEP,OAAO,CAACC,GAAR,CAAYO,0BAAZ,IAA0C,IApBzD;;IAqBH;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAET,OAAO,CAACC,GAAR,CAAYS,yBAAZ,IAAyC;EA1BvD;AADe,CAAf;AA+BP;AACA;AACA;;;;IACqBC,U;;;;;EAGnB;AACF;AACA;AACA;AACA;AACA;;EASE;AACF;AACA;AACA;AACA;EACE,sBAAqB;IAAA;;IAAA;;IAAA,kCAANC,IAAM;MAANA,IAAM;IAAA;;IACnB;IACA,gDAASA,IAAT;IAFmB,wFArBTC,cAqBS;IAAA,yFAbS,KAaT;IAAA;IAAA;IAAA;IAAA,uFAYF,UAACC,YAAD;MAAA,OACjB,MAAKC,OAAL,CAAa;QACXC,MAAM,EAAE,MADG;QAEXC,GAAG,EAAEH;MAFM,CAAb,EAIGI,IAJH,CAIQ,UAACC,GAAD,EAA0D;QAC9D,MAAKC,YAAL,GAAoBD,GAAG,CAACE,IAAJ,CAASD,YAA7B;QACA,MAAKE,OAAL,GAAeH,GAAG,CAACE,IAAJ,CAASC,OAAxB;MACD,CAPH,EAQGC,KARH,CAQS,UAACC,KAAD,EAAgB;QACrBC,2BAAA,CAAYC,MAAZ,CAAmBF,KAAnB,0CAA2DA,KAA3D;;QACA,MAAMA,KAAN;MACD,CAXH,CADiB;IAAA,CAZE;IAAA,iGAgCO,UAACG,QAAD,EAAmBC,cAAnB;MAAA,OAC1B,MAAKC,QAAL,CAAcD,cAAd,EAA8BV,IAA9B,CAAmC,YAAM;QACvC,IAAI,CAACS,QAAD,IAAa,CAACC,cAAlB,EAAkC,OAAOE,SAAP;QAClC,MAAKH,QAAL,GAAgBA,QAAhB;;QACA,MAAKI,OAAL,CAAa,MAAKX,YAAlB,EAAgCF,IAAhC,CAAqC,YAAM;UACzC,MAAKc,UAAL,GAAkB,IAAlB;QACD,CAFD;MAGD,CAND,CAD0B;IAAA,CAhCP;IAAA,0FA6CA;MAAA,OAAe,MAAKA,UAApB;IAAA,CA7CA;IAAA,yFAmDD;MAAA,OAAc,MAAKV,OAAnB;IAAA,CAnDC;IAAA,0FAyDA;MAAA,OAAc,MAAKK,QAAnB;IAAA,CAzDA;IAAA,4FA+DE;MAAA,OACrB,MAAKM,UAAL,GAAkBf,IAAlB,CAAuB,YAAM;QAC3B,MAAKc,UAAL,GAAkB,KAAlB;QACA,MAAKL,QAAL,GAAgBG,SAAhB;QACA,MAAKR,OAAL,GAAeQ,SAAf;QACA,MAAKV,YAAL,GAAoBU,SAApB;MACD,CALD,CADqB;IAAA,CA/DF;IAInB,MAAKE,UAAL,GAAkB,KAAlB;IAJmB;EAKpB;EAED;AACF;AACA;AACA;AACA;;;;EAjCyCE,8B"}
1
+ {"version":3,"names":["config","llm","pingInterval","process","env","MERCURY_PING_INTERVAL","pongTimeout","MERCURY_PONG_TIMEOUT","backoffTimeMax","MERCURY_BACKOFF_TIME_MAX","backoffTimeReset","MERCURY_BACKOFF_TIME_RESET","forceCloseDelay","MERCURY_FORCE_CLOSE_DELAY","LLMChannel","LLM","llmSocketUrl","request","method","url","body","deviceUrl","webex","internal","device","then","res","webSocketUrl","binding","catch","error","logger","locusUrl","datachannelUrl","register","undefined","connect","connected","disconnect","Mercury"],"sources":["llm.ts"],"sourcesContent":["/* eslint-disable consistent-return */\n\nimport Mercury from '@webex/internal-plugin-mercury';\n\nimport {LLM} from './constants';\n// eslint-disable-next-line no-unused-vars\nimport {ILLMChannel} from './llm.types';\n\nexport const config = {\n llm: {\n /**\n * Milliseconds between pings sent up the socket\n * @type {number}\n */\n pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,\n /**\n * Milliseconds to wait for a pong before declaring the connection dead\n * @type {number}\n */\n pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,\n /**\n * Maximum milliseconds between connection attempts\n * @type {Number}\n */\n backoffTimeMax: process.env.MERCURY_BACKOFF_TIME_MAX || 32000,\n /**\n * Initial milliseconds between connection attempts\n * @type {Number}\n */\n backoffTimeReset: process.env.MERCURY_BACKOFF_TIME_RESET || 1000,\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * @type {[type]}\n */\n forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000,\n },\n};\n\n/**\n * LLMChannel to provide socket connections\n */\nexport default class LLMChannel extends (Mercury as any) implements ILLMChannel {\n namespace = LLM;\n\n /**\n * If the LLM plugin has been registered and listening\n * @instance\n * @type {Boolean}\n * @public\n */\n\n private webSocketUrl?: string;\n\n private binding?: string;\n\n private locusUrl?: string;\n\n /**\n * Register to the websocket\n * @param {string} llmSocketUrl\n * @returns {Promise<void>}\n */\n private register = (llmSocketUrl: string): Promise<void> =>\n this.request({\n method: 'POST',\n url: llmSocketUrl,\n body: {deviceUrl: this.webex.internal.device.url},\n })\n .then((res: {body: {webSocketUrl: string; binding: string}}) => {\n this.webSocketUrl = res.body.webSocketUrl;\n this.binding = res.body.binding;\n })\n .catch((error: any) => {\n this.logger.error(`Error connecting to websocket: ${error}`);\n throw error;\n });\n\n /**\n * Register and connect to the websocket\n * @param {string} locusUrl\n * @param {string} datachannelUrl\n * @returns {Promise<void>}\n */\n public registerAndConnect = (locusUrl: string, datachannelUrl: string): Promise<void> =>\n this.register(datachannelUrl).then(() => {\n if (!locusUrl || !datachannelUrl) return undefined;\n this.locusUrl = locusUrl;\n this.connect(this.webSocketUrl);\n });\n\n /**\n * Tells if LLM socket is connected\n * @returns {boolean} connected\n */\n public isConnected = (): boolean => this.connected;\n\n /**\n * Tells if LLM socket is binding\n * @returns {string} binding\n */\n public getBinding = (): string => this.binding;\n\n /**\n * Get Locus URL for the connection\n * @returns {string} locus Url\n */\n public getLocusUrl = (): string => this.locusUrl;\n\n /**\n * Disconnects websocket connection\n * @returns {Promise<void>}\n */\n public disconnectLLM = (): Promise<void> =>\n this.disconnect().then(() => {\n this.locusUrl = undefined;\n this.binding = undefined;\n this.webSocketUrl = undefined;\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA;AAEA;AAAgC;AAAA;AAIzB,IAAMA,MAAM,GAAG;EACpBC,GAAG,EAAE;IACH;AACJ;AACA;AACA;IACIC,YAAY,EAAEC,OAAO,CAACC,GAAG,CAACC,qBAAqB,IAAI,KAAK;IACxD;AACJ;AACA;AACA;IACIC,WAAW,EAAEH,OAAO,CAACC,GAAG,CAACG,oBAAoB,IAAI,KAAK;IACtD;AACJ;AACA;AACA;IACIC,cAAc,EAAEL,OAAO,CAACC,GAAG,CAACK,wBAAwB,IAAI,KAAK;IAC7D;AACJ;AACA;AACA;IACIC,gBAAgB,EAAEP,OAAO,CAACC,GAAG,CAACO,0BAA0B,IAAI,IAAI;IAChE;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAET,OAAO,CAACC,GAAG,CAACS,yBAAyB,IAAI;EAC5D;AACF,CAAC;;AAED;AACA;AACA;AAFA;AAAA,IAGqBC,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;IAAA;MAAA;IAAA;IAAA;IAAA,wFACjBC,cAAG;IAAA;IAAA;IAAA;IAAA,uFAoBI,UAACC,YAAoB;MAAA,OACtC,MAAKC,OAAO,CAAC;QACXC,MAAM,EAAE,MAAM;QACdC,GAAG,EAAEH,YAAY;QACjBI,IAAI,EAAE;UAACC,SAAS,EAAE,MAAKC,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACL;QAAG;MAClD,CAAC,CAAC,CACCM,IAAI,CAAC,UAACC,GAAoD,EAAK;QAC9D,MAAKC,YAAY,GAAGD,GAAG,CAACN,IAAI,CAACO,YAAY;QACzC,MAAKC,OAAO,GAAGF,GAAG,CAACN,IAAI,CAACQ,OAAO;MACjC,CAAC,CAAC,CACDC,KAAK,CAAC,UAACC,KAAU,EAAK;QACrB,MAAKC,MAAM,CAACD,KAAK,0CAAmCA,KAAK,EAAG;QAC5D,MAAMA,KAAK;MACb,CAAC,CAAC;IAAA;IAAA,iGAQsB,UAACE,QAAgB,EAAEC,cAAsB;MAAA,OACnE,MAAKC,QAAQ,CAACD,cAAc,CAAC,CAACR,IAAI,CAAC,YAAM;QACvC,IAAI,CAACO,QAAQ,IAAI,CAACC,cAAc,EAAE,OAAOE,SAAS;QAClD,MAAKH,QAAQ,GAAGA,QAAQ;QACxB,MAAKI,OAAO,CAAC,MAAKT,YAAY,CAAC;MACjC,CAAC,CAAC;IAAA;IAAA,0FAMiB;MAAA,OAAe,MAAKU,SAAS;IAAA;IAAA,yFAM9B;MAAA,OAAc,MAAKT,OAAO;IAAA;IAAA,0FAMzB;MAAA,OAAc,MAAKI,QAAQ;IAAA;IAAA,4FAMzB;MAAA,OACrB,MAAKM,UAAU,EAAE,CAACb,IAAI,CAAC,YAAM;QAC3B,MAAKO,QAAQ,GAAGG,SAAS;QACzB,MAAKP,OAAO,GAAGO,SAAS;QACxB,MAAKR,YAAY,GAAGQ,SAAS;MAC/B,CAAC,CAAC;IAAA;IAAA;EAAA;EAAA;AAAA,EA5EmCI,8BAAO;AAAA"}
package/dist/llm.types.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  _Object$defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["llm.types.ts"],"sourcesContent":["\ninterface ILLMChannel{\n registerAndConnect: (locusUrl:string, datachannelUrl:string) => Promise<void>;\n isConnected: () => boolean;\n getBinding: () => string;\n getLocusUrl: () => string;\n disconnectLLM: () => Promise<void>;\n}\n// eslint-disable-next-line import/prefer-default-export\nexport {ILLMChannel};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["llm.types.ts"],"sourcesContent":["interface ILLMChannel {\n registerAndConnect: (locusUrl: string, datachannelUrl: string) => Promise<void>;\n isConnected: () => boolean;\n getBinding: () => string;\n getLocusUrl: () => string;\n disconnectLLM: () => Promise<void>;\n}\n// eslint-disable-next-line import/prefer-default-export\nexport type {ILLMChannel};\n"],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-llm",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.300",
4
4
  "description": "",
5
5
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
6
  "main": "dist/index.js",
@@ -14,8 +14,8 @@
14
14
  "node": ">=16"
15
15
  },
16
16
  "dependencies": {
17
- "@webex/internal-plugin-llm": "3.0.0-beta.3",
18
- "@webex/internal-plugin-mercury": "3.0.0-beta.3"
17
+ "@webex/internal-plugin-llm": "3.0.0-beta.300",
18
+ "@webex/internal-plugin-mercury": "3.0.0-beta.300"
19
19
  },
20
20
  "browserify": {
21
21
  "transform": [
@@ -24,8 +24,8 @@
24
24
  ]
25
25
  },
26
26
  "devDependencies": {
27
- "@webex/test-helper-chai": "3.0.0-beta.3",
28
- "@webex/test-helper-mock-webex": "3.0.0-beta.3",
27
+ "@webex/test-helper-chai": "3.0.0-beta.300",
28
+ "@webex/test-helper-mock-webex": "3.0.0-beta.300",
29
29
  "sinon": "^9.2.4"
30
30
  }
31
31
  }
package/src/llm.ts CHANGED
@@ -1,5 +1,6 @@
1
+ /* eslint-disable consistent-return */
2
+
1
3
  import Mercury from '@webex/internal-plugin-mercury';
2
- import {LoggerProxy} from '@webex/plugin-meetings';
3
4
 
4
5
  import {LLM} from './constants';
5
6
  // eslint-disable-next-line no-unused-vars
@@ -48,7 +49,6 @@ export default class LLMChannel extends (Mercury as any) implements ILLMChannel
48
49
  * @type {Boolean}
49
50
  * @public
50
51
  */
51
- private registered: boolean = false;
52
52
 
53
53
  private webSocketUrl?: string;
54
54
 
@@ -56,18 +56,6 @@ export default class LLMChannel extends (Mercury as any) implements ILLMChannel
56
56
 
57
57
  private locusUrl?: string;
58
58
 
59
- /**
60
- * Initializes the LLM Plugin
61
- * @constructor
62
- * @public
63
- */
64
- constructor(...args) {
65
- // eslint-disable-next-line constructor-super
66
- super(...args);
67
-
68
- this.registered = false;
69
- }
70
-
71
59
  /**
72
60
  * Register to the websocket
73
61
  * @param {string} llmSocketUrl
@@ -77,13 +65,14 @@ export default class LLMChannel extends (Mercury as any) implements ILLMChannel
77
65
  this.request({
78
66
  method: 'POST',
79
67
  url: llmSocketUrl,
68
+ body: {deviceUrl: this.webex.internal.device.url},
80
69
  })
81
70
  .then((res: {body: {webSocketUrl: string; binding: string}}) => {
82
71
  this.webSocketUrl = res.body.webSocketUrl;
83
72
  this.binding = res.body.binding;
84
73
  })
85
74
  .catch((error: any) => {
86
- LoggerProxy.logger.error(`Error connecting to websocket: ${error}`);
75
+ this.logger.error(`Error connecting to websocket: ${error}`);
87
76
  throw error;
88
77
  });
89
78
 
@@ -97,20 +86,18 @@ export default class LLMChannel extends (Mercury as any) implements ILLMChannel
97
86
  this.register(datachannelUrl).then(() => {
98
87
  if (!locusUrl || !datachannelUrl) return undefined;
99
88
  this.locusUrl = locusUrl;
100
- this.connect(this.webSocketUrl).then(() => {
101
- this.registered = true;
102
- });
89
+ this.connect(this.webSocketUrl);
103
90
  });
104
91
 
105
92
  /**
106
93
  * Tells if LLM socket is connected
107
- * @returns {boolean} isRegistered
94
+ * @returns {boolean} connected
108
95
  */
109
- public isConnected = (): boolean => this.registered;
96
+ public isConnected = (): boolean => this.connected;
110
97
 
111
98
  /**
112
- * Tells if LLM socket is connected
113
- * @returns {bool} isRegistered
99
+ * Tells if LLM socket is binding
100
+ * @returns {string} binding
114
101
  */
115
102
  public getBinding = (): string => this.binding;
116
103
 
@@ -126,7 +113,6 @@ export default class LLMChannel extends (Mercury as any) implements ILLMChannel
126
113
  */
127
114
  public disconnectLLM = (): Promise<void> =>
128
115
  this.disconnect().then(() => {
129
- this.registered = false;
130
116
  this.locusUrl = undefined;
131
117
  this.binding = undefined;
132
118
  this.webSocketUrl = undefined;
package/src/llm.types.ts CHANGED
@@ -1,10 +1,9 @@
1
-
2
- interface ILLMChannel{
3
- registerAndConnect: (locusUrl:string, datachannelUrl:string) => Promise<void>;
4
- isConnected: () => boolean;
5
- getBinding: () => string;
6
- getLocusUrl: () => string;
7
- disconnectLLM: () => Promise<void>;
1
+ interface ILLMChannel {
2
+ registerAndConnect: (locusUrl: string, datachannelUrl: string) => Promise<void>;
3
+ isConnected: () => boolean;
4
+ getBinding: () => string;
5
+ getLocusUrl: () => string;
6
+ disconnectLLM: () => Promise<void>;
8
7
  }
9
8
  // eslint-disable-next-line import/prefer-default-export
10
- export {ILLMChannel};
9
+ export type {ILLMChannel};
@@ -20,7 +20,9 @@ describe('plugin-llm', () => {
20
20
  });
21
21
 
22
22
  llmService = webex.internal.llm;
23
- llmService.connect = sinon.stub().resolves(true);
23
+ llmService.connect = sinon.stub().callsFake(() => {
24
+ llmService.connected = true;
25
+ });
24
26
  llmService.disconnect = sinon.stub().resolves(true);
25
27
  llmService.request = sinon.stub().resolves({
26
28
  headers: {},
@@ -65,6 +67,7 @@ describe('plugin-llm', () => {
65
67
  sinon.match({
66
68
  method: 'POST',
67
69
  url: `${datachannelUrl}`,
70
+ body: {deviceUrl: webex.internal.device.url},
68
71
  })
69
72
  );
70
73