@gooddata/sdk-ui-gen-ai 11.41.0-alpha.4 → 11.41.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 (384) hide show
  1. package/NOTICE +3 -3
  2. package/esm/anomalyDetection/anomalyDetectionMapping.d.ts +1 -0
  3. package/esm/anomalyDetection/anomalyDetectionMapping.d.ts.map +1 -0
  4. package/esm/clustering/clusteringMapping.d.ts +1 -0
  5. package/esm/clustering/clusteringMapping.d.ts.map +1 -0
  6. package/esm/components/ChatSkeleton.d.ts +1 -0
  7. package/esm/components/ChatSkeleton.d.ts.map +1 -0
  8. package/esm/components/ConfigContext.d.ts +1 -0
  9. package/esm/components/ConfigContext.d.ts.map +1 -0
  10. package/esm/components/ConversationDeleteDialog.d.ts +1 -0
  11. package/esm/components/ConversationDeleteDialog.d.ts.map +1 -0
  12. package/esm/components/ConversationRenameDialog.d.ts +1 -0
  13. package/esm/components/ConversationRenameDialog.d.ts.map +1 -0
  14. package/esm/components/CustomizationProvider.d.ts +1 -0
  15. package/esm/components/CustomizationProvider.d.ts.map +1 -0
  16. package/esm/components/ErrorBoundary.d.ts +1 -0
  17. package/esm/components/ErrorBoundary.d.ts.map +1 -0
  18. package/esm/components/GenAIChat.d.ts +1 -0
  19. package/esm/components/GenAIChat.d.ts.map +1 -0
  20. package/esm/components/GenAIChatAgentDropdown.d.ts +14 -0
  21. package/esm/components/GenAIChatAgentDropdown.d.ts.map +1 -0
  22. package/esm/components/GenAIChatAgentDropdown.js +76 -0
  23. package/esm/components/GenAIChatConversations.d.ts +1 -0
  24. package/esm/components/GenAIChatConversations.d.ts.map +1 -0
  25. package/esm/components/GenAIChatDialog.d.ts +1 -0
  26. package/esm/components/GenAIChatDialog.d.ts.map +1 -0
  27. package/esm/components/GenAIChatHeader.d.ts +1 -0
  28. package/esm/components/GenAIChatHeader.d.ts.map +1 -0
  29. package/esm/components/GenAIChatOverlay.d.ts +1 -0
  30. package/esm/components/GenAIChatOverlay.d.ts.map +1 -0
  31. package/esm/components/GenAIChatWrapper.d.ts +1 -0
  32. package/esm/components/GenAIChatWrapper.d.ts.map +1 -0
  33. package/esm/components/GenAiConversations.d.ts +1 -0
  34. package/esm/components/GenAiConversations.d.ts.map +1 -0
  35. package/esm/components/GenAiStore.d.ts +1 -0
  36. package/esm/components/GenAiStore.d.ts.map +1 -0
  37. package/esm/components/GlobalError.d.ts +1 -0
  38. package/esm/components/GlobalError.d.ts.map +1 -0
  39. package/esm/components/HeaderIcon.d.ts +1 -0
  40. package/esm/components/HeaderIcon.d.ts.map +1 -0
  41. package/esm/components/Input.d.ts +1 -0
  42. package/esm/components/Input.d.ts.map +1 -0
  43. package/esm/components/Input.js +72 -24
  44. package/esm/components/KeyDriverAnalysis.d.ts +1 -0
  45. package/esm/components/KeyDriverAnalysis.d.ts.map +1 -0
  46. package/esm/components/Messages.d.ts +1 -0
  47. package/esm/components/Messages.d.ts.map +1 -0
  48. package/esm/components/Messages.js +9 -6
  49. package/esm/components/completion/InfoComponent.d.ts +1 -0
  50. package/esm/components/completion/InfoComponent.d.ts.map +1 -0
  51. package/esm/components/completion/plugins/rehype-references.d.ts +1 -0
  52. package/esm/components/completion/plugins/rehype-references.d.ts.map +1 -0
  53. package/esm/components/completion/plugins/remark-references.d.ts +1 -0
  54. package/esm/components/completion/plugins/remark-references.d.ts.map +1 -0
  55. package/esm/components/completion/plugins/types.d.ts +1 -0
  56. package/esm/components/completion/plugins/types.d.ts.map +1 -0
  57. package/esm/components/completion/references.d.ts +1 -0
  58. package/esm/components/completion/references.d.ts.map +1 -0
  59. package/esm/components/completion/useCompletion.d.ts +1 -0
  60. package/esm/components/completion/useCompletion.d.ts.map +1 -0
  61. package/esm/components/completion/utils.d.ts +1 -0
  62. package/esm/components/completion/utils.d.ts.map +1 -0
  63. package/esm/components/customized/Disclaimer.d.ts +1 -0
  64. package/esm/components/customized/Disclaimer.d.ts.map +1 -0
  65. package/esm/components/customized/LandingContainer.d.ts +1 -0
  66. package/esm/components/customized/LandingContainer.d.ts.map +1 -0
  67. package/esm/components/customized/LandingQuestion.d.ts +1 -0
  68. package/esm/components/customized/LandingQuestion.d.ts.map +1 -0
  69. package/esm/components/customized/LandingQuestion.js +32 -13
  70. package/esm/components/customized/LandingScreen.d.ts +1 -0
  71. package/esm/components/customized/LandingScreen.d.ts.map +1 -0
  72. package/esm/components/customized/LandingTitle.d.ts +1 -0
  73. package/esm/components/customized/LandingTitle.d.ts.map +1 -0
  74. package/esm/components/highlight/useHighlight.d.ts +1 -0
  75. package/esm/components/highlight/useHighlight.d.ts.map +1 -0
  76. package/esm/components/hooks/useEndpointCheck.d.ts +1 -0
  77. package/esm/components/hooks/useEndpointCheck.d.ts.map +1 -0
  78. package/esm/components/hooks/useFullscreenCheck.d.ts +1 -0
  79. package/esm/components/hooks/useFullscreenCheck.d.ts.map +1 -0
  80. package/esm/components/hooks/useHistoryCheck.d.ts +1 -0
  81. package/esm/components/hooks/useHistoryCheck.d.ts.map +1 -0
  82. package/esm/components/hooks/useSettingsClick.d.ts +1 -0
  83. package/esm/components/hooks/useSettingsClick.d.ts.map +1 -0
  84. package/esm/components/hooks/useThreadLoading.d.ts +1 -0
  85. package/esm/components/hooks/useThreadLoading.d.ts.map +1 -0
  86. package/esm/components/messages/AgentChangeItem.d.ts +7 -0
  87. package/esm/components/messages/AgentChangeItem.d.ts.map +1 -0
  88. package/esm/components/messages/AgentChangeItem.js +17 -0
  89. package/esm/components/messages/AssistantItem.d.ts +1 -0
  90. package/esm/components/messages/AssistantItem.d.ts.map +1 -0
  91. package/esm/components/messages/AssistantItemFeedback.d.ts +1 -0
  92. package/esm/components/messages/AssistantItemFeedback.d.ts.map +1 -0
  93. package/esm/components/messages/AssistantItemSuggestions.d.ts +3 -2
  94. package/esm/components/messages/AssistantItemSuggestions.d.ts.map +1 -0
  95. package/esm/components/messages/AssistantItemSuggestions.js +6 -2
  96. package/esm/components/messages/AssistantMessage.d.ts +1 -0
  97. package/esm/components/messages/AssistantMessage.d.ts.map +1 -0
  98. package/esm/components/messages/ConversationItemContents.d.ts +1 -0
  99. package/esm/components/messages/ConversationItemContents.d.ts.map +1 -0
  100. package/esm/components/messages/FeedbackPopup.d.ts +1 -0
  101. package/esm/components/messages/FeedbackPopup.d.ts.map +1 -0
  102. package/esm/components/messages/ItemsGroup.d.ts +1 -0
  103. package/esm/components/messages/ItemsGroup.d.ts.map +1 -0
  104. package/esm/components/messages/MessageContents.d.ts +1 -0
  105. package/esm/components/messages/MessageContents.d.ts.map +1 -0
  106. package/esm/components/messages/MessageScroller.d.ts +1 -0
  107. package/esm/components/messages/MessageScroller.d.ts.map +1 -0
  108. package/esm/components/messages/ReasoningDropdown.d.ts +1 -0
  109. package/esm/components/messages/ReasoningDropdown.d.ts.map +1 -0
  110. package/esm/components/messages/ReasoningMessage.d.ts +1 -0
  111. package/esm/components/messages/ReasoningMessage.d.ts.map +1 -0
  112. package/esm/components/messages/SystemItem.d.ts +7 -0
  113. package/esm/components/messages/SystemItem.d.ts.map +1 -0
  114. package/esm/components/messages/SystemItem.js +12 -0
  115. package/esm/components/messages/ToolItem.d.ts +1 -0
  116. package/esm/components/messages/ToolItem.d.ts.map +1 -0
  117. package/esm/components/messages/UserItem.d.ts +1 -0
  118. package/esm/components/messages/UserItem.d.ts.map +1 -0
  119. package/esm/components/messages/UserMessage.d.ts +1 -0
  120. package/esm/components/messages/UserMessage.d.ts.map +1 -0
  121. package/esm/components/messages/components/SemanticSearchTreeView.d.ts +1 -0
  122. package/esm/components/messages/components/SemanticSearchTreeView.d.ts.map +1 -0
  123. package/esm/components/messages/components/VisualizationErrorBoundary.d.ts +1 -0
  124. package/esm/components/messages/components/VisualizationErrorBoundary.d.ts.map +1 -0
  125. package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts +1 -0
  126. package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts.map +1 -0
  127. package/esm/components/messages/contents/CustomHyperlink.d.ts +1 -0
  128. package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -0
  129. package/esm/components/messages/contents/ErrorContents.d.ts +1 -0
  130. package/esm/components/messages/contents/ErrorContents.d.ts.map +1 -0
  131. package/esm/components/messages/contents/Markdown.d.ts +1 -0
  132. package/esm/components/messages/contents/Markdown.d.ts.map +1 -0
  133. package/esm/components/messages/contents/ReasoningContents.d.ts +1 -0
  134. package/esm/components/messages/contents/ReasoningContents.d.ts.map +1 -0
  135. package/esm/components/messages/contents/ReasoningIcon.d.ts +3 -2
  136. package/esm/components/messages/contents/ReasoningIcon.d.ts.map +1 -0
  137. package/esm/components/messages/contents/RoutingContents.d.ts +1 -0
  138. package/esm/components/messages/contents/RoutingContents.d.ts.map +1 -0
  139. package/esm/components/messages/contents/SearchContents.d.ts +1 -0
  140. package/esm/components/messages/contents/SearchContents.d.ts.map +1 -0
  141. package/esm/components/messages/contents/SemanticSearchContents.d.ts +1 -0
  142. package/esm/components/messages/contents/SemanticSearchContents.d.ts.map +1 -0
  143. package/esm/components/messages/contents/TextContents.d.ts +1 -0
  144. package/esm/components/messages/contents/TextContents.d.ts.map +1 -0
  145. package/esm/components/messages/contents/VisualizationContents.d.ts +4 -1
  146. package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -0
  147. package/esm/components/messages/contents/VisualizationContents.js +7 -3
  148. package/esm/components/messages/contents/VisualizationSaveDialog.d.ts +1 -0
  149. package/esm/components/messages/contents/VisualizationSaveDialog.d.ts.map +1 -0
  150. package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.d.ts +1 -0
  151. package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.d.ts.map +1 -0
  152. package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts +1 -0
  153. package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts.map +1 -0
  154. package/esm/components/messages/contents/replaceLinks.d.ts +1 -0
  155. package/esm/components/messages/contents/replaceLinks.d.ts.map +1 -0
  156. package/esm/components/messages/contents/useExecution.d.ts +1 -0
  157. package/esm/components/messages/contents/useExecution.d.ts.map +1 -0
  158. package/esm/components/messages/contents/useKdaDefinition.d.ts +1 -0
  159. package/esm/components/messages/contents/useKdaDefinition.d.ts.map +1 -0
  160. package/esm/components/messages/conversationContents/ConversationErrorContent.d.ts +1 -0
  161. package/esm/components/messages/conversationContents/ConversationErrorContent.d.ts.map +1 -0
  162. package/esm/components/messages/conversationContents/ConversationKdaContent.d.ts +1 -0
  163. package/esm/components/messages/conversationContents/ConversationKdaContent.d.ts.map +1 -0
  164. package/esm/components/messages/conversationContents/ConversationReasoningContent.d.ts +1 -0
  165. package/esm/components/messages/conversationContents/ConversationReasoningContent.d.ts.map +1 -0
  166. package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts +1 -0
  167. package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts.map +1 -0
  168. package/esm/components/messages/conversationContents/ConversationTextContent.d.ts +1 -0
  169. package/esm/components/messages/conversationContents/ConversationTextContent.d.ts.map +1 -0
  170. package/esm/components/messages/conversationContents/ConversationToolCallContent.d.ts +1 -0
  171. package/esm/components/messages/conversationContents/ConversationToolCallContent.d.ts.map +1 -0
  172. package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts +1 -0
  173. package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts.map +1 -0
  174. package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts +1 -0
  175. package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -0
  176. package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts +1 -0
  177. package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map +1 -0
  178. package/esm/components/messages/conversationContents/ConversationWhatIfContent.d.ts +1 -0
  179. package/esm/components/messages/conversationContents/ConversationWhatIfContent.d.ts.map +1 -0
  180. package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts +1 -0
  181. package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts.map +1 -0
  182. package/esm/components/messages/conversationContents/useExecution.d.ts +1 -0
  183. package/esm/components/messages/conversationContents/useExecution.d.ts.map +1 -0
  184. package/esm/components/messages/conversationContents/useKdaDefinition.d.ts +1 -0
  185. package/esm/components/messages/conversationContents/useKdaDefinition.d.ts.map +1 -0
  186. package/esm/components/messages/conversationContents/useSaveCheck.d.ts +1 -0
  187. package/esm/components/messages/conversationContents/useSaveCheck.d.ts.map +1 -0
  188. package/esm/components/messages/itemState.d.ts +1 -0
  189. package/esm/components/messages/itemState.d.ts.map +1 -0
  190. package/esm/components/messages/messageState.d.ts +1 -0
  191. package/esm/components/messages/messageState.d.ts.map +1 -0
  192. package/esm/components/messages/useUserFeedback.d.ts +1 -0
  193. package/esm/components/messages/useUserFeedback.d.ts.map +1 -0
  194. package/esm/components/utils/agentSelection.d.ts +20 -0
  195. package/esm/components/utils/agentSelection.d.ts.map +1 -0
  196. package/esm/components/utils/agentSelection.js +47 -0
  197. package/esm/components/utils/conversationGrouper.d.ts +1 -0
  198. package/esm/components/utils/conversationGrouper.d.ts.map +1 -0
  199. package/esm/components/utils/groupUtility.d.ts +2 -1
  200. package/esm/components/utils/groupUtility.d.ts.map +1 -0
  201. package/esm/components/utils/groupUtility.js +3 -0
  202. package/esm/components/utils/intersectionUtils.d.ts +1 -0
  203. package/esm/components/utils/intersectionUtils.d.ts.map +1 -0
  204. package/esm/components/utils/markdownUtils.d.ts +1 -0
  205. package/esm/components/utils/markdownUtils.d.ts.map +1 -0
  206. package/esm/components/utils/modelCheckUtility.d.ts +1 -0
  207. package/esm/components/utils/modelCheckUtility.d.ts.map +1 -0
  208. package/esm/forecast/forecastMapping.d.ts +1 -0
  209. package/esm/forecast/forecastMapping.d.ts.map +1 -0
  210. package/esm/hooks/useGenAIStore.d.ts +1 -0
  211. package/esm/hooks/useGenAIStore.d.ts.map +1 -0
  212. package/esm/hooks/useGenAIStore.js +4 -1
  213. package/esm/hooks/useGenAiChatAvailability.d.ts +1 -0
  214. package/esm/hooks/useGenAiChatAvailability.d.ts.map +1 -0
  215. package/esm/index.d.ts +2 -1
  216. package/esm/index.d.ts.map +1 -0
  217. package/esm/internal.d.ts +1 -0
  218. package/esm/internal.d.ts.map +1 -0
  219. package/esm/localization/IntlWrapper.d.ts +1 -0
  220. package/esm/localization/IntlWrapper.d.ts.map +1 -0
  221. package/esm/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
  222. package/esm/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -0
  223. package/esm/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
  224. package/esm/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -0
  225. package/esm/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
  226. package/esm/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -0
  227. package/esm/localization/bundles/en-US.localization-bundle.d.ts +25 -0
  228. package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -0
  229. package/esm/localization/bundles/en-US.localization-bundle.js +24 -0
  230. package/esm/localization/bundles/es-419.localization-bundle.d.ts +1 -0
  231. package/esm/localization/bundles/es-419.localization-bundle.d.ts.map +1 -0
  232. package/esm/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
  233. package/esm/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -0
  234. package/esm/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
  235. package/esm/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -0
  236. package/esm/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
  237. package/esm/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -0
  238. package/esm/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
  239. package/esm/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -0
  240. package/esm/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
  241. package/esm/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -0
  242. package/esm/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
  243. package/esm/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -0
  244. package/esm/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
  245. package/esm/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -0
  246. package/esm/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
  247. package/esm/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -0
  248. package/esm/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
  249. package/esm/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -0
  250. package/esm/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
  251. package/esm/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -0
  252. package/esm/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
  253. package/esm/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -0
  254. package/esm/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
  255. package/esm/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -0
  256. package/esm/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
  257. package/esm/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -0
  258. package/esm/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
  259. package/esm/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -0
  260. package/esm/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
  261. package/esm/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -0
  262. package/esm/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
  263. package/esm/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -0
  264. package/esm/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
  265. package/esm/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -0
  266. package/esm/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
  267. package/esm/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -0
  268. package/esm/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
  269. package/esm/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -0
  270. package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
  271. package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -0
  272. package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
  273. package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -0
  274. package/esm/localization/translations.d.ts +1 -0
  275. package/esm/localization/translations.d.ts.map +1 -0
  276. package/esm/model.d.ts +28 -1
  277. package/esm/model.d.ts.map +1 -0
  278. package/esm/model.js +16 -0
  279. package/esm/permissions/PermissionsContext.d.ts +1 -0
  280. package/esm/permissions/PermissionsContext.d.ts.map +1 -0
  281. package/esm/permissions/usePermissions.d.ts +1 -0
  282. package/esm/permissions/usePermissions.d.ts.map +1 -0
  283. package/esm/permissions/useWorkspacePermissions.d.ts +1 -0
  284. package/esm/permissions/useWorkspacePermissions.d.ts.map +1 -0
  285. package/esm/permissions/utils.d.ts +1 -0
  286. package/esm/permissions/utils.d.ts.map +1 -0
  287. package/esm/sdk-ui-gen-ai.d.ts +10 -1
  288. package/esm/store/chatWindow/allowedRelationshipTypes.d.ts +1 -0
  289. package/esm/store/chatWindow/allowedRelationshipTypes.d.ts.map +1 -0
  290. package/esm/store/chatWindow/chatWindowSelectors.d.ts +4 -0
  291. package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -0
  292. package/esm/store/chatWindow/chatWindowSelectors.js +6 -0
  293. package/esm/store/chatWindow/chatWindowSlice.d.ts +12 -1
  294. package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -0
  295. package/esm/store/chatWindow/chatWindowSlice.js +10 -2
  296. package/esm/store/events.d.ts +1 -0
  297. package/esm/store/events.d.ts.map +1 -0
  298. package/esm/store/localStorage.d.ts +1 -0
  299. package/esm/store/localStorage.d.ts.map +1 -0
  300. package/esm/store/messages/messagesSelectors.d.ts +67 -1
  301. package/esm/store/messages/messagesSelectors.d.ts.map +1 -0
  302. package/esm/store/messages/messagesSelectors.js +3 -0
  303. package/esm/store/messages/messagesSlice.d.ts +26 -3
  304. package/esm/store/messages/messagesSlice.d.ts.map +1 -0
  305. package/esm/store/messages/messagesSlice.js +82 -2
  306. package/esm/store/options.d.ts +1 -0
  307. package/esm/store/options.d.ts.map +1 -0
  308. package/esm/store/queues/queue.newMessage.d.ts +1 -0
  309. package/esm/store/queues/queue.newMessage.d.ts.map +1 -0
  310. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +1 -0
  311. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -0
  312. package/esm/store/sideEffects/converters/toLocalContent.d.ts +1 -0
  313. package/esm/store/sideEffects/converters/toLocalContent.d.ts.map +1 -0
  314. package/esm/store/sideEffects/index.d.ts +1 -0
  315. package/esm/store/sideEffects/index.d.ts.map +1 -0
  316. package/esm/store/sideEffects/index.js +10 -1
  317. package/esm/store/sideEffects/loadAgents.d.ts +13 -0
  318. package/esm/store/sideEffects/loadAgents.d.ts.map +1 -0
  319. package/esm/store/sideEffects/loadAgents.js +46 -0
  320. package/esm/store/sideEffects/loadCatalogItems.d.ts +1 -0
  321. package/esm/store/sideEffects/loadCatalogItems.d.ts.map +1 -0
  322. package/esm/store/sideEffects/loadColorPalette.d.ts +1 -0
  323. package/esm/store/sideEffects/loadColorPalette.d.ts.map +1 -0
  324. package/esm/store/sideEffects/loadSettings.d.ts +1 -0
  325. package/esm/store/sideEffects/loadSettings.d.ts.map +1 -0
  326. package/esm/store/sideEffects/onAgentSwitch.d.ts +22 -0
  327. package/esm/store/sideEffects/onAgentSwitch.d.ts.map +1 -0
  328. package/esm/store/sideEffects/onAgentSwitch.js +55 -0
  329. package/esm/store/sideEffects/onChatOpenSync.d.ts +44 -0
  330. package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -0
  331. package/esm/store/sideEffects/onChatOpenSync.js +141 -0
  332. package/esm/store/sideEffects/onConversationDelete.d.ts +1 -0
  333. package/esm/store/sideEffects/onConversationDelete.d.ts.map +1 -0
  334. package/esm/store/sideEffects/onConversationPin.d.ts +1 -0
  335. package/esm/store/sideEffects/onConversationPin.d.ts.map +1 -0
  336. package/esm/store/sideEffects/onConversationRename.d.ts +1 -0
  337. package/esm/store/sideEffects/onConversationRename.d.ts.map +1 -0
  338. package/esm/store/sideEffects/onEvent.d.ts +1 -0
  339. package/esm/store/sideEffects/onEvent.d.ts.map +1 -0
  340. package/esm/store/sideEffects/onThreadClear.d.ts +1 -0
  341. package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -0
  342. package/esm/store/sideEffects/onThreadLoad.d.ts +1 -0
  343. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -0
  344. package/esm/store/sideEffects/onThreadLoad.js +2 -1
  345. package/esm/store/sideEffects/onUserFeedback.d.ts +1 -0
  346. package/esm/store/sideEffects/onUserFeedback.d.ts.map +1 -0
  347. package/esm/store/sideEffects/onUserMessage.d.ts +1 -0
  348. package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -0
  349. package/esm/store/sideEffects/onUserMessage.js +20 -5
  350. package/esm/store/sideEffects/onUserMessageUpdate.d.ts +1 -0
  351. package/esm/store/sideEffects/onUserMessageUpdate.d.ts.map +1 -0
  352. package/esm/store/sideEffects/onVerboseStore.d.ts +1 -0
  353. package/esm/store/sideEffects/onVerboseStore.d.ts.map +1 -0
  354. package/esm/store/sideEffects/onVisualisationRender.d.ts +1 -0
  355. package/esm/store/sideEffects/onVisualisationRender.d.ts.map +1 -0
  356. package/esm/store/sideEffects/onVisualizationSave.d.ts +1 -0
  357. package/esm/store/sideEffects/onVisualizationSave.d.ts.map +1 -0
  358. package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts +1 -0
  359. package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts.map +1 -0
  360. package/esm/store/sideEffects/utils.d.ts +1 -0
  361. package/esm/store/sideEffects/utils.d.ts.map +1 -0
  362. package/esm/store/store.d.ts +1 -0
  363. package/esm/store/store.d.ts.map +1 -0
  364. package/esm/store/store.js +4 -1
  365. package/esm/store/types.d.ts +1 -0
  366. package/esm/store/types.d.ts.map +1 -0
  367. package/esm/store/utils.d.ts +1 -0
  368. package/esm/store/utils.d.ts.map +1 -0
  369. package/esm/types.d.ts +3 -1
  370. package/esm/types.d.ts.map +1 -0
  371. package/esm/utils.d.ts +1 -0
  372. package/esm/utils.d.ts.map +1 -0
  373. package/esm/whatIf/whatIfMapping.d.ts +1 -0
  374. package/esm/whatIf/whatIfMapping.d.ts.map +1 -0
  375. package/package.json +20 -20
  376. package/styles/css/input.css +103 -13
  377. package/styles/css/input.css.map +1 -1
  378. package/styles/css/main.css +152 -14
  379. package/styles/css/main.css.map +1 -1
  380. package/styles/css/messages.css +47 -0
  381. package/styles/css/messages.css.map +1 -1
  382. package/styles/scss/input.scss +113 -17
  383. package/styles/scss/main.scss +2 -1
  384. package/styles/scss/messages.scss +61 -0
