"""
ml_ai_library
=============
Unified library covering:

  1. "Pattern Recognition and Machine Learning" (Bishop) – ml_ai_library.bishop
     Thin wrappers over sklearn, PyTorch, pymc, hmmlearn, filterpy.
     Fills gaps: RVM (Relevance Vector Machine), particle filter.

  2. "Artificial Intelligence: A Modern Approach" (Norvig) – ml_ai_library.norvig
     Implements missing algorithms: MCTS, HTN planning, tabular RL,
     CYK parser, game theory (Nash equilibria).

  3. LLM-powered agents – ml_ai_library.llm_agents
     ReAct, Planning, Logic, RL-policy, Multi-agent via litellm.
     Compatible with any litellm model: OpenAI, Anthropic, Gemini, Ollama, …

Quick start
-----------
    # Bishop – Bayesian linear regression (sklearn)
    from ml_ai_library.bishop.linear_models import BayesianLinearRegression
    model = BayesianLinearRegression()
    model.fit(X_train, y_train)
    mean, std = model.predict_with_std(X_test)

    # Bishop – Neural net (PyTorch)
    from ml_ai_library.bishop.neural_networks import MLP, train
    import torch
    net = MLP(in_features=10, hidden=[64,64], out_features=1, task="regression")
    train(net, X_tensor, y_tensor, epochs=100)

    # Norvig – MCTS for Tic-Tac-Toe
    from ml_ai_library.norvig.adversarial import mcts_search, TicTacToe
    game = TicTacToe()
    move = mcts_search(game, game.initial_state(), n_simulations=2000)

    # Norvig – Tabular Q-learning
    import gymnasium as gym
    from ml_ai_library.norvig.rl import QLearning
    env   = gym.make("FrozenLake-v1", is_slippery=False)
    agent = QLearning(n_actions=4, alpha=0.1, gamma=0.99)
    agent.train(env, episodes=500)

    # LLM agents – ReAct
    from ml_ai_library.llm_agents.react_agent import ReActAgent
    from ml_ai_library.llm_agents.base_agent import Tool
    agent = ReActAgent(model="gpt-4o-mini", tools=[Tool.from_fn(my_tool)])
    answer = agent.run("What is the capital of France?")
"""

__version__ = "0.1.0"
