@memori.ai/memori-react 8.45.5 → 8.46.0
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/CHANGELOG.md +14 -0
- package/dist/components/MemoriWidget/MemoriWidget.js +61 -32
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/helpers/speech/speechRequest.d.ts +15 -0
- package/dist/helpers/speech/speechRequest.js +76 -0
- package/dist/helpers/speech/speechRequest.js.map +1 -0
- package/dist/helpers/stt/useSTT.d.ts +4 -0
- package/dist/helpers/stt/useSTT.js +20 -13
- package/dist/helpers/stt/useSTT.js.map +1 -1
- package/dist/helpers/tts/useTTS.d.ts +5 -0
- package/dist/helpers/tts/useTTS.js +12 -4
- package/dist/helpers/tts/useTTS.js.map +1 -1
- package/dist/locales/de.json +4 -0
- package/dist/locales/en.json +4 -0
- package/dist/locales/es.json +4 -0
- package/dist/locales/fr.json +4 -0
- package/dist/locales/it.json +4 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +61 -32
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/helpers/speech/speechRequest.d.ts +15 -0
- package/esm/helpers/speech/speechRequest.js +68 -0
- package/esm/helpers/speech/speechRequest.js.map +1 -0
- package/esm/helpers/stt/useSTT.d.ts +4 -0
- package/esm/helpers/stt/useSTT.js +20 -13
- package/esm/helpers/stt/useSTT.js.map +1 -1
- package/esm/helpers/tts/useTTS.d.ts +5 -0
- package/esm/helpers/tts/useTTS.js +12 -4
- package/esm/helpers/tts/useTTS.js.map +1 -1
- package/esm/locales/de.json +4 -0
- package/esm/locales/en.json +4 -0
- package/esm/locales/es.json +4 -0
- package/esm/locales/fr.json +4 -0
- package/esm/locales/it.json +4 -0
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -78
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -39
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -43
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
- package/dist/components/ContentPreviewModal/DocumentMarkdown.d.ts +0 -7
- package/dist/components/ContentPreviewModal/DocumentMarkdown.js +0 -31
- package/dist/components/ContentPreviewModal/DocumentMarkdown.js.map +0 -1
- package/dist/components/DrawerFooter/DrawerFooter.css +0 -62
- package/dist/components/DrawerFooter/DrawerFooter.d.ts +0 -12
- package/dist/components/DrawerFooter/DrawerFooter.js +0 -10
- package/dist/components/DrawerFooter/DrawerFooter.js.map +0 -1
- package/dist/components/IconButton/IconButton.css +0 -135
- package/dist/components/IconButton/IconButton.d.ts +0 -9
- package/dist/components/IconButton/IconButton.js +0 -36
- package/dist/components/IconButton/IconButton.js.map +0 -1
- package/dist/components/LoginModal/LoginModal.css +0 -270
- package/dist/components/LoginModal/LoginModal.d.ts +0 -19
- package/dist/components/LoginModal/LoginModal.js +0 -355
- package/dist/components/LoginModal/LoginModal.js.map +0 -1
- package/dist/components/MobileSessionPanel/MobileSessionPanel.css +0 -540
- package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
- package/dist/components/MobileSessionPanel/MobileSessionPanel.js +0 -254
- package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
- package/dist/components/PositionPopover/PositionPopover.css +0 -218
- package/dist/components/PositionPopover/PositionPopover.d.ts +0 -22
- package/dist/components/PositionPopover/PositionPopover.js +0 -208
- package/dist/components/PositionPopover/PositionPopover.js.map +0 -1
- package/dist/components/ReasoningBlock/ReasoningBlock.css +0 -156
- package/dist/components/ReasoningBlock/ReasoningBlock.d.ts +0 -7
- package/dist/components/ReasoningBlock/ReasoningBlock.js +0 -61
- package/dist/components/ReasoningBlock/ReasoningBlock.js.map +0 -1
- package/dist/components/SideDrawer/SideDrawer.css +0 -112
- package/dist/components/SideDrawer/SideDrawer.d.ts +0 -22
- package/dist/components/SideDrawer/SideDrawer.js +0 -17
- package/dist/components/SideDrawer/SideDrawer.js.map +0 -1
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -144
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
- package/dist/components/layouts/WebsiteAssistant/website-assistant.css +0 -889
- package/dist/components/layouts/fullpage.css +0 -628
- package/dist/helpers/artifactPanel.d.ts +0 -6
- package/dist/helpers/artifactPanel.js +0 -42
- package/dist/helpers/artifactPanel.js.map +0 -1
- package/dist/helpers/chatScroll.d.ts +0 -12
- package/dist/helpers/chatScroll.js +0 -14
- package/dist/helpers/chatScroll.js.map +0 -1
- package/dist/helpers/conversationHistory.d.ts +0 -16
- package/dist/helpers/conversationHistory.js +0 -89
- package/dist/helpers/conversationHistory.js.map +0 -1
- package/dist/helpers/conversationTitle.d.ts +0 -8
- package/dist/helpers/conversationTitle.js +0 -27
- package/dist/helpers/conversationTitle.js.map +0 -1
- package/dist/helpers/enhanceBubbleCodeBlocks.d.ts +0 -5
- package/dist/helpers/enhanceBubbleCodeBlocks.js +0 -97
- package/dist/helpers/enhanceBubbleCodeBlocks.js.map +0 -1
- package/dist/helpers/highlightMatches.d.ts +0 -2
- package/dist/helpers/highlightMatches.js +0 -54
- package/dist/helpers/highlightMatches.js.map +0 -1
- package/dist/helpers/positionPopover.d.ts +0 -3
- package/dist/helpers/positionPopover.js +0 -22
- package/dist/helpers/positionPopover.js.map +0 -1
- package/dist/helpers/prism.d.ts +0 -16
- package/dist/helpers/prism.js +0 -78
- package/dist/helpers/prism.js.map +0 -1
- package/dist/helpers/reasoning.d.ts +0 -7
- package/dist/helpers/reasoning.js +0 -43
- package/dist/helpers/reasoning.js.map +0 -1
- package/dist/helpers/relativeTime.d.ts +0 -3
- package/dist/helpers/relativeTime.js +0 -56
- package/dist/helpers/relativeTime.js.map +0 -1
- package/dist/helpers/sourcesCount.d.ts +0 -2
- package/dist/helpers/sourcesCount.js +0 -22
- package/dist/helpers/sourcesCount.js.map +0 -1
- package/dist/helpers/tts/muteSpeaker.d.ts +0 -13
- package/dist/helpers/tts/muteSpeaker.js +0 -26
- package/dist/helpers/tts/muteSpeaker.js.map +0 -1
- package/dist/helpers/usePressTooltip.d.ts +0 -18
- package/dist/helpers/usePressTooltip.js +0 -38
- package/dist/helpers/usePressTooltip.js.map +0 -1
- package/dist/icons/FacebookIcon.d.ts +0 -3
- package/dist/icons/FacebookIcon.js +0 -6
- package/dist/icons/FacebookIcon.js.map +0 -1
- package/dist/icons/LinkedinIcon.d.ts +0 -3
- package/dist/icons/LinkedinIcon.js +0 -6
- package/dist/icons/LinkedinIcon.js.map +0 -1
- package/dist/icons/MemoriIcon.d.ts +0 -3
- package/dist/icons/MemoriIcon.js +0 -8
- package/dist/icons/MemoriIcon.js.map +0 -1
- package/dist/icons/TelegramIcon.d.ts +0 -3
- package/dist/icons/TelegramIcon.js +0 -6
- package/dist/icons/TelegramIcon.js.map +0 -1
- package/dist/icons/TwitterIcon.d.ts +0 -3
- package/dist/icons/TwitterIcon.js +0 -6
- package/dist/icons/TwitterIcon.js.map +0 -1
- package/dist/icons/WhatsappIcon.d.ts +0 -3
- package/dist/icons/WhatsappIcon.js +0 -6
- package/dist/icons/WhatsappIcon.js.map +0 -1
- package/dist/icons/artifacts/DocumentIcon.d.ts +0 -3
- package/dist/icons/artifacts/DocumentIcon.js +0 -6
- package/dist/icons/artifacts/DocumentIcon.js.map +0 -1
- package/dist/icons/artifacts/HtmlIcon.d.ts +0 -3
- package/dist/icons/artifacts/HtmlIcon.js +0 -6
- package/dist/icons/artifacts/HtmlIcon.js.map +0 -1
- package/dist/icons/artifacts/JavascriptIcon.d.ts +0 -3
- package/dist/icons/artifacts/JavascriptIcon.js +0 -6
- package/dist/icons/artifacts/JavascriptIcon.js.map +0 -1
- package/dist/icons/artifacts/MarkdownIcon.d.ts +0 -3
- package/dist/icons/artifacts/MarkdownIcon.js +0 -6
- package/dist/icons/artifacts/MarkdownIcon.js.map +0 -1
- package/dist/icons/artifacts/PythonIcon.d.ts +0 -3
- package/dist/icons/artifacts/PythonIcon.js +0 -6
- package/dist/icons/artifacts/PythonIcon.js.map +0 -1
- package/dist/icons/artifacts/SvgIcon.d.ts +0 -3
- package/dist/icons/artifacts/SvgIcon.js +0 -6
- package/dist/icons/artifacts/SvgIcon.js.map +0 -1
- package/dist/icons/artifacts/XmlIcon.d.ts +0 -3
- package/dist/icons/artifacts/XmlIcon.js +0 -6
- package/dist/icons/artifacts/XmlIcon.js.map +0 -1
- package/dist/icons/artifacts/cssIcon.d.ts +0 -3
- package/dist/icons/artifacts/cssIcon.js +0 -6
- package/dist/icons/artifacts/cssIcon.js.map +0 -1
- package/dist/styles/motion.css +0 -25
- package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -39
- package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -40
- package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
- package/esm/components/ContentPreviewModal/DocumentMarkdown.d.ts +0 -7
- package/esm/components/ContentPreviewModal/DocumentMarkdown.js +0 -28
- package/esm/components/ContentPreviewModal/DocumentMarkdown.js.map +0 -1
- package/esm/components/DrawerFooter/DrawerFooter.d.ts +0 -12
- package/esm/components/DrawerFooter/DrawerFooter.js +0 -8
- package/esm/components/DrawerFooter/DrawerFooter.js.map +0 -1
- package/esm/components/IconButton/IconButton.d.ts +0 -9
- package/esm/components/IconButton/IconButton.js +0 -33
- package/esm/components/IconButton/IconButton.js.map +0 -1
- package/esm/components/LoginModal/LoginModal.d.ts +0 -19
- package/esm/components/LoginModal/LoginModal.js +0 -352
- package/esm/components/LoginModal/LoginModal.js.map +0 -1
- package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
- package/esm/components/MobileSessionPanel/MobileSessionPanel.js +0 -251
- package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
- package/esm/components/PositionPopover/PositionPopover.d.ts +0 -22
- package/esm/components/PositionPopover/PositionPopover.js +0 -203
- package/esm/components/PositionPopover/PositionPopover.js.map +0 -1
- package/esm/components/ReasoningBlock/ReasoningBlock.d.ts +0 -7
- package/esm/components/ReasoningBlock/ReasoningBlock.js +0 -58
- package/esm/components/ReasoningBlock/ReasoningBlock.js.map +0 -1
- package/esm/components/SideDrawer/SideDrawer.d.ts +0 -22
- package/esm/components/SideDrawer/SideDrawer.js +0 -12
- package/esm/components/SideDrawer/SideDrawer.js.map +0 -1
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -141
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
- package/esm/helpers/artifactPanel.d.ts +0 -6
- package/esm/helpers/artifactPanel.js +0 -37
- package/esm/helpers/artifactPanel.js.map +0 -1
- package/esm/helpers/chatScroll.d.ts +0 -12
- package/esm/helpers/chatScroll.js +0 -9
- package/esm/helpers/chatScroll.js.map +0 -1
- package/esm/helpers/conversationHistory.d.ts +0 -16
- package/esm/helpers/conversationHistory.js +0 -82
- package/esm/helpers/conversationHistory.js.map +0 -1
- package/esm/helpers/conversationTitle.d.ts +0 -8
- package/esm/helpers/conversationTitle.js +0 -23
- package/esm/helpers/conversationTitle.js.map +0 -1
- package/esm/helpers/enhanceBubbleCodeBlocks.d.ts +0 -5
- package/esm/helpers/enhanceBubbleCodeBlocks.js +0 -94
- package/esm/helpers/enhanceBubbleCodeBlocks.js.map +0 -1
- package/esm/helpers/highlightMatches.d.ts +0 -2
- package/esm/helpers/highlightMatches.js +0 -49
- package/esm/helpers/highlightMatches.js.map +0 -1
- package/esm/helpers/positionPopover.d.ts +0 -3
- package/esm/helpers/positionPopover.js +0 -17
- package/esm/helpers/positionPopover.js.map +0 -1
- package/esm/helpers/prism.d.ts +0 -16
- package/esm/helpers/prism.js +0 -74
- package/esm/helpers/prism.js.map +0 -1
- package/esm/helpers/reasoning.d.ts +0 -7
- package/esm/helpers/reasoning.js +0 -39
- package/esm/helpers/reasoning.js.map +0 -1
- package/esm/helpers/relativeTime.d.ts +0 -3
- package/esm/helpers/relativeTime.js +0 -50
- package/esm/helpers/relativeTime.js.map +0 -1
- package/esm/helpers/sourcesCount.d.ts +0 -2
- package/esm/helpers/sourcesCount.js +0 -18
- package/esm/helpers/sourcesCount.js.map +0 -1
- package/esm/helpers/tts/muteSpeaker.d.ts +0 -13
- package/esm/helpers/tts/muteSpeaker.js +0 -21
- package/esm/helpers/tts/muteSpeaker.js.map +0 -1
- package/esm/helpers/usePressTooltip.d.ts +0 -18
- package/esm/helpers/usePressTooltip.js +0 -35
- package/esm/helpers/usePressTooltip.js.map +0 -1
- package/esm/icons/FacebookIcon.d.ts +0 -3
- package/esm/icons/FacebookIcon.js +0 -4
- package/esm/icons/FacebookIcon.js.map +0 -1
- package/esm/icons/LinkedinIcon.d.ts +0 -3
- package/esm/icons/LinkedinIcon.js +0 -4
- package/esm/icons/LinkedinIcon.js.map +0 -1
- package/esm/icons/MemoriIcon.d.ts +0 -3
- package/esm/icons/MemoriIcon.js +0 -6
- package/esm/icons/MemoriIcon.js.map +0 -1
- package/esm/icons/TelegramIcon.d.ts +0 -3
- package/esm/icons/TelegramIcon.js +0 -4
- package/esm/icons/TelegramIcon.js.map +0 -1
- package/esm/icons/TwitterIcon.d.ts +0 -3
- package/esm/icons/TwitterIcon.js +0 -4
- package/esm/icons/TwitterIcon.js.map +0 -1
- package/esm/icons/WhatsappIcon.d.ts +0 -3
- package/esm/icons/WhatsappIcon.js +0 -4
- package/esm/icons/WhatsappIcon.js.map +0 -1
- package/esm/icons/artifacts/DocumentIcon.d.ts +0 -3
- package/esm/icons/artifacts/DocumentIcon.js +0 -4
- package/esm/icons/artifacts/DocumentIcon.js.map +0 -1
- package/esm/icons/artifacts/HtmlIcon.d.ts +0 -3
- package/esm/icons/artifacts/HtmlIcon.js +0 -4
- package/esm/icons/artifacts/HtmlIcon.js.map +0 -1
- package/esm/icons/artifacts/JavascriptIcon.d.ts +0 -3
- package/esm/icons/artifacts/JavascriptIcon.js +0 -4
- package/esm/icons/artifacts/JavascriptIcon.js.map +0 -1
- package/esm/icons/artifacts/MarkdownIcon.d.ts +0 -3
- package/esm/icons/artifacts/MarkdownIcon.js +0 -4
- package/esm/icons/artifacts/MarkdownIcon.js.map +0 -1
- package/esm/icons/artifacts/PythonIcon.d.ts +0 -3
- package/esm/icons/artifacts/PythonIcon.js +0 -4
- package/esm/icons/artifacts/PythonIcon.js.map +0 -1
- package/esm/icons/artifacts/SvgIcon.d.ts +0 -3
- package/esm/icons/artifacts/SvgIcon.js +0 -4
- package/esm/icons/artifacts/SvgIcon.js.map +0 -1
- package/esm/icons/artifacts/XmlIcon.d.ts +0 -3
- package/esm/icons/artifacts/XmlIcon.js +0 -4
- package/esm/icons/artifacts/XmlIcon.js.map +0 -1
- package/esm/icons/artifacts/cssIcon.d.ts +0 -3
- package/esm/icons/artifacts/cssIcon.js +0 -4
- package/esm/icons/artifacts/cssIcon.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [8.46.0](https://github.com/memori-ai/memori-react/compare/v8.45.6...v8.46.0) (2026-09-29)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **nats:** avoid re-applying stale dialog state on tab resume ([7336d45](https://github.com/memori-ai/memori-react/commit/7336d4517ca0b9e68d348188b3903005bd0356fc))
|
|
9
|
+
|
|
10
|
+
## [8.45.6](https://github.com/memori-ai/memori-react/compare/v8.45.5...v8.45.6) (2026-09-28)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **speech:** implement speech error handling and session management in TTS and STT ([c607801](https://github.com/memori-ai/memori-react/commit/c6078014b6ba1465a89a11632968b5e4d6c62223))
|
|
16
|
+
|
|
3
17
|
## [8.45.5](https://github.com/memori-ai/memori-react/compare/v8.45.4...v8.45.5) (2026-09-25)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -40,6 +40,7 @@ const error_1 = require("../../helpers/error");
|
|
|
40
40
|
const credits_1 = require("../../helpers/credits");
|
|
41
41
|
const sanitizer_1 = require("../../helpers/sanitizer");
|
|
42
42
|
const useTTS_1 = require("../../helpers/tts/useTTS");
|
|
43
|
+
const speechRequest_1 = require("../../helpers/speech/speechRequest");
|
|
43
44
|
const ChatHistory_1 = tslib_1.__importDefault(require("../ChatHistoryDrawer/ChatHistory"));
|
|
44
45
|
const useSTT_1 = require("../../helpers/stt/useSTT");
|
|
45
46
|
const useNats_1 = require("../../helpers/nats/useNats");
|
|
@@ -86,6 +87,7 @@ function readCorrelationID(response) {
|
|
|
86
87
|
const value = response.correlationID;
|
|
87
88
|
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
88
89
|
}
|
|
90
|
+
const MAX_WAIT_FOR_PREVIOUS_RETRIES = 30;
|
|
89
91
|
const typeMessage = (message, waitForPrevious = true, hidden = false, typingText, useLoaderTextAsMsg = false, hasBatchQueued = false) => {
|
|
90
92
|
const e = new CustomEvent('MemoriTextEntered', {
|
|
91
93
|
detail: {
|
|
@@ -501,7 +503,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
501
503
|
if (response.resultCode === 0 && correlationID) {
|
|
502
504
|
registerPendingEnterText(correlationID, {
|
|
503
505
|
msg,
|
|
504
|
-
stateBeforeRequest:
|
|
506
|
+
stateBeforeRequest: engineStateFingerprintRef.current,
|
|
505
507
|
text,
|
|
506
508
|
media,
|
|
507
509
|
translate,
|
|
@@ -555,7 +557,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
555
557
|
setMemoriTyping(false);
|
|
556
558
|
}
|
|
557
559
|
};
|
|
558
|
-
const translateDialogState = async (state, userLang, msg, avoidPushingMessage = false) => {
|
|
560
|
+
const translateDialogState = async (state, userLang, msg, avoidPushingMessage = false, engineState = state) => {
|
|
559
561
|
var _a, _b, _c, _d, _f, _g;
|
|
560
562
|
const emission = (_a = state === null || state === void 0 ? void 0 : state.emission) !== null && _a !== void 0 ? _a : currentDialogState === null || currentDialogState === void 0 ? void 0 : currentDialogState.emission;
|
|
561
563
|
let translatedState = { ...state };
|
|
@@ -651,7 +653,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
651
653
|
};
|
|
652
654
|
}
|
|
653
655
|
}
|
|
654
|
-
setCurrentDialogState(translatedState);
|
|
656
|
+
setCurrentDialogState(translatedState, engineState);
|
|
655
657
|
if (!avoidPushingMessage && translatedMsg) {
|
|
656
658
|
pushMessage(translatedMsg);
|
|
657
659
|
}
|
|
@@ -722,10 +724,17 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
722
724
|
}
|
|
723
725
|
return voice;
|
|
724
726
|
};
|
|
725
|
-
const [sessionId,
|
|
727
|
+
const [sessionId, setSessionIdState] = (0, react_1.useState)(initialSessionID);
|
|
728
|
+
const sessionIdRef = (0, react_1.useRef)(initialSessionID);
|
|
729
|
+
const setSessionId = (id) => {
|
|
730
|
+
sessionIdRef.current = id;
|
|
731
|
+
setSessionIdState(id);
|
|
732
|
+
};
|
|
726
733
|
const [currentDialogState, _setCurrentDialogState] = (0, react_1.useState)();
|
|
727
|
-
const
|
|
734
|
+
const engineStateFingerprintRef = (0, react_1.useRef)('');
|
|
735
|
+
const setCurrentDialogState = (state, engineState = state) => {
|
|
728
736
|
var _a, _b;
|
|
737
|
+
engineStateFingerprintRef.current = (0, dialogStateCatchUp_1.dialogStateFingerprint)(engineState);
|
|
729
738
|
_setCurrentDialogState(state);
|
|
730
739
|
if (onStateChange) {
|
|
731
740
|
onStateChange(state);
|
|
@@ -1127,20 +1136,44 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1127
1136
|
provider: ttsProvider,
|
|
1128
1137
|
voice: (0, ttsVoiceUtility_1.getTTSVoice)(userLang || ((_b = (_a = memori.culture) === null || _a === void 0 ? void 0 : _a.split('-')) === null || _b === void 0 ? void 0 : _b[0]) || 'EN', ttsProvider, memori.voiceType),
|
|
1129
1138
|
tenant: tenantID,
|
|
1139
|
+
sessionId,
|
|
1140
|
+
sessionIdRef,
|
|
1130
1141
|
region: 'westeurope',
|
|
1131
1142
|
voiceType: memori.voiceType,
|
|
1132
1143
|
layout: selectedLayout,
|
|
1133
1144
|
});
|
|
1134
|
-
}, [
|
|
1145
|
+
}, [
|
|
1146
|
+
ttsProvider,
|
|
1147
|
+
userLang,
|
|
1148
|
+
memori.culture,
|
|
1149
|
+
memori.voiceType,
|
|
1150
|
+
selectedLayout,
|
|
1151
|
+
tenantID,
|
|
1152
|
+
sessionId,
|
|
1153
|
+
sessionIdRef,
|
|
1154
|
+
]);
|
|
1135
1155
|
const sttConfig = (0, react_1.useMemo)(() => ({
|
|
1136
1156
|
provider: ttsProvider,
|
|
1137
1157
|
language: getCultureCodeByLanguage(userLang),
|
|
1138
1158
|
tenant: tenantID,
|
|
1139
|
-
|
|
1159
|
+
sessionId,
|
|
1160
|
+
sessionIdRef,
|
|
1161
|
+
}), [ttsProvider, userLang, tenantID, sessionId, sessionIdRef]);
|
|
1162
|
+
const reportSpeechError = (0, react_1.useCallback)((error) => {
|
|
1163
|
+
const key = (0, speechRequest_1.speechErrorI18nKey)(error);
|
|
1164
|
+
const message = key ? String(t(key)) : error.message;
|
|
1165
|
+
if (error instanceof speechRequest_1.SpeechRequestError &&
|
|
1166
|
+
error.code === 'rate_limited') {
|
|
1167
|
+
(0, react_hot_toast_1.default)(message);
|
|
1168
|
+
return;
|
|
1169
|
+
}
|
|
1170
|
+
react_hot_toast_1.default.error(message);
|
|
1171
|
+
}, [t]);
|
|
1140
1172
|
const { speak: ttsSpeak, stop: ttsStop, isPlaying: isPlayingAudio, speakerMuted, toggleMute, hasUserActivatedSpeak, setHasUserActivatedSpeak, } = (0, useTTS_1.useTTS)(ttsConfig, {
|
|
1141
1173
|
apiUrl: `${baseUrl}/api/tts`,
|
|
1142
1174
|
continuousSpeech: continuousSpeech,
|
|
1143
1175
|
preview: preview,
|
|
1176
|
+
onError: reportSpeechError,
|
|
1144
1177
|
}, autoStart, defaultEnableAudio, (_w = defaultSpeakerActive !== null && defaultSpeakerActive !== void 0 ? defaultSpeakerActive : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.defaultSpeakerActive) !== null && _w !== void 0 ? _w : true);
|
|
1145
1178
|
const shouldPlayAudio = (text) => {
|
|
1146
1179
|
const currentSpeakerMuted = (0, configuration_1.getLocalConfig)('muteSpeaker', !defaultEnableAudio);
|
|
@@ -1166,6 +1199,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1166
1199
|
};
|
|
1167
1200
|
const { isListening, startRecording, stopRecording, } = (0, useSTT_1.useSTT)(sttConfig, processSpeechAndSendMessage, {
|
|
1168
1201
|
apiUrl: `${baseUrl}/api/stt`,
|
|
1202
|
+
onError: reportSpeechError,
|
|
1169
1203
|
}, defaultEnableAudio);
|
|
1170
1204
|
const handleSpeak = async (text) => {
|
|
1171
1205
|
if (!shouldPlayAudio(text)) {
|
|
@@ -1255,8 +1289,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1255
1289
|
if (userLang.toLowerCase() !== language.toLowerCase() &&
|
|
1256
1290
|
emission &&
|
|
1257
1291
|
isMultilanguageEnabled) {
|
|
1258
|
-
currentState
|
|
1259
|
-
translateDialogState(currentState, userLang, msg).then(ts => {
|
|
1292
|
+
translateDialogState({ ...currentState, emission }, userLang, msg, false, currentState).then(ts => {
|
|
1260
1293
|
const text = ts.translatedEmission || ts.emission;
|
|
1261
1294
|
if (text && shouldPlayAudio(text)) {
|
|
1262
1295
|
handleSpeak(text);
|
|
@@ -1267,7 +1300,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1267
1300
|
setCurrentDialogState({
|
|
1268
1301
|
...currentState,
|
|
1269
1302
|
emission,
|
|
1270
|
-
});
|
|
1303
|
+
}, currentState);
|
|
1271
1304
|
if (emission) {
|
|
1272
1305
|
pushMessage({
|
|
1273
1306
|
text: emission,
|
|
@@ -1390,7 +1423,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1390
1423
|
reject(new Error('NATS enter-text response timeout'));
|
|
1391
1424
|
}, timeoutMs);
|
|
1392
1425
|
registerPendingEnterText(correlationID, {
|
|
1393
|
-
stateBeforeRequest:
|
|
1426
|
+
stateBeforeRequest: engineStateFingerprintRef.current,
|
|
1394
1427
|
waitForResponse: {
|
|
1395
1428
|
resolve: event => {
|
|
1396
1429
|
clearTimeout(timeoutId);
|
|
@@ -1403,7 +1436,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1403
1436
|
timeoutId,
|
|
1404
1437
|
},
|
|
1405
1438
|
});
|
|
1406
|
-
}), [registerPendingEnterText, clearEnterTextPending
|
|
1439
|
+
}), [registerPendingEnterText, clearEnterTextPending]);
|
|
1407
1440
|
const catchUpPendingEnterText = (0, react_1.useCallback)(async () => {
|
|
1408
1441
|
if (!sessionId || pendingEnterTextRef.current.size === 0)
|
|
1409
1442
|
return;
|
|
@@ -1424,7 +1457,9 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1424
1457
|
});
|
|
1425
1458
|
return;
|
|
1426
1459
|
}
|
|
1427
|
-
if (!(0, dialogStateCatchUp_1.isEnterTextCatchUpReady)(pending.stateBeforeRequest, currentState)
|
|
1460
|
+
if (!(0, dialogStateCatchUp_1.isEnterTextCatchUpReady)(pending.stateBeforeRequest, currentState) ||
|
|
1461
|
+
(0, dialogStateCatchUp_1.dialogStateFingerprint)(currentState) ===
|
|
1462
|
+
engineStateFingerprintRef.current) {
|
|
1428
1463
|
console.info('[NATS] catch-up: pending turn has not completed yet');
|
|
1429
1464
|
return;
|
|
1430
1465
|
}
|
|
@@ -1619,7 +1654,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1619
1654
|
ttsStop();
|
|
1620
1655
|
sendMessage(text, undefined, undefined, false, translatedText);
|
|
1621
1656
|
};
|
|
1622
|
-
const memoriTextEnteredHandler = (
|
|
1657
|
+
const memoriTextEnteredHandler = (e, retries = 0) => {
|
|
1623
1658
|
if (disableTextEnteredEvents) {
|
|
1624
1659
|
return;
|
|
1625
1660
|
}
|
|
@@ -1627,9 +1662,10 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1627
1662
|
if (text) {
|
|
1628
1663
|
if (waitForPrevious &&
|
|
1629
1664
|
!speakerMuted &&
|
|
1630
|
-
(memoriSpeaking ||
|
|
1665
|
+
(memoriSpeaking || pendingEnterTextRef.current.size > 0) &&
|
|
1666
|
+
retries < MAX_WAIT_FOR_PREVIOUS_RETRIES) {
|
|
1631
1667
|
setTimeout(() => {
|
|
1632
|
-
|
|
1668
|
+
memoriTextEnteredHandlerRef.current(e, retries + 1);
|
|
1633
1669
|
}, 1000);
|
|
1634
1670
|
}
|
|
1635
1671
|
else {
|
|
@@ -1637,25 +1673,18 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1637
1673
|
sendMessage(text, undefined, undefined, undefined, undefined, hidden, typingText, useLoaderTextAsMsg, hasBatchQueued);
|
|
1638
1674
|
}
|
|
1639
1675
|
}
|
|
1640
|
-
}
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
memoriTyping,
|
|
1644
|
-
userLang,
|
|
1645
|
-
disableTextEnteredEvents,
|
|
1646
|
-
speakerMuted,
|
|
1647
|
-
]);
|
|
1676
|
+
};
|
|
1677
|
+
const memoriTextEnteredHandlerRef = (0, react_1.useRef)(memoriTextEnteredHandler);
|
|
1678
|
+
memoriTextEnteredHandlerRef.current = memoriTextEnteredHandler;
|
|
1648
1679
|
(0, react_1.useEffect)(() => {
|
|
1649
|
-
if (
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
document.removeEventListener('MemoriTextEntered', memoriTextEnteredHandler);
|
|
1654
|
-
}
|
|
1680
|
+
if (disableTextEnteredEvents)
|
|
1681
|
+
return;
|
|
1682
|
+
const listener = (e) => memoriTextEnteredHandlerRef.current(e);
|
|
1683
|
+
document.addEventListener('MemoriTextEntered', listener);
|
|
1655
1684
|
return () => {
|
|
1656
|
-
document.removeEventListener('MemoriTextEntered',
|
|
1685
|
+
document.removeEventListener('MemoriTextEntered', listener);
|
|
1657
1686
|
};
|
|
1658
|
-
}, [
|
|
1687
|
+
}, [disableTextEnteredEvents]);
|
|
1659
1688
|
const onClickStart = (0, react_1.useCallback)(async (session, initialSessionExpired = false, chatLog, targetSessionID) => {
|
|
1660
1689
|
var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
1661
1690
|
const sessionID = chatLog ? undefined : (session === null || session === void 0 ? void 0 : session.sessionID) || sessionId;
|