Ecto-backed session service implementing ADK.Session.Service.
Uses a configurable Ecto Repo for database operations. The repo is
passed as the server argument (matching the behaviour's GenServer.server()
parameter — in this case, it's a module name).
Usage
{:ok, runner} = ADK.Runner.new(
app_name: "my_app",
root_agent: agent,
session_service: MyApp.Repo,
session_module: ADKExEcto.SessionService
)