# PhoenixAI.Store v0.1.0 - Table of Contents Persistence, memory management, guardrails, and cost tracking for PhoenixAI conversations ## Pages - [PhoenixAI Store](readme.md) - [Changelog](changelog.md) - Guides - [Getting Started](getting-started.md) - [Adapters](adapters.md) - [Memory & Guardrails](memory-and-guardrails.md) - [Telemetry & Events](telemetry-and-events.md) ## Modules - [PhoenixAI.Store.Adapter.CostStore](PhoenixAI.Store.Adapter.CostStore.md): Sub-behaviour for adapters that support cost record persistence. - [PhoenixAI.Store.Adapter.EventStore](PhoenixAI.Store.Adapter.EventStore.md): Sub-behaviour for adapters that support the append-only event log. No update or delete callbacks — events are immutable once written. - [PhoenixAI.Store.Adapter.FactStore](PhoenixAI.Store.Adapter.FactStore.md): Sub-behaviour for adapters that support long-term memory fact storage. - [PhoenixAI.Store.Adapter.ProfileStore](PhoenixAI.Store.Adapter.ProfileStore.md): Sub-behaviour for adapters that support long-term memory profile storage. - [PhoenixAI.Store.Adapter.TokenUsage](PhoenixAI.Store.Adapter.TokenUsage.md): Sub-behaviour for adapters that support token usage aggregation. - [PhoenixAI.Store.Adapters.ETS.TableOwner](PhoenixAI.Store.Adapters.ETS.TableOwner.md): A GenServer that owns an ETS table for the in-memory adapter. - [PhoenixAI.Store.Config](PhoenixAI.Store.Config.md): Configuration validation for `PhoenixAI.Store` instances. - [PhoenixAI.Store.CostTracking.PricingProvider.Static](PhoenixAI.Store.CostTracking.PricingProvider.Static.md): Default pricing provider that reads from application config. - [PhoenixAI.Store.Guardrails.TokenBudget.RateLimiter](PhoenixAI.Store.Guardrails.TokenBudget.RateLimiter.md): Default Hammer-backed rate limiter for the `:time_window` scope of `PhoenixAI.Store.Guardrails.TokenBudget`. - [PhoenixAI.Store.Instance](PhoenixAI.Store.Instance.md): GenServer that holds per-store state: adapter module, resolved config, and adapter-specific opts. - [PhoenixAI.Store.LongTermMemory.Extractor](PhoenixAI.Store.LongTermMemory.Extractor.md): Behaviour for extracting key-value facts from conversation messages. - [PhoenixAI.Store.LongTermMemory.Extractor.Default](PhoenixAI.Store.LongTermMemory.Extractor.Default.md): Default AI-powered fact extractor using `AI.chat/2`. - [PhoenixAI.Store.LongTermMemory.Injector](PhoenixAI.Store.LongTermMemory.Injector.md): Formats facts and profile as pinned system messages for injection into a conversation's message list. - [PhoenixAI.Store.Memory.Strategies.SlidingWindow](PhoenixAI.Store.Memory.Strategies.SlidingWindow.md): A memory strategy that keeps the last N messages. - [PhoenixAI.Store.Memory.Strategies.Summarization](PhoenixAI.Store.Memory.Strategies.Summarization.md): A memory strategy that condenses older messages into an AI-generated summary. - [PhoenixAI.Store.Memory.Strategies.TokenTruncation](PhoenixAI.Store.Memory.Strategies.TokenTruncation.md): A memory strategy that removes oldest messages until the total token count fits within a budget. - [PhoenixAI.Store.Memory.Strategy](PhoenixAI.Store.Memory.Strategy.md): Behaviour for memory strategies that filter or transform message lists. - [PhoenixAI.Store.Memory.TokenCounter](PhoenixAI.Store.Memory.TokenCounter.md): Behaviour for counting tokens in message content. - [PhoenixAI.Store.Memory.TokenCounter.Default](PhoenixAI.Store.Memory.TokenCounter.Default.md): Default token counter using a `bytes / 4` heuristic. - [PhoenixAI.Store.Schemas.Conversation](PhoenixAI.Store.Schemas.Conversation.md): Ecto schema for persisting `PhoenixAI.Store.Conversation` structs. - [PhoenixAI.Store.Schemas.CostRecord](PhoenixAI.Store.Schemas.CostRecord.md): Ecto schema for cost records tracking AI usage expenses. - [PhoenixAI.Store.Schemas.Event](PhoenixAI.Store.Schemas.Event.md): Ecto schema for the append-only audit event log. - [PhoenixAI.Store.Schemas.Fact](PhoenixAI.Store.Schemas.Fact.md): Ecto schema for cross-conversation facts in long-term memory. - [PhoenixAI.Store.Schemas.Message](PhoenixAI.Store.Schemas.Message.md): Ecto schema for persisting `PhoenixAI.Store.Message` structs. - [PhoenixAI.Store.Schemas.Profile](PhoenixAI.Store.Schemas.Profile.md): Ecto schema for user profile summaries in long-term memory. - Core - [PhoenixAI.Store](PhoenixAI.Store.md): Supervisor and public API facade for PhoenixAI conversation storage. - [PhoenixAI.Store.Conversation](PhoenixAI.Store.Conversation.md): A conversation owned by `PhoenixAI.Store`, extending `PhoenixAI.Conversation` with persistence-specific fields such as `user_id`, `title`, `tags`, `model`, timestamps, and soft-delete support. - [PhoenixAI.Store.Message](PhoenixAI.Store.Message.md): A message within a conversation, wrapping `PhoenixAI.Message` with persistence-specific fields such as `id`, `conversation_id`, `token_count`, and `inserted_at`. - Adapters - [PhoenixAI.Store.Adapter](PhoenixAI.Store.Adapter.md): Behaviour for storage backends. - [PhoenixAI.Store.Adapters.ETS](PhoenixAI.Store.Adapters.ETS.md): In-memory ETS adapter for `PhoenixAI.Store.Adapter`. - [PhoenixAI.Store.Adapters.Ecto](PhoenixAI.Store.Adapters.Ecto.md): Ecto/Postgres adapter for `PhoenixAI.Store.Adapter`. - Memory - [PhoenixAI.Store.Memory.Pipeline](PhoenixAI.Store.Memory.Pipeline.md): Orchestrates memory strategy execution for a conversation's message list. - Guardrails - [PhoenixAI.Store.Guardrails.CostBudget](PhoenixAI.Store.Guardrails.CostBudget.md): Guardrail policy that enforces cost budgets scoped to conversations or users. - [PhoenixAI.Store.Guardrails.TokenBudget](PhoenixAI.Store.Guardrails.TokenBudget.md): Guardrail policy that enforces token budgets scoped to conversations, users, or time windows. - Cost Tracking - [PhoenixAI.Store.CostTracking](PhoenixAI.Store.CostTracking.md): Orchestrator for recording per-turn cost data. - [PhoenixAI.Store.CostTracking.CostRecord](PhoenixAI.Store.CostTracking.CostRecord.md): A cost record linked to a conversation turn. - [PhoenixAI.Store.CostTracking.PricingProvider](PhoenixAI.Store.CostTracking.PricingProvider.md): Behaviour for resolving per-model token pricing. - Event Log - [PhoenixAI.Store.EventLog](PhoenixAI.Store.EventLog.md): Orchestrator for the append-only event log. - [PhoenixAI.Store.EventLog.Event](PhoenixAI.Store.EventLog.Event.md): An immutable event record in the append-only event log. - Long-Term Memory - [PhoenixAI.Store.LongTermMemory](PhoenixAI.Store.LongTermMemory.md): Orchestrates long-term memory: fact CRUD, extraction, profile updates, and context injection. - [PhoenixAI.Store.LongTermMemory.Fact](PhoenixAI.Store.LongTermMemory.Fact.md): A key-value fact associated with a user, persisted across conversations. - [PhoenixAI.Store.LongTermMemory.Profile](PhoenixAI.Store.LongTermMemory.Profile.md): A user profile combining a free-text AI-generated summary with structured metadata. - Telemetry - [PhoenixAI.Store.HandlerGuardian](PhoenixAI.Store.HandlerGuardian.md): Supervised GenServer that ensures the telemetry handler stays attached. - [PhoenixAI.Store.TelemetryHandler](PhoenixAI.Store.TelemetryHandler.md): Plain module (not a GenServer) with handler functions for automatic PhoenixAI telemetry event capture. - Pipeline - [PhoenixAI.Store.ConversePipeline](PhoenixAI.Store.ConversePipeline.md): Orchestrates the full conversation pipeline: load, save user message, prepare messages (memory + system prompt), check guardrails, call AI, save assistant message, and fire-and-forget post-processing. ## Mix Tasks - [mix phoenix_ai_store.gen.migration](Mix.Tasks.PhoenixAiStore.Gen.Migration.md): Generates a migration file for the PhoenixAI.Store tables.