diff --git a/frontend/src/pages/AuditTasks.tsx b/frontend/src/pages/AuditTasks.tsx
index 7675cf8..ef1ecef 100644
--- a/frontend/src/pages/AuditTasks.tsx
+++ b/frontend/src/pages/AuditTasks.tsx
@@ -24,16 +24,20 @@ import {
Shield,
Terminal,
Bot,
- Zap
+ Zap,
+ Download
} from "lucide-react";
import { api } from "@/shared/config/database";
+import { apiClient } from "@/shared/api/serverClient";
import type { AuditTask } from "@/shared/types";
import { Link, useNavigate } from "react-router-dom";
import { toast } from "sonner";
import CreateTaskDialog from "@/components/audit/CreateTaskDialog";
import TerminalProgressDialog from "@/components/audit/TerminalProgressDialog";
+import ExportReportDialog from "@/components/reports/ExportReportDialog";
import { calculateTaskProgress } from "@/shared/utils/utils";
-import { getAgentTasks, cancelAgentTask, type AgentTask } from "@/shared/api/agentTasks";
+import { getAgentTasks, cancelAgentTask, getAgentFindings, type AgentTask, type AgentFinding } from "@/shared/api/agentTasks";
+import ReportExportDialog from "@/pages/AgentAudit/components/ReportExportDialog";
// Zombie task detection config
const ZOMBIE_TIMEOUT = 180000; // 3 minutes without progress is potentially stuck
@@ -59,6 +63,14 @@ export default function AuditTasks() {
const [agentTasks, setAgentTasks] = useState
([]);
const [agentLoading, setAgentLoading] = useState(true);
const [cancellingAgentTaskId, setCancellingAgentTaskId] = useState(null);
+ const [exportingTaskId, setExportingTaskId] = useState(null);
+ const [showExportDialog, setShowExportDialog] = useState(false);
+ const [exportTask, setExportTask] = useState(null);
+ const [exportIssues, setExportIssues] = useState([]);
+ // Agent 任务导出对话框状态
+ const [showAgentExportDialog, setShowAgentExportDialog] = useState(false);
+ const [exportAgentTask, setExportAgentTask] = useState(null);
+ const [exportAgentFindings, setExportAgentFindings] = useState([]);
// Zombie task detection: track progress and time for each task
const taskProgressRef = useRef