@veroai/chat 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +579 -0
- package/dist/chunk-JI6KXOLF.js +920 -0
- package/dist/chunk-JI6KXOLF.js.map +1 -0
- package/dist/client-C63XKtNw.d.ts +502 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.d.ts +187 -0
- package/dist/react/index.js +371 -0
- package/dist/react/index.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/react/provider.tsx","../../src/react/hooks/useConversation.ts","../../src/react/hooks/usePresence.ts"],"names":["useState","useEffect","useCallback"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * VeroAI Chat React Provider\n *\n * Provides ChatClient context to React components\n */\n\nimport React, { createContext, useContext, useEffect, useState, useCallback, useRef } from 'react';\nimport { ChatClient } from '../client';\nimport type { ChatClientConfig, Conversation, Message, User, PresenceStatus } from '../types';\n\n// ============================================================================\n// Context Types\n// ============================================================================\n\nexport interface ChatContextValue {\n /** The ChatClient instance */\n client: ChatClient | null;\n /** Whether the WebSocket is connected */\n isConnected: boolean;\n /** Current user profile */\n currentUser: User | null;\n /** List of conversations */\n conversations: Conversation[];\n /** Loading state for conversations */\n isLoadingConversations: boolean;\n /** Refresh conversations from server */\n refreshConversations: () => Promise<void>;\n /** Connect to WebSocket */\n connect: () => Promise<void>;\n /** Disconnect from WebSocket */\n disconnect: () => void;\n /** Update current user's status */\n updateStatus: (status: PresenceStatus, statusMessage?: string) => Promise<void>;\n}\n\nconst ChatContext = createContext<ChatContextValue | null>(null);\n\n// ============================================================================\n// Provider Props\n// ============================================================================\n\nexport interface ChatProviderProps {\n children: React.ReactNode;\n /** ChatClient configuration */\n config: ChatClientConfig;\n /** Auto-fetch conversations on mount */\n autoFetchConversations?: boolean;\n /** Auto-fetch current user on mount */\n autoFetchCurrentUser?: boolean;\n}\n\n// ============================================================================\n// Provider Component\n// ============================================================================\n\n/**\n * ChatProvider - Provides chat functionality to React components\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ChatProvider\n * config={{\n * apiUrl: 'https://api.veroai.dev',\n * wsUrl: 'wss://ws.veroai.dev',\n * token: authToken,\n * }}\n * >\n * <ChatApp />\n * </ChatProvider>\n * );\n * }\n * ```\n */\nexport function ChatProvider({\n children,\n config,\n autoFetchConversations = true,\n autoFetchCurrentUser = true,\n}: ChatProviderProps) {\n const [client, setClient] = useState<ChatClient | null>(null);\n const [isConnected, setIsConnected] = useState(false);\n const [currentUser, setCurrentUser] = useState<User | null>(null);\n const [conversations, setConversations] = useState<Conversation[]>([]);\n const [isLoadingConversations, setIsLoadingConversations] = useState(false);\n const clientRef = useRef<ChatClient | null>(null);\n\n // Initialize client\n useEffect(() => {\n const chatClient = new ChatClient({\n ...config,\n autoConnect: false, // We'll connect manually to handle state\n });\n\n clientRef.current = chatClient;\n setClient(chatClient);\n\n // Set up event listeners\n chatClient.on('connected', () => setIsConnected(true));\n chatClient.on('disconnected', () => setIsConnected(false));\n\n // Handle real-time conversation updates\n chatClient.on('conversation:created', (conv) => {\n setConversations((prev) => [conv, ...prev]);\n });\n\n chatClient.on('conversation:updated', (conv) => {\n setConversations((prev) =>\n prev.map((c) => (c.id === conv.id ? conv : c))\n );\n });\n\n // Handle new messages - update conversation's lastMessageAt\n chatClient.on('message:new', ({ conversationId }) => {\n setConversations((prev) =>\n prev.map((c) =>\n c.id === conversationId\n ? { ...c, lastMessageAt: new Date().toISOString() }\n : c\n )\n );\n });\n\n // Connect if wsUrl provided\n if (config.wsUrl && config.autoConnect !== false) {\n chatClient.connect().catch(console.error);\n }\n\n return () => {\n chatClient.disconnect();\n chatClient.removeAllListeners();\n };\n }, [config.apiUrl, config.wsUrl, config.token]);\n\n // Fetch current user\n useEffect(() => {\n if (!client || !autoFetchCurrentUser) return;\n\n client.getCurrentUser()\n .then(setCurrentUser)\n .catch(console.error);\n }, [client, autoFetchCurrentUser]);\n\n // Fetch conversations\n const refreshConversations = useCallback(async () => {\n if (!client) return;\n\n setIsLoadingConversations(true);\n try {\n const convs = await client.listConversations();\n setConversations(convs);\n } catch (error) {\n console.error('[ChatProvider] Failed to fetch conversations:', error);\n } finally {\n setIsLoadingConversations(false);\n }\n }, [client]);\n\n useEffect(() => {\n if (autoFetchConversations && client) {\n refreshConversations();\n }\n }, [autoFetchConversations, client, refreshConversations]);\n\n // Connect function\n const connect = useCallback(async () => {\n if (client) {\n await client.connect();\n }\n }, [client]);\n\n // Disconnect function\n const disconnect = useCallback(() => {\n client?.disconnect();\n }, [client]);\n\n // Update status\n const updateStatus = useCallback(\n async (status: PresenceStatus, statusMessage?: string) => {\n if (client) {\n await client.updateStatus(status, statusMessage);\n setCurrentUser((prev) =>\n prev ? { ...prev, status, statusMessage } : prev\n );\n }\n },\n [client]\n );\n\n const value: ChatContextValue = {\n client,\n isConnected,\n currentUser,\n conversations,\n isLoadingConversations,\n refreshConversations,\n connect,\n disconnect,\n updateStatus,\n };\n\n return <ChatContext.Provider value={value}>{children}</ChatContext.Provider>;\n}\n\n// ============================================================================\n// Hook\n// ============================================================================\n\n/**\n * useChat - Access chat context\n *\n * @example\n * ```tsx\n * function ChatList() {\n * const { conversations, isConnected } = useChat();\n * return <div>{conversations.map(c => <div key={c.id}>{c.name}</div>)}</div>;\n * }\n * ```\n */\nexport function useChat(): ChatContextValue {\n const context = useContext(ChatContext);\n if (!context) {\n throw new Error('useChat must be used within a ChatProvider');\n }\n return context;\n}\n\n/**\n * useChatClient - Access the ChatClient instance directly\n */\nexport function useChatClient(): ChatClient | null {\n const { client } = useChat();\n return client;\n}\n","/**\n * useConversation Hook\n *\n * Manage a single conversation with real-time updates\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { useChat } from '../provider';\nimport type { Conversation, Message, SendMessageParams, PaginatedMessages, TypingEvent } from '../../types';\n\nexport interface UseConversationOptions {\n /** Auto-fetch messages on mount */\n autoFetchMessages?: boolean;\n /** Number of messages to fetch initially */\n initialMessageLimit?: number;\n /** Auto-subscribe to real-time updates */\n autoSubscribe?: boolean;\n}\n\nexport interface UseConversationReturn {\n /** The conversation object */\n conversation: Conversation | null;\n /** Messages in the conversation */\n messages: Message[];\n /** Whether messages are loading */\n isLoading: boolean;\n /** Whether more messages are available */\n hasMore: boolean;\n /** Users currently typing */\n typingUsers: string[];\n /** Send a message */\n sendMessage: (params: SendMessageParams) => Promise<Message>;\n /** Send a text message (convenience) */\n send: (content: string) => Promise<Message>;\n /** Load more (older) messages */\n loadMore: () => Promise<void>;\n /** Refresh messages from server */\n refresh: () => Promise<void>;\n /** Mark conversation as read */\n markAsRead: () => Promise<void>;\n /** Start typing indicator */\n startTyping: () => void;\n /** Stop typing indicator */\n stopTyping: () => void;\n /** Error if any */\n error: Error | null;\n}\n\n/**\n * useConversation - Manage a single conversation\n *\n * @example\n * ```tsx\n * function ChatRoom({ conversationId }) {\n * const {\n * messages,\n * send,\n * isLoading,\n * typingUsers,\n * } = useConversation(conversationId);\n *\n * return (\n * <div>\n * {messages.map(m => <Message key={m.id} message={m} />)}\n * {typingUsers.length > 0 && <div>Someone is typing...</div>}\n * <input onKeyDown={(e) => e.key === 'Enter' && send(e.target.value)} />\n * </div>\n * );\n * }\n * ```\n */\nexport function useConversation(\n conversationId: string | undefined,\n options: UseConversationOptions = {}\n): UseConversationReturn {\n const {\n autoFetchMessages = true,\n initialMessageLimit = 50,\n autoSubscribe = true,\n } = options;\n\n const { client, conversations } = useChat();\n\n const [conversation, setConversation] = useState<Conversation | null>(null);\n const [messages, setMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [hasMore, setHasMore] = useState(true);\n const [typingUsers, setTypingUsers] = useState<string[]>([]);\n const [error, setError] = useState<Error | null>(null);\n\n // Get conversation from context or fetch\n useEffect(() => {\n if (!conversationId) {\n setConversation(null);\n setMessages([]);\n return;\n }\n\n // Try to find in existing conversations\n const existing = conversations.find((c) => c.id === conversationId);\n if (existing) {\n setConversation(existing);\n } else if (client) {\n // Fetch from server\n client.getConversation(conversationId)\n .then(setConversation)\n .catch((err) => {\n setError(err);\n console.error('[useConversation] Failed to fetch conversation:', err);\n });\n }\n }, [conversationId, conversations, client]);\n\n // Fetch messages\n const fetchMessages = useCallback(async (before?: string) => {\n if (!client || !conversationId) return;\n\n setIsLoading(true);\n setError(null);\n\n try {\n const result = await client.getMessages(conversationId, {\n limit: initialMessageLimit,\n before,\n });\n\n if (before) {\n // Append older messages\n setMessages((prev) => [...prev, ...result.messages]);\n } else {\n // Initial load\n setMessages(result.messages);\n }\n\n setHasMore(result.hasMore);\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n console.error('[useConversation] Failed to fetch messages:', err);\n } finally {\n setIsLoading(false);\n }\n }, [client, conversationId, initialMessageLimit]);\n\n // Auto-fetch messages\n useEffect(() => {\n if (autoFetchMessages && conversationId && client) {\n fetchMessages();\n }\n }, [autoFetchMessages, conversationId, client, fetchMessages]);\n\n // Subscribe to real-time updates\n useEffect(() => {\n if (!client || !conversationId || !autoSubscribe) return;\n\n client.subscribeToConversation(conversationId);\n\n // Handle new messages\n const handleNewMessage = ({ message, conversationId: convId }: { message: Message; conversationId: string }) => {\n if (convId === conversationId) {\n setMessages((prev) => [message, ...prev]);\n }\n };\n\n // Handle message updates\n const handleMessageUpdated = (message: Message) => {\n if (message.conversationId === conversationId) {\n setMessages((prev) =>\n prev.map((m) => (m.id === message.id ? message : m))\n );\n }\n };\n\n // Handle message deletion\n const handleMessageDeleted = (messageId: string, convId: string) => {\n if (convId === conversationId) {\n setMessages((prev) => prev.filter((m) => m.id !== messageId));\n }\n };\n\n // Handle typing indicators\n const handleTypingStart = ({ conversationId: convId, userId }: TypingEvent) => {\n if (convId === conversationId) {\n setTypingUsers((prev) =>\n prev.includes(userId) ? prev : [...prev, userId]\n );\n }\n };\n\n const handleTypingStop = ({ conversationId: convId, userId }: TypingEvent) => {\n if (convId === conversationId) {\n setTypingUsers((prev) => prev.filter((id) => id !== userId));\n }\n };\n\n client.on('message:new', handleNewMessage);\n client.on('message:updated', handleMessageUpdated);\n client.on('message:deleted', handleMessageDeleted);\n client.on('typing:start', handleTypingStart);\n client.on('typing:stop', handleTypingStop);\n\n return () => {\n client.unsubscribeFromConversation(conversationId);\n client.off('message:new', handleNewMessage);\n client.off('message:updated', handleMessageUpdated);\n client.off('message:deleted', handleMessageDeleted);\n client.off('typing:start', handleTypingStart);\n client.off('typing:stop', handleTypingStop);\n };\n }, [client, conversationId, autoSubscribe]);\n\n // Send message\n const sendMessage = useCallback(\n async (params: SendMessageParams): Promise<Message> => {\n if (!client || !conversationId) {\n throw new Error('No conversation selected');\n }\n return client.sendMessage(conversationId, params);\n },\n [client, conversationId]\n );\n\n // Send text message\n const send = useCallback(\n async (content: string): Promise<Message> => {\n return sendMessage({ content });\n },\n [sendMessage]\n );\n\n // Load more messages\n const loadMore = useCallback(async () => {\n if (!hasMore || isLoading || messages.length === 0) return;\n\n const oldestMessage = messages[messages.length - 1];\n await fetchMessages(oldestMessage.createdAt);\n }, [hasMore, isLoading, messages, fetchMessages]);\n\n // Refresh messages\n const refresh = useCallback(async () => {\n setMessages([]);\n setHasMore(true);\n await fetchMessages();\n }, [fetchMessages]);\n\n // Mark as read\n const markAsRead = useCallback(async () => {\n if (!client || !conversationId) return;\n await client.markConversationRead(conversationId);\n }, [client, conversationId]);\n\n // Typing indicators\n const startTyping = useCallback(() => {\n if (conversationId) {\n client?.sendTypingStart(conversationId);\n }\n }, [client, conversationId]);\n\n const stopTyping = useCallback(() => {\n if (conversationId) {\n client?.sendTypingStop(conversationId);\n }\n }, [client, conversationId]);\n\n return {\n conversation,\n messages,\n isLoading,\n hasMore,\n typingUsers,\n sendMessage,\n send,\n loadMore,\n refresh,\n markAsRead,\n startTyping,\n stopTyping,\n error,\n };\n}\n","/**\n * usePresence Hook\n *\n * Track and manage user presence/online status\n */\n\nimport { useState, useEffect, useCallback } from 'react';\nimport { useChat } from '../provider';\nimport type { User, PresenceStatus, PresenceEvent } from '../../types';\n\nexport interface UsePresenceReturn {\n /** Online users */\n onlineUsers: User[];\n /** Whether loading online users */\n isLoading: boolean;\n /** Get presence status for a specific user */\n getUserStatus: (userId: string) => PresenceStatus;\n /** Refresh online users list */\n refresh: () => Promise<void>;\n /** Error if any */\n error: Error | null;\n}\n\n/**\n * usePresence - Track online users and presence\n *\n * @example\n * ```tsx\n * function OnlineUsers() {\n * const { onlineUsers, getUserStatus } = usePresence();\n *\n * return (\n * <div>\n * {onlineUsers.map(user => (\n * <div key={user.id}>\n * {user.firstName} - {getUserStatus(user.id)}\n * </div>\n * ))}\n * </div>\n * );\n * }\n * ```\n */\nexport function usePresence(): UsePresenceReturn {\n const { client } = useChat();\n\n const [onlineUsers, setOnlineUsers] = useState<User[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [presenceMap, setPresenceMap] = useState<Map<string, PresenceStatus>>(new Map());\n\n // Fetch online users\n const refresh = useCallback(async () => {\n if (!client) return;\n\n setIsLoading(true);\n setError(null);\n\n try {\n const users = await client.getOnlineUsers();\n setOnlineUsers(users);\n\n // Update presence map\n const newMap = new Map<string, PresenceStatus>();\n users.forEach((user) => {\n if (user.status) {\n newMap.set(user.id, user.status);\n }\n });\n setPresenceMap(newMap);\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n console.error('[usePresence] Failed to fetch online users:', err);\n } finally {\n setIsLoading(false);\n }\n }, [client]);\n\n // Initial fetch\n useEffect(() => {\n if (client) {\n refresh();\n }\n }, [client, refresh]);\n\n // Listen for presence updates\n useEffect(() => {\n if (!client) return;\n\n const handlePresenceUpdate = ({ userId, status }: PresenceEvent) => {\n setPresenceMap((prev) => {\n const newMap = new Map(prev);\n newMap.set(userId, status);\n return newMap;\n });\n\n // Update online users list\n if (status === 'offline') {\n setOnlineUsers((prev) => prev.filter((u) => u.id !== userId));\n } else {\n // If user came online, refresh to get their info\n setOnlineUsers((prev) => {\n const exists = prev.some((u) => u.id === userId);\n if (!exists) {\n // Trigger a refresh to get the new online user\n refresh();\n }\n return prev.map((u) =>\n u.id === userId ? { ...u, status } : u\n );\n });\n }\n };\n\n client.on('presence:updated', handlePresenceUpdate);\n\n return () => {\n client.off('presence:updated', handlePresenceUpdate);\n };\n }, [client, refresh]);\n\n // Get status for a specific user\n const getUserStatus = useCallback(\n (userId: string): PresenceStatus => {\n return presenceMap.get(userId) || 'offline';\n },\n [presenceMap]\n );\n\n return {\n onlineUsers,\n isLoading,\n getUserStatus,\n refresh,\n error,\n };\n}\n\n/**\n * useUserPresence - Track presence for a specific user\n */\nexport function useUserPresence(userId: string | undefined): {\n status: PresenceStatus;\n isOnline: boolean;\n} {\n const { client } = useChat();\n const [status, setStatus] = useState<PresenceStatus>('offline');\n\n useEffect(() => {\n if (!client || !userId) return;\n\n // Fetch initial status\n client.getUser(userId)\n .then((user) => {\n setStatus(user.status || 'offline');\n })\n .catch(console.error);\n\n // Listen for updates\n const handlePresenceUpdate = ({ userId: eventUserId, status: newStatus }: PresenceEvent) => {\n if (eventUserId === userId) {\n setStatus(newStatus);\n }\n };\n\n client.on('presence:updated', handlePresenceUpdate);\n\n return () => {\n client.off('presence:updated', handlePresenceUpdate);\n };\n }, [client, userId]);\n\n return {\n status,\n isOnline: status !== 'offline',\n };\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@veroai/chat",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "VeroAI Chat SDK - Real-time messaging with AI agents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./react": {
|
|
15
|
+
"import": "./dist/react/index.js",
|
|
16
|
+
"types": "./dist/react/index.d.ts"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup",
|
|
25
|
+
"dev": "tsup --watch",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"clean": "rm -rf dist"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"eventemitter3": "^5.0.1"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"react": ">=17.0.0"
|
|
34
|
+
},
|
|
35
|
+
"peerDependenciesMeta": {
|
|
36
|
+
"react": {
|
|
37
|
+
"optional": true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/react": "^18.3.0",
|
|
42
|
+
"react": "^18.3.1",
|
|
43
|
+
"tsup": "^8.0.0",
|
|
44
|
+
"typescript": "^5.8.0"
|
|
45
|
+
},
|
|
46
|
+
"keywords": [
|
|
47
|
+
"veroai",
|
|
48
|
+
"chat",
|
|
49
|
+
"messaging",
|
|
50
|
+
"real-time",
|
|
51
|
+
"websocket",
|
|
52
|
+
"ai",
|
|
53
|
+
"agents"
|
|
54
|
+
],
|
|
55
|
+
"homepage": "https://veroai.dev",
|
|
56
|
+
"license": "MIT",
|
|
57
|
+
"repository": {
|
|
58
|
+
"type": "git",
|
|
59
|
+
"url": "https://github.com/veroai/chat-sdk.git",
|
|
60
|
+
"directory": "packages/chat"
|
|
61
|
+
}
|
|
62
|
+
}
|