[package] license = "Apache-2.0" name = "kigi-workspace" version.workspace = true edition.workspace = true description = "Core host-local workspace library (FS, VCS, execution, discovery) for kigi-shell and remote sampler" [dependencies] anyhow = { workspace = true } arc-swap = { workspace = true } # Diagnostics HTTP server (in-guest readiness/status endpoint); pinned to the # workspace version already used by the sibling preview proxy. axum = { workspace = true } dunce = { workspace = true } kigi-version = { workspace = true } async-stream = { workspace = true } async-trait = { workspace = true } futures = { workspace = true } fs2 = { workspace = true } dirs = "6" parking_lot = { workspace = true } git2 = { workspace = true } ignore = { workspace = true } md5 = { workspace = true } regex = { workspace = true } rusqlite = { version = "0.37", features = ["bundled"] } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = [ "fs", "io-std", "macros", "process", "rt", "rt-multi-thread", "sync", ] } tracing = { workspace = true } uuid = { workspace = true, features = ["v4", "v5", "v7"] } kigi-agent = { path = "../kigi-agent" } kigi-tools = { path = "../kigi-tools" } kigi-tools-api = { path = "../kigi-tools-api" } kigi-workspace-client = { path = "../kigi-workspace-client" } kigi-workspace-types = { path = "../kigi-workspace-types" } kigi-config = { workspace = true } # Leaf config value types (RemoteSettings, BoolFlag) for the folder-trust decision. kigi-config-types = { workspace = true } toml = { workspace = true, features = ["preserve_order"] } dashmap = { workspace = true } agent-client-protocol = { workspace = true } kigi-acp-lib = { workspace = true } kigi-codebase-graph = { path = "../kigi-codebase-graph" } kigi-paths = { path = "../kigi-paths" } base64 = { workspace = true } infer = { workspace = true } sha2 = { workspace = true, features = ["force-soft"] } bstr = "1.12.1" hashbrown = "0.16.1" nohash-hasher = "0.2.0" rustc-hash = "2.1.1" nucleo = { workspace = true } indexmap = { workspace = true, features = ["serde"] } smallvec = { workspace = true } chrono = { workspace = true } tree-sitter = "0.25.10" tree-sitter-bash = "0.25" url = { workspace = true } kigi-env = { workspace = true } humantime-serde = { workspace = true } prometheus = { workspace = true } glob = "0.3" kigi-sandbox = { path = "../kigi-sandbox", default-features = false } kigi-hooks = { path = "../kigi-hooks" } kigi-hunk-tracker = { path = "../kigi-hunk-tracker" } # `metrics` enables the SDK's metric-donation client (periodic Prometheus # registry gather → OTLP → hub donation pump); see metric_donation_reporter. kigi-computer-hub-sdk = { workspace = true, features = ["metrics"] } kigi-computer-hub-mcp-adapter = { path = "../../common/kigi-computer-hub-mcp-adapter" } kigi-mcp = { path = "../kigi-mcp" } kigi-file-utils = { path = "../kigi-file-utils" } kigi-auth = { path = "../kigi-auth" } kigi-log = { workspace = true } kigi-tty-utils = { workspace = true } kigi-sqlite-journal = { workspace = true } reqwest = { workspace = true } kigi-tool-protocol = { workspace = true } kigi-tool-runtime = { workspace = true } kigi-tool-types = { workspace = true } tokio-util = { workspace = true } urlencoding = "2" kigi-fast-worktree = { path = "../kigi-fast-worktree", features = ["metadata"] } # tonic stays for `tonic::Status`/`Code` mapping in workspace_ops deploy errors. tonic = { workspace = true } kigi-fsnotify = { path = "../kigi-fsnotify" } clap = { workspace = true } tracing-subscriber = { workspace = true } # "enable" required for the SDK's spans to record at all. fastrace = { workspace = true, features = ["enable"] } kigi-tracing = { workspace = true } rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] } tokio-tungstenite = { workspace = true, features = ["rustls-tls-webpki-roots"] } tempfile = { workspace = true } zstd = { workspace = true } # Only referenced by the Unix self-daemonize path (fork/setsid/dup2/chdir). [target.'cfg(unix)'.dependencies] libc = { workspace = true } # Only referenced by the Windows self-daemonize path (SetStdHandle). [target.'cfg(windows)'.dependencies] windows = { workspace = true } [[bin]] name = "kigi-workspace-server" path = "src/bin/workspace_server.rs" [[bin]] name = "workspace-server-probe" path = "src/bin/workspace_server_probe.rs" [features] default = ["sandbox-enforce"] compression = [] sandbox-enforce = ["kigi-sandbox/enforce"] # Exposes the `#[cfg(test)]` construction seams (`WorkspaceOps::for_test`, # `WorkspaceHandle::for_test`, …) to dependent crates' test builds. Enable # from a dependent's [dev-dependencies] entry only — never in production. test-support = [] default-bazel = [ "sandbox-enforce", ] [dev-dependencies] filetime = { workspace = true } tempfile = { workspace = true } tokio = { workspace = true, features = ["test-util"] } kigi-test-utils = { path = "../../common/kigi-test-utils" } # Decode tar.gz archives produced by workspace upload helpers in tests. flate2 = { workspace = true } tar = { workspace = true } [package.metadata.cargo-shear] ignored = ["tokio-tungstenite"] [lints] workspace = true