[package] name = "dirigent_core" version = "0.1.0" edition = "2021" [lib] path = "src/lib.rs" [[bin]] name = "dirigent-core" path = "src/bin/main.rs" required-features = ["server"] [dependencies] # Server-only dependencies (optional) # ACP (Agent-Client Protocol) - the main dependency for connecting to agents # Using the rust-sdk from https://github.com/agentclientprotocol/rust-sdk agent-client-protocol = { version = "0.6", optional = true } # Async streams async-stream = { version = "0.3", optional = true } # Async trait support async-trait = "0.1" # Web server axum = { version = "0.8", optional = true } # Base64 encoding for embedded resources base64 = { version = "0.22", optional = true } # BLAKE3 hashing for stable URIs blake3 = { version = "1.5", optional = true } chrono = { version = "0.4", features = ["serde"] } dirigent_acp_api = { path = "../dirigent_acp_api", optional = true } # Workspace dependencies dirigent_config = { path = "../dirigent_config", optional = true } dirigent_auth = { path = "../dirigent_auth" } dirigent_process = { path = "../dirigent_process", features = ["tokio"], optional = true } dirigent_inspector = { path = "../dirigent_inspector", optional = true } dirigent_protocol = { path = "../dirigent_protocol", features = ["adapters"], optional = true } dirigent_tools = { path = "../dirigent_tools", optional = true } # SSE client for ACP transport eventsource-client = { version = "0.13", optional = true } futures = { version = "0.3", optional = true } # Lazy static initialization once_cell = { version = "1.20", optional = true } opencode_client = { path = "../opencode_client", optional = true } # HTTP client for ACP transport reqwest = { version = "0.12", features = ["json", "stream"], optional = true } # Core types - always available (WASM-compatible) serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Error handling thiserror = { version = "2.0", optional = true } tokio = { version = "1", features = ["full"], optional = true } toml = { version = "0.8", optional = true } tower = { version = "0.5", optional = true } tower-http = { version = "0.6", features = ["cors"], optional = true } # Logging tracing = { version = "0.1", optional = true } tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true } uuid = { version = "1.0", features = ["js", "serde", "v4", "v5", "v7"] } [dev-dependencies] anyhow = "1.0" axum = { version = "0.8", features = ["macros"] } base64 = "0.22" blake3 = "1.5" dirigent_protocol = { path = "../dirigent_protocol" } dirigent_tools = { path = "../dirigent_tools" } tempfile = "3.0" # Test dependencies - mirror the optional server dependencies tokio = { version = "1", features = ["full", "test-util"] } toml = "0.8" [[test]] name = "stream_registry_test" required-features = ["test-utils"] [features] default = [] test-utils = [] server = [ "dep:agent-client-protocol", "dep:async-stream", "dep:axum", "dep:base64", "dep:blake3", "dep:dirigent_acp_api", "dep:dirigent_config", "dep:dirigent_inspector", "dep:dirigent_protocol", "dep:dirigent_tools", "dep:eventsource-client", "dep:futures", "dep:once_cell", "dep:opencode_client", "dep:reqwest", "dep:thiserror", "dep:tokio", "dep:toml", "dep:tower", "dep:tower-http", "dep:tracing", "dep:tracing-subscriber", "dep:dirigent_process", ]