@mirai/core 0.4.464 → 0.4.466

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.
Files changed (36) hide show
  1. package/build/components/Chat/Chat.constants.js +5 -1
  2. package/build/components/Chat/Chat.constants.js.map +1 -1
  3. package/build/components/Chat/Chat.js +9 -5
  4. package/build/components/Chat/Chat.js.map +1 -1
  5. package/build/components/Chat/components/Aura/Aura.js +126 -36
  6. package/build/components/Chat/components/Aura/Aura.js.map +1 -1
  7. package/build/components/Chat/components/Aura/Aura.l10n.js +15 -0
  8. package/build/components/Chat/components/Aura/Aura.l10n.js.map +1 -0
  9. package/build/components/Chat/components/Aura/Aura.module.css +109 -4
  10. package/build/components/Chat/components/{AiHalo/AiHalo.js → Aura/Aura.waveform.js} +27 -43
  11. package/build/components/Chat/components/Aura/Aura.waveform.js.map +1 -0
  12. package/build/components/Chat/components/Aura/helpers/elevenLabs.js +42 -0
  13. package/build/components/Chat/components/Aura/helpers/elevenLabs.js.map +1 -0
  14. package/build/components/Chat/components/Aura/helpers/index.js +17 -0
  15. package/build/components/Chat/components/Aura/helpers/index.js.map +1 -0
  16. package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js +237 -0
  17. package/build/components/Chat/components/Aura/hooks/useOpenAiRealtimeSession.js.map +1 -0
  18. package/build/components/Chat/components/Input/Input.js +3 -8
  19. package/build/components/Chat/components/Input/Input.js.map +1 -1
  20. package/build/components/Chat/components/Welcome/Welcome.js +37 -105
  21. package/build/components/Chat/components/Welcome/Welcome.js.map +1 -1
  22. package/build/components/Chat/components/Welcome/Welcome.l10n.js +14 -2
  23. package/build/components/Chat/components/Welcome/Welcome.l10n.js.map +1 -1
  24. package/build/components/Chat/components/Welcome/Welcome.module.css +29 -9
  25. package/build/components/helpers/ICON.js +1 -0
  26. package/build/components/helpers/ICON.js.map +1 -1
  27. package/package.json +1 -1
  28. package/build/components/Chat/components/AiHalo/AiHalo.js.map +0 -1
  29. package/build/components/Chat/components/AiHalo/AiHalo.module.css +0 -92
  30. package/build/components/Chat/components/AiHalo/index.js +0 -13
  31. package/build/components/Chat/components/AiHalo/index.js.map +0 -1
  32. package/build/components/Chat/components/Welcome/Welcome.Destination.js +0 -133
  33. package/build/components/Chat/components/Welcome/Welcome.Destination.js.map +0 -1
  34. package/build/components/Chat/components/Welcome/Welcome.Destination.module.css +0 -93
  35. package/build/components/Chat/helpers/auraHelpers.js +0 -135
  36. package/build/components/Chat/helpers/auraHelpers.js.map +0 -1
