@gooddata/sdk-ui-gen-ai 11.59.0-alpha.1 → 11.59.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 (53) hide show
  1. package/NOTICE +4 -4
  2. package/esm/components/GenAIChat.d.ts.map +1 -1
  3. package/esm/components/GenAIChat.js +2 -1
  4. package/esm/components/GenAIChatContextIndicator.d.ts.map +1 -1
  5. package/esm/components/GenAIChatContextIndicator.js +2 -1
  6. package/esm/components/GenAIStandaloneInput.d.ts.map +1 -1
  7. package/esm/components/GenAIStandaloneInput.js +2 -1
  8. package/esm/components/GenAiStore.d.ts +6 -0
  9. package/esm/components/GenAiStore.d.ts.map +1 -1
  10. package/esm/components/GenAiStore.js +2 -1
  11. package/esm/components/completion/plugins/rehype-references.d.ts.map +1 -1
  12. package/esm/components/completion/plugins/rehype-references.js +34 -23
  13. package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -1
  14. package/esm/components/messages/conversationContents/ConversationVisualisation.js +24 -1
  15. package/esm/hooks/useGenAIStore.d.ts +2 -0
  16. package/esm/hooks/useGenAIStore.d.ts.map +1 -1
  17. package/esm/hooks/useGenAIStore.js +11 -3
  18. package/esm/index.d.ts +1 -0
  19. package/esm/index.d.ts.map +1 -1
  20. package/esm/sdk-ui-gen-ai.d.ts +10 -0
  21. package/esm/store/chatWindow/chatWindowSelectors.d.ts +1 -0
  22. package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -1
  23. package/esm/store/chatWindow/chatWindowSelectors.js +3 -0
  24. package/esm/store/chatWindow/chatWindowSlice.d.ts +5 -1
  25. package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -1
  26. package/esm/store/chatWindow/chatWindowSlice.js +6 -1
  27. package/esm/store/messages/messagesSelectors.d.ts +4 -0
  28. package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
  29. package/esm/store/messages/messagesSelectors.js +3 -0
  30. package/esm/store/messages/messagesSlice.d.ts +6 -2
  31. package/esm/store/messages/messagesSlice.d.ts.map +1 -1
  32. package/esm/store/messages/messagesSlice.js +6 -7
  33. package/esm/store/sideEffects/index.d.ts +2 -1
  34. package/esm/store/sideEffects/index.d.ts.map +1 -1
  35. package/esm/store/sideEffects/index.js +15 -5
  36. package/esm/store/sideEffects/loadAgents.d.ts +12 -1
  37. package/esm/store/sideEffects/loadAgents.d.ts.map +1 -1
  38. package/esm/store/sideEffects/loadAgents.js +18 -2
  39. package/esm/store/sideEffects/loadCatalogItems.d.ts +13 -2
  40. package/esm/store/sideEffects/loadCatalogItems.d.ts.map +1 -1
  41. package/esm/store/sideEffects/loadCatalogItems.js +20 -4
  42. package/esm/store/store.d.ts +2 -1
  43. package/esm/store/store.d.ts.map +1 -1
  44. package/esm/store/store.js +2 -2
  45. package/esm/tsdoc-metadata.json +1 -1
  46. package/esm/types.d.ts +4 -0
  47. package/esm/types.d.ts.map +1 -1
  48. package/package.json +23 -23
  49. package/styles/css/main.css +20 -0
  50. package/styles/css/main.css.map +1 -1
  51. package/styles/css/messages.css +20 -0
  52. package/styles/css/messages.css.map +1 -1
  53. package/styles/scss/messages.scss +17 -0
@@ -41,6 +41,7 @@ const initialState = {
41
41
  inputValue: "",
42
42
  isPreview: undefined,
43
43
  allowInteractionIntelligence: undefined,
44
+ catalogItemsState: "pending",
44
45
  };
