@memori.ai/memori-react 8.43.0 → 8.45.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.
Files changed (185) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +1 -1
  3. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +1 -1
  4. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +1 -0
  5. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  6. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +204 -59
  7. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  8. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  9. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js +76 -16
  10. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  11. package/dist/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  12. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js +18 -13
  13. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  14. package/dist/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  15. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js +117 -0
  16. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  17. package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -0
  18. package/dist/components/MemoriWidget/MemoriWidget.js +59 -1
  19. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  20. package/dist/helpers/message.js +3 -0
  21. package/dist/helpers/message.js.map +1 -1
  22. package/dist/helpers/nats/getNatsConfig.d.ts +1 -1
  23. package/dist/helpers/nats/getNatsConfig.js +2 -2
  24. package/dist/helpers/nats/getNatsConfig.js.map +1 -1
  25. package/dist/helpers/nats/useNats.d.ts +2 -1
  26. package/dist/helpers/nats/useNats.js +87 -20
  27. package/dist/helpers/nats/useNats.js.map +1 -1
  28. package/dist/helpers/nats/useNatsSession.d.ts +6 -1
  29. package/dist/helpers/nats/useNatsSession.js +49 -8
  30. package/dist/helpers/nats/useNatsSession.js.map +1 -1
  31. package/dist/locales/de.json +3 -0
  32. package/dist/locales/en.json +3 -0
  33. package/dist/locales/es.json +3 -0
  34. package/dist/locales/fr.json +3 -0
  35. package/dist/locales/it.json +3 -0
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.js +1 -1
  38. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +1 -1
  39. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +1 -1
  40. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +1 -0
  41. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  42. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +205 -60
  43. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  44. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  45. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js +77 -17
  46. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  47. package/esm/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  48. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js +18 -13
  49. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  50. package/esm/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  51. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js +112 -0
  52. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  53. package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -0
  54. package/esm/components/MemoriWidget/MemoriWidget.js +57 -1
  55. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  56. package/esm/helpers/message.js +3 -0
  57. package/esm/helpers/message.js.map +1 -1
  58. package/esm/helpers/nats/getNatsConfig.d.ts +1 -1
  59. package/esm/helpers/nats/getNatsConfig.js +2 -2
  60. package/esm/helpers/nats/getNatsConfig.js.map +1 -1
  61. package/esm/helpers/nats/useNats.d.ts +2 -1
  62. package/esm/helpers/nats/useNats.js +87 -20
  63. package/esm/helpers/nats/useNats.js.map +1 -1
  64. package/esm/helpers/nats/useNatsSession.d.ts +6 -1
  65. package/esm/helpers/nats/useNatsSession.js +48 -8
  66. package/esm/helpers/nats/useNatsSession.js.map +1 -1
  67. package/esm/locales/de.json +3 -0
  68. package/esm/locales/en.json +3 -0
  69. package/esm/locales/es.json +3 -0
  70. package/esm/locales/fr.json +3 -0
  71. package/esm/locales/it.json +3 -0
  72. package/esm/version.d.ts +1 -1
  73. package/esm/version.js +1 -1
  74. package/package.json +1 -1
  75. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +1 -1
  76. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +1 -0
  77. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +324 -133
  78. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +122 -24
  79. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +20 -1
  80. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +1 -0
  81. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +19 -13
  82. package/src/components/MemoriArtifactSystem/utils/applyEdits.test.ts +85 -0
  83. package/src/components/MemoriArtifactSystem/utils/applyEdits.ts +173 -0
  84. package/src/components/MemoriWidget/MemoriWidget.tsx +65 -1
  85. package/src/helpers/message.ts +15 -0
  86. package/src/helpers/nats/getNatsConfig.ts +8 -3
  87. package/src/helpers/nats/useNats.test.tsx +81 -0
  88. package/src/helpers/nats/useNats.ts +109 -29
  89. package/src/helpers/nats/useNatsSession.test.ts +16 -0
  90. package/src/helpers/nats/useNatsSession.ts +79 -13
  91. package/src/locales/de.json +3 -0
  92. package/src/locales/en.json +3 -0
  93. package/src/locales/es.json +3 -0
  94. package/src/locales/fr.json +3 -0
  95. package/src/locales/it.json +3 -0
  96. package/src/version.ts +1 -1
  97. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -372
  98. package/dist/components/DrawerFooter/DrawerFooter.css +0 -62
  99. package/dist/components/IconButton/IconButton.css +0 -144
  100. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +0 -459
  101. package/dist/components/PositionPopover/PositionPopover.css +0 -219
  102. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +0 -806
  103. package/dist/components/layouts/fullpage.css +0 -522
  104. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -372
  105. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -36
  106. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -113
  107. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  108. package/esm/components/DrawerFooter/DrawerFooter.css +0 -62
  109. package/esm/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  110. package/esm/components/DrawerFooter/DrawerFooter.js +0 -8
  111. package/esm/components/DrawerFooter/DrawerFooter.js.map +0 -1
  112. package/esm/components/IconButton/IconButton.css +0 -144
  113. package/esm/components/IconButton/IconButton.d.ts +0 -9
  114. package/esm/components/IconButton/IconButton.js +0 -33
  115. package/esm/components/IconButton/IconButton.js.map +0 -1
  116. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +0 -459
  117. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
  118. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +0 -291
  119. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  120. package/esm/components/PositionPopover/PositionPopover.css +0 -219
  121. package/esm/components/PositionPopover/PositionPopover.d.ts +0 -22
  122. package/esm/components/PositionPopover/PositionPopover.js +0 -190
  123. package/esm/components/PositionPopover/PositionPopover.js.map +0 -1
  124. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  125. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -61
  126. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  127. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +0 -806
  128. package/esm/components/layouts/fullpage.css +0 -522
  129. package/esm/context/widgetSurfaceContext.d.ts +0 -3
  130. package/esm/context/widgetSurfaceContext.js +0 -7
  131. package/esm/context/widgetSurfaceContext.js.map +0 -1
  132. package/esm/helpers/positionPopover.d.ts +0 -1
  133. package/esm/helpers/positionPopover.js +0 -4
  134. package/esm/helpers/positionPopover.js.map +0 -1
  135. package/esm/helpers/tts/muteSpeaker.d.ts +0 -13
  136. package/esm/helpers/tts/muteSpeaker.js +0 -21
  137. package/esm/helpers/tts/muteSpeaker.js.map +0 -1
  138. package/esm/helpers/usePressTooltip.d.ts +0 -13
  139. package/esm/helpers/usePressTooltip.js +0 -20
  140. package/esm/helpers/usePressTooltip.js.map +0 -1
  141. package/esm/icons/FacebookIcon.d.ts +0 -3
  142. package/esm/icons/FacebookIcon.js +0 -4
  143. package/esm/icons/FacebookIcon.js.map +0 -1
  144. package/esm/icons/LinkedinIcon.d.ts +0 -3
  145. package/esm/icons/LinkedinIcon.js +0 -4
  146. package/esm/icons/LinkedinIcon.js.map +0 -1
  147. package/esm/icons/MemoriIcon.d.ts +0 -3
  148. package/esm/icons/MemoriIcon.js +0 -6
  149. package/esm/icons/MemoriIcon.js.map +0 -1
  150. package/esm/icons/TelegramIcon.d.ts +0 -3
  151. package/esm/icons/TelegramIcon.js +0 -4
  152. package/esm/icons/TelegramIcon.js.map +0 -1
  153. package/esm/icons/TwitterIcon.d.ts +0 -3
  154. package/esm/icons/TwitterIcon.js +0 -4
  155. package/esm/icons/TwitterIcon.js.map +0 -1
  156. package/esm/icons/WhatsappIcon.d.ts +0 -3
  157. package/esm/icons/WhatsappIcon.js +0 -4
  158. package/esm/icons/WhatsappIcon.js.map +0 -1
  159. package/esm/icons/artifacts/DocumentIcon.d.ts +0 -3
  160. package/esm/icons/artifacts/DocumentIcon.js +0 -4
  161. package/esm/icons/artifacts/DocumentIcon.js.map +0 -1
  162. package/esm/icons/artifacts/HtmlIcon.d.ts +0 -3
  163. package/esm/icons/artifacts/HtmlIcon.js +0 -4
  164. package/esm/icons/artifacts/HtmlIcon.js.map +0 -1
  165. package/esm/icons/artifacts/JavascriptIcon.d.ts +0 -3
  166. package/esm/icons/artifacts/JavascriptIcon.js +0 -4
  167. package/esm/icons/artifacts/JavascriptIcon.js.map +0 -1
  168. package/esm/icons/artifacts/MarkdownIcon.d.ts +0 -3
  169. package/esm/icons/artifacts/MarkdownIcon.js +0 -4
  170. package/esm/icons/artifacts/MarkdownIcon.js.map +0 -1
  171. package/esm/icons/artifacts/PythonIcon.d.ts +0 -3
  172. package/esm/icons/artifacts/PythonIcon.js +0 -4
  173. package/esm/icons/artifacts/PythonIcon.js.map +0 -1
  174. package/esm/icons/artifacts/SvgIcon.d.ts +0 -3
  175. package/esm/icons/artifacts/SvgIcon.js +0 -4
  176. package/esm/icons/artifacts/SvgIcon.js.map +0 -1
  177. package/esm/icons/artifacts/XmlIcon.d.ts +0 -3
  178. package/esm/icons/artifacts/XmlIcon.js +0 -4
  179. package/esm/icons/artifacts/XmlIcon.js.map +0 -1
  180. package/esm/icons/artifacts/cssIcon.d.ts +0 -3
  181. package/esm/icons/artifacts/cssIcon.js +0 -4
  182. package/esm/icons/artifacts/cssIcon.js.map +0 -1
  183. package/esm/testUtils.d.ts +0 -5
  184. package/esm/testUtils.js +0 -15
  185. package/esm/testUtils.js.map +0 -1
