Packages
Graph-based orchestration engine for AI agent pipelines in Elixir. Three-phase node lifecycle (prep → exec → post), composable middleware, checkpointing with resume/rewind, batch flows, OTP supervision, and adapters for Phoenix LiveView and Datastar SSE.
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Phlox.MixProject do
use Mix.Project
@version "0.5.2"
@source_url "https://github.com/Xs-and-10s/phlox"
def project do
[
app: :phlox,
version: @version,
elixir: "~> 1.14",
start_permanent: Mix.env() == :prod,
deps: deps(),
# Hex metadata
description:
"Graph-based orchestration engine for AI agent pipelines in Elixir. " <>
"Three-phase node lifecycle (prep → exec → post), composable middleware, " <>
"checkpointing with resume/rewind, batch flows, OTP supervision, " <>
"and adapters for Phoenix LiveView and Datastar SSE.",
package: package(),
# Docs
name: "Phlox",
source_url: @source_url,
homepage_url: @source_url,
docs: docs()
]
end
def application do
[
extra_applications: [:logger],
mod: {Phlox.Application, []}
]
end
defp deps do
[
# Required
{:telemetry, "~> 1.0"},
# LLM adapters (Phlox.LLM.Groq, .Google, .Anthropic, .OpenAI, .Ollama)
{:req, "~> 0.5", optional: true},
# Checkpoint.Ecto
{:ecto_sql, "~> 3.10", optional: true},
{:postgrex, ">= 0.0.0", optional: true},
# Adapter.Phoenix + Phlox.Component
{:phoenix_live_view, "~> 1.0", optional: true},
# Adapter.Datastar
{:plug, "~> 1.14", optional: true},
{:datastar_ex, "~> 0.1", optional: true},
# Phlox.Typed (Gladius integration)
{:gladius, ">= 0.0.0", optional: true},
# Dev / test only
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:stream_data, "~> 1.0", only: [:dev, :test]}
]
end
defp package do
[
name: "phlox",
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"PocketFlow (original)" => "https://github.com/The-Pocket/PocketFlow"
},
maintainers: ["Mark Manley"],
files:
~w(lib priv/static/phlox-spinner.css priv/static/favicon.ico .formatter.exs mix.exs README.md CHANGELOG.md LICENSE)
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
extras: ["README.md", "CHANGELOG.md"],
groups_for_modules: [
Core: [Phlox, Phlox.Node, Phlox.BatchNode, Phlox.Flow, Phlox.BatchFlow, Phlox.Graph],
Orchestration: [Phlox.Runner, Phlox.Pipeline, Phlox.Retry],
LLM: [Phlox.LLM, Phlox.LLM.Anthropic, Phlox.LLM.Google, Phlox.LLM.Groq, Phlox.LLM.Ollama, Phlox.LLM.OpenAI],
Middleware: [Phlox.Middleware, Phlox.Middleware.Checkpoint],
Checkpoint: [Phlox.Checkpoint, Phlox.Checkpoint.Memory, Phlox.Checkpoint.Ecto],
OTP: [Phlox.FlowServer, Phlox.FlowSupervisor],
Adapters: [Phlox.Adapter.Phoenix, Phlox.Adapter.Datastar],
UI: [Phlox.Component],
Observability: [Phlox.Telemetry]
]
]
end
end