diff --git a/web-ui/app/operator/agents/_components/PluginsDnd.tsx b/web-ui/app/operator/agents/_components/PluginsDnd.tsx index bdccd9b4..65c387db 100644 --- a/web-ui/app/operator/agents/_components/PluginsDnd.tsx +++ b/web-ui/app/operator/agents/_components/PluginsDnd.tsx @@ -19,7 +19,7 @@ import { verticalListSortingStrategy, } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; -import { GripVertical } from 'lucide-react'; +import { Globe, GripVertical } from 'lucide-react'; import { useMemo, useState } from 'react'; import { useTranslations } from 'next-intl'; @@ -286,24 +286,26 @@ export function PluginsDnd(props: PluginsDndProps): React.ReactElement { return (
-

- {t('pluginsHeading')} +
+

+ {t('pluginsHeading')} +

-

+
-
+
{activeEntry ? ( -
- {activeEntry.name} - - {activeEntry.id} - +
+ + + {activeEntry.name} + +
) : null} @@ -498,29 +501,57 @@ function Column(props: { return [props.id]; }, [props.id]); + const accent = props.id === ENABLED_ID; + return (
-
- - {props.title} +
+
+ + + {props.title} + +
+ + {props.count} - {props.count}
-
+
{props.count === 0 ? ( -

+

{props.emptyLabel}

) : ( @@ -575,26 +606,32 @@ function DraggablePluginTile(props: { return (
-
-
- -
-
- +
+
+ +
+
+
+ {entry.name} - - {entry.id} - {!entry.multi_instance && ( )} - {attached && ( - - )}
+ + {entry.id} + {(entry.memory_reads.length > 0 || - entry.memory_writes.length > 0) && ( -
+ entry.memory_writes.length > 0 || + entry.network_outbound.length > 0) && ( +
{entry.memory_reads.map((s) => ( r:{s} @@ -650,24 +680,28 @@ function DraggablePluginTile(props: { w:{s} ))} + {entry.network_outbound.length > 0 && ( + + + {t('networkHosts', { count: entry.network_outbound.length })} + + )}
)} - {entry.network_outbound.length > 0 && ( -

- {t('networkLabel')} {entry.network_outbound.join(', ')} -

- )}
-
+
{!attached ? ( ) : ( <> - {hasFields && ( + +
+ {hasFields && ( + + )} - )} - +
)}
- {attached && props.expanded && hasFields && ( +
+ {attached && props.expanded && hasFields && (