/** * Chat API client * Handles LLM chat interactions via /api/llm/chat */ import { apiPost } from "./client"; export interface ChatMessage { role: "system" | "user" | "assistant"; content: string; } export interface ChatRequest { model: string; messages: ChatMessage[]; stream?: boolean; temperature?: number; maxTokens?: number; systemPrompt?: string; } export interface ChatResponse { model: string; message: { role: "assistant"; content: string; }; done: boolean; totalDuration?: number; promptEvalCount?: number; evalCount?: number; } /** * Send a chat message to the LLM */ export async function sendChatMessage(request: ChatRequest): Promise { return apiPost("/api/llm/chat", request); } /** * Stream a chat message from the LLM (not implemented yet) * TODO: Implement streaming support */ export function streamChatMessage( request: ChatRequest, onChunk: (chunk: string) => void, onComplete: () => void, onError: (error: Error) => void ): void { // Streaming implementation would go here void request; void onChunk; void onComplete; void onError; throw new Error("Streaming not implemented yet"); }