@gooddata/sdk-ui-gen-ai 10.16.0-alpha.4 → 10.16.0-alpha.7
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 +6 -6
- package/esm/components/GenAIChat.d.ts +3 -3
- package/esm/components/GenAIChat.d.ts.map +1 -1
- package/esm/components/GenAIChat.js +2 -2
- package/esm/components/GenAIChat.js.map +1 -1
- package/esm/components/GenAIChatDialog.d.ts +2 -2
- package/esm/components/GenAIChatDialog.d.ts.map +1 -1
- package/esm/components/GenAIChatDialog.js +10 -2
- package/esm/components/GenAIChatDialog.js.map +1 -1
- package/esm/components/GenAIChatOverlay.d.ts +4 -2
- package/esm/components/GenAIChatOverlay.d.ts.map +1 -1
- package/esm/components/GenAIChatOverlay.js +8 -7
- package/esm/components/GenAIChatOverlay.js.map +1 -1
- package/esm/components/messages/AssistantMessage.d.ts.map +1 -1
- package/esm/components/messages/AssistantMessage.js +4 -1
- package/esm/components/messages/AssistantMessage.js.map +1 -1
- package/esm/hooks/useGenAIStore.d.ts +15 -4
- package/esm/hooks/useGenAIStore.d.ts.map +1 -1
- package/esm/hooks/useGenAIStore.js +15 -5
- package/esm/hooks/useGenAIStore.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/sdk-ui-gen-ai.d.ts +120 -2
- package/esm/store/chatWindow/chatWindowSelectors.d.ts +4 -0
- package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSelectors.js +7 -0
- package/esm/store/chatWindow/chatWindowSelectors.js.map +1 -0
- package/esm/store/chatWindow/chatWindowSlice.d.ts +19 -0
- package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSlice.js +22 -0
- package/esm/store/chatWindow/chatWindowSlice.js.map +1 -0
- package/esm/store/events.d.ts +109 -0
- package/esm/store/events.d.ts.map +1 -0
- package/esm/store/events.js +57 -0
- package/esm/store/events.js.map +1 -0
- package/esm/store/index.d.ts +2 -0
- package/esm/store/index.d.ts.map +1 -1
- package/esm/store/index.js +2 -0
- package/esm/store/index.js.map +1 -1
- package/esm/store/messages/messagesSelectors.d.ts +1 -0
- package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
- package/esm/store/messages/messagesSelectors.js +1 -0
- package/esm/store/messages/messagesSelectors.js.map +1 -1
- package/esm/store/messages/messagesSlice.d.ts +7 -0
- package/esm/store/messages/messagesSlice.d.ts.map +1 -1
- package/esm/store/messages/messagesSlice.js +15 -2
- package/esm/store/messages/messagesSlice.js.map +1 -1
- package/esm/store/sideEffects/index.d.ts +1 -1
- package/esm/store/sideEffects/index.d.ts.map +1 -1
- package/esm/store/sideEffects/index.js +3 -1
- package/esm/store/sideEffects/index.js.map +1 -1
- package/esm/store/sideEffects/onEvent.d.ts +2 -0
- package/esm/store/sideEffects/onEvent.d.ts.map +1 -0
- package/esm/store/sideEffects/onEvent.js +92 -0
- package/esm/store/sideEffects/onEvent.js.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
- package/esm/store/sideEffects/onThreadLoad.js +4 -1
- package/esm/store/sideEffects/onThreadLoad.js.map +1 -1
- package/esm/store/store.d.ts +15 -4
- package/esm/store/store.d.ts.map +1 -1
- package/esm/store/store.js +5 -6
- package/esm/store/store.js.map +1 -1
- package/esm/store/types.d.ts +2 -0
- package/esm/store/types.d.ts.map +1 -1
- package/esm/store/types.js +1 -0
- package/esm/store/types.js.map +1 -1
- package/package.json +12 -12
- package/styles/css/main.css +7 -3
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +7 -3
- package/styles/css/messages.css.map +1 -1
- package/styles/scss/messages.scss +8 -3
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A common event definition for the Chat component.
|
|
3
|
+
* @alpha
|
|
4
|
+
*/
|
|
5
|
+
export type BaseEvent = {
|
|
6
|
+
threadId?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* A chat window opened event.
|
|
10
|
+
* @alpha
|
|
11
|
+
*/
|
|
12
|
+
export type ChatOpenedEvent = BaseEvent & {
|
|
13
|
+
type: "chatOpened";
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Type guard for the ChatOpenedEvent.
|
|
17
|
+
* @alpha
|
|
18
|
+
*/
|
|
19
|
+
export declare const isChatOpenedEvent: (event: ChatEvent) => event is ChatOpenedEvent;
|
|
20
|
+
/**
|
|
21
|
+
* A chat window closed event.
|
|
22
|
+
* @alpha
|
|
23
|
+
*/
|
|
24
|
+
export type ChatClosedEvent = BaseEvent & {
|
|
25
|
+
type: "chatClosed";
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Type guard for the ChatClosedEvent.
|
|
29
|
+
* @alpha
|
|
30
|
+
*/
|
|
31
|
+
export declare const isChatClosedEvent: (event: ChatEvent) => event is ChatClosedEvent;
|
|
32
|
+
/**
|
|
33
|
+
* A chat conversation clearing event.
|
|
34
|
+
* @alpha
|
|
35
|
+
*/
|
|
36
|
+
export type ChatResetEvent = BaseEvent & {
|
|
37
|
+
type: "chatReset";
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Type guard for the ChatResetEvent.
|
|
41
|
+
* @alpha
|
|
42
|
+
*/
|
|
43
|
+
export declare const isChatResetEvent: (event: ChatEvent) => event is ChatResetEvent;
|
|
44
|
+
/**
|
|
45
|
+
* A chat user message event.
|
|
46
|
+
* @alpha
|
|
47
|
+
*/
|
|
48
|
+
export type ChatUserMessageEvent = BaseEvent & {
|
|
49
|
+
type: "chatUserMessage";
|
|
50
|
+
question: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Type guard for the ChatUserMessageEvent.
|
|
54
|
+
* @alpha
|
|
55
|
+
*/
|
|
56
|
+
export declare const isChatUserMessageEvent: (event: ChatEvent) => event is ChatUserMessageEvent;
|
|
57
|
+
/**
|
|
58
|
+
* A chat assistant message event.
|
|
59
|
+
* @alpha
|
|
60
|
+
*/
|
|
61
|
+
export type ChatAssistantMessageEvent = BaseEvent & {
|
|
62
|
+
type: "chatAssistantMessage";
|
|
63
|
+
interactionId?: number;
|
|
64
|
+
useCase: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Type guard for the ChatAssistantMessageEvent.
|
|
68
|
+
* @alpha
|
|
69
|
+
*/
|
|
70
|
+
export declare const isChatAssistantMessageEvent: (event: ChatEvent) => event is ChatAssistantMessageEvent;
|
|
71
|
+
/**
|
|
72
|
+
* A chat feedback event.
|
|
73
|
+
* @alpha
|
|
74
|
+
*/
|
|
75
|
+
export type ChatFeedbackEvent = BaseEvent & {
|
|
76
|
+
type: "chatFeedback";
|
|
77
|
+
interactionId?: number;
|
|
78
|
+
feedback: "POSITIVE" | "NEGATIVE" | "NONE";
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Type guard for the ChatFeedbackEvent.
|
|
82
|
+
* @alpha
|
|
83
|
+
*/
|
|
84
|
+
export declare const isChatFeedbackEvent: (event: ChatEvent) => event is ChatFeedbackEvent;
|
|
85
|
+
/**
|
|
86
|
+
* A union type for all chat events.
|
|
87
|
+
* @alpha
|
|
88
|
+
*/
|
|
89
|
+
export type ChatEvent = ChatOpenedEvent | ChatClosedEvent | ChatResetEvent | ChatUserMessageEvent | ChatAssistantMessageEvent | ChatFeedbackEvent;
|
|
90
|
+
/**
|
|
91
|
+
* An event handler for the Chat component.
|
|
92
|
+
* @alpha
|
|
93
|
+
*/
|
|
94
|
+
export interface ChatEventHandler<TEvent extends ChatEvent = any> {
|
|
95
|
+
/**
|
|
96
|
+
* A guard for a specific event type.
|
|
97
|
+
*/
|
|
98
|
+
eval: (event: ChatEvent) => event is TEvent;
|
|
99
|
+
/**
|
|
100
|
+
* Event handler.
|
|
101
|
+
*/
|
|
102
|
+
handler: (event: TEvent) => void;
|
|
103
|
+
}
|
|
104
|
+
export declare class EventDispatcher {
|
|
105
|
+
private handlers;
|
|
106
|
+
setHandlers(handlers: ChatEventHandler[]): void;
|
|
107
|
+
dispatch(event: ChatEvent): void;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACtC,IAAI,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAW,SAAS,6BAEjD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACtC,IAAI,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UAAW,SAAS,6BAEjD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IACrC,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,UAAW,SAAS,4BAEhD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG;IAC3C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,UAAW,SAAS,kCAEtD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG;IAChD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,UAAW,SAAS,uCAE3D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAAW,SAAS,+BAEnD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,SAAS,GACf,eAAe,GACf,eAAe,GACf,cAAc,GACd,oBAAoB,GACpB,yBAAyB,GACzB,iBAAiB,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;IAC5D;;OAEG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,KAAK,IAAI,MAAM,CAAC;IAC5C;;OAEG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAA0B;IAEnC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAI/C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAO1C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
/**
|
|
3
|
+
* Type guard for the ChatOpenedEvent.
|
|
4
|
+
* @alpha
|
|
5
|
+
*/
|
|
6
|
+
export const isChatOpenedEvent = (event) => {
|
|
7
|
+
return event.type === "chatOpened";
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Type guard for the ChatClosedEvent.
|
|
11
|
+
* @alpha
|
|
12
|
+
*/
|
|
13
|
+
export const isChatClosedEvent = (event) => {
|
|
14
|
+
return event.type === "chatClosed";
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Type guard for the ChatResetEvent.
|
|
18
|
+
* @alpha
|
|
19
|
+
*/
|
|
20
|
+
export const isChatResetEvent = (event) => {
|
|
21
|
+
return event.type === "chatReset";
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Type guard for the ChatUserMessageEvent.
|
|
25
|
+
* @alpha
|
|
26
|
+
*/
|
|
27
|
+
export const isChatUserMessageEvent = (event) => {
|
|
28
|
+
return event.type === "chatUserMessage";
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Type guard for the ChatAssistantMessageEvent.
|
|
32
|
+
* @alpha
|
|
33
|
+
*/
|
|
34
|
+
export const isChatAssistantMessageEvent = (event) => {
|
|
35
|
+
return event.type === "chatAssistantMessage";
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Type guard for the ChatFeedbackEvent.
|
|
39
|
+
* @alpha
|
|
40
|
+
*/
|
|
41
|
+
export const isChatFeedbackEvent = (event) => {
|
|
42
|
+
return event.type === "chatFeedback";
|
|
43
|
+
};
|
|
44
|
+
export class EventDispatcher {
|
|
45
|
+
handlers = [];
|
|
46
|
+
setHandlers(handlers) {
|
|
47
|
+
this.handlers = handlers;
|
|
48
|
+
}
|
|
49
|
+
dispatch(event) {
|
|
50
|
+
this.handlers.forEach((handler) => {
|
|
51
|
+
if (handler.eval(event)) {
|
|
52
|
+
handler.handler(event);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAkBhC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAgB,EAA4B,EAAE;IAC5E,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACvC,CAAC,CAAC;AAUF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAgB,EAA4B,EAAE;IAC5E,OAAO,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACvC,CAAC,CAAC;AAUF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAA2B,EAAE;IAC1E,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;AACtC,CAAC,CAAC;AAWF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAgB,EAAiC,EAAE;IACtF,OAAO,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;AAC5C,CAAC,CAAC;AAYF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAgB,EAAsC,EAAE;IAChG,OAAO,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC;AACjD,CAAC,CAAC;AAYF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAgB,EAA8B,EAAE;IAChF,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;AACzC,CAAC,CAAC;AA6BF,MAAM,OAAO,eAAe;IAChB,QAAQ,GAAuB,EAAE,CAAC;IAEnC,WAAW,CAAC,QAA4B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,QAAQ,CAAC,KAAgB;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/esm/store/index.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ export type { RootState } from "./types.js";
|
|
|
2
2
|
export { getStore } from "./store.js";
|
|
3
3
|
export { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, setUserFeedback, } from "./messages/messagesSlice.js";
|
|
4
4
|
export { messagesSelector, isVerboseSelector, lastMessageSelector, hasMessagesSelector, asyncProcessSelector, globalErrorSelector, } from "./messages/messagesSelectors.js";
|
|
5
|
+
export { setOpenAction, setFullscreenAction } from "./chatWindow/chatWindowSlice.js";
|
|
6
|
+
export { isOpenSelector, isFullscreenSelector } from "./chatWindow/chatWindowSelectors.js";
|
|
5
7
|
//# 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,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAClB,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,EACjB,eAAe,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC"}
|
package/esm/store/index.js
CHANGED
|
@@ -2,4 +2,6 @@
|
|
|
2
2
|
export { getStore } from "./store.js";
|
|
3
3
|
export { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, clearThreadAction, clearThreadErrorAction, clearThreadSuccessAction, newMessageAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, setUserFeedback, } from "./messages/messagesSlice.js";
|
|
4
4
|
export { messagesSelector, isVerboseSelector, lastMessageSelector, hasMessagesSelector, asyncProcessSelector, globalErrorSelector, } from "./messages/messagesSelectors.js";
|
|
5
|
+
export { setOpenAction, setFullscreenAction } from "./chatWindow/chatWindowSlice.js";
|
|
6
|
+
export { isOpenSelector, isFullscreenSelector } from "./chatWindow/chatWindowSelectors.js";
|
|
5
7
|
//# 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,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAClB,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,EACjB,eAAe,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -8,4 +8,5 @@ export declare const hasMessagesSelector: (state: RootState) => boolean;
|
|
|
8
8
|
export declare const asyncProcessSelector: (state: RootState) => RootState[typeof messagesSliceName]["asyncProcess"];
|
|
9
9
|
export declare const globalErrorSelector: (state: RootState) => string | undefined;
|
|
10
10
|
export declare const lastMessageIdSelector: (state: RootState) => number | undefined;
|
|
11
|
+
export declare const threadIdSelector: (state: RootState) => string | undefined;
|
|
11
12
|
//# sourceMappingURL=messagesSelectors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messagesSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAIzC,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,EAG3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,OAAO,iBAAiB,CAAC,CAAC,cAAc,CACnC,CAAC;AAEzE,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGhE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGlE,CAAC"}
|
|
1
|
+
{"version":3,"file":"messagesSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAIzC,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,EAG3D,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,OAAO,iBAAiB,CAAC,CAAC,cAAc,CACnC,CAAC;AAEzE,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGhE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAG7D,CAAC"}
|
|
@@ -9,4 +9,5 @@ export const hasMessagesSelector = createSelector(messagesSliceSelector, (state)
|
|
|
9
9
|
export const asyncProcessSelector = createSelector(messagesSliceSelector, (state) => state.asyncProcess);
|
|
10
10
|
export const globalErrorSelector = createSelector(messagesSliceSelector, (state) => state.globalError);
|
|
11
11
|
export const lastMessageIdSelector = createSelector(messagesSelector, (messages) => [...messages].reverse().find((message) => !!message.id)?.id);
|
|
12
|
+
export const threadIdSelector = createSelector(messagesSliceSelector, (state) => state.threadId);
|
|
12
13
|
//# sourceMappingURL=messagesSelectors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messagesSelectors.js","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,qBAAqB,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAoC,cAAc,CAC3E,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAkC,cAAc,CAC1E,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAA8C,cAAc,CACxF,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC/E,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAkC,cAAc,CAC5E,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAC7B,cAAc,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,mBAAmB,GAA6C,cAAc,CACvF,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA6C,cAAc,CACzF,gBAAgB,EAChB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAC5E,CAAC"}
|
|
1
|
+
{"version":3,"file":"messagesSelectors.js","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,qBAAqB,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAoC,cAAc,CAC3E,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAkC,cAAc,CAC1E,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAA8C,cAAc,CACxF,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC/E,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAkC,cAAc,CAC5E,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAC7B,cAAc,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,mBAAmB,GAA6C,cAAc,CACvF,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA6C,cAAc,CACzF,gBAAgB,EAChB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAC5E,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA6C,cAAc,CACpF,qBAAqB,EACrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAC5B,CAAC"}
|
|
@@ -26,6 +26,12 @@ type MessagesSliceState = {
|
|
|
26
26
|
* - evaluating: the new user message is being evaluated by assistant
|
|
27
27
|
*/
|
|
28
28
|
asyncProcess?: "loading" | "clearing" | "evaluating";
|
|
29
|
+
/**
|
|
30
|
+
* An ID of the conversation thread.
|
|
31
|
+
* Not the same as threadIdSuffix in some of the REST APIs,
|
|
32
|
+
* this one is the actual id from server, useful for telemetry.
|
|
33
|
+
*/
|
|
34
|
+
threadId?: string;
|
|
29
35
|
};
|
|
30
36
|
export declare const LS_VERBOSE_KEY = "gd-gen-ai-verbose";
|
|
31
37
|
export declare const messagesSliceName = "messages";
|
|
@@ -34,6 +40,7 @@ export declare const loadThreadAction: import("@reduxjs/toolkit").ActionCreatorW
|
|
|
34
40
|
error: string;
|
|
35
41
|
}, "messages/loadThreadErrorAction">, loadThreadSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
36
42
|
messages: Message[];
|
|
43
|
+
threadId: string;
|
|
37
44
|
}, "messages/loadThreadSuccessAction">, clearThreadAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/clearThreadAction">, clearThreadErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
38
45
|
error: string;
|
|
39
46
|
}, "messages/clearThreadErrorAction">, clearThreadSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messages/clearThreadSuccessAction">, newMessageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<Message, "messages/newMessageAction">, evaluateMessageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACH,gBAAgB,EAChB,QAAQ,EAIR,OAAO,EAEV,MAAM,gBAAgB,CAAC;AAExB,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;IACrD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAClD,eAAO,MAAM,iBAAiB,aAAa,CAAC;AA0K5C,eAAO,MAAM,oBAAoB,wDAAwB,CAAC;AAC1D,eAAO,MACH,gBAAgB,uFAChB,qBAAqB;WAhI6D,MAAM;sCAiIxF,uBAAuB;cA3HgD,OAAO,EAAE;cAAY,MAAM;wCA4HlG,iBAAiB,wFACjB,sBAAsB;WApH6D,MAAM;uCAqHzF,wBAAwB,+FACxB,gBAAgB,6FAChB,qBAAqB;aAjGsC,gBAAgB;sCAkG3E,0BAA0B;WApFP,MAAM;wBACO,MAAM;2CAoFtC,8BAA8B;cAnER,QAAQ,EAAE;wBACA,MAAM;;+CAmEtC,6BAA6B;wBAhDG,MAAM;8CAiDtC,iBAAiB;cAzCmE,OAAO,EAAE;kCA0C7F,gBAAgB;aAvCiE,OAAO;iCAwCxF,oBAAoB;WArC6D,MAAM;qCAsCvF,iBAAiB,wFACjB,eAAe;wBA5BiB,MAAM;cAChB,gCAAgC;8BA4BjC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
|
2
2
|
import { createSlice } from "@reduxjs/toolkit";
|
|
3
|
-
import { isAssistantMessage, makeErrorContents } from "../../model.js";
|
|
3
|
+
import { isAssistantMessage, isUserMessage, makeErrorContents, } from "../../model.js";
|
|
4
4
|
export const LS_VERBOSE_KEY = "gd-gen-ai-verbose";
|
|
5
5
|
export const messagesSliceName = "messages";
|
|
6
6
|
const initialState = {
|
|
@@ -24,6 +24,14 @@ const getAssistantMessageStrict = (state, assistantMessageId) => {
|
|
|
24
24
|
}
|
|
25
25
|
return message;
|
|
26
26
|
};
|
|
27
|
+
const getUserMessageBeforeStrict = (state, assistantMessageId) => {
|
|
28
|
+
const messageIndex = state.messageOrder.indexOf(assistantMessageId);
|
|
29
|
+
const message = state.messages[state.messageOrder[messageIndex - 1]];
|
|
30
|
+
if (!isUserMessage(message)) {
|
|
31
|
+
throw new Error(`Unexpected error during message evaluation.`);
|
|
32
|
+
}
|
|
33
|
+
return message;
|
|
34
|
+
};
|
|
27
35
|
const messagesSlice = createSlice({
|
|
28
36
|
name: messagesSliceName,
|
|
29
37
|
initialState,
|
|
@@ -35,8 +43,9 @@ const messagesSlice = createSlice({
|
|
|
35
43
|
state.globalError = error;
|
|
36
44
|
delete state.asyncProcess;
|
|
37
45
|
},
|
|
38
|
-
loadThreadSuccessAction: (state, { payload: { messages } }) => {
|
|
46
|
+
loadThreadSuccessAction: (state, { payload: { messages, threadId } }) => {
|
|
39
47
|
setNormalizedMessages(state, messages);
|
|
48
|
+
state.threadId = threadId;
|
|
40
49
|
delete state.asyncProcess;
|
|
41
50
|
},
|
|
42
51
|
clearThreadAction: (state) => {
|
|
@@ -80,10 +89,14 @@ const messagesSlice = createSlice({
|
|
|
80
89
|
* Received new chunk from server over SSE.
|
|
81
90
|
*/
|
|
82
91
|
evaluateMessageStreamingAction: (state, { payload, }) => {
|
|
92
|
+
// Update assistant message
|
|
83
93
|
const assistantMessage = getAssistantMessageStrict(state, payload.assistantMessageId);
|
|
84
94
|
assistantMessage.id = payload.interactionId ?? assistantMessage.id;
|
|
85
95
|
assistantMessage.content.push(...payload.contents);
|
|
86
96
|
assistantMessage.cancelled = false;
|
|
97
|
+
// Also update the interaction id in the relevant user message
|
|
98
|
+
const userMessage = getUserMessageBeforeStrict(state, payload.assistantMessageId);
|
|
99
|
+
userMessage.id = payload.interactionId ?? userMessage.id;
|
|
87
100
|
},
|
|
88
101
|
evaluateMessageCompleteAction: (state, { payload, }) => {
|
|
89
102
|
const assistantMessage = getAssistantMessageStrict(state, payload.assistantMessageId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messagesSlice.js","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAE9D,OAAO,
|
|
1
|
+
{"version":3,"file":"messagesSlice.js","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* One saga to rule them all.
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
|
-
export declare function rootSaga(): Generator<import("redux-saga/effects").ForkEffect<
|
|
5
|
+
export declare function rootSaga(): Generator<import("redux-saga/effects").ForkEffect<void>, void, unknown>;
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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":"AAiBA;;;GAGG;AACH,wBAAiB,QAAQ,4EAOxB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
|
2
|
-
import { takeEvery, takeLatest } from "redux-saga/effects";
|
|
2
|
+
import { fork, takeEvery, takeLatest } from "redux-saga/effects";
|
|
3
3
|
import { setVerboseAction, loadThreadAction, clearThreadAction, newMessageAction, setUserFeedback, } 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
8
|
import { onUserFeedback } from "./onUserFeedback.js";
|
|
9
|
+
import { onEvent } from "./onEvent.js";
|
|
9
10
|
/**
|
|
10
11
|
* One saga to rule them all.
|
|
11
12
|
* @internal
|
|
@@ -16,5 +17,6 @@ export function* rootSaga() {
|
|
|
16
17
|
yield takeLatest(clearThreadAction.type, onThreadClear);
|
|
17
18
|
yield takeLatest(newMessageAction.type, onUserMessage);
|
|
18
19
|
yield takeEvery(setUserFeedback.type, onUserFeedback);
|
|
20
|
+
yield fork(onEvent);
|
|
19
21
|
}
|
|
20
22
|
//# 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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAClB,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,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;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,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onEvent.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onEvent.ts"],"names":[],"mappings":"AAeA,wBAAiB,OAAO,6EAOvB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
|
2
|
+
import { getContext, select, takeEvery } from "redux-saga/effects";
|
|
3
|
+
import { setOpenAction } from "../chatWindow/chatWindowSlice.js";
|
|
4
|
+
import { clearThreadAction, newMessageAction, evaluateMessageCompleteAction, setUserFeedback, loadThreadSuccessAction, } from "../messages/messagesSlice.js";
|
|
5
|
+
import { isRoutingContents, isTextContents, isUserMessage } from "../../model.js";
|
|
6
|
+
import { messagesSelector, threadIdSelector } from "../messages/messagesSelectors.js";
|
|
7
|
+
export function* onEvent() {
|
|
8
|
+
yield takeEvery(setOpenAction.type, onSetOpen);
|
|
9
|
+
yield takeEvery(loadThreadSuccessAction.type, onThreadLoaded);
|
|
10
|
+
yield takeEvery(clearThreadAction.type, onClearThread);
|
|
11
|
+
yield takeEvery(newMessageAction.type, onNewMessage);
|
|
12
|
+
yield takeEvery(evaluateMessageCompleteAction.type, onEvaluateMessageComplete);
|
|
13
|
+
yield takeEvery(setUserFeedback.type, onUserFeedback);
|
|
14
|
+
}
|
|
15
|
+
function* onSetOpen({ payload: { isOpen } }) {
|
|
16
|
+
if (isOpen) {
|
|
17
|
+
// Open event is handled once the chat thread is loaded, so that we have the threadId
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const eventDispatcher = yield getContext("eventDispatcher");
|
|
21
|
+
const threadId = yield select(threadIdSelector);
|
|
22
|
+
eventDispatcher.dispatch({
|
|
23
|
+
type: "chatClosed",
|
|
24
|
+
threadId,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function* onThreadLoaded({ payload: { threadId } }) {
|
|
28
|
+
const eventDispatcher = yield getContext("eventDispatcher");
|
|
29
|
+
eventDispatcher.dispatch({
|
|
30
|
+
type: "chatOpened",
|
|
31
|
+
threadId,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function* onClearThread(_action) {
|
|
35
|
+
const eventDispatcher = yield getContext("eventDispatcher");
|
|
36
|
+
const threadId = yield select(threadIdSelector);
|
|
37
|
+
eventDispatcher.dispatch({
|
|
38
|
+
type: "chatReset",
|
|
39
|
+
threadId,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function* onNewMessage({ payload: message }) {
|
|
43
|
+
if (!isUserMessage(message)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const question = message.content.find((c) => isTextContents(c))?.text;
|
|
47
|
+
if (!question) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const eventDispatcher = yield getContext("eventDispatcher");
|
|
51
|
+
const threadId = yield select(threadIdSelector);
|
|
52
|
+
eventDispatcher.dispatch({
|
|
53
|
+
type: "chatUserMessage",
|
|
54
|
+
threadId,
|
|
55
|
+
question,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function* onEvaluateMessageComplete({ payload: { assistantMessageId }, }) {
|
|
59
|
+
const allMessages = yield select(messagesSelector);
|
|
60
|
+
const assistantMessage = allMessages.find((m) => m.localId === assistantMessageId);
|
|
61
|
+
if (!assistantMessage) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const useCase = assistantMessage.content.find((c) => isRoutingContents(c))?.useCase;
|
|
65
|
+
if (!useCase) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const eventDispatcher = yield getContext("eventDispatcher");
|
|
69
|
+
const threadId = yield select(threadIdSelector);
|
|
70
|
+
eventDispatcher.dispatch({
|
|
71
|
+
type: "chatAssistantMessage",
|
|
72
|
+
interactionId: assistantMessage.id,
|
|
73
|
+
threadId,
|
|
74
|
+
useCase,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function* onUserFeedback({ payload: { assistantMessageId, feedback } }) {
|
|
78
|
+
const allMessages = yield select(messagesSelector);
|
|
79
|
+
const assistantMessage = allMessages.find((m) => m.localId === assistantMessageId);
|
|
80
|
+
if (!assistantMessage) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const eventDispatcher = yield getContext("eventDispatcher");
|
|
84
|
+
const threadId = yield select(threadIdSelector);
|
|
85
|
+
eventDispatcher.dispatch({
|
|
86
|
+
type: "chatFeedback",
|
|
87
|
+
interactionId: assistantMessage.id,
|
|
88
|
+
threadId,
|
|
89
|
+
feedback,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=onEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onEvent.js","sourceRoot":"","sources":["../../../src/store/sideEffects/onEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { IAnalyticalBackend, IChatThreadHistory } from "@gooddata/sdk-backend-sp
|
|
|
6
6
|
export declare function onThreadLoad(): Generator<import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").RaceEffect<import("redux-saga/effects").TakeEffect | import("redux-saga/effects").CallEffect<IChatThreadHistory>> | import("redux-saga/effects").PutEffect<{
|
|
7
7
|
payload: {
|
|
8
8
|
messages: import("../../model.js").Message[];
|
|
9
|
+
threadId: string;
|
|
9
10
|
};
|
|
10
11
|
type: "messages/loadThreadSuccessAction";
|
|
11
12
|
}> | import("redux-saga/effects").PutEffect<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onThreadLoad.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onThreadLoad.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAe,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAUhG;;;GAGG;AACH,wBAAiB,YAAY
|
|
1
|
+
{"version":3,"file":"onThreadLoad.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onThreadLoad.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAe,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAUhG;;;GAGG;AACH,wBAAiB,YAAY;;;;;;;;;;;;;;IAwB5B"}
|
|
@@ -18,7 +18,10 @@ export function* onThreadLoad() {
|
|
|
18
18
|
// TODO - cancelled during the loading
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
|
-
yield put(loadThreadSuccessAction({
|
|
21
|
+
yield put(loadThreadSuccessAction({
|
|
22
|
+
messages: interactionsToMessages(results?.interactions ?? []),
|
|
23
|
+
threadId: results?.threadId ?? "",
|
|
24
|
+
}));
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
27
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onThreadLoad.js","sourceRoot":"","sources":["../../../src/store/sideEffects/onThreadLoad.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,YAAY;IACzB,IAAI,CAAC;QACD,gCAAgC;QAChC,MAAM,OAAO,GAAuB,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,SAAS,GAAW,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC;QAExE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GACtB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEnF,IAAI,SAAS,EAAE,CAAC;YACZ,sCAAsC;QAC1C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,CACL,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"onThreadLoad.js","sourceRoot":"","sources":["../../../src/store/sideEffects/onThreadLoad.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,YAAY;IACzB,IAAI,CAAC;QACD,gCAAgC;QAChC,MAAM,OAAO,GAAuB,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,SAAS,GAAW,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC;QAExE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GACtB,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEnF,IAAI,SAAS,EAAE,CAAC;YACZ,sCAAsC;QAC1C,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,CACL,uBAAuB,CAAC;gBACpB,QAAQ,EAAE,sBAAsB,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC;gBAC7D,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE;aACpC,CAAC,CACL,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,CAAC,gBAAgB,CAAC,kBAA+B;IACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,CAAC;QACD,MAAM,OAAO,GAAuB,MAAM,IAAI,CAC1C,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACvD,SAAS,EACT,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAChC,CAAC;QAEF,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"}
|
package/esm/store/store.d.ts
CHANGED
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
import defaultReduxSaga from "redux-saga";
|
|
2
2
|
import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
|
|
3
|
-
import {
|
|
4
|
-
export declare const getStore: (backend: IAnalyticalBackend, workspace: string,
|
|
3
|
+
import { EventDispatcher } from "./events.js";
|
|
4
|
+
export declare const getStore: (backend: IAnalyticalBackend, workspace: string, eventDispatcher: EventDispatcher) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
|
|
5
5
|
messages: {
|
|
6
6
|
verbose: boolean;
|
|
7
|
-
messages: Record<string, Message>;
|
|
7
|
+
messages: Record<string, import("../model.js").Message>;
|
|
8
8
|
messageOrder: string[];
|
|
9
9
|
globalError?: string | undefined;
|
|
10
10
|
asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
|
|
11
|
+
threadId?: string | undefined;
|
|
12
|
+
};
|
|
13
|
+
chatWindow: {
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
isFullscreen: boolean;
|
|
11
16
|
};
|
|
12
17
|
}, import("@reduxjs/toolkit").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[defaultReduxSaga.SagaMiddleware<{
|
|
13
18
|
backend: IAnalyticalBackend;
|
|
14
19
|
workspace: string;
|
|
20
|
+
eventDispatcher: EventDispatcher;
|
|
15
21
|
}>, import("@reduxjs/toolkit").ThunkMiddleware<{
|
|
16
22
|
messages: {
|
|
17
23
|
verbose: boolean;
|
|
18
|
-
messages: Record<string, Message>;
|
|
24
|
+
messages: Record<string, import("../model.js").Message>;
|
|
19
25
|
messageOrder: string[];
|
|
20
26
|
globalError?: string | undefined;
|
|
21
27
|
asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
|
|
28
|
+
threadId?: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
chatWindow: {
|
|
31
|
+
isOpen: boolean;
|
|
32
|
+
isFullscreen: boolean;
|
|
22
33
|
};
|
|
23
34
|
}, import("@reduxjs/toolkit").AnyAction>]>>;
|
|
24
35
|
//# sourceMappingURL=store.d.ts.map
|
package/esm/store/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C,eAAO,MAAM,QAAQ,YACR,kBAAkB,aAChB,MAAM,mBACA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAuBnC,CAAC"}
|
package/esm/store/store.js
CHANGED
|
@@ -2,22 +2,25 @@
|
|
|
2
2
|
import { configureStore } from "@reduxjs/toolkit";
|
|
3
3
|
import defaultReduxSaga from "redux-saga";
|
|
4
4
|
import { defaultImport } from "default-import";
|
|
5
|
-
import { messagesSliceName, messagesSliceReducer
|
|
5
|
+
import { messagesSliceName, messagesSliceReducer } from "./messages/messagesSlice.js";
|
|
6
|
+
import { chatWindowSliceName, chatWindowSliceReducer } from "./chatWindow/chatWindowSlice.js";
|
|
6
7
|
import { rootSaga } from "./sideEffects/index.js";
|
|
7
8
|
// There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
|
|
8
9
|
// In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
|
|
9
10
|
// https://github.com/microsoft/TypeScript/issues/52086#issuecomment-1385978414
|
|
10
11
|
const createSagaMiddleware = defaultImport(defaultReduxSaga);
|
|
11
|
-
export const getStore = (backend, workspace,
|
|
12
|
+
export const getStore = (backend, workspace, eventDispatcher) => {
|
|
12
13
|
const sagaMiddleware = createSagaMiddleware({
|
|
13
14
|
context: {
|
|
14
15
|
backend,
|
|
15
16
|
workspace,
|
|
17
|
+
eventDispatcher,
|
|
16
18
|
},
|
|
17
19
|
});
|
|
18
20
|
const store = configureStore({
|
|
19
21
|
reducer: {
|
|
20
22
|
[messagesSliceName]: messagesSliceReducer,
|
|
23
|
+
[chatWindowSliceName]: chatWindowSliceReducer,
|
|
21
24
|
},
|
|
22
25
|
middleware: (getDefaultMiddleware) => getDefaultMiddleware().prepend(sagaMiddleware),
|
|
23
26
|
devTools: {
|
|
@@ -25,10 +28,6 @@ export const getStore = (backend, workspace, initialHistory) => {
|
|
|
25
28
|
},
|
|
26
29
|
});
|
|
27
30
|
sagaMiddleware.run(rootSaga);
|
|
28
|
-
if (initialHistory?.length) {
|
|
29
|
-
// Set the initial history in store
|
|
30
|
-
store.dispatch(setMessagesAction({ messages: initialHistory }));
|
|
31
|
-
}
|
|
32
31
|
return store;
|
|
33
32
|
};
|
|
34
33
|
//# sourceMappingURL=store.js.map
|
package/esm/store/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,4FAA4F;AAC5F,8GAA8G;AAC9G,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CACpB,OAA2B,EAC3B,SAAiB,EACjB,eAAgC,EAClC,EAAE;IACA,MAAM,cAAc,GAAG,oBAAoB,CAAC;QACxC,OAAO,EAAE;YACL,OAAO;YACP,SAAS;YACT,eAAe;SAClB;KACJ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,cAAc,CAAC;QACzB,OAAO,EAAE;YACL,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;YACzC,CAAC,mBAAmB,CAAC,EAAE,sBAAsB;SAChD;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;QACpF,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;SAChB;KACJ,CAAC,CAAC;IAEH,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7B,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
|