@@ -0,0 +1,44 @@
1
+ import { type PayloadAction } from "@reduxjs/toolkit";
2
+ import { type IChatConversationLocal, type IChatConversationLocalItem } from "../../model.js";
3
+ /**
4
+ * Re-sync the active conversation with the backend whenever the chat window is opened.
5
+ *
6
+ * The host shell hosts several micro-frontends (Catalog, Metric editor, Analytical Designer) and
7
+ * keeps their runtimes alive across client-side navigation. Each runtime owns its own GenAI redux
8
+ * store, which is only populated once on initial mount. As a result, a conversation started or
9
+ * switched to on one micro-frontend was not reflected on another until a full page reload.
10
+ *
11
+ * When the chat is (re)opened we re-fetch the conversation list from the backend and, if another
12
+ * conversation has become the most recently active one, switch to it. We then re-fetch the active
13
+ * thread from the backend and replace the cached messages atomically so that messages created on
14
+ * another micro-frontend show up even when this runtime already had the conversation cached. This
15
+ * keeps the conversation and its messages in sync across host navigation without requiring a manual
16
+ * reload. A flaky/empty backend response never clears what the user is currently looking at.
17
+ *
18
+ * Only runs in agentic conversations mode and only after the initial load finished. A brand-new
19
+ * unsent draft conversation or an in-progress message exchange is never replaced.
20
+ * @internal
21
+ */
22
+ export declare function onChatOpenSync({ payload: { isOpen } }: PayloadAction<{
23
+ isOpen: boolean;
24
+ }>): Generator<import("redux-saga/effects").CallEffect<IChatConversationLocalItem[]> | import("redux-saga/effects").CallEffect<{
25
+ id: string;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ title?: string | undefined;
29
+ pinned?: boolean | undefined;
30
+ agentId?: string | undefined;
31
+ localId: string;
32
+ } | undefined> | import("redux-saga/effects").PutEffect<{
33
+ payload: {
34
+ messages?: import("../../model.js").Message[] | undefined;
35
+ items?: IChatConversationLocalItem[] | undefined;
36
+ };
37
+ type: "messages/setMessagesAction";
38
+ }> | import("redux-saga/effects").PutEffect<{
39
+ payload: {
40
+ conversation: IChatConversationLocal;
41
+ };
42
+ type: "messages/setCurrentConversationAction";
43
+ }> | import("redux-saga/effects").SelectEffect, void, never>;
44
+ //# sourceMappingURL=onChatOpenSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onChatOpenSync.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onChatOpenSync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAElC,MAAM,gBAAgB,CAAC;AAexB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAiB,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;;;;;;;;;;;;;;;;;;;6DAyE1F"}
@@ -0,0 +1,141 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { call, getContext, put, select } from "redux-saga/effects";
3
+ import { makeConversationItem, } from "../../model.js";
4
+ import { settingsSelector } from "../chatWindow/chatWindowSelectors.js";
5
+ import { asyncProcessSelector, conversationSelector, conversationsLoadedSelector, } from "../messages/messagesSelectors.js";
6
+ import { loadConversationsSuccessAction, setCurrentConversationAction, setMessagesAction, } from "../messages/messagesSlice.js";
7
+ import { convertToLocalContent } from "./converters/toLocalContent.js";
8
+ /**
9
+ * Re-sync the active conversation with the backend whenever the chat window is opened.
10
+ *
11
+ * The host shell hosts several micro-frontends (Catalog, Metric editor, Analytical Designer) and
12
+ * keeps their runtimes alive across client-side navigation. Each runtime owns its own GenAI redux
13
+ * store, which is only populated once on initial mount. As a result, a conversation started or
14
+ * switched to on one micro-frontend was not reflected on another until a full page reload.
15
+ *
16
+ * When the chat is (re)opened we re-fetch the conversation list from the backend and, if another
17
+ * conversation has become the most recently active one, switch to it. We then re-fetch the active
18
+ * thread from the backend and replace the cached messages atomically so that messages created on
19
+ * another micro-frontend show up even when this runtime already had the conversation cached. This
20
+ * keeps the conversation and its messages in sync across host navigation without requiring a manual
21
+ * reload. A flaky/empty backend response never clears what the user is currently looking at.
22
+ *
23
+ * Only runs in agentic conversations mode and only after the initial load finished. A brand-new
24
+ * unsent draft conversation or an in-progress message exchange is never replaced.
25
+ * @internal
26
+ */
27
+ export function* onChatOpenSync({ payload: { isOpen } }) {
28
+ // Only act when the chat is being opened.
29
+ if (!isOpen) {
30
+ return;
31
+ }
32
+ const settings = yield select(settingsSelector);
33
+ // Only the agentic conversations flow keeps a list of conversations on the backend.
34
+ if (!settings?.enableAiAgenticConversations) {
35
+ return;
36
+ }
37
+ // The very first open is handled by the regular thread loading; only re-sync afterwards.
38
+ const conversationsLoaded = yield select(conversationsLoadedSelector);
39
+ if (!conversationsLoaded) {
40
+ return;
41
+ }
42
+ // Do not interrupt a genuine in-flight exchange. We deliberately only bail on "evaluating"
43
+ // (a user message is being processed) and "clearing" (the user is resetting the thread).
44
+ // "loading"/"restoring" merely indicate the initial thread load that useThreadLoading kicks
45
+ // off on (re)open - that load happens *before* setOpenAction in the same render commit, so
46
+ // treating it as "in progress" here would suppress every legitimate open-sync. Re-syncing in
47
+ // that state is safe: we fetch the thread ourselves and replace the messages atomically once it
48
+ // resolves, which supersedes whatever the concurrent initial load produces.
49
+ const asyncProcess = yield select(asyncProcessSelector);
50
+ if (asyncProcess === "evaluating" || asyncProcess === "clearing") {
51
+ return;
52
+ }
53
+ const current = yield select(conversationSelector);
54
+ // Keep a brand-new, not-yet-persisted draft conversation as-is.
55
+ if (current && !current.id) {
56
+ return;
57
+ }
58
+ try {
59
+ const latest = yield call(fetchLatestConversation);
60
+ // Empty (or transient) backend result - most likely a flaky list fetch. Keep the current UI
61
+ // (list + thread) untouched rather than half-clearing it. fetchLatestConversation already
62
+ // refrains from clobbering the stored list in this case, so there is nothing to reconcile.
63
+ if (!latest) {
64
+ return;
65
+ }
66
+ // Fetch the latest thread from the backend FIRST, then commit the result atomically.
67
+ //
68
+ // We deliberately do this before touching the store. The previous implementation cleared the
69
+ // cached messages and dispatched loadThreadAction to reload them, but that had two problems:
70
+ // - a failed reload left the user staring at an empty thread (the cache was already wiped),
71
+ // - it relied on switching the conversation first, which flips loaded=false and lets
72
+ // useThreadLoading kick off its own concurrent onThreadLoad - an append-based load that
73
+ // could duplicate history against ours.
74
+ //
75
+ // Fetching first and only then dispatching means: on failure the catch below leaves the
76
+ // previously loaded messages untouched, and on success we apply the switch and the messages
77
+ // back-to-back without yielding, so loaded never transiently flips to false and no concurrent
78
+ // load is triggered. The item list is built purely from the backend response (we do NOT append
79
+ // to existing cached items), so re-creating items with fresh localIds cannot duplicate history.
80
+ const items = yield call(fetchConversationItems, latest.id);
81
+ // Switch to the latest conversation if it differs from the current one. setMessagesAction
82
+ // writes into whatever currentConversation points at, so the switch must come first - and
83
+ // both puts are dispatched synchronously (no yield between them) so the UI never observes the
84
+ // intermediate empty/unloaded state.
85
+ if (latest.id !== current?.id) {
86
+ yield put(setCurrentConversationAction({ conversation: latest }));
87
+ }
88
+ yield put(setMessagesAction({ items }));
89
+ }
90
+ catch {
91
+ // Fail silently - keep showing whatever is currently loaded.
92
+ }
93
+ }
94
+ /**
95
+ * Re-fetch the conversation list and return the most recently updated conversation.
96
+ *
97
+ * Only refreshes the stored list when the backend actually returns conversations. An empty result
98
+ * is treated as transient and left to the caller, so we never clear the history panel while the
99
+ * chat still shows a thread (which would be an inconsistent half-cleared state).
100
+ * @internal
101
+ */
102
+ function* fetchLatestConversation() {
103
+ const backend = yield getContext("backend");
104
+ const workspace = yield getContext("workspace");
105
+ const isPreview = yield getContext("isPreview");
106
+ const api = backend.workspace(workspace).genAI().getChatConversations({ isPreview });
107
+ const query = api.getConversationItemsQuery().withSize(100).withPage(0);
108
+ const getConversations = query.query.bind(query);
109
+ const results = yield call(getConversations);
110
+ const conversations = results.items.map((item) => ({ ...item, localId: item.id }));
111
+ // Nothing on the backend - do not clobber the stored list; keep whatever is currently shown.
112
+ if (conversations.length === 0) {
113
+ return undefined;
114
+ }
115
+ // Refresh the stored list so the history panel reflects the latest state too.
116
+ yield put(loadConversationsSuccessAction({ conversations }));
117
+ return conversations
118
+ .slice()
119
+ .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime())[0];
120
+ }
121
+ /**
122
+ * Fetch the thread history for the given conversation and convert it to local items.
123
+ *
124
+ * Mirrors how onThreadLoad's fetchCurrentConversation builds items from the backend response, but
125
+ * intentionally returns ONLY the backend items (no merge/append with cached items) so the caller can
126
+ * replace the cached history wholesale without duplicating it.
127
+ * @internal
128
+ */
129
+ function* fetchConversationItems(conversationId) {
130
+ const backend = yield getContext("backend");
131
+ const workspace = yield getContext("workspace");
132
+ const isPreview = yield getContext("isPreview");
133
+ const api = backend.workspace(workspace).genAI().getChatConversations({ isPreview });
134
+ const preparedThread = api.getConversationThread(conversationId);
135
+ const loadHistory = preparedThread.loadHistory.bind(preparedThread);
136
+ const results = yield call(loadHistory);
137
+ return results.map((item) => makeConversationItem({
138
+ ...item,
139
+ content: convertToLocalContent(item.content),
140
+ }));
141
+ }
@@ -24,3 +24,4 @@ export declare function onConversationDelete({ payload }: PayloadAction<{
24
24
  generatingTitle?: boolean | undefined;
25
25
  inProgress?: boolean | undefined;
26
26
  }>;
27
+ //# sourceMappingURL=onConversationDelete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onConversationDelete.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onConversationDelete.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAQ7D,wBAAiB,oBAAoB,CAAC,EAClC,OAAO,EACV,EAAE,aAAa,CAAC;IACb,YAAY,EAAE,sBAAsB,CAAC;CACxC,CAAC;;;;;;;;;;;;;;;;;;;;GAuCD"}
@@ -18,3 +18,4 @@ export declare function onConversationPin({ payload }: ReturnType<typeof pinConv
18
18
  };
19
19
  type: "messages/pinConversationFailureAction";
20
20
  }> | import("redux-saga/effects").SelectEffect, void, never>;
