"""Agent learning memory system with BM25-based retrieval.

This module provides a memory system for trading agents to store and retrieve
experiences, decisions, and market observations using BM25 text indexing.

Example:
    from openclaw.memory import LearningMemory, MemoryType

    memory = LearningMemory(agent_id="agent_001")

    # Add trade memory
    memory.add_trade_memory(
        symbol="AAPL",
        action="buy",
        quantity=100,
        price=150.0,
        pnl=500.0,
        strategy="momentum",
        outcome="profitable breakout trade"
    )

    # Search for similar trades
    similar = memory.search_similar_trades(symbol="AAPL", strategy="momentum")

    # Get decision suggestions
    suggestions = memory.get_decision_suggestions(
        context="breakout pattern detected",
        decision_type="entry"
    )
"""

from openclaw.memory.bm25_index import BM25Index, MemoryDocument
from openclaw.memory.learning_memory import (
    LearningMemory,
    MemoryType,
    TradeMemory,
    MarketMemory,
    DecisionMemory,
    ErrorMemory,
)

__all__ = [
    # Core classes
    "LearningMemory",
    "BM25Index",
    # Data classes
    "MemoryDocument",
    "MemoryType",
    "TradeMemory",
    "MarketMemory",
    "DecisionMemory",
    "ErrorMemory",
]
