/** * @geepers/chat — Full-featured chat UI package for multi-provider LLM APIs * * Primary API: * import ChatUI from '@geepers/chat'; * const chat = new ChatUI('#app', { gateway: '...', apiKey: 'sk_...', provider: 'anthropic' }); * * Headless (no DOM): * import { ChatCore } from '@geepers/chat'; * const core = new ChatCore({ gateway: '...', apiKey: 'sk_...' }); * core.on('stream-chunk', (e) => console.log(e.accumulated)); * await core.send('Hello!'); */ // ---- Core exports ---- export { ChatUI } from './ui/ChatUI.js'; export { ChatCore } from './core/ChatCore.js'; export { ConversationStorage } from './core/storage.js'; export { MODELS, PROVIDER_KEYS, getProviderConfig, isKnownProvider } from './core/providers.js'; // ---- Type exports ---- export type { // Config ChatConfig, ThemeMode, WelcomeHint, // Messages & conversations Message, MessageRole, ConversationRecord, // Providers Provider, ProviderConfig, // Events ChatEvent, ChatEventType, ChatEventHandler, MessageEvent, StreamChunkEvent, StreamStartEvent, StreamEndEvent, ErrorEvent, ConversationChangeEvent, } from './types/index.js'; // ---- Default export: ChatUI ---- export { ChatUI as default } from './ui/ChatUI.js';