@gooddata/sdk-ui-gen-ai 10.15.0-alpha.14 → 10.15.0-alpha.16

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 (39) hide show
  1. package/NOTICE +65 -3
  2. package/esm/components/Input.d.ts.map +1 -1
  3. package/esm/components/Input.js +14 -3
  4. package/esm/components/Input.js.map +1 -1
  5. package/esm/components/messages/AgentIcon.d.ts +1 -1
  6. package/esm/components/messages/AgentIcon.d.ts.map +1 -1
  7. package/esm/components/messages/AgentIcon.js +4 -4
  8. package/esm/components/messages/AgentIcon.js.map +1 -1
  9. package/esm/components/messages/AssistantMessage.d.ts +4 -1
  10. package/esm/components/messages/AssistantMessage.d.ts.map +1 -1
  11. package/esm/components/messages/AssistantMessage.js +5 -2
  12. package/esm/components/messages/AssistantMessage.js.map +1 -1
  13. package/esm/components/messages/contents/VisualizationContents.js +15 -15
  14. package/esm/components/messages/contents/VisualizationContents.js.map +1 -1
  15. package/esm/components/messages/contents/useExecution.d.ts +2 -1
  16. package/esm/components/messages/contents/useExecution.d.ts.map +1 -1
  17. package/esm/components/messages/contents/useExecution.js +51 -1
  18. package/esm/components/messages/contents/useExecution.js.map +1 -1
  19. package/esm/localization/bundles/en-US.json +10 -0
  20. package/esm/store/index.d.ts +1 -1
  21. package/esm/store/index.d.ts.map +1 -1
  22. package/esm/store/index.js +1 -1
  23. package/esm/store/index.js.map +1 -1
  24. package/esm/store/messages/messagesSlice.d.ts +6 -5
  25. package/esm/store/messages/messagesSlice.d.ts.map +1 -1
  26. package/esm/store/messages/messagesSlice.js +23 -22
  27. package/esm/store/messages/messagesSlice.js.map +1 -1
  28. package/esm/store/sideEffects/index.d.ts.map +1 -1
  29. package/esm/store/sideEffects/index.js +1 -3
  30. package/esm/store/sideEffects/index.js.map +1 -1
  31. package/esm/store/sideEffects/onUserMessage.d.ts +10 -5
  32. package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -1
  33. package/esm/store/sideEffects/onUserMessage.js +51 -19
  34. package/esm/store/sideEffects/onUserMessage.js.map +1 -1
  35. package/package.json +12 -12
  36. package/esm/store/sideEffects/threadPolling.d.ts +0 -16
  37. package/esm/store/sideEffects/threadPolling.d.ts.map +0 -1
  38. package/esm/store/sideEffects/threadPolling.js +0 -86
  39. package/esm/store/sideEffects/threadPolling.js.map +0 -1
package/NOTICE CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
9
9
 
10
- Date generated: 2024-10-18
10
+ Date generated: 2024-11-11
11
11
 
12
- Revision ID: c8785ae77c4b8e7d39ac8e83ceded1476fe256e9
12
+ Revision ID: cd08ae0ca9de334a320f4c2153889ab5a8b8dd4e
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -445,6 +445,7 @@ Revision ID: c8785ae77c4b8e7d39ac8e83ceded1476fe256e9
445
445
  - etag (1.8.1) [MIT]
446
446
  - eventemitter3 (4.0.7) [MIT]
447
447
  - events (3.3.0) [MIT]
448
+ - eventsource-parser (3.0.0) [MIT]
448
449
  - execa (5.1.1) [MIT]
449
450
  - execa (8.0.1) [MIT]
450
451
  - exponential-backoff (3.1.1) [Apache-2.0]
@@ -16831,6 +16832,42 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
16831
16832
 
16832
16833
 
16833
16834
 
16835
+ --------------------------------------------------------------------------------
16836
+ Package Title: eventsource-parser (3.0.0)
16837
+
16838
+ Package Locator: npm+eventsource-parser$3.0.0
16839
+
16840
+ Package Depth: Direct
16841
+ --------------------------------------------------------------------------------
16842
+
16843
+ * Declared Licenses *
16844
+ MIT
16845
+
16846
+
16847
+ MIT License
16848
+
16849
+ Copyright (c) 2024 Espen Hovlandsdal <espen@hovlandsdal.com>
16850
+
16851
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16852
+ of this software and associated documentation files (the "Software"), to deal
16853
+ in the Software without restriction, including without limitation the rights
16854
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16855
+ copies of the Software, and to permit persons to whom the Software is
16856
+ furnished to do so, subject to the following conditions:
16857
+
16858
+ The above copyright notice and this permission notice shall be included in all
16859
+ copies or substantial portions of the Software.
16860
+
16861
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16862
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16863
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16864
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16865
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16866
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
16867
+ SOFTWARE.
16868
+
16869
+
16870
+
16834
16871
  --------------------------------------------------------------------------------
16835
16872
  Package Title: execa (5.1.1)
16836
16873
 
@@ -66550,6 +66587,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
66550
66587
  SOFTWARE.
66551
66588
 
66552
66589
 
66590
+ * MIT *
66591
+
66592
+ MIT License
66593
+
66594
+ Copyright (c) 2024 Espen Hovlandsdal <espen@hovlandsdal.com>
66595
+
66596
+ Permission is hereby granted, free of charge, to any person obtaining a copy
66597
+ of this software and associated documentation files (the "Software"), to deal
66598
+ in the Software without restriction, including without limitation the rights
66599
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
66600
+ copies of the Software, and to permit persons to whom the Software is
66601
+ furnished to do so, subject to the following conditions:
66602
+
66603
+ The above copyright notice and this permission notice shall be included in all
66604
+ copies or substantial portions of the Software.
66605
+
66606
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
66607
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
66608
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
66609
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
66610
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
66611
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
66612
+ SOFTWARE.
66613
+
66614
+
66553
66615
  * MIT *
66554
66616
 
66555
66617
  MIT License
@@ -71136,4 +71198,4 @@ POSSIBILITY OF SUCH DAMAGE.
71136
71198
  --------------------------------------------------------------------------------
71137
71199
  --------------------------------------------------------------------------------
71138
71200
 
