gate4agent 0.2.37

Universal transport library for CLI AI agents (Claude Code, Codex, Gemini, OpenCode). Pipe, PTY, ACP (Agent Client Protocol), and Daemon transports.
Documentation
[package]

name = "gate4agent"

version = "0.2.37"

edition = "2021"

description = "Universal transport library for CLI AI agents (Claude Code, Codex, Gemini, OpenCode). Pipe, PTY, ACP (Agent Client Protocol), and Daemon transports."

license = "MIT"

repository = "https://github.com/ZENG3LD/gate4agent"

readme = "README.md"

keywords = ["claude", "agent", "cli", "pipe", "pty"]

categories = ["development-tools", "command-line-utilities"]



[dependencies]

# PTY creation and cross-platform ConPTY support

portable-pty = "0.8"



# ANSI escape sequence stripping (VteParser)

vte = "0.13"



# Full virtual terminal screen emulation (ScreenParser, PTY mirror mode)

vt100 = "0.15"



# Async runtime + broadcast channel (required for PtySession and PipeSession)

tokio = { version = "1", features = ["rt", "rt-multi-thread", "sync", "time", "process"] }



# Serialization for AgentEvent, CliTool, etc.

serde = { version = "1", features = ["derive"] }



# UUID for InstanceId

uuid = { version = "1", features = ["v4", "serde"] }



# NDJSON parsing

serde_json = "1"



# Timestamps in RateLimitInfo

chrono = { version = "0.4", features = ["serde"] }



# PtyError, AgentError

thiserror = "2"



# SQLite reader for OpenCode history (bundled so no system SQLite required)

rusqlite = { version = "0.31", features = ["bundled"] }



# RateLimitDetector patterns, OutputParser regex matching

regex = "1"



# HTTP client for live OpenRouter model fetch (optional, behind cure-network feature)

reqwest = { version = "0.12", features = ["json"], optional = true }



[features]

default = []

# Enable live model discovery via https://openrouter.ai/api/v1/models.

# Adds reqwest as a dependency. Consumers that only need disk-based cure

# (OpenCode cache) do not need this feature.

cure-network = ["dep:reqwest"]



[dev-dependencies]

tokio = { version = "1", features = ["full", "test-util"] }



# Standalone crate — not part of the parent workspace

[workspace]