"""Domain-agnostic patterns for distributed agent action policies."""

from .policies import (
    ActionExecutor,
    MethodWrapperActionExecutor,
    ActionDispatcher,
    action_executor,
    CacheAwareActionPolicy,
    EventDrivenActionPolicy,
    create_default_action_policy,
)

from .repl import (
    REPLVariable,
    PolicyPythonREPL,
    REPLCapability,
    get_repl_guidance,
)

from .backing_store import (
    BackingStore,
    BlackboardBackingStore,
    StorageHint,
)

__all__ = [
    # Policies
    "ActionExecutor",
    "MethodWrapperActionExecutor",
    "ActionDispatcher",
    "action_executor",
    "CacheAwareActionPolicy",
    "EventDrivenActionPolicy",
    "create_default_action_policy",
    # REPL
    "REPLVariable",
    "PolicyPythonREPL",
    "REPLCapability",
    "get_repl_guidance",
    # Backing Store
    "BackingStore",
    "BlackboardBackingStore",
    "StorageHint",
]
