@genexus/mercury 0.35.0 → 0.35.1
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/dist/assets/MERCURY_ASSETS.d.ts +1032 -1018
- package/dist/assets/MERCURY_ASSETS.js +1 -1
- package/dist/assets/MERCURY_ASSETS.ts +10024 -10018
- package/dist/assets/icons/objects/dark/master-panel.svg +1 -0
- package/dist/assets/icons/objects/light/master-panel.svg +1 -0
- package/dist/bundles/css/all.css +1 -1
- package/dist/bundles/css/base/icons.css +1 -1
- package/dist/components/chat/render.lit.d.ts +14 -2
- package/dist/components/chat/render.lit.js +14 -8
- package/package.json +1 -1
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type TemplateResult } from "lit";
|
|
2
|
+
import type { ChatActionsRender, ChatCodeBlockRender, ChatContentRender, ChatMessage, ChatSendContainerLayout } from "@genexus/chameleon-controls-library/dist/types/components/chat/types";
|
|
2
3
|
import "./mer-animated-dots.js";
|
|
3
|
-
export declare const renderItem:
|
|
4
|
+
export declare const renderItem: {
|
|
5
|
+
readonly actions: ChatActionsRender;
|
|
6
|
+
readonly contentBefore: (message: ChatMessage) => TemplateResult;
|
|
7
|
+
readonly codeBlock: ChatCodeBlockRender;
|
|
8
|
+
readonly content: ChatContentRender;
|
|
9
|
+
readonly file: {
|
|
10
|
+
readonly audio: (file: import("@genexus/chameleon-controls-library/dist/types/components/chat/types").ChatMessageFile) => TemplateResult;
|
|
11
|
+
readonly video: (file: import("@genexus/chameleon-controls-library/dist/types/components/chat/types").ChatMessageFile) => TemplateResult;
|
|
12
|
+
readonly image: (file: import("@genexus/chameleon-controls-library/dist/types/components/chat/types").ChatMessageFile) => TemplateResult;
|
|
13
|
+
readonly file: (file: import("@genexus/chameleon-controls-library/dist/types/components/chat/types").ChatMessageFile) => TemplateResult;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
4
16
|
export declare const sendContainerLayout: ChatSendContainerLayout;
|
|
@@ -36,11 +36,16 @@ import "./mer-animated-dots.js";
|
|
|
36
36
|
* @param messageMetaData - Metadata containing agentName and time
|
|
37
37
|
* @returns TemplateResult rendering the assistant message header
|
|
38
38
|
*/
|
|
39
|
-
const messageHeader = (
|
|
40
|
-
|
|
39
|
+
const messageHeader = (message) => {
|
|
40
|
+
if (message.role === "system" || message.role === "user") {
|
|
41
|
+
return nothing; // TODO: Improve type safety in the ch-chat (nicolas-camera_globant)
|
|
42
|
+
}
|
|
43
|
+
const agentName = message.metadata?.agentName;
|
|
41
44
|
const assistantId = agentName?.toLowerCase().replace(/ /g, "-");
|
|
42
|
-
const messageTime =
|
|
43
|
-
return html `<div part="header assistant${assistantId ? ` header-${assistantId}` : ""}"><div part="header__start assistant"><div part="header__avatar-container assistant"><div part="header__avatar-border assistant"></div><div part="header__avatar-image assistant"></div></div><div part="header__role assistant">${agentName}</div>${
|
|
45
|
+
const messageTime = message.metadata?.time;
|
|
46
|
+
return html `<div part="header assistant${assistantId ? ` header-${assistantId}` : ""}"><div part="header__start assistant"><div part="header__avatar-container assistant"><div part="header__avatar-border assistant"></div><div part="header__avatar-image assistant"></div></div><div part="header__role assistant">${agentName}</div>${message.role === "assistant" && message.status === "waiting"
|
|
47
|
+
? html `<mer-animated-dots></mer-animated-dots>`
|
|
48
|
+
: nothing}</div>${messageTime
|
|
44
49
|
? html `<time datetime="${messageTime}" part="header__time assistant">${messageTime}</time>`
|
|
45
50
|
: nothing}</div>`;
|
|
46
51
|
};
|
|
@@ -48,11 +53,11 @@ const messageHeader = (messageMetaData, waiting = false) => {
|
|
|
48
53
|
const customAssistantContentRender = (message, chatRef, codeBlockRender) => {
|
|
49
54
|
const messageContent = getMessageContent(message);
|
|
50
55
|
return message.status === "waiting"
|
|
51
|
-
? html
|
|
56
|
+
? html `<div class="assistant-loading" part="${tokenMap({
|
|
52
57
|
[`assistant content waiting ${message.id}`]: true,
|
|
53
58
|
...(message.parts ? { [message.parts]: true } : {})
|
|
54
59
|
})}">${messageContent}</div>`
|
|
55
|
-
: html
|
|
60
|
+
: html `<ch-markdown-viewer part="${tokenMap({
|
|
56
61
|
[`assistant content ${message.id} ${message.status ?? DEFAULT_ASSISTANT_STATUS}`]: true,
|
|
57
62
|
...(message.parts ? { [message.parts]: true } : {})
|
|
58
63
|
})}" .renderCode="${
|
|
@@ -61,10 +66,10 @@ const customAssistantContentRender = (message, chatRef, codeBlockRender) => {
|
|
|
61
66
|
// In Chameleon this type mismatch does not happens. TODO: Evaluate a solution in Chameleon.
|
|
62
67
|
codeBlockRender(chatRef)}" .showIndicator="${message.status === "streaming"}" .theme="${chatRef.markdownTheme ?? undefined}" .value="${messageContent}"></ch-markdown-viewer>`;
|
|
63
68
|
};
|
|
64
|
-
//
|
|
69
|
+
// Customized in order to add the custom "messageHeader"
|
|
65
70
|
const customErrorContentRender = (message, chatRef, codeBlockRender) => {
|
|
66
71
|
const errorContent = getMessageContent(message);
|
|
67
|
-
return html
|
|
72
|
+
return html `<ch-markdown-viewer part="${tokenMap({
|
|
68
73
|
[`error content ${message.id}`]: true,
|
|
69
74
|
...(message.parts ? { [message.parts]: true } : {})
|
|
70
75
|
})}" .renderCode="${
|
|
@@ -88,6 +93,7 @@ const contentRenderByRole = {
|
|
|
88
93
|
const customContentRender = (message, chatRef, codeBlockRender) => contentRenderByRole[message.role](message, chatRef, codeBlockRender);
|
|
89
94
|
export const renderItem = {
|
|
90
95
|
actions: customActionsRender,
|
|
96
|
+
contentBefore: messageHeader,
|
|
91
97
|
codeBlock: customCodeBlockRender,
|
|
92
98
|
content: customContentRender,
|
|
93
99
|
file: customFileRenders
|
package/package.json
CHANGED