From a73ca291533040ed0ff6b116e83dd76a7e147bf9 Mon Sep 17 00:00:00 2001 From: huangzhuang_3rd Date: Thu, 13 Aug 2026 00:47:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20V1=20-=20DAG=E7=BC=96=E6=8E=92/?= =?UTF-8?q?=E5=91=8A=E8=AD=A6=E7=B3=BB=E7=BB=9F/Agent=E5=BE=AA=E7=8E=AF/?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=BA=93RAG/Webhook=20+=20=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=AF=8C=E4=B8=8A=E4=B8=8B=E6=96=87=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/index.ts | 63 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts index 8199f05..21eb864 100644 --- a/frontend/src/api/index.ts +++ b/frontend/src/api/index.ts @@ -18,10 +18,20 @@ import type { WorkerCreate, WorkerTestResult, Review, + ReviewDetail, ReviewDecisionPayload, Artifact, DashboardStats, TaskStatus, + KnowledgeDoc, + KnowledgeDocCreate, + KnowledgeSearchResult, + Alert, + AlertUnreadCount, + Webhook, + WebhookCreate, + DagExecutePayload, + DagExecuteResult, } from '@/types'; // ============ Auth ============ @@ -145,10 +155,10 @@ export const workerApi = { export const reviewApi = { list: (params?: { status?: string; project_id?: number }) => - apiClient.get('/reviews', { params }).then((r) => r.data), + apiClient.get('/reviews', { params }).then((r) => r.data), get: (id: number) => - apiClient.get(`/reviews/${id}`).then((r) => r.data), + apiClient.get(`/reviews/${id}`).then((r) => r.data), decision: (id: number, data: ReviewDecisionPayload) => apiClient.post(`/reviews/${id}/decision`, data).then((r) => r.data), @@ -170,3 +180,52 @@ export const dashboardApi = { stats: () => apiClient.get('/dashboard').then((r) => r.data), }; + +// ============ Knowledge Base ============ + +export const knowledgeApi = { + list: (projectId?: number) => + apiClient.get('/knowledge', { params: { project_id: projectId } }).then((r) => r.data), + + create: (data: KnowledgeDocCreate) => + apiClient.post('/knowledge', data).then((r) => r.data), + + search: (q: string) => + apiClient.get('/knowledge/search', { params: { q } }).then((r) => r.data), + + delete: (id: number) => + apiClient.delete(`/knowledge/${id}`).then((r) => r.data), +}; + +// ============ Alerts ============ + +export const alertApi = { + list: (isRead?: boolean) => + apiClient.get('/alerts', { params: { is_read: isRead } }).then((r) => r.data), + + unreadCount: () => + apiClient.get('/alerts/unread-count').then((r) => r.data), + + markRead: (id: number) => + apiClient.put(`/alerts/${id}/read`).then((r) => r.data), +}; + +// ============ Webhooks ============ + +export const webhookApi = { + list: () => + apiClient.get('/webhooks').then((r) => r.data), + + create: (data: WebhookCreate) => + apiClient.post('/webhooks', data).then((r) => r.data), + + delete: (id: number) => + apiClient.delete(`/webhooks/${id}`).then((r) => r.data), +}; + +// ============ DAG Execution ============ + +export const dagApi = { + execute: (data: DagExecutePayload) => + apiClient.post('/dag/execute', data).then((r) => r.data), +};