defmodule Symbiont do @moduledoc """ Symbiont — Self-sustaining AI orchestrator on the BEAM. Replaces the original Python implementation with an Elixir/OTP system that leverages supervision trees, GenServers, and the BEAM's fault tolerance to provide a more resilient orchestration layer. ## Architecture The system is built around these core processes: - `Symbiont.Ledger` — Append-only JSONL cost log (GenServer) - `Symbiont.Queue` — Persistent task queue (GenServer) - `Symbiont.Heartbeat` — Periodic health checks (GenServer with timer) - `Symbiont.Router` — Task classification (stateless module) - `Symbiont.Dispatcher` — Claude CLI wrapper (stateless module) - `Symbiont.API` — HTTP endpoints (Plug + Bandit) ## Quick Start # Start the application mix run --no-halt # Submit a task via API curl -X POST http://localhost:8111/task \\ -H "Content-Type: application/json" \\ -d '{"task": "Summarize this email"}' # Check status curl http://localhost:8111/status """ @doc "Return the version string." def version, do: "0.1.0" @doc "Return the runtime identifier." def runtime, do: "elixir/otp-#{System.otp_release()}" end