# RoomKit

> RoomKit is a pure async Python library for building multi-channel conversation systems.
> It provides room-based abstractions for managing conversations across SMS, Email, WebSocket,
> AI, and other channels with pluggable storage, identity resolution, hooks, and realtime events.
> Python 3.12+, Pydantic 2.x, fully typed, zero required dependencies beyond Pydantic.

RoomKit follows a pluggable architecture pattern where core abstractions (ConversationStore,
RoomLockManager, RealtimeBackend, IdentityResolver) have in-memory defaults but can be replaced
with distributed implementations (Redis, PostgreSQL, etc.) for production deployments.

## Getting Started

- [Features Overview](features.md): Core features, channel support matrix, hooks, AI integration, resilience, identity resolution, and usage workflows
- [AI Assistant Integration](ai-integration.md): llms.txt and AGENTS.md for AI coding assistants

## Core API

- [RoomKit](api/roomkit.md): Central orchestrator class - room lifecycle, channel management, hooks, inbound processing
- [Hooks](api/hooks.md): HookEngine, HookRegistration - event interception at BEFORE_BROADCAST, AFTER_BROADCAST, lifecycle triggers
- [Routing](api/routing.md): InboundRoomRouter - strategy for routing inbound messages to rooms
- [Store](api/store.md): ConversationStore ABC and InMemoryStore - room, event, participant, task persistence
- [Realtime](api/realtime.md): RealtimeBackend for ephemeral events - typing indicators, presence, read receipts

## Channels

- [Channel ABC](api/channel.md): Base class for all channels - handle_inbound, deliver, on_event, capabilities
- [Built-in Channels](api/channels.md): SMSChannel, EmailChannel, AIChannel, WebSocketChannel, MessengerChannel, HTTPChannel, WhatsAppChannel

## Models

- [Room & Timers](api/room.md): Room model with status lifecycle (ACTIVE, PAUSED, CLOSED, ARCHIVED) and timer configuration
- [Events & Content](api/events.md): RoomEvent, TextContent, MediaContent, RichContent, CompositeContent, TemplateContent, LocationContent
- [Identity](api/identity.md): Identity, IdentityResult, IdentityHookResult, Participant - identification pipeline
- [Delivery](api/delivery.md): InboundMessage, InboundResult, DeliveryResult, ProviderResult
- [Channel Models](api/channel-models.md): ChannelBinding, ChannelCapabilities, ChannelOutput, RateLimit, RetryPolicy
- [Hook Models](api/hook-models.md): HookResult, InjectedEvent, Task, Observation

## Providers

- [AI Providers](api/providers-ai.md): AIProvider ABC, AnthropicAIProvider, OpenAIAIProvider, GeminiAIProvider, MockAIProvider - context building, vision support
- [SMS Providers](api/providers-sms.md): SMSProvider ABC, TwilioSMSProvider, TelnyxSMSProvider, SinchSMSProvider, VoiceMeUpSMSProvider - webhook parsing, signature verification, MMS support
- [Email Providers](api/providers-email.md): EmailProvider ABC, ElasticEmailProvider
- [HTTP Providers](api/providers-http.md): HTTPProvider ABC, WebhookHTTPProvider - generic webhook integration
- [Messenger Providers](api/providers-messenger.md): MessengerProvider ABC, FacebookMessengerProvider

## Optional

- [Enums](api/enums.md): ChannelType, EventType, EventStatus, RoomStatus, HookTrigger, HookExecution, IdentificationStatus, ParticipantRole
