diff --git a/web/src/app/home/components/home-sidebar/HomeSidebar.tsx b/web/src/app/home/components/home-sidebar/HomeSidebar.tsx index bd5308da3..21c6e1377 100644 --- a/web/src/app/home/components/home-sidebar/HomeSidebar.tsx +++ b/web/src/app/home/components/home-sidebar/HomeSidebar.tsx @@ -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} {item.name} + {item.kind && ( + + {item.kind === 'pipeline' ? ( + + ) : ( + + )} + {item.kind === 'pipeline' + ? t('agents.kindBadgePipeline') + : t('agents.kindBadgeAgent')} + + )} {item.debug && ( )} diff --git a/web/src/app/home/components/home-sidebar/SidebarDataContext.tsx b/web/src/app/home/components/home-sidebar/SidebarDataContext.tsx index b59f420ee..4d1121cc1 100644 --- a/web/src/app/home/components/home-sidebar/SidebarDataContext.tsx +++ b/web/src/app/home/components/home-sidebar/SidebarDataContext.tsx @@ -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) { diff --git a/web/src/i18n/locales/en-US.ts b/web/src/i18n/locales/en-US.ts index fdbe0a225..106cbb0ff 100644 --- a/web/src/i18n/locales/en-US.ts +++ b/web/src/i18n/locales/en-US.ts @@ -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', diff --git a/web/src/i18n/locales/ja-JP.ts b/web/src/i18n/locales/ja-JP.ts index ec0ecaa15..8777aea5f 100644 --- a/web/src/i18n/locales/ja-JP.ts +++ b/web/src/i18n/locales/ja-JP.ts @@ -501,6 +501,8 @@ const jaJP = { agentOrchestrationDescription: 'メッセージ、グループメンバー、友だち、フィードバックなどの EBA イベント向けの処理ロジックです。', pipelineType: 'Pipeline', + kindBadgeAgent: 'Agent', + kindBadgePipeline: 'パイプライン', pipelineTypeDescription: '既存のノーコードメッセージ Pipeline を互換性のため保持します。メッセージイベントのみ処理できます。', allEvents: 'すべての EBA イベントに対応', diff --git a/web/src/i18n/locales/zh-Hans.ts b/web/src/i18n/locales/zh-Hans.ts index 7c9c303b3..c98eb977b 100644 --- a/web/src/i18n/locales/zh-Hans.ts +++ b/web/src/i18n/locales/zh-Hans.ts @@ -497,6 +497,8 @@ const zhHans = { agentOrchestrationDescription: '面向 EBA 事件的处理逻辑,可用于消息、群成员、好友、反馈等事件。', pipelineType: 'Pipeline', + kindBadgeAgent: 'Agent', + kindBadgePipeline: '流水线', pipelineTypeDescription: '保留现有无代码消息流水线,兼容旧配置,只能处理消息事件。', allEvents: '支持全部 EBA 事件',