Fix storing code results on server and rendering them on web app

- Fix code context data type for validation on server. This would
  prevent the chat message from being written to history
- Handle null code results on web app
This commit is contained in:
Debanjum
2025-06-09 23:42:56 -07:00
parent b1a6e53d77
commit 64886cd0dd
3 changed files with 5 additions and 5 deletions

View File

@@ -205,7 +205,7 @@ export function renderCodeGenImageInline(message: string, codeContext: CodeConte
if (!codeContext) return message; if (!codeContext) return message;
Object.values(codeContext).forEach((contextData) => { Object.values(codeContext).forEach((contextData) => {
contextData.results.output_files?.forEach((file) => { contextData.results?.output_files?.forEach((file) => {
const regex = new RegExp(`!?\\[.*?\\]\\(.*${file.filename}\\)`, "g"); const regex = new RegExp(`!?\\[.*?\\]\\(.*${file.filename}\\)`, "g");
if (file.filename.match(/\.(png|jpg|jpeg)$/i)) { if (file.filename.match(/\.(png|jpg|jpeg)$/i)) {
const replacement = `![${file.filename}](data:image/${file.filename.split(".").pop()};base64,${file.b64_data})`; const replacement = `![${file.filename}](data:image/${file.filename.split(".").pop()};base64,${file.b64_data})`;

View File

@@ -129,7 +129,7 @@ export interface CodeContextData {
output_files: CodeContextFile[]; output_files: CodeContextFile[];
std_out: string; std_out: string;
std_err: string; std_err: string;
code_runtime: number; code_runtime?: number;
}; };
} }
@@ -454,7 +454,7 @@ const ChatMessage = forwardRef<HTMLDivElement, ChatMessageProps>((props, ref) =>
// Add code context files to the message // Add code context files to the message
if (props.chatMessage.codeContext) { if (props.chatMessage.codeContext) {
Object.entries(props.chatMessage.codeContext).forEach(([key, value]) => { Object.entries(props.chatMessage.codeContext).forEach(([key, value]) => {
value.results.output_files?.forEach((file) => { value.results?.output_files?.forEach((file) => {
if (file.filename.endsWith(".png") || file.filename.endsWith(".jpg")) { if (file.filename.endsWith(".png") || file.filename.endsWith(".jpg")) {
// Don't add the image again if it's already in the message! // Don't add the image again if it's already in the message!
if (!message.includes(`![${file.filename}](`)) { if (!message.includes(`![${file.filename}](`)) {

View File

@@ -36,12 +36,12 @@ class CodeContextResult(PydanticBaseModel):
output_files: List[CodeContextFile] output_files: List[CodeContextFile]
std_out: str std_out: str
std_err: str std_err: str
code_runtime: int code_runtime: Optional[int] = None
class CodeContextData(PydanticBaseModel): class CodeContextData(PydanticBaseModel):
code: str code: str
result: Optional[CodeContextResult] = None results: Optional[CodeContextResult] = None
class WebPage(PydanticBaseModel): class WebPage(PydanticBaseModel):