[package]
name = "hatchery-node"
version = "0.2.28"
edition = "2021"
license = "MIT"
repository = "https://github.com/ZENG3LD/hatchery"
description = "Hatchery node: the complete node kit over the gate4agent transport (PTY/inline sessions, file browser, local git, worktrees, mailbox, browser station, session restore)"
[lib]
name = "hatchery_node"
[[bin]]
name = "gate4agent-node"
path = "src/main.rs"
[dependencies]
socket2 = { version = "0.6", features = ["all"] }
ed25519-dalek = "2"
sha2 = "0.10"
hex = "0.4"
zeroize = "1"
getrandom = "0.3"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
hatchery-enroll = { path = "../hatchery-enroll", version = "0.2.28" }
hatchery-core = { path = "../hatchery-core", version = "0.2.28" }
hatchery-build = { path = "../hatchery-build", version = "0.2.28" }
base64 = "0.22"
dig2browser = { version = "0.5.3", optional = true, default-features = false }
tokio-tungstenite = { version = "0.26", optional = true }
image = { version = "0.25", optional = true, default-features = false, features = ["jpeg"] }
futures-util = { version = "0.3", optional = true, default-features = false, features = ["sink", "std"] }
mail4agent = { version = "0.4.17", optional = true, default-features = false }
claude-session-restore = { version = "0.1.3", optional = true }
codex-session-restore = { version = "0.1.3", optional = true }
grok-session-restore = { version = "0.1.4", optional = true }
kimi-session-restore = { version = "0.1.4", optional = true }
gate4agent-adapters = { version = "0.5.7" }
gate4agent-catalog = { version = "0.5.7" }
gate4agent-handle = { version = "0.5.7" }
gate4agent-node-core = { version = "0.5.7" }
gate4agent-node-protocol = { version = "0.5.7" }
gate4agent-node-wire = { version = "0.5.7" }
gate4agent-runtime-native = { version = "0.5.7" }
gate4agent-wake = { version = "0.5.7", default-features = false, features = ["wake-routine", "wake-kimi"] }
gate4agent-testkit = { optional = true, version = "0.5.7" }
gate4agent-types = { version = "0.5.7" }
ring = "=0.17.14"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml_edit = "0.22"
thiserror = "2"
tokio = { version = "1", features = ["io-util", "macros", "net", "process", "rt", "signal", "sync", "time"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tesserax = { version = "0.1.1", default-features = false, features = ["server"], optional = true }
tesserax-http = { version = "0.1.1", default-features = false, optional = true }
uuid = { version = "1", features = ["v4"], optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Storage_FileSystem",
"Win32_System_Diagnostics_ToolHelp",
"Win32_System_Pipes",
"Win32_System_Threading",
] }
[features]
default = ["kit"]
kit = ["m4a", "d2b", "session-restore", "wireguard", "memory", "local-server"]
m4a = ["dep:mail4agent"]
d2b = ["dep:dig2browser", "dep:tokio-tungstenite", "dep:futures-util", "dep:image"]
session-restore = [
"dep:claude-session-restore",
"dep:codex-session-restore",
"dep:grok-session-restore",
"dep:kimi-session-restore",
]
wireguard = ["gate4agent-node-core/wireguard"]
memory = []
local-server = ["dep:tesserax", "dep:tesserax-http", "dep:uuid"]
fixture = ["dep:gate4agent-testkit", "gate4agent-node-wire/fixture"]
dig2-station-probe = []
[dev-dependencies]
hatchery-keystore = { path = "../hatchery-keystore", version = "0.2.28" }
tempfile = "3"
tokio = { version = "1", features = ["io-util", "macros", "net", "process", "rt-multi-thread", "signal", "sync", "time"] }
vt100 = "0.16"
[[test]]
name = "windows_fixture_local_node_snapshot_reconnect_controller_lease"
required-features = ["fixture"]
[[test]]
name = "unix_workspace_file_read_e2e"
required-features = ["fixture"]
[[test]]
name = "windows_workspace_file_read_e2e"
required-features = ["fixture"]
[[test]]
name = "unix_fixture_local_node_e2e"
required-features = ["fixture"]
[[test]]
name = "windows_context_pack_worktree_bundle_e2e"
required-features = ["fixture"]
[[test]]
name = "windows_fixture_runtime_policy_e2e"
required-features = ["fixture"]