Packages
BEAM-native semantic actor substrate built on TypeSafeSDK 0.4.0 for high-concurrency populations, recursive decisions, and graph-coordinated semantic work.
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Plexus.MixProject do
use Mix.Project
@version "0.1.0"
@source_url "https://github.com/nshkrdotcom/plexus"
def project do
[
app: :plexus,
version: @version,
elixir: "~> 1.18",
start_permanent: Mix.env() == :prod,
deps: deps(),
description: description(),
package: package(),
docs: docs(),
source_url: @source_url,
homepage_url: @source_url,
name: "Plexus",
aliases: aliases(),
test_coverage: [tool: ExCoveralls]
]
end
def cli do
[
preferred_envs: [
docs: :docs,
"hex.publish": :docs,
quality: :test
]
]
end
def application do
[
extra_applications: [:logger, :crypto],
mod: {Plexus.Application, []}
]
end
defp deps do
[
{:typesafe_sdk, "~> 0.4.0"},
{:inference, "~> 0.4.1"},
{:pristine, "~> 0.4.0"},
{:telemetry, "~> 1.3"},
{:jason, "~> 1.4"},
{:ex_doc, "~> 0.38", only: :docs, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev], runtime: false},
{:excoveralls, "~> 0.18", only: :test, runtime: false}
]
end
defp description do
"BEAM-native semantic actor substrate built on TypeSafeSDK 0.4.0 for high-concurrency populations, recursive decisions, and graph-coordinated semantic work."
end
defp package do
[
licenses: ["MIT"],
maintainers: ["nshkrdotcom"],
links: %{
"GitHub" => @source_url,
"Guides" => "#{@source_url}/tree/main/guides",
"TypeSafeSDK" => "https://hex.pm/packages/typesafe_sdk"
},
files: [
".formatter.exs",
"CHANGELOG.md",
"LICENSE",
"README.md",
"assets",
"guides",
"lib",
"mix.exs",
"examples/README.md",
"examples/DATASETS.md"
]
]
end
defp docs do
[
main: "readme",
name: "Plexus",
source_ref: "v#{@version}",
source_url: @source_url,
assets: %{"assets" => "assets"},
logo: "assets/plexus.svg",
extras: [
"README.md",
"guides/index.md",
"guides/getting-started.md",
"guides/architecture.md",
"guides/kernel-primitives.md",
"guides/actor-runtime.md",
"guides/typesafe-integration.md",
"guides/graph-and-subtrees.md",
"guides/calibration-and-replay.md",
"guides/expansion.md",
"guides/testing-and-release.md",
"guides/experiments.md",
"guides/examples.md",
{"examples/README.md", [filename: "examples", title: "Examples"]},
"examples/DATASETS.md",
"CHANGELOG.md",
"LICENSE"
],
groups_for_extras: [
Overview: ["README.md"],
Guides: Path.wildcard("guides/*.md"),
Examples: ["examples/README.md", "examples/DATASETS.md"],
Project: ["CHANGELOG.md", "LICENSE"]
],
groups_for_modules: [
Core: [
Plexus,
Plexus.Application,
Plexus.Run,
Plexus.Registry,
Plexus.Graph,
Plexus.Contract
],
Actor: [
Plexus.Actor,
Plexus.Actor.Command,
Plexus.Actor.Context,
Plexus.Actor.Interpreter
],
Kernel: [
Plexus.Budget,
Plexus.Cache,
Plexus.Event,
Plexus.Population,
Plexus.Provenance,
Plexus.Record,
Plexus.Schedule,
Plexus.Stop,
Plexus.Reduce,
Plexus.Belief,
Plexus.Belief.Calibration,
Plexus.Measure,
Plexus.Measure.Coalescer,
Plexus.Contract.Registry
],
Expansion: [
Plexus.Expand.Adapter,
Plexus.Expand.Queue,
Plexus.Expand.Schema,
Plexus.Expand.Materializer
],
Strategy: [Plexus.Strategy.Fanout],
Examples: [
Plexus.Examples.IntakeCoordinator,
Plexus.Examples.EvidenceWorker,
Plexus.Examples.Sample
]
]
]
end
defp aliases do
[
quality: ["format --check-formatted", "compile --warnings-as-errors", "test"]
]
end
end