mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-21 19:00:13 +01:00
75 lines
1.9 KiB
TypeScript
75 lines
1.9 KiB
TypeScript
|
|
import React from 'react';
|
||
|
|
import { useLocalize } from '~/hooks';
|
||
|
|
|
||
|
|
function OptimizedCodeBlock({ text, maxHeight = 320 }: { text: string; maxHeight?: number }) {
|
||
|
|
return (
|
||
|
|
<div
|
||
|
|
className="rounded-lg bg-surface-tertiary p-2 text-xs text-text-primary"
|
||
|
|
style={{
|
||
|
|
position: 'relative',
|
||
|
|
maxHeight,
|
||
|
|
overflow: 'auto',
|
||
|
|
}}
|
||
|
|
>
|
||
|
|
<pre className="m-0 whitespace-pre-wrap break-words" style={{ overflowWrap: 'break-word' }}>
|
||
|
|
<code>{text}</code>
|
||
|
|
</pre>
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
export default function ToolCallInfo({
|
||
|
|
input,
|
||
|
|
output,
|
||
|
|
domain,
|
||
|
|
function_name,
|
||
|
|
pendingAuth,
|
||
|
|
}: {
|
||
|
|
input: string;
|
||
|
|
function_name: string;
|
||
|
|
output?: string | null;
|
||
|
|
domain?: string;
|
||
|
|
pendingAuth?: boolean;
|
||
|
|
}) {
|
||
|
|
const localize = useLocalize();
|
||
|
|
const formatText = (text: string) => {
|
||
|
|
try {
|
||
|
|
return JSON.stringify(JSON.parse(text), null, 2);
|
||
|
|
} catch {
|
||
|
|
return text;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
let title =
|
||
|
|
domain != null && domain
|
||
|
|
? localize('com_assistants_domain_info', { 0: domain })
|
||
|
|
: localize('com_assistants_function_use', { 0: function_name });
|
||
|
|
if (pendingAuth === true) {
|
||
|
|
title =
|
||
|
|
domain != null && domain
|
||
|
|
? localize('com_assistants_action_attempt', { 0: domain })
|
||
|
|
: localize('com_assistants_attempt_info');
|
||
|
|
}
|
||
|
|
|
||
|
|
return (
|
||
|
|
<div className="w-full p-2">
|
||
|
|
<div style={{ opacity: 1 }}>
|
||
|
|
<div className="mb-2 text-sm font-medium text-text-primary">{title}</div>
|
||
|
|
<div>
|
||
|
|
<OptimizedCodeBlock text={formatText(input)} maxHeight={250} />
|
||
|
|
</div>
|
||
|
|
{output && (
|
||
|
|
<>
|
||
|
|
<div className="my-2 text-sm font-medium text-text-primary">
|
||
|
|
{localize('com_ui_result')}
|
||
|
|
</div>
|
||
|
|
<div>
|
||
|
|
<OptimizedCodeBlock text={formatText(output)} maxHeight={250} />
|
||
|
|
</div>
|
||
|
|
</>
|
||
|
|
)}
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
}
|