[package]
edition = "2021"
rust-version = "1.80"
name = "capo-agent"
version = "0.6.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Coding-agent library built on motosan-agent-loop. Composable, embeddable."
readme = "README.md"
keywords = [
"coding-agent",
"llm",
"anthropic",
"claude",
"capo",
]
categories = [
"development-tools",
"command-line-interface",
]
license = "MIT"
repository = "https://github.com/motosan-dev/capo"
[features]
test-support = []
[lib]
name = "capo_agent"
path = "src/lib.rs"
[[example]]
name = "list_rust_files"
path = "examples/list_rust_files.rs"
[[test]]
name = "config_from_env"
path = "tests/config_from_env.rs"
[[test]]
name = "mcp_config"
path = "tests/mcp_config.rs"
[[test]]
name = "mcp_lifecycle"
path = "tests/mcp_lifecycle.rs"
[[test]]
name = "mcp_timeout"
path = "tests/mcp_timeout.rs"
[[test]]
name = "mock_llm_loop"
path = "tests/mock_llm_loop.rs"
[[test]]
name = "permission_flow"
path = "tests/permission_flow.rs"
[[test]]
name = "progress_stream"
path = "tests/progress_stream.rs"
[[test]]
name = "session_resume_flow"
path = "tests/session_resume_flow.rs"
[[test]]
name = "skills_inject"
path = "tests/skills_inject.rs"
[[test]]
name = "skills_no_skills_cli"
path = "tests/skills_no_skills_cli.rs"
[[test]]
name = "skills_slash_expand"
path = "tests/skills_slash_expand.rs"
[dependencies.arc-swap]
version = "1"
[dependencies.async-stream]
version = "0.3"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.diffy]
version = "0.4"
[dependencies.futures]
version = "0.3"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.globset]
version = "0.4"
[dependencies.gray_matter]
version = "0.2"
features = ["yaml"]
default-features = false
[dependencies.ignore]
version = "0.4"
[dependencies.motosan-agent-loop]
version = "^0.21.1"
features = [
"motosan-ai",
"cancellation",
"mcp-client",
]
[dependencies.motosan-agent-tool]
version = "0.3"
[dependencies.motosan-ai]
version = "^0.15"
features = [
"anthropic",
"claude-code",
"codex-cli",
"openai",
"gemini",
"gemini-cli",
"agent-tool",
]
default-features = false
[dependencies.regex]
version = "1"
[dependencies.rmcp]
version = "1.7.0"
features = [
"client",
"transport-child-process",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.similar]
version = "2"
[dependencies.siphasher]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"sync",
"time",
"fs",
"process",
"io-util",
]
[dependencies.toml]
version = "0.9"
[dependencies.tracing]
version = "0.1"
[dependencies.ulid]
version = "1"
features = ["serde"]
[dev-dependencies.anyhow]
version = "1"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"sync",
"time",
"fs",
"process",
"io-util",
"macros",
"rt-multi-thread",
"test-util",
]
[dev-dependencies.tokio-test]
version = "0.4"
[lints.clippy]
expect_used = "deny"
manual_clamp = "deny"
manual_filter = "deny"
needless_borrow = "deny"
needless_collect = "deny"
redundant_clone = "deny"
uninlined_format_args = "deny"
unwrap_used = "deny"