71139
- Report Generated by FOSSA on 2024-10-18
71201
+ Report Generated by FOSSA on 2024-11-11
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAwB,gBAAgB,EAAa,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAOhF,KAAK,eAAe,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,OAAO,gBAAgB,CAAC;CACvC,CAAC;AA4EF,eAAO,MAAM,KAAK;;;;6CAA2E,CAAC"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,EAAwB,gBAAgB,EAAa,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAOhF,KAAK,eAAe,GAAG;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,OAAO,gBAAgB,CAAC;CACvC,CAAC;AAyFF,eAAO,MAAM,KAAK;;;;6CAA2E,CAAC"}
@@ -7,11 +7,22 @@ import { SendIcon } from "./SendIcon.js";
7
7
  import { connect } from "react-redux";
8
8
  import { makeTextContents, makeUserMessage } from "../model.js";
9
9
  import { asyncProcessSelector, newMessageAction } from "../store/index.js";
10
- import { injectIntl } from "react-intl";
10
+ import { defineMessages, injectIntl } from "react-intl";
11
11
  // There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
12
12
  // In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
13
13
  // https://github.com/microsoft/TypeScript/issues/52086#issuecomment-1385978414
14
14
  const TextareaAutosize = defaultImport(DefaultTextArea);
15
+ const messages = defineMessages({
16
+ placeholder: {
17
+ id: "gd.gen-ai.input-placeholder",
18
+ },
19
+ label: {
20
+ id: "gd.gen-ai.input-label",
21
+ },
22
+ send: {
23
+ id: "gd.gen-ai.button.send",
24
+ },
25
+ });
15
26
  const InputComponent = ({ isBusy, isEvaluating, newMessage, intl, }) => {
16
27
  const [value, setValue] = React.useState("");
17
28
  const textareaRef = React.useRef(null);
@@ -41,8 +52,8 @@ const InputComponent = ({ isBusy, isEvaluating, newMessage, intl, }) => {
41
52
  "gd-gen-ai-chat__input__send_button--disabled": buttonDisabled,
42
53
  });
43
54
  return (React.createElement("div", { className: "gd-gen-ai-chat__input" },
44
- React.createElement(TextareaAutosize, { ref: textareaRef, className: "gd-gen-ai-chat__input__textarea", placeholder: intl.formatMessage({ id: "gd.gen-ai.input-placeholder" }), value: value, onChange: handleChange, onKeyDown: handleKeyDown, disabled: isBusy }),
45
- React.createElement("div", { role: "button", "aria-label": intl.formatMessage({ id: "gd.gen-ai.button.send" }), onClick: !buttonDisabled ? handleSubmit : undefined },
55
+ React.createElement(TextareaAutosize, { ref: textareaRef, className: "gd-gen-ai-chat__input__textarea", placeholder: intl.formatMessage(messages.placeholder), value: value, onChange: handleChange, onKeyDown: handleKeyDown, disabled: isBusy, "aria-label": intl.formatMessage(messages.label) }),
56
+ React.createElement("div", { role: "button", "aria-label": intl.formatMessage(messages.send), onClick: !buttonDisabled ? handleSubmit : undefined },
46
57
  React.createElement(SendIcon, { className: buttonClasses }))));
47
58
  };
