contextgraph-host 2.0.0

Context Graph Protocol host runtime: provider discovery, stdio/http transports, capability negotiation, routing, consent gating. Usable by any Rust agent that wants Context Graph Protocol support.
Documentation
[package]
name = "contextgraph-host"
description = "Context Graph Protocol host runtime: provider discovery, stdio/http transports, capability negotiation, routing, consent gating. Usable by any Rust agent that wants Context Graph Protocol support."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/contextgraph-host"
readme = "README.md"
keywords = ["contextgraph", "context", "protocol", "agents", "llm"]
categories = ["asynchronous", "network-programming", "api-bindings"]
# Overrides the workspace default (publish = false) — this crate is the
# industry-facing host runtime meant to be published on its own (issue #19).
publish = true

[dependencies]
# Floor requirement (not caret): the release pipeline stamps every workspace
# member to the release version at build time, so a caret req like "0.1.0"
# stops matching at the first minor bump (path deps must satisfy `version`
# too). ">=" keeps the stamped build resolving at any version and remains a
# valid crates.io requirement for the independent Context Graph Protocol publish (PUBLISHING.md).
#
# The floor moved to 2.0.0 with the open-`FrameKind` break (ADR 0011): this
# crate does not compile against `contextgraph-types` 1.x, so a floor of
# ">=1.0.0" would let cargo resolve a pair that cannot build.
#
# `attestation` is enabled unconditionally. It is off by default in
# `contextgraph-types` so that crate's "zero dependencies beyond serde" promise
# holds for a pure wire consumer; a host is the party that *checks* signatures,
# so it is the right place to pay for the cryptography (ADR 0016).
contextgraph-types = { path = "../contextgraph-types", version = ">=2.0.0", features = [
    "attestation",
] }
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
tokio.workspace = true
async-trait.workspace = true
futures-util.workspace = true
reqwest.workspace = true
# Real content-addressing for the prompt-ingest provider (ADR 0006). The
# zero-dep-beyond-serde ethos is a `contextgraph-types` value; the host runtime
# already pulls SHA-256 transitively via rustls and is the right home for it.
sha2.workspace = true

[target.'cfg(unix)'.dependencies]
# Unix process-group creation (setsid) + kill(-pgid): a stdio provider's
# whole child tree dies on drop/shutdown, never outliving the host
# (06-context-protocol.md ; 02-architecture.md §8). Same narrow
# OS-boundary use stella-tools' bash tool makes.
libc.workspace = true

[dev-dependencies]
wiremock = "0.6"