"use client"; import type { ToolCallMessagePartProps } from "@assistant-ui/react"; import { AlertTriangleIcon, BrainIcon, CheckIcon, Loader2Icon, XIcon } from "lucide-react"; import { z } from "zod"; // ============================================================================ // Zod Schemas for update_memory tool // ============================================================================ const UpdateMemoryArgsSchema = z.object({ updated_memory: z.string(), }); const UpdateMemoryResultSchema = z.object({ status: z.enum(["saved", "error"]), message: z.string().nullish(), warning: z.string().nullish(), }); type UpdateMemoryArgs = z.infer; type UpdateMemoryResult = z.infer; // ============================================================================ // Update Memory Tool UI // ============================================================================ export const UpdateMemoryToolUI = ({ result, status, }: ToolCallMessagePartProps) => { const isRunning = status.type === "running" || status.type === "requires-action"; const isComplete = status.type === "complete"; const isError = result?.status === "error"; if (isRunning) { return (
Updating memory...
); } if (isError) { return (
Failed to update memory {result?.message &&

{result.message}

}
); } if (isComplete && result?.status === "saved") { return (
Memory updated
{result.warning && (

{result.warning}

)}
); } return null; }; // ============================================================================ // Exports // ============================================================================ export { UpdateMemoryArgsSchema, UpdateMemoryResultSchema, type UpdateMemoryArgs, type UpdateMemoryResult, };