21
+ //# sourceMappingURL=onConversationPin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onConversationPin.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onConversationPin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EACH,KAAK,qBAAqB,EAG7B,MAAM,8BAA8B,CAAC;AAEtC,wBAAiB,iBAAiB,CAAC,EAC/B,OAAO,EACV,EACK,UAAU,CAAC,OAAO,qBAAqB,CAAC,GACxC,aAAa,CAAC;IAAE,YAAY,EAAE,sBAAsB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;;;;;;;;;;;;;6DAmC7E"}
@@ -18,3 +18,4 @@ export declare function onConversationRename({ payload }: ReturnType<typeof rena
18
18
  };
19
19
  type: "messages/renameConversationFailureAction";
20
20
  }> | import("redux-saga/effects").SelectEffect, void, never>;
21
+ //# sourceMappingURL=onConversationRename.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onConversationRename.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onConversationRename.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EACH,KAAK,wBAAwB,EAGhC,MAAM,8BAA8B,CAAC;AAEtC,wBAAiB,oBAAoB,CAAC,EAClC,OAAO,EACV,EACK,UAAU,CAAC,OAAO,wBAAwB,CAAC,GAC3C,aAAa,CAAC;IAAE,YAAY,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;;;;;;;;;;;;;6DAmC3E"}
@@ -1 +1,2 @@
1
1
  export declare function onEvent(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
2
+ //# sourceMappingURL=onEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onEvent.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onEvent.ts"],"names":[],"mappings":"AAiDA,wBAAiB,OAAO,6EAuBvB"}
@@ -24,3 +24,4 @@ export declare function onThreadClear(): Generator<Generator<import("redux-saga/
24
24
  };
25
25
  type: "messages/clearThreadErrorAction";
26
26
  }> | import("redux-saga/effects").SelectEffect, void, IUserWorkspaceSettings | undefined>;