@@ -1,133 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Destination = void 0;
7
- var _dataSources = require("@mirai/data-sources");
8
- var _ui = require("@mirai/ui");
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var style = _interopRequireWildcard(require("./Welcome.Destination.module.css"));
12
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- const Destination = _ref => {
15
- let {
16
- onSelect = () => {}
17
- } = _ref;
18
- const {
19
- value: {
20
- hotel: {
21
- features = {}
22
- } = {},
23
- language
24
- } = {}
25
- } = (0, _dataSources.useStore)();
26
- const [selectedCountry, setSelectedCountry] = (0, _react.useState)(null);
27
- const [selectedProvince, setSelectedProvince] = (0, _react.useState)(null);
28
- const hotels = Object.entries(features).filter(_ref2 => {
29
- let [key] = _ref2;
30
- return !isNaN(key);
31
- }).map(_ref3 => {
32
- var _hotel$country;
33
- let [id, hotel] = _ref3;
34
- return {
35
- address: hotel.address,
36
- country: (_hotel$country = hotel.country) === null || _hotel$country === void 0 ? void 0 : _hotel$country[language],
37
- id,
38
- initial: hotel.name.charAt(0).toUpperCase(),
39
- location: [hotel.address, hotel.province].filter(Boolean).join(', '),
40
- logo: hotel.logo,
41
- name: hotel.name,
42
- province: hotel.province,
43
- type: hotel.type
44
- };
45
- });
46
- const countries = [...new Set(hotels.map(_ref4 => {
47
- let {
48
- country
49
- } = _ref4;
50
- return country;
51
- }).filter(Boolean))];
52
- const countryFilteredHotels = selectedCountry ? hotels.filter(h => h.country === selectedCountry) : hotels;
53
- const provinces = countryFilteredHotels.length > 8 ? [...new Set(countryFilteredHotels.map(h => h.province).filter(Boolean))] : [];
54
- const filteredHotels = selectedProvince ? countryFilteredHotels.filter(h => h.province === selectedProvince) : countryFilteredHotels;
55
- const handleHotelSelect = hotelId => {
56
- onSelect(hotelId);
57
- };
58
- const handleResetCountry = () => {
59
- setSelectedCountry(null);
60
- setSelectedProvince(null);
61
- };
62
- const handleResetProvince = () => {
63
- setSelectedProvince(null);
64
- };
65
- return hotels.length > 0 ? /*#__PURE__*/_react.default.createElement(_ui.View, {
66
- className: style.container
67
- }, (selectedCountry || selectedProvince) && /*#__PURE__*/_react.default.createElement(_ui.View, {
68
- row: true,
69
- className: style.breadcrumb
70
- }, selectedCountry && /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
71
- onPress: handleResetCountry,
72
- className: style.card
73
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
74
- bold: true
75
- }, selectedCountry)), selectedProvince && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ui.Text, null, " > "), /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
76
- onPress: handleResetProvince,
77
- className: style.card
78
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
79
- bold: true
80
- }, selectedProvince)))), countries.length > 1 && !selectedCountry && /*#__PURE__*/_react.default.createElement(_ui.View, {
81
- row: true,
82
- className: style.list
83
- }, countries.map(country => /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
84
- key: country,
85
- onPress: () => setSelectedCountry(country),
86
- className: style.card
87
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
88
- medium: true
89
- }, country)))), selectedCountry && provinces.length > 1 && !selectedProvince && /*#__PURE__*/_react.default.createElement(_ui.View, {
90
- row: true,
91
- className: style.list
92
- }, provinces.map(province => /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
93
- key: province,
94
- onPress: () => setSelectedProvince(province),
95
- className: style.card
96
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
97
- medium: true
98
- }, province)))), (countries.length === 1 || selectedCountry) && (provinces.length <= 1 || selectedProvince) && /*#__PURE__*/_react.default.createElement(_ui.ScrollView, {
99
- scrollIndicator: true,
100
- snap: false,
101
- className: (0, _ui.styles)(style.scrollView)
102
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
103
- className: (0, _ui.styles)(style.list)
104
- }, filteredHotels.map(hotel => /*#__PURE__*/_react.default.createElement(_ui.Pressable, {
105
- key: hotel.id,
106
- onPress: () => handleHotelSelect(hotel.id),
107
- className: style.card
108
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
109
- row: true
110
- }, /*#__PURE__*/_react.default.createElement(_ui.View, {
111
- className: (0, _ui.styles)(style.logo, !hotel.logo && style.logoInitial),
112
- style: hotel.logo ? {
113
- backgroundImage: "url(".concat(hotel.logo, ")")
114
- } : {}
115
- }, !hotel.logo && /*#__PURE__*/_react.default.createElement(_ui.Text, {
116
- medium: true,
117
- headline: true,
118
- level: 2
119
- }, hotel.initial)), /*#__PURE__*/_react.default.createElement(_ui.View, {
120
- flex: true
121
- }, /*#__PURE__*/_react.default.createElement(_ui.Text, {
122
- medium: true
123
- }, hotel.name), hotel.location && /*#__PURE__*/_react.default.createElement(_ui.Text, {
124
- color: "secondary",
125
- small: true
126
- }, hotel.location)))))))) : null;
127
- };
128
- exports.Destination = Destination;
129
- Destination.displayName = 'Mirai:Core:Chat.Welcome.Destination';
130
- Destination.propTypes = {
131
- onSelect: _propTypes.default.func
132
- };
133
- //# sourceMappingURL=Welcome.Destination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Welcome.Destination.js","names":["_dataSources","require","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","style","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Destination","_ref","onSelect","value","hotel","features","language","useStore","selectedCountry","setSelectedCountry","useState","selectedProvince","setSelectedProvince","hotels","entries","filter","_ref2","key","isNaN","map","_ref3","_hotel$country","id","address","country","initial","name","charAt","toUpperCase","location","province","Boolean","join","logo","type","countries","Set","_ref4","countryFilteredHotels","h","provinces","length","filteredHotels","handleHotelSelect","hotelId","handleResetCountry","handleResetProvince","createElement","View","className","container","row","breadcrumb","Pressable","onPress","card","Text","bold","Fragment","list","medium","ScrollView","scrollIndicator","snap","styles","scrollView","logoInitial","backgroundImage","concat","headline","level","flex","color","small","exports","displayName","propTypes","PropTypes","func"],"sources":["../../../../../src/components/Chat/components/Welcome/Welcome.Destination.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { Pressable, ScrollView, styles, Text, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport * as style from './Welcome.Destination.module.css';\n\nconst Destination = ({ onSelect = () => {} }) => {\n const { value: { hotel: { features = {} } = {}, language } = {} } = useStore();\n\n const [selectedCountry, setSelectedCountry] = useState(null);\n const [selectedProvince, setSelectedProvince] = useState(null);\n\n const hotels = Object.entries(features)\n .filter(([key]) => !isNaN(key))\n .map(([id, hotel]) => ({\n address: hotel.address,\n country: hotel.country?.[language],\n id,\n initial: hotel.name.charAt(0).toUpperCase(),\n location: [hotel.address, hotel.province].filter(Boolean).join(', '),\n logo: hotel.logo,\n name: hotel.name,\n province: hotel.province,\n type: hotel.type,\n }));\n\n const countries = [...new Set(hotels.map(({ country }) => country).filter(Boolean))];\n const countryFilteredHotels = selectedCountry ? hotels.filter((h) => h.country === selectedCountry) : hotels;\n\n const provinces =\n countryFilteredHotels.length > 8 ? [...new Set(countryFilteredHotels.map((h) => h.province).filter(Boolean))] : [];\n\n const filteredHotels = selectedProvince\n ? countryFilteredHotels.filter((h) => h.province === selectedProvince)\n : countryFilteredHotels;\n\n const handleHotelSelect = (hotelId) => {\n onSelect(hotelId);\n };\n\n const handleResetCountry = () => {\n setSelectedCountry(null);\n setSelectedProvince(null);\n };\n\n const handleResetProvince = () => {\n setSelectedProvince(null);\n };\n\n return hotels.length > 0 ? (\n <View className={style.container}>\n {(selectedCountry || selectedProvince) && (\n <View row className={style.breadcrumb}>\n {selectedCountry && (\n <Pressable onPress={handleResetCountry} className={style.card}>\n <Text bold>{selectedCountry}</Text>\n </Pressable>\n )}\n {selectedProvince && (\n <>\n <Text> &gt; </Text>\n <Pressable onPress={handleResetProvince} className={style.card}>\n <Text bold>{selectedProvince}</Text>\n </Pressable>\n </>\n )}\n </View>\n )}\n\n {countries.length > 1 && !selectedCountry && (\n <View row className={style.list}>\n {countries.map((country) => (\n <Pressable key={country} onPress={() => setSelectedCountry(country)} className={style.card}>\n <Text medium>{country}</Text>\n </Pressable>\n ))}\n </View>\n )}\n\n {selectedCountry && provinces.length > 1 && !selectedProvince && (\n <View row className={style.list}>\n {provinces.map((province) => (\n <Pressable key={province} onPress={() => setSelectedProvince(province)} className={style.card}>\n <Text medium>{province}</Text>\n </Pressable>\n ))}\n </View>\n )}\n\n {(countries.length === 1 || selectedCountry) && (provinces.length <= 1 || selectedProvince) && (\n <ScrollView scrollIndicator snap={false} className={styles(style.scrollView)}>\n <View className={styles(style.list)}>\n {filteredHotels.map((hotel) => (\n <Pressable key={hotel.id} onPress={() => handleHotelSelect(hotel.id)} className={style.card}>\n <View row>\n <View\n className={styles(style.logo, !hotel.logo && style.logoInitial)}\n style={hotel.logo ? { backgroundImage: `url(${hotel.logo})` } : {}}\n >\n {!hotel.logo && (\n <Text medium headline level={2}>\n {hotel.initial}\n </Text>\n )}\n </View>\n <View flex>\n <Text medium>{hotel.name}</Text>\n {hotel.location && (\n <Text color=\"secondary\" small>\n {hotel.location}\n </Text>\n )}\n </View>\n </View>\n </Pressable>\n ))}\n </View>\n </ScrollView>\n )}\n </View>\n ) : null;\n};\n\nDestination.displayName = 'Mirai:Core:Chat.Welcome.Destination';\n\nDestination.propTypes = {\n onSelect: PropTypes.func,\n};\n\nexport { Destination };\n"],"mappings":"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","ignoreList":[]}
@@ -1,93 +0,0 @@
1
- .container {
2
- gap: var(--mirai-chat-space);
3
- }
4
-
5
- .card {
6
- align-items: center;
7
- border: solid var(--mirai-chat-border-size) var(--mirai-chat-border-color);
8
- border-radius: var(--mirai-chat-border-radius);
9
- cursor: pointer;
10
- gap: var(--mirai-chat-space);
11
- padding: var(--mirai-chat-space);
12
- }
13
-
14
- .breadcrumb {
15
- align-items: center;
16
- gap: calc(var(--mirai-chat-space) / 2);
17
- }
18
-
19
- .breadcrumb .card {
20
- padding: calc(var(--mirai-chat-space) / 2) var(--mirai-chat-space);
21
- }
22
-
23
- .list {
24
- gap: var(--mirai-ui-space-M);
25
- }
26
-
27
- .scrollView {
28
- max-height: 66svh;
29
- }
30
-
31
- .list .card {
32
- box-sizing: border-box;
33
- }
34
-
35
- .logo {
36
- align-items: center;
37
- justify-content: center;
38
- background-size: contain;
39
- background-position: center;
40
- background-repeat: no-repeat;
41
- flex-shrink: 0;
42
- margin-right: var(--mirai-chat-space);
43
- width: var(--mirai-ui-space-XXL);
44
- height: var(--mirai-ui-space-XXL);
45
- }
46
-
47
- .logoInitial {
48
- background-color: var(--mirai-ui-content-border);
49
- border-radius: var(--mirai-chat-border-radius);
50
- }
51
-
52
- /* L */
53
- @media only screen and (max-width: 480px) {
54
- .scrollView {
55
- max-height: 60svh;
56
- }
57
-
58
- .list {
59
- flex-direction: column;
60
- }
61
-
62
- .list .card {
63
- width: 100%;
64
- }
65
- }
66
-
67
- /* M & L */
68
- @media only screen and (min-width: 481px) {
69
- .scrollView {
70
- max-height: 50svh;
71
- width: 100%;
72
- }
73
-
74
- .list {
75
- align-items: stretch;
76
- flex-direction: row;
77
- flex-wrap: wrap;
78
- width: 100%;
79
- }
80
-
81
- .list .card {
82
- flex-basis: calc(50% - calc(var(--mirai-ui-space-M) / 2));
83
- }
84
-
85
- .card:hover {
86
- background-color: var(--mirai-ui-content);
87
- border-color: var(--mirai-ui-content);
88
- }
89
-
90
- .card:hover * {
91
- color: var(--mirai-chat-background);
92
- }
93
- }
@@ -1,135 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.subscribeToMessageSent = exports.openUrlClientTool = exports.handleConversation = exports.getElevenLabsSignedUrl = exports.createSessionConfig = exports.createMessageSentHandler = void 0;
7
- var _dataSources = require("@mirai/data-sources");
8
- var _helpers = require("../../../components/helpers");
9
- const createMessageSentHandler = (busyConversation, conversation, setBusyConversation) => {
10
- return async () => {
11
- if (busyConversation) {
12
- await conversation.endSession();
13
- setBusyConversation(false);
14
- }
15
- };
16
- };
17
- exports.createMessageSentHandler = createMessageSentHandler;
18
- const subscribeToMessageSent = handler => {
19
- _dataSources.Event.subscribe(_helpers.EVENT.SARAI_MESSAGE_SENT, handler);
20
- return () => _dataSources.Event.unsubscribe(_helpers.EVENT.SARAI_MESSAGE_SENT, handler);
21
- };
22
- exports.subscribeToMessageSent = subscribeToMessageSent;
23
- const getElevenLabsSignedUrl = async function () {
24
- let chain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
25
- try {
26
- const endpoint = chain ? '/elevenlabs/signed-url?chain=true' : '/elevenlabs/signed-url';
27
- const response = await (0, _dataSources.request)({
28
- endpoint,
29
- hostname: process.env.SERVICE_SYNAPSE,
30
- method: 'GET'
31
- });
32
- return (response === null || response === void 0 ? void 0 : response.signedUrl) || null;
33
- } catch (error) {
34
- return null;
35
- }
36
- };
37
- exports.getElevenLabsSignedUrl = getElevenLabsSignedUrl;
38
- const openUrlClientTool = _ref => {
39
- let {
40
- url
41
- } = _ref;
42
- try {
43
- if (!url) return 'Error: No URL provided';
44
- let validUrl;
45
- try {
46
- validUrl = new URL(url.startsWith('http') ? url : "https://".concat(url));
47
- } catch (_unused) {
48
- return 'Error: Invalid URL format';
49
- }
50
- window.location.href = validUrl.href;
51
- return "Successfully opened URL: ".concat(validUrl.href);
52
- } catch (error) {
53
- return 'Error: Failed to open URL';
54
- }
55
- };
56
- exports.openUrlClientTool = openUrlClientTool;
57
- const createSessionConfig = function (signedUrl, assistant, context, locale, callbacks) {
58
- let chain = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
59
- let chainId = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
60
- const {
61
- onConnect,
62
- onDisconnect,
63
- onError,
64
- onMessage
65
- } = callbacks;
66
- const dynamicVariables = chain ? {
67
- assistant_name: assistant.name || 'Sarai',
68
- chain_id: chainId || ''
69
- } : {
70
- assistant_name: assistant.name || 'Sarai',
71
- hotelId: context.hotelId
72
- };
73
- return {
74
- clientTools: {
75
- open_url: openUrlClientTool
76
- },
77
- dynamicVariables,
78
- overrides: {
79
- agent: {
80
- language: locale.split('-')[0]
81
- }
82
- },
83
- signedUrl,
84
- onConnect,
85
- onDisconnect,
86
- onError: onError || (message => {
87
- // eslint-disable-next-line no-console
88
- console.log(message);
89
- }),
90
- onMessage: onMessage || (message => {
91
- // eslint-disable-next-line no-console
92
- console.log(message);
93
- })
94
- };
95
- };
96
- exports.createSessionConfig = createSessionConfig;
97
- const handleConversation = async function (busyConversation, isConnecting, context, conversation, assistant, locale, setIsConnecting, setBusyConversation) {
98
- let chain = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
99
- let chainId = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : null;
100
- if (!navigator.mediaDevices || !conversation || !context && !chain) return;
101
- if (!busyConversation) {
102
- setIsConnecting(true);
103
- try {
104
- await navigator.mediaDevices.getUserMedia({
105
- audio: true
106
- });
107
- const signedUrl = await getElevenLabsSignedUrl(chain);
108
- const sessionConfig = createSessionConfig(signedUrl, assistant, context, locale, {
109
- onConnect: () => {
110
- setIsConnecting(false);
111
- setBusyConversation(true);
112
- },
113
- onDisconnect: () => {
114
- setIsConnecting(false);
115
- setBusyConversation(false);
116
- },
117
- onError: message => {
118
- setIsConnecting(false);
119
- // eslint-disable-next-line no-console
120
- console.log(message);
121
- }
122
- }, chain, chainId);
123
- await conversation.startSession(sessionConfig);
124
- } catch (error) {
125
- setIsConnecting(false);
126
- // eslint-disable-next-line no-console
127
- console.error('Error starting conversation:', error);
128
- }
129
- } else {
130
- await conversation.endSession();
131
- setBusyConversation(false);
132
- }
133
- };
134
- exports.handleConversation = handleConversation;
135
- //# sourceMappingURL=auraHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auraHelpers.js","names":["_dataSources","require","_helpers","createMessageSentHandler","busyConversation","conversation","setBusyConversation","endSession","exports","subscribeToMessageSent","handler","Event","subscribe","EVENT","SARAI_MESSAGE_SENT","unsubscribe","getElevenLabsSignedUrl","chain","arguments","length","undefined","endpoint","response","request","hostname","process","env","SERVICE_SYNAPSE","method","signedUrl","error","openUrlClientTool","_ref","url","validUrl","URL","startsWith","concat","_unused","window","location","href","createSessionConfig","assistant","context","locale","callbacks","chainId","onConnect","onDisconnect","onError","onMessage","dynamicVariables","assistant_name","name","chain_id","hotelId","clientTools","open_url","overrides","agent","language","split","message","console","log","handleConversation","isConnecting","setIsConnecting","navigator","mediaDevices","getUserMedia","audio","sessionConfig","startSession"],"sources":["../../../../src/components/Chat/helpers/auraHelpers.js"],"sourcesContent":["import { Event, request } from '@mirai/data-sources';\n\nimport { EVENT } from '../../../components/helpers';\n\nexport const createMessageSentHandler = (busyConversation, conversation, setBusyConversation) => {\n return async () => {\n if (busyConversation) {\n await conversation.endSession();\n setBusyConversation(false);\n }\n };\n};\n\nexport const subscribeToMessageSent = (handler) => {\n Event.subscribe(EVENT.SARAI_MESSAGE_SENT, handler);\n return () => Event.unsubscribe(EVENT.SARAI_MESSAGE_SENT, handler);\n};\n\nexport const getElevenLabsSignedUrl = async (chain = false) => {\n try {\n const endpoint = chain ? '/elevenlabs/signed-url?chain=true' : '/elevenlabs/signed-url';\n const response = await request({\n endpoint,\n hostname: process.env.SERVICE_SYNAPSE,\n method: 'GET',\n });\n return response?.signedUrl || null;\n } catch (error) {\n return null;\n }\n};\n\nexport const openUrlClientTool = ({ url }) => {\n try {\n if (!url) return 'Error: No URL provided';\n\n let validUrl;\n try {\n validUrl = new URL(url.startsWith('http') ? url : `https://${url}`);\n } catch {\n return 'Error: Invalid URL format';\n }\n\n window.location.href = validUrl.href;\n\n return `Successfully opened URL: ${validUrl.href}`;\n } catch (error) {\n return 'Error: Failed to open URL';\n }\n};\n\nexport const createSessionConfig = (\n signedUrl,\n assistant,\n context,\n locale,\n callbacks,\n chain = false,\n chainId = null,\n) => {\n const { onConnect, onDisconnect, onError, onMessage } = callbacks;\n\n const dynamicVariables = chain\n ? {\n assistant_name: assistant.name || 'Sarai',\n chain_id: chainId || '',\n }\n : {\n assistant_name: assistant.name || 'Sarai',\n hotelId: context.hotelId,\n };\n\n return {\n clientTools: {\n open_url: openUrlClientTool,\n },\n dynamicVariables,\n overrides: {\n agent: {\n language: locale.split('-')[0],\n },\n },\n signedUrl,\n onConnect,\n onDisconnect,\n onError:\n onError ||\n ((message) => {\n // eslint-disable-next-line no-console\n console.log(message);\n }),\n onMessage:\n onMessage ||\n ((message) => {\n // eslint-disable-next-line no-console\n console.log(message);\n }),\n };\n};\n\nexport const handleConversation = async (\n busyConversation,\n isConnecting,\n context,\n conversation,\n assistant,\n locale,\n setIsConnecting,\n setBusyConversation,\n chain = false,\n chainId = null,\n) => {\n if (!navigator.mediaDevices || !conversation || (!context && !chain)) return;\n\n if (!busyConversation) {\n setIsConnecting(true);\n try {\n await navigator.mediaDevices.getUserMedia({ audio: true });\n\n const signedUrl = await getElevenLabsSignedUrl(chain);\n\n const sessionConfig = createSessionConfig(\n signedUrl,\n assistant,\n context,\n locale,\n {\n onConnect: () => {\n setIsConnecting(false);\n setBusyConversation(true);\n },\n onDisconnect: () => {\n setIsConnecting(false);\n setBusyConversation(false);\n },\n onError: (message) => {\n setIsConnecting(false);\n // eslint-disable-next-line no-console\n console.log(message);\n },\n },\n chain,\n chainId,\n );\n\n await conversation.startSession(sessionConfig);\n } catch (error) {\n setIsConnecting(false);\n // eslint-disable-next-line no-console\n console.error('Error starting conversation:', error);\n }\n } else {\n await conversation.endSession();\n setBusyConversation(false);\n }\n};\n"],"mappings":"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","ignoreList":[]}