Skip to content

Commit 04b8ddd

Browse files
committed
warning
1 parent 7c75969 commit 04b8ddd

File tree

2 files changed

+68
-12
lines changed

2 files changed

+68
-12
lines changed

src/dashboard/Data/Agent/Agent.react.js

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ class Agent extends DashboardView {
211211

212212
handleSubmit = async (event) => {
213213
event.preventDefault();
214-
const { inputValue, selectedModel } = this.state;
214+
const { inputValue, selectedModel, messages } = this.state;
215215
const { agentConfig } = this.props;
216216

217217
if (inputValue.trim() === '') {
@@ -238,16 +238,31 @@ class Agent extends DashboardView {
238238
return;
239239
}
240240

241+
// Add warning message if this is the first message in the conversation
242+
const isFirstMessage = messages.length === 0;
243+
let messagesToAdd = [];
244+
245+
if (isFirstMessage) {
246+
const warningMessage = {
247+
id: Date.now() - 1,
248+
type: 'warning',
249+
content: 'The AI agent has full access to your database using the master key. It can read, modify, and delete any data. This feature is highly recommended for development environments only. Always back up important data before using the AI agent.',
250+
timestamp: new Date(),
251+
};
252+
messagesToAdd.push(warningMessage);
253+
}
254+
241255
// Add user message
242256
const userMessage = {
243257
id: Date.now(),
244258
type: 'user',
245259
content: inputValue.trim(),
246260
timestamp: new Date(),
247261
};
262+
messagesToAdd.push(userMessage);
248263

249264
this.setState(prevState => ({
250-
messages: [...prevState.messages, userMessage],
265+
messages: [...prevState.messages, ...messagesToAdd],
251266
inputValue: '',
252267
isLoading: true,
253268
}));
@@ -381,17 +396,28 @@ class Agent extends DashboardView {
381396
{messages.map((message) => (
382397
<div
383398
key={message.id}
384-
className={`${styles.message} ${styles[message.type]} ${message.isError ? styles.error : ''}`}
399+
className={`${styles.message} ${styles[message.type]} ${message.isError ? styles.error : ''} ${message.type === 'warning' ? styles.warningMessage : ''}`}
385400
>
386-
<div className={styles.messageContent}>
387-
{message.type === 'agent' ? this.formatMessageContent(message.content) : message.content}
388-
</div>
389-
<div className={styles.messageTime}>
390-
{message.timestamp instanceof Date ?
391-
message.timestamp.toLocaleTimeString() :
392-
new Date(message.timestamp).toLocaleTimeString()
393-
}
394-
</div>
401+
{message.type === 'warning' ? (
402+
<>
403+
<Icon name="warn-outline" width={16} height={16} fill="#856404" className={styles.warningIcon} />
404+
<div className={styles.warningContent}>
405+
{message.content}
406+
</div>
407+
</>
408+
) : (
409+
<>
410+
<div className={styles.messageContent}>
411+
{message.type === 'agent' ? this.formatMessageContent(message.content) : message.content}
412+
</div>
413+
<div className={styles.messageTime}>
414+
{message.timestamp instanceof Date ?
415+
message.timestamp.toLocaleTimeString() :
416+
new Date(message.timestamp).toLocaleTimeString()
417+
}
418+
</div>
419+
</>
420+
)}
395421
</div>
396422
))}
397423
{isLoading && (

src/dashboard/Data/Agent/Agent.scss

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,33 @@ body:global(.expanded) {
341341
transform: translateY(0);
342342
}
343343
}
344+
345+
.warningMessage {
346+
background-color: #fff3cd;
347+
border: 1px solid #ffeaa7;
348+
color: #856404;
349+
padding: 12px 16px;
350+
border-radius: 8px;
351+
margin-bottom: 16px;
352+
font-size: 14px;
353+
line-height: 1.4;
354+
position: relative;
355+
max-width: 100%;
356+
align-self: stretch;
357+
display: flex;
358+
align-items: flex-start;
359+
gap: 8px;
360+
361+
.warningIcon {
362+
flex-shrink: 0;
363+
margin-top: 2px;
364+
}
365+
366+
.warningContent {
367+
flex: 1;
368+
}
369+
370+
strong {
371+
font-weight: 600;
372+
}
373+
}

0 commit comments

Comments
 (0)