@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.
@@ -1,4 +1,16 @@
1
- import type { ChatMessageRenderBySections, ChatSendContainerLayout } from "@genexus/chameleon-controls-library/dist/types/components/chat/types";
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: ChatMessageRenderBySections;
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 = (messageMetaData, waiting = false) => {
40
- const agentName = messageMetaData?.agentName;
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 = messageMetaData?.time;
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>${waiting ? html `<mer-animated-dots></mer-animated-dots>` : nothing}</div>${messageTime
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 `${messageHeader(message.metadata, true)}<div class="assistant-loading" part="${tokenMap({
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 `${messageHeader(message.metadata)}<ch-markdown-viewer part="${tokenMap({
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
- // customzied in order to add the custom "messageHeader"
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 `${messageHeader(message.metadata)}<ch-markdown-viewer part="${tokenMap({
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genexus/mercury",
3
- "version": "0.35.0",
3
+ "version": "0.35.1",
4
4
  "description": "Mercury Design System is a robust and scalable solution designed to improve product development.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",