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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user