@@ -50,7 +50,7 @@ export const initMemoriArtifactAPI = () => {
50
50
  };
51
51
  initMemoriArtifactAPI();
52
52
  export const ArtifactAPIBridge = ({ pushMessage, }) => {
53
- const { openArtifact, closeArtifact, toggleFullscreen, state } = useArtifact();
53
+ const { openArtifact, closeArtifact, toggleFullscreen, state, registerArtifact } = useArtifact();
54
54
  const apiRef = useRef(null);
55
55
  useEffect(() => {
56
56
  if (typeof window !== 'undefined') {
@@ -61,10 +61,12 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
61
61
  },
62
62
  createAndOpenArtifact: (content, mimeType = 'html', title) => {
63
63
  const autoTitle = title || getTitleFromMimeType(mimeType);
64
+ const artifactId = `api-${Date.now()}-${Math.random()
65
+ .toString(36)
66
+ .substr(2, 9)}`;
64
67
  const artifact = {
65
- id: `artifact-${Date.now()}-${Math.random()
66
- .toString(36)
67
- .substr(2, 9)}`,
68
+ id: `artifact-ui-${artifactId}`,
69
+ artifactId,
68
70
  content,
69
71
  mimeType,
70
72
  title: autoTitle,
@@ -72,8 +74,8 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
72
74
  size: content.length,
73
75
  };
74
76
  let messageText = content;
75
- if (!messageText.includes('<output class="memori-artifact">')) {
76
- messageText = `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${autoTitle}">${content}</output>`;
77
+ if (!messageText.includes('class="memori-artifact"')) {
78
+ messageText = `<output class="memori-artifact" data-action="create" data-artifact-id="${artifactId}" data-mimetype="${mimeType}" data-title="${autoTitle}">${content}</output>`;
77
79
  }
78
80
  pushMessage({
79
81
  text: messageText,
@@ -91,6 +93,7 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
91
93
  placeLongitude: undefined,
92
94
  placeUncertaintyKm: undefined,
93
95
  });
96
+ registerArtifact(artifact);
94
97
  openArtifact(artifact);
95
98
  },
96
99
  createFromOutputElement: (outputElement) => {
@@ -98,12 +101,13 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
98
101
  const mimeType = outputElement.getAttribute('data-mimetype') || 'html';
99
102
  const title = outputElement.getAttribute('data-title') ||
100
103
  getTitleFromMimeType(mimeType);
104
+ const artifactId = outputElement.getAttribute('data-artifact-id') ||
105
+ `api-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
101
106
  outputElement.style.display = 'none';
102
107
  outputElement.setAttribute('data-memori-processed', 'true');
103
108
  const artifact = {
104
- id: `artifact-${Date.now()}-${Math.random()
105
- .toString(36)
106
- .substr(2, 9)}`,
109
+ id: `artifact-ui-${artifactId}`,
110
+ artifactId,
107
111
  content,
108
112
  mimeType,
109
113
  title,
@@ -111,8 +115,8 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
111
115
  size: content.length,
112
116
  };
113
117
  let messageText = content;
114
- if (!messageText.includes('<output class="memori-artifact">')) {
115
- messageText = `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${title}">${content}</output>`;
118
+ if (!messageText.includes('class="memori-artifact"')) {
119
+ messageText = `<output class="memori-artifact" data-action="create" data-artifact-id="${artifactId}" data-mimetype="${mimeType}" data-title="${title}">${content}</output>`;
116
120
  }
117
121
  pushMessage({
118
122
  text: messageText,
@@ -130,8 +134,9 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
130
134
  placeLongitude: undefined,
131
135
  placeUncertaintyKm: undefined,
132
136
  });
137
+ registerArtifact(artifact);
133
138
  openArtifact(artifact);
134
- return artifact.id;
139
+ return artifact.artifactId;
135
140
  },
136
141
  closeArtifact: () => {
137
142
  closeArtifact();
@@ -192,7 +197,7 @@ export const ArtifactAPIBridge = ({ pushMessage, }) => {
192
197
  delete window.MemoriArtifactAPI;
193
198
  }
194
199
  };
195
- }, [openArtifact, closeArtifact, toggleFullscreen, state, pushMessage]);
200
+ }, [openArtifact, closeArtifact, toggleFullscreen, state, pushMessage, registerArtifact]);
196
201
  return null;
