Commit Graph

1 Commits

Author SHA1 Message Date
Claude
b1c7e94fee Add LLM chat proof of concept using generic chat components
Demonstrates how the generic chat components work for a completely different
chat paradigm: AI/LLM conversations with streaming responses.

New features:
- LLM message types and provider adapter interface
- Mock provider with simulated streaming responses
- LLMChatViewer component using ChatWindow/MessageList/MessageComposer
- Token counting and cost tracking
- Model selection in header
- Streaming message support with real-time updates

Key differences from Nostr chat:
- 1-on-1 conversation (user ↔ assistant) vs multi-user
- Request-response pattern vs real-time events
- Token-by-token streaming vs instant messages
- Provider adapters (OpenAI, Anthropic) vs protocol adapters (NIP-29, NIP-53)
- Cost/token metadata vs Nostr event signatures

Usage: Type "llm" in command palette

Files added:
- src/lib/llm/types.ts - LLM-specific type definitions
- src/lib/llm/providers/mock-provider.ts - Demo provider with streaming
- src/components/LLMChatViewer.tsx - AI chat UI
- PROOF_OF_CONCEPT_LLM_CHAT.md - Detailed comparison and documentation

This proves the generic chat abstraction is truly protocol-agnostic and can
be used for any chat-like interface, not just Nostr.
2026-01-16 09:21:58 +00:00