/** * useAddMemory Hook * Hook for adding memories with loading/error state */ import { useState, useCallback } from 'react'; import { useMemoryStackClient } from './useMemoryStack'; import type { Message, CreateMemoryResponse } from '../types'; import { OfflineError } from '../errors'; interface AddMemoryState { isAdding: boolean; error: Error | null; lastResult: CreateMemoryResponse | null; isQueued: boolean; } interface UseAddMemoryResult extends AddMemoryState { /** * Add a memory * @param content - String or array of messages * @param options - Optional user ID, metadata, etc. */ add: ( content: string | Message[], options?: { userId?: string; metadata?: Record; agentId?: string; teamId?: string; sessionId?: string; conversationId?: string; } ) => Promise; /** Reset error and result state */ reset: () => void; } /** * Hook for adding memories with state management * * @example * ```tsx * function AddMemoryForm() { * const { add, isAdding, error, lastResult, isQueued } = useAddMemory(); * const [text, setText] = useState(''); * * const handleSubmit = async () => { * const result = await add(text); * if (result) { * setText(''); * Alert.alert('Success', `Created ${result.memories_created} memories`); * } * }; * * return ( * * *