defmodule CommBus.MixProject do use Mix.Project @version "0.1.0" def project do [ app: :comm_bus, version: @version, elixir: "~> 1.19", start_permanent: Mix.env() == :prod, deps: deps(), # Hex metadata name: "CommBus", description: "Conversational context assembly for LLM interactions with keyword-triggered entry injection and token budget management", source_url: "https://github.com/fosferon/comm_bus", homepage_url: "https://github.com/fosferon/comm_bus", package: package(), docs: docs() ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger], mod: {CommBus.Application, []} ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:bbmustache, "~> 1.12"}, {:ex_mustache, "~> 0.2.0"}, {:yaml_elixir, "~> 2.12"}, {:file_system, "~> 1.1"}, {:alf, "~> 0.12"}, {:ecto, "~> 3.13"}, {:telemetry_metrics, "~> 1.1"}, {:stream_data, "~> 1.2", only: :test}, {:ex_doc, "~> 0.40", only: :dev, runtime: false} ] end defp package do [ name: "comm_bus", licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/fosferon/comm_bus", "Changelog" => "https://github.com/fosferon/comm_bus/blob/main/CHANGELOG.md" }, maintainers: ["Leonidas"], files: ~w(lib config .formatter.exs mix.exs README.md CHANGELOG.md LICENSE) ] end defp docs do [ main: "readme", source_ref: "v#{@version}", source_url_pattern: "https://github.com/fosferon/comm_bus/blob/v#{@version}/{path}#L{line}", extras: [ "README.md", "CHANGELOG.md", "docs/adopting_commbus.md", "docs/integration.md" ], groups_for_extras: [ Guides: ~r/docs\/.*/ ], groups_for_modules: [ Core: [ CommBus, CommBus.Assembler, CommBus.Matcher, CommBus.Budget, CommBus.Budget.Planner ], "Data Structures": [ CommBus.Entry, CommBus.Message, CommBus.Conversation, CommBus.Context, CommBus.Protocol.Packet ], "Template System": [ CommBus.Template, CommBus.Template.Engine, CommBus.Template.Engine.BbMustache, CommBus.Template.Engine.ExMustache, CommBus.Template.Loader, CommBus.Template.Validator, CommBus.Template.Prompt ], Prompts: [ CommBus.Prompts, CommBus.Prompts.Runtime, CommBus.Prompts.Watcher, CommBus.Prompts.OverrideStore ], "Protocol & Pipeline": [ CommBus.Protocol.Pipeline, CommBus.Protocol.Adapter, CommBus.Protocol.LlmCoreAdapter ], Storage: [ CommBus.Storage, CommBus.Storage.InMemory, CommBus.Storage.EctoAdapter ], Methodologies: [ CommBus.Methodology, CommBus.Methodologies ], Utilities: [ CommBus.Tokenizer, CommBus.Tokenizer.Simple, CommBus.Semantic, CommBus.Semantic.Adapter, CommBus.Semantic.Simple, CommBus.Telemetry ], "Mix Tasks": [ Mix.Tasks.CommBus.Budget, Mix.Tasks.CommBus.CompareEngines, Mix.Tasks.CommBus.Entries, Mix.Tasks.CommBus.Simulate, Mix.Tasks.CommBus.SyncFixtures ] ] ] end end