@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
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useArtifact = exports.ArtifactProvider = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
+ const applyEdits_1 = require("../utils/applyEdits");
6
7
  const ArtifactContext = (0, react_1.createContext)(null);
7
8
  const ArtifactProvider = ({ children }) => {
8
9
  const [state, setState] = (0, react_1.useState)({
@@ -10,24 +11,21 @@ const ArtifactProvider = ({ children }) => {
10
11
  isDrawerOpen: false,
11
12
  isFullscreen: false,
12
13
  });
14
+ const registryRef = (0, react_1.useRef)({});
13
15
  const openArtifact = (0, react_1.useCallback)((artifact) => {
14
- setState(() => {
15
- return {
16
- currentArtifact: artifact,
17
- isDrawerOpen: true,
18
- isFullscreen: false,
19
- };
20
- });
16
+ setState(() => ({
17
+ currentArtifact: artifact,
18
+ isDrawerOpen: true,
19
+ isFullscreen: false,
20
+ }));
21
21
  }, []);
22
22
  const closeArtifact = (0, react_1.useCallback)(() => {
23
- setState(prev => {
24
- return {
25
- ...prev,
26
- currentArtifact: null,
27
- isDrawerOpen: false,
28
- isFullscreen: false,
29
- };
30
- });
23
+ setState(prev => ({
24
+ ...prev,
25
+ currentArtifact: null,
26
+ isDrawerOpen: false,
27
+ isFullscreen: false,
28
+ }));
31
29
  }, []);
32
30
  const toggleFullscreen = (0, react_1.useCallback)(() => {
33
31
  setState(prev => ({
@@ -35,12 +33,74 @@ const ArtifactProvider = ({ children }) => {
35
33
  isFullscreen: !prev.isFullscreen,
36
34
  }));
37
35
  }, []);
36
+ const registerArtifact = (0, react_1.useCallback)((artifact) => {
37
+ if (!(artifact === null || artifact === void 0 ? void 0 : artifact.artifactId))
38
+ return;
39
+ registryRef.current[artifact.artifactId] = artifact;
40
+ }, []);
41
+ const applyArtifactUpdate = (0, react_1.useCallback)((artifactId, edits) => {
42
+ const current = registryRef.current[artifactId];
43
+ if (!current) {
44
+ return {
45
+ success: false,
46
+ failedEdits: edits,
47
+ updatedArtifact: null,
48
+ failureReason: 'not-found',
49
+ };
50
+ }
51
+ const { content, failedEdits, appliedCount } = (0, applyEdits_1.applyEdits)(current.content, edits);
52
+ if (appliedCount === 0) {
53
+ return {
54
+ success: false,
55
+ failedEdits,
56
+ updatedArtifact: null,
57
+ failureReason: 'no-match',
58
+ };
59
+ }
60
+ const updatedArtifact = {
61
+ id: `artifact-ui-${artifactId}-${Date.now()}-${Math.random()
62
+ .toString(36)
63
+ .slice(2, 8)}`,
64
+ artifactId,
65
+ content,
66
+ mimeType: current.mimeType,
67
+ title: current.title,
68
+ timestamp: new Date(),
69
+ size: content.length,
70
+ };
71
+ registryRef.current[artifactId] = updatedArtifact;
72
+ setState(prev => {
73
+ var _a;
74
+ if (prev.isDrawerOpen &&
75
+ ((_a = prev.currentArtifact) === null || _a === void 0 ? void 0 : _a.artifactId) === artifactId) {
76
+ return {
77
+ ...prev,
78
+ currentArtifact: updatedArtifact,
79
+ };
80
+ }
81
+ return prev;
82
+ });
83
+ return {
84
+ success: failedEdits.length === 0,
85
+ failedEdits,
86
+ updatedArtifact,
87
+ };
88
+ }, []);
38
89
  const contextValue = (0, react_1.useMemo)(() => ({
39
90
  state,
40
91
  openArtifact,
41
92
  closeArtifact,
42
93
  toggleFullscreen,
43
- }), [state, openArtifact, closeArtifact, toggleFullscreen]);
94
+ registerArtifact,
95
+ applyArtifactUpdate,
96
+ }), [
97
+ state,
98
+ openArtifact,
99
+ closeArtifact,
100
+ toggleFullscreen,
101
+ registerArtifact,
102
+ applyArtifactUpdate,
103
+ ]);
44
104
  return ((0, jsx_runtime_1.jsx)(ArtifactContext.Provider, { value: contextValue, children: children }));
