[package]
edition = "2021"
rust-version = "1.88"
name = "io-harness"
version = "0.19.0"
authors = ["Aakash Pawar"]
build = false
exclude = [
".ultraship",
".env",
".github",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An embeddable agent runtime for Rust: any task, any provider, in your own process. Run commands, edit files and search a repository under a layered permission boundary on files, commands and network; gate the result on the project's own test command in any language, or on nothing at all; and keep a full SQLite trace of every step, refusal and budget draw. With an execution sandbox, contained sub-agents, an MCP client, and durable resume for unattended runs."
readme = "README.md"
keywords = [
"agent",
"ai",
"llm",
"mcp",
"harness",
]
categories = [
"asynchronous",
"api-bindings",
]
license = "Apache-2.0"
repository = "https://github.com/initorigin/io-harness"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
barcode = [
"dep:rxing",
"dep:image",
]
default = []
documents = [
"xlsx",
"docx",
"pptx",
"pdf",
"barcode",
]
docx = ["dep:docx-rs"]
media = ["dep:base64"]
pdf = [
"dep:lopdf",
"dep:pdf-extract",
]
pptx = [
"dep:zip",
"dep:quick-xml",
]
xlsx = [
"dep:calamine",
"dep:rust_xlsxwriter",
"dep:umya-spreadsheet",
]
[lib]
name = "io_harness"
path = "src/lib.rs"
[[example]]
name = "config_live"
path = "examples/config_live.rs"
[[example]]
name = "context_growth"
path = "examples/context_growth.rs"
[[example]]
name = "context_growth_bounded"
path = "examples/context_growth_bounded.rs"
[[example]]
name = "crash_fixture"
path = "examples/crash_fixture.rs"
[[example]]
name = "custom_tool"
path = "examples/custom_tool.rs"
[[example]]
name = "documents_live"
path = "examples/documents_live.rs"
required-features = ["documents"]
[[example]]
name = "durable_run"
path = "examples/durable_run.rs"
[[example]]
name = "edit_file"
path = "examples/edit_file.rs"
[[example]]
name = "edit_repo"
path = "examples/edit_repo.rs"
[[example]]
name = "exec_live"
path = "examples/exec_live.rs"
[[example]]
name = "fallback_live"
path = "examples/fallback_live.rs"
[[example]]
name = "live_accounting"
path = "examples/live_accounting.rs"
[[example]]
name = "live_f11"
path = "examples/live_f11.rs"
[[example]]
name = "live_resume"
path = "examples/live_resume.rs"
[[example]]
name = "mcp_fixture_server"
path = "examples/mcp_fixture_server.rs"
[[example]]
name = "mcp_run"
path = "examples/mcp_run.rs"
[[example]]
name = "media_git_live"
path = "examples/media_git_live.rs"
required-features = [
"media",
"barcode",
]
[[example]]
name = "policy_run"
path = "examples/policy_run.rs"
[[example]]
name = "sandbox_run"
path = "examples/sandbox_run.rs"
[[example]]
name = "skills_run"
path = "examples/skills_run.rs"
[[example]]
name = "stall_live"
path = "examples/stall_live.rs"
[[example]]
name = "subagents"
path = "examples/subagents.rs"
[[test]]
name = "accounting"
path = "tests/accounting.rs"
[[test]]
name = "changelog"
path = "tests/changelog.rs"
[[test]]
name = "checkpoint"
path = "tests/checkpoint.rs"
[[test]]
name = "config"
path = "tests/config.rs"
[[test]]
name = "context"
path = "tests/context.rs"
[[test]]
name = "custom_tools"
path = "tests/custom_tools.rs"
[[test]]
name = "deadline"
path = "tests/deadline.rs"
[[test]]
name = "determinism"
path = "tests/determinism.rs"
[[test]]
name = "docs_drift"
path = "tests/docs_drift.rs"
[[test]]
name = "edit_file"
path = "tests/edit_file.rs"
[[test]]
name = "edit_tool"
path = "tests/edit_tool.rs"
[[test]]
name = "exec_tool"
path = "tests/exec_tool.rs"
[[test]]
name = "fallback"
path = "tests/fallback.rs"
[[test]]
name = "git"
path = "tests/git.rs"
[[test]]
name = "guide_pages"
path = "tests/guide_pages.rs"
[[test]]
name = "language_agnostic"
path = "tests/language_agnostic.rs"
[[test]]
name = "mcp"
path = "tests/mcp.rs"
[[test]]
name = "media"
path = "tests/media.rs"
[[test]]
name = "memory"
path = "tests/memory.rs"
[[test]]
name = "multi_file"
path = "tests/multi_file.rs"
[[test]]
name = "net"
path = "tests/net.rs"
[[test]]
name = "observe"
path = "tests/observe.rs"
[[test]]
name = "outcome_record"
path = "tests/outcome_record.rs"
[[test]]
name = "parity"
path = "tests/parity.rs"
[[test]]
name = "policy"
path = "tests/policy.rs"
[[test]]
name = "provider_failures"
path = "tests/provider_failures.rs"
[[test]]
name = "public_api"
path = "tests/public_api.rs"
[[test]]
name = "readme"
path = "tests/readme.rs"
[[test]]
name = "replay"
path = "tests/replay.rs"
[[test]]
name = "sandbox"
path = "tests/sandbox.rs"
[[test]]
name = "skills"
path = "tests/skills.rs"
[[test]]
name = "stall"
path = "tests/stall.rs"
[[test]]
name = "store_open"
path = "tests/store_open.rs"
[[test]]
name = "subagents"
path = "tests/subagents.rs"
[[test]]
name = "verify_gate"
path = "tests/verify_gate.rs"
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.calamine]
version = "0.36"
optional = true
[dependencies.docx-rs]
version = "0.4"
optional = true
[dependencies.futures-util]
version = "0.3"
[dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
]
optional = true
default-features = false
[dependencies.lopdf]
version = "0.44"
optional = true
[dependencies.pdf-extract]
version = "0.12"
optional = true
[dependencies.quick-xml]
version = "0.37"
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"stream",
"rustls",
]
default-features = false
[dependencies.rmcp]
version = "2.2.0"
features = [
"client",
"transport-child-process",
"transport-streamable-http-client-reqwest",
]
default-features = false
[dependencies.rusqlite]
version = "0.32"
features = ["bundled"]
[dependencies.rust_xlsxwriter]
version = "0.96"
optional = true
[dependencies.rxing]
version = "0.9"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"fs",
"time",
"process",
]
[dependencies.toml]
version = "0.8"
features = ["parse"]
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.umya-spreadsheet]
version = "3.0"
optional = true
[dependencies.zip]
version = "2"
features = ["deflate"]
optional = true
default-features = false
[dev-dependencies.hyper]
version = "1.11.0"
features = [
"server",
"http1",
]
[dev-dependencies.hyper-util]
version = "0.1.20"
features = [
"tokio",
"service",
"server",
]
[dev-dependencies.rmcp]
version = "2.2.0"
features = [
"server",
"transport-io",
"transport-streamable-http-server",
]
default-features = false
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"fs",
"time",
"sync",
]
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(docsrs)"]