Current section
Files
Jump to
Current section
Files
mix.exs
defmodule CMDC.MixProject do
use Mix.Project
@version "0.6.1"
@source_url "https://github.com/tupleyun/cmdc"
@description "Elixir Agent Kernel — OTP gen_statem 驱动的 AI Agent 开发库"
def project do
[
app: :cmdc,
version: @version,
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
description: @description,
package: package(),
docs: docs(),
source_url: @source_url,
homepage_url: @source_url,
test_coverage: [tool: ExCoveralls],
dialyzer: [
plt_add_apps: [:mix],
ignore_warnings: ".dialyzer_ignore.exs"
]
]
end
def cli do
[
preferred_envs: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test
]
]
end
def application do
[
extra_applications: [:logger, :crypto],
mod: {CMDC.Application, []}
]
end
defp deps do
[
{:req_llm, "~> 1.7"},
{:jason, "~> 1.4"},
{:nimble_options, "~> 1.1"},
{:anubis_mcp, "~> 0.17"},
{:plug, "~> 1.16"},
{:yaml_elixir, "~> 2.11"},
{:ex_doc, "~> 0.35", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:excoveralls, "~> 0.18", only: :test, runtime: false}
]
end
defp aliases do
[
"quality.check": [
"format --check-formatted",
"compile --warnings-as-errors",
"credo --strict",
"test"
]
]
end
defp package do
[
name: "cmdc",
description: @description,
licenses: ["Apache-2.0"],
links: %{
"GitHub" => @source_url,
"HexDocs" => "https://hexdocs.pm/cmdc",
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"Commercial Licensing" => "#{@source_url}#license"
},
maintainers: ["CMDC Team"],
files: ~w(lib guides mix.exs README.md CHANGELOG-public.md LICENSE)
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
source_url_pattern: "#{@source_url}/blob/v#{@version}/%{path}#L%{line}",
extras: [
"README.md": [title: "概览"],
"guides/quickstart.md": [title: "5 分钟上手"],
"guides/concepts.md": [title: "核心概念"],
"guides/agent-loop.md": [title: "Agent 状态机与事件"],
"guides/plugins.md": [title: "写一个 Plugin"],
"guides/tools.md": [title: "写一个 Tool"],
"guides/cookbook.md": [title: "常见配方"],
"guides/upgrading.md": [title: "升级指南"],
"CHANGELOG-public.md": [title: "Changelog"],
LICENSE: [title: "License"]
],
groups_for_extras: [
入门: ~r/(README\.md|guides\/(quickstart|concepts)\.md)/,
指南: ~r/guides\/(agent-loop|plugins|tools|cookbook|upgrading)\.md/,
发布: ~r/(CHANGELOG-public\.md|LICENSE)/
],
groups_for_modules: [
入门: [
CMDC,
CMDC.Options,
CMDC.Config,
CMDC.Context,
CMDC.Message
],
事件与状态: [
CMDC.Event,
CMDC.EventBus,
CMDC.TokenUsage,
CMDC.Plan,
CMDC.AuditEvent
],
"工具(Tools)": [
CMDC.Tool,
CMDC.Tool.ReadFile,
CMDC.Tool.WriteFile,
CMDC.Tool.EditFile,
CMDC.Tool.Shell,
CMDC.Tool.Grep,
CMDC.Tool.ListDir,
CMDC.Tool.Glob,
CMDC.Tool.Task,
CMDC.Tool.WriteTodos,
CMDC.Tool.AskUser,
CMDC.Tool.CompactConversation
],
"Plugins(安全与控制)": [
CMDC.Plugin,
CMDC.Plugin.Builtin.SecurityGuard,
CMDC.Plugin.Builtin.HumanApproval,
CMDC.Plugin.Builtin.ContentPolicy,
CMDC.Plugin.Builtin.OutputFilter,
CMDC.Plugin.Builtin.PatchToolCalls,
CMDC.Plugin.Builtin.EventLogger,
CMDC.Plugin.Builtin.SkillGuard
],
"Plugins(优化与记忆)": [
CMDC.Plugin.Builtin.MemoryLoader,
CMDC.Plugin.Builtin.MemoryFlush,
CMDC.Plugin.Builtin.EpisodicMemory,
CMDC.Plugin.Builtin.LargeResultOffload,
CMDC.Plugin.Builtin.PromptCache,
CMDC.Plugin.Builtin.ModelRouter,
CMDC.Plugin.Builtin.CostGuard,
CMDC.Plugin.Builtin.Recovery,
CMDC.Plugin.Builtin.Planning,
CMDC.Plugin.Builtin.Reflection,
CMDC.Plugin.Builtin.Reasoning
],
"推理(Reasoning)": [
CMDC.Reasoning,
CMDC.Reasoning.Runner,
CMDC.Reasoning.Parallel,
CMDC.Reasoning.Search,
CMDC.Reasoning.Strategy.CoT,
CMDC.Reasoning.Strategy.CoD,
CMDC.Reasoning.Strategy.AoT,
CMDC.Reasoning.Strategy.ToT,
CMDC.Reasoning.Strategy.GoT,
CMDC.Reasoning.Strategy.SelfConsistency,
CMDC.Reasoning.Strategy.TRM,
CMDC.Reasoning.Strategy.Reflexion,
CMDC.Reasoning.Strategy.Adaptive,
CMDC.Reasoning.Scorer
],
存储与沙箱: [
CMDC.Sandbox,
CMDC.Sandbox.Local,
CMDC.Backend,
CMDC.Backend.State,
CMDC.Backend.Filesystem,
CMDC.Backend.Composite,
CMDC.Memory,
CMDC.Memory.ETS,
CMDC.Checkpoint,
CMDC.Checkpoint.Backend,
CMDC.Checkpoint.Snapshot
],
扩展点: [
CMDC.Provider,
CMDC.Provider.StreamBridge,
CMDC.Blueprint,
CMDC.Blueprint.Base,
CMDC.SubAgent,
CMDC.Skill,
CMDC.Skill.Selector,
CMDC.Telemetry,
CMDC.Gateway,
CMDC.Gateway.Local
],
集成: [
CMDC.MCP.Bridge,
CMDC.MCP.Client,
CMDC.MCP.Config,
CMDC.MCP.Supervisor
],
"内核(高级)": [
CMDC.Agent,
CMDC.SessionServer,
CMDC.Agent.BasePrompt,
CMDC.Agent.SystemPrompt,
CMDC.Agent.ToolRunner,
CMDC.Agent.Stream,
CMDC.Agent.Compactor,
CMDC.Agent.Compactor.ArgTruncator,
CMDC.SubAgent.Supervisor,
CMDC.Plugin.Registry
]
]
]
end
end