45
105
  };
46
106
  exports.ArtifactProvider = ArtifactProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactContext.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/context/ArtifactContext.tsx"],"names":[],"mappings":";;;;AAAA,iCAAoG;AAUpG,MAAM,eAAe,GAAG,IAAA,qBAAa,EAA6B,IAAI,CAAC,CAAC;AAEjE,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAA2B,EAAE,EAAE;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAsB;QACtD,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,CAAC,QAAsB,EAAE,EAAE;QAC1D,QAAQ,CAAC,GAAG,EAAE;YACZ,OAAO;gBACL,eAAe,EAAE,QAAQ;gBACzB,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAEd,OAAO;gBACL,GAAG,IAAI;gBACP,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,YAAY,EAAE,CAAC,IAAI,CAAC,YAAY;SACjC,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC;QAClC,KAAK;QACL,YAAY;QACZ,aAAa;QACb,gBAAgB;KACjB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5D,OAAO,CACL,uBAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1C,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,gBAAgB,oBAgD3B;AAEK,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB"}
1
+ {"version":3,"file":"ArtifactContext.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/context/ArtifactContext.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,22 @@
1
1
  export interface ArtifactData {
2
2
  id: string;
3
+ artifactId: string;
3
4
  content: string;
4
5
  mimeType: string;
5
6
  title: string;
6
7
  timestamp: Date;
7
8
  size: number;
8
9
  }
10
+ export interface ArtifactEdit {
11
+ old: string;
12
+ new: string;
13
+ }
14
+ export interface ApplyUpdateResult {
15
+ success: boolean;
16
+ failedEdits: ArtifactEdit[];
17
+ updatedArtifact: ArtifactData | null;
18
+ failureReason?: 'not-found' | 'no-match';
19
+ }
9
20
  export interface ArtifactSystemState {
10
21
  currentArtifact: ArtifactData | null;
11
22
  isDrawerOpen: boolean;
@@ -54,7 +54,7 @@ const initMemoriArtifactAPI = () => {
54
54
  exports.initMemoriArtifactAPI = initMemoriArtifactAPI;
55
55
  (0, exports.initMemoriArtifactAPI)();
56
56
  const ArtifactAPIBridge = ({ pushMessage, }) => {
57
- const { openArtifact, closeArtifact, toggleFullscreen, state } = (0, ArtifactContext_1.useArtifact)();
57
+ const { openArtifact, closeArtifact, toggleFullscreen, state, registerArtifact } = (0, ArtifactContext_1.useArtifact)();
58
58
  const apiRef = (0, react_1.useRef)(null);
59
59
  (0, react_1.useEffect)(() => {
60
60
  if (typeof window !== 'undefined') {
@@ -65,10 +65,12 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
65
65
  },
66
66
  createAndOpenArtifact: (content, mimeType = 'html', title) => {
67
67
  const autoTitle = title || getTitleFromMimeType(mimeType);
68
+ const artifactId = `api-${Date.now()}-${Math.random()
69
+ .toString(36)
70
+ .substr(2, 9)}`;
68
71
  const artifact = {
69
- id: `artifact-${Date.now()}-${Math.random()
70
- .toString(36)
71
- .substr(2, 9)}`,
72
+ id: `artifact-ui-${artifactId}`,
73
+ artifactId,
72
74
  content,
73
75
  mimeType,
74
76
  title: autoTitle,
@@ -76,8 +78,8 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
76
78
  size: content.length,
77
79
  };
78
80
  let messageText = content;
79
- if (!messageText.includes('<output class="memori-artifact">')) {
80
- messageText = `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${autoTitle}">${content}</output>`;
81
+ if (!messageText.includes('class="memori-artifact"')) {
82
+ messageText = `<output class="memori-artifact" data-action="create" data-artifact-id="${artifactId}" data-mimetype="${mimeType}" data-title="${autoTitle}">${content}</output>`;
81
83
  }
82
84
  pushMessage({
83
85
  text: messageText,
@@ -95,6 +97,7 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
95
97
  placeLongitude: undefined,
96
98
  placeUncertaintyKm: undefined,
97
99
  });
100
+ registerArtifact(artifact);
98
101
  openArtifact(artifact);
99
102
  },
100
103
  createFromOutputElement: (outputElement) => {
@@ -102,12 +105,13 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
102
105
  const mimeType = outputElement.getAttribute('data-mimetype') || 'html';
103
106
  const title = outputElement.getAttribute('data-title') ||
104
107
  getTitleFromMimeType(mimeType);
108
+ const artifactId = outputElement.getAttribute('data-artifact-id') ||
109
+ `api-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
105
110
  outputElement.style.display = 'none';
106
111
  outputElement.setAttribute('data-memori-processed', 'true');
107
112
  const artifact = {
108
- id: `artifact-${Date.now()}-${Math.random()
109
- .toString(36)
110
- .substr(2, 9)}`,
113
+ id: `artifact-ui-${artifactId}`,
114
+ artifactId,
111
115
  content,
112
116
  mimeType,
113
117
  title,
@@ -115,8 +119,8 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
115
119
  size: content.length,
116
120
  };
117
121
  let messageText = content;
118
- if (!messageText.includes('<output class="memori-artifact">')) {
119
- messageText = `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${title}">${content}</output>`;
122
+ if (!messageText.includes('class="memori-artifact"')) {
123
+ messageText = `<output class="memori-artifact" data-action="create" data-artifact-id="${artifactId}" data-mimetype="${mimeType}" data-title="${title}">${content}</output>`;
120
124
  }
121
125
  pushMessage({
122
126
  text: messageText,
@@ -134,8 +138,9 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
134
138
  placeLongitude: undefined,
135
139
  placeUncertaintyKm: undefined,
136
140
  });
141
+ registerArtifact(artifact);
137
142
  openArtifact(artifact);
138
- return artifact.id;
143
+ return artifact.artifactId;
139
144
  },
140
145
  closeArtifact: () => {
141
146
  closeArtifact();
@@ -196,7 +201,7 @@ const ArtifactAPIBridge = ({ pushMessage, }) => {
196
201
  delete window.MemoriArtifactAPI;
197
202
  }
198
203
  };
199
- }, [openArtifact, closeArtifact, toggleFullscreen, state, pushMessage]);
204
+ }, [openArtifact, closeArtifact, toggleFullscreen, state, pushMessage, registerArtifact]);
200
205
  return null;
201
206
  };
202
207
  exports.ArtifactAPIBridge = ArtifactAPIBridge;
@@ -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,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseEdits = exports.applyEdits = void 0;
4
+ const normalizeWhitespace = (s) => s.replace(/\s+/g, ' ');
5
+ const findWhitespaceTolerant = (haystack, needle) => {
6
+ const normNeedle = normalizeWhitespace(needle.trim());
7
+ if (!normNeedle)
8
+ return null;
9
+ const normChars = [];
10
+ const normToOrig = [];
11
+ let lastWasSpace = false;
12
+ for (let i = 0; i < haystack.length; i++) {
13
+ const ch = haystack[i];
14
+ if (/\s/.test(ch)) {
15
+ if (!lastWasSpace && normChars.length > 0) {
16
+ normChars.push(' ');
17
+ normToOrig.push(i);
18
+ lastWasSpace = true;
19
+ }
20
+ }
21
+ else {
22
+ normChars.push(ch);
23
+ normToOrig.push(i);
24
+ lastWasSpace = false;
25
+ }
26
+ }
27
+ while (normChars.length > 0 && normChars[normChars.length - 1] === ' ') {
28
+ normChars.pop();
29
+ normToOrig.pop();
30
+ }
31
+ const normHaystack = normChars.join('');
32
+ const idx = normHaystack.indexOf(normNeedle);
33
+ if (idx === -1)
34
+ return null;
35
+ const startOrig = normToOrig[idx];
36
+ const endNormIdx = idx + normNeedle.length - 1;
37
+ const lastOrig = normToOrig[endNormIdx];
38
+ let endOrig = lastOrig + 1;
39
+ while (endOrig < haystack.length && /\s/.test(haystack[endOrig])) {
40
+ break;
41
+ }
42
+ return [startOrig, endOrig];
43
+ };
44
+ const applyEdits = (content, edits) => {
45
+ let result = content;
46
+ const failedEdits = [];
47
+ let appliedCount = 0;
48
+ for (const edit of edits) {
49
+ if (!edit || typeof edit.old !== 'string' || typeof edit.new !== 'string') {
50
+ failedEdits.push(edit);
51
+ continue;
52
+ }
53
+ const exactIdx = result.indexOf(edit.old);
54
+ if (exactIdx !== -1) {
55
+ result =
56
+ result.slice(0, exactIdx) +
57
+ edit.new +
58
+ result.slice(exactIdx + edit.old.length);
59
+ appliedCount++;
60
+ continue;
61
+ }
62
+ const tolerant = findWhitespaceTolerant(result, edit.old);
63
+ if (tolerant) {
64
+ const [start, end] = tolerant;
65
+ result = result.slice(0, start) + edit.new + result.slice(end);
66
+ appliedCount++;
67
+ continue;
68
+ }
69
+ failedEdits.push(edit);
70
+ }
71
+ return { content: result, failedEdits, appliedCount };
72
+ };
73
+ exports.applyEdits = applyEdits;
74
+ const HTML_ENTITIES = {
75
+ '&quot;': '"',
76
+ '&#34;': '"',
77
+ '&apos;': "'",
78
+ '&#39;': "'",
79
+ '&amp;': '&',
80
+ '&lt;': '<',
81
+ '&gt;': '>',
82
+ };
83
+ 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; });
84
+ const isValidEditsArray = (value) => {
85
+ if (!Array.isArray(value))
86
+ return false;
87
+ return value.every(item => item &&
88
+ typeof item === 'object' &&
89
+ typeof item.old === 'string' &&
90
+ typeof item.new === 'string');
91
+ };
92
+ const parseEdits = (body) => {
93
+ if (!body || typeof body !== 'string')
94
+ return null;
95
+ const trimmed = body.trim();
96
+ if (!trimmed)
97
+ return null;
98
+ const tryParse = (raw) => {
99
+ try {
100
+ const parsed = JSON.parse(raw);
101
+ return isValidEditsArray(parsed) ? parsed : null;
102
+ }
103
+ catch (_a) {
104
+ return null;
105
+ }
106
+ };
107
+ const direct = tryParse(trimmed);
108
+ if (direct)
109
+ return direct;
110
+ const unescaped = unescapeHtmlEntities(trimmed);
111
+ if (unescaped !== trimmed) {
112
+ return tryParse(unescaped);
113
+ }
114
+ return null;
115
+ };
116
+ exports.parseEdits = parseEdits;
117
+ //# 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;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dialogStateFingerprint = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  const jsx_runtime_1 = require("react/jsx-runtime");
5
6
  const ArtifactAPI_1 = require("../MemoriArtifactSystem/utils/ArtifactAPI");
