feat(sidebar): mark Agent entries as Agent or Pipeline

Add a trailing badge (icon + label) to each entry in the sidebar Agent
section so users can tell Agent orchestration apart from legacy Pipeline.
Thread the agent `kind` field through SidebarEntityItem.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Junyan Qin
2026-06-26 20:10:00 +08:00
committed by huanghuoguoguo
parent ef344ec8cc
commit 56cd6a74d4
5 changed files with 23 additions and 0 deletions
@@ -32,6 +32,8 @@ import {
Server,
Puzzle,
RefreshCcw,
Bot,
Workflow,
} from 'lucide-react';
import { useTheme } from '@/components/providers/theme-provider';
@@ -774,6 +776,18 @@ function NavItems({
/>
) : null}
<span className="truncate">{item.name}</span>
{item.kind && (
<span className="ml-auto flex shrink-0 items-center gap-0.5 text-[10px] text-muted-foreground">
{item.kind === 'pipeline' ? (
<Workflow className="size-3" />
) : (
<Bot className="size-3" />
)}
{item.kind === 'pipeline'
? t('agents.kindBadgePipeline')
: t('agents.kindBadgeAgent')}
</span>
)}
{item.debug && (
<Bug className="size-3.5 shrink-0 text-orange-400" />
)}
@@ -28,6 +28,8 @@ export interface SidebarEntityItem {
debug?: boolean;
// Set when this item appears in the unified extensions list
extensionType?: 'plugin' | 'mcp' | 'skill';
// Agent-specific: distinguishes Agent orchestration from legacy Pipeline
kind?: 'agent' | 'pipeline';
}
// Plugin page registered by a plugin
@@ -123,6 +125,7 @@ export function SidebarDataProvider({
description: p.description,
emoji: p.emoji,
updatedAt: p.updated_at,
kind: p.kind,
})),
);
} catch (error) {