@gooddata/sdk-ui-gen-ai 10.13.0-alpha.2 → 10.13.0-alpha.21

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 (222) hide show
  1. package/NOTICE +37 -3
  2. package/esm/components/EmptyState.d.ts +3 -3
  3. package/esm/components/EmptyState.d.ts.map +1 -1
  4. package/esm/components/EmptyState.js +10 -8
  5. package/esm/components/EmptyState.js.map +1 -1
  6. package/esm/components/ErrorBoundary.d.ts +11 -3
  7. package/esm/components/ErrorBoundary.d.ts.map +1 -1
  8. package/esm/components/ErrorBoundary.js +26 -7
  9. package/esm/components/ErrorBoundary.js.map +1 -1
  10. package/esm/components/GenAIChatOverlay.d.ts +3 -3
  11. package/esm/components/GenAIChatOverlay.d.ts.map +1 -1
  12. package/esm/components/GenAIChatOverlay.js +4 -4
  13. package/esm/components/GenAIChatOverlay.js.map +1 -1
  14. package/esm/components/GenAIChatWrapper.d.ts +7 -5
  15. package/esm/components/GenAIChatWrapper.d.ts.map +1 -1
  16. package/esm/components/GenAIChatWrapper.js +14 -1
  17. package/esm/components/GenAIChatWrapper.js.map +1 -1
  18. package/esm/components/GlobalError.d.ts +6 -15
  19. package/esm/components/GlobalError.d.ts.map +1 -1
  20. package/esm/components/GlobalError.js +12 -18
  21. package/esm/components/GlobalError.js.map +1 -1
  22. package/esm/components/Input.d.ts +2 -1
  23. package/esm/components/Input.d.ts.map +1 -1
  24. package/esm/components/Input.js +15 -13
  25. package/esm/components/Input.js.map +1 -1
  26. package/esm/components/Messages.d.ts +3 -3
  27. package/esm/components/Messages.d.ts.map +1 -1
  28. package/esm/components/Messages.js +21 -33
  29. package/esm/components/Messages.js.map +1 -1
  30. package/esm/components/messages/AgentIcon.d.ts.map +1 -1
  31. package/esm/components/messages/AgentIcon.js +10 -4
  32. package/esm/components/messages/AgentIcon.js.map +1 -1
  33. package/esm/components/messages/AssistantMessage.d.ts +8 -0
  34. package/esm/components/messages/AssistantMessage.d.ts.map +1 -0
  35. package/esm/components/messages/AssistantMessage.js +14 -0
  36. package/esm/components/messages/AssistantMessage.js.map +1 -0
  37. package/esm/components/messages/MessageContents.d.ts +11 -0
  38. package/esm/components/messages/MessageContents.d.ts.map +1 -0
  39. package/esm/components/messages/MessageContents.js +37 -0
  40. package/esm/components/messages/MessageContents.js.map +1 -0
  41. package/esm/components/messages/UserMessage.d.ts +8 -0
  42. package/esm/components/messages/UserMessage.d.ts.map +1 -0
  43. package/esm/components/messages/UserMessage.js +10 -0
  44. package/esm/components/messages/UserMessage.js.map +1 -0
  45. package/esm/components/messages/contents/ErrorContents.d.ts +8 -0
  46. package/esm/components/messages/contents/ErrorContents.d.ts.map +1 -0
  47. package/esm/components/messages/contents/ErrorContents.js +10 -0
  48. package/esm/components/messages/contents/ErrorContents.js.map +1 -0
  49. package/esm/components/messages/contents/Markdown.d.ts +8 -0
  50. package/esm/components/messages/contents/Markdown.d.ts.map +1 -0
  51. package/esm/components/messages/contents/Markdown.js +18 -0
  52. package/esm/components/messages/contents/Markdown.js.map +1 -0
  53. package/esm/components/messages/contents/RoutingContents.d.ts +8 -0
  54. package/esm/components/messages/contents/RoutingContents.d.ts.map +1 -0
  55. package/esm/components/messages/contents/RoutingContents.js +10 -0
  56. package/esm/components/messages/contents/RoutingContents.js.map +1 -0
  57. package/esm/components/messages/contents/SearchContents.d.ts +8 -0
  58. package/esm/components/messages/contents/SearchContents.d.ts.map +1 -0
  59. package/esm/components/messages/contents/SearchContents.js +14 -0
  60. package/esm/components/messages/contents/SearchContents.js.map +1 -0
  61. package/esm/components/messages/contents/TextContents.d.ts +8 -0
  62. package/esm/components/messages/contents/TextContents.d.ts.map +1 -0
  63. package/esm/components/messages/contents/TextContents.js +10 -0
  64. package/esm/components/messages/contents/TextContents.js.map +1 -0
  65. package/esm/components/messages/contents/VisualizationContents.d.ts +8 -0
  66. package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -0
  67. package/esm/components/messages/contents/VisualizationContents.js +53 -0
  68. package/esm/components/messages/contents/VisualizationContents.js.map +1 -0
  69. package/esm/components/messages/contents/VisualizationErrorBoundary.d.ts +10 -0
  70. package/esm/components/messages/contents/VisualizationErrorBoundary.d.ts.map +1 -0
  71. package/esm/components/messages/contents/VisualizationErrorBoundary.js +22 -0
  72. package/esm/components/messages/contents/VisualizationErrorBoundary.js.map +1 -0
  73. package/esm/components/messages/contents/replaceLinks.d.ts +3 -0
  74. package/esm/components/messages/contents/replaceLinks.d.ts.map +1 -0
  75. package/esm/components/messages/contents/replaceLinks.js +30 -0
  76. package/esm/components/messages/contents/replaceLinks.js.map +1 -0
  77. package/esm/components/messages/contents/useExecution.d.ts +6 -0
  78. package/esm/components/messages/contents/useExecution.d.ts.map +1 -0
  79. package/esm/components/messages/{useExecution.js → contents/useExecution.js} +9 -4
  80. package/esm/components/messages/contents/useExecution.js.map +1 -0
  81. package/esm/components/messages/index.d.ts +2 -4
  82. package/esm/components/messages/index.d.ts.map +1 -1
  83. package/esm/components/messages/index.js +2 -4
  84. package/esm/components/messages/index.js.map +1 -1
  85. package/esm/hooks/useGenAIStore.d.ts +8 -10
  86. package/esm/hooks/useGenAIStore.d.ts.map +1 -1
  87. package/esm/index.d.ts +1 -1
  88. package/esm/index.d.ts.map +1 -1
  89. package/esm/localization/bundles/de-DE.json +22 -1
  90. package/esm/localization/bundles/en-AU.json +22 -1
  91. package/esm/localization/bundles/en-GB.json +22 -1
  92. package/esm/localization/bundles/en-US.json +11 -11
  93. package/esm/localization/bundles/es-419.json +22 -1
  94. package/esm/localization/bundles/es-ES.json +22 -1
  95. package/esm/localization/bundles/fi-FI.json +22 -1
  96. package/esm/localization/bundles/fr-CA.json +22 -1
  97. package/esm/localization/bundles/fr-FR.json +22 -1
  98. package/esm/localization/bundles/it-IT.json +22 -1
  99. package/esm/localization/bundles/ja-JP.json +22 -1
  100. package/esm/localization/bundles/nl-NL.json +22 -1
  101. package/esm/localization/bundles/pt-BR.json +22 -1
  102. package/esm/localization/bundles/pt-PT.json +22 -1
  103. package/esm/localization/bundles/zh-HK.json +22 -1
  104. package/esm/localization/bundles/zh-Hans.json +22 -1
  105. package/esm/localization/bundles/zh-Hant.json +22 -1
  106. package/esm/model.d.ts +70 -53
  107. package/esm/model.d.ts.map +1 -1
  108. package/esm/model.js +46 -43
  109. package/esm/model.js.map +1 -1
  110. package/esm/sdk-ui-gen-ai.d.ts +59 -46
  111. package/esm/store/index.d.ts +2 -4
  112. package/esm/store/index.d.ts.map +1 -1
  113. package/esm/store/index.js +2 -4
  114. package/esm/store/index.js.map +1 -1
  115. package/esm/store/messages/messagesSelectors.d.ts +6 -3
  116. package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
  117. package/esm/store/messages/messagesSelectors.js +6 -12
  118. package/esm/store/messages/messagesSelectors.js.map +1 -1
  119. package/esm/store/messages/messagesSlice.d.ts +48 -4
  120. package/esm/store/messages/messagesSlice.d.ts.map +1 -1
  121. package/esm/store/messages/messagesSlice.js +85 -23
  122. package/esm/store/messages/messagesSlice.js.map +1 -1
  123. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +9 -0
  124. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -0
  125. package/esm/store/sideEffects/converters/interactionsToMessages.js +36 -0
  126. package/esm/store/sideEffects/converters/interactionsToMessages.js.map +1 -0
  127. package/esm/store/sideEffects/index.d.ts.map +1 -1
  128. package/esm/store/sideEffects/index.js +10 -5
  129. package/esm/store/sideEffects/index.js.map +1 -1
  130. package/esm/store/sideEffects/onThreadClear.d.ts +18 -0
  131. package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -0
  132. package/esm/store/sideEffects/onThreadClear.js +31 -0
  133. package/esm/store/sideEffects/onThreadClear.js.map +1 -0
  134. package/esm/store/sideEffects/onThreadLoad.d.ts +20 -0
  135. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -0
  136. package/esm/store/sideEffects/onThreadLoad.js +41 -0
  137. package/esm/store/sideEffects/onThreadLoad.js.map +1 -0
  138. package/esm/store/sideEffects/onUserMessage.d.ts +20 -0
  139. package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -0
  140. package/esm/store/sideEffects/onUserMessage.js +52 -0
  141. package/esm/store/sideEffects/onUserMessage.js.map +1 -0
  142. package/esm/store/sideEffects/threadPolling.d.ts +16 -0
  143. package/esm/store/sideEffects/threadPolling.d.ts.map +1 -0
  144. package/esm/store/sideEffects/threadPolling.js +86 -0
  145. package/esm/store/sideEffects/threadPolling.js.map +1 -0
  146. package/esm/store/store.d.ts +8 -10
  147. package/esm/store/store.d.ts.map +1 -1
  148. package/esm/store/store.js +2 -4
  149. package/esm/store/store.js.map +1 -1
  150. package/esm/store/types.d.ts +0 -2
  151. package/esm/store/types.d.ts.map +1 -1
  152. package/esm/store/types.js +0 -1
  153. package/esm/store/types.js.map +1 -1
  154. package/package.json +15 -12
  155. package/styles/css/main.css +68 -43
  156. package/styles/css/main.css.map +1 -1
  157. package/styles/css/messages.css +55 -26
  158. package/styles/css/messages.css.map +1 -1
  159. package/styles/scss/main.scss +24 -6
  160. package/styles/scss/messages.scss +126 -97
  161. package/esm/components/messages/AgentState.d.ts +0 -3
  162. package/esm/components/messages/AgentState.d.ts.map +0 -1
  163. package/esm/components/messages/AgentState.js +0 -12
  164. package/esm/components/messages/AgentState.js.map +0 -1
  165. package/esm/components/messages/AssistantCancelledMessage.d.ts +0 -8
  166. package/esm/components/messages/AssistantCancelledMessage.d.ts.map +0 -1
  167. package/esm/components/messages/AssistantCancelledMessage.js +0 -12
  168. package/esm/components/messages/AssistantCancelledMessage.js.map +0 -1
  169. package/esm/components/messages/AssistantErrorMessage.d.ts +0 -11
  170. package/esm/components/messages/AssistantErrorMessage.d.ts.map +0 -1
  171. package/esm/components/messages/AssistantErrorMessage.js +0 -14
  172. package/esm/components/messages/AssistantErrorMessage.js.map +0 -1
  173. package/esm/components/messages/AssistantSearchCreateMessage.d.ts +0 -8
  174. package/esm/components/messages/AssistantSearchCreateMessage.d.ts.map +0 -1
  175. package/esm/components/messages/AssistantSearchCreateMessage.js +0 -16
  176. package/esm/components/messages/AssistantSearchCreateMessage.js.map +0 -1
  177. package/esm/components/messages/AssistantTextMessage.d.ts +0 -8
  178. package/esm/components/messages/AssistantTextMessage.d.ts.map +0 -1
  179. package/esm/components/messages/AssistantTextMessage.js +0 -10
  180. package/esm/components/messages/AssistantTextMessage.js.map +0 -1
  181. package/esm/components/messages/FoundObjects.d.ts +0 -8
  182. package/esm/components/messages/FoundObjects.d.ts.map +0 -1
  183. package/esm/components/messages/FoundObjects.js +0 -28
  184. package/esm/components/messages/FoundObjects.js.map +0 -1
  185. package/esm/components/messages/SystemMessage.d.ts +0 -8
  186. package/esm/components/messages/SystemMessage.d.ts.map +0 -1
  187. package/esm/components/messages/SystemMessage.js +0 -7
  188. package/esm/components/messages/SystemMessage.js.map +0 -1
  189. package/esm/components/messages/UserTextMessage.d.ts +0 -8
  190. package/esm/components/messages/UserTextMessage.d.ts.map +0 -1
  191. package/esm/components/messages/UserTextMessage.js +0 -10
  192. package/esm/components/messages/UserTextMessage.js.map +0 -1
  193. package/esm/components/messages/Visualization.d.ts +0 -8
  194. package/esm/components/messages/Visualization.d.ts.map +0 -1
  195. package/esm/components/messages/Visualization.js +0 -39
  196. package/esm/components/messages/Visualization.js.map +0 -1
  197. package/esm/components/messages/useExecution.d.ts +0 -6
  198. package/esm/components/messages/useExecution.d.ts.map +0 -1
  199. package/esm/components/messages/useExecution.js.map +0 -1
  200. package/esm/store/agent/agentSelectors.d.ts +0 -3
  201. package/esm/store/agent/agentSelectors.d.ts.map +0 -1
  202. package/esm/store/agent/agentSelectors.js +0 -6
  203. package/esm/store/agent/agentSelectors.js.map +0 -1
  204. package/esm/store/agent/agentSlice.d.ts +0 -8
  205. package/esm/store/agent/agentSlice.d.ts.map +0 -1
  206. package/esm/store/agent/agentSlice.js +0 -21
  207. package/esm/store/agent/agentSlice.js.map +0 -1
  208. package/esm/store/sideEffects/converters/evalToMessage.d.ts +0 -7
  209. package/esm/store/sideEffects/converters/evalToMessage.d.ts.map +0 -1
  210. package/esm/store/sideEffects/converters/evalToMessage.js +0 -14
  211. package/esm/store/sideEffects/converters/evalToMessage.js.map +0 -1
  212. package/esm/store/sideEffects/converters/messagesToHistory.d.ts +0 -4
  213. package/esm/store/sideEffects/converters/messagesToHistory.d.ts.map +0 -1
  214. package/esm/store/sideEffects/converters/messagesToHistory.js +0 -83
  215. package/esm/store/sideEffects/converters/messagesToHistory.js.map +0 -1
  216. package/esm/store/sideEffects/onNewMessage.d.ts +0 -13
  217. package/esm/store/sideEffects/onNewMessage.d.ts.map +0 -1
  218. package/esm/store/sideEffects/onNewMessage.js +0 -81
  219. package/esm/store/sideEffects/onNewMessage.js.map +0 -1
  220. package/styles/css/agentState.css +0 -29
  221. package/styles/css/agentState.css.map +0 -1
  222. package/styles/scss/agentState.scss +0 -31
