From eb0eb26f4cefa4880c895ff017f312e8674f9b73 Mon Sep 17 00:00:00 2001 From: karpathy Date: Sat, 22 Nov 2025 14:27:53 -0800 Subject: v0 --- frontend/src/api.js | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 frontend/src/api.js (limited to 'frontend/src/api.js') diff --git a/frontend/src/api.js b/frontend/src/api.js new file mode 100644 index 0000000..479f0ef --- /dev/null +++ b/frontend/src/api.js @@ -0,0 +1,68 @@ +/** + * API client for the LLM Council backend. + */ + +const API_BASE = 'http://localhost:8001'; + +export const api = { + /** + * List all conversations. + */ + async listConversations() { + const response = await fetch(`${API_BASE}/api/conversations`); + if (!response.ok) { + throw new Error('Failed to list conversations'); + } + return response.json(); + }, + + /** + * Create a new conversation. + */ + async createConversation() { + const response = await fetch(`${API_BASE}/api/conversations`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({}), + }); + if (!response.ok) { + throw new Error('Failed to create conversation'); + } + return response.json(); + }, + + /** + * Get a specific conversation. + */ + async getConversation(conversationId) { + const response = await fetch( + `${API_BASE}/api/conversations/${conversationId}` + ); + if (!response.ok) { + throw new Error('Failed to get conversation'); + } + return response.json(); + }, + + /** + * Send a message in a conversation. + */ + async sendMessage(conversationId, content) { + const response = await fetch( + `${API_BASE}/api/conversations/${conversationId}/message`, + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ content }), + } + ); + if (!response.ok) { + throw new Error('Failed to send message'); + } + return response.json(); + }, +}; -- cgit v1.2.3