[package]
edition = "2024"
name = "phi-agent"
version = "0.18.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "phi-agent — Rust AI Agent runtime framework: orchestration, sessions, streaming built-in. You define tools, prompts, domain knowledge."
readme = "README.md"
keywords = [
"agent",
"ai",
"llm",
"framework",
"cli",
]
categories = [
"development-tools",
"command-line-utilities",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/hibuka-labs/phi-agent"
[features]
app = ["browser"]
browser = [
"phi-tools",
"phi-tools/browser",
]
compression = ["agent-works/compression"]
default = [
"file",
"mcp",
"telemetry",
"logging",
"focus",
"compression",
]
file = ["phi-kernel-tools/file"]
focus = ["agent-works/focus"]
full = [
"file",
"skill",
"shell",
"mcp",
"telemetry",
"logging",
"focus",
"compression",
]
logging = ["log-core"]
mcp = ["agent-works/mcp"]
memory = ["agent-works/memory"]
multi-agent = [
"phi-kernel-tools/multi-agent",
"agent-works/multi_agent",
]
observability = [
"telemetry",
"logging",
]
protocol = ["mcp"]
shell = ["phi-kernel-tools/shell"]
skill = [
"file",
"agent-works/skill",
"agent-works/prompt_skill",
]
telemetry = ["phi-telemetry"]
[lib]
name = "phi_agent"
path = "src/lib.rs"
[[bin]]
name = "phi"
path = "src/bin/phi/main.rs"
required-features = [
"mcp",
"telemetry",
"logging",
]
[[example]]
name = "custom_approval"
path = "examples/tools/custom_approval.rs"
[[example]]
name = "custom_policy"
path = "examples/tools/custom_policy.rs"
[[example]]
name = "custom_tool"
path = "examples/tools/custom_tool.rs"
[[example]]
name = "event_log"
path = "examples/observability/event_log.rs"
[[example]]
name = "file_ops"
path = "examples/tools/file_ops.rs"
[[example]]
name = "focus_demo"
path = "examples/advanced/focus_demo.rs"
[[example]]
name = "hello_agent"
path = "examples/minimal/hello_agent.rs"
[[example]]
name = "html_renderer"
path = "examples/observability/html_renderer.rs"
[[example]]
name = "hybrid_langgraph"
path = "examples/advanced/hybrid_langgraph.rs"
required-features = ["mcp"]
[[example]]
name = "mcp_client"
path = "examples/mcp/mcp_client.rs"
required-features = ["mcp"]
[[example]]
name = "mcp_dynamic_attach"
path = "examples/mcp/mcp_dynamic_attach.rs"
required-features = ["mcp"]
[[example]]
name = "mcp_server"
path = "examples/mcp/mcp_server.rs"
required-features = ["mcp"]
[[example]]
name = "middleware_hooks"
path = "examples/observability/middleware_hooks.rs"
[[example]]
name = "multi_agent"
path = "examples/multi-agent/multi_agent.rs"
required-features = ["multi-agent"]
[[example]]
name = "multi_tool"
path = "examples/tools/multi_tool.rs"
[[example]]
name = "session_persist"
path = "examples/session/session_persist.rs"
[[example]]
name = "summary_memory"
path = "examples/advanced/summary_memory.rs"
[[example]]
name = "window_memory"
path = "examples/advanced/window_memory.rs"
[[test]]
name = "bridge_concurrent"
path = "tests/stress/bridge_concurrent.rs"
required-features = ["shell"]
[[test]]
name = "bridge_messages"
path = "tests/stress/bridge_messages.rs"
[[test]]
name = "bridge_protocol"
path = "tests/stress/bridge_protocol.rs"
required-features = ["shell"]
[[test]]
name = "bridge_test"
path = "tests/bridge_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[bench]]
name = "agent_build"
path = "benches/agent_build.rs"
harness = false
[[bench]]
name = "bridge"
path = "benches/bridge.rs"
harness = false
[[bench]]
name = "serialization"
path = "benches/serialization.rs"
harness = false
[[bench]]
name = "session"
path = "benches/session.rs"
harness = false
[[bench]]
name = "system_prompt"
path = "benches/system_prompt.rs"
harness = false
[dependencies.agent-base]
version = "0.9.0"
[dependencies.agent-works]
version = "0.10.0"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
]
[dependencies.clap_complete]
version = "4"
[dependencies.dotenvy]
version = "0.15"
[dependencies.dyn-clone]
version = "1"
[dependencies.fs2]
version = "0.4"
[dependencies.llm-unified]
version = "0.1.4"
[dependencies.log-core]
version = "0.1.4"
optional = true
[dependencies.phi-kernel-tools]
version = "0.9.1"
default-features = false
[dependencies.phi-telemetry]
version = "0.7.1"
optional = true
[dependencies.phi-tools]
version = "0.6.0"
optional = true
[dependencies.regex]
version = "1"
[dependencies.rustyline]
version = "15"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.uuid]
version = "1"
features = ["v4"]
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.futures-core]
version = "0.3"
[dev-dependencies.futures-util]
version = "0.3"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"