diff options
| author | soryu <soryu@soryu.co> | 2026-01-02 22:00:45 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-02 22:00:45 +0000 |
| commit | 2fab6904260099d9a011734763e62ebba91cf448 (patch) | |
| tree | 5890486b77f209348761ae7dc99a64e974dbcb7c /makima/frontend/src/components | |
| parent | e8ebf8f01101905bd9aec84aec94fd8854f8a030 (diff) | |
| download | soryu-2fab6904260099d9a011734763e62ebba91cf448.tar.gz soryu-2fab6904260099d9a011734763e62ebba91cf448.zip | |
Update LLM to keep context
Diffstat (limited to 'makima/frontend/src/components')
| -rw-r--r-- | makima/frontend/src/components/files/CliInput.tsx | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/makima/frontend/src/components/files/CliInput.tsx b/makima/frontend/src/components/files/CliInput.tsx index 0ac840a..c1e6b6d 100644 --- a/makima/frontend/src/components/files/CliInput.tsx +++ b/makima/frontend/src/components/files/CliInput.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useRef, useEffect } from "react"; -import { chatWithFile, type BodyElement, type LlmModel } from "../../lib/api"; +import { chatWithFile, type BodyElement, type LlmModel, type ChatMessage } from "../../lib/api"; import { SimpleMarkdown } from "../SimpleMarkdown"; interface CliInputProps { @@ -26,6 +26,8 @@ export function CliInput({ fileId, onUpdate }: CliInputProps) { const [messages, setMessages] = useState<Message[]>([]); const [expanded, setExpanded] = useState(false); const [model, setModel] = useState<LlmModel>("claude-opus"); + // Track conversation history for context continuity + const [conversationHistory, setConversationHistory] = useState<ChatMessage[]>([]); const inputRef = useRef<HTMLInputElement>(null); const messagesRef = useRef<HTMLDivElement>(null); @@ -55,7 +57,8 @@ export function CliInput({ fileId, onUpdate }: CliInputProps) { setLoading(true); try { - const response = await chatWithFile(fileId, userMessage, model); + // Send request with conversation history for context + const response = await chatWithFile(fileId, userMessage, model, conversationHistory); // Add assistant response const assistantMsgId = (Date.now() + 1).toString(); @@ -73,6 +76,13 @@ export function CliInput({ fileId, onUpdate }: CliInputProps) { }, ]); + // Update conversation history for next request + setConversationHistory((prev) => [ + ...prev, + { role: "user", content: userMessage }, + { role: "assistant", content: response.response }, + ]); + // Update parent with new body/summary onUpdate(response.updatedBody, response.updatedSummary); } catch (err) { @@ -90,11 +100,12 @@ export function CliInput({ fileId, onUpdate }: CliInputProps) { inputRef.current?.focus(); } }, - [input, loading, fileId, model, onUpdate] + [input, loading, fileId, model, onUpdate, conversationHistory] ); const clearMessages = useCallback(() => { setMessages([]); + setConversationHistory([]); }, []); return ( |
