runner-manager-agent 0.4.21

Demand reconciliation, runner package cache, and JIT runner lifecycle for runner-manager.
Documentation
# Owned by task a1. Dependencies are added in the root [workspace.dependencies]
# table, never here. See the header of the root Cargo.toml.
#
# `zip`, `tar`, `flate2`, `sha2`, and `hex` are here for `e2`: the GitHub runner
# package is a `.zip` on Windows and a `.tar.gz` elsewhere, and its published
# SHA-256 is verified before extraction (`05-infrastructure.md`).

[package]
name = "runner-manager-agent"
description = "Demand reconciliation, runner package cache, and JIT runner lifecycle for runner-manager."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true

[dependencies]
async-trait = { workspace = true }
chrono = { workspace = true }
flate2 = { workspace = true }
futures = { workspace = true }
hex = { workspace = true }
rand = { workspace = true }
remove_dir_all = { workspace = true }
reqwest = { workspace = true }
runner-manager-domain = { workspace = true }
runner-manager-github = { workspace = true }
runner-manager-platform = { workspace = true }
# `e3` writes the JIT runner configuration to a restrictive temporary file, and
# getting the bytes back out of the redacting wrapper `c4` returns needs
# `ExposeSecret` in scope here (`07-security.md`).
secrecy = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
sha2 = { workspace = true }
tar = { workspace = true }
tempfile = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
uuid = { workspace = true }
zip = { workspace = true }

[dev-dependencies]
insta = { workspace = true }
# Only to prove that a launch refusal actually reaches an operator: the detail is
# carried on a `tracing` event, so asserting it needs a subscriber to catch it.
tracing-subscriber = { workspace = true }
runner-manager-testkit = { workspace = true }
serial_test = { workspace = true }
tokio = { workspace = true, features = ["test-util"] }
wiremock = { workspace = true }