diff --git a/server/bundles/io.cloudbeaver.server/schema/service.events.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.events.graphqls index dfe83af016..cb8ecd1f75 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.events.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.events.graphqls @@ -59,6 +59,7 @@ enum CBServerEventId { cb_database_output_log_updated, cb_ai_chat_message_chunk @since(version: "25.1.1") cb_ai_chat_message_error @since(version: "25.1.1") + cb_ai_chat_message @since(version: "25.3.5") "Transaction count updated" cb_transaction_count @since(version: "24.3.3"), @@ -290,6 +291,18 @@ type WSAIChatMessageErrorEvent implements CBServerEvent @since(version: "25.1.1" errorMessage: String } + +type WSAIChatMessageEvent implements CBServerEvent @since(version: "25.3.5") { + id: CBServerEventId! + topicId: CBEventTopic + conversationId: ID! + messageId: ID! + role: String! + content: String! + displayMessage: String! + time: String! +} + enum WSServerNotificationEventType { INFO ERROR diff --git a/webapp/packages/core-blocks/src/Alert.module.css b/webapp/packages/core-blocks/src/Alert.module.css index 2e265e01ed..6898546c00 100644 --- a/webapp/packages/core-blocks/src/Alert.module.css +++ b/webapp/packages/core-blocks/src/Alert.module.css @@ -35,3 +35,11 @@ font-weight: 500; margin: 0; } + +.alert.error { + background-color: rgba(255, 77, 79, 0.15); + + .title { + color: var(--theme-error); + } +} diff --git a/webapp/packages/core-blocks/src/Alert.tsx b/webapp/packages/core-blocks/src/Alert.tsx index 9697fe0322..d6fd7de4c4 100644 --- a/webapp/packages/core-blocks/src/Alert.tsx +++ b/webapp/packages/core-blocks/src/Alert.tsx @@ -17,18 +17,21 @@ import classes from './Alert.module.css'; interface Props { title?: string; + variant?: 'info' | 'error'; className?: string; } -export const Alert = observer>(function Alert({ title, className, children }) { +export const Alert = observer>(function Alert({ title, variant = 'info', className, children }) { const translate = useTranslate(); const styles = useS(classes); + const icon = variant === 'info' ? '/icons/preload/info_icon_sm.svg' : '/icons/preload/error_icon_sm.svg'; + return ( -
- +
+
-

{title ?? translate('ui_information')}

+

{title ?? translate(variant === 'info' ? 'ui_information' : 'ui_error')}

{children}