mix.exs

defmodule Foundry.MixProject do
  use Mix.Project

  def project do
    [
      app: :foundry,
      version: "0.1.1",
      build_path: "../../_build",
      config_path: "config/config.exs",
      deps_path: "../../deps",
      lockfile: "../../mix.lock",
      elixir: "~> 1.15",
      elixirc_paths: elixirc_paths(Mix.env()),
      start_permanent: Mix.env() == :prod,
      aliases: aliases(),
      deps: deps(),
      description: description(),
      package: package()
    ]
  end

  defp description() do
    "A governed build environment for Elixir/Ash/Phoenix platforms with system map extraction, governance lint, and runtime health monitoring."
  end

  defp package do
    [
      name: :foundry_stack,
      licenses: ["Apache-2.0"],
      links: %{
        "GitHub" => "https://github.com/FoundryStack/foundry"
      }
    ]
  end

  # Configuration for the OTP application.
  #
  # Type `mix help compile.app` for more information.
  def application do
    [
      mod: {Foundry.Application, []},
      extra_applications: [:logger, :runtime_tools]
    ]
  end

  # Specifies which paths to compile per environment.
  defp elixirc_paths(:test), do: ["lib", "test/support"]
  defp elixirc_paths(_), do: ["lib"]

  # Specifies your project dependencies.
  #
  # Type `mix help deps` for examples and options.
  defp deps do
    [
      {:ash, "~> 3.20"},
      {:ash_ai, "~> 0.6"},
      {:ash_state_machine, "~> 0.2"},
      {:ash_paper_trail, "~> 0.5"},
      {:ash_archival, "~> 2.0"},
      {:ash_diagram, "~> 0.1"},
      {:ash_json_api, "~> 1.6"},
      {:picosat_elixir, "~> 0.2"},
      {:dns_cluster, "~> 0.2.0"},
      {:phoenix_pubsub, "~> 2.1"},
      {:jason, "~> 1.4"},
      {:swoosh, "~> 1.23"},
      {:req, "~> 0.5"},
      {:req_llm, "~> 1.0"},
      {:muontrap, "~> 1.8"},
      {:ex_tracer, "~> 0.1"},
      {:scenario_tracer, "~> 0.1"},
      {:spark_meta, "~> 0.1"},
      {:spark_lint, "~> 0.1"}
      # {:scenario_tracer, path: "../../packages/scenario_tracer"},
      # {:spark_meta, path: "../../packages/spark_meta"},
      # {:spark_lint, path: "../../packages/spark_lint"}
    ]
  end

  # Aliases are shortcuts or tasks specific to the current project.
  #
  # See the documentation for `Mix` for more info on aliases.
  defp aliases do
    [
      setup: ["deps.get"],
      test: ["test"]
    ]
  end
end