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
parent 0ad39b884f
commit fac56e30aa
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';
@@ -723,6 +725,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) {
+2
View File
@@ -517,6 +517,8 @@ const enUS = {
agentOrchestrationDescription:
'Event-first handling logic for messages, group members, friends, feedback, and other EBA events.',
pipelineType: 'Pipeline',
kindBadgeAgent: 'Agent',
kindBadgePipeline: 'Pipeline',
pipelineTypeDescription:
'Keep the existing no-code message pipeline for backward compatibility. It only handles message events.',
allEvents: 'Supports all EBA events',
+2
View File
@@ -501,6 +501,8 @@ const jaJP = {
agentOrchestrationDescription:
'メッセージ、グループメンバー、友だち、フィードバックなどの EBA イベント向けの処理ロジックです。',
pipelineType: 'Pipeline',
kindBadgeAgent: 'Agent',
kindBadgePipeline: 'パイプライン',
pipelineTypeDescription:
'既存のノーコードメッセージ Pipeline を互換性のため保持します。メッセージイベントのみ処理できます。',
allEvents: 'すべての EBA イベントに対応',
+2
View File
@@ -497,6 +497,8 @@ const zhHans = {
agentOrchestrationDescription:
'面向 EBA 事件的处理逻辑,可用于消息、群成员、好友、反馈等事件。',
pipelineType: 'Pipeline',
kindBadgeAgent: 'Agent',
kindBadgePipeline: '流水线',
pipelineTypeDescription:
'保留现有无代码消息流水线,兼容旧配置,只能处理消息事件。',
allEvents: '支持全部 EBA 事件',