@memori.ai/memori-react 9.0.0-alpha.20 → 9.0.0-alpha.22

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 (343) hide show
  1. package/CHANGELOG.md +456 -1
  2. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +1 -7
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +1 -1
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  5. package/dist/components/Auth/Auth.css +12 -5
  6. package/dist/components/Auth/Auth.d.ts +1 -1
  7. package/dist/components/Auth/Auth.js +46 -32
  8. package/dist/components/Auth/Auth.js.map +1 -1
  9. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +1 -1
  10. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  11. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -2
  12. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +6 -6
  13. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  14. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.css +7 -6
  15. package/dist/components/Chat/Chat.css +1 -0
  16. package/dist/components/Chat/Chat.js +1 -1
  17. package/dist/components/Chat/Chat.js.map +1 -1
  18. package/dist/components/ChatBubble/ChatBubble.css +32 -5
  19. package/dist/components/ChatBubble/ChatBubble.js +2 -4
  20. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  21. package/dist/components/ChatHistoryDrawer/ChatHistory.d.ts +3 -1
  22. package/dist/components/ChatHistoryDrawer/ChatHistory.js +2 -2
  23. package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  24. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  25. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +3 -1
  26. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +7 -57
  27. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  28. package/dist/components/ChatInputs/ChatInputs.js +11 -2
  29. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  30. package/dist/components/ChatTextArea/ChatTextArea.css +1 -1
  31. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +7 -32
  32. package/dist/components/ContentPreviewModal/ContentPreviewModal.js +1 -1
  33. package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  34. package/dist/components/ExpertsDrawer/ExpertsDrawer.css +0 -6
  35. package/dist/components/FilePreview/FilePreview.css +41 -20
  36. package/dist/components/FilePreview/FilePreview.d.ts +2 -1
  37. package/dist/components/FilePreview/FilePreview.js +6 -2
  38. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  39. package/dist/components/Header/Header.css +8 -3
  40. package/dist/components/Header/Header.js +15 -18
  41. package/dist/components/Header/Header.js.map +1 -1
  42. package/dist/components/IconButton/IconButton.d.ts +1 -1
  43. package/dist/components/KnownFacts/KnownFacts.css +1 -1
  44. package/dist/components/KnownFacts/KnownFacts.js +4 -7
  45. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  46. package/dist/components/LoginDrawer/LoginDrawer.css +16 -14
  47. package/dist/components/LoginDrawer/LoginDrawer.js +19 -11
  48. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  49. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  50. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  51. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +14 -12
  52. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  53. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +5 -110
  54. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +36 -14
  55. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +3 -2
  56. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  57. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -0
  58. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +210 -62
  59. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  60. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  61. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js +65 -1
  62. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  63. package/dist/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  64. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js +18 -13
  65. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  66. package/dist/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  67. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js +117 -0
  68. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  69. package/dist/components/MemoriWidget/MemoriWidget.css +59 -0
  70. package/dist/components/MemoriWidget/MemoriWidget.js +35 -31
  71. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  72. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +2 -2
  73. package/dist/components/PositionPopover/PositionPopover.css +3 -3
  74. package/dist/components/PositionPopover/PositionPopover.js +38 -25
  75. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  76. package/dist/components/Snippet/Snippet.css +6 -36
  77. package/dist/components/Snippet/Snippet.js +3 -1
  78. package/dist/components/Snippet/Snippet.js.map +1 -1
  79. package/dist/components/StartPanel/StartPanel.css +125 -3
  80. package/dist/components/StartPanel/StartPanel.js +13 -19
  81. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  82. package/dist/components/UploadButton/UploadButton.css +0 -19
  83. package/dist/components/UploadButton/UploadButton.js +1 -3
  84. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  85. package/dist/components/UploadButton/UploadImages/UploadImages.js +1 -1
  86. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  87. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +3 -3
  88. package/dist/components/layouts/chat.css +2 -0
  89. package/dist/components/layouts/totem.css +43 -9
  90. package/dist/components/layouts/zoomed-full-body.css +1 -0
  91. package/dist/helpers/message.js +3 -0
  92. package/dist/helpers/message.js.map +1 -1
  93. package/dist/helpers/positionPopover.d.ts +2 -1
  94. package/dist/helpers/positionPopover.js +10 -2
  95. package/dist/helpers/positionPopover.js.map +1 -1
  96. package/dist/icons/MemoriIcon.js +1 -1
  97. package/dist/icons/MemoriIcon.js.map +1 -1
  98. package/dist/locales/de.json +7 -1
  99. package/dist/locales/en.json +6 -1
  100. package/dist/locales/es.json +6 -1
  101. package/dist/locales/fr.json +6 -1
  102. package/dist/locales/it.json +6 -1
  103. package/dist/styles.css +1 -1
  104. package/dist/version.d.ts +1 -1
  105. package/dist/version.js +1 -1
  106. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +1 -7
  107. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +1 -1
  108. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  109. package/esm/components/Auth/Auth.css +12 -5
  110. package/esm/components/Auth/Auth.d.ts +1 -1
  111. package/esm/components/Auth/Auth.js +47 -33
  112. package/esm/components/Auth/Auth.js.map +1 -1
  113. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +2 -2
  114. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  115. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -2
  116. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +4 -5
  117. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  118. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.css +7 -6
  119. package/esm/components/Chat/Chat.css +1 -0
  120. package/esm/components/Chat/Chat.js +1 -1
  121. package/esm/components/Chat/Chat.js.map +1 -1
  122. package/esm/components/ChatBubble/ChatBubble.css +32 -5
  123. package/esm/components/ChatBubble/ChatBubble.js +2 -4
  124. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  125. package/esm/components/ChatHistoryDrawer/ChatHistory.d.ts +3 -1
  126. package/esm/components/ChatHistoryDrawer/ChatHistory.js +2 -2
  127. package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  128. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  129. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +3 -1
  130. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +9 -59
  131. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  132. package/esm/components/ChatInputs/ChatInputs.js +12 -3
  133. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  134. package/esm/components/ChatTextArea/ChatTextArea.css +1 -1
  135. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +7 -32
  136. package/esm/components/ContentPreviewModal/ContentPreviewModal.js +1 -1
  137. package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  138. package/esm/components/ExpertsDrawer/ExpertsDrawer.css +0 -6
  139. package/esm/components/FilePreview/FilePreview.css +41 -20
  140. package/esm/components/FilePreview/FilePreview.d.ts +2 -1
  141. package/esm/components/FilePreview/FilePreview.js +7 -3
  142. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  143. package/esm/components/Header/Header.css +8 -3
  144. package/esm/components/Header/Header.js +15 -18
  145. package/esm/components/Header/Header.js.map +1 -1
  146. package/esm/components/IconButton/IconButton.d.ts +1 -1
  147. package/esm/components/KnownFacts/KnownFacts.css +1 -1
  148. package/esm/components/KnownFacts/KnownFacts.js +4 -7
  149. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  150. package/esm/components/LoginDrawer/LoginDrawer.css +16 -14
  151. package/esm/components/LoginDrawer/LoginDrawer.js +20 -12
  152. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  153. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  154. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  155. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +15 -13
  156. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  157. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +5 -110
  158. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +36 -14
  159. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +3 -2
  160. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  161. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -0
  162. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +211 -63
  163. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  164. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  165. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js +66 -2
  166. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  167. package/esm/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  168. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js +18 -13
  169. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  170. package/esm/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  171. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js +112 -0
  172. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  173. package/esm/components/MemoriWidget/MemoriWidget.css +59 -0
  174. package/esm/components/MemoriWidget/MemoriWidget.js +36 -32
  175. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  176. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +2 -2
  177. package/esm/components/PositionPopover/PositionPopover.css +3 -3
  178. package/esm/components/PositionPopover/PositionPopover.js +39 -26
  179. package/esm/components/PositionPopover/PositionPopover.js.map +1 -1
  180. package/esm/components/Snippet/Snippet.css +6 -36
  181. package/esm/components/Snippet/Snippet.js +4 -2
  182. package/esm/components/Snippet/Snippet.js.map +1 -1
  183. package/esm/components/StartPanel/StartPanel.css +125 -3
  184. package/esm/components/StartPanel/StartPanel.js +14 -20
  185. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  186. package/esm/components/UploadButton/UploadButton.css +0 -19
  187. package/esm/components/UploadButton/UploadButton.js +1 -3
  188. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  189. package/esm/components/UploadButton/UploadImages/UploadImages.js +1 -1
  190. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  191. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +3 -3
  192. package/esm/components/layouts/chat.css +2 -0
  193. package/esm/components/layouts/totem.css +43 -9
  194. package/esm/components/layouts/zoomed-full-body.css +1 -0
  195. package/esm/helpers/message.js +3 -0
  196. package/esm/helpers/message.js.map +1 -1
  197. package/esm/helpers/positionPopover.d.ts +2 -1
  198. package/esm/helpers/positionPopover.js +9 -2
  199. package/esm/helpers/positionPopover.js.map +1 -1
  200. package/esm/icons/MemoriIcon.js +1 -1
  201. package/esm/icons/MemoriIcon.js.map +1 -1
  202. package/esm/locales/de.json +7 -1
  203. package/esm/locales/en.json +6 -1
  204. package/esm/locales/es.json +6 -1
  205. package/esm/locales/fr.json +6 -1
  206. package/esm/locales/it.json +6 -1
  207. package/esm/styles.css +1 -1
  208. package/esm/version.d.ts +1 -1
  209. package/esm/version.js +1 -1
  210. package/package.json +5 -3
  211. package/src/Live/Agents.stories.tsx +49 -0
  212. package/src/Live/KnownFacts.stories.tsx +50 -0
  213. package/src/Showcase.stories.tsx +3 -14
  214. package/src/components/AgeVerificationModal/AgeVerificationModal.css +1 -7
  215. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +1 -1
  216. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +1 -0
  217. package/src/components/Auth/Auth.css +12 -5
  218. package/src/components/Auth/Auth.stories.tsx +1 -1
  219. package/src/components/Auth/Auth.test.tsx +68 -1
  220. package/src/components/Auth/Auth.tsx +69 -54
  221. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +5 -6
  222. package/src/components/Avatar/Avatar.stories.tsx +1 -18
  223. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +2 -2
  224. package/src/components/Avatar/AvatarView/AvatarComponent/constants.test.ts +19 -0
  225. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +9 -6
  226. package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +1 -103
  227. package/src/components/Blob/Blob.stories.tsx +1 -1
  228. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +7 -6
  229. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.tsx +1 -1
  230. package/src/components/ChangeMode/ChangeMode.stories.tsx +1 -1
  231. package/src/components/Chat/Chat.css +1 -0
  232. package/src/components/Chat/Chat.stories.tsx +61 -7
  233. package/src/components/Chat/Chat.tsx +1 -0
  234. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +80 -80
  235. package/src/components/ChatBubble/ChatBubble.css +32 -5
  236. package/src/components/ChatBubble/ChatBubble.stories.tsx +13 -2
  237. package/src/components/ChatBubble/ChatBubble.test.tsx +21 -1
  238. package/src/components/ChatBubble/ChatBubble.tsx +7 -13
  239. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +158 -185
  240. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +1 -1
  241. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +6 -0
  242. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  243. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx +24 -81
  244. package/src/components/ChatInputs/ChatInputs.stories.tsx +1 -39
  245. package/src/components/ChatInputs/ChatInputs.test.tsx +47 -0
  246. package/src/components/ChatInputs/ChatInputs.tsx +13 -2
  247. package/src/components/ChatTextArea/ChatTextArea.css +1 -1
  248. package/src/components/CompletionProviderStatus/CompletionProviderStatus.stories.tsx +1 -1
  249. package/src/components/ContentPreviewModal/ContentPreviewModal.css +7 -32
  250. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +1 -1
  251. package/src/components/ExpertsDrawer/ExpertsDrawer.css +0 -6
  252. package/src/components/ExpertsDrawer/ExpertsDrawer.stories.tsx +1 -1
  253. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +29 -10
  254. package/src/components/FilePreview/FilePreview.css +41 -20
  255. package/src/components/FilePreview/FilePreview.tsx +14 -0
  256. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +14 -0
  257. package/src/components/Header/Header.css +8 -3
  258. package/src/components/Header/Header.stories.tsx +1 -1
  259. package/src/components/Header/Header.tsx +146 -117
  260. package/src/components/KnownFacts/KnownFacts.css +1 -1
  261. package/src/components/KnownFacts/KnownFacts.stories.tsx +1 -23
  262. package/src/components/KnownFacts/KnownFacts.tsx +4 -11
  263. package/src/components/LoginDrawer/LoginDrawer.css +16 -14
  264. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +2 -52
  265. package/src/components/LoginDrawer/LoginDrawer.tsx +51 -39
  266. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +1 -15
  267. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +2 -3
  268. package/src/components/MediaWidget/MediaWidget.stories.tsx +1 -45
  269. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +19 -33
  270. package/src/components/MemoriArtifactSystem/components/ArtifactActions/CopyButton.stories.tsx +1 -1
  271. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +44 -45
  272. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +5 -110
  273. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +36 -14
  274. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +28 -26
  275. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -0
  276. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +357 -148
  277. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +111 -9
  278. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +20 -1
  279. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +33 -28
  280. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +19 -13
  281. package/src/components/MemoriArtifactSystem/utils/applyEdits.test.ts +85 -0
  282. package/src/components/MemoriArtifactSystem/utils/applyEdits.ts +173 -0
  283. package/src/components/MemoriWidget/MemoriUIProvider.contract.test.tsx +55 -0
  284. package/src/components/MemoriWidget/MemoriWidget.css +59 -0
  285. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +55 -77
  286. package/src/components/MemoriWidget/MemoriWidget.tsx +49 -44
  287. package/src/components/MemoriWidget/getChatStyles.test.ts +24 -0
  288. package/src/components/MicrophoneButton/MicrophoneButton.stories.tsx +1 -1
  289. package/src/components/MobileSessionPanel/MobileSessionPanel.css +2 -2
  290. package/src/components/PositionPopover/PositionPopover.css +3 -3
  291. package/src/components/PositionPopover/PositionPopover.stories.tsx +1 -1
  292. package/src/components/PositionPopover/PositionPopover.tsx +50 -28
  293. package/src/components/PoweredBy/PoweredBy.stories.tsx +1 -54
  294. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +2 -2
  295. package/src/components/SendOnEnterMenu/SendOnEnterMenu.stories.tsx +1 -1
  296. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +1 -1
  297. package/src/components/ShareButton/ShareButton.stories.tsx +1 -1
  298. package/src/components/Snippet/Snippet.css +6 -36
  299. package/src/components/Snippet/Snippet.stories.tsx +1 -1
  300. package/src/components/Snippet/Snippet.tsx +6 -7
  301. package/src/components/StartPanel/StartPanel.css +125 -3
  302. package/src/components/StartPanel/StartPanel.stories.tsx +22 -2
  303. package/src/components/StartPanel/StartPanel.tsx +30 -35
  304. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +177 -121
  305. package/src/components/Typing/Typing.stories.tsx +1 -1
  306. package/src/components/UploadButton/UploadButton.css +0 -19
  307. package/src/components/UploadButton/UploadButton.tsx +0 -11
  308. package/src/components/UploadButton/UploadImages/UploadImages.tsx +1 -1
  309. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +22 -44
  310. package/src/components/layouts/FullBody/FullBody.stories.tsx +55 -68
  311. package/src/components/layouts/Totem/Totem.stories.tsx +69 -87
  312. package/src/components/layouts/WebsiteAssistant/website-assistant.css +3 -3
  313. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +69 -87
  314. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +19 -41
  315. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +39 -83
  316. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +15 -11
  317. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +116 -42
  318. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +18 -40
  319. package/src/components/layouts/chat.css +2 -0
  320. package/src/components/layouts/layouts.stories.tsx +96 -179
  321. package/src/components/layouts/totem.css +43 -9
  322. package/src/components/layouts/zoomed-full-body.css +1 -0
  323. package/src/helpers/message.ts +15 -0
  324. package/src/helpers/positionPopover.test.ts +36 -1
  325. package/src/helpers/positionPopover.ts +21 -4
  326. package/src/i18n.knownFacts.test.ts +40 -0
  327. package/src/icons/MemoriIcon.tsx +1 -1
  328. package/src/index.stories.tsx +1 -47
  329. package/src/locales/de.json +7 -1
  330. package/src/locales/en.json +6 -1
  331. package/src/locales/es.json +6 -1
  332. package/src/locales/fr.json +6 -1
  333. package/src/locales/it.json +6 -1
  334. package/src/styles.css +13 -27
  335. package/src/version.ts +1 -1
  336. package/src/components/ChatTextArea/ChatTextArea.stories.tsx +0 -55
  337. package/src/components/CustomGLBModelViewer/ModelViewer.stories.tsx +0 -58
  338. package/src/components/DateSelector/DateSelector.stories.tsx +0 -47
  339. package/src/components/FilePreview/FilePreview.stories.tsx +0 -63
  340. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +0 -265
  341. package/src/components/UploadButton/UploadButton.stories.tsx +0 -510
  342. package/src/components/VenueWidget/VenueWidget.stories.tsx +0 -69
  343. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.stories.tsx +0 -115
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useEffect, useMemo, useCallback, memo } from 'react';
2
+ import React, { useEffect, useState, useMemo, useCallback, memo, useRef, } from 'react';
3
3
  import { useArtifact } from '../../context/ArtifactContext';
