diff --git a/frontend/src/api/aiSessions.ts b/frontend/src/api/aiSessions.ts index 59d82e24..cedc7211 100644 --- a/frontend/src/api/aiSessions.ts +++ b/frontend/src/api/aiSessions.ts @@ -18,6 +18,7 @@ import type { ChatSessionCreateResponse, ChatMessageRequest, ChatMessageResponse, + TriageMeta, } from '@/types/ai-session' export const aiSessionsApi = { @@ -241,6 +242,26 @@ export const aiSessionsApi = { ) return response.data }, + + async updateTriage(sessionId: string, fields: Partial): Promise { + const response = await apiClient.patch( + `/ai-sessions/${sessionId}/triage`, + fields + ) + return response.data + }, + + async getHandoffDraft(sessionId: string): Promise { + const response = await apiClient.post( + `/ai-sessions/${sessionId}/handoff-draft`, + {}, + { headers: { Accept: 'text/event-stream' }, responseType: 'text' } + ) + // Response is SSE format: "data: {...}\n\n" + const raw = typeof response.data === 'string' ? response.data : '' + const dataLine = raw.split('\n').find(l => l.startsWith('data: ')) + return dataLine ? dataLine.slice(6) : raw + }, } export default aiSessionsApi diff --git a/frontend/src/types/ai-session.ts b/frontend/src/types/ai-session.ts index 751d4345..48eba6e3 100644 --- a/frontend/src/types/ai-session.ts +++ b/frontend/src/types/ai-session.ts @@ -198,6 +198,11 @@ export interface AISessionDetail extends AISessionSummary { pending_task_lane: { questions: QuestionItem[]; actions: ActionItem[] } | null is_branching: boolean active_branch_id: string | null + client_name: string | null + asset_name: string | null + issue_category: string | null + triage_hypothesis: string | null + evidence_items: EvidenceItem[] | null } export interface AISessionSearchResult { @@ -238,6 +243,28 @@ export interface ActionItem { export interface QuestionItem { text: string context?: string + options?: string[] | null +} + +export interface EvidenceItem { + text: string + status: 'confirmed' | 'ruled_out' | 'pending' +} + +export interface TriageMeta { + client_name: string | null + asset_name: string | null + issue_category: string | null + triage_hypothesis: string | null + evidence_items: EvidenceItem[] +} + +export interface TriageUpdate { + client_name?: string | null + asset_name?: string | null + issue_category?: string | null + triage_hypothesis?: string | null + evidence_items?: EvidenceItem[] | null } export interface ChatMessageResponse { @@ -246,6 +273,7 @@ export interface ChatMessageResponse { fork?: ForkMetadata | null actions?: ActionItem[] | null questions?: QuestionItem[] | null + triage_update?: TriageUpdate | null } export interface SimilarSession {