fix: show bridge in agents page, replace capabilities with labels
This commit is contained in:
parent
c00a3ea1f1
commit
503bb1379a
@ -12,7 +12,7 @@ export default function AgentsPage() {
|
||||
const load = async () => {
|
||||
try {
|
||||
const members = await getMembers();
|
||||
setAgents(members.filter((m) => m.type === "agent"));
|
||||
setAgents(members.filter((m) => m.type === "agent" || m.type === "bridge"));
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
@ -22,6 +22,11 @@ export default function AgentsPage() {
|
||||
load();
|
||||
}, []);
|
||||
|
||||
const typeIcon = (type: string) => {
|
||||
if (type === "bridge") return { bg: "bg-purple-500/20", text: "text-purple-400", icon: "🔗" };
|
||||
return { bg: "bg-blue-500/20", text: "text-blue-400", icon: "🤖" };
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="p-6">
|
||||
<div className="flex items-center justify-between mb-6">
|
||||
@ -40,45 +45,56 @@ export default function AgentsPage() {
|
||||
<div className="text-[var(--muted)] text-sm">Нет агентов</div>
|
||||
) : (
|
||||
<div className="grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
|
||||
{agents.map((agent) => (
|
||||
<div
|
||||
key={agent.id}
|
||||
onClick={() => setSelected(agent)}
|
||||
className="bg-[var(--card)] border border-[var(--border)] rounded-xl p-4 cursor-pointer hover:border-[var(--accent)]/50 transition-colors"
|
||||
>
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<h3 className="font-semibold">{agent.name}</h3>
|
||||
<span
|
||||
className={`text-xs px-2 py-0.5 rounded-full ${
|
||||
agent.status === "online"
|
||||
? "bg-green-500/20 text-green-400"
|
||||
: "bg-gray-500/20 text-gray-400"
|
||||
}`}
|
||||
>
|
||||
{agent.status === "online" ? "online" : "offline"}
|
||||
</span>
|
||||
</div>
|
||||
<div className="text-xs text-[var(--muted)] mb-3">@{agent.slug}</div>
|
||||
|
||||
{agent.agent_config?.capabilities && agent.agent_config.capabilities.length > 0 && (
|
||||
<div className="flex flex-wrap gap-1 mb-3">
|
||||
{agent.agent_config.capabilities.map((cap) => (
|
||||
<span
|
||||
key={cap}
|
||||
className="text-xs px-2 py-0.5 bg-[var(--accent)]/10 text-[var(--accent)] rounded"
|
||||
>
|
||||
{cap}
|
||||
</span>
|
||||
))}
|
||||
{agents.map((agent) => {
|
||||
const ti = typeIcon(agent.type);
|
||||
return (
|
||||
<div
|
||||
key={agent.id}
|
||||
onClick={() => setSelected(agent)}
|
||||
className="bg-[var(--card)] border border-[var(--border)] rounded-xl p-4 cursor-pointer hover:border-[var(--accent)]/50 transition-colors"
|
||||
>
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<div className="flex items-center gap-2">
|
||||
<span>{ti.icon}</span>
|
||||
<h3 className="font-semibold">{agent.name}</h3>
|
||||
</div>
|
||||
<span
|
||||
className={`text-xs px-2 py-0.5 rounded-full ${
|
||||
agent.status === "online"
|
||||
? "bg-green-500/20 text-green-400"
|
||||
: "bg-gray-500/20 text-gray-400"
|
||||
}`}
|
||||
>
|
||||
{agent.status === "online" ? "online" : "offline"}
|
||||
</span>
|
||||
</div>
|
||||
<div className="text-xs text-[var(--muted)] mb-3">
|
||||
@{agent.slug} • {agent.type}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="text-xs text-[var(--muted)] space-y-1">
|
||||
<div>💬 chat: {agent.agent_config?.chat_listen || "—"}</div>
|
||||
<div>📋 tasks: {agent.agent_config?.task_listen || "—"}</div>
|
||||
{agent.agent_config?.labels && agent.agent_config.labels.length > 0 && (
|
||||
<div className="flex flex-wrap gap-1 mb-3">
|
||||
{agent.agent_config.labels.map((label) => (
|
||||
<span
|
||||
key={label}
|
||||
className="text-xs px-2 py-0.5 bg-[var(--accent)]/10 text-[var(--accent)] rounded"
|
||||
>
|
||||
{label}
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="text-xs text-[var(--muted)] space-y-1">
|
||||
<div>💬 чат: {agent.agent_config?.chat_listen || "—"}</div>
|
||||
<div>📋 задачи: {agent.agent_config?.task_listen || "—"}</div>
|
||||
{agent.agent_config?.mentionable === false && (
|
||||
<div>🚫 не упоминаемый</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
)}
|
||||
|
||||
@ -98,4 +114,4 @@ export default function AgentsPage() {
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user