27
+ //# sourceMappingURL=onThreadClear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onThreadClear.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onThreadClear.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC9B,MAAM,2BAA2B,CAAC;AAYnC;;;GAGG;AACH,wBAAiB,aAAa;;;;;;;;;;;;;;;;;;;;0FAe7B"}
@@ -32,3 +32,4 @@ export declare function onThreadLoad(): Generator<Generator<import("redux-saga/e
32
32
  * @internal
33
33
  */
34
34
  export declare function mergeWithCache(backendMessages: Message[], cachedMessages: Message[]): Message[];
35
+ //# sourceMappingURL=onThreadLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onThreadLoad.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onThreadLoad.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,kBAAkB,EAKvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAKH,KAAK,OAAO,EAIf,MAAM,gBAAgB,CAAC;AAsBxB;;;GAGG;AACH,wBAAiB,YAAY;;;;;;;;;;;;;;;;;;;0FAW5B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CA+B/F"}
@@ -167,7 +167,8 @@ function* fetchCurrentConversation() {
167
167
  yield put(loadConversationSuccessAction({
168
168
  currentConversation: selectedConversation,
169
169
  conversationItems: [
170
- ...messages,
170
+ // Drop unconfirmed optimistic system items: the backend returns the persisted version.
171
+ ...messages.filter((msg) => !(msg.role === "system" && msg.id === "")),
171
172
  ...resultsItems.map((item) => {
172
173
  return makeConversationItem({
173
174
  ...item,
@@ -23,3 +23,4 @@ export declare function onUserFeedback({ payload }: PayloadAction<{
23
23
  generatingTitle?: boolean | undefined;
24
24
  inProgress?: boolean | undefined;
25
25
  } & IChatConversationLocalItem[] & Message[]>;
26
+ //# sourceMappingURL=onUserFeedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onUserFeedback.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserFeedback.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAA+B,KAAK,0BAA0B,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAW5G;;;;GAIG;AACH,wBAAiB,cAAc,CAAC,EAC5B,OAAO,EACV,EAAE,aAAa,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,gCAAgC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;;;;;;;;;;;8CA2DD"}
@@ -53,3 +53,4 @@ export declare function onUserMessage({ payload }: ReturnType<typeof newMessageA
53
53
  };
54
54
  type: "messages/setCurrentConversationAction";
55
55
  }> | import("redux-saga/effects").SelectEffect, void, never> | import("redux-saga/effects").SelectEffect, void, IChatConversationLocal | undefined>;
56
+ //# sourceMappingURL=onUserMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onUserMessage.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessage.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,KAAK,iBAAiB,EASzB,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAOlC,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,EAMH,KAAK,gBAAgB,EAExB,MAAM,8BAA8B,CAAC;AAMtC;;;GAGG;AACH,wBAAiB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oJAmB9E"}
@@ -3,9 +3,9 @@ import { call, cancel, cancelled, getContext, put, select } from "redux-saga/eff
3
3
  import { isChatConversationError, isChatConversationItem, } from "@gooddata/sdk-backend-spi";
4
4
  import { isChatConversationLocalItem, isTextContents, isUserMessage, makeAssistantItem, makeAssistantMessage, } from "../../model.js";
5
5
  import { generateTitleFromQuestion } from "../../utils.js";
6
- import { allowedRelationshipTypesSelector, objectTypesSelector, settingsSelector, userContextSelector, } from "../chatWindow/chatWindowSelectors.js";
6
+ import { agentSwitchingActiveSelector, allowedRelationshipTypesSelector, objectTypesSelector, settingsSelector, userContextSelector, } from "../chatWindow/chatWindowSelectors.js";
7
7
  import { clearUserContextAction } from "../chatWindow/chatWindowSlice.js";
8
- import { conversationMessagesByIdSelector, conversationSelector, messagesSelector, } from "../messages/messagesSelectors.js";
8
+ import { conversationMessagesByIdSelector, conversationSelector, messagesSelector, selectedAgentIdSelector, } from "../messages/messagesSelectors.js";
9
9
  import { evaluateMessageAction, evaluateMessageCompleteAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageUpdateAction, setCurrentConversationAction, } from "../messages/messagesSlice.js";
10
10
  import { processContents } from "./converters/interactionsToMessages.js";
11
11
  import { convertToLocalContent } from "./converters/toLocalContent.js";
@@ -201,18 +201,32 @@ function* conversationUserMessage(message) {
201
201
  }
202
202
  else {
203
203
  const api = backend.workspace(workspace).genAI().getChatConversations({ isPreview });
204
- const created = yield call(api.create.bind(api));
204
+ // agentSwitchingActiveSelector is false in preview mode, so preview conversations are
205
+ // never created with an explicit agent and stay pinned to the preview agent being built.
206
+ const agentSwitchingActive = yield select(agentSwitchingActiveSelector);
207
+ const selectedAgentId = agentSwitchingActive
208
+ ? yield select(selectedAgentIdSelector)
209
+ : undefined;
210
+ const created = yield call({ context: api, fn: api.create }, selectedAgentId
211
+ ? {
212
+ agentId: selectedAgentId,
213
+ }
214
+ : undefined);
205
215
  const updated = yield call(api.update.bind(api), created.id, {
206
216
  title: generateTitleFromQuestion(message.content.text),
207
217
  });
208
218
  //save
209
219
  conversation = {
210
220
  ...updated,
221
+ agentId: updated.agentId ?? created.agentId ?? selectedAgentId,
211
222
  localId: conversationState.localId,
212
223
  };
213
224
  // Store it as current conversation and clear the transient flag
214
225
  yield put(setCurrentConversationAction({ conversation }));
215
226
  }
227
+ if (!conversation) {
228
+ throw new Error("Conversation is not available.");
229
+ }
216
230
  // Set evaluation state in store
217
231
  yield put(evaluateMessageAction({
218
232
  message: initialAssistantMessage,
@@ -307,8 +321,9 @@ function* evaluateUserConversationMessage(conversation, userMessage, assistantMe
307
321
  //reset
308
322
  currentUserMessage = undefined;
309
323
  }
310
- // Skip user messages
311
- if (value.role === "user") {
324
+ // Skip user and system messages — system items are stored as standalone
325
+ // conversation items and must not overwrite the current assistant message.
326
+ if (value.role === "user" || value.role === "system") {
312
327
  continue;
313
328
  }
314
329
  const chunkInteractionId = value.id;
@@ -17,3 +17,4 @@ export declare function onUserMessageUpdate({ payload }: ReturnType<typeof evalu
17
17
  generatingTitle?: boolean | undefined;
18
18
  inProgress?: boolean | undefined;
19
19
  }>;
20
+ //# sourceMappingURL=onUserMessageUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onUserMessageUpdate.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessageUpdate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAEH,KAAK,2BAA2B,EACnC,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,wBAAiB,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC;;;;;;;;;;;GAuD/F"}
@@ -3,3 +3,4 @@
3
3
  * @internal
4
4
  */
5
5
  export declare function onVerboseStore(): Generator<import("redux-saga/effects").SelectEffect, void, boolean>;
6
+ //# sourceMappingURL=onVerboseStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onVerboseStore.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onVerboseStore.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAiB,cAAc,wEAQ9B"}
@@ -22,3 +22,4 @@ export declare function onVisualisationRender({ payload }: PayloadAction<{
22
22
  generatingTitle?: boolean | undefined;
23
23
  inProgress?: boolean | undefined;
24
24
  } & Message[]>;
25
+ //# sourceMappingURL=onVisualisationRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onVisualisationRender.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onVisualisationRender.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAA+B,KAAK,OAAO,EAA2B,MAAM,gBAAgB,CAAC;AAMpG;;;;GAIG;AACH,wBAAiB,qBAAqB,CAAC,EACnC,OAAO,EACV,EAAE,aAAa,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,YAAY,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,SAAS,GAAG,YAAY,CAAC;CACjG,CAAC;;;;;;;;;;;eAuCD"}
@@ -43,3 +43,4 @@ export declare function onVisualizationSave({ payload }: PayloadAction<{
43
43
  } & Message[]>;
44
44
  export declare const buildLineChart: (visualizationContent: IGenAIVisualization, visualizationTitle: string) => IInsightDefinition;
45
45
  export declare const buildScatterPlot: (visualizationContent: IGenAIVisualization, visualizationTitle: string) => IInsightDefinition;
46
+ //# sourceMappingURL=onVisualizationSave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onVisualizationSave.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onVisualizationSave.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAGH,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,kBAAkB,EAG1B,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAEH,KAAK,0BAA0B,EAE/B,KAAK,OAAO,EAEf,MAAM,gBAAgB,CAAC;AASxB,wBAAiB,mBAAmB,CAAC,EACjC,OAAO,EACV,EAAE,aAAa,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA6GD;AAoGD,eAAO,MAAM,cAAc,+FA0C1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+FAoC5B,CAAC"}
@@ -11,3 +11,4 @@ export declare function onVisualizationSuccessSave({ payload }: PayloadAction<{
11
11
  generatingTitle?: boolean | undefined;
12
12
  inProgress?: boolean | undefined;
13
13
  } & IUserWorkspaceSettings & Message[]>;
14
+ //# sourceMappingURL=onVisualizationSuccessSave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onVisualizationSuccessSave.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onVisualizationSuccessSave.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGjG,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAK3E,wBAAiB,0BAA0B,CAAC,EACxC,OAAO,EACV,EAAE,aAAa,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;;;;wCAyCD"}
@@ -1,3 +1,4 @@
1
1
  import { type IChatConversationLocalItem, type Message } from "../../model.js";
2
2
  export declare function extractError(e: unknown): string;
3
3
  export declare function convertMessageToChatConversation(message: Message): IChatConversationLocalItem;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,OAAO,EAAgB,MAAM,gBAAgB,CAAC;AAE7F,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,UAQtC;AAWD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,0BAA0B,CAe7F"}
@@ -2,3 +2,4 @@ import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
2
  import { type EventDispatcher } from "./events.js";
3
3
  import { type OptionsDispatcher } from "./options.js";
4
4
  export declare const getStore: (backend: IAnalyticalBackend, workspace: string, eventDispatcher: EventDispatcher, optionsDispatcher: OptionsDispatcher, isPreview: boolean | undefined) => import("redux").Store<any, import("redux").UnknownAction, unknown>;
5
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAOpE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAStD,eAAO,MAAM,QAAQ,gOAwCpB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  import { configureStore } from "@reduxjs/toolkit";
3
3
  import { defaultImport } from "default-import";
4
4
  import defaultReduxSaga from "redux-saga";
5
- import { chatWindowSliceName, chatWindowSliceReducer } from "./chatWindow/chatWindowSlice.js";
5
+ import { chatWindowSliceName, chatWindowSliceReducer, getInitialChatWindowState, } from "./chatWindow/chatWindowSlice.js";
6
6
  import { messagesSliceName, messagesSliceReducer } from "./messages/messagesSlice.js";
7
7
  import { queueMiddleware } from "./queues/queue.newMessage.js";
8
8
  import { rootSaga } from "./sideEffects/index.js";
@@ -25,6 +25,9 @@ export const getStore = (backend, workspace, eventDispatcher, optionsDispatcher,
25
25
  [messagesSliceName]: messagesSliceReducer,
26
26
  [chatWindowSliceName]: chatWindowSliceReducer,
27
27
  },
28
+ preloadedState: {
29
+ [chatWindowSliceName]: getInitialChatWindowState({ isPreview }),
30
+ },
28
31
  middleware: (getDefaultMiddleware) => getDefaultMiddleware({
29
32
  serializableCheck: {
30
33
  ignoredActionPaths: ["payload.error"],
@@ -4,3 +4,4 @@ export type RootState = {
4
4
  [messagesSliceName]: ReturnType<typeof messagesSliceReducer>;
5
5
  [chatWindowSliceName]: ReturnType<typeof chatWindowSliceReducer>;
6
6
  };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEhG,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CACpE,CAAC"}
@@ -5,3 +5,4 @@ export declare function getConversationLocalId(conv: IChatConversationLocal | un
5
5
  export declare function createEmptyConversation(): IChatConversationLocal;
6
6
  export declare function getConversationData(data: Record<string, StoredConversation>, localId?: string): StoredConversation | undefined;
7
7
  export declare function checkConversationData(data: Record<string, StoredConversation>, localId?: string): StoredConversation | undefined;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/store/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,yBAAyB,CACrC,IAAI,EAAE,sBAAsB,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,MAAM,GACjB,IAAI,IAAI,sBAAsB,CAEhC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS,sBAE9E;AAED,wBAAgB,uBAAuB,IAAI,sBAAsB,CAQhE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,kCAY7F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,kCAW/F"}
package/esm/types.d.ts CHANGED
@@ -24,6 +24,8 @@ export type StoredConversation = {
24
24
  * - restoring: cached messages have been restored while the backend fetch is still in-flight
25
25
  * - clearing: the thread is being cleared
26
26
  * - evaluating: the new user message is being evaluated by assistant
27
+ * - switchingAgent: the active agent switch is being persisted
27
28
  */
28
- asyncProcess?: "loading" | "restoring" | "clearing" | "evaluating";
29
+ asyncProcess?: "loading" | "restoring" | "clearing" | "evaluating" | "switchingAgent";
29
30
  };
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,MAAM,GACZ,mBAAmB,CAAC,QAAQ,CAAC,GAC7B,qCAAqC,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;AAElG,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAClD;;;OAGG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,CAAC;CACzF,CAAC"}
package/esm/utils.d.ts CHANGED
@@ -18,3 +18,4 @@ export declare function getHeadlineComparison(metrics: IAttributeOrMeasure[]): {
18
18
  };
19
19
  export declare function generateTemporaryTitle(intl: IntlShape, data: IChatConversationLocal): string;
20
20
  export declare function generateTitleFromQuestion(text: string): string;
21
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,CAAC,EAAE,OAAO,UAItG;AAED,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,2BAA2B,CAAC,EAAE,OAAO,UAGxC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAK9D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAEtE;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAK5F;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAEpG;AAOD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAKzE;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAEjF;AAED,wBAAgB,+BAA+B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAKpG;AAED,wBAAgB,uCAAuC,CACnD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,UAGlB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,EAAE;;;;EAMnE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAS5F;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC9D"}
@@ -39,3 +39,4 @@ export declare function mapVisualizationWhatIfToScenarios(visualization?: IGenAI
39
39
  * @internal
40
40
  */
41
41
  export declare function loadWhatIfScenarios(content: IChatConversationLocalContent): IWhatIfDefinition | undefined;
42
+ //# sourceMappingURL=whatIfMapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatIfMapping.d.ts","sourceRoot":"","sources":["../../src/whatIf/whatIfMapping.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EAIhB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,yBAAyB,EAAE,CAAC;IACvC,OAAO,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC7C,aAAa,CAAC,EAAE,mBAAmB,GACpC,yBAAyB,EAAE,GAAG,SAAS,CA0CzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,6BAA6B,GAAG,iBAAiB,GAAG,SAAS,CA6CzG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-gen-ai",
3
- "version": "11.41.0-alpha.4",
3
+ "version": "11.41.0",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -56,18 +56,18 @@
56
56
  "reselect": "5.1.1",
57
57
  "tslib": "2.8.1",
58
58
  "uuid": "11.1.1",
59
- "@gooddata/api-client-tiger": "11.41.0-alpha.4",
60
- "@gooddata/sdk-model": "11.41.0-alpha.4",
61
- "@gooddata/sdk-backend-spi": "11.41.0-alpha.4",
62
- "@gooddata/sdk-ui": "11.41.0-alpha.4",
63
- "@gooddata/sdk-ui-charts": "11.41.0-alpha.4",
64
- "@gooddata/sdk-ui-dashboard": "11.41.0-alpha.4",
65
- "@gooddata/sdk-ui-filters": "11.41.0-alpha.4",
66
- "@gooddata/sdk-ui-kit": "11.41.0-alpha.4",
67
- "@gooddata/sdk-ui-semantic-search": "11.41.0-alpha.4",
68
- "@gooddata/sdk-ui-pivot": "11.41.0-alpha.4",
69
- "@gooddata/sdk-ui-theme-provider": "11.41.0-alpha.4",
70
- "@gooddata/util": "11.41.0-alpha.4"
59
+ "@gooddata/api-client-tiger": "11.41.0",
60
+ "@gooddata/sdk-backend-spi": "11.41.0",
61
+ "@gooddata/sdk-model": "11.41.0",
62
+ "@gooddata/sdk-ui": "11.41.0",
63
+ "@gooddata/sdk-ui-charts": "11.41.0",
64
+ "@gooddata/sdk-ui-dashboard": "11.41.0",
65
+ "@gooddata/sdk-ui-filters": "11.41.0",
66
+ "@gooddata/sdk-ui-pivot": "11.41.0",
67
+ "@gooddata/sdk-ui-theme-provider": "11.41.0",
68
+ "@gooddata/sdk-ui-kit": "11.41.0",
69
+ "@gooddata/util": "11.41.0",
70
+ "@gooddata/sdk-ui-semantic-search": "11.41.0"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@microsoft/api-documenter": "^7.17.0",
@@ -110,13 +110,13 @@
110
110
  "typescript": "5.9.3",
111
111
  "vitest": "4.1.8",
112
112
  "vitest-dom": "0.1.1",
113
- "@gooddata/eslint-config": "11.41.0-alpha.4",
114
- "@gooddata/i18n-toolkit": "11.41.0-alpha.4",
115
- "@gooddata/oxlint-config": "11.41.0-alpha.4",
116
- "@gooddata/reference-workspace": "11.41.0-alpha.4",
117
- "@gooddata/sdk-backend-mockingbird": "11.41.0-alpha.4",
118
- "@gooddata/sdk-ui-theme-provider": "11.41.0-alpha.4",
119
- "@gooddata/stylelint-config": "11.41.0-alpha.4"
113
+ "@gooddata/eslint-config": "11.41.0",
114
+ "@gooddata/sdk-backend-mockingbird": "11.41.0",
115
+ "@gooddata/i18n-toolkit": "11.41.0",
116
+ "@gooddata/oxlint-config": "11.41.0",
117
+ "@gooddata/reference-workspace": "11.41.0",
118
+ "@gooddata/sdk-ui-theme-provider": "11.41.0",
119
+ "@gooddata/stylelint-config": "11.41.0"
120
120
  },
121
121
  "peerDependencies": {
122
122
  "react": "^18.0.0 || ^19.0.0",