baveshraam's picture
FIX: SurrealDB 2.0 migration syntax and Frontend/CORS link
f871fed
import apiClient from './client'
import {
NotebookChatSession,
NotebookChatSessionWithMessages,
CreateNotebookChatSessionRequest,
UpdateNotebookChatSessionRequest,
SendNotebookChatMessageRequest,
NotebookChatMessage,
BuildContextRequest,
BuildContextResponse,
} from '@/lib/types/api'
export const chatApi = {
// Session management
listSessions: async (notebookId: string) => {
const response = await apiClient.get<NotebookChatSession[]>(
`/chat/sessions`,
{ params: { notebook_id: notebookId } }
)
return response.data
},
createSession: async (data: CreateNotebookChatSessionRequest) => {
const response = await apiClient.post<NotebookChatSession>(
`/chat/sessions`,
data
)
return response.data
},
getSession: async (sessionId: string) => {
const response = await apiClient.get<NotebookChatSessionWithMessages>(
`/chat/sessions/${sessionId}`
)
return response.data
},
updateSession: async (sessionId: string, data: UpdateNotebookChatSessionRequest) => {
const response = await apiClient.put<NotebookChatSession>(
`/chat/sessions/${sessionId}`,
data
)
return response.data
},
deleteSession: async (sessionId: string) => {
await apiClient.delete(`/chat/sessions/${sessionId}`)
},
// Messaging (synchronous, no streaming)
sendMessage: async (data: SendNotebookChatMessageRequest) => {
const response = await apiClient.post<{
session_id: string
messages: NotebookChatMessage[]
}>(
`/chat/execute`,
data
)
return response.data
},
buildContext: async (data: BuildContextRequest) => {
const response = await apiClient.post<BuildContextResponse>(
`/chat/context`,
data
)
return response.data
},
}
export default chatApi