feat: add cockpit frontend types and API methods (Phase 3)

- TriageMeta, EvidenceItem, TriageUpdate interfaces
- QuestionItem.options field for quick-reply buttons
- triage_update on ChatMessageResponse
- Triage fields on AISessionDetail for session resume
- updateTriage() and getHandoffDraft() API methods

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-04-01 22:41:49 +00:00
parent 92cc62bcbd
commit 036198b224
2 changed files with 49 additions and 0 deletions

View File

@@ -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<TriageMeta>): Promise<TriageMeta> {
const response = await apiClient.patch<TriageMeta>(
`/ai-sessions/${sessionId}/triage`,
fields
)
return response.data
},
async getHandoffDraft(sessionId: string): Promise<string> {
const response = await apiClient.post<string>(
`/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