@gooddata/sdk-ui-gen-ai 10.15.0-alpha.15 → 10.15.0-alpha.17
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.
- package/NOTICE +65 -3
- package/esm/components/Input.d.ts.map +1 -1
- package/esm/components/Input.js +14 -3
- package/esm/components/Input.js.map +1 -1
- package/esm/components/messages/AgentIcon.d.ts +1 -1
- package/esm/components/messages/AgentIcon.d.ts.map +1 -1
- package/esm/components/messages/AgentIcon.js +4 -4
- package/esm/components/messages/AgentIcon.js.map +1 -1
- package/esm/components/messages/AssistantMessage.d.ts +4 -1
- package/esm/components/messages/AssistantMessage.d.ts.map +1 -1
- package/esm/components/messages/AssistantMessage.js +5 -2
- package/esm/components/messages/AssistantMessage.js.map +1 -1
- package/esm/components/messages/contents/VisualizationContents.js +15 -15
- package/esm/components/messages/contents/VisualizationContents.js.map +1 -1
- package/esm/components/messages/contents/useExecution.d.ts +2 -1
- package/esm/components/messages/contents/useExecution.d.ts.map +1 -1
- package/esm/components/messages/contents/useExecution.js +51 -1
- package/esm/components/messages/contents/useExecution.js.map +1 -1
- package/esm/localization/bundles/en-US.json +10 -0
- package/esm/store/index.d.ts +1 -1
- package/esm/store/index.d.ts.map +1 -1
- package/esm/store/index.js +1 -1
- package/esm/store/index.js.map +1 -1
- package/esm/store/messages/messagesSlice.d.ts +6 -5
- package/esm/store/messages/messagesSlice.d.ts.map +1 -1
- package/esm/store/messages/messagesSlice.js +23 -22
- package/esm/store/messages/messagesSlice.js.map +1 -1
- package/esm/store/sideEffects/index.d.ts.map +1 -1
- package/esm/store/sideEffects/index.js +1 -3
- package/esm/store/sideEffects/index.js.map +1 -1
- package/esm/store/sideEffects/onUserMessage.d.ts +10 -5
- package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -1
- package/esm/store/sideEffects/onUserMessage.js +51 -19
- package/esm/store/sideEffects/onUserMessage.js.map +1 -1
- package/package.json +12 -12
- package/esm/store/sideEffects/threadPolling.d.ts +0 -16
- package/esm/store/sideEffects/threadPolling.d.ts.map +0 -1
- package/esm/store/sideEffects/threadPolling.js +0 -86
- 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
|
+
Date generated: 2024-11-11
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
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-
|
|
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;
|
|
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"}
|
package/esm/components/Input.js
CHANGED
|
@@ -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(
|
|
45
|
-
React.createElement("div", { role: "button", "aria-label": intl.formatMessage(
|
|
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":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAa,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
|
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:
|
|
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,
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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":"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,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"VisualizationContents.js","sourceRoot":"","sources":["../../../../src/components/messages/contents/VisualizationContents.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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,
|
|
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": "",
|
package/esm/store/index.d.ts
CHANGED
|
@@ -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,
|
|
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
|
package/esm/store/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/esm/store/index.js
CHANGED
|
@@ -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,
|
|
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
|
package/esm/store/index.js.map
CHANGED
|
@@ -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,
|
|
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">,
|
|
43
|
+
}, "messages/evaluateMessageErrorAction">, evaluateMessageStreamingAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
44
44
|
contents: Contents[];
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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;
|
|
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
|
|
71
|
+
* The evaluation failed, need to update the assistant message.
|
|
65
72
|
*/
|
|
66
73
|
evaluateMessageErrorAction: (state, { payload, }) => {
|
|
67
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
89
|
-
|
|
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,
|
|
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":"
|
|
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,
|
|
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,
|
|
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
|
|
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:
|
|
10
|
+
message: AssistantMessage;
|
|
11
11
|
};
|
|
12
12
|
type: "messages/evaluateMessageAction";
|
|
13
|
-
}> | import("redux-saga/effects").
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
49
|
+
function* evaluateUserMessage(message, preparedChatThread) {
|
|
50
|
+
let reader = undefined;
|
|
39
51
|
try {
|
|
40
|
-
const results = yield call(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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,
|
|
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.
|
|
3
|
+
"version": "10.15.0-alpha.17",
|
|
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/api-client-tiger": "10.15.0-alpha.
|
|
49
|
-
"@gooddata/sdk-
|
|
50
|
-
"@gooddata/sdk-ui": "10.15.0-alpha.
|
|
51
|
-
"@gooddata/sdk-
|
|
52
|
-
"@gooddata/sdk-ui-pivot": "10.15.0-alpha.
|
|
53
|
-
"@gooddata/sdk-ui
|
|
54
|
-
"@gooddata/
|
|
55
|
-
"@gooddata/
|
|
48
|
+
"@gooddata/api-client-tiger": "10.15.0-alpha.17",
|
|
49
|
+
"@gooddata/sdk-model": "10.15.0-alpha.17",
|
|
50
|
+
"@gooddata/sdk-ui-charts": "10.15.0-alpha.17",
|
|
51
|
+
"@gooddata/sdk-backend-spi": "10.15.0-alpha.17",
|
|
52
|
+
"@gooddata/sdk-ui-pivot": "10.15.0-alpha.17",
|
|
53
|
+
"@gooddata/sdk-ui": "10.15.0-alpha.17",
|
|
54
|
+
"@gooddata/util": "10.15.0-alpha.17",
|
|
55
|
+
"@gooddata/sdk-ui-kit": "10.15.0-alpha.17"
|
|
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/
|
|
105
|
-
"@gooddata/
|
|
106
|
-
"@gooddata/
|
|
104
|
+
"@gooddata/i18n-toolkit": "10.15.0-alpha.17",
|
|
105
|
+
"@gooddata/reference-workspace": "10.15.0-alpha.17",
|
|
106
|
+
"@gooddata/sdk-backend-mockingbird": "10.15.0-alpha.17"
|
|
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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"}
|