@mirai/core 0.4.653 → 0.4.655

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.
@@ -111,20 +111,24 @@ const Chat = _ref => {
111
111
  };
112
112
  }, [hotelId, id, skeleton]);
113
113
  (0, _react.useEffect)(() => {
114
- var _client;
115
- if (!visible || inputMode !== _Chat.INPUT_MODE.TEXT) return (_client = client) === null || _client === void 0 ? void 0 : _client.disconnect();
114
+ var _client, _client2, _client3;
115
+ const keepAlive = visible && (inputMode === _Chat.INPUT_MODE.TEXT || inputMode === _Chat.INPUT_MODE.AUDIO);
116
+ if (!keepAlive) return (_client = client) === null || _client === void 0 ? void 0 : _client.disconnect();
117
+ const channelId = activeHotelId || id;
118
+ if ((_client2 = client) !== null && _client2 !== void 0 && _client2.socket && client.channelId === channelId && client.session === session) return;
119
+ (_client3 = client) === null || _client3 === void 0 || _client3.disconnect();
116
120
  client = new _helpers.ClientLobby({
117
- channelId: activeHotelId || id,
121
+ channelId,
118
122
  session
119
123
  });
120
124
  client.onMessage(message => {
121
- var _client2;
125
+ var _client4;
122
126
  const _ref2 = message || {},
123
127
  author = _ref2.author,
124
128
  body = _ref2.body,
125
129
  createdAt = _ref2.createdAt,
126
130
  fingerprint = _ref2.fingerprint;
127
- if (fingerprint !== ((_client2 = client) === null || _client2 === void 0 ? void 0 : _client2.fingerprint) || author !== 'human') return;
131
+ if (fingerprint !== ((_client4 = client) === null || _client4 === void 0 ? void 0 : _client4.fingerprint) || author !== 'human') return;
128
132
  setMessages(prev => [...prev, {
129
133
  synapse: true,
130
134
  text: body,
@@ -134,19 +138,19 @@ const Chat = _ref => {
134
138
  client.connect();
135
139
  }, [activeHotelId, id, inputMode, session, visible]);
136
140
  const handleInput = function (input) {
137
- var _client3;
141
+ var _client5;
138
142
  let shortcutMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
139
143
  const nextMessages = [...messages, {
140
144
  text: input,
141
145
  timestamp: new Date().getTime()
142
146
  }];
143
147
  setMessages(nextMessages);
144
- (_client3 = client) === null || _client3 === void 0 || _client3.send({
148
+ (_client5 = client) === null || _client5 === void 0 || _client5.send({
145
149
  body: input
146
150
  });
147
151
  setTimeout(async () => {
148
- var _client4;
149
- if ((_client4 = client) !== null && _client4 !== void 0 && _client4.aiBlocked) return;
152
+ var _client6;
153
+ if ((_client6 = client) !== null && _client6 !== void 0 && _client6.aiBlocked) return;
150
154
  setBusy(true);
151
155
  const context = {
152
156
  calendar,
@@ -170,11 +174,11 @@ const Chat = _ref => {
170
174
  mcp: false
171
175
  }).catch(() => {});
172
176
  if (response) {
173
- var _client5;
177
+ var _client7;
174
178
  setMessages([...nextMessages, _objectSpread({
175
179
  synapse: true
176
180
  }, response)]);
177
- (_client5 = client) === null || _client5 === void 0 || _client5.send({
181
+ (_client7 = client) === null || _client7 === void 0 || _client7.send({
178
182
  body: response.text,
179
183
  author: 'ai'
180
184
  });
@@ -267,7 +271,24 @@ const Chat = _ref => {
267
271
  })) : inputMode === _Chat.INPUT_MODE.AUDIO ? /*#__PURE__*/_react.default.createElement(_Aura.Aura, {
268
272
  hotelId: activeHotelId,
269
273
  settings: channelSettings,
270
- onCallEnd: () => setInputMode(_Chat.INPUT_MODE.RATING)
274
+ onCallEnd: () => setInputMode(_Chat.INPUT_MODE.RATING),
275
+ onTranscript: _ref5 => {
276
+ var _client8;
277
+ let author = _ref5.author,
278
+ body = _ref5.body;
279
+ if (!((_client8 = client) !== null && _client8 !== void 0 && _client8.send({
280
+ author,
281
+ body,
282
+ meta: {
283
+ audio: true
284
+ }
285
+ }))) {
286
+ _dataSources.Event.publish(_helpers2.EVENT.METRICS, {
287
+ id: _helpers2.METRICS_EVENTS.AURA_ERROR,
288
+ error: 'transcript_dropped'
289
+ });
290
+ }
291
+ }
271
292
  }) : inputMode === _Chat.INPUT_MODE.RATING ? /*#__PURE__*/_react.default.createElement(_components.Rating, {
272
293
  onRejoin: () => setInputMode(_Chat.INPUT_MODE.AUDIO),
273
294
  onReturnHome: handleClose
@@ -1 +1 @@
1
- {"version":3,"file":"Chat.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_Aura","_helpers","_lobby","_Core","_helpers2","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","client","Chat","_ref","_channelSettings$web","hotelId","others","_useLocale","useLocale","translate","_useDevice","useDevice","isMobile","_useStore","useStore","_useStore$value","_useStore$value2","calendar","_useStore$value2$comp","components","currency","_useStore$value2$hote","hotel","id","language","locale","occupation","origin","session","_useStore$value2$skel","skeleton","type","_useStore$value2$urlP","urlParams","_useState","useState","_useState2","busy","setBusy","_useState3","_useState4","channelSettings","setChannelSettings","_useState5","_useState6","inputMode","setInputMode","_useState7","_useState8","messages","setMessages","_useState9","_useState0","visible","setVisible","activeHotelId","useEffect","Event","subscribe","EVENT","CHAT_OPEN","handleOpen","unsubscribe","active","loadSettings","channel","getChannelSettings","channelId","settings","_client","INPUT_MODE","TEXT","disconnect","ClientLobby","onMessage","message","_client2","_ref2","author","body","createdAt","fingerprint","prev","synapse","text","timestamp","connect","handleInput","input","_client3","shortcutMessage","undefined","nextMessages","Date","getTime","send","setTimeout","_client4","aiBlocked","context","TYPE","CHAIN","chain","response","ServiceSynapse","mcp","catch","_client5","audioNotification","DELAY_RESPONSE","handleInputMode","publish","METRICS","METRICS_EVENTS","SARAI_INTERACTION","action","method","WHATSAPP","handleClose","_ref3","_ref3$source","source","SARAI_SOURCE","CHAT_OPENED","event","CHAT_CLOSE","isSaraiForced","sarai","isReady","every","item","BANNED_COMPONENTS","includes","web","_ref4","_ref4$entities","entities","_getPrivacyPolicy","getPrivacyPolicy","chainId","features","genericName","L10N","LABEL_GENERIC_NAME","isChain","privacyName","privacyUrl","url","createElement","Fragment","Modal","fit","portal","className","styles","container","Header","onClose","Welcome","onInputMode","ScrollView","scrollTo","snap","map","index","Message","key","concat","disabled","Input","onValue","AUDIO","Aura","onCallEnd","RATING","Rating","onRejoin","onReturnHome","Text","light","tiny","warning","LABEL_PRIVACY_DISCLAIMER","link","Action","href","target","underline","privacyLink","ACTION_MORE_INFO","ButtonDispatcher","onPress","exports","propTypes","PropTypes","string"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceSynapse } from '@mirai/services';\nimport { Action, Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { BANNED_COMPONENTS, DELAY_RESPONSE, INPUT_MODE } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { ButtonDispatcher, Header, Input, Message, Rating, Welcome } from './components';\nimport { Aura } from './components/Aura/Aura';\nimport { audioNotification, ClientLobby } from './helpers';\nimport { getChannelSettings } from './services/lobby.service';\nimport { SARAI_SOURCE, TYPE } from '../../Core.constants';\nimport { EVENT, getPrivacyPolicy, METRICS_EVENTS } from '../helpers';\n\nlet client;\n\nconst Chat = ({ hotelId, ...others }) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n const {\n value: {\n calendar,\n components = {},\n currency,\n hotel = {},\n id,\n language,\n locale,\n occupation,\n origin,\n session,\n skeleton = false,\n type,\n urlParams = {},\n } = {},\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [channelSettings, setChannelSettings] = useState();\n const [inputMode, setInputMode] = useState();\n const [messages, setMessages] = useState([]);\n const [visible, setVisible] = useState(false);\n const activeHotelId = hotelId || hotel.id;\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.CHAT_OPEN, handleOpen);\n return () => Event.unsubscribe(EVENT.CHAT_OPEN, handleOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [skeleton]);\n\n useEffect(() => {\n if (skeleton || (!id && !hotelId)) {\n setChannelSettings();\n return;\n }\n\n let active = true;\n\n const loadSettings = async () => {\n const channel = await getChannelSettings({ channelId: hotelId || id });\n if (!active) return;\n setChannelSettings(channel?.settings);\n };\n\n loadSettings();\n\n return () => {\n active = false;\n };\n }, [hotelId, id, skeleton]);\n\n useEffect(() => {\n if (!visible || inputMode !== INPUT_MODE.TEXT) return client?.disconnect();\n\n client = new ClientLobby({ channelId: activeHotelId || id, session });\n\n client.onMessage((message) => {\n const { author, body, createdAt, fingerprint } = message || {};\n if (fingerprint !== client?.fingerprint || author !== 'human') return;\n setMessages((prev) => [...prev, { synapse: true, text: body, timestamp: createdAt }]);\n });\n\n client.connect();\n }, [activeHotelId, id, inputMode, session, visible]);\n\n const handleInput = (input, shortcutMessage = false) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n client?.send({ body: input });\n\n setTimeout(async () => {\n if (client?.aiBlocked) return;\n setBusy(true);\n\n const context = { calendar, currency, isMobile, locale, occupation, origin, shortcutMessage };\n if (type === TYPE.CHAIN && !hotelId) context.chain = { id };\n if (hotelId) context.hotel = { id: hotelId };\n else if (hotel.id) context.hotel = hotel;\n\n const response = await ServiceSynapse.message({\n context,\n input,\n session,\n mcp: false,\n }).catch(() => {});\n\n if (response) {\n setMessages([...nextMessages, { synapse: true, ...response }]);\n client?.send({ body: response.text, author: 'ai' });\n\n // ! TODO: Handle locale\n // if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n audioNotification();\n }\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleInputMode = (next) => {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.SARAI_INTERACTION, action: 'click', method: next });\n if (next === INPUT_MODE.WHATSAPP) return handleClose();\n setInputMode(next);\n };\n\n const handleOpen = ({ source = SARAI_SOURCE } = {}) => {\n setVisible(true);\n Event.publish(EVENT.CHAT_OPENED, { event: EVENT.CHAT_OPENED, source });\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.SARAI_INTERACTION, action: 'open', method: inputMode });\n };\n\n const handleClose = () => {\n Event.publish(EVENT.CHAT_CLOSE, { inputMode });\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.SARAI_INTERACTION, action: 'close', method: inputMode });\n setVisible(false);\n setInputMode();\n };\n\n const isSaraiForced = urlParams.sarai === 'true';\n const isReady =\n !skeleton &&\n Object.keys(components).every((item) => !BANNED_COMPONENTS.includes(item)) &&\n (channelSettings?.web?.active || isSaraiForced);\n const { entities = {} } = messages[messages.length - 1] || {};\n\n const { name: privacyName, url: privacyUrl } = getPrivacyPolicy({\n chainId: id,\n features: hotel.features,\n genericName: translate(L10N.LABEL_GENERIC_NAME),\n hotelId: activeHotelId,\n isChain: type === TYPE.CHAIN,\n language,\n locale,\n });\n\n return isReady ? (\n <>\n <Modal {...others} fit portal visible={visible} className={styles(style.container, others.className)}>\n <Header settings={channelSettings} onClose={handleClose} />\n\n {!inputMode ? (\n <Welcome settings={channelSettings} onInputMode={handleInputMode} />\n ) : inputMode === INPUT_MODE.TEXT ? (\n <>\n <ScrollView scrollTo={new Date().getTime()} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message key={`message:${index}`} disabled={busy || index < messages.length - 1} {...message} />\n ))}\n {busy && <Message busy synapse />}\n </ScrollView>\n <Input disabled={busy} entities={entities} onValue={handleInput} className={style.input} />\n </>\n ) : inputMode === INPUT_MODE.AUDIO ? (\n <Aura hotelId={activeHotelId} settings={channelSettings} onCallEnd={() => setInputMode(INPUT_MODE.RATING)} />\n ) : inputMode === INPUT_MODE.RATING ? (\n <Rating onRejoin={() => setInputMode(INPUT_MODE.AUDIO)} onReturnHome={handleClose} />\n ) : null}\n <Text light tiny className={style.warning}>\n {translate(L10N.LABEL_PRIVACY_DISCLAIMER, {\n name: privacyName,\n link: (\n <Action href={privacyUrl} target=\"_blank\" tiny underline className={style.privacyLink}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n ),\n })}\n </Text>\n </Modal>\n\n <ButtonDispatcher settings={channelSettings} visible={visible} onPress={handleOpen} />\n </>\n ) : null;\n};\n\nChat.propTypes = {\n hotelId: PropTypes.string,\n};\n\nexport { Chat };\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,GAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AAEA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,KAAA,GAAAH,uBAAA,CAAAP,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,KAAA,GAAAZ,OAAA;AACA,IAAAa,QAAA,GAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AACA,IAAAe,KAAA,GAAAf,OAAA;AACA,IAAAgB,SAAA,GAAAhB,OAAA;AAAqE,MAAAiB,SAAA;AAAA,SAAAV,wBAAAW,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAb,uBAAA,YAAAA,CAAAW,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAd,uBAAAa,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,SAAAmB,SAAA,WAAAA,QAAA,GAAAH,MAAA,CAAAI,MAAA,GAAAJ,MAAA,CAAAI,MAAA,CAAAC,IAAA,eAAAjB,CAAA,aAAAJ,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAC,CAAA,GAAAqB,SAAA,CAAAtB,CAAA,YAAAG,CAAA,IAAAF,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAAe,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAAA,SAAAG,QAAAzB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAe,MAAA,CAAAU,IAAA,CAAA1B,CAAA,OAAAgB,MAAA,CAAAW,qBAAA,QAAArB,CAAA,GAAAU,MAAA,CAAAW,qBAAA,CAAA3B,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAsB,MAAA,WAAAzB,CAAA,WAAAa,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAA0B,UAAA,OAAA5B,CAAA,CAAA6B,IAAA,CAAAN,KAAA,CAAAvB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA8B,cAAA/B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAmB,SAAA,CAAAC,MAAA,EAAApB,CAAA,UAAAF,CAAA,WAAAqB,SAAA,CAAAnB,CAAA,IAAAmB,SAAA,CAAAnB,CAAA,QAAAA,CAAA,OAAAsB,OAAA,CAAAT,MAAA,CAAAf,CAAA,OAAA+B,OAAA,WAAA7B,CAAA,IAAA8B,eAAA,CAAAjC,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAa,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAnC,CAAA,EAAAgB,MAAA,CAAAkB,yBAAA,CAAAjC,CAAA,KAAAwB,OAAA,CAAAT,MAAA,CAAAf,CAAA,GAAA+B,OAAA,WAAA7B,CAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,EAAAa,MAAA,CAAAE,wBAAA,CAAAjB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAAA,SAAAiC,gBAAAjC,CAAA,EAAAG,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAiC,cAAA,CAAAjC,CAAA,MAAAH,CAAA,GAAAgB,MAAA,CAAAC,cAAA,CAAAjB,CAAA,EAAAG,CAAA,IAAAkC,KAAA,EAAApC,CAAA,EAAA4B,UAAA,MAAAS,YAAA,MAAAC,QAAA,UAAAvC,CAAA,CAAAG,CAAA,IAAAF,CAAA,EAAAD,CAAA;AAAA,SAAAoC,eAAAnC,CAAA,QAAAM,CAAA,GAAAiC,YAAA,CAAAvC,CAAA,uCAAAM,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAiC,aAAAvC,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAD,CAAA,GAAAC,CAAA,CAAAwC,MAAA,CAAAC,WAAA,kBAAA1C,CAAA,QAAAO,CAAA,GAAAP,CAAA,CAAAe,IAAA,CAAAd,CAAA,EAAAE,CAAA,uCAAAI,CAAA,SAAAA,CAAA,YAAAoC,SAAA,yEAAAxC,CAAA,GAAAyC,MAAA,GAAAC,MAAA,EAAA5C,CAAA;AAAA,SAAA6C,eAAA3C,CAAA,EAAAH,CAAA,WAAA+C,eAAA,CAAA5C,CAAA,KAAA6C,qBAAA,CAAA7C,CAAA,EAAAH,CAAA,KAAAiD,2BAAA,CAAA9C,CAAA,EAAAH,CAAA,KAAAkD,gBAAA;AAAA,SAAAA,iBAAA,cAAAP,SAAA;AAAA,SAAAM,4BAAA9C,CAAA,EAAAgD,CAAA,QAAAhD,CAAA,2BAAAA,CAAA,SAAAiD,iBAAA,CAAAjD,CAAA,EAAAgD,CAAA,OAAAlD,CAAA,MAAAoD,QAAA,CAAAtC,IAAA,CAAAZ,CAAA,EAAAmD,KAAA,6BAAArD,CAAA,IAAAE,CAAA,CAAAoD,WAAA,KAAAtD,CAAA,GAAAE,CAAA,CAAAoD,WAAA,CAAAC,IAAA,aAAAvD,CAAA,cAAAA,CAAA,GAAAwD,KAAA,CAAAC,IAAA,CAAAvD,CAAA,oBAAAF,CAAA,+CAAA0D,IAAA,CAAA1D,CAAA,IAAAmD,iBAAA,CAAAjD,CAAA,EAAAgD,CAAA;AAAA,SAAAC,kBAAAjD,CAAA,EAAAgD,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAhD,CAAA,CAAAoB,MAAA,MAAA4B,CAAA,GAAAhD,CAAA,CAAAoB,MAAA,YAAAvB,CAAA,MAAAI,CAAA,GAAAqD,KAAA,CAAAN,CAAA,GAAAnD,CAAA,GAAAmD,CAAA,EAAAnD,CAAA,IAAAI,CAAA,CAAAJ,CAAA,IAAAG,CAAA,CAAAH,CAAA,UAAAI,CAAA;AAAA,SAAA4C,sBAAA7C,CAAA,EAAAyD,CAAA,QAAA3D,CAAA,WAAAE,CAAA,gCAAAsC,MAAA,IAAAtC,CAAA,CAAAsC,MAAA,CAAAoB,QAAA,KAAA1D,CAAA,4BAAAF,CAAA,QAAAD,CAAA,EAAAI,CAAA,EAAAG,CAAA,EAAAuD,CAAA,EAAAX,CAAA,OAAA3C,CAAA,OAAAF,CAAA,iBAAAC,CAAA,IAAAN,CAAA,GAAAA,CAAA,CAAAc,IAAA,CAAAZ,CAAA,GAAA4D,IAAA,QAAAH,CAAA,QAAA5C,MAAA,CAAAf,CAAA,MAAAA,CAAA,UAAAO,CAAA,uBAAAA,CAAA,IAAAR,CAAA,GAAAO,CAAA,CAAAQ,IAAA,CAAAd,CAAA,GAAA+D,IAAA,MAAAb,CAAA,CAAArB,IAAA,CAAA9B,CAAA,CAAAqC,KAAA,GAAAc,CAAA,CAAA5B,MAAA,KAAAqC,CAAA,GAAApD,CAAA,iBAAAL,CAAA,IAAAG,CAAA,OAAAF,CAAA,GAAAD,CAAA,yBAAAK,CAAA,YAAAP,CAAA,CAAAgE,MAAA,KAAAH,CAAA,GAAA7D,CAAA,CAAAgE,MAAA,IAAAjD,MAAA,CAAA8C,CAAA,MAAAA,CAAA,2BAAAxD,CAAA,QAAAF,CAAA,aAAA+C,CAAA;AAAA,SAAAJ,gBAAA5C,CAAA,QAAAsD,KAAA,CAAAS,OAAA,CAAA/D,CAAA,UAAAA,CAAA;AAAA,SAAAgE,yBAAAnE,CAAA,EAAAC,CAAA,gBAAAD,CAAA,iBAAAM,CAAA,EAAAH,CAAA,EAAAI,CAAA,GAAA6D,6BAAA,CAAApE,CAAA,EAAAC,CAAA,OAAAe,MAAA,CAAAW,qBAAA,QAAAvB,CAAA,GAAAY,MAAA,CAAAW,qBAAA,CAAA3B,CAAA,QAAAG,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAmB,MAAA,EAAApB,CAAA,IAAAG,CAAA,GAAAF,CAAA,CAAAD,CAAA,UAAAF,CAAA,CAAAoE,OAAA,CAAA/D,CAAA,QAAAgE,oBAAA,CAAAvD,IAAA,CAAAf,CAAA,EAAAM,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAN,CAAA,CAAAM,CAAA,aAAAC,CAAA;AAAA,SAAA6D,8BAAAjE,CAAA,EAAAH,CAAA,gBAAAG,CAAA,iBAAAF,CAAA,gBAAAG,CAAA,IAAAD,CAAA,SAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAC,CAAA,gBAAAJ,CAAA,CAAAqE,OAAA,CAAAjE,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAD,CAAA,CAAAC,CAAA,YAAAH,CAAA;AAErE,IAAIsE,MAAM;AAEV,MAAMC,IAAI,GAAGC,IAAA,IAA4B;EAAA,IAAAC,oBAAA;EAAA,IAAzBC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAKC,MAAM,GAAAT,wBAAA,CAAAM,IAAA,EAAA1E,SAAA;EAChC,MAAA8E,UAAA,GAAsB,IAAAC,iBAAS,EAAC,CAAC;IAAzBC,SAAS,GAAAF,UAAA,CAATE,SAAS;EACjB,MAAAC,UAAA,GAAqB,IAAAC,aAAS,EAAC,CAAC;IAAxBC,QAAQ,GAAAF,UAAA,CAARE,QAAQ;EAChB,MAAAC,SAAA,GAgBI,IAAAC,qBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAfZ9C,KAAK;IAAAiD,gBAAA,GAAAD,eAAA,cAcD,CAAC,CAAC,GAAAA,eAAA;IAbJE,QAAQ,GAAAD,gBAAA,CAARC,QAAQ;IAAAC,qBAAA,GAAAF,gBAAA,CACRG,UAAU;IAAVA,UAAU,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;IACfE,QAAQ,GAAAJ,gBAAA,CAARI,QAAQ;IAAAC,qBAAA,GAAAL,gBAAA,CACRM,KAAK;IAALA,KAAK,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;IACVE,EAAE,GAAAP,gBAAA,CAAFO,EAAE;IACFC,QAAQ,GAAAR,gBAAA,CAARQ,QAAQ;IACRC,MAAM,GAAAT,gBAAA,CAANS,MAAM;IACNC,UAAU,GAAAV,gBAAA,CAAVU,UAAU;IACVC,MAAM,GAAAX,gBAAA,CAANW,MAAM;IACNC,OAAO,GAAAZ,gBAAA,CAAPY,OAAO;IAAAC,qBAAA,GAAAb,gBAAA,CACPc,QAAQ;IAARA,QAAQ,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAChBE,IAAI,GAAAf,gBAAA,CAAJe,IAAI;IAAAC,qBAAA,GAAAhB,gBAAA,CACJiB,SAAS;IAATA,SAAS,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;EAIlB,MAAAE,SAAA,GAAwB,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAA5D,cAAA,CAAA0D,SAAA;IAAhCG,IAAI,GAAAD,UAAA;IAAEE,OAAO,GAAAF,UAAA;EACpB,MAAAG,UAAA,GAA8C,IAAAJ,eAAQ,EAAC,CAAC;IAAAK,UAAA,GAAAhE,cAAA,CAAA+D,UAAA;IAAjDE,eAAe,GAAAD,UAAA;IAAEE,kBAAkB,GAAAF,UAAA;EAC1C,MAAAG,UAAA,GAAkC,IAAAR,eAAQ,EAAC,CAAC;IAAAS,UAAA,GAAApE,cAAA,CAAAmE,UAAA;IAArCE,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAC9B,MAAAG,UAAA,GAAgC,IAAAZ,eAAQ,EAAC,EAAE,CAAC;IAAAa,UAAA,GAAAxE,cAAA,CAAAuE,UAAA;IAArCE,QAAQ,GAAAD,UAAA;IAAEE,WAAW,GAAAF,UAAA;EAC5B,MAAAG,UAAA,GAA8B,IAAAhB,eAAQ,EAAC,KAAK,CAAC;IAAAiB,UAAA,GAAA5E,cAAA,CAAA2E,UAAA;IAAtCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B,MAAMG,aAAa,GAAGlD,OAAO,IAAIiB,KAAK,CAACC,EAAE;EAEzC,IAAAiC,gBAAS,EAAC,MAAM;IACd,IAAI1B,QAAQ,EAAE;IAEd2B,kBAAK,CAACC,SAAS,CAACC,eAAK,CAACC,SAAS,EAAEC,UAAU,CAAC;IAC5C,OAAO,MAAMJ,kBAAK,CAACK,WAAW,CAACH,eAAK,CAACC,SAAS,EAAEC,UAAU,CAAC;IAC3D;EACF,CAAC,EAAE,CAAC/B,QAAQ,CAAC,CAAC;EAEd,IAAA0B,gBAAS,EAAC,MAAM;IACd,IAAI1B,QAAQ,IAAK,CAACP,EAAE,IAAI,CAAClB,OAAQ,EAAE;MACjCqC,kBAAkB,CAAC,CAAC;MACpB;IACF;IAEA,IAAIqB,MAAM,GAAG,IAAI;IAEjB,MAAMC,YAAY,GAAG,MAAAA,CAAA,KAAY;MAC/B,MAAMC,OAAO,GAAG,MAAM,IAAAC,yBAAkB,EAAC;QAAEC,SAAS,EAAE9D,OAAO,IAAIkB;MAAG,CAAC,CAAC;MACtE,IAAI,CAACwC,MAAM,EAAE;MACbrB,kBAAkB,CAACuB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,QAAQ,CAAC;IACvC,CAAC;IAEDJ,YAAY,CAAC,CAAC;IAEd,OAAO,MAAM;MACXD,MAAM,GAAG,KAAK;IAChB,CAAC;EACH,CAAC,EAAE,CAAC1D,OAAO,EAAEkB,EAAE,EAAEO,QAAQ,CAAC,CAAC;EAE3B,IAAA0B,gBAAS,EAAC,MAAM;IAAA,IAAAa,OAAA;IACd,IAAI,CAAChB,OAAO,IAAIR,SAAS,KAAKyB,gBAAU,CAACC,IAAI,EAAE,QAAAF,OAAA,GAAOpE,MAAM,cAAAoE,OAAA,uBAANA,OAAA,CAAQG,UAAU,CAAC,CAAC;IAE1EvE,MAAM,GAAG,IAAIwE,oBAAW,CAAC;MAAEN,SAAS,EAAEZ,aAAa,IAAIhC,EAAE;MAAEK;IAAQ,CAAC,CAAC;IAErE3B,MAAM,CAACyE,SAAS,CAAEC,OAAO,IAAK;MAAA,IAAAC,QAAA;MAC5B,MAAAC,KAAA,GAAiDF,OAAO,IAAI,CAAC,CAAC;QAAtDG,MAAM,GAAAD,KAAA,CAANC,MAAM;QAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;QAAEC,SAAS,GAAAH,KAAA,CAATG,SAAS;QAAEC,WAAW,GAAAJ,KAAA,CAAXI,WAAW;MAC5C,IAAIA,WAAW,OAAAL,QAAA,GAAK3E,MAAM,cAAA2E,QAAA,uBAANA,QAAA,CAAQK,WAAW,KAAIH,MAAM,KAAK,OAAO,EAAE;MAC/D5B,WAAW,CAAEgC,IAAI,IAAK,CAAC,GAAGA,IAAI,EAAE;QAAEC,OAAO,EAAE,IAAI;QAAEC,IAAI,EAAEL,IAAI;QAAEM,SAAS,EAAEL;MAAU,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF/E,MAAM,CAACqF,OAAO,CAAC,CAAC;EAClB,CAAC,EAAE,CAAC/B,aAAa,EAAEhC,EAAE,EAAEsB,SAAS,EAAEjB,OAAO,EAAEyB,OAAO,CAAC,CAAC;EAEpD,MAAMkC,WAAW,GAAG,SAAAA,CAACC,KAAK,EAA8B;IAAA,IAAAC,QAAA;IAAA,IAA5BC,eAAe,GAAA1I,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA2I,SAAA,GAAA3I,SAAA,MAAG,KAAK;IACjD,MAAM4I,YAAY,GAAG,CAAC,GAAG3C,QAAQ,EAAE;MAAEmC,IAAI,EAAEI,KAAK;MAAEH,SAAS,EAAE,IAAIQ,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC;IAAE,CAAC,CAAC;IACpF5C,WAAW,CAAC0C,YAAY,CAAC;IAEzB,CAAAH,QAAA,GAAAxF,MAAM,cAAAwF,QAAA,eAANA,QAAA,CAAQM,IAAI,CAAC;MAAEhB,IAAI,EAAES;IAAM,CAAC,CAAC;IAE7BQ,UAAU,CAAC,YAAY;MAAA,IAAAC,QAAA;MACrB,KAAAA,QAAA,GAAIhG,MAAM,cAAAgG,QAAA,eAANA,QAAA,CAAQC,SAAS,EAAE;MACvB5D,OAAO,CAAC,IAAI,CAAC;MAEb,MAAM6D,OAAO,GAAG;QAAElF,QAAQ;QAAEG,QAAQ;QAAER,QAAQ;QAAEa,MAAM;QAAEC,UAAU;QAAEC,MAAM;QAAE+D;MAAgB,CAAC;MAC7F,IAAI3D,IAAI,KAAKqE,UAAI,CAACC,KAAK,IAAI,CAAChG,OAAO,EAAE8F,OAAO,CAACG,KAAK,GAAG;QAAE/E;MAAG,CAAC;MAC3D,IAAIlB,OAAO,EAAE8F,OAAO,CAAC7E,KAAK,GAAG;QAAEC,EAAE,EAAElB;MAAQ,CAAC,CAAC,KACxC,IAAIiB,KAAK,CAACC,EAAE,EAAE4E,OAAO,CAAC7E,KAAK,GAAGA,KAAK;MAExC,MAAMiF,QAAQ,GAAG,MAAMC,wBAAc,CAAC7B,OAAO,CAAC;QAC5CwB,OAAO;QACPX,KAAK;QACL5D,OAAO;QACP6E,GAAG,EAAE;MACP,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MAElB,IAAIH,QAAQ,EAAE;QAAA,IAAAI,QAAA;QACZzD,WAAW,CAAC,CAAC,GAAG0C,YAAY,EAAAnI,aAAA;UAAI0H,OAAO,EAAE;QAAI,GAAKoB,QAAQ,EAAG,CAAC;QAC9D,CAAAI,QAAA,GAAA1G,MAAM,cAAA0G,QAAA,eAANA,QAAA,CAAQZ,IAAI,CAAC;UAAEhB,IAAI,EAAEwB,QAAQ,CAACnB,IAAI;UAAEN,MAAM,EAAE;QAAK,CAAC,CAAC;;QAEnD;QACA;QACA,IAAA8B,0BAAiB,EAAC,CAAC;MACrB;MACAtE,OAAO,CAAC,KAAK,CAAC;IAChB,CAAC,EAAEuE,oBAAc,CAAC;EACpB,CAAC;EAED,MAAMC,eAAe,GAAIrH,IAAI,IAAK;IAChCgE,kBAAK,CAACsD,OAAO,CAACpD,eAAK,CAACqD,OAAO,EAAE;MAAEzF,EAAE,EAAE0F,wBAAc,CAACC,iBAAiB;MAAEC,MAAM,EAAE,OAAO;MAAEC,MAAM,EAAE3H;IAAK,CAAC,CAAC;IACrG,IAAIA,IAAI,KAAK6E,gBAAU,CAAC+C,QAAQ,EAAE,OAAOC,WAAW,CAAC,CAAC;IACtDxE,YAAY,CAACrD,IAAI,CAAC;EACpB,CAAC;EAED,MAAMoE,UAAU,GAAG,SAAAA,CAAA,EAAoC;IAAA,IAAA0D,KAAA,GAAAvK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA2I,SAAA,GAAA3I,SAAA,MAAP,CAAC,CAAC;MAAAwK,YAAA,GAAAD,KAAA,CAA5BE,MAAM;MAANA,MAAM,GAAAD,YAAA,cAAGE,kBAAY,GAAAF,YAAA;IACzClE,UAAU,CAAC,IAAI,CAAC;IAChBG,kBAAK,CAACsD,OAAO,CAACpD,eAAK,CAACgE,WAAW,EAAE;MAAEC,KAAK,EAAEjE,eAAK,CAACgE,WAAW;MAAEF;IAAO,CAAC,CAAC;IACtEhE,kBAAK,CAACsD,OAAO,CAACpD,eAAK,CAACqD,OAAO,EAAE;MAAEzF,EAAE,EAAE0F,wBAAc,CAACC,iBAAiB;MAAEC,MAAM,EAAE,MAAM;MAAEC,MAAM,EAAEvE;IAAU,CAAC,CAAC;EAC3G,CAAC;EAED,MAAMyE,WAAW,GAAGA,CAAA,KAAM;IACxB7D,kBAAK,CAACsD,OAAO,CAACpD,eAAK,CAACkE,UAAU,EAAE;MAAEhF;IAAU,CAAC,CAAC;IAC9CY,kBAAK,CAACsD,OAAO,CAACpD,eAAK,CAACqD,OAAO,EAAE;MAAEzF,EAAE,EAAE0F,wBAAc,CAACC,iBAAiB;MAAEC,MAAM,EAAE,OAAO;MAAEC,MAAM,EAAEvE;IAAU,CAAC,CAAC;IAC1GS,UAAU,CAAC,KAAK,CAAC;IACjBR,YAAY,CAAC,CAAC;EAChB,CAAC;EAED,MAAMgF,aAAa,GAAG7F,SAAS,CAAC8F,KAAK,KAAK,MAAM;EAChD,MAAMC,OAAO,GACX,CAAClG,QAAQ,IACTpF,MAAM,CAACU,IAAI,CAAC+D,UAAU,CAAC,CAAC8G,KAAK,CAAEC,IAAI,IAAK,CAACC,uBAAiB,CAACC,QAAQ,CAACF,IAAI,CAAC,CAAC,KACzE,CAAAzF,eAAe,aAAfA,eAAe,gBAAArC,oBAAA,GAAfqC,eAAe,CAAE4F,GAAG,cAAAjI,oBAAA,uBAApBA,oBAAA,CAAsB2D,MAAM,KAAI+D,aAAa,CAAC;EACjD,MAAAQ,KAAA,GAA0BrF,QAAQ,CAACA,QAAQ,CAAChG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAAAsL,cAAA,GAAAD,KAAA,CAArDE,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;EAErB,MAAAE,iBAAA,GAA+C,IAAAC,0BAAgB,EAAC;MAC9DC,OAAO,EAAEpH,EAAE;MACXqH,QAAQ,EAAEtH,KAAK,CAACsH,QAAQ;MACxBC,WAAW,EAAEpI,SAAS,CAACqI,WAAI,CAACC,kBAAkB,CAAC;MAC/C1I,OAAO,EAAEkD,aAAa;MACtByF,OAAO,EAAEjH,IAAI,KAAKqE,UAAI,CAACC,KAAK;MAC5B7E,QAAQ;MACRC;IACF,CAAC,CAAC;IARYwH,WAAW,GAAAR,iBAAA,CAAjBvJ,IAAI;IAAoBgK,UAAU,GAAAT,iBAAA,CAAfU,GAAG;EAU9B,OAAOnB,OAAO,gBACZlN,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAAAtO,MAAA,CAAAsB,OAAA,CAAAiN,QAAA,qBACEvO,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACzO,GAAA,CAAA2O,KAAK,EAAAzM,QAAA,KAAKyD,MAAM;IAAEiJ,GAAG;IAACC,MAAM;IAACnG,OAAO,EAAEA,OAAQ;IAACoG,SAAS,EAAE,IAAAC,UAAM,EAACxO,KAAK,CAACyO,SAAS,EAAErJ,MAAM,CAACmJ,SAAS;EAAE,iBACnG3O,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAAyO,MAAM;IAACxF,QAAQ,EAAE3B,eAAgB;IAACoH,OAAO,EAAEvC;EAAY,CAAE,CAAC,EAE1D,CAACzE,SAAS,gBACT/H,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAA2O,OAAO;IAAC1F,QAAQ,EAAE3B,eAAgB;IAACsH,WAAW,EAAEjD;EAAgB,CAAE,CAAC,GAClEjE,SAAS,KAAKyB,gBAAU,CAACC,IAAI,gBAC/BzJ,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAAAtO,MAAA,CAAAsB,OAAA,CAAAiN,QAAA,qBACEvO,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACzO,GAAA,CAAAqP,UAAU;IAACC,QAAQ,EAAE,IAAIpE,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAE;IAACoE,IAAI,EAAE,KAAM;IAACT,SAAS,EAAEvO,KAAK,CAAC+H;EAAS,GAChFA,QAAQ,CAACkH,GAAG,CAAC,CAACxF,OAAO,EAAEyF,KAAK,kBAC3BtP,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAAkP,OAAO,EAAAxN,QAAA;IAACyN,GAAG,aAAAC,MAAA,CAAaH,KAAK,CAAG;IAACI,QAAQ,EAAEnI,IAAI,IAAI+H,KAAK,GAAGnH,QAAQ,CAAChG,MAAM,GAAG;EAAE,GAAK0H,OAAO,CAAG,CAChG,CAAC,EACDtC,IAAI,iBAAIvH,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAAkP,OAAO;IAAChI,IAAI;IAAC8C,OAAO;EAAA,CAAE,CACtB,CAAC,eACbrK,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAAsP,KAAK;IAACD,QAAQ,EAAEnI,IAAK;IAACmG,QAAQ,EAAEA,QAAS;IAACkC,OAAO,EAAEnF,WAAY;IAACkE,SAAS,EAAEvO,KAAK,CAACsK;EAAM,CAAE,CAC1F,CAAC,GACD3C,SAAS,KAAKyB,gBAAU,CAACqG,KAAK,gBAChC7P,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAAChO,KAAA,CAAAwP,IAAI;IAACvK,OAAO,EAAEkD,aAAc;IAACa,QAAQ,EAAE3B,eAAgB;IAACoI,SAAS,EAAEA,CAAA,KAAM/H,YAAY,CAACwB,gBAAU,CAACwG,MAAM;EAAE,CAAE,CAAC,GAC3GjI,SAAS,KAAKyB,gBAAU,CAACwG,MAAM,gBACjChQ,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAA4P,MAAM;IAACC,QAAQ,EAAEA,CAAA,KAAMlI,YAAY,CAACwB,gBAAU,CAACqG,KAAK,CAAE;IAACM,YAAY,EAAE3D;EAAY,CAAE,CAAC,GACnF,IAAI,eACRxM,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACzO,GAAA,CAAAuQ,IAAI;IAACC,KAAK;IAACC,IAAI;IAAC3B,SAAS,EAAEvO,KAAK,CAACmQ;EAAQ,GACvC5K,SAAS,CAACqI,WAAI,CAACwC,wBAAwB,EAAE;IACxCpM,IAAI,EAAE+J,WAAW;IACjBsC,IAAI,eACFzQ,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACzO,GAAA,CAAA6Q,MAAM;MAACC,IAAI,EAAEvC,UAAW;MAACwC,MAAM,EAAC,QAAQ;MAACN,IAAI;MAACO,SAAS;MAAClC,SAAS,EAAEvO,KAAK,CAAC0Q;IAAY,GACnFnL,SAAS,CAACqI,WAAI,CAAC+C,gBAAgB,CAC1B;EAEZ,CAAC,CACG,CACD,CAAC,eAER/Q,MAAA,CAAAsB,OAAA,CAAAgN,aAAA,CAACjO,WAAA,CAAA2Q,gBAAgB;IAAC1H,QAAQ,EAAE3B,eAAgB;IAACY,OAAO,EAAEA,OAAQ;IAAC0I,OAAO,EAAElI;EAAW,CAAE,CACrF,CAAC,GACD,IAAI;AACV,CAAC;AAACmI,OAAA,CAAA9L,IAAA,GAAAA,IAAA;AAEFA,IAAI,CAAC+L,SAAS,GAAG;EACf5L,OAAO,EAAE6L,kBAAS,CAACC;AACrB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Chat.js","names":["_dataSources","require","_locale","_services","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Chat","_Chat2","style","_components","_Aura","_helpers","_lobby","_Core","_helpers2","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","client","Chat","_ref","_channelSettings$web","hotelId","others","_useLocale","useLocale","translate","_useDevice","useDevice","isMobile","_useStore","useStore","_useStore$value","_useStore$value2","calendar","_useStore$value2$comp","components","currency","_useStore$value2$hote","hotel","id","language","locale","occupation","origin","session","_useStore$value2$skel","skeleton","type","_useStore$value2$urlP","urlParams","_useState","useState","_useState2","busy","setBusy","_useState3","_useState4","channelSettings","setChannelSettings","_useState5","_useState6","inputMode","setInputMode","_useState7","_useState8","messages","setMessages","_useState9","_useState0","visible","setVisible","activeHotelId","useEffect","Event","subscribe","EVENT","CHAT_OPEN","handleOpen","unsubscribe","active","loadSettings","channel","getChannelSettings","channelId","settings","_client","_client2","_client3","keepAlive","INPUT_MODE","TEXT","AUDIO","disconnect","socket","ClientLobby","onMessage","message","_client4","_ref2","author","body","createdAt","fingerprint","prev","synapse","text","timestamp","connect","handleInput","input","_client5","shortcutMessage","undefined","nextMessages","Date","getTime","send","setTimeout","_client6","aiBlocked","context","TYPE","CHAIN","chain","response","ServiceSynapse","mcp","catch","_client7","audioNotification","DELAY_RESPONSE","handleInputMode","publish","METRICS","METRICS_EVENTS","SARAI_INTERACTION","action","method","WHATSAPP","handleClose","_ref3","_ref3$source","source","SARAI_SOURCE","CHAT_OPENED","event","CHAT_CLOSE","isSaraiForced","sarai","isReady","every","item","BANNED_COMPONENTS","includes","web","_ref4","_ref4$entities","entities","_getPrivacyPolicy","getPrivacyPolicy","chainId","features","genericName","L10N","LABEL_GENERIC_NAME","isChain","privacyName","privacyUrl","url","createElement","Fragment","Modal","fit","portal","className","styles","container","Header","onClose","Welcome","onInputMode","ScrollView","scrollTo","snap","map","index","Message","key","concat","disabled","Input","onValue","Aura","onCallEnd","RATING","onTranscript","_ref5","_client8","meta","audio","AURA_ERROR","error","Rating","onRejoin","onReturnHome","Text","light","tiny","warning","LABEL_PRIVACY_DISCLAIMER","link","Action","href","target","underline","privacyLink","ACTION_MORE_INFO","ButtonDispatcher","onPress","exports","propTypes","PropTypes","string"],"sources":["../../../src/components/Chat/Chat.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { ServiceSynapse } from '@mirai/services';\nimport { Action, Modal, ScrollView, styles, Text, useDevice } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { BANNED_COMPONENTS, DELAY_RESPONSE, INPUT_MODE } from './Chat.constants';\nimport { L10N } from './Chat.l10n';\nimport * as style from './Chat.module.css';\nimport { ButtonDispatcher, Header, Input, Message, Rating, Welcome } from './components';\nimport { Aura } from './components/Aura/Aura';\nimport { audioNotification, ClientLobby } from './helpers';\nimport { getChannelSettings } from './services/lobby.service';\nimport { SARAI_SOURCE, TYPE } from '../../Core.constants';\nimport { EVENT, getPrivacyPolicy, METRICS_EVENTS } from '../helpers';\n\nlet client;\n\nconst Chat = ({ hotelId, ...others }) => {\n const { translate } = useLocale();\n const { isMobile } = useDevice();\n const {\n value: {\n calendar,\n components = {},\n currency,\n hotel = {},\n id,\n language,\n locale,\n occupation,\n origin,\n session,\n skeleton = false,\n type,\n urlParams = {},\n } = {},\n } = useStore();\n\n const [busy, setBusy] = useState(false);\n const [channelSettings, setChannelSettings] = useState();\n const [inputMode, setInputMode] = useState();\n const [messages, setMessages] = useState([]);\n const [visible, setVisible] = useState(false);\n const activeHotelId = hotelId || hotel.id;\n\n useEffect(() => {\n if (skeleton) return;\n\n Event.subscribe(EVENT.CHAT_OPEN, handleOpen);\n return () => Event.unsubscribe(EVENT.CHAT_OPEN, handleOpen);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [skeleton]);\n\n useEffect(() => {\n if (skeleton || (!id && !hotelId)) {\n setChannelSettings();\n return;\n }\n\n let active = true;\n\n const loadSettings = async () => {\n const channel = await getChannelSettings({ channelId: hotelId || id });\n if (!active) return;\n setChannelSettings(channel?.settings);\n };\n\n loadSettings();\n\n return () => {\n active = false;\n };\n }, [hotelId, id, skeleton]);\n\n useEffect(() => {\n const keepAlive = visible && (inputMode === INPUT_MODE.TEXT || inputMode === INPUT_MODE.AUDIO);\n if (!keepAlive) return client?.disconnect();\n\n const channelId = activeHotelId || id;\n if (client?.socket && client.channelId === channelId && client.session === session) return;\n client?.disconnect();\n\n client = new ClientLobby({ channelId, session });\n\n client.onMessage((message) => {\n const { author, body, createdAt, fingerprint } = message || {};\n if (fingerprint !== client?.fingerprint || author !== 'human') return;\n setMessages((prev) => [...prev, { synapse: true, text: body, timestamp: createdAt }]);\n });\n\n client.connect();\n }, [activeHotelId, id, inputMode, session, visible]);\n\n const handleInput = (input, shortcutMessage = false) => {\n const nextMessages = [...messages, { text: input, timestamp: new Date().getTime() }];\n setMessages(nextMessages);\n\n client?.send({ body: input });\n\n setTimeout(async () => {\n if (client?.aiBlocked) return;\n setBusy(true);\n\n const context = { calendar, currency, isMobile, locale, occupation, origin, shortcutMessage };\n if (type === TYPE.CHAIN && !hotelId) context.chain = { id };\n if (hotelId) context.hotel = { id: hotelId };\n else if (hotel.id) context.hotel = hotel;\n\n const response = await ServiceSynapse.message({\n context,\n input,\n session,\n mcp: false,\n }).catch(() => {});\n\n if (response) {\n setMessages([...nextMessages, { synapse: true, ...response }]);\n client?.send({ body: response.text, author: 'ai' });\n\n // ! TODO: Handle locale\n // if (response.locale !== locale) Event.publish(EVENT.INTENT_LOCALE, { locale: response.locale });\n audioNotification();\n }\n setBusy(false);\n }, DELAY_RESPONSE);\n };\n\n const handleInputMode = (next) => {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.SARAI_INTERACTION, action: 'click', method: next });\n if (next === INPUT_MODE.WHATSAPP) return handleClose();\n setInputMode(next);\n };\n\n const handleOpen = ({ source = SARAI_SOURCE } = {}) => {\n setVisible(true);\n Event.publish(EVENT.CHAT_OPENED, { event: EVENT.CHAT_OPENED, source });\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.SARAI_INTERACTION, action: 'open', method: inputMode });\n };\n\n const handleClose = () => {\n Event.publish(EVENT.CHAT_CLOSE, { inputMode });\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.SARAI_INTERACTION, action: 'close', method: inputMode });\n setVisible(false);\n setInputMode();\n };\n\n const isSaraiForced = urlParams.sarai === 'true';\n const isReady =\n !skeleton &&\n Object.keys(components).every((item) => !BANNED_COMPONENTS.includes(item)) &&\n (channelSettings?.web?.active || isSaraiForced);\n const { entities = {} } = messages[messages.length - 1] || {};\n\n const { name: privacyName, url: privacyUrl } = getPrivacyPolicy({\n chainId: id,\n features: hotel.features,\n genericName: translate(L10N.LABEL_GENERIC_NAME),\n hotelId: activeHotelId,\n isChain: type === TYPE.CHAIN,\n language,\n locale,\n });\n\n return isReady ? (\n <>\n <Modal {...others} fit portal visible={visible} className={styles(style.container, others.className)}>\n <Header settings={channelSettings} onClose={handleClose} />\n\n {!inputMode ? (\n <Welcome settings={channelSettings} onInputMode={handleInputMode} />\n ) : inputMode === INPUT_MODE.TEXT ? (\n <>\n <ScrollView scrollTo={new Date().getTime()} snap={false} className={style.messages}>\n {messages.map((message, index) => (\n <Message key={`message:${index}`} disabled={busy || index < messages.length - 1} {...message} />\n ))}\n {busy && <Message busy synapse />}\n </ScrollView>\n <Input disabled={busy} entities={entities} onValue={handleInput} className={style.input} />\n </>\n ) : inputMode === INPUT_MODE.AUDIO ? (\n <Aura\n hotelId={activeHotelId}\n settings={channelSettings}\n onCallEnd={() => setInputMode(INPUT_MODE.RATING)}\n onTranscript={({ author, body }) => {\n if (!client?.send({ author, body, meta: { audio: true } })) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR, error: 'transcript_dropped' });\n }\n }}\n />\n ) : inputMode === INPUT_MODE.RATING ? (\n <Rating onRejoin={() => setInputMode(INPUT_MODE.AUDIO)} onReturnHome={handleClose} />\n ) : null}\n <Text light tiny className={style.warning}>\n {translate(L10N.LABEL_PRIVACY_DISCLAIMER, {\n name: privacyName,\n link: (\n <Action href={privacyUrl} target=\"_blank\" tiny underline className={style.privacyLink}>\n {translate(L10N.ACTION_MORE_INFO)}\n </Action>\n ),\n })}\n </Text>\n </Modal>\n\n <ButtonDispatcher settings={channelSettings} visible={visible} onPress={handleOpen} />\n </>\n ) : null;\n};\n\nChat.propTypes = {\n hotelId: PropTypes.string,\n};\n\nexport { Chat };\n"],"mappings":"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","ignoreList":[]}
@@ -31,6 +31,7 @@ const Aura = _ref => {
31
31
  let hotelId = _ref.hotelId,
32
32
  _ref$onCallEnd = _ref.onCallEnd,
33
33
  onCallEnd = _ref$onCallEnd === void 0 ? () => {} : _ref$onCallEnd,
34
+ onTranscript = _ref.onTranscript,
34
35
  settings = _ref.settings;
35
36
  const openAiSession = (0, _useOpenAiRealtimeSession.useOpenAiRealtimeSession)();
36
37
  const xaiSession = (0, _useXaiRealtimeSession.useXaiRealtimeSession)();
@@ -110,6 +111,7 @@ const Aura = _ref => {
110
111
  hotelId,
111
112
  isChain,
112
113
  locale,
114
+ onTranscript,
113
115
  setIsConnecting,
114
116
  setReady
115
117
  });
@@ -143,6 +145,7 @@ Aura.displayName = 'Mirai:Core:Chat.Aura';
143
145
  Aura.propTypes = {
144
146
  hotelId: _propTypes.default.string,
145
147
  onCallEnd: _propTypes.default.func,
148
+ onTranscript: _propTypes.default.func,
146
149
  settings: _propTypes.default.shape({
147
150
  ai: _propTypes.default.shape({
148
151
  name: _propTypes.default.string
@@ -1 +1 @@
1
- {"version":3,"file":"Aura.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Aura","style","_Aura2","_useOpenAiRealtimeSession","_useXaiRealtimeSession","_Core","_helpers","_Chat","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","VOICE_MODEL_XAI","Aura","_ref","_urlParams$voiceMode","hotelId","_ref$onCallEnd","onCallEnd","settings","openAiSession","useOpenAiRealtimeSession","xaiSession","useXaiRealtimeSession","_useStore","useStore","_useStore$value","_useStore$value2","id","locale","type","_useStore$value2$urlP","urlParams","useXai","toLowerCase","_ref2","startSession","endSession","audioAnalyzers","_useLocale","useLocale","translate","_ref3","_ref3$ai","ai","_ref3$ai2","_ref3$ai2$name","assistantName","DEFAULT_NAME","_useState","useState","_useState2","context","setContext","_useState3","_useState4","isConnecting","setIsConnecting","_useState5","_useState6","ready","setReady","useEffect","TYPE","CHAIN","handleCallEnd","useCallback","Event","publish","EVENT","METRICS","METRICS_EVENTS","AURA_CALL_END","handleCallStart","callback","subscribe","CHAT_CLOSE","unsubscribe","isChain","chainId","undefined","navigator","mediaDevices","AURA_ERROR","assistant_name","error","createElement","Fragment","Waveform","active","conversation","View","className","footer","Text","action","L10N","LABEL_CALLING","Button","busy","rounded","squared","large","tooltip","LABEL_HANG_UP","onPress","styles","button","Icon","ICON","HANG_UP","exports","displayName","propTypes","PropTypes","string","func","shape"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { L10N } from './Aura.l10n';\nimport * as style from './Aura.module.css';\nimport { Waveform } from './Aura.waveform';\nimport { useOpenAiRealtimeSession } from './hooks/useOpenAiRealtimeSession';\nimport { useXaiRealtimeSession } from './hooks/useXaiRealtimeSession';\nimport { TYPE } from '../../../../Core.constants';\nimport { EVENT, ICON, METRICS_EVENTS } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\n\nconst VOICE_MODEL_XAI = 'xai';\n\nconst Aura = ({ hotelId, onCallEnd = () => {}, settings }) => {\n const openAiSession = useOpenAiRealtimeSession();\n const xaiSession = useXaiRealtimeSession();\n const { value: { id, locale, type, urlParams = {} } = {} } = useStore();\n const useXai = urlParams['voice-model']?.toLowerCase() === VOICE_MODEL_XAI;\n const { startSession, endSession, audioAnalyzers } = useXai ? xaiSession : openAiSession;\n const { translate } = useLocale();\n const { ai: { name: assistantName = DEFAULT_NAME } = {} } = settings || {};\n\n const [context, setContext] = useState(null);\n const [isConnecting, setIsConnecting] = useState(false);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n if (type === TYPE.CHAIN && !hotelId) return;\n\n setContext({ hotelId });\n }, [hotelId, type]);\n\n const handleCallEnd = useCallback(() => {\n endSession();\n setReady(false);\n onCallEnd();\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_CALL_END });\n }, [endSession, onCallEnd]);\n\n useEffect(() => {\n handleCallStart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context]);\n\n useEffect(() => {\n const callback = () => {\n if (ready) handleCallEnd();\n };\n\n Event.subscribe(EVENT.CHAT_CLOSE, callback);\n return () => {\n Event.unsubscribe(EVENT.CHAT_CLOSE, callback);\n };\n }, [handleCallEnd, ready]);\n\n const handleCallStart = async () => {\n const isChain = type === TYPE.CHAIN && !hotelId;\n const chainId = isChain ? id : undefined;\n\n if (!navigator.mediaDevices || (!context && !chainId)) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR });\n return;\n }\n\n setIsConnecting(true);\n try {\n await startSession({\n assistant_name: assistantName,\n chainId,\n hotelId,\n isChain,\n locale,\n setIsConnecting,\n setReady,\n });\n } catch (error) {\n setIsConnecting(false);\n }\n };\n\n return !(!context && !(type === TYPE.CHAIN && !hotelId)) ? (\n <>\n <Waveform active={ready} conversation={audioAnalyzers} />\n <View className={style.footer}>\n {isConnecting && <Text action>{translate(L10N.LABEL_CALLING, { name: assistantName })}</Text>}\n <Button\n busy={isConnecting}\n rounded\n squared\n large\n tooltip={translate(L10N.LABEL_HANG_UP)}\n onPress={handleCallEnd}\n className={styles(style.button, ready && style.ready)}\n >\n <Icon value={ICON.HANG_UP} />\n </Button>\n </View>\n </>\n ) : null;\n};\n\nAura.displayName = 'Mirai:Core:Chat.Aura';\n\nAura.propTypes = {\n hotelId: PropTypes.string,\n onCallEnd: PropTypes.func,\n settings: PropTypes.shape({\n ai: PropTypes.shape({\n name: PropTypes.string,\n }),\n }),\n};\n\nexport { Aura };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Aura.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_Aura","style","_Aura2","_useOpenAiRealtimeSession","_useXaiRealtimeSession","_Core","_helpers","_Chat","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","VOICE_MODEL_XAI","Aura","_ref","_urlParams$voiceMode","hotelId","_ref$onCallEnd","onCallEnd","onTranscript","settings","openAiSession","useOpenAiRealtimeSession","xaiSession","useXaiRealtimeSession","_useStore","useStore","_useStore$value","_useStore$value2","id","locale","type","_useStore$value2$urlP","urlParams","useXai","toLowerCase","_ref2","startSession","endSession","audioAnalyzers","_useLocale","useLocale","translate","_ref3","_ref3$ai","ai","_ref3$ai2","_ref3$ai2$name","assistantName","DEFAULT_NAME","_useState","useState","_useState2","context","setContext","_useState3","_useState4","isConnecting","setIsConnecting","_useState5","_useState6","ready","setReady","useEffect","TYPE","CHAIN","handleCallEnd","useCallback","Event","publish","EVENT","METRICS","METRICS_EVENTS","AURA_CALL_END","handleCallStart","callback","subscribe","CHAT_CLOSE","unsubscribe","isChain","chainId","undefined","navigator","mediaDevices","AURA_ERROR","assistant_name","error","createElement","Fragment","Waveform","active","conversation","View","className","footer","Text","action","L10N","LABEL_CALLING","Button","busy","rounded","squared","large","tooltip","LABEL_HANG_UP","onPress","styles","button","Icon","ICON","HANG_UP","exports","displayName","propTypes","PropTypes","string","func","shape"],"sources":["../../../../../src/components/Chat/components/Aura/Aura.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { useLocale } from '@mirai/locale';\nimport { Button, Icon, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { L10N } from './Aura.l10n';\nimport * as style from './Aura.module.css';\nimport { Waveform } from './Aura.waveform';\nimport { useOpenAiRealtimeSession } from './hooks/useOpenAiRealtimeSession';\nimport { useXaiRealtimeSession } from './hooks/useXaiRealtimeSession';\nimport { TYPE } from '../../../../Core.constants';\nimport { EVENT, ICON, METRICS_EVENTS } from '../../../helpers';\nimport { DEFAULT_NAME } from '../../Chat.constants';\n\nconst VOICE_MODEL_XAI = 'xai';\n\nconst Aura = ({ hotelId, onCallEnd = () => {}, onTranscript, settings }) => {\n const openAiSession = useOpenAiRealtimeSession();\n const xaiSession = useXaiRealtimeSession();\n const { value: { id, locale, type, urlParams = {} } = {} } = useStore();\n const useXai = urlParams['voice-model']?.toLowerCase() === VOICE_MODEL_XAI;\n const { startSession, endSession, audioAnalyzers } = useXai ? xaiSession : openAiSession;\n const { translate } = useLocale();\n const { ai: { name: assistantName = DEFAULT_NAME } = {} } = settings || {};\n\n const [context, setContext] = useState(null);\n const [isConnecting, setIsConnecting] = useState(false);\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n if (type === TYPE.CHAIN && !hotelId) return;\n\n setContext({ hotelId });\n }, [hotelId, type]);\n\n const handleCallEnd = useCallback(() => {\n endSession();\n setReady(false);\n onCallEnd();\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_CALL_END });\n }, [endSession, onCallEnd]);\n\n useEffect(() => {\n handleCallStart();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context]);\n\n useEffect(() => {\n const callback = () => {\n if (ready) handleCallEnd();\n };\n\n Event.subscribe(EVENT.CHAT_CLOSE, callback);\n return () => {\n Event.unsubscribe(EVENT.CHAT_CLOSE, callback);\n };\n }, [handleCallEnd, ready]);\n\n const handleCallStart = async () => {\n const isChain = type === TYPE.CHAIN && !hotelId;\n const chainId = isChain ? id : undefined;\n\n if (!navigator.mediaDevices || (!context && !chainId)) {\n Event.publish(EVENT.METRICS, { id: METRICS_EVENTS.AURA_ERROR });\n return;\n }\n\n setIsConnecting(true);\n try {\n await startSession({\n assistant_name: assistantName,\n chainId,\n hotelId,\n isChain,\n locale,\n onTranscript,\n setIsConnecting,\n setReady,\n });\n } catch (error) {\n setIsConnecting(false);\n }\n };\n\n return !(!context && !(type === TYPE.CHAIN && !hotelId)) ? (\n <>\n <Waveform active={ready} conversation={audioAnalyzers} />\n <View className={style.footer}>\n {isConnecting && <Text action>{translate(L10N.LABEL_CALLING, { name: assistantName })}</Text>}\n <Button\n busy={isConnecting}\n rounded\n squared\n large\n tooltip={translate(L10N.LABEL_HANG_UP)}\n onPress={handleCallEnd}\n className={styles(style.button, ready && style.ready)}\n >\n <Icon value={ICON.HANG_UP} />\n </Button>\n </View>\n </>\n ) : null;\n};\n\nAura.displayName = 'Mirai:Core:Chat.Aura';\n\nAura.propTypes = {\n hotelId: PropTypes.string,\n onCallEnd: PropTypes.func,\n onTranscript: PropTypes.func,\n settings: PropTypes.shape({\n ai: PropTypes.shape({\n name: PropTypes.string,\n }),\n }),\n};\n\nexport { Aura };\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,6 @@ var _dataSources = require("@mirai/data-sources");
8
8
  var _react = require("react");
9
9
  var _helpers = require("../../../../helpers");
10
10
  var _helpers2 = require("../../../helpers");
11
- var _lobby = require("../../../services/lobby.service");
12
11
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
13
12
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
13
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -368,6 +367,7 @@ const useOpenAiRealtimeSession = () => {
368
367
  hotelId = _ref3.hotelId,
369
368
  isChain = _ref3.isChain,
370
369
  locale = _ref3.locale,
370
+ onTranscript = _ref3.onTranscript,
371
371
  setIsConnecting = _ref3.setIsConnecting,
372
372
  setReady = _ref3.setReady;
373
373
  cleanupRealtimeSession();
@@ -654,39 +654,15 @@ const useOpenAiRealtimeSession = () => {
654
654
  pendingUserTranscriptRef.current = '';
655
655
  const activeLocale = locale || 'en-US';
656
656
  const channelId = hotelId || chainId;
657
- if (channelId) {
658
- try {
659
- const chatId = await (0, _lobby.ensureChatId)({
660
- fingerprint,
661
- channelId,
662
- session: {
663
- locale: activeLocale
664
- }
665
- });
666
- if (chatId) {
667
- await (0, _lobby.createChatMessage)({
668
- author: 'user',
669
- body: input,
670
- chatId,
671
- meta: {
672
- audio: true
673
- }
674
- });
675
- await (0, _lobby.createChatMessage)({
676
- author: 'ai',
677
- body: transcript,
678
- chatId,
679
- meta: {
680
- audio: true
681
- }
682
- });
683
- }
684
- } catch (error) {
685
- _dataSources.Event.publish(_helpers.EVENT.METRICS, {
686
- id: _helpers.METRICS_EVENTS.AURA_ERROR,
687
- error: error === null || error === void 0 ? void 0 : error.message
688
- });
689
- }
657
+ if (channelId && onTranscript) {
658
+ onTranscript({
659
+ author: 'user',
660
+ body: input
661
+ });
662
+ onTranscript({
663
+ author: 'ai',
664
+ body: transcript
665
+ });
690
666
  }
691
667
  _dataSources.Event.publish(_helpers.EVENT.METRICS, {
692
668
  id: 'SYNAPSE_RESPONSE',