197
202
  };
198
203
  function getTitleFromMimeType(mimeType) {
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactAPI.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArtifactAPI.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ArtifactEdit } from '../types/artifact.types';
2
+ export interface ApplyEditsResult {
3
+ content: string;
4
+ failedEdits: ArtifactEdit[];
5
+ appliedCount: number;
6
+ }
7
+ export declare const applyEdits: (content: string, edits: ArtifactEdit[]) => ApplyEditsResult;
8
+ export declare const parseEdits: (body: string) => ArtifactEdit[] | null;
@@ -0,0 +1,112 @@
1
+ const normalizeWhitespace = (s) => s.replace(/\s+/g, ' ');
2
+ const findWhitespaceTolerant = (haystack, needle) => {
3
+ const normNeedle = normalizeWhitespace(needle.trim());
4
+ if (!normNeedle)
5
+ return null;
6
+ const normChars = [];
7
+ const normToOrig = [];
8
+ let lastWasSpace = false;
9
+ for (let i = 0; i < haystack.length; i++) {
10
+ const ch = haystack[i];
11
+ if (/\s/.test(ch)) {
12
+ if (!lastWasSpace && normChars.length > 0) {
13
+ normChars.push(' ');
14
+ normToOrig.push(i);
15
+ lastWasSpace = true;
16
+ }
17
+ }
18
+ else {
19
+ normChars.push(ch);
20
+ normToOrig.push(i);
21
+ lastWasSpace = false;
22
+ }
23
+ }
24
+ while (normChars.length > 0 && normChars[normChars.length - 1] === ' ') {
25
+ normChars.pop();
26
+ normToOrig.pop();
27
+ }
28
+ const normHaystack = normChars.join('');
29
+ const idx = normHaystack.indexOf(normNeedle);
30
+ if (idx === -1)
31
+ return null;
32
+ const startOrig = normToOrig[idx];
33
+ const endNormIdx = idx + normNeedle.length - 1;
34
+ const lastOrig = normToOrig[endNormIdx];
35
+ let endOrig = lastOrig + 1;
36
+ while (endOrig < haystack.length && /\s/.test(haystack[endOrig])) {
37
+ break;
38
+ }
39
+ return [startOrig, endOrig];
40
+ };
41
+ export const applyEdits = (content, edits) => {
42
+ let result = content;
43
+ const failedEdits = [];
44
+ let appliedCount = 0;
45
+ for (const edit of edits) {
46
+ if (!edit || typeof edit.old !== 'string' || typeof edit.new !== 'string') {
47
+ failedEdits.push(edit);
48
+ continue;
49
+ }
50
+ const exactIdx = result.indexOf(edit.old);
51
+ if (exactIdx !== -1) {
52
+ result =
53
+ result.slice(0, exactIdx) +
54
+ edit.new +
55
+ result.slice(exactIdx + edit.old.length);
56
+ appliedCount++;
57
+ continue;
58
+ }
59
+ const tolerant = findWhitespaceTolerant(result, edit.old);
60
+ if (tolerant) {
61
+ const [start, end] = tolerant;
62
+ result = result.slice(0, start) + edit.new + result.slice(end);
63
+ appliedCount++;
64
+ continue;
65
+ }
66
+ failedEdits.push(edit);
67
+ }
68
+ return { content: result, failedEdits, appliedCount };
69
+ };
70
+ const HTML_ENTITIES = {
71
+ '&quot;': '"',
72
+ '&#34;': '"',
73
+ '&apos;': "'",
74
+ '&#39;': "'",
75
+ '&amp;': '&',
76
+ '&lt;': '<',
77
+ '&gt;': '>',
78
+ };
79
+ const unescapeHtmlEntities = (s) => s.replace(/&quot;|&#34;|&apos;|&#39;|&amp;|&lt;|&gt;/g, m => { var _a; return (_a = HTML_ENTITIES[m]) !== null && _a !== void 0 ? _a : m; });
80
+ const isValidEditsArray = (value) => {
81
+ if (!Array.isArray(value))
82
+ return false;
83
+ return value.every(item => item &&
84
+ typeof item === 'object' &&
85
+ typeof item.old === 'string' &&
86
+ typeof item.new === 'string');
87
+ };
88
+ export const parseEdits = (body) => {
89
+ if (!body || typeof body !== 'string')
90
+ return null;
91
+ const trimmed = body.trim();
92
+ if (!trimmed)
93
+ return null;
94
+ const tryParse = (raw) => {
95
+ try {
96
+ const parsed = JSON.parse(raw);
97
+ return isValidEditsArray(parsed) ? parsed : null;
98
+ }
99
+ catch (_a) {
100
+ return null;
101
+ }
102
+ };
103
+ const direct = tryParse(trimmed);
104
+ if (direct)
105
+ return direct;
106
+ const unescaped = unescapeHtmlEntities(trimmed);
107
+ if (unescaped !== trimmed) {
108
+ return tryParse(unescaped);
109
+ }
110
+ return null;
111
+ };
112
+ //# sourceMappingURL=applyEdits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyEdits.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/utils/applyEdits.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import StartPanel, { Props as StartPanelProps } from '../StartPanel/StartPanel';
7
7
  import Avatar, { Props as AvatarProps } from '../Avatar/Avatar';
8
8
  import Header, { Props as HeaderProps } from '../Header/Header';
9
9
  declare const getMemoriState: (integrationId?: string | undefined) => object | null;
10
+ export declare function dialogStateFingerprint(state: DialogState | undefined): string;
10
11
  type MemoriTextEnteredEvent = CustomEvent<{
11
12
  text: string;
12
13
  waitForPrevious?: boolean;
@@ -78,6 +78,21 @@ function readCorrelationID(response) {
78
78
  const value = response.correlationID;
79
79
  return typeof value === 'string' && value.length > 0 ? value : undefined;
80
80
  }
81
+ export function dialogStateFingerprint(state) {
82
+ if (!state)
83
+ return '';
84
+ return JSON.stringify({
85
+ state: state.state,
86
+ previousState: state.previousState,
87
+ emission: state.emission,
88
+ emitter: state.emitter,
89
+ lastMatchedMemoryID: state.lastMatchedMemoryID,
90
+ currentDate: state.currentDate,
91
+ currentMemoryID: state.currentMemoryID,
92
+ contextVars: state.contextVars,
93
+ emittedMedia: state.emittedMedia,
94
+ });
95
+ }
81
96
  const typeMessage = (message, waitForPrevious = true, hidden = false, typingText, useLoaderTextAsMsg = false, hasBatchQueued = false) => {
82
97
  const e = new CustomEvent('MemoriTextEntered', {
83
98
  detail: {
@@ -492,6 +507,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
492
507
  if (response.resultCode === 0 && correlationID) {
493
508
  registerPendingEnterText(correlationID, {
494
509
  msg,
510
+ stateBeforeRequest: dialogStateFingerprint(currentDialogState),
495
511
  text,
496
512
  media,
497
513
  translate,
@@ -1380,6 +1396,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1380
1396
  reject(new Error('NATS enter-text response timeout'));
1381
1397
  }, timeoutMs);
1382
1398
  registerPendingEnterText(correlationID, {
1399
+ stateBeforeRequest: dialogStateFingerprint(currentDialogState),
1383
1400
  waitForResponse: {
1384
1401
  resolve: event => {
1385
1402
  clearTimeout(timeoutId);
@@ -1392,7 +1409,45 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1392
1409
  timeoutId,
1393
1410
  },
1394
1411
  });
1395
- }), [registerPendingEnterText, clearEnterTextPending]);
1412
+ }), [registerPendingEnterText, clearEnterTextPending, currentDialogState]);
1413
+ const catchUpPendingEnterText = useCallback(async () => {
1414
+ if (!sessionId || pendingEnterTextRef.current.size === 0)
1415
+ return;
1416
+ const latest = Array.from(pendingEnterTextRef.current.entries()).pop();
1417
+ if (!latest)
1418
+ return;
1419
+ const [correlationID, pending] = latest;
1420
+ try {
1421
+ const { currentState, resultCode, resultMessage, requestID } = await getSession(sessionId);
1422
+ if (resultCode !== 0 || !currentState) {
1423
+ deliverEnterTextNatsResponse(correlationID, {
1424
+ eventType: 'dialog_text_entered_response',
1425
+ correlationID,
1426
+ requestID,
1427
+ resultCode,
1428
+ resultMessage,
1429
+ currentState,
1430
+ });
1431
+ return;
1432
+ }
1433
+ if (dialogStateFingerprint(currentState) === pending.stateBeforeRequest) {
1434
+ console.info('[NATS] catch-up: pending turn has not completed yet');
1435
+ return;
1436
+ }
1437
+ console.info('[NATS] catch-up: applying current engine session state');
1438
+ deliverEnterTextNatsResponse(correlationID, {
1439
+ eventType: 'dialog_text_entered_response',
1440
+ correlationID,
1441
+ requestID,
1442
+ resultCode,
1443
+ resultMessage,
1444
+ currentState,
1445
+ });
1446
+ }
1447
+ catch (error) {
1448
+ logWidgetError('NATS catch-up failed', error);
1449
+ }
1450
+ }, [sessionId, deliverEnterTextNatsResponse]);
1396
1451
  useNats({
1397
1452
  baseUrl,
1398
1453
  sessionId,
@@ -1412,6 +1467,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1412
1467
  deliverEnterTextNatsResponse(correlationID, event);
1413
1468
  }, [deliverEnterTextNatsResponse]),
1414
1469
  onError: deliverEnterTextNatsError,
1470
+ onCatchUp: catchUpPendingEnterText,
1415
1471
  });
1416
1472
  const focusChatInput = () => {
1417
1473
  let textarea = document.querySelector('#chat-fieldset textarea');