[package]
name = "ralphterm"
version = "0.3.10"
edition = "2021"
rust-version = "1.85"
description = "Programmable PTY for the official Claude Code and Codex CLIs. Drop-in for ralphex 1.2.0 without --print or -p — drives the real interactive REPL via PTY + file-handoff."
license = "MIT"
authors = ["Hetoku <volonter84@gmail.com>"]
repository = "https://github.com/RayforceDB/ralphterm"
homepage = "https://ralphterm.rayforcedb.com"
documentation = "https://ralphterm.rayforcedb.com/docs/"
readme = "README.md"
keywords = ["ralphex", "claude", "codex", "pty", "plan-runner"]
categories = ["command-line-utilities", "development-tools"]
include = [
    "src/**/*",
    "scripts/wrappers/**/*",
    "dashboard/**/*",
    "Cargo.toml",
    "Cargo.lock",
    "README.md",
    "LICENSE",
]

[dependencies]
anyhow = "1.0"
async-trait = "0.1"
axum = { version = "0.7", features = ["ws", "macros"] }
chrono = { version = "0.4", default-features = false, features = ["clock"] }
clap = { version = "4.5", features = ["derive", "env"] }
dashmap = "6.1"
portable-pty = "0.8"
regex = "1.11"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
shlex = "1.3"
tokio = { version = "1.42", features = ["full"] }
tokio-stream = "0.1"
tower-http = { version = "0.6", features = ["cors", "trace"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
uuid = { version = "1.11", features = ["v4", "serde"] }

[dev-dependencies]

[[bin]]
name = "ralphterm"
path = "src/main.rs"

[[bin]]
name = "ralphex"
path = "src/bin/ralphex.rs"

# The profile that 'cargo dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"

# Config for 'cargo dist'
[workspace.metadata.dist]
# CI backends to support
ci = "github"
# The installers to generate for each app
installers = ["shell", "powershell"]
# Target platforms to build apps for (Rust target-triple syntax).
# Apple Silicon + Intel Mac + Linux x86_64 ship prebuilt binaries.
# Windows is omitted: the crate currently uses std::os::unix in
# src/runner.rs, src/cli.rs, src/config.rs (PermissionsExt, symlink),
# so cargo build for x86_64-pc-windows-msvc fails at the source level.
# Real Windows support also needs ConPTY (different from unix PTY).
# Track as a v0.4 task.
# aarch64-linux is omitted until we wire `cross`.
targets = [
    "aarch64-apple-darwin",
    "x86_64-apple-darwin",
    "x86_64-unknown-linux-gnu",
]
# Path that installers should place binaries in
install-path = "$HOME/.local/bin"
# Which actions to run on pull requests
pr-run-mode = "plan"
# Skip checking whether the specified configuration files are up to date
allow-dirty = ["ci"]
# Whether to install an updater program
install-updater = false
# The preferred cargo-dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.22.0"
# cargo-dist 0.22 still emits retired/wrong-arch GitHub runner labels
# (ubuntu-20.04, windows-2019, macos-13 for aarch64). Pin every target
# to a live, correct-arch hosted runner:
#  - linux x86_64 → ubuntu-latest (was: ubuntu-20.04, retired)
#  - aarch64-apple-darwin → macos-14 (Apple Silicon; was: macos-13, Intel-only)
#  - x86_64-apple-darwin → macos-13 (still live for Intel macs)
#  - x86_64-pc-windows-msvc → windows-latest (was: windows-2019, retired)
github-custom-runners = { "aarch64-unknown-linux-gnu" = "ubuntu-latest", "x86_64-unknown-linux-gnu" = "ubuntu-latest", "aarch64-apple-darwin" = "macos-14", "x86_64-apple-darwin" = "macos-14", "x86_64-pc-windows-msvc" = "windows-latest" }