@@ -81,6 +82,22 @@ function readCorrelationID(response) {
81
82
  const value = response.correlationID;
82
83
  return typeof value === 'string' && value.length > 0 ? value : undefined;
83
84
  }
85
+ function dialogStateFingerprint(state) {
86
+ if (!state)
87
+ return '';
88
+ return JSON.stringify({
89
+ state: state.state,
90
+ previousState: state.previousState,
91
+ emission: state.emission,
92
+ emitter: state.emitter,
93
+ lastMatchedMemoryID: state.lastMatchedMemoryID,
94
+ currentDate: state.currentDate,
95
+ currentMemoryID: state.currentMemoryID,
96
+ contextVars: state.contextVars,
97
+ emittedMedia: state.emittedMedia,
98
+ });
99
+ }
100
+ exports.dialogStateFingerprint = dialogStateFingerprint;
84
101
  const typeMessage = (message, waitForPrevious = true, hidden = false, typingText, useLoaderTextAsMsg = false, hasBatchQueued = false) => {
85
102
  const e = new CustomEvent('MemoriTextEntered', {
86
103
  detail: {
@@ -495,6 +512,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
495
512
  if (response.resultCode === 0 && correlationID) {
496
513
  registerPendingEnterText(correlationID, {
497
514
  msg,
515
+ stateBeforeRequest: dialogStateFingerprint(currentDialogState),
498
516
  text,
499
517
  media,
500
518
  translate,
@@ -1383,6 +1401,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1383
1401
  reject(new Error('NATS enter-text response timeout'));
1384
1402
  }, timeoutMs);
1385
1403
  registerPendingEnterText(correlationID, {
1404
+ stateBeforeRequest: dialogStateFingerprint(currentDialogState),
1386
1405
  waitForResponse: {
1387
1406
  resolve: event => {
1388
1407
  clearTimeout(timeoutId);
@@ -1395,7 +1414,45 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1395
1414
  timeoutId,
1396
1415
  },
1397
1416
  });
1398
- }), [registerPendingEnterText, clearEnterTextPending]);
1417
+ }), [registerPendingEnterText, clearEnterTextPending, currentDialogState]);
1418
+ const catchUpPendingEnterText = (0, react_1.useCallback)(async () => {
1419
+ if (!sessionId || pendingEnterTextRef.current.size === 0)
1420
+ return;
1421
+ const latest = Array.from(pendingEnterTextRef.current.entries()).pop();
1422
+ if (!latest)
1423
+ return;
1424
+ const [correlationID, pending] = latest;
1425
+ try {
1426
+ const { currentState, resultCode, resultMessage, requestID } = await getSession(sessionId);
1427
+ if (resultCode !== 0 || !currentState) {
1428
+ deliverEnterTextNatsResponse(correlationID, {
1429
+ eventType: 'dialog_text_entered_response',
1430
+ correlationID,
1431
+ requestID,
1432
+ resultCode,
1433
+ resultMessage,
1434
+ currentState,
1435
+ });
1436
+ return;
1437
+ }
1438
+ if (dialogStateFingerprint(currentState) === pending.stateBeforeRequest) {
1439
+ console.info('[NATS] catch-up: pending turn has not completed yet');
1440
+ return;
1441
+ }
1442
+ console.info('[NATS] catch-up: applying current engine session state');
1443
+ deliverEnterTextNatsResponse(correlationID, {
1444
+ eventType: 'dialog_text_entered_response',
1445
+ correlationID,
1446
+ requestID,
1447
+ resultCode,
1448
+ resultMessage,
1449
+ currentState,
1450
+ });
1451
+ }
1452
+ catch (error) {
1453
+ logWidgetError('NATS catch-up failed', error);
1454
+ }
1455
+ }, [sessionId, deliverEnterTextNatsResponse]);
1399
1456
  (0, useNats_1.useNats)({
1400
1457
  baseUrl,
1401
1458
  sessionId,
@@ -1415,6 +1472,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1415
1472
  deliverEnterTextNatsResponse(correlationID, event);
1416
1473
  }, [deliverEnterTextNatsResponse]),
1417
1474
  onError: deliverEnterTextNatsError,
1475
+ onCatchUp: catchUpPendingEnterText,
1418
1476
  });
1419
1477
  const focusChatInput = () => {
1420
1478
  let textarea = document.querySelector('#chat-fieldset textarea');