Packages
fnord
0.9.38
0.9.40
0.9.39
0.9.38
0.9.37
0.9.36
0.9.35
0.9.34
0.9.33
0.9.32
0.9.31
0.9.30
0.9.29
0.9.28
0.9.27
0.9.26
0.9.25
0.9.24
0.9.23
0.9.22
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.14
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.99
0.8.98
0.8.97
0.8.96
0.8.95
0.8.94
0.8.93
0.8.92
0.8.91
0.8.90
0.8.89
0.8.88
0.8.87
0.8.86
0.8.85
0.8.84
0.8.83
0.8.82
0.8.81
0.8.80
0.8.79
0.8.78
0.8.77
0.8.76
0.8.75
0.8.74
0.8.73
0.8.72
0.8.71
0.8.70
0.8.69
0.8.68
0.8.67
0.8.66
0.8.65
0.8.64
0.8.63
0.8.62
0.8.61
0.8.60
0.8.59
0.8.58
0.8.57
0.8.56
0.8.55
0.8.54
0.8.53
0.8.52
0.8.51
0.8.50
0.8.49
0.8.48
0.8.47
0.8.46
0.8.45
0.8.44
0.8.43
0.8.42
0.8.41
0.8.40
0.8.39
0.8.38
0.8.37
0.8.36
0.8.35
0.8.34
0.8.33
0.8.32
0.8.31
0.8.30
0.8.29
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.1
0.8.0
0.7.24
0.7.23
0.7.22
0.7.21
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.3
0.7.2
0.7.1
0.7.0
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.44
0.4.43
0.4.42
0.4.41
0.4.40
0.4.39
0.4.38
0.4.37
0.4.36
0.4.35
0.4.34
0.4.33
0.4.32
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
AI code archaeology
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Fnord.MixProject do
use Mix.Project
def project do
[
app: :fnord,
version: "0.9.38",
elixir: "~> 1.19",
start_permanent: Mix.env() == :prod,
description: "AI code archaeology",
package: package(),
deps: deps(),
escript: escript(),
cli: cli(),
docs: docs(),
test_coverage: [tool: ExCoveralls],
test_ignore_filters: [
~r/^test\/support\/.*\.ex/
]
]
end
def cli do
[
preferred_envs: [
coveralls: :test,
"coveralls.html": :test,
"coveralls.json": :test
]
]
end
defp docs do
# Glob the two user-facing doc lanes so adding a new guide or use-case
# doc auto-publishes it to hexdocs. The self-help tool
# (`AI.Tools.SelfHelp.Docs`) globs the same two directories at compile
# time for its URL list, so both stay in sync without hand-editing two
# lists. The root README.md at the top is separate from each lane's
# README.md to avoid a `readme.html` filename collision in the published
# output; each lane README is a hand-curated index that lives only in the
# repo and on GitHub.
user_guides =
"docs/user/*.md"
|> Path.wildcard()
|> Enum.reject(&(&1 == "docs/user/README.md"))
|> Enum.sort()
use_cases =
"docs/use-cases/*.md"
|> Path.wildcard()
|> Enum.reject(&(&1 == "docs/use-cases/README.md"))
|> Enum.sort()
[
main: "readme",
extras: ["README.md" | user_guides ++ use_cases],
groups_for_extras: [Guides: user_guides, "Use cases": use_cases],
source_url: "https://github.com/sysread/fnord",
homepage_url: "https://hex.pm/packages/fnord",
format: :html
]
end
defp package do
[
maintainers: ["Jeff Ober"],
licenses: ["MIT"],
links: %{"GitHub" => "https://github.com/sysread/fnord"}
]
end
defp escript do
[
main_module: Fnord,
strip_beams: Mix.env() == :prod
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:briefly, "~> 0.5.1"},
{:clipboard, "~> 0.2.1"},
{:dialyxir, "~> 1.4.5", only: [:dev], runtime: false},
{:ex_doc, ">= 0.0.0", only: [:dev], runtime: false},
{:excoveralls, "~> 0.18.5", only: [:test], runtime: false},
# finch >= 0.22 rejects hermes_mcp 0.14.1's :transport_opts via
# Keyword.validate! in Finch.Request.build/5. Hermes upstream has been
# dormant since Aug 2025, so cap finch below 0.22 until a fix ships.
{:finch, ">= 0.19.0 and < 0.22.0"},
{:hermes_mcp, "~> 0.14"},
{:httpoison, "~> 2.2.1"},
{:jason, "~> 1.4"},
{:mox, "~> 1.2", only: [:test], runtime: false},
{:optimus, "~> 0.2"},
{:owl, "~> 0.12"},
{:stemmer, "~> 1.2"},
{:toml, "~> 0.7"},
{:uniq, "~> 0.1"},
{:yaml_elixir, "~> 2.9"},
# OAuth2 browser-based flow (loopback server)
{:plug_cowboy, "~> 2.7"}
]
end
end