45
46
  export const getInitialChatWindowState = ({ isPreview, allowInteractionIntelligence, } = {}) => ({
46
47
  ...initialState,
@@ -86,6 +87,10 @@ const chatWindowSlice = createSlice({
86
87
  },
87
88
  setCatalogItemsActions: (state, { payload }) => {
88
89
  state.catalogItems = payload;
90
+ state.catalogItemsState = "loaded";
91
+ },
92
+ setCatalogItemsLoadingAction: (state) => {
93
+ state.catalogItemsState = "loading";
89
94
  },
90
95
  setInputValueAction: (state, { payload: { value } }) => {
91
96
  state.inputValue = value;
@@ -187,7 +192,7 @@ const chatWindowSlice = createSlice({
187
192
  },
188
193
  });
189
194
  export const chatWindowSliceReducer = chatWindowSlice.reducer;
190
- export const { setOpenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setInputValueAction, initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsAction, setContextObjectsSearchAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, contextObjectsLoadFailedAction, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, selectedContextReferencesAction, setIsPreviewAction,
195
+ export const { setOpenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setCatalogItemsLoadingAction, setInputValueAction, initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsAction, setContextObjectsSearchAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, contextObjectsLoadFailedAction, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, selectedContextReferencesAction, setIsPreviewAction,
191
196
  /**
192
197
  * Switches the assistant between the docked and the fullscreen layout.
193
198
  * @public
@@ -11,6 +11,7 @@ declare const messagesSliceSelector: (state: RootState) => {
11
11
  selectedAgentId: string | undefined;
12
12
  selectedEffort: GenAIChatEffort;
13
13
  agents: import("../../model.js").GenAIAgent[] | undefined;
14
+ agentsState: "pending" | "loading" | "loaded";
14
15
  conversationsData: Record<string, import("../../types.js").StoredConversation>;
15
16
  globalError?: Record<string, unknown>;
16
17
  threadId?: string;
@@ -26,6 +27,7 @@ export declare const pendingAgentSwitchSelector: (state: RootState, conversation
26
27
  } | undefined;
27
28
  export declare const globalErrorSelector: (state: RootState) => Record<string, unknown> | null;
28
29
  export declare const threadIdSelector: (state: RootState) => string | undefined;
30
+ export declare const agentsStateSelector: (state: RootState) => RootState["messages"]["agentsState"];
29
31
  export declare const conversationMessagesSelector: (state: RootState) => IChatConversationLocalItem[];
30
32
  export declare const conversationMessagesByIdSelector: (state: RootState, conversationId?: string) => IChatConversationLocalItem[];
31
33
  /**
@@ -51,6 +53,7 @@ export declare const agentsSelector: ((state: RootState) => import("../../model.
51
53
  selectedAgentId: string | undefined;
52
54
  selectedEffort: GenAIChatEffort;
53
55
  agents: import("../../model.js").GenAIAgent[] | undefined;
56
+ agentsState: "pending" | "loading" | "loaded";
54
57
  conversationsData: Record<string, import("../../types.js").StoredConversation>;
55
58
  globalError?: Record<string, unknown>;
56
59
  threadId?: string;
@@ -65,6 +68,7 @@ export declare const agentsSelector: ((state: RootState) => import("../../model.
65
68
  selectedAgentId: string | undefined;
66
69
  selectedEffort: GenAIChatEffort;
67
70
  agents: import("../../model.js").GenAIAgent[] | undefined;
71
+ agentsState: "pending" | "loading" | "loaded";
68
72
  conversationsData: Record<string, import("../../types.js").StoredConversation>;
69
73
  globalError?: Record<string, unknown>;
70
74
  threadId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"messagesSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,QAAA,MAAM,qBAAqB,UAAW,SAAS;;;;;;;;;;;;;CAA6B,CAAC;AAE7E,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAMvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAC/B,KAAK,EAAE,SAAS,KACf,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,SAS1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAC5B,SAAS,uBACK,MAAM,KAC5B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,SACyB,CAAC;AAExF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAGjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAG7D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,0BAA0B,EAIrF,CAAC;AAEP,eAAO,MAAM,gCAAgC,EAAE,CAC3C,KAAK,EAAE,SAAS,EAChB,cAAc,CAAC,EAAE,MAAM,KACtB,0BAA0B,EAU9B,CAAC;AAQF;;;GAGG;AACH,eAAO,MAAM,oCAAoC,EAAE,CAC/C,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,KACjB,8BAMJ,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAGjF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGpE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAQ1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAAW,SAAS,wBAAwB,MAAM,KAAG,eACgB,CAAC;AAE7G,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiE,CAAC;AAE7F,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CACnC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,MAAM,KACrB,sBAAsB,GAAG,SAI7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,EAAE,GAAG,SACZ,CAAC;AAE1E,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAGnD,CAAC"}
1
+ {"version":3,"file":"messagesSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,QAAA,MAAM,qBAAqB,UAAW,SAAS;;;;;;;;;;;;;;CAA6B,CAAC;AAE7E,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAMvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAC/B,KAAK,EAAE,SAAS,KACf,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,SAS1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAC5B,SAAS,uBACK,MAAM,KAC5B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,SACyB,CAAC;AAExF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAGjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAG7D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,aAAa,CAK1F,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,0BAA0B,EAIrF,CAAC;AAEP,eAAO,MAAM,gCAAgC,EAAE,CAC3C,KAAK,EAAE,SAAS,EAChB,cAAc,CAAC,EAAE,MAAM,KACtB,0BAA0B,EAU9B,CAAC;AAQF;;;GAGG;AACH,eAAO,MAAM,oCAAoC,EAAE,CAC/C,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,KACjB,8BAMJ,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAGjF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGpE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAQ1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAAW,SAAS,wBAAwB,MAAM,KAAG,eACgB,CAAC;AAE7G,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiE,CAAC;AAE7F,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CACnC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,MAAM,KACrB,sBAAsB,GAAG,SAI7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,EAAE,GAAG,SACZ,CAAC;AAE1E,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAGnD,CAAC"}
@@ -19,6 +19,9 @@ export const asyncProcessSelector = createSelector(messagesSliceSelector, (state
19
19
  export const pendingAgentSwitchSelector = (state, conversationLocalId) => state[messagesSliceName].conversationsData[conversationLocalId]?.pendingAgentSwitch;
20
20
  export const globalErrorSelector = createSelector(messagesSliceSelector, (state) => state.globalError ?? null);
21
21
  export const threadIdSelector = createSelector(messagesSliceSelector, (state) => state.threadId);
22
+ export const agentsStateSelector = createSelector(messagesSliceSelector, (state) => {
23
+ return state.agentsState;
24
+ });
22
25
  export const conversationMessagesSelector = createSelector(messagesSliceSelector, (state) => {
23
26
  const data = state.conversationsData[state.currentConversation?.localId ?? ""];
24
27
  return data?.order.map((id) => data.items[id]) ?? [];
@@ -40,6 +40,10 @@ type MessagesSliceState = {
40
40
  * Undefined means the agent list has not been evaluated yet.
41
41
  */
42
42
  agents: GenAIAgent[] | undefined;
43
+ /**
44
+ * Loading state of the agents.
45
+ */
46
+ agentsState: "pending" | "loading" | "loaded";
43
47
  /**
44
48
  * Conversation data
45
49
  */
@@ -73,7 +77,7 @@ export declare const loadThreadAction: import("@reduxjs/toolkit").ActionCreatorW
73
77
  threadId?: string;
74
78
  }, "messages/loadConversationSuccessAction">, clearThreadErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
75
79
  error: Error;
76
- }, "messages/clearThreadErrorAction">, clearThreadSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/clearThreadSuccessAction">, clearConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
80
+ }, "messages/clearThreadErrorAction">, clearConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
77
81
  conversation: IChatConversationLocal;
78
82
  threadId: string;
79
83
  }, "messages/clearConversationSuccessAction">, evaluateConversationTitleAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
@@ -174,7 +178,7 @@ export declare const loadThreadAction: import("@reduxjs/toolkit").ActionCreatorW
174
178
  conversationLocalId: string;
175
179
  }, "messages/revertAgentSwitchAction">, setAgentsAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
