Skip to main content

max / makenotwork

1.5 KB · 40 lines History Blame Raw
1 [package]
2 name = "ops-exec"
3 version = "0.1.0"
4 edition = "2024"
5 license = "MIT"
6 description = "The trusted executor: run a typed, capability-gated step on a host and observe a host, over local exec, SSH, or an in-session agent. Trust root is SSH keys + Tailscale/Headscale only. Used by sando and bento."
7
8 [features]
9 default = []
10 # AgentRpc transport (the client half) — used by drivers that talk to ops-agent.
11 rpc = ["dep:reqwest", "dep:serde_json", "dep:futures-util"]
12 # The ops-agent binary (the on-host half). Pulls in the HTTP server + rpc.
13 agent = ["rpc", "dep:axum", "dep:tokio-stream", "dep:tracing-subscriber", "dep:toml"]
14
15 [dependencies]
16 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "io-util", "fs", "process", "sync"] }
17 async-trait = "0.1.83"
18 serde = { version = "1.0.228", features = ["derive"] }
19 anyhow = "1.0.102"
20 thiserror = "2.0.18"
21 tracing = "0.1.44"
22
23 # rpc / agent only
24 reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream", "json"], optional = true }
25 serde_json = { version = "1", optional = true }
26 futures-util = { version = "0.3", optional = true }
27 axum = { version = "0.8.8", optional = true }
28 tokio-stream = { version = "0.1", optional = true }
29 tracing-subscriber = { version = "0.3.22", features = ["env-filter"], optional = true }
30 toml = { version = "0.8", optional = true }
31
32 [[bin]]
33 name = "ops-agent"
34 path = "src/bin/ops-agent.rs"
35 required-features = ["agent"]
36
37 [dev-dependencies]
38 tempfile = "3.20"
39 tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread", "time"] }
40