[package]
name = "cellos-telemetry"
version = "0.5.1"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
description = "In-guest telemetry agent for CellOS — runs as PID 2 inside Firecracker microVMs, emits CBOR-over-vsock observations. No signing key by design (ADR-0006)."
readme = "README.md"
repository.workspace = true
homepage.workspace = true
documentation = "https://docs.rs/cellos-telemetry"
keywords = ["cellos", "telemetry", "vsock", "observability", "microvm"]
categories = ["os::linux-apis", "development-tools::profiling", "no-std"]

[lib]
name = "cellos_telemetry"
path = "src/lib.rs"

[[bin]]
name = "cellos-telemetry"
path = "src/main.rs"

[dependencies]
# F3 admission-path prep (2026-05-16): the guest declaration projects
# `DeclaredAuthoritySurface` so the host can subset-check `declared ⊆
# authorized`. No signing primitives — this is a plain value type.
cellos-core = { version = "0.7.2", path = "../cellos-core" }
libc.workspace = true
# DENY: ring, ed25519-dalek, hmac, rustls, webpki, sha2-as-mac
#
# This crate MUST NOT depend on any signing primitive. The host trusts the
# vsock channel (CID:port bound by the supervisor before the workload runs),
# not a payload signature. The guest agent never holds a key — a compromised
# guest could sign whatever it wanted, so signature-in-guest is theatre.
# Implementation needs no signing deps; libc + std suffice.
# ADR-0006 §5 + Compliance gate. Enforced via cargo-deny in CI.

[lints]
workspace = true