176
180
  agents: GenAIAgent[] | undefined;
177
- }, "messages/setAgentsAction">, pinConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
181
+ }, "messages/setAgentsAction">, setAgentsLoadingAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/setAgentsLoadingAction">, pinConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
178
182
  conversation: IChatConversationLocal;
179
183
  pinned: boolean;
180
184
  }, "messages/pinConversationAction">, pinConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
@@ -1 +1 @@
1
- {"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ const initialState = {
29
29
  agents: undefined,
30
30
  conversationsData: {},
31
31
  refocus: 0,
32
+ agentsState: "pending",
32
33
  };
33
34
  const setNormalizedConversations = (state, conversations) => {
34
35
  const originalConversations = state.conversations ?? [];
@@ -173,12 +174,6 @@ const messagesSlice = createSlice({
173
174
  const data = getConversationData(state.conversationsData, state.currentConversation?.localId);
174
175
  delete data?.asyncProcess;
175
176
  },
176
- clearThreadSuccessAction: (state) => {
177
- state.loaded = false;
178
- delete state.globalError;
179
- const data = getConversationData(state.conversationsData, state.currentConversation?.localId);
180
- delete data?.asyncProcess;
181
- },
182
177
  clearConversationSuccessAction: (state, { payload: { conversation, threadId }, }) => {
183
178
  state.conversations = [conversation, ...(state.conversations ?? [])];
184
179
  state.currentConversation = conversation;
@@ -488,6 +483,10 @@ const messagesSlice = createSlice({
488
483
  },
489
484
  setAgentsAction: (state, { payload }) => {
490
485
  state.agents = payload.agents;
486
+ state.agentsState = "loaded";
487
+ },
488
+ setAgentsLoadingAction: (state) => {
489
+ state.agentsState = "loading";
491
490
  },
492
491
  setGlobalErrorAction: (state, { payload: { error } }) => {
493
492
  state.globalError = errorToObject(error);
@@ -713,7 +712,7 @@ const messagesSlice = createSlice({
713
712
  });
714
713
  const errorToObject = (error) => Object.fromEntries(Object.getOwnPropertyNames(error).map((key) => [key, error[key]]));
715
714
  export const messagesSliceReducer = messagesSlice.reducer;
716
- export const { loadThreadAction, loadThreadErrorAction, loadConversationsSuccessAction, loadConversationSuccessAction, clearThreadErrorAction, clearThreadSuccessAction, clearConversationSuccessAction, evaluateConversationTitleAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageUpdateAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, clearConversationLoadingAction, setUserFeedback, setUserFeedbackError, saveVisualizationAction, savedVisualizationAction, saveVisualizationErrorAction, saveVisualizationSuccessAction, saveVisualisationRenderStatusAction, saveVisualisationRenderStatusSuccessAction, visualizationErrorAction, appendInteractionStepAction, appendTracedActionAction, appendResponseDetailAction, applyPendingAgentSwitchAction, revertAgentSwitchAction, setAgentsAction, pinConversationAction, pinConversationSuccessAction, pinConversationFailureAction, renameConversationAction, renameConversationSuccessAction, renameConversationFailureAction, deleteConversationAction, deleteConversationStartAction, deleteConversationSuccessAction, deleteConversationFailureAction, filledFormAction, refocusInput,
715
+ export const { loadThreadAction, loadThreadErrorAction, loadConversationsSuccessAction, loadConversationSuccessAction, clearThreadErrorAction, clearConversationSuccessAction, evaluateConversationTitleAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageUpdateAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, clearConversationLoadingAction, setUserFeedback, setUserFeedbackError, saveVisualizationAction, savedVisualizationAction, saveVisualizationErrorAction, saveVisualizationSuccessAction, saveVisualisationRenderStatusAction, saveVisualisationRenderStatusSuccessAction, visualizationErrorAction, appendInteractionStepAction, appendTracedActionAction, appendResponseDetailAction, applyPendingAgentSwitchAction, revertAgentSwitchAction, setAgentsAction, setAgentsLoadingAction, pinConversationAction, pinConversationSuccessAction, pinConversationFailureAction, renameConversationAction, renameConversationSuccessAction, renameConversationFailureAction, deleteConversationAction, deleteConversationStartAction, deleteConversationSuccessAction, deleteConversationFailureAction, filledFormAction, refocusInput,
717
716
  /**
718
717
  * @public
719
718
  */
@@ -1,6 +1,7 @@
1
+ import { type GenAIInitializeOnStart } from "../../types.js";
1
2
  /**
2
3
  * One saga to rule them all.
3
4
  * @internal
4
5
  */
5
- export declare function rootSaga(): Generator<import("redux-saga/effects").CallEffect<void> | import("redux-saga/effects").ForkEffect<void>, void, unknown>;
6
+ export declare function rootSaga(initializeOnStart: GenAIInitializeOnStart): Generator<import("redux-saga/effects").CallEffect<void> | import("redux-saga/effects").ForkEffect<void>, void, unknown>;
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAoDA;;;GAGG;AACH,wBAAiB,QAAQ,4HAgCxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAiD7D;;;GAGG;AACH,wBAAiB,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB,2HA2ClE"}
@@ -3,8 +3,8 @@ import { call, fork, takeEvery, takeLatest, takeLeading } from "redux-saga/effec
3
3
  import { initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsSearchAction, setOpenAction, } from "../chatWindow/chatWindowSlice.js";
4
4
  import { clearThreadAction, deleteConversationAction, evaluateMessageCompleteAction, evaluateMessageUpdateAction, loadThreadAction, newMessageAction, pinConversationAction, renameConversationAction, saveVisualisationRenderStatusAction, saveVisualizationAction, saveVisualizationSuccessAction, setCurrentConversationAction, setUserFeedback, setVerboseAction, } from "../messages/messagesSlice.js";
5
5
  import { onConversationActivity } from "./conversationSession.js";
6
- import { loadAgents } from "./loadAgents.js";
7
- import { loadCatalogItems } from "./loadCatalogItems.js";
6
+ import { loadAgents, loadAgentsInternal } from "./loadAgents.js";
7
+ import { loadCatalogItems, loadCatalogItemsInternal } from "./loadCatalogItems.js";
8
8
  import { loadColorPalette } from "./loadColorPalette.js";
9
9
  import { initContextObjects, loadContextObjectsNextPage, reloadContextObjects, } from "./loadContextObjects.js";
10
10
  import { loadSettings } from "./loadSettings.js";
@@ -26,7 +26,9 @@ import { onVisualizationSuccessSave } from "./onVisualizationSuccessSave.js";
26
26
  * One saga to rule them all.
27
27
  * @internal
28
28
  */
29
- export function* rootSaga() {
29
+ export function* rootSaga(initializeOnStart) {
30
+ const initialLoadAgents = initializeOnStart.includes("agents");
31
+ const initialLoadCatalogItems = initializeOnStart.includes("catalogItems");
30
32
  yield takeLatest(loadThreadAction.type, onThreadLoad);
31
33
  yield takeLatest(clearThreadAction.type, onThreadClear);
32
34
  // Re-sync the active conversation with the backend when the chat is (re)opened so that
@@ -50,9 +52,17 @@ export function* rootSaga() {
50
52
  //others
51
53
  yield takeEvery(setVerboseAction.type, onVerboseStore);
52
54
  yield takeEvery([newMessageAction.type, evaluateMessageCompleteAction.type, setCurrentConversationAction.type], onConversationActivity);
55
+ yield takeLeading(setOpenAction.type, loadAgents);
56
+ yield takeLeading(setOpenAction.type, loadCatalogItems);
53
57
  yield fork(onEvent);
58
+ //load data
54
59
  yield call(loadColorPalette);
55
60
  yield call(loadSettings);
56
- yield call(loadAgents);
57
- yield call(loadCatalogItems);
61
+ // this can be long running, so we want to run it as fork
62
+ if (initialLoadAgents) {
63
+ yield fork(loadAgentsInternal);
64
+ }
65
+ if (initialLoadCatalogItems) {
66
+ yield fork(loadCatalogItemsInternal);
67
+ }
58
68
  }
@@ -1,10 +1,21 @@
1
+ import type { PayloadAction } from "@reduxjs/toolkit";
1
2
  import { type IAgent } from "@gooddata/sdk-model";
2
3
  import { type GenAIAgent } from "../../model.js";
3
4
  /**
4
5
  * Load enabled agents from the backend.
5
6
  * @internal
6
7
  */
7
- export declare function loadAgents(): Generator<import("redux-saga/effects").CallEffect<IAgent[]> | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
8
+ export declare function loadAgents({ payload: { isOpen } }: PayloadAction<{
9
+ isOpen: boolean;
10
+ }>): Generator<import("redux-saga/effects").CallEffect<void>, void, unknown>;
11
+ /**
12
+ * Load enabled agents from the backend.
13
+ * @internal
14
+ */
15
+ export declare function loadAgentsInternal(): Generator<import("redux-saga/effects").CallEffect<IAgent[]> | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
16
+ payload: undefined;
17
+ type: "messages/setAgentsLoadingAction";
18
+ }> | import("redux-saga/effects").PutEffect<{
8
19
  payload: {
9
20
  agents: GenAIAgent[] | undefined;
10
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loadAgents.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadAgents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD;;;GAGG;AACH,wBAAiB,UAAU;;;;;6DAgC1B"}
1
+ {"version":3,"file":"loadAgents.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadAgents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD;;;GAGG;AACH,wBAAiB,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,2EAMtF;AAED;;;GAGG;AACH,wBAAiB,kBAAkB;;;;;;;;6DAuClC"}
@@ -2,17 +2,33 @@
2
2
  import { call, getContext, put, select } from "redux-saga/effects";
3
3
  import { isIdentifierRef } from "@gooddata/sdk-model";
4
4
  import { agentSwitchingActiveSelector } from "../chatWindow/chatWindowSelectors.js";
5
- import { setAgentsAction } from "../messages/messagesSlice.js";
5
+ import { agentsStateSelector } from "../messages/messagesSelectors.js";
6
+ import { setAgentsAction, setAgentsLoadingAction } from "../messages/messagesSlice.js";
6
7
  /**
7
8
  * Load enabled agents from the backend.
8
9
  * @internal
9
10
  */
10
- export function* loadAgents() {
11
+ export function* loadAgents({ payload: { isOpen } }) {
12
+ if (!isOpen) {
13
+ return;
14
+ }
15
+ yield call(loadAgentsInternal);
16
+ }
17
+ /**
18
+ * Load enabled agents from the backend.
19
+ * @internal
20
+ */
21
+ export function* loadAgentsInternal() {
11
22
  const agentSwitchingActive = yield select(agentSwitchingActiveSelector);
12
23
  if (!agentSwitchingActive) {
13
24
  return;
14
25
  }
26
+ const state = yield select(agentsStateSelector);
27
+ if (state === "loaded" || state === "loading") {
28
+ return;
29
+ }
15
30
  try {
31
+ yield put(setAgentsLoadingAction());
16
32
  const backend = yield getContext("backend");
17
33
  const workspace = yield getContext("workspace");
18
34
  const query = backend
@@ -1,11 +1,22 @@
1
+ import type { PayloadAction } from "@reduxjs/toolkit";
1
2
  import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
3
  import { type OptionsDispatcher } from "../options.js";
3
4
  /**
4
5
  * Load catalog items palette from the backend.
5
6
  * @internal
6
7
  */
7
- export declare function loadCatalogItems(): Generator<import("redux-saga/effects").CallEffect<import("@gooddata/sdk-backend-spi").IWorkspaceCatalog> | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
8
+ export declare function loadCatalogItems({ payload: { isOpen } }: PayloadAction<{
9
+ isOpen: boolean;
10
+ }>): Generator<import("redux-saga/effects").CallEffect<void>, void, unknown>;
11
+ /**
12
+ * Load catalog items palette from the backend.
13
+ * @internal
14
+ */
15
+ export declare function loadCatalogItemsInternal(): Generator<import("redux-saga/effects").CallEffect<import("@gooddata/sdk-backend-spi").IWorkspaceCatalog> | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
16
+ payload: undefined;
17
+ type: "chatWindow/setCatalogItemsLoadingAction";
18
+ }> | import("redux-saga/effects").PutEffect<{
8
19
  payload: import("@gooddata/sdk-model").CatalogItem[] | undefined;
9
20
  type: "chatWindow/setCatalogItemsActions";
10
- }>, void, OptionsDispatcher & IAnalyticalBackend & string & import("@gooddata/sdk-backend-spi").IWorkspaceCatalog>;
21
+ }> | import("redux-saga/effects").SelectEffect, void, (OptionsDispatcher & ("loaded" | "loading" | "pending")) & IAnalyticalBackend & string & import("@gooddata/sdk-backend-spi").IWorkspaceCatalog>;
11
22
  //# sourceMappingURL=loadCatalogItems.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadCatalogItems.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadCatalogItems.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,wBAAiB,gBAAgB;;;mHA6BhC"}
1
+ {"version":3,"file":"loadCatalogItems.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadCatalogItems.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD;;;GAGG;AACH,wBAAiB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,2EAM5F;AAED;;;GAGG;AACH,wBAAiB,wBAAwB;;;;;;sMAoCxC"}
@@ -1,13 +1,29 @@
1
1
  // (C) 2024-2026 GoodData Corporation
2
- import { call, getContext, put } from "redux-saga/effects";
3
- import { setCatalogItemsActions } from "../chatWindow/chatWindowSlice.js";
2
+ import { call, getContext, put, select } from "redux-saga/effects";
3
+ import { catalogItemsStateSelector } from "../chatWindow/chatWindowSelectors.js";
4
+ import { setCatalogItemsActions, setCatalogItemsLoadingAction } from "../chatWindow/chatWindowSlice.js";
4
5
  /**
5
6
  * Load catalog items palette from the backend.
6
7
  * @internal
7
8
  */
8
- export function* loadCatalogItems() {
9
+ export function* loadCatalogItems({ payload: { isOpen } }) {
10
+ if (!isOpen) {
11
+ return;
12
+ }
13
+ yield call(loadCatalogItemsInternal);
14
+ }
15
+ /**
16
+ * Load catalog items palette from the backend.
17
+ * @internal
18
+ */
19
+ export function* loadCatalogItemsInternal() {
9
20
  const options = yield getContext("optionsDispatcher");
21
+ const state = yield select(catalogItemsStateSelector);
22
+ if (state === "loaded" || state === "loading") {
23
+ return;
24
+ }
10
25
  try {
26
+ yield put(setCatalogItemsLoadingAction());
11
27
  const catalogItems = options.getCatalogItems();
12
28
  if (catalogItems) {
13
29
  // If catalog items are already provided, just set it to the store
@@ -17,7 +33,7 @@ export function* loadCatalogItems() {
17
33
  // Retrieve backend from context
18
34
  const backend = yield getContext("backend");
19
35
  const workspace = yield getContext("workspace");
20
- const catalogService = backend.workspace(workspace).catalog().load;
36
+ const catalogService = backend.workspace(workspace).catalog().withPageSize(1000).load;
21
37
  const catalogServiceCall = catalogService.bind(catalogService);
22
38
  const results = yield call(catalogServiceCall);
23
39
  const catalogItemsList = results.allItems();
@@ -1,5 +1,6 @@
1
1
  import { type EnhancedStore } from "@reduxjs/toolkit";
2
2
  import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
3
+ import { type GenAIInitializeOnStart } from "../types.js";
3
4
  import { chatWindowSliceName, chatWindowSliceReducer } from "./chatWindow/chatWindowSlice.js";
4
5
  import { type EventDispatcher } from "./events.js";
5
6
  import { messagesSliceName, messagesSliceReducer } from "./messages/messagesSlice.js";
@@ -10,5 +11,5 @@ export type GenAiStore = EnhancedStore<{
10
11
  }> & {
11
12
  optionsDispatcher: OptionsDispatcher;
12
13
  };
13
- export declare const getStore: (backend: IAnalyticalBackend, workspace: string, eventDispatcher: EventDispatcher, optionsDispatcher: OptionsDispatcher, isPreview: boolean | undefined, allowInteractionIntelligence: boolean | undefined) => GenAiStore;
14
+ export declare const getStore: (backend: IAnalyticalBackend, workspace: string, eventDispatcher: EventDispatcher, optionsDispatcher: OptionsDispatcher, isPreview: boolean | undefined, allowInteractionIntelligence: boolean | undefined, initializeOnStart?: GenAIInitializeOnStart) => GenAiStore;
14
15
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAItE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAStD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;IACnC,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CACpE,CAAC,GAAG;IACD,iBAAiB,EAAE,iBAAiB,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,QAAQ,YACR,kBAAkB,aAChB,MAAM,mBACA,eAAe,qBACb,iBAAiB,aACzB,OAAO,GAAG,SAAS,gCACA,OAAO,GAAG,SAAS,KAClD,UAqCF,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAItE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAStD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;IACnC,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CACpE,CAAC,GAAG;IACD,iBAAiB,EAAE,iBAAiB,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,QAAQ,YACR,kBAAkB,aAChB,MAAM,mBACA,eAAe,qBACb,iBAAiB,aACzB,OAAO,GAAG,SAAS,gCACA,OAAO,GAAG,SAAS,sBAC7B,sBAAsB,KAC3C,UAqCF,CAAC"}
@@ -10,7 +10,7 @@ import { rootSaga } from "./sideEffects/index.js";
10
10
  // In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
11
11
  // https://github.com/microsoft/TypeScript/issues/52086#issuecomment-1385978414
12
12
  const createSagaMiddleware = defaultImport(defaultReduxSaga);
13
- export const getStore = (backend, workspace, eventDispatcher, optionsDispatcher, isPreview, allowInteractionIntelligence) => {
13
+ export const getStore = (backend, workspace, eventDispatcher, optionsDispatcher, isPreview, allowInteractionIntelligence, initializeOnStart) => {
14
14
  const sagaMiddleware = createSagaMiddleware({
15
15
  context: {
16
16
  backend,
@@ -39,7 +39,7 @@ export const getStore = (backend, workspace, eventDispatcher, optionsDispatcher,
39
39
  name: "GenAI",
40
40
  },
41
41
  });
42
- sagaMiddleware.run(rootSaga);
42
+ sagaMiddleware.run(rootSaga, initializeOnStart ?? []);
43
43
  // Save optionsDispatcher
44
44
  store.optionsDispatcher = optionsDispatcher;
45
45
  return store;
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.58.12"
8
+ "packageVersion": "7.59.2"
9
9
  }
10
10
  ]
11
11
  }
package/esm/types.d.ts CHANGED
@@ -167,4 +167,8 @@ export type ContextObjectListState = {
167
167
  * @internal
168
168
  */
169
169
  export type ContextObjectsState = Record<ContextObjectKind, ContextObjectListState>;
170
+ /**
171
+ * @internal
172
+ */
173
+ export type GenAIInitializeOnStart = ("catalogItems" | "agents")[];
170
174
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,2BAA2B,EAChC,KAAK,qCAAqC,EAC7C,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,MAAM,GACZ,mBAAmB,CAAC,QAAQ,CAAC,GAC7B,WAAW,CACP,qCAAqC,CAAC,eAAe,CAAC,CACzD,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC;;OAEG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,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;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;IACnE;;;OAGG;IACH,kBAAkB,CAAC,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;IACF;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;CACrE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG;IACzC,KAAK,EAAE,gCAAgC,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACjE;;;OAGG;IACH,eAAe,EAAE,6BAA6B,EAAE,CAAC;IACjD,0GAA0G;IAC1G,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,6BAA6B,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,2BAA2B,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,eAAe,GAAG,QAAQ,CAAC;IACjC,KAAK,EAAE,gBAAgB,GAAG,mBAAmB,CAAC;IAC9C,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,eAAe,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-gen-ai",
3
- "version": "11.59.0-alpha.1",
3
+ "version": "11.59.0",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -57,24 +57,24 @@
57
57
  "reselect": "5.1.1",
58
58
  "tslib": "2.8.1",
59
59
  "uuid": "11.1.1",
60
- "@gooddata/api-client-tiger": "11.59.0-alpha.1",
61
- "@gooddata/sdk-model": "11.59.0-alpha.1",
62
- "@gooddata/sdk-backend-spi": "11.59.0-alpha.1",
63
- "@gooddata/sdk-ui": "11.59.0-alpha.1",
64
- "@gooddata/sdk-ui-charts": "11.59.0-alpha.1",
65
- "@gooddata/sdk-ui-dashboard": "11.59.0-alpha.1",
66
- "@gooddata/sdk-ui-geo": "11.59.0-alpha.1",
67
- "@gooddata/sdk-ui-filters": "11.59.0-alpha.1",
68
- "@gooddata/sdk-ui-kit": "11.59.0-alpha.1",
69
- "@gooddata/sdk-ui-pivot": "11.59.0-alpha.1",
70
- "@gooddata/sdk-ui-semantic-search": "11.59.0-alpha.1",
71
- "@gooddata/sdk-ui-theme-provider": "11.59.0-alpha.1",
72
- "@gooddata/util": "11.59.0-alpha.1"
60
+ "@gooddata/api-client-tiger": "11.59.0",
61
+ "@gooddata/sdk-model": "11.59.0",
62
+ "@gooddata/sdk-ui-charts": "11.59.0",
63
+ "@gooddata/sdk-backend-spi": "11.59.0",
64
+ "@gooddata/sdk-ui": "11.59.0",
65
+ "@gooddata/sdk-ui-dashboard": "11.59.0",
66
+ "@gooddata/sdk-ui-filters": "11.59.0",
67
+ "@gooddata/sdk-ui-geo": "11.59.0",
68
+ "@gooddata/sdk-ui-pivot": "11.59.0",
69
+ "@gooddata/sdk-ui-semantic-search": "11.59.0",
70
+ "@gooddata/sdk-ui-kit": "11.59.0",
71
+ "@gooddata/sdk-ui-theme-provider": "11.59.0",
72
+ "@gooddata/util": "11.59.0"
73
73
  },
74
74
  "devDependencies": {
75
- "@microsoft/api-documenter": "7.30.10",
76
- "@microsoft/api-extractor": "7.58.12",
77
- "@testing-library/dom": "10.4.1",
75
+ "@microsoft/api-documenter": "7.30.16",
76
+ "@microsoft/api-extractor": "7.59.2",
77
+ "@testing-library/dom": "10.4.2",
78
78
  "@testing-library/react": "16.3.0",
79
79
  "@types/lodash-es": "4.17.12",
80
80
  "@types/node": "24.12.0",
@@ -108,12 +108,12 @@
108
108
  "typescript": "7.0.2",
109
109
  "vitest": "4.1.11",
110
110
  "vitest-dom": "0.1.1",
111
- "@gooddata/eslint-config": "11.59.0-alpha.1",
112
- "@gooddata/i18n-toolkit": "11.59.0-alpha.1",
113
- "@gooddata/oxlint-config": "11.59.0-alpha.1",
114
- "@gooddata/reference-workspace": "11.59.0-alpha.1",
115
- "@gooddata/sdk-backend-mockingbird": "11.59.0-alpha.1",
116
- "@gooddata/stylelint-config": "11.59.0-alpha.1"
111
+ "@gooddata/eslint-config": "11.59.0",
112
+ "@gooddata/i18n-toolkit": "11.59.0",
113
+ "@gooddata/oxlint-config": "11.59.0",
114
+ "@gooddata/reference-workspace": "11.59.0",
115
+ "@gooddata/sdk-backend-mockingbird": "11.59.0",
116
+ "@gooddata/stylelint-config": "11.59.0"
117
117
  },
118
118
  "peerDependencies": {
119
119
  "react": "^18.0.0 || ^19.0.0",
@@ -13091,6 +13091,13 @@ body.gd-kda-dialog-opened .highcharts-tooltip-container {
13091
13091
  mask-position: center;
13092
13092
  mask-size: contain;
13093
13093
  }
13094
+ .gd-gen-ai-chat__messages__conversation--user code .gd-gen-ai-chat__message__object {
13095
+ top: 0;
13096
+ padding: 0 2px;
13097
+ border-radius: 3px;
13098
+ font-size: inherit;
13099
+ line-height: inherit;
13100
+ }
13094
13101
  .gd-gen-ai-chat__messages__conversation--user .gd-ui-kit-tooltip__anchor {
13095
13102
  display: inline-flex;
13096
13103
  }
@@ -13311,6 +13318,13 @@ body.gd-kda-dialog-opened .highcharts-tooltip-container {
13311
13318
  mask-position: center;
13312
13319
  mask-size: contain;
13313
13320
  }
13321
+ .gd-gen-ai-chat__messages__conversation--assistant code .gd-gen-ai-chat__message__object {
13322
+ top: 0;
13323
+ padding: 0 2px;
13324
+ border-radius: 3px;
13325
+ font-size: inherit;
13326
+ line-height: inherit;
13327
+ }
13314
13328
  .gd-gen-ai-chat__messages__conversation--assistant .gd-ui-kit-tooltip__anchor {
13315
13329
  display: inline-flex;
13316
13330
  }
@@ -13344,6 +13358,12 @@ body.gd-kda-dialog-opened .highcharts-tooltip-container {
13344
13358
  color: var(--gd-palette-complementary-8, #464e56);
13345
13359
  font-size: 14px;
13346
13360
  }
13361
+ .gd-gen-ai-chat__conversation__item__content pre {
13362
+ white-space: pre-wrap;
13363
+ }
13364
+ .gd-gen-ai-chat__conversation__item__content pre, .gd-gen-ai-chat__conversation__item__content code {
13365
+ word-break: break-word;
13366
+ }
13347
13367
  .gd-gen-ai-chat__conversation__item__content--toolCall code {
13348
13368
  display: inline-block;
13349
13369
  padding: 0 4px;