48
59
  const mapStateToProps = (state) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- type AgentStateIconProps = {
2
+ type AgentStateIconProps = React.SVGAttributes<SVGSVGElement> & {
3
3
  loading?: boolean;
4
4
  error?: boolean;
5
5
  cancelled?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentIcon.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,mBAAmB,GAAG;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4EnD,CAAC"}
1
+ {"version":3,"file":"AgentIcon.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,mBAAmB,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkFnD,CAAC"}
@@ -2,13 +2,13 @@
2
2
  import React from "react";
3
3
  import cx from "classnames";
4
4
  let INSTANCE_COUNTER = 0;
5
- export const AgentIcon = ({ loading = false, error = false, cancelled = false, }) => {
5
+ export const AgentIcon = ({ loading = false, error = false, cancelled = false, className = "", ...rest }) => {
6
6
  // A precaution in case there are multiple instances of the component on the same page
7
7
  // In-line SVGs must obey the unique ID rule as any other HTML element
8
8
  const instanceId = React.useMemo(() => INSTANCE_COUNTER++, []);
9
9
  const isLoading = loading && !cancelled && !error;
10
10
  // We are adding only one modifier class at a time
11
- const className = cx("gd-gen-ai-chat__agent_icon", {
11
+ const cn = cx("gd-gen-ai-chat__agent_icon", {
12
12
  // Error state has the top priority
13
13
  "gd-gen-ai-chat__agent_icon--error": error,
14
14
  // Cancelled state
@@ -17,8 +17,8 @@ export const AgentIcon = ({ loading = false, error = false, cancelled = false, }
17
17
  "gd-gen-ai-chat__agent_icon--loading": isLoading,
18
18
  // The default state with animation on first appearance
19
19
  "gd-gen-ai-chat__agent_icon--appear": !loading && !error && !cancelled,
20
- });
21
- return (React.createElement("svg", { className: className, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
20
+ }, className);
21
+ return (React.createElement("svg", { ...rest, className: cn, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
22
22
  React.createElement("g", { clipPath: `url(#clip_mask_${instanceId})` },
23
23
  isLoading ? (React.createElement("g", { className: "gd-gen-ai-chat__agent_icon__circle" },
24
24
  React.createElement("path", { d: "M 0 -16 A 16 16 0 0 1 0 16", stroke: `url(#first_half_${instanceId})` }),
@@ -1 +1 @@
1
- {"version":3,"file":"AgentIcon.js","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAQzB,MAAM,CAAC,MAAM,SAAS,GAAkC,CAAC,EACrD,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,KAAK,GACpB,EAAE,EAAE;IACD,sFAAsF;IACtF,sEAAsE;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC;IAElD,kDAAkD;IAClD,MAAM,SAAS,GAAG,EAAE,CAAC,4BAA4B,EAAE;QAC/C,mCAAmC;QACnC,mCAAmC,EAAE,KAAK;QAC1C,kBAAkB;QAClB,uCAAuC,EAAE,CAAC,KAAK,IAAI,SAAS;QAC5D,gBAAgB;QAChB,qCAAqC,EAAE,SAAS;QAChD,uDAAuD;QACvD,oCAAoC,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;KACzE,CAAC,CAAC;IAEH,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;QACzF,2BAAG,QAAQ,EAAE,kBAAkB,UAAU,GAAG;YACvC,SAAS,CAAC,CAAC,CAAC,CACT,2BAAG,SAAS,EAAC,oCAAoC;gBAC7C,8BAAM,CAAC,EAAC,4BAA4B,EAAC,MAAM,EAAE,mBAAmB,UAAU,GAAG,GAAI;gBACjF,8BAAM,CAAC,EAAC,4BAA4B,EAAC,MAAM,EAAE,oBAAoB,UAAU,GAAG,GAAI,CAClF,CACP,CAAC,CAAC,CAAC,CACA,gCAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,wCAAwC,GAAG,CACvF;YACD,8BACI,SAAS,EAAC,kCAAkC,EAC5C,CAAC,EAAC,0gBAA0gB,GAC9gB;YACF,8BACI,SAAS,EAAC,2EAA2E,EACrF,CAAC,EAAC,6YAA6Y,GACjZ;YACF,8BACI,SAAS,EAAC,2HAA2H,EACrI,CAAC,EAAC,+YAA+Y,GACnZ,CACF;QACJ;YACI,wCACI,EAAE,EAAE,cAAc,UAAU,EAAE,EAC9B,aAAa,EAAC,mBAAmB,EACjC,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG;gBAEN,8BAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,wCAAwC,GAAG;gBACvE,8BAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,uCAAuC,GAAG,CAC3D;YACjB,wCACI,SAAS,EAAC,mCAAmC,EAC7C,EAAE,EAAE,eAAe,UAAU,EAAE,EAC/B,aAAa,EAAC,mBAAmB,EACjC,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG;gBAEN,8BAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,uCAAuC,GAAG;gBACtE,8BAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,sCAAsC,GAAG,CAC1D;YACjB,kCAAU,EAAE,EAAE,aAAa,UAAU,EAAE;gBACnC,8BAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,CAChC,CACR,CACL,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"AgentIcon.js","sourceRoot":"","sources":["../../../src/components/messages/AgentIcon.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import React from "react";
2
2
  import { AssistantMessage } from "../../model.js";
3
+ import { WrappedComponentProps } from "react-intl";
3
4
  type AssistantMessageProps = {
4
5
  message: AssistantMessage;
5
6
  };
6
- export declare const AssistantMessageComponent: React.FC<AssistantMessageProps>;
7
+ export declare const AssistantMessageComponent: React.FC<import("react-intl").WithIntlProps<AssistantMessageProps & WrappedComponentProps>> & {
8
+ WrappedComponent: React.ComponentType<AssistantMessageProps & WrappedComponentProps>;
9
+ };
7
10
  export {};
8
11
  //# sourceMappingURL=AssistantMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAInE,KAAK,qBAAqB,GAAG;IACzB,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmBrE,CAAC"}
1
+ {"version":3,"file":"AssistantMessage.d.ts","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAGnE,OAAO,EAA6B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E,KAAK,qBAAqB,GAAG;IACzB,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAiCF,eAAO,MAAM,yBAAyB;;CAA4C,CAAC"}
@@ -4,11 +4,14 @@ import cx from "classnames";
4
4
  import { isErrorContents } from "../../model.js";
5
5
  import { AgentIcon } from "./AgentIcon.js";
6
6
  import { MessageContents } from "./MessageContents.js";
7
- export const AssistantMessageComponent = ({ message }) => {
7
+ import { defineMessage, injectIntl } from "react-intl";
8
+ const labelMessage = defineMessage({ id: "gd.gen-ai.assistant-icon" });
9
+ const AssistantMessageComponentCore = ({ message, intl, }) => {
8
10
  const classNames = cx("gd-gen-ai-chat__messages__message", "gd-gen-ai-chat__messages__message--assistant", message.cancelled && "gd-gen-ai-chat__messages__message--cancelled");
9
11
  const hasError = message.content.some(isErrorContents);
10
12
  return (React.createElement("div", { className: classNames },
11
- React.createElement(AgentIcon, { loading: !message.complete, error: hasError, cancelled: message.cancelled }),
13
+ React.createElement(AgentIcon, { loading: !message.complete, error: hasError, cancelled: message.cancelled, "aria-label": intl.formatMessage(labelMessage) }),
12
14
  React.createElement(MessageContents, { useMarkdown: true, content: message.content, isComplete: Boolean(message.complete || message.cancelled), isCancelled: message.cancelled })));
13
15
  };
16
+ export const AssistantMessageComponent = injectIntl(AssistantMessageComponentCore);
14
17
  //# sourceMappingURL=AssistantMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAoB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,MAAM,CAAC,MAAM,yBAAyB,GAAoC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACtF,MAAM,UAAU,GAAG,EAAE,CACjB,mCAAmC,EACnC,8CAA8C,EAC9C,OAAO,CAAC,SAAS,IAAI,8CAA8C,CACtE,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEvD,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU;QACtB,oBAAC,SAAS,IAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI;QACxF,oBAAC,eAAe,IACZ,WAAW,QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,EAC1D,WAAW,EAAE,OAAO,CAAC,SAAS,GAChC,CACA,CACT,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantMessage.js","sourceRoot":"","sources":["../../../src/components/messages/AssistantMessage.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAoB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAyB,MAAM,YAAY,CAAC;AAM9E,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,EAAE,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAEvE,MAAM,6BAA6B,GAA4D,CAAC,EAC5F,OAAO,EACP,IAAI,GACP,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,EAAE,CACjB,mCAAmC,EACnC,8CAA8C,EAC9C,OAAO,CAAC,SAAS,IAAI,8CAA8C,CACtE,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEvD,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU;QACtB,oBAAC,SAAS,IACN,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,EAC1B,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,OAAO,CAAC,SAAS,gBAChB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAC9C;QACF,oBAAC,eAAe,IACZ,WAAW,QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,EAC1D,WAAW,EAAE,OAAO,CAAC,SAAS,GAChC,CACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC"}
@@ -9,7 +9,7 @@ import { MarkdownComponent } from "./Markdown.js";
9
9
  export const VisualizationContentsComponent = ({ content, useMarkdown, }) => {
10
10
  const className = cx("gd-gen-ai-chat__messages__content", "gd-gen-ai-chat__messages__content--visualization");
11
11
  const visualization = content.createdVisualizations?.[0];
12
- const { metrics, dimensions } = useExecution(visualization);
12
+ const { metrics, dimensions, filters } = useExecution(visualization);
13
13
  return (React.createElement("div", { className: className },
14
14
  React.createElement(MarkdownComponent, { allowMarkdown: useMarkdown }, content.text),
15
15
  visualization ? (React.createElement("div", { className: "gd-gen-ai-chat__visualization" },
@@ -17,17 +17,17 @@ export const VisualizationContentsComponent = ({ content, useMarkdown, }) => {
17
17
  React.createElement(VisualizationErrorBoundary, null, (() => {
18
18
  switch (visualization.visualizationType) {
19
19
  case "BAR":
20
- return renderBarChart(metrics, dimensions);
20
+ return renderBarChart(metrics, dimensions, filters);
21
21
  case "COLUMN":
22
- return renderColumnChart(metrics, dimensions);
22
+ return renderColumnChart(metrics, dimensions, filters);
23
23
  case "LINE":
24
- return renderLineChart(metrics, dimensions);
24
+ return renderLineChart(metrics, dimensions, filters);
25
25
  case "PIE":
26
- return renderPieChart(metrics, dimensions);
26
+ return renderPieChart(metrics, dimensions, filters);
27
27
  case "TABLE":
28
- return renderTable(metrics, dimensions);
28
+ return renderTable(metrics, dimensions, filters);
29
29
  case "HEADLINE":
30
- return renderHeadline(metrics, dimensions);
30
+ return renderHeadline(metrics, dimensions, filters);
31
31
  default:
32
32
  return assertNever(visualization.visualizationType);
33
33
  }
@@ -38,16 +38,16 @@ export const VisualizationContentsComponent = ({ content, useMarkdown, }) => {
38
38
  const assertNever = (value) => {
39
39
  throw new Error("Unknown visualization type: " + value);
40
40
  };
41
- const renderBarChart = (metrics, dimensions) => (React.createElement(BarChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
41
+ const renderBarChart = (metrics, dimensions, filters) => (React.createElement(BarChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
42
42
  // Better visibility with stacked bars if there are multiple metrics and dimensions
43
43
  stackMeasures: metrics.length > 1 && dimensions.length === 2,
44
- } }));
45
- const renderColumnChart = (metrics, dimensions) => (React.createElement(ColumnChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
44
+ }, filters: filters }));
45
+ const renderColumnChart = (metrics, dimensions, filters) => (React.createElement(ColumnChart, { height: 300, measures: metrics, viewBy: [dimensions[0], dimensions[1]].filter(Boolean), stackBy: metrics.length <= 1 ? dimensions[2] : undefined, config: {
46
46
  // Better visibility with stacked bars if there are multiple metrics and dimensions
47
47
  stackMeasures: metrics.length > 1 && dimensions.length === 2,
48
- } }));
49
- const renderLineChart = (metrics, dimensions) => (React.createElement(LineChart, { height: 300, measures: metrics, trendBy: dimensions[0], segmentBy: metrics.length <= 1 ? dimensions[1] : undefined }));
50
- const renderPieChart = (metrics, dimensions) => (React.createElement(PieChart, { height: 300, measures: metrics, viewBy: metrics.length <= 1 ? dimensions[0] : undefined }));
51
- const renderTable = (metrics, dimensions) => (React.createElement(PivotTable, { measures: metrics, rows: dimensions }));
52
- const renderHeadline = (metrics, _dimensions) => (React.createElement(Headline, { height: 300, primaryMeasure: metrics[0], secondaryMeasures: [metrics[1], metrics[2]].filter(Boolean) }));
48
+ }, filters: filters }));
49
+ const renderLineChart = (metrics, dimensions, filters) => (React.createElement(LineChart, { height: 300, measures: metrics, trendBy: dimensions[0], segmentBy: metrics.length <= 1 ? dimensions[1] : undefined, filters: filters }));
50
+ const renderPieChart = (metrics, dimensions, filters) => (React.createElement(PieChart, { height: 300, measures: metrics, viewBy: metrics.length <= 1 ? dimensions[0] : undefined, filters: filters }));
51
+ const renderTable = (metrics, dimensions, filters) => (React.createElement(PivotTable, { measures: metrics, rows: dimensions, filters: filters }));
52
+ const renderHeadline = (metrics, _dimensions, filters) => (React.createElement(Headline, { height: 300, primaryMeasure: metrics[0], secondaryMeasures: [metrics[1], metrics[2]].filter(Boolean), filters: filters }));
53
53
  //# sourceMappingURL=VisualizationContents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VisualizationContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VisualizationContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,CAAC,MAAM,8BAA8B,GAAyC,CAAC,EACjF,OAAO,EACP,WAAW,GACd,EAAE,EAAE;IACD,MAAM,SAAS,GAAG,EAAE,CAChB,mCAAmC,EACnC,kDAAkD,CACrD,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAErE,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS;QACrB,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IAAG,OAAO,CAAC,IAAI,CAAqB;QAChF,aAAa,CAAC,CAAC,CAAC,CACb,6BAAK,SAAS,EAAC,+BAA+B;YAC1C,6BAAK,SAAS,EAAC,wCAAwC;gBACnD,oBAAC,0BAA0B,QACtB,CAAC,GAAG,EAAE;oBACH,QAAQ,aAAa,CAAC,iBAAiB,EAAE,CAAC;wBACtC,KAAK,KAAK;4BACN,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,KAAK,QAAQ;4BACT,OAAO,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBAC3D,KAAK,MAAM;4BACP,OAAO,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACzD,KAAK,KAAK;4BACN,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD,KAAK,OAAO;4BACR,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACrD,KAAK,UAAU;4BACX,OAAO,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACxD;4BACI,OAAO,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;oBAC5D,CAAC;gBACL,CAAC,CAAC,EAAE,CACqB,CAC3B;YACN,6BAAK,SAAS,EAAC,gDAAgD;gBAC3D,oBAAC,iBAAiB,IAAC,aAAa,EAAE,WAAW,IACxC,aAAa,CAAC,KAAK,CACJ,CAClB,CACJ,CACT,CAAC,CAAC,CAAC,IAAI,CACN,CACT,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAY,EAAS,EAAE;IACxC,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,KAAK,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC1F,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACtD,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,EAAE;QACJ,mFAAmF;QACnF,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/D,EACD,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC7F,oBAAC,WAAW,IACR,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACtD,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,MAAM,EAAE;QACJ,mFAAmF;QACnF,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;KAC/D,EACD,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC3F,oBAAC,SAAS,IACN,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC1F,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACvD,OAAO,EAAE,OAAO,GAClB,CACL,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAmB,EAAE,UAAwB,EAAE,OAAkB,EAAE,EAAE,CAAC,CACvF,oBAAC,UAAU,IAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,CACxE,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAmB,EAAE,WAAyB,EAAE,OAAkB,EAAE,EAAE,CAAC,CAC3F,oBAAC,QAAQ,IACL,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAC1B,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC3D,OAAO,EAAE,OAAO,GAClB,CACL,CAAC"}
@@ -1,6 +1,7 @@
1
- import { IGenAIVisualization } from "@gooddata/sdk-model";
1
+ import { IGenAIVisualization, IFilter } from "@gooddata/sdk-model";
2
2
  export declare const useExecution: (vis?: IGenAIVisualization) => {
3
3
  metrics: import("@gooddata/sdk-model").IMeasure<import("@gooddata/sdk-model").IMeasureDefinition>[];
4
4
  dimensions: import("@gooddata/sdk-model").IAttribute[];
5
+ filters: IFilter[];
5
6
  };
6
7
  //# sourceMappingURL=useExecution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExecution.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/useExecution.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKH,mBAAmB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,YAAY,SAAU,mBAAmB;;;CA0BrD,CAAC"}
1
+ {"version":3,"file":"useExecution.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/useExecution.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKH,mBAAmB,EAOnB,OAAO,EAMV,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,YAAY,SAAU,mBAAmB;;;;CA2BrD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import React from "react";
3
- import { idRef, newAttribute, newMeasure, } from "@gooddata/sdk-model";
3
+ import { idRef, newAttribute, newMeasure, newPositiveAttributeFilter, newNegativeAttributeFilter, newRelativeDateFilter, newAbsoluteDateFilter, } from "@gooddata/sdk-model";
4
4
  export const useExecution = (vis) => {
5
5
  return React.useMemo(() => {
6
6
  const dimensions = vis?.dimensionality?.map((d) => newAttribute(d.id)) ?? [];
@@ -22,7 +22,57 @@ export const useExecution = (vis) => {
22
22
  return {
23
23
  metrics,
24
24
  dimensions,
25
+ filters: vis?.filters?.map(convertFilter).filter(Boolean) ?? [],
25
26
  };
26
27
  }, [vis]);
27
28
  };
29
+ const convertFilter = (data) => {
30
+ if (isPositiveAttributeFilter(data)) {
31
+ return newPositiveAttributeFilter(data.using, data.include);
32
+ }
33
+ if (isNegativeAttributeFilter(data)) {
34
+ return newNegativeAttributeFilter(data.using, data.exclude);
35
+ }
36
+ if (isRelativeDateFilter(data)) {
37
+ return newRelativeDateFilter(data.using, granularityMap[data.granularity], data.from, data.to);
38
+ }
39
+ if (isAbsoluteDateFilter(data)) {
40
+ return newAbsoluteDateFilter(data.using, data.from ??
41
+ (() => {
42
+ const date = new Date();
43
+ date.setUTCHours(0, 0, 0, 0);
44
+ return date.toISOString();
45
+ })(), data.to ?? new Date().toISOString());
46
+ }
47
+ return false;
48
+ };
49
+ const isPositiveAttributeFilter = (obj) => {
50
+ return typeof obj === "object" && obj !== null && "using" in obj && "include" in obj;
51
+ };
52
+ const isNegativeAttributeFilter = (obj) => {
53
+ return typeof obj === "object" && obj !== null && "using" in obj && "exclude" in obj;
54
+ };
55
+ const isRelativeDateFilter = (obj) => {
56
+ return typeof obj === "object" && obj !== null && "using" in obj && "granularity" in obj;
57
+ };
58
+ const isAbsoluteDateFilter = (obj) => {
59
+ return typeof obj === "object" && obj !== null && "using" in obj && ("from" in obj || "to" in obj);
60
+ };
61
+ const granularityMap = {
62
+ MINUTE: "GDC.time.minute",
63
+ HOUR: "GDC.time.hour",
64
+ DAY: "GDC.time.date",
65
+ WEEK: "GDC.time.week",
66
+ MONTH: "GDC.time.month",
67
+ QUARTER: "GDC.time.quarter",
68
+ YEAR: "GDC.time.year",
69
+ MINUTE_OF_HOUR: "GDC.time.minute_in_hour",
70
+ HOUR_OF_DAY: "GDC.time.hour_in_day",
71
+ DAY_OF_WEEK: "GDC.time.day_in_week",
72
+ DAY_OF_MONTH: "GDC.time.day_in_month",
73
+ DAY_OF_YEAR: "GDC.time.day_in_year",
74
+ WEEK_OF_YEAR: "GDC.time.week_in_year",
75
+ MONTH_OF_YEAR: "GDC.time.month_in_year",
76
+ QUARTER_OF_YEAR: "GDC.time.quarter_in_year",
77
+ };
28
78
  //# sourceMappingURL=useExecution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useExecution.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/useExecution.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,KAAK,EAEL,YAAY,EACZ,UAAU,GAEb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAyB,EAAE,EAAE;IACtD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtB,MAAM,UAAU,GAAG,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,MAAM,OAAO,GACT,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBACd,KAAK,MAAM;oBACP,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC1C,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;4BACjB,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAwB,CAAC,CAAC;wBAC7E,CAAC;wBAED,OAAO,CAAC,CAAC;oBACb,CAAC,CAAC,CAAC;gBACP,KAAK,QAAQ;oBACT,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/C,KAAK,WAAW;oBACZ,OAAO,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,CAAC;QACL,CAAC,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO;YACH,OAAO;YACP,UAAU;SACb,CAAC;IACN,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"useExecution.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/useExecution.tsx"],"names":[],"mappings":"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"}
@@ -24,6 +24,16 @@
24
24
  "comment": "Use ellipsis at the end …",
25
25
  "limit": 0
26
26
  },
27
+ "gd.gen-ai.input-label": {
28
+ "value": "Ask your question",
29
+ "comment": "",
30
+ "limit": 0
31
+ },
32
+ "gd.gen-ai.assistant-icon": {
33
+ "value": "chatbot",
34
+ "comment": "",
35
+ "limit": 0
36
+ },
27
37
  "gd.gen-ai.disclaimer": {
28
38
  "value": "AI assistants can make mistakes. Check before relying on these answers.",
29
39
  "comment": "",
@@ -1,5 +1,5 @@
1
1
  export type { RootState } from "./types.js";
2
2
  export { getStore } from "./store.js";
3
- export { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessagePollingAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, } from "./messages/messagesSlice.js";
3
+ export { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, } from "./messages/messagesSlice.js";
4
4
  export { messagesSelector, isVerboseSelector, lastMessageSelector, hasMessagesSelector, asyncProcessSelector, globalErrorSelector, } from "./messages/messagesSelectors.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  export { getStore } from "./store.js";
3
- export { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessagePollingAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, } from "./messages/messagesSlice.js";
3
+ export { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, } from "./messages/messagesSlice.js";
4
4
  export { messagesSelector, isVerboseSelector, lastMessageSelector, hasMessagesSelector, asyncProcessSelector, globalErrorSelector, } from "./messages/messagesSelectors.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC"}
@@ -40,12 +40,13 @@ export declare const loadThreadAction: import("@reduxjs/toolkit").ActionCreatorW
40
40
  }, "messages/evaluateMessageAction">, evaluateMessageErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
41
41
  error: string;
42
42
  assistantMessageId: string;
43
- }, "messages/evaluateMessageErrorAction">, evaluateMessagePollingAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
43
+ }, "messages/evaluateMessageErrorAction">, evaluateMessageStreamingAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
44
44
  contents: Contents[];
45
- complete: boolean;
46
- localId: string;
47
- interactionId: number;
48
- }, "messages/evaluateMessagePollingAction">, setMessagesAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
45
+ assistantMessageId: string;
46
+ interactionId?: number | undefined;
47
+ }, "messages/evaluateMessageStreamingAction">, evaluateMessageCompleteAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
48
+ assistantMessageId: string;
49
+ }, "messages/evaluateMessageCompleteAction">, setMessagesAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
49
50
  messages: Message[];
50
51
  }, "messages/setMessagesAction">, setVerboseAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
51
52
  verbose: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAyC,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE5G,KAAK,kBAAkB,GAAG;IACtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAClD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAsI5C,eAAO,MAAM,oBAAoB,wDAAwB,CAAC;AAC1D,eAAO,MACH,gBAAgB,uFAChB,qBAAqB;WAhH6D,MAAM;sCAiHxF,uBAAuB;cA3GsC,OAAO,EAAE;wCA4GtE,iBAAiB,wFACjB,sBAAsB;WArG6D,MAAM;uCAsGzF,wBAAwB,+FACxB,gBAAgB,6FAChB,qBAAqB;aAlFsC,gBAAgB;sCAmF3E,0BAA0B;WArEP,MAAM;wBACO,MAAM;2CAqEtC,4BAA4B;cAjDN,QAAQ,EAAE;cACV,OAAO;aACR,MAAM;mBACA,MAAM;6CA+CjC,iBAAiB;cA3BmE,OAAO,EAAE;kCA4B7F,gBAAgB;aAzBiE,OAAO;iCA0BxF,oBAAoB;WAvB6D,MAAM;qCAwBvF,iBAAiB,sFACI,CAAC"}
1
+ {"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAyC,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE5G,KAAK,kBAAkB,GAAG;IACtB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAClD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AA+I5C,eAAO,MAAM,oBAAoB,wDAAwB,CAAC;AAC1D,eAAO,MACH,gBAAgB,uFAChB,qBAAqB;WA9G6D,MAAM;sCA+GxF,uBAAuB;cAzGsC,OAAO,EAAE;wCA0GtE,iBAAiB,wFACjB,sBAAsB;WAnG6D,MAAM;uCAoGzF,wBAAwB,+FACxB,gBAAgB,6FAChB,qBAAqB;aAhFsC,gBAAgB;sCAiF3E,0BAA0B;WAnEP,MAAM;wBACO,MAAM;2CAmEtC,8BAA8B;cAlDR,QAAQ,EAAE;wBACA,MAAM;;+CAkDtC,6BAA6B;wBAnCG,MAAM;8CAoCtC,iBAAiB;cA5BmE,OAAO,EAAE;kCA6B7F,gBAAgB;aA1BiE,OAAO;iCA2BxF,oBAAoB;WAxB6D,MAAM;qCAyBvF,iBAAiB,sFACI,CAAC"}
@@ -17,6 +17,13 @@ const setNormalizedMessages = (state, messages) => {
17
17
  }, {});
18
18
  state.messageOrder = messages.map((message) => message.localId);
19
19
  };
20
+ const getAssistantMessageStrict = (state, assistantMessageId) => {
21
+ const message = state.messages[assistantMessageId];
22
+ if (!isAssistantMessage(message)) {
23
+ throw new Error(`Unexpected error during message evaluation.`);
24
+ }
25
+ return message;
26
+ };
20
27
  const messagesSlice = createSlice({
21
28
  name: messagesSliceName,
22
29
  initialState,
@@ -61,33 +68,27 @@ const messagesSlice = createSlice({
61
68
  state.messageOrder.push(message.localId);
62
69
  },
63
70
  /**
64
- * The evaluation failed, need to update the assistant message and user message.
71
+ * The evaluation failed, need to update the assistant message.
65
72
  */
66
73
  evaluateMessageErrorAction: (state, { payload, }) => {
67
- delete state.asyncProcess;
68
- const assistantMessage = state.messages[payload.assistantMessageId];
69
- if (!assistantMessage || !isAssistantMessage(assistantMessage)) {
70
- // This should not happen
71
- state.globalError = `Unexpected error during message evaluation. ${payload.error}`;
72
- return;
73
- }
74
+ const assistantMessage = getAssistantMessageStrict(state, payload.assistantMessageId);
74
75
  assistantMessage.complete = true;
75
76
  assistantMessage.content.push(makeErrorContents(payload.error));
77
+ delete state.asyncProcess;
76
78
  },
77
- evaluateMessagePollingAction: (state, { payload, }) => {
78
- const assistantMessage = state.messages[payload.localId];
79
- if (!assistantMessage || !isAssistantMessage(assistantMessage)) {
80
- // This should not happen
81
- state.globalError = `Unexpected error during message evaluation.`;
82
- return;
83
- }
84
- assistantMessage.id = payload.interactionId;
85
- assistantMessage.content = payload.contents;
86
- assistantMessage.complete = payload.complete;
79
+ /**
80
+ * Received new chunk from server over SSE.
81
+ */
82
+ evaluateMessageStreamingAction: (state, { payload, }) => {
83
+ const assistantMessage = getAssistantMessageStrict(state, payload.assistantMessageId);
84
+ assistantMessage.id = payload.interactionId ?? assistantMessage.id;
85
+ assistantMessage.content.push(...payload.contents);
87
86
  assistantMessage.cancelled = false;
88
- if (payload.complete) {
89
- delete state.asyncProcess;
90
- }
87
+ },
88
+ evaluateMessageCompleteAction: (state, { payload, }) => {
89
+ const assistantMessage = getAssistantMessageStrict(state, payload.assistantMessageId);
90
+ assistantMessage.complete = true;
91
+ delete state.asyncProcess;
91
92
  },
92
93
  setMessagesAction: (state, { payload: { messages } }) => {
93
94
  setNormalizedMessages(state, messages);
@@ -104,5 +105,5 @@ const messagesSlice = createSlice({
104
105
  },
105
106
  });
106
107
  export const messagesSliceReducer = messagesSlice.reducer;
107
- export const { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessagePollingAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, } = messagesSlice.actions;
108
+ export const { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, } = messagesSlice.actions;
108
109
  //# sourceMappingURL=messagesSlice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messagesSlice.js","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messagesSlice.js","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAiB,QAAQ,6EAMxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,wBAAiB,QAAQ,6EAKxB"}
@@ -1,11 +1,10 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import { takeEvery, takeLatest } from "redux-saga/effects";
3
- import { setVerboseAction, loadThreadAction, clearThreadAction, newMessageAction, evaluateMessageAction, } from "../messages/messagesSlice.js";
3
+ import { setVerboseAction, loadThreadAction, clearThreadAction, newMessageAction, } from "../messages/messagesSlice.js";
4
4
  import { onVerboseStore } from "./onVerboseStore.js";
5
5
  import { onThreadLoad } from "./onThreadLoad.js";
6
6
  import { onThreadClear } from "./onThreadClear.js";
7
7
  import { onUserMessage } from "./onUserMessage.js";
8
- import { threadPolling } from "./threadPolling.js";
9
8
  /**
10
9
  * One saga to rule them all.
11
10
  * @internal
@@ -15,6 +14,5 @@ export function* rootSaga() {
15
14
  yield takeLatest(loadThreadAction.type, onThreadLoad);
16
15
  yield takeLatest(clearThreadAction.type, onThreadClear);
17
16
  yield takeLatest(newMessageAction.type, onUserMessage);
18
- yield takeLatest(evaluateMessageAction.type, threadPolling);
19
17
  }
20
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,QAAQ;IACrB,MAAM,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,MAAM,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtD,MAAM,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,UAAU,CAAC,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,QAAQ;IACrB,MAAM,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACvD,MAAM,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtD,MAAM,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,20 +1,25 @@
1
- import { IAnalyticalBackend, IGenAIChatEvaluation } from "@gooddata/sdk-backend-spi";
1
+ import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
2
2
  import { PayloadAction } from "@reduxjs/toolkit";
3
- import { Message } from "../../model.js";
3
+ import { AssistantMessage, Message } from "../../model.js";
4
4
  /**
5
5
  * Load thread history and put it to the store.
6
6
  * @internal
7
7
  */
8
- export declare function onUserMessage({ payload }: PayloadAction<Message>): Generator<import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
8
+ export declare function onUserMessage({ payload }: PayloadAction<Message>): Generator<import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").CallEffect<void> | import("redux-saga/effects").PutEffect<{
9
9
  payload: {
10
- message: import("../../model.js").AssistantMessage;
10
+ message: AssistantMessage;
11
11
  };
12
12
  type: "messages/evaluateMessageAction";
13
- }> | import("redux-saga/effects").CallEffect<IGenAIChatEvaluation> | import("redux-saga/effects").PutEffect<{
13
+ }> | import("redux-saga/effects").PutEffect<{
14
14
  payload: {
15
15
  error: string;
16
16
  assistantMessageId: string;
17
17
  };
18
18
  type: "messages/evaluateMessageErrorAction";
19
+ }> | import("redux-saga/effects").PutEffect<{
20
+ payload: {
21
+ assistantMessageId: string;
22
+ };
23
+ type: "messages/evaluateMessageCompleteAction";
19
24
  }>, void, IAnalyticalBackend & string>;
20
25
  //# sourceMappingURL=onUserMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onUserMessage.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAoB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIvG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAuD,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9F;;;GAGG;AACH,wBAAiB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC;;;;;;;;;;;uCAkCjE"}
1
+ {"version":3,"file":"onUserMessage.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAA0C,MAAM,2BAA2B,CAAC;AASvG,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACH,gBAAgB,EAIhB,OAAO,EACV,MAAM,gBAAgB,CAAC;AAGxB;;;GAGG;AACH,wBAAiB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;uCA+CjE"}
@@ -1,14 +1,15 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import { call, cancelled, getContext, put } from "redux-saga/effects";
3
- import { evaluateMessageAction, evaluateMessageErrorAction } from "../messages/messagesSlice.js";
3
+ import { evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageCompleteAction, } from "../messages/messagesSlice.js";
4
4
  import { extractError } from "./utils.js";
5
- import { isTextContents, isUserMessage, makeAssistantMessage } from "../../model.js";
5
+ import { isTextContents, isUserMessage, makeAssistantMessage, } from "../../model.js";
6
+ import { processContents } from "./converters/interactionsToMessages.js";
6
7
  /**
7
8
  * Load thread history and put it to the store.
8
9
  * @internal
9
10
  */
10
11
  export function* onUserMessage({ payload }) {
11
- const newAssistantMessage = makeAssistantMessage([]);
12
+ let newAssistantMessage = undefined;
12
13
  try {
13
14
  // Make sure the message is a user message and it got text contents
14
15
  if (!isUserMessage(payload)) {
@@ -18,34 +19,65 @@ export function* onUserMessage({ payload }) {
18
19
  if (!textContents) {
19
20
  return;
20
21
  }
22
+ // Create a new empty assistant message
23
+ newAssistantMessage = makeAssistantMessage([]);
24
+ // Set evaluation state in store
25
+ yield put(evaluateMessageAction({ message: newAssistantMessage }));
21
26
  // Retrieve backend from context
22
27
  const backend = yield getContext("backend");
23
28
  const workspace = yield getContext("workspace");
24
- // Set evaluation state in store and start polling
25
- yield put(evaluateMessageAction({ message: newAssistantMessage }));
26
29
  // Make the request to start the evaluation
27
30
  const chatThreadQuery = backend.workspace(workspace).genAI().getChatThread().query(textContents);
28
- yield call(evaluateUserMessage, chatThreadQuery);
31
+ yield call(evaluateUserMessage, newAssistantMessage, chatThreadQuery);
29
32
  }
30
33
  catch (e) {
31
- yield put(evaluateMessageErrorAction({
32
- assistantMessageId: newAssistantMessage.localId,
33
- error: extractError(e),
34
- }));
34
+ if (newAssistantMessage) {
35
+ yield put(evaluateMessageErrorAction({
36
+ assistantMessageId: newAssistantMessage.localId,
37
+ error: extractError(e),
38
+ }));
39
+ }
40
+ }
41
+ finally {
42
+ if (newAssistantMessage) {
43
+ yield put(evaluateMessageCompleteAction({
44
+ assistantMessageId: newAssistantMessage.localId,
45
+ }));
46
+ }
35
47
  }
36
48
  }
37
- function* evaluateUserMessage(preparedChatThread) {
38
- const controller = new AbortController();
49
+ function* evaluateUserMessage(message, preparedChatThread) {
50
+ let reader = undefined;
39
51
  try {
40
- const results = yield call(preparedChatThread.query.bind(preparedChatThread), {
41
- signal: controller.signal,
42
- });
43
- return results;
52
+ const results = yield call([
53
+ preparedChatThread,
54
+ preparedChatThread.stream,
55
+ ]);
56
+ reader = results.getReader();
57
+ while (true) {
58
+ const { value, done } = yield call([
59
+ reader,
60
+ reader.read,
61
+ ]);
62
+ if (done) {
63
+ break;
64
+ }
65
+ if (value) {
66
+ yield put(evaluateMessageStreamingAction({
67
+ assistantMessageId: message.localId,
68
+ interactionId: value.chatHistoryInteractionId,
69
+ contents: processContents(value),
70
+ }));
71
+ }
72
+ }
44
73
  }
45
74
  finally {
46
- const wasCancelled = yield cancelled();
47
- if (wasCancelled) {
48
- controller.abort();
75
+ if (reader) {
76
+ const wasCancelled = yield cancelled();
77
+ if (wasCancelled) {
78
+ yield call([reader, reader.cancel]);
79
+ }
80
+ yield call([reader, reader.releaseLock]);
49
81
  }
50
82
  }
51
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"onUserMessage.js","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessage.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAW,MAAM,gBAAgB,CAAC;AAE9F;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAA0B;IAC9D,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,CAAC;QACD,mEAAmE;QACnE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;QAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QAED,gCAAgC;QAChC,MAAM,OAAO,GAAuB,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,SAAS,GAAW,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAExD,kDAAkD;QAClD,MAAM,GAAG,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAEnE,2CAA2C;QAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEjG,MAAM,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,CACL,0BAA0B,CAAC;YACvB,kBAAkB,EAAE,mBAAmB,CAAC,OAAO;YAC/C,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;SACzB,CAAC,CACL,CAAC;IACN,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,CAAC,mBAAmB,CAAC,kBAAoC;IAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,CAAC;QACD,MAAM,OAAO,GAAyB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YAChG,MAAM,EAAE,UAAU,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;YAAS,CAAC;QACP,MAAM,YAAY,GAAY,MAAM,SAAS,EAAE,CAAC;QAEhD,IAAI,YAAY,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"onUserMessage.js","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessage.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": "10.15.0-alpha.14",
3
+ "version": "10.15.0-alpha.16",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,14 +45,14 @@
45
45
  "uuid": "^8.3.2",
46
46
  "react-loading-skeleton": "^3.4.0",
47
47
  "react-markdown": "^9.0.1",
48
- "@gooddata/sdk-backend-spi": "10.15.0-alpha.14",
49
- "@gooddata/sdk-model": "10.15.0-alpha.14",
50
- "@gooddata/api-client-tiger": "10.15.0-alpha.14",
51
- "@gooddata/sdk-ui": "10.15.0-alpha.14",
52
- "@gooddata/sdk-ui-charts": "10.15.0-alpha.14",
53
- "@gooddata/util": "10.15.0-alpha.14",
54
- "@gooddata/sdk-ui-kit": "10.15.0-alpha.14",
55
- "@gooddata/sdk-ui-pivot": "10.15.0-alpha.14"
48
+ "@gooddata/api-client-tiger": "10.15.0-alpha.16",
49
+ "@gooddata/sdk-backend-spi": "10.15.0-alpha.16",
50
+ "@gooddata/sdk-model": "10.15.0-alpha.16",
51
+ "@gooddata/sdk-ui-charts": "10.15.0-alpha.16",
52
+ "@gooddata/sdk-ui": "10.15.0-alpha.16",
53
+ "@gooddata/sdk-ui-pivot": "10.15.0-alpha.16",
54
+ "@gooddata/util": "10.15.0-alpha.16",
55
+ "@gooddata/sdk-ui-kit": "10.15.0-alpha.16"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -101,9 +101,9 @@
101
101
  "vitest-dom": "0.1.1",
102
102
  "@types/react-native-listener": "~1.1.3",
103
103
  "@types/uuid": "^8.3.4",
104
- "@gooddata/i18n-toolkit": "10.15.0-alpha.14",
105
- "@gooddata/reference-workspace": "10.15.0-alpha.14",
106
- "@gooddata/sdk-backend-mockingbird": "10.15.0-alpha.14"
104
+ "@gooddata/i18n-toolkit": "10.15.0-alpha.16",
105
+ "@gooddata/reference-workspace": "10.15.0-alpha.16",
106
+ "@gooddata/sdk-backend-mockingbird": "10.15.0-alpha.16"
107
107
  },
108
108
  "scripts": {
109
109
  "clean": "rm -rf ci dist esm coverage *.log styles/css tsconfig.tsbuildinfo",
@@ -1,16 +0,0 @@
1
- import { PayloadAction } from "@reduxjs/toolkit";
2
- import { AssistantMessage } from "../../model.js";
3
- /**
4
- * Load thread history and put it to the store.
5
- * @internal
6
- */
7
- export declare function threadPolling({ payload: { message } }: PayloadAction<{
8
- message: AssistantMessage;
9
- }>): Generator<import("redux-saga/effects").SelectEffect | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
10
- payload: {
11
- error: string;
12
- assistantMessageId: string;
13
- };
14
- type: "messages/evaluateMessageErrorAction";
15
- }> | import("redux-saga/effects").RaceEffect<import("redux-saga/effects").TakeEffect | import("redux-saga/effects").CallEffect<boolean>>, void, never>;
16
- //# sourceMappingURL=threadPolling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"threadPolling.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/threadPolling.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;GAGG;AACH,wBAAiB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;;;;;;uJA4BpG"}
@@ -1,86 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"threadPolling.js","sourceRoot":"","sources":["../../../src/store/sideEffects/threadPolling.ts"],"names":[],"mappings":"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"}