Spaces:
Build error
Build error
import React from "react"; | |
import ReactJsonView from "@microlink/react-json-view"; | |
import { useTranslation } from "react-i18next"; | |
import { MCPObservation } from "#/types/core/observations"; | |
import { JSON_VIEW_THEME } from "#/utils/constants"; | |
interface MCPObservationContentProps { | |
event: MCPObservation; | |
} | |
export function MCPObservationContent({ event }: MCPObservationContentProps) { | |
const { t } = useTranslation(); | |
// Parse the content as JSON if possible | |
let outputData: unknown; | |
try { | |
outputData = JSON.parse(event.content); | |
} catch (e) { | |
// If parsing fails, use the raw content | |
outputData = event.content; | |
} | |
const hasArguments = | |
event.extras.arguments && Object.keys(event.extras.arguments).length > 0; | |
return ( | |
<div className="flex flex-col gap-4"> | |
{/* Arguments section */} | |
{hasArguments && ( | |
<div className="flex flex-col gap-2"> | |
<div className="flex items-center justify-between"> | |
<h3 className="text-sm font-semibold text-gray-300"> | |
{t("MCP_OBSERVATION$ARGUMENTS")} | |
</h3> | |
</div> | |
<div className="p-3 bg-gray-900 rounded-md overflow-auto text-gray-300 max-h-[200px] shadow-inner"> | |
<ReactJsonView | |
name={false} | |
src={event.extras.arguments} | |
theme={JSON_VIEW_THEME} | |
collapsed={1} | |
displayDataTypes={false} | |
/> | |
</div> | |
</div> | |
)} | |
{/* Output section */} | |
<div className="flex flex-col gap-2"> | |
<div className="flex items-center justify-between"> | |
<h3 className="text-sm font-semibold text-gray-300"> | |
{t("MCP_OBSERVATION$OUTPUT")} | |
</h3> | |
</div> | |
<div className="p-3 bg-gray-900 rounded-md overflow-auto text-gray-300 max-h-[300px] shadow-inner"> | |
{typeof outputData === "object" && outputData !== null ? ( | |
<ReactJsonView | |
name={false} | |
src={outputData} | |
theme={JSON_VIEW_THEME} | |
collapsed={1} | |
displayDataTypes={false} | |
/> | |
) : ( | |
<pre className="whitespace-pre-wrap"> | |
{event.content.trim() || t("OBSERVATION$MCP_NO_OUTPUT")} | |
</pre> | |
)} | |
</div> | |
</div> | |
</div> | |
); | |
} | |