4
4
  import { ChevronRight, ChevronDown, ChevronLeft, ChevronUp, } from 'lucide-react';
5
5
  import ArtifactDrawer from '../ArtifactDrawer/ArtifactDrawer';
@@ -12,6 +12,8 @@ import MarkdownIcon from '../../../../icons/artifacts/MarkdownIcon';
12
12
  import PythonIcon from '../../../../icons/artifacts/PythonIcon';
13
13
  import SvgIcon from '../../../../icons/artifacts/SvgIcon';
14
14
  import XmlIcon from '../../../../icons/artifacts/XmlIcon';
15
+ import { parseEdits } from '../../utils/applyEdits';
16
+ import { useTranslation } from 'react-i18next';
15
17
  const formatBytes = (bytes) => {
16
18
  if (bytes === 0)
17
19
  return '0 Bytes';
@@ -20,24 +22,64 @@ const formatBytes = (bytes) => {
20
22
  const i = Math.floor(Math.log(bytes) / Math.log(k));
21
23
  return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
22
24
  };
23
- const hashContent = (str) => {
24
- let hash = 0;
25
- const len = Math.min(str.length, 200);
26
- for (let i = 0; i < len; i++) {
27
- hash = (hash << 5) - hash + str.charCodeAt(i);
28
- hash |= 0;
29
- }
30
- return Math.abs(hash).toString(36);
31
- };
32
25
  const CLASS_ATTR_RE = /class\s*=\s*["']([^"']*)["']/i;
33
- const hasMemoriArtifactClass = (openingTag) => {
26
+ const DATA_ACTION_RE = /data-action\s*=\s*["']([^"']+)["']/i;
27
+ const getClassList = (openingTag) => {
34
28
  const m = openingTag.match(CLASS_ATTR_RE);
35
29
  if (!m)
30
+ return [];
31
+ return m[1].split(/\s+/).filter(Boolean);
32
+ };
33
+ const getDataAction = (openingTag) => {
34
+ var _a;
35
+ const m = openingTag.match(DATA_ACTION_RE);
36
+ return ((_a = m === null || m === void 0 ? void 0 : m[1]) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase()) || null;
37
+ };
38
+ const isCreateArtifactTag = (openingTag) => {
39
+ const classes = getClassList(openingTag);
40
+ if (classes.includes('memori-artifact-update'))
41
+ return false;
42
+ if (!classes.includes('memori-artifact'))
43
+ return false;
44
+ const action = getDataAction(openingTag);
45
+ return action === null || action === 'create';
46
+ };
47
+ const isUpdateArtifactTag = (openingTag) => {
48
+ const classes = getClassList(openingTag);
49
+ if (classes.includes('memori-artifact-update'))
50
+ return true;
51
+ if (!classes.includes('memori-artifact'))
36
52
  return false;
37
- return /\bmemori-artifact\b/.test(m[1]);
53
+ return getDataAction(openingTag) === 'update';
54
+ };
55
+ const findMatchingOutputClose = (cleaned, openEnd) => {
56
+ let depth = 1;
57
+ let pos = openEnd;
58
+ let closeStart = -1;
59
+ while (pos < cleaned.length && depth > 0) {
60
+ const nextOpen = cleaned.indexOf('<output', pos);
61
+ const nextClose = cleaned.indexOf('</output>', pos);
62
+ if (nextClose === -1) {
63
+ return cleaned.length;
64
+ }
65
+ if (nextOpen !== -1 && nextOpen < nextClose) {
66
+ depth++;
67
+ pos = nextOpen + '<output'.length;
68
+ }
69
+ else {
70
+ depth--;
71
+ if (depth === 0) {
72
+ closeStart = nextClose;
73
+ }
74
+ else {
75
+ pos = nextClose + '</output>'.length;
76
+ }
77
+ }
78
+ }
79
+ return closeStart;
38
80
  };
39
81
  const detectArtifacts = (text, isFromUser, messageKey) => {
40
- var _a;
82
+ var _a, _b;
41
83
  if (!text || isFromUser)
42
84
  return [];
43
85
  const cleaned = stripReasoningTags(text);
@@ -51,37 +93,12 @@ const detectArtifacts = (text, isFromUser, messageKey) => {
51
93
  if (!openMatch)
52
94
  break;
53
95
  const fullOpenTag = openMatch[0];
54
- const openStart = openMatch.index;
55
- const openEnd = openStart + fullOpenTag.length;
56
- if (!hasMemoriArtifactClass(fullOpenTag)) {
96
+ const openEnd = openMatch.index + fullOpenTag.length;
97
+ if (!isCreateArtifactTag(fullOpenTag)) {
57
98
  searchFrom = openEnd;
58
99
  continue;
59
100
  }
60
- let depth = 1;
61
- let pos = openEnd;
62
- let closeStart = -1;
63
- while (pos < cleaned.length && depth > 0) {
64
- const nextOpen = cleaned.indexOf('<output', pos);
65
- const nextClose = cleaned.indexOf('</output>', pos);
66
- if (nextClose === -1) {
67
- closeStart = cleaned.length;
68
- depth = 0;
69
- break;
70
- }
71
- if (nextOpen !== -1 && nextOpen < nextClose) {
72
- depth++;
73
- pos = nextOpen + '<output'.length;
74
- }
75
- else {
76
- depth--;
77
- if (depth === 0) {
78
- closeStart = nextClose;
79
- }
80
- else {
81
- pos = nextClose + '</output>'.length;
82
- }
83
- }
84
- }
101
+ const closeStart = findMatchingOutputClose(cleaned, openEnd);
85
102
  if (closeStart === -1) {
86
103
  searchFrom = openEnd;
87
104
  continue;
@@ -95,9 +112,12 @@ const detectArtifacts = (text, isFromUser, messageKey) => {
95
112
  (htmlTitleMatch === null || htmlTitleMatch === void 0 ? void 0 : htmlTitleMatch[1]) ||
96
113
  `${mimeType.toUpperCase()} Artifact`;
97
114
  artifactNum++;
98
- const stableId = `artifact-${messageKey}-${artifactNum}-${hashContent(content)}`;
115
+ const dataArtifactIdMatch = fullOpenTag.match(/data-artifact-id\s*=\s*["']([^"']+)["']/i);
116
+ const artifactId = ((_b = dataArtifactIdMatch === null || dataArtifactIdMatch === void 0 ? void 0 : dataArtifactIdMatch[1]) === null || _b === void 0 ? void 0 : _b.trim()) ||
117
+ `artifact-${messageKey}-${artifactNum}`;
99
118
  artifacts.push({
100
- id: stableId,
119
+ id: `artifact-ui-${artifactId}`,
120
+ artifactId,
101
121
  content,
102
122
  mimeType,
103
123
  title,
@@ -111,9 +131,46 @@ const detectArtifacts = (text, isFromUser, messageKey) => {
111
131
  }
112
132
  return artifacts;
113
133
  };
134
+ const detectUpdates = (text, isFromUser) => {
135
+ var _a;
136
+ if (!text || isFromUser)
137
+ return [];
138
+ const cleaned = stripReasoningTags(text);
139
+ const updates = [];
140
+ let searchFrom = 0;
141
+ const OPEN_TAG_RE = /<output\b([^>]*)>/gi;
142
+ while (searchFrom < cleaned.length) {
143
+ OPEN_TAG_RE.lastIndex = searchFrom;
144
+ const openMatch = OPEN_TAG_RE.exec(cleaned);
145
+ if (!openMatch)
146
+ break;
147
+ const fullOpenTag = openMatch[0];
148
+ const openEnd = openMatch.index + fullOpenTag.length;
149
+ if (!isUpdateArtifactTag(fullOpenTag)) {
150
+ searchFrom = openEnd;
151
+ continue;
152
+ }
153
+ const closeStart = cleaned.indexOf('</output>', openEnd);
154
+ const bodyEnd = closeStart === -1 ? cleaned.length : closeStart;
155
+ const body = cleaned.slice(openEnd, bodyEnd).trim();
156
+ const idMatch = fullOpenTag.match(/data-artifact-id\s*=\s*["']([^"']+)["']/i);
157
+ const artifactId = (_a = idMatch === null || idMatch === void 0 ? void 0 : idMatch[1]) === null || _a === void 0 ? void 0 : _a.trim();
158
+ const edits = parseEdits(body);
159
+ if (artifactId && edits) {
160
+ updates.push({ artifactId, edits });
161
+ }
162
+ else if (artifactId) {
163
+ updates.push({ artifactId, edits: [] });
164
+ }
165
+ searchFrom =
166
+ closeStart === -1 ? cleaned.length : closeStart + '</output>'.length;
167
+ }
168
+ return updates;
169
+ };
114
170
  const ArtifactHandler = ({ isChatlogPanel = false, message, }) => {
115
171
  var _a;
116
- const { openArtifact, state, closeArtifact } = useArtifact();
172
+ const { openArtifact, state, closeArtifact, registerArtifact, applyArtifactUpdate, } = useArtifact();
173
+ const { t } = useTranslation();
117
174
  const messageText = useMemo(() => message.text || '', [message.text]);
118
175
  const translatedMessageText = useMemo(() => message.translatedText || '', [message.translatedText]);
119
176
  const messageKey = useMemo(() => `${message.timestamp}-${message.fromUser ? '1' : '0'}`, [message.timestamp, message.fromUser]);
@@ -133,18 +190,79 @@ const ArtifactHandler = ({ isChatlogPanel = false, message, }) => {
133
190
  return primary;
134
191
  return detectArtifacts(translatedMessageText, fromUser, messageKey);
135
192
  }, [messageText, translatedMessageText, message.fromUser, messageKey]);
193
+ const detectedUpdates = useMemo(() => {
194
+ const fromUser = message.fromUser || false;
195
+ const primary = detectUpdates(messageText, fromUser);
196
+ if (primary.length > 0)
197
+ return primary;
198
+ return detectUpdates(translatedMessageText, fromUser);
199
+ }, [messageText, translatedMessageText, message.fromUser]);
200
+ const [updateResultMap, setUpdateResultMap] = useState({});
201
+ const [failedUpdates, setFailedUpdates] = useState([]);
202
+ const processedUpdatesRef = useRef('');
203
+ const hasAutoOpenedRef = useRef('');
136
204
  useEffect(() => {
137
- if (!messageText || artifacts.length === 0)
205
+ if (!messageText && !translatedMessageText)
138
206
  return;
139
- artifacts.forEach(artifact => dispatchArtifactCreatedEvent(artifact));
140
- if (!isChatlogPanel) {
141
- const timer = setTimeout(() => openArtifact(artifacts[0], { isChatLogPanel: false }), 100);
142
- return () => clearTimeout(timer);
207
+ artifacts.forEach(artifact => {
208
+ registerArtifact(artifact);
209
+ dispatchArtifactCreatedEvent(artifact);
210
+ });
211
+ const updatesSignature = `${messageKey}:${detectedUpdates
212
+ .map(u => `${u.artifactId}:${JSON.stringify(u.edits)}`)
213
+ .join('|')}`;
214
+ let lastUpdated = null;
215
+ if (detectedUpdates.length > 0 &&
216
+ processedUpdatesRef.current !== updatesSignature) {
217
+ processedUpdatesRef.current = updatesSignature;
218
+ const nextMap = {};
219
+ const nextFailed = [];
220
+ detectedUpdates.forEach((update, idx) => {
221
+ var _a;
222
+ if (!update.edits.length) {
223
+ nextFailed.push({
224
+ artifactId: update.artifactId,
225
+ reason: 'invalid',
226
+ });
227
+ return;
228
+ }
229
+ const result = applyArtifactUpdate(update.artifactId, update.edits);
230
+ if (result.updatedArtifact) {
231
+ nextMap[idx] = result.updatedArtifact;
232
+ lastUpdated = result.updatedArtifact;
233
+ dispatchArtifactCreatedEvent(result.updatedArtifact);
234
+ }
235
+ else {
236
+ nextFailed.push({
237
+ artifactId: update.artifactId,
238
+ reason: (_a = result.failureReason) !== null && _a !== void 0 ? _a : 'no-match',
239
+ });
240
+ }
241
+ });
242
+ setUpdateResultMap(nextMap);
243
+ setFailedUpdates(nextFailed);
143
244
  }
245
+ if (isChatlogPanel)
246
+ return;
247
+ const openTarget = lastUpdated !== null && lastUpdated !== void 0 ? lastUpdated : (Object.keys(updateResultMap).length === 0 && artifacts.length > 0
248
+ ? artifacts[0]
249
+ : null);
250
+ if (!openTarget)
251
+ return;
252
+ if (hasAutoOpenedRef.current === messageKey)
253
+ return;
254
+ hasAutoOpenedRef.current = messageKey;
255
+ const timer = setTimeout(() => openArtifact(openTarget, { isChatLogPanel: false }), 100);
256
+ return () => clearTimeout(timer);
144
257
  }, [
145
258
  messageKey,
146
259
  messageText,
260
+ translatedMessageText,
147
261
  artifacts,
262
+ detectedUpdates,
263
+ updateResultMap,
264
+ registerArtifact,
265
+ applyArtifactUpdate,
148
266
  dispatchArtifactCreatedEvent,
149
267
  isChatlogPanel,
150
268
  openArtifact,
@@ -157,7 +275,13 @@ const ArtifactHandler = ({ isChatlogPanel = false, message, }) => {
157
275
  else {
158
276
  openArtifact(artifact, { isChatLogPanel: isChatlogPanel });
159
277
  }
160
- }, [state.isDrawerOpen, (_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id, closeArtifact, openArtifact]);
278
+ }, [
279
+ state.isDrawerOpen,
280
+ (_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id,
281
+ closeArtifact,
282
+ openArtifact,
283
+ isChatlogPanel,
284
+ ]);
161
285
  const getIconForMimeType = useCallback((mimeType) => {
162
286
  const m = mimeType.toLowerCase();
163
287
  const iconProps = { 'aria-hidden': true };
@@ -179,20 +303,44 @@ const ArtifactHandler = ({ isChatlogPanel = false, message, }) => {
179
303
  return _jsx(SvgIcon, { ...iconProps });
180
304
  return _jsx(DocumentIcon, { ...iconProps });
181
305
  }, []);
182
- if (artifacts.length === 0)
306
+ const updatedLabel = t('artifact.updated') || 'updated';
307
+ const updateFailedLabel = t('artifact.updateFailed') || 'Update could not be applied';
308
+ const updateFailedHint = t('artifact.updateFailedHint') ||
309
+ 'The patch did not match the current content. Ask to rewrite the artifact.';
310
+ const updateEntries = Object.entries(updateResultMap);
311
+ const hasCreates = artifacts.length > 0;
312
+ const hasUpdates = updateEntries.length > 0;
313
+ const hasFailed = failedUpdates.length > 0;
314
+ if (!hasCreates && !hasUpdates && !hasFailed)
183
315
  return null;
184
- return (_jsx("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: artifacts.map(artifact => {
185
- var _a, _b, _c, _d;
186
- const isSelected = state.isDrawerOpen && ((_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id) === artifact.id;
187
- return (_jsxs(React.Fragment, { children: [_jsxs("button", { type: "button", className: `memori-artifact-handler${isSelected ? ' memori-artifact-handler--selected' : ''}`, onClick: () => handleArtifactClick(artifact), "aria-pressed": isSelected, "aria-label": artifact.title, style: isSelected
188
- ? {
189
- border: '2px solid var(--memori-border-primary)',
190
- }
191
- : undefined, children: [_jsx("div", { className: "memori-artifact-handler-icon", children: getIconForMimeType(artifact.mimeType) }), _jsxs("div", { className: "memori-artifact-handler-info", children: [_jsx("div", { className: "memori-artifact-handler-title", children: artifact.title }), _jsxs("div", { className: "memori-artifact-handler-meta", children: [artifact.mimeType, " \u2022 ", formatBytes(artifact.size || 0)] })] }), _jsx("div", { className: "memori-artifact-handler-action", children: isChatlogPanel ? (state.isDrawerOpen &&
192
- ((_b = state.currentArtifact) === null || _b === void 0 ? void 0 : _b.id) === artifact.id ? (_jsx(ChevronUp, { className: "memori-artifact-handler-action-icon" })) : (_jsx(ChevronDown, { className: "memori-artifact-handler-action-icon" }))) : state.isDrawerOpen &&
193
- ((_c = state.currentArtifact) === null || _c === void 0 ? void 0 : _c.id) === artifact.id ? (_jsx(ChevronLeft, { className: "memori-artifact-handler-action-icon" })) : (_jsx(ChevronRight, { className: "memori-artifact-handler-action-icon" })) })] }), isChatlogPanel && state.isDrawerOpen &&
194
- ((_d = state.currentArtifact) === null || _d === void 0 ? void 0 : _d.id) === artifact.id && (_jsx(ArtifactDrawer, { isChatLogPanel: true }))] }, artifact.id));
195
- }) }));
316
+ const renderChevron = (isSelected) => {
317
+ if (isChatlogPanel) {
318
+ return isSelected ? (_jsx(ChevronUp, { className: "memori-artifact-handler-action-icon" })) : (_jsx(ChevronDown, { className: "memori-artifact-handler-action-icon" }));
319
+ }
320
+ return isSelected ? (_jsx(ChevronLeft, { className: "memori-artifact-handler-action-icon" })) : (_jsx(ChevronRight, { className: "memori-artifact-handler-action-icon" }));
321
+ };
322
+ const renderInlineDrawer = (isSelected) => isChatlogPanel && isSelected ? (_jsx(ArtifactDrawer, { isChatLogPanel: true })) : null;
323
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: [artifacts.map(artifact => {
324
+ var _a;
325
+ const isSelected = state.isDrawerOpen && ((_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id) === artifact.id;
326
+ return (_jsxs(React.Fragment, { children: [_jsxs("button", { type: "button", className: `memori-artifact-handler${isSelected ? ' memori-artifact-handler--selected' : ''}`, onClick: () => handleArtifactClick(artifact), "aria-pressed": isSelected, "aria-label": artifact.title, style: isSelected
327
+ ? {
328
+ border: '2px solid var(--memori-border-primary)',
329
+ }
330
+ : undefined, children: [_jsx("div", { className: "memori-artifact-handler-icon", children: getIconForMimeType(artifact.mimeType) }), _jsxs("div", { className: "memori-artifact-handler-info", children: [_jsx("div", { className: "memori-artifact-handler-title", children: artifact.title }), _jsxs("div", { className: "memori-artifact-handler-meta", children: [artifact.mimeType, " \u2022 ", formatBytes(artifact.size || 0)] })] }), _jsx("div", { className: "memori-artifact-handler-action", children: renderChevron(isSelected) })] }), renderInlineDrawer(isSelected)] }, artifact.id));
331
+ }), updateEntries.map(([, artifact]) => {
332
+ var _a;
333
+ const isSelected = state.isDrawerOpen && ((_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id) === artifact.id;
334
+ return (_jsxs(React.Fragment, { children: [_jsxs("button", { type: "button", className: `memori-artifact-handler${isSelected ? ' memori-artifact-handler--selected' : ''}`, onClick: () => handleArtifactClick(artifact), "aria-pressed": isSelected, "aria-label": `${artifact.title} — ${updatedLabel}`, style: isSelected
335
+ ? {
336
+ border: '2px solid var(--memori-border-primary)',
337
+ }
338
+ : undefined, children: [_jsx("div", { className: "memori-artifact-handler-icon", children: getIconForMimeType(artifact.mimeType) }), _jsxs("div", { className: "memori-artifact-handler-info", children: [_jsxs("div", { className: "memori-artifact-handler-title", children: [artifact.title, " \u2014 ", updatedLabel] }), _jsxs("div", { className: "memori-artifact-handler-meta", children: [artifact.mimeType, " \u2022 ", formatBytes(artifact.size || 0)] })] }), _jsx("div", { className: "memori-artifact-handler-action", children: renderChevron(isSelected) })] }), renderInlineDrawer(isSelected)] }, artifact.id));
339
+ }), failedUpdates.map((failed, idx) => (_jsxs("div", { className: "memori-artifact-handler memori-artifact-handler--failed", style: {
340
+ opacity: 0.85,
341
+ border: '1px dashed var(--memori-error, #ef4444)',
342
+ cursor: 'default',
343
+ }, role: "status", children: [_jsx("div", { className: "memori-artifact-handler-icon", children: "\u26A0\uFE0F" }), _jsxs("div", { className: "memori-artifact-handler-info", children: [_jsx("div", { className: "memori-artifact-handler-title", children: updateFailedLabel }), _jsxs("div", { className: "memori-artifact-handler-meta", children: [failed.artifactId, " \u2022 ", updateFailedHint] })] })] }, `failed-${failed.artifactId}-${idx}`)))] }));
196
344
  };
197
345
  const MemoizedArtifactHandler = memo(ArtifactHandler, (prev, next) => {
198
346
  const prevText = prev.message.text || prev.message.translatedText || '';
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactHandler.js","sourceRoot":"","sources":["../../../../../src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArtifactHandler.js","sourceRoot":"","sources":["../../../../../src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { ArtifactData, ArtifactSystemState } from '../types/artifact.types';
2
+ import { ArtifactData, ArtifactEdit, ArtifactSystemState, ApplyUpdateResult } from '../types/artifact.types';
3
3
  export type OpenArtifactOptions = {
4
4
  isChatLogPanel?: boolean;
5
5
  };
@@ -8,6 +8,8 @@ interface ArtifactContextType {
8
8
  openArtifact: (artifact: ArtifactData, options?: OpenArtifactOptions) => void;
9
9
  closeArtifact: () => void;
10
10
  toggleFullscreen: () => void;
11
+ registerArtifact: (artifact: ArtifactData) => void;
12
+ applyArtifactUpdate: (artifactId: string, edits: ArtifactEdit[]) => ApplyUpdateResult;
11
13
  }
12
14
  export declare const ArtifactProvider: ({ children }: {
13
15
  children: ReactNode;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useState, useCallback, useMemo } from 'react';
2
+ import { createContext, useContext, useState, useCallback, useMemo, useRef, } from 'react';
3
+ import { applyEdits } from '../utils/applyEdits';
3
4
  const ArtifactContext = createContext(null);
4
5
  export const ArtifactProvider = ({ children }) => {
5
6
  const [state, setState] = useState({
@@ -8,6 +9,7 @@ export const ArtifactProvider = ({ children }) => {
8
9
  isFullscreen: false,
9
10
  isChatLogPanelPresentation: false,
10
11
  });
12
+ const registryRef = useRef({});
11
13
  const openArtifact = useCallback((artifact, options) => {
12
14
  setState(() => {
13
15
  var _a;
@@ -36,12 +38,74 @@ export const ArtifactProvider = ({ children }) => {
36
38
  isFullscreen: !prev.isFullscreen,
37
39
  }));
38
40
  }, []);
41
+ const registerArtifact = useCallback((artifact) => {
42
+ if (!(artifact === null || artifact === void 0 ? void 0 : artifact.artifactId))
43
+ return;
44
+ registryRef.current[artifact.artifactId] = artifact;
45
+ }, []);
46
+ const applyArtifactUpdate = useCallback((artifactId, edits) => {
47
+ const current = registryRef.current[artifactId];
48
+ if (!current) {
49
+ return {
50
+ success: false,
51
+ failedEdits: edits,
52
+ updatedArtifact: null,
53
+ failureReason: 'not-found',
54
+ };
55
+ }
56
+ const { content, failedEdits, appliedCount } = applyEdits(current.content, edits);
57
+ if (appliedCount === 0) {
58
+ return {
59
+ success: false,
60
+ failedEdits,
61
+ updatedArtifact: null,
62
+ failureReason: 'no-match',
63
+ };
64
+ }
65
+ const updatedArtifact = {
66
+ id: `artifact-ui-${artifactId}-${Date.now()}-${Math.random()
67
+ .toString(36)
68
+ .slice(2, 8)}`,
69
+ artifactId,
70
+ content,
71
+ mimeType: current.mimeType,
72
+ title: current.title,
73
+ timestamp: new Date(),
74
+ size: content.length,
75
+ };
76
+ registryRef.current[artifactId] = updatedArtifact;
77
+ setState(prev => {
78
+ var _a;
79
+ if (prev.isDrawerOpen &&
80
+ ((_a = prev.currentArtifact) === null || _a === void 0 ? void 0 : _a.artifactId) === artifactId) {
81
+ return {
82
+ ...prev,
83
+ currentArtifact: updatedArtifact,
84
+ };
85
+ }
86
+ return prev;
87
+ });
88
+ return {
89
+ success: failedEdits.length === 0,
90
+ failedEdits,
91
+ updatedArtifact,
92
+ };
93
+ }, []);
39
94
  const contextValue = useMemo(() => ({
40
95
  state,
41
96
  openArtifact,
42
97
  closeArtifact,
43
98
  toggleFullscreen,
44
- }), [state, openArtifact, closeArtifact, toggleFullscreen]);
99
+ registerArtifact,
100
+ applyArtifactUpdate,
101
+ }), [
102
+ state,
103
+ openArtifact,
104
+ closeArtifact,
105
+ toggleFullscreen,
106
+ registerArtifact,
107
+ applyArtifactUpdate,
108
+ ]);
45
109
  return (_jsx(ArtifactContext.Provider, { value: contextValue, children: children }));
46
110
  };
47
111
  export const useArtifact = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactContext.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/context/ArtifactContext.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAa,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAepG,MAAM,eAAe,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAA2B,EAAE,EAAE;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB;QACtD,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,0BAA0B,EAAE,KAAK;KAClC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,QAAsB,EAAE,OAA6B,EAAE,EAAE;QACxD,QAAQ,CAAC,GAAG,EAAE;;YACZ,OAAO;gBACL,eAAe,EAAE,QAAQ;gBACzB,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;gBACnB,0BAA0B,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,KAAK;aAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,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;gBACnB,0BAA0B,EAAE,KAAK;aAClC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,WAAW,CAAC,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,OAAO,CAAC,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,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1C,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
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;