From 717f2eab4f3179248c1ca1cc7224886ea2e0d125 Mon Sep 17 00:00:00 2001 From: iven Date: Sat, 11 Apr 2026 00:26:04 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=B8=85=E7=90=8640=E4=B8=AA=E6=AD=BB?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=96=87=E4=BB=B6=20(~9,639=E8=A1=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除无任何活跃渲染路径引用的组件: - Automation/ 全目录 (7文件, 2,598行) - WorkflowBuilder/ 全目录 (14文件, 1,539行) - SchedulerPanel + 依赖树 (5文件, 2,595行) - 独立死组件 (14文件, 2,907行) 含 SkillMarket, HandsPanel, ErrorNotification 等 - PipelineResultPreview 根目录副本 (534行, 活跃版在 pipeline/) --- .../components/Automation/ApprovalQueue.tsx | 352 ------- .../components/Automation/AutomationCard.tsx | 402 ------- .../Automation/AutomationFilters.tsx | 204 ---- .../components/Automation/AutomationPanel.tsx | 653 ------------ .../components/Automation/BatchActionBar.tsx | 216 ---- .../components/Automation/ExecutionResult.tsx | 395 ------- .../components/Automation/ScheduleEditor.tsx | 378 ------- desktop/src/components/Automation/index.ts | 26 - desktop/src/components/ChannelList.tsx | 132 --- desktop/src/components/ConnectionStatus.tsx | 286 ----- desktop/src/components/ErrorNotification.tsx | 270 ----- desktop/src/components/HandList.tsx | 131 --- desktop/src/components/HandTaskPanel.tsx | 326 ------ desktop/src/components/HandsPanel.tsx | 641 ------------ .../src/components/PipelineResultPreview.tsx | 534 ---------- desktop/src/components/PipelinesPanel.tsx | 567 ---------- .../src/components/SaaS/SubscriptionPanel.tsx | 173 --- desktop/src/components/SchedulerPanel.tsx | 990 ------------------ desktop/src/components/SimpleTopBar.tsx | 54 - .../src/components/SkillMarket/SkillCard.tsx | 211 ---- .../WorkflowBuilder/NodePalette.tsx | 92 -- .../WorkflowBuilder/PropertyPanel.tsx | 301 ------ .../WorkflowBuilder/WorkflowBuilder.tsx | 324 ------ .../WorkflowBuilder/WorkflowToolbar.tsx | 166 --- .../src/components/WorkflowBuilder/index.ts | 21 - .../WorkflowBuilder/nodes/ConditionNode.tsx | 81 -- .../WorkflowBuilder/nodes/ExportNode.tsx | 72 -- .../WorkflowBuilder/nodes/HandNode.tsx | 76 -- .../WorkflowBuilder/nodes/HttpNode.tsx | 81 -- .../WorkflowBuilder/nodes/InputNode.tsx | 54 - .../WorkflowBuilder/nodes/LlmNode.tsx | 70 -- .../nodes/OrchestrationNode.tsx | 81 -- .../WorkflowBuilder/nodes/ParallelNode.tsx | 55 - .../WorkflowBuilder/nodes/SkillNode.tsx | 65 -- desktop/src/components/WorkflowEditor.tsx | 479 --------- desktop/src/components/WorkflowHistory.tsx | 281 ----- desktop/src/components/WorkflowList.tsx | 510 --------- .../src/components/pipeline/IntentInput.tsx | 400 ------- desktop/src/components/ui/ErrorAlert.tsx | 345 ------ 39 files changed, 10495 deletions(-) delete mode 100644 desktop/src/components/Automation/ApprovalQueue.tsx delete mode 100644 desktop/src/components/Automation/AutomationCard.tsx delete mode 100644 desktop/src/components/Automation/AutomationFilters.tsx delete mode 100644 desktop/src/components/Automation/AutomationPanel.tsx delete mode 100644 desktop/src/components/Automation/BatchActionBar.tsx delete mode 100644 desktop/src/components/Automation/ExecutionResult.tsx delete mode 100644 desktop/src/components/Automation/ScheduleEditor.tsx delete mode 100644 desktop/src/components/Automation/index.ts delete mode 100644 desktop/src/components/ChannelList.tsx delete mode 100644 desktop/src/components/ConnectionStatus.tsx delete mode 100644 desktop/src/components/ErrorNotification.tsx delete mode 100644 desktop/src/components/HandList.tsx delete mode 100644 desktop/src/components/HandTaskPanel.tsx delete mode 100644 desktop/src/components/HandsPanel.tsx delete mode 100644 desktop/src/components/PipelineResultPreview.tsx delete mode 100644 desktop/src/components/PipelinesPanel.tsx delete mode 100644 desktop/src/components/SaaS/SubscriptionPanel.tsx delete mode 100644 desktop/src/components/SchedulerPanel.tsx delete mode 100644 desktop/src/components/SimpleTopBar.tsx delete mode 100644 desktop/src/components/SkillMarket/SkillCard.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/NodePalette.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/PropertyPanel.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/WorkflowBuilder.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/WorkflowToolbar.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/index.ts delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/ConditionNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/ExportNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/HandNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/HttpNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/InputNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/LlmNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/OrchestrationNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/ParallelNode.tsx delete mode 100644 desktop/src/components/WorkflowBuilder/nodes/SkillNode.tsx delete mode 100644 desktop/src/components/WorkflowEditor.tsx delete mode 100644 desktop/src/components/WorkflowHistory.tsx delete mode 100644 desktop/src/components/WorkflowList.tsx delete mode 100644 desktop/src/components/pipeline/IntentInput.tsx delete mode 100644 desktop/src/components/ui/ErrorAlert.tsx diff --git a/desktop/src/components/Automation/ApprovalQueue.tsx b/desktop/src/components/Automation/ApprovalQueue.tsx deleted file mode 100644 index 5b8c9bd..0000000 --- a/desktop/src/components/Automation/ApprovalQueue.tsx +++ /dev/null @@ -1,352 +0,0 @@ -/** - * ApprovalQueue - Approval Management Component - * - * Displays pending approvals for hand executions that require - * human approval, with approve/reject actions. - * - * @module components/Automation/ApprovalQueue - */ - -import { useState, useEffect, useCallback } from 'react'; -import { useHandStore } from '../../store/handStore'; -import type { Approval, ApprovalStatus } from '../../store/handStore'; -import { - Clock, - CheckCircle, - XCircle, - AlertTriangle, - RefreshCw, -} from 'lucide-react'; -import { useToast } from '../ui/Toast'; - -// === Status Config === - -const STATUS_CONFIG: Record = { - pending: { - label: '待处理', - className: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400', - icon: Clock, - }, - approved: { - label: '已批准', - className: 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400', - icon: CheckCircle, - }, - rejected: { - label: '已拒绝', - className: 'bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400', - icon: XCircle, - }, - expired: { - label: '已过期', - className: 'bg-gray-100 text-gray-500 dark:bg-gray-800 dark:text-gray-400', - icon: AlertTriangle, - }, -}; - -// === Component Props === - -interface ApprovalQueueProps { - showFilters?: boolean; - maxHeight?: string; - onApprove?: (approval: Approval) => void; - onReject?: (approval: Approval) => void; -} - -// === Approval Card Component === - -interface ApprovalCardProps { - approval: Approval; - onApprove: () => Promise; - onReject: (reason: string) => Promise; - isProcessing: boolean; -} - -function ApprovalCard({ approval, onApprove, onReject, isProcessing }: ApprovalCardProps) { - const [showRejectInput, setShowRejectInput] = useState(false); - const [rejectReason, setRejectReason] = useState(''); - const StatusIcon = STATUS_CONFIG[approval.status].icon; - - const handleReject = useCallback(async () => { - if (!rejectReason.trim()) { - setShowRejectInput(true); - return; - } - await onReject(rejectReason); - setShowRejectInput(false); - setRejectReason(''); - }, [rejectReason, onReject]); - - const timeAgo = useCallback((dateStr: string) => { - const date = new Date(dateStr); - const now = new Date(); - const diffMs = now.getTime() - date.getTime(); - const diffMins = Math.floor(diffMs / 60000); - const diffHours = Math.floor(diffMins / 60); - const diffDays = Math.floor(diffHours / 24); - - if (diffMins < 1) return '刚刚'; - if (diffMins < 60) return `${diffMins} 分钟前`; - if (diffHours < 24) return `${diffHours} 小时前`; - return `${diffDays} 天前`; - }, []); - - return ( -
- {/* Header */} -
-
- - - {STATUS_CONFIG[approval.status].label} - - - {timeAgo(approval.requestedAt)} - -
-
- - {/* Content */} -
-

- {approval.handName} -

- {approval.reason && ( -

{approval.reason}

- )} - {approval.action && ( -

- 操作: {approval.action} -

- )} -
- - {/* Params Preview */} - {approval.params && Object.keys(approval.params).length > 0 && ( -
-

参数:

-
-            {JSON.stringify(approval.params, null, 2)}
-          
-
- )} - - {/* Reject Input */} - {showRejectInput && ( -
-