@@ -0,0 +1,86 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import { call, cancelled, getContext, race, take, delay, put, select } from "redux-saga/effects";
3
+ import { cancelAsyncAction, evaluateMessageErrorAction, evaluateMessagePollingAction, newMessageAction, } from "../messages/messagesSlice.js";
4
+ import { processContents } from "./converters/interactionsToMessages.js";
5
+ import { lastMessageIdSelector } from "../messages/messagesSelectors.js";
6
+ /**
7
+ * Load thread history and put it to the store.
8
+ * @internal
9
+ */
10
+ export function* threadPolling({ payload: { message } }) {
11
+ // Get the last known thread id
12
+ const lastInteractionId = yield select(lastMessageIdSelector);
13
+ // Retrieve backend from context and prepare the chat thread service
14
+ const backend = yield getContext("backend");
15
+ const workspace = yield getContext("workspace");
16
+ const chatThread = backend.workspace(workspace).genAI().getChatThread();
17
+ const [pollingComplete] = yield race([
18
+ call(fetchChatHistoryPolling, message, chatThread, lastInteractionId),
19
+ // Any of the following actions will cancel the polling
20
+ delay(30000),
21
+ take(cancelAsyncAction.type),
22
+ take(evaluateMessageErrorAction.type),
23
+ take(newMessageAction.type),
24
+ ]);
25
+ // This will be implemented differently in production
26
+ // So, it's OK to have this error not in l18n
27
+ if (!pollingComplete) {
28
+ yield put(evaluateMessageErrorAction({
29
+ assistantMessageId: message.localId,
30
+ error: "Timeout: It took too long to get the response from the server.",
31
+ }));
32
+ }
33
+ }
34
+ function* fetchChatHistoryPolling(message, preparedChatThread, lastInteractionId) {
35
+ // The internal loop, each iteration is a single poll
36
+ while (true) {
37
+ try {
38
+ // Delay to avoid overwhelming the server
39
+ yield delay(1000);
40
+ // Make the server request
41
+ const results = yield call(doTheCall, preparedChatThread, lastInteractionId);
42
+ if ((results?.interactions?.length ?? 0) > 1) {
43
+ // Server feeds do not have stable IDs at the moment, it's hard to
44
+ // merge the results. We have to make an assumption that a single
45
+ // evaluation is running at a time.
46
+ console.warn("Unexpected interactions", results);
47
+ return true;
48
+ }
49
+ const interaction = results?.interactions?.[0];
50
+ if (interaction) {
51
+ // Update the store with new content
52
+ yield put(evaluateMessagePollingAction({
53
+ contents: processContents(interaction),
54
+ interactionId: interaction.chatHistoryInteractionId,
55
+ complete: interaction.interactionFinished,
56
+ localId: message.localId,
57
+ }));
58
+ if (interaction.interactionFinished) {
59
+ // Polling is done, exit the loop
60
+ return true;
61
+ }
62
+ }
63
+ }
64
+ catch (e) {
65
+ const isCancelled = yield cancelled();
66
+ if (isCancelled) {
67
+ // Polling is done, exit the loop
68
+ return true;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ function* doTheCall(preparedChatThread, nextInteraction) {
74
+ const controller = new AbortController();
75
+ try {
76
+ const results = yield call(preparedChatThread.loadHistory.bind(preparedChatThread), nextInteraction, { signal: controller.signal });
77
+ return results;
78
+ }
79
+ finally {
80
+ const isCancelled = yield cancelled();
81
+ if (isCancelled) {
82
+ controller.abort();
83
+ }
84
+ }
85
+ }
86
+ //# sourceMappingURL=threadPolling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threadPolling.js","sourceRoot":"","sources":["../../../src/store/sideEffects/threadPolling.ts"],"names":[],"mappings":"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"}
@@ -3,24 +3,22 @@ import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
3
3
  import { Message } from "../model.js";
4
4
  export declare const getStore: (backend: IAnalyticalBackend, workspace: string, initialHistory?: Message[]) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
5
5
  messages: {
6
- messageOrder: string[];
7
- messages: Record<string, Message>;
8
6
  verbose: boolean;
9
- };
10
- agent: {
11
- busy: boolean;
7
+ messages: Record<string, Message>;
8
+ messageOrder: string[];
9
+ globalError?: string | undefined;
10
+ asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
12
11
  };
13
12
  }, import("@reduxjs/toolkit").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[defaultReduxSaga.SagaMiddleware<{
14
13
  backend: IAnalyticalBackend;
15
14
  workspace: string;
16
15
  }>, import("@reduxjs/toolkit").ThunkMiddleware<{
17
16
  messages: {
18
- messageOrder: string[];
19
- messages: Record<string, Message>;
20
17
  verbose: boolean;
21
- };
22
- agent: {
23
- busy: boolean;
18
+ messages: Record<string, Message>;
19
+ messageOrder: string[];
20
+ globalError?: string | undefined;
21
+ asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
24
22
  };
25
23
  }, import("@reduxjs/toolkit").AnyAction>]>>;
26
24
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,eAAO,MAAM,QAAQ,YAAa,kBAAkB,aAAa,MAAM,mBAAmB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;2CA0BlG,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,eAAO,MAAM,QAAQ,YAAa,kBAAkB,aAAa,MAAM,mBAAmB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;2CAyBlG,CAAC"}
@@ -2,8 +2,7 @@
2
2
  import { configureStore } from "@reduxjs/toolkit";
3
3
  import defaultReduxSaga from "redux-saga";
4
4
  import { defaultImport } from "default-import";
5
- import { messagesSliceName, messagesSliceReducer, setMessages } from "./messages/messagesSlice.js";
6
- import { agentSliceName, agentSliceReducer } from "./agent/agentSlice.js";
5
+ import { messagesSliceName, messagesSliceReducer, setMessagesAction } from "./messages/messagesSlice.js";
7
6
  import { rootSaga } from "./sideEffects/index.js";
8
7
  // There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
9
8
  // In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
@@ -19,7 +18,6 @@ export const getStore = (backend, workspace, initialHistory) => {
19
18
  const store = configureStore({
20
19
  reducer: {
21
20
  [messagesSliceName]: messagesSliceReducer,
22
- [agentSliceName]: agentSliceReducer,
23
21
  },
24
22
  middleware: (getDefaultMiddleware) => getDefaultMiddleware().prepend(sagaMiddleware),
25
23
  devTools: {
@@ -29,7 +27,7 @@ export const getStore = (backend, workspace, initialHistory) => {
29
27
  sagaMiddleware.run(rootSaga);
30
28
  if (initialHistory?.length) {
31
29
  // Set the initial history in store
32
- store.dispatch(setMessages(initialHistory));
30
+ store.dispatch(setMessagesAction({ messages: initialHistory }));
33
31
  }
34
32
  return store;
35
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,4FAA4F;AAC5F,8GAA8G;AAC9G,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAA2B,EAAE,SAAiB,EAAE,cAA0B,EAAE,EAAE;IACnG,MAAM,cAAc,GAAG,oBAAoB,CAAC;QACxC,OAAO,EAAE;YACL,OAAO;YACP,SAAS;SACZ;KACJ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,cAAc,CAAC;QACzB,OAAO,EAAE;YACL,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;YACzC,CAAC,cAAc,CAAC,EAAE,iBAAiB;SACtC;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;QACpF,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;SAChB;KACJ,CAAC,CAAC;IAEH,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7B,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,mCAAmC;QACnC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,4FAA4F;AAC5F,8GAA8G;AAC9G,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAA2B,EAAE,SAAiB,EAAE,cAA0B,EAAE,EAAE;IACnG,MAAM,cAAc,GAAG,oBAAoB,CAAC;QACxC,OAAO,EAAE;YACL,OAAO;YACP,SAAS;SACZ;KACJ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,cAAc,CAAC;QACzB,OAAO,EAAE;YACL,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;SAC5C;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;QACpF,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;SAChB;KACJ,CAAC,CAAC;IAEH,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7B,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,mCAAmC;QACnC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -1,7 +1,5 @@
1
1
  import { messagesSliceName, messagesSliceReducer } from "./messages/messagesSlice.js";
2
- import { agentSliceName, agentSliceReducer } from "./agent/agentSlice.js";
3
2
  export type RootState = {
4
3
  [messagesSliceName]: ReturnType<typeof messagesSliceReducer>;
5
- [agentSliceName]: ReturnType<typeof agentSliceReducer>;
6
4
  };
7
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;CAC1D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEtF,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;CAChE,CAAC"}
@@ -1,4 +1,3 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import { messagesSliceName } from "./messages/messagesSlice.js";
3
- import { agentSliceName } from "./agent/agentSlice.js";
4
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-gen-ai",
3
- "version": "10.13.0-alpha.2",
3
+ "version": "10.13.0-alpha.21",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,14 +43,16 @@
43
43
  "classnames": "^2.3.1",
44
44
  "react-textarea-autosize": "8.4.0",
45
45
  "uuid": "^8.3.2",
46
- "@gooddata/api-client-tiger": "10.13.0-alpha.2",
47
- "@gooddata/sdk-model": "10.13.0-alpha.2",
48
- "@gooddata/sdk-backend-spi": "10.13.0-alpha.2",
49
- "@gooddata/sdk-ui-charts": "10.13.0-alpha.2",
50
- "@gooddata/sdk-ui": "10.13.0-alpha.2",
51
- "@gooddata/sdk-ui-pivot": "10.13.0-alpha.2",
52
- "@gooddata/util": "10.13.0-alpha.2",
53
- "@gooddata/sdk-ui-kit": "10.13.0-alpha.2"
46
+ "react-loading-skeleton": "^3.4.0",
47
+ "react-markdown": "^9.0.1",
48
+ "@gooddata/api-client-tiger": "10.13.0-alpha.21",
49
+ "@gooddata/sdk-model": "10.13.0-alpha.21",
50
+ "@gooddata/sdk-ui": "10.13.0-alpha.21",
51
+ "@gooddata/sdk-ui-charts": "10.13.0-alpha.21",
52
+ "@gooddata/sdk-ui-pivot": "10.13.0-alpha.21",
53
+ "@gooddata/sdk-ui-kit": "10.13.0-alpha.21",
54
+ "@gooddata/util": "10.13.0-alpha.21",
55
+ "@gooddata/sdk-backend-spi": "10.13.0-alpha.21"
54
56
  },
55
57
  "peerDependencies": {
56
58
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -63,6 +65,7 @@
63
65
  "@testing-library/dom": "~9.2.0",
64
66
  "@testing-library/react": "^14.0.0",
65
67
  "@testing-library/user-event": "^14.4.2",
68
+ "@types/node": "^18.17.6",
66
69
  "@types/raf": "^3.4.0",
67
70
  "@types/react": "^18.2.0",
68
71
  "@types/react-dom": "^18.2.1",
@@ -98,9 +101,9 @@
98
101
  "vitest-dom": "0.1.1",
99
102
  "@types/react-native-listener": "~1.1.3",
100
103
  "@types/uuid": "^8.3.4",
101
- "@gooddata/i18n-toolkit": "10.13.0-alpha.2",
102
- "@gooddata/sdk-backend-mockingbird": "10.13.0-alpha.2",
103
- "@gooddata/reference-workspace": "10.13.0-alpha.2"
104
+ "@gooddata/reference-workspace": "10.13.0-alpha.21",
105
+ "@gooddata/sdk-backend-mockingbird": "10.13.0-alpha.21",
106
+ "@gooddata/i18n-toolkit": "10.13.0-alpha.21"
104
107
  },
105
108
  "scripts": {
106
109
  "clean": "rm -rf ci dist esm coverage *.log styles/css tsconfig.tsbuildinfo",
@@ -160,25 +160,28 @@
160
160
  margin: 10px 0 0 15px;
161
161
  padding-right: 15px;
162
162
  }
163
+
163
164
  .gd-gen-ai-chat__messages__scroll {
164
165
  display: flex;
165
166
  flex-direction: column;
166
167
  gap: 15px;
167
168
  }
169
+
168
170
  .gd-gen-ai-chat__messages__message {
169
171
  display: flex;
170
172
  }
171
- .gd-gen-ai-chat__messages__message--user {
173
+
174
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text {
172
175
  max-width: 80%;
173
176
  background-color: var(--gd-palette-primary-base, #14b2e2);
174
177
  border-radius: 3px 3px 0 3px;
175
178
  padding: 4.5px 12px;
176
179
  position: relative;
177
180
  align-self: flex-end;
178
- margin-bottom: 29px;
181
+ margin-bottom: 15px;
179
182
  animation: gd-gen-ai-message-in 0.3s ease-out;
180
183
  }
181
- .gd-gen-ai-chat__messages__message--user::after {
184
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text::after {
182
185
  content: "";
183
186
  position: absolute;
184
187
  bottom: -7px;
@@ -189,15 +192,17 @@
189
192
  width: 0;
190
193
  height: 0;
191
194
  }
192
- .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__contents {
195
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text p {
193
196
  color: var(--gd-palette-complementary-0, #fff);
194
197
  }
195
- .gd-gen-ai-chat__messages__message--user--cancelled {
198
+ .gd-gen-ai-chat__messages__message--user.gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content--text {
199
+ color: var(--gd-palette-complementary-0, #fff);
196
200
  background-color: var(--gd-palette-primary-base-t80, rgba(20, 178, 226, 0.2));
197
201
  }
198
- .gd-gen-ai-chat__messages__message--user--cancelled::after {
202
+ .gd-gen-ai-chat__messages__message--user.gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content--text::after {
199
203
  border-top-color: var(--gd-palette-primary-base-t80, rgba(20, 178, 226, 0.2));
200
204
  }
205
+
201
206
  .gd-gen-ai-chat__messages__message--assistant {
202
207
  display: flex;
203
208
  flex-direction: row;
@@ -205,23 +210,45 @@
205
210
  align-items: flex-start;
206
211
  margin-bottom: 39px;
207
212
  }
208
- .gd-gen-ai-chat__messages__message--assistant--cancelled .gd-gen-ai-chat__messages__contents {
209
- color: var(--gd-palette-complementary-5, #b0beca);
213
+
214
+ .gd-gen-ai-chat__messages__contents {
215
+ flex: 1;
216
+ padding: 4.5px 0;
217
+ display: flex;
218
+ flex-direction: column;
219
+ gap: 15px;
210
220
  }
211
- .gd-gen-ai-chat__messages__message--error .gd-gen-ai-chat__messages__contents {
221
+
222
+ .gd-gen-ai-chat__messages__content--error {
212
223
  flex: unset;
213
224
  padding: 4.5px 12px;
214
225
  border-radius: 3px;
215
226
  background: var(--gd-palette-error-dimmed, #fcedec);
216
227
  color: var(--gd-palette-error-base, #e54d42);
217
228
  }
218
- .gd-gen-ai-chat__messages__message__found_objects ul {
219
- margin: 0;
229
+
230
+ .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content p, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:hover, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:active, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:visited {
231
+ color: var(--gd-palette-complementary-5, #b0beca);
220
232
  }
221
- .gd-gen-ai-chat__messages__contents {
222
- flex: 1;
223
- padding: 4.5px 0;
233
+
234
+ .gd-gen-ai-chat__loading {
235
+ animation: gd-gen-ai-message-loading 3s infinite linear;
224
236
  }
237
+
238
+ .gd-gen-ai-chat__visualization {
239
+ margin: 10px 0;
240
+ padding: 10px;
241
+ border: 1px solid var(--gd-palette-complementary-2, #ebeff4);
242
+ background: var(--gd-palette-complementary-0, #fff);
243
+ border-radius: 8px;
244
+ }
245
+ .gd-gen-ai-chat__visualization__wrapper {
246
+ height: 250px;
247
+ }
248
+ .gd-gen-ai-chat__visualization__title {
249
+ text-align: center;
250
+ }
251
+
225
252
  .gd-gen-ai-chat__messages__empty {
226
253
  display: flex;
227
254
  flex-direction: column;
@@ -243,18 +270,9 @@
243
270
  line-height: 20px;
244
271
  gap: 10px;
245
272
  }
246
- .gd-gen-ai-chat__messages__visualization {
247
- margin: 10px 0;
248
- padding: 10px;
249
- border: 1px solid var(--gd-palette-complementary-2, #ebeff4);
250
- background: var(--gd-palette-complementary-0, #fff);
251
- border-radius: 8px;
252
- }
253
- .gd-gen-ai-chat__messages__visualization__wrapper {
254
- height: 250px;
255
- }
256
- .gd-gen-ai-chat__messages__visualization__title {
257
- text-align: center;
273
+
274
+ .gd-gen-ai-chat__messages__content .gd-hyperlink {
275
+ display: inline;
258
276
  }
259
277
 
260
278
  @keyframes gd-gen-ai-message-in {
@@ -267,18 +285,7 @@
267
285
  transform: translateY(0);
268
286
  }
269
287
  }
270
- .gd-gen-ai-chat__agent_state {
271
- display: flex;
272
- flex-direction: row;
273
- gap: 10px;
274
- align-items: center;
275
- margin-bottom: 39px;
276
- }
277
- .gd-gen-ai-chat__agent_state__status {
278
- animation: gd-gen-ai-agent-state 3s infinite linear;
279
- }
280
-
281
- @keyframes gd-gen-ai-agent-state {
288
+ @keyframes gd-gen-ai-message-loading {
282
289
  0% {
283
290
  opacity: 1;
284
291
  }
@@ -496,16 +503,34 @@
496
503
  margin: 0 15px 10px;
497
504
  }
498
505
  .gd-gen-ai-chat__global_error {
499
- padding: 4.5px 12px;
500
- border-radius: 3px;
501
- background: var(--gd-palette-error-dimmed, #fcedec);
502
506
  margin: 10px 15px;
507
+ display: flex;
508
+ flex-direction: column;
509
+ gap: 15px;
503
510
  }
504
- .gd-gen-ai-chat__global_error p {
505
- color: var(--gd-palette-error-base, #e54d42);
511
+ .gd-gen-ai-chat__global_error__buttons {
512
+ display: flex;
513
+ flex-direction: row;
514
+ justify-content: center;
515
+ gap: 15px;
506
516
  }
507
517
  .gd-gen-ai-chat__global_error__details {
508
518
  padding: 6px;
519
+ border: 1px solid var(--gd-palette-complementary-3, #dde4eb);
520
+ border-radius: 3px;
521
+ background: var(--gd-palette-complementary-0, #fcfcfd);
522
+ }
523
+ .gd-gen-ai-chat__global_error__details pre {
524
+ margin: 0;
525
+ color: var(--gd-palette-complementary-7, #6d7680);
526
+ font-size: 12px;
527
+ font-weight: 400;
528
+ line-height: 18px;
529
+ padding: 0;
530
+ resize: none;
531
+ tab-size: 2;
532
+ text-align: left;
533
+ white-space: pre-wrap;
509
534
  }
510
535
 
511
536
  /*# sourceMappingURL=main.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Form/_mixins.scss","../scss/input.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/messages.scss","../scss/variables.scss","../scss/agentState.scss","../scss/agentIcon.scss","../scss/window.scss","../scss/main.scss"],"names":[],"mappings":"AA0HA;AA4DA;AClLA;AAAA;AAAA;ACIA;EACI;EACA;;AAEA;EDWA;EACA;EACA;EACA;EACA;EACA;EACA,OECY;EFAZ,YEba;EFcb;EACA,aE8Dc;EF7Dd;EDkCA,0BChC2B;EDiC3B,6BCjC2B;EDkC3B,qBClC2B;EDsC3B,0BCtCgC;EDuChC,6BCvCgC;EDwChC,qBCxCgC;ED4ChC,iCC5CuC;ED6CvC,oCC7CuC;ED8CvC,4BC9CuC;EDrBvC;EAQI;EEMA;EACA;EACA;EACA;EACA;EACA;;AFmHJ;EEhIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AF+HrD;EEpIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFmIrD;EExIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFuIrD;EE5IQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AAUjD;EAKI,cCmGiB;;AHSzB;EE/GY,OCXA;;AH8HZ;EEnHY,OCXA;;AHkIZ;EEvHY,OCXA;;AHsIZ;EE3HY,OCXA;;ADiBR;EFrBA;EE0BI;EACA,cCRc;;ADad;EFhCJ;EEoCQ,OCrCI;EDsCJ,cC+EO;ED9EP,kBCzCC;;AD8Cb;EFEA,0BEDmC;EFEnC,6BEFmC;EFGnC,qBEHmC;EFOnC,0BEPwC;EFQxC,6BERwC;EFSxC,qBETwC;EFaxC,iCEb+C;EFc/C,oCEd+C;EFe/C,4BEf+C;EAE3C;EACA;EACA;EACA;EACA;;AAEA;EAEI,MClDI;;ADqDR;EAEI,MCxCc;;AD2ClB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCrEI;;AD2EZ;AAAA;EAEI,MCzDc;;AD4DlB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCtFI;;;ACbpB;EACI;EACA;EAGA;EACA,eCZQ;;ADcR;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EAII;EACA,kBDWc;ECVd;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,mBAlBS;EAmBT;EACA;;AAGJ;EACI,ODlCC;;ACqCL;EACI,kBDPc;;ACUlB;EACI,kBDXc;;ACetB;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,ODlDI;;ACsDZ;EACI;EACA;EACA;EACA,YDnBc;ECoBd,ODtBY;;ACyBhB;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI,OD1Dc;;AC6DlB;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA,YD1GS;EC2GT;;AAEA;EACI;;AAGJ;EACI;;;AAKZ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AEvIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;ACbR;EACI;EACA;EACA;;AAEA;EACI,MJuBoB;;AIpBxB;EACI;EACA;EACA;;AAGJ;EACI,MJUkB;;AINlB;EACI;;AAGJ;EAGI;;AAEA;EACI;;AAMR;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAKJ;EACI,MJhDK;;AImDT;EACI,MJlDQ;;AIuDZ;EACI,YJpCc;;AIsClB;EACI,YAvEuB;;AAyE3B;EACI,YJnCkB;;;AIwC9B;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI,MJnEoB;;EIqExB;IACI,MJzEkB;;EI2EtB;IACI,MJzEoB;;;AI6E5B;EACI;IACI;;EAEJ;IACI,MJlEkB;;EIoEtB;IACI;;;ACzHR;EACI;EACA;EACA,kBLQa;EKPb;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA,kBLRU;;AKWd;EACI;EACA;;AAEA;EACI;EACA,ML9BI;;AKiCR;EACI;;AAEA;EACI,ML1CI;;AK8CZ;EACI;EACA;;AAIA;EACI,MLhBQ;;AKsBZ;EACI,MLxCU;;AK4ClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,YL/EI;EKgFJ;EACA,OL9FK;EK+FL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EAEI;;;AClHZ;EACI;EACA;EACA;EACA,KJXQ;EIYR;EACA;EACA;EACA,kBNCa;;AMCb;EACI;EACA,ONCe;EMAf;EACA;;AAGJ;EACI;EACA;EACA,YN8BkB;EM7BlB;;AAEA;EACI,ONwBY;;AMrBhB;EACI","file":"main.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Form/_mixins.scss","../scss/input.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/messages.scss","../scss/variables.scss","../scss/agentIcon.scss","../scss/window.scss","../scss/main.scss"],"names":[],"mappings":"AA0HA;AA4DA;AClLA;AAAA;AAAA;ACIA;EACI;EACA;;AAEA;EDWA;EACA;EACA;EACA;EACA;EACA;EACA,OECY;EFAZ,YEba;EFcb;EACA,aE8Dc;EF7Dd;EDkCA,0BChC2B;EDiC3B,6BCjC2B;EDkC3B,qBClC2B;EDsC3B,0BCtCgC;EDuChC,6BCvCgC;EDwChC,qBCxCgC;ED4ChC,iCC5CuC;ED6CvC,oCC7CuC;ED8CvC,4BC9CuC;EDrBvC;EAQI;EEMA;EACA;EACA;EACA;EACA;EACA;;AFmHJ;EEhIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AF+HrD;EEpIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFmIrD;EExIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFuIrD;EE5IQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AAUjD;EAKI,cCmGiB;;AHSzB;EE/GY,OCXA;;AH8HZ;EEnHY,OCXA;;AHkIZ;EEvHY,OCXA;;AHsIZ;EE3HY,OCXA;;ADiBR;EFrBA;EE0BI;EACA,cCRc;;ADad;EFhCJ;EEoCQ,OCrCI;EDsCJ,cC+EO;ED9EP,kBCzCC;;AD8Cb;EFEA,0BEDmC;EFEnC,6BEFmC;EFGnC,qBEHmC;EFOnC,0BEPwC;EFQxC,6BERwC;EFSxC,qBETwC;EFaxC,iCEb+C;EFc/C,oCEd+C;EFe/C,4BEf+C;EAE3C;EACA;EACA;EACA;EACA;;AAEA;EAEI,MClDI;;ADqDR;EAEI,MCxCc;;AD2ClB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCrEI;;AD2EZ;AAAA;EAEI,MCzDc;;AD4DlB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCtFI;;;ACbpB;EACI;EACA;EAGA;EACA,eCZQ;;;ADeZ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAIA;EAII;EACA,kBDQkB;ECPlB;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,mBAlBS;EAmBT;EACA;;AAGJ;EACI,ODrCK;;ACyCb;EACI,OD1CS;EC2CT,kBDZsB;;ACe1B;EACI,kBDhBsB;;;ACoB9B;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA,YD5BsB;EC6BtB,OD/BoB;;;ACmCpB;EAMI,OD9EY;;;ACkFpB;EACI;;;AAGJ;EACI;EACA;EACA;EACA,YD9Fa;EC+Fb;;AAEA;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;;AAEA;EACI,ODxFkB;;AC2FtB;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AE7JR;EACI;EACA;EACA;;AAEA;EACI,MHuBoB;;AGpBxB;EACI;EACA;EACA;;AAGJ;EACI,MHUkB;;AGNlB;EACI;;AAGJ;EAGI;;AAEA;EACI;;AAMR;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAKJ;EACI,MHhDK;;AGmDT;EACI,MHlDQ;;AGuDZ;EACI,YHpCc;;AGsClB;EACI,YAvEuB;;AAyE3B;EACI,YHnCkB;;;AGwC9B;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI,MHnEoB;;EGqExB;IACI,MHzEkB;;EG2EtB;IACI,MHzEoB;;;AG6E5B;EACI;IACI;;EAEJ;IACI,MHlEkB;;EGoEtB;IACI;;;ACzHR;EACI;EACA;EACA,kBJQa;EIPb;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA,kBJRU;;AIWd;EACI;EACA;;AAEA;EACI;EACA,MJ9BI;;AIiCR;EACI;;AAEA;EACI,MJ1CI;;AI8CZ;EACI;EACA;;AAIA;EACI,MJhBQ;;AIsBZ;EACI,MJxCU;;AI4ClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,YJ/EI;EIgFJ;EACA,OJ9FK;EI+FL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EAEI;;;ACnHZ;EACI;EACA;EACA;EACA,KHVQ;EGWR;EACA;EACA;EACA,kBLEa;;AKAb;EACI;EACA,OLEe;EKDf;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,YLxBK;;AK2BT;EACI;EACA,OLtBI;EKuBJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA","file":"main.css"}
@@ -9,25 +9,28 @@
9
9
  margin: 10px 0 0 15px;
10
10
  padding-right: 15px;
11
11
  }
12
+
12
13
  .gd-gen-ai-chat__messages__scroll {
13
14
  display: flex;
14
15
  flex-direction: column;
15
16
  gap: 15px;
16
17
  }
18
+
17
19
  .gd-gen-ai-chat__messages__message {
18
20
  display: flex;
19
21
  }
20
- .gd-gen-ai-chat__messages__message--user {
22
+
23
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text {
21
24
  max-width: 80%;
22
25
  background-color: var(--gd-palette-primary-base, #14b2e2);
23
26
  border-radius: 3px 3px 0 3px;
24
27
  padding: 4.5px 12px;
25
28
  position: relative;
26
29
  align-self: flex-end;
27
- margin-bottom: 29px;
30
+ margin-bottom: 15px;
28
31
  animation: gd-gen-ai-message-in 0.3s ease-out;
29
32
  }
30
- .gd-gen-ai-chat__messages__message--user::after {
33
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text::after {
31
34
  content: "";
32
35
  position: absolute;
33
36
  bottom: -7px;
@@ -38,15 +41,17 @@
38
41
  width: 0;
39
42
  height: 0;
40
43
  }
41
- .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__contents {
44
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text p {
42
45
  color: var(--gd-palette-complementary-0, #fff);
43
46
  }
44
- .gd-gen-ai-chat__messages__message--user--cancelled {
47
+ .gd-gen-ai-chat__messages__message--user.gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content--text {
48
+ color: var(--gd-palette-complementary-0, #fff);
45
49
  background-color: var(--gd-palette-primary-base-t80, rgba(20, 178, 226, 0.2));
46
50
  }
47
- .gd-gen-ai-chat__messages__message--user--cancelled::after {
51
+ .gd-gen-ai-chat__messages__message--user.gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content--text::after {
48
52
  border-top-color: var(--gd-palette-primary-base-t80, rgba(20, 178, 226, 0.2));
49
53
  }
54
+
50
55
  .gd-gen-ai-chat__messages__message--assistant {
51
56
  display: flex;
52
57
  flex-direction: row;
@@ -54,23 +59,45 @@
54
59
  align-items: flex-start;
55
60
  margin-bottom: 39px;
56
61
  }
57
- .gd-gen-ai-chat__messages__message--assistant--cancelled .gd-gen-ai-chat__messages__contents {
58
- color: var(--gd-palette-complementary-5, #b0beca);
62
+
63
+ .gd-gen-ai-chat__messages__contents {
64
+ flex: 1;
65
+ padding: 4.5px 0;
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 15px;
59
69
  }
60
- .gd-gen-ai-chat__messages__message--error .gd-gen-ai-chat__messages__contents {
70
+
71
+ .gd-gen-ai-chat__messages__content--error {
61
72
  flex: unset;
62
73
  padding: 4.5px 12px;
63
74
  border-radius: 3px;
64
75
  background: var(--gd-palette-error-dimmed, #fcedec);
65
76
  color: var(--gd-palette-error-base, #e54d42);
66
77
  }
67
- .gd-gen-ai-chat__messages__message__found_objects ul {
68
- margin: 0;
78
+
79
+ .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content p, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:hover, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:active, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:visited {
80
+ color: var(--gd-palette-complementary-5, #b0beca);
69
81
  }
70
- .gd-gen-ai-chat__messages__contents {
71
- flex: 1;
72
- padding: 4.5px 0;
82
+
83
+ .gd-gen-ai-chat__loading {
84
+ animation: gd-gen-ai-message-loading 3s infinite linear;
85
+ }
86
+
87
+ .gd-gen-ai-chat__visualization {
88
+ margin: 10px 0;
89
+ padding: 10px;
90
+ border: 1px solid var(--gd-palette-complementary-2, #ebeff4);
91
+ background: var(--gd-palette-complementary-0, #fff);
92
+ border-radius: 8px;
93
+ }
94
+ .gd-gen-ai-chat__visualization__wrapper {
95
+ height: 250px;
73
96
  }
97
+ .gd-gen-ai-chat__visualization__title {
98
+ text-align: center;
99
+ }
100
+
74
101
  .gd-gen-ai-chat__messages__empty {
75
102
  display: flex;
76
103
  flex-direction: column;
@@ -92,18 +119,9 @@
92
119
  line-height: 20px;
93
120
  gap: 10px;
94
121
  }
95
- .gd-gen-ai-chat__messages__visualization {
96
- margin: 10px 0;
97
- padding: 10px;
98
- border: 1px solid var(--gd-palette-complementary-2, #ebeff4);
99
- background: var(--gd-palette-complementary-0, #fff);
100
- border-radius: 8px;
101
- }
102
- .gd-gen-ai-chat__messages__visualization__wrapper {
103
- height: 250px;
104
- }
105
- .gd-gen-ai-chat__messages__visualization__title {
106
- text-align: center;
122
+
123
+ .gd-gen-ai-chat__messages__content .gd-hyperlink {
124
+ display: inline;
107
125
  }
108
126
 
109
127
  @keyframes gd-gen-ai-message-in {
@@ -116,5 +134,16 @@
116
134
  transform: translateY(0);
117
135
  }
118
136
  }
137
+ @keyframes gd-gen-ai-message-loading {
138
+ 0% {
139
+ opacity: 1;
140
+ }
141
+ 50% {
142
+ opacity: 0.3;
143
+ }
144
+ 100% {
145
+ opacity: 1;
146
+ }
147
+ }
119
148
 
120
149
  /*# sourceMappingURL=messages.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Form/_mixins.scss","../scss/messages.scss","../scss/variables.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AA0HA;AA4DA;AClLA;AAAA;AAAA;ACIA;EACI;EACA;EAGA;EACA,eCZQ;;ADcR;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EAII;EACA,kBEWc;EFVd;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,mBAlBS;EAmBT;EACA;;AAGJ;EACI,OElCC;;AFqCL;EACI,kBEPc;;AFUlB;EACI,kBEXc;;AFetB;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,OElDI;;AFsDZ;EACI;EACA;EACA;EACA,YEnBc;EFoBd,OEtBY;;AFyBhB;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI,OE1Dc;;AF6DlB;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA,YE1GS;EF2GT;;AAEA;EACI;;AAGJ;EACI;;;AAKZ;EACI;IACI;IACA;;EAEJ;IACI;IACA","file":"messages.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Form/_mixins.scss","../scss/messages.scss","../scss/variables.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AA0HA;AA4DA;AClLA;AAAA;AAAA;ACIA;EACI;EACA;EAGA;EACA,eCZQ;;;ADeZ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAIA;EAII;EACA,kBEQkB;EFPlB;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,mBAlBS;EAmBT;EACA;;AAGJ;EACI,OErCK;;AFyCb;EACI,OE1CS;EF2CT,kBEZsB;;AFe1B;EACI,kBEhBsB;;;AFoB9B;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA,YE5BsB;EF6BtB,OE/BoB;;;AFmCpB;EAMI,OE9EY;;;AFkFpB;EACI;;;AAGJ;EACI;EACA;EACA;EACA,YE9Fa;EF+Fb;;AAEA;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;;AAEA;EACI,OExFkB;;AF2FtB;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI","file":"messages.css"}