# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.92"
name = "ironclaw"
version = "0.21.0"
authors = ["NEAR AI <support@near.ai>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Secure personal AI assistant that protects your data and expands its capabilities on the fly"
homepage = "https://github.com/nearai/ironclaw"
readme = "README.md"
license = "MIT OR Apache-2.0"
repository = "https://github.com/nearai/ironclaw"

[package.metadata.wix]
upgrade-guid = "D0156E61-BA37-451E-8AB9-1A2ECCCFA48F"
path-guid = "F90B6EA6-87F7-499B-BB19-CF55DE1EB339"
license = false
eula = false

[features]
bedrock = [
    "dep:aws-config",
    "dep:aws-sdk-bedrockruntime",
    "dep:aws-smithy-types",
]
default = [
    "postgres",
    "libsql",
    "html-to-markdown",
]
html-to-markdown = [
    "dep:html-to-markdown-rs",
    "dep:readabilityrs",
]
import = [
    "dep:json5",
    "libsql",
]
integration = []
libsql = ["dep:libsql"]
postgres = [
    "dep:deadpool-postgres",
    "dep:tokio-postgres",
    "dep:tokio-postgres-rustls",
    "dep:rustls",
    "dep:rustls-native-certs",
    "dep:postgres-types",
    "dep:refinery",
    "dep:pgvector",
    "rust_decimal/db-tokio-postgres",
]

[lib]
name = "ironclaw"
path = "src/lib.rs"

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

[[test]]
name = "batch_query_tests"
path = "tests/batch_query_tests.rs"

[[test]]
name = "config_round_trip"
path = "tests/config_round_trip.rs"

[[test]]
name = "dispatched_routine_run_tests"
path = "tests/dispatched_routine_run_tests.rs"

[[test]]
name = "e2e_advanced_traces"
path = "tests/e2e_advanced_traces.rs"

[[test]]
name = "e2e_attachments"
path = "tests/e2e_attachments.rs"

[[test]]
name = "e2e_builtin_tool_coverage"
path = "tests/e2e_builtin_tool_coverage.rs"

[[test]]
name = "e2e_metrics_test"
path = "tests/e2e_metrics_test.rs"

[[test]]
name = "e2e_recorded_trace"
path = "tests/e2e_recorded_trace.rs"

[[test]]
name = "e2e_routine_heartbeat"
path = "tests/e2e_routine_heartbeat.rs"

[[test]]
name = "e2e_safety_layer"
path = "tests/e2e_safety_layer.rs"

[[test]]
name = "e2e_spot_checks"
path = "tests/e2e_spot_checks.rs"

[[test]]
name = "e2e_status_events"
path = "tests/e2e_status_events.rs"

[[test]]
name = "e2e_telegram_message_routing"
path = "tests/e2e_telegram_message_routing.rs"

[[test]]
name = "e2e_thread_id_isolation"
path = "tests/e2e_thread_id_isolation.rs"

[[test]]
name = "e2e_thread_scheduling"
path = "tests/e2e_thread_scheduling.rs"
required-features = [
    "libsql",
    "integration",
]

[[test]]
name = "e2e_tool_coverage"
path = "tests/e2e_tool_coverage.rs"

[[test]]
name = "e2e_tool_param_coercion"
path = "tests/e2e_tool_param_coercion.rs"

[[test]]
name = "e2e_trace_error_path"
path = "tests/e2e_trace_error_path.rs"

[[test]]
name = "e2e_trace_file_tools"
path = "tests/e2e_trace_file_tools.rs"

[[test]]
name = "e2e_trace_memory"
path = "tests/e2e_trace_memory.rs"

[[test]]
name = "e2e_worker_coverage"
path = "tests/e2e_worker_coverage.rs"

[[test]]
name = "e2e_workspace_coverage"
path = "tests/e2e_workspace_coverage.rs"

[[test]]
name = "gateway_workflow_integration"
path = "tests/gateway_workflow_integration.rs"

[[test]]
name = "heartbeat_integration"
path = "tests/heartbeat_integration.rs"

[[test]]
name = "html_to_markdown"
path = "tests/html_to_markdown.rs"
required-features = ["html-to-markdown"]

[[test]]
name = "import_openclaw"
path = "tests/import_openclaw.rs"

[[test]]
name = "import_openclaw_comprehensive"
path = "tests/import_openclaw_comprehensive.rs"

[[test]]
name = "import_openclaw_e2e"
path = "tests/import_openclaw_e2e.rs"

[[test]]
name = "import_openclaw_errors"
path = "tests/import_openclaw_errors.rs"

[[test]]
name = "import_openclaw_idempotency"
path = "tests/import_openclaw_idempotency.rs"

[[test]]
name = "import_openclaw_integration"
path = "tests/import_openclaw_integration.rs"

[[test]]
name = "module_init_integration"
path = "tests/module_init_integration.rs"

[[test]]
name = "openai_compat_integration"
path = "tests/openai_compat_integration.rs"

[[test]]
name = "pairing_integration"
path = "tests/pairing_integration.rs"

[[test]]
name = "provider_chaos"
path = "tests/provider_chaos.rs"

[[test]]
name = "relay_integration"
path = "tests/relay_integration.rs"

[[test]]
name = "sighup_reload_integration"
path = "tests/sighup_reload_integration.rs"

[[test]]
name = "support_unit_tests"
path = "tests/support_unit_tests.rs"

[[test]]
name = "telegram_auth_integration"
path = "tests/telegram_auth_integration.rs"

[[test]]
name = "tool_schema_validation"
path = "tests/tool_schema_validation.rs"

[[test]]
name = "trace_format"
path = "tests/trace_format.rs"

[[test]]
name = "trace_llm_tests"
path = "tests/trace_llm_tests.rs"

[[test]]
name = "wasm_channel_integration"
path = "tests/wasm_channel_integration.rs"

[[test]]
name = "wit_compat"
path = "tests/wit_compat.rs"

[[test]]
name = "workspace_integration"
path = "tests/workspace_integration.rs"

[[test]]
name = "ws_gateway_integration"
path = "tests/ws_gateway_integration.rs"

[[bench]]
name = "safety_check"
path = "benches/safety_check.rs"
harness = false

[[bench]]
name = "safety_pipeline"
path = "benches/safety_pipeline.rs"
harness = false

[dependencies.aes-gcm]
version = "0.10"

[dependencies.aho-corasick]
version = "1"

[dependencies.anyhow]
version = "1"

[dependencies.async-trait]
version = "0.1"

[dependencies.aws-config]
version = "1"
features = ["behavior-version-latest"]
optional = true

[dependencies.aws-sdk-bedrockruntime]
version = "1"
optional = true

[dependencies.aws-smithy-types]
version = "1"
optional = true

[dependencies.axum]
version = "0.8"
features = ["ws"]

[dependencies.base64]
version = "0.22.1"

[dependencies.blake3]
version = "1"

[dependencies.bollard]
version = "0.18"

[dependencies.bytes]
version = "1"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.chrono-tz]
version = "0.10"

[dependencies.clap]
version = "4"
features = [
    "derive",
    "env",
]

[dependencies.clap_complete]
version = "4.5.0"

[dependencies.cron]
version = "0.13"

[dependencies.crossterm]
version = "0.28"

[dependencies.deadpool-postgres]
version = "0.14"
optional = true

[dependencies.dirs]
version = "6"

[dependencies.dotenvy]
version = "0.15"

[dependencies.ed25519-dalek]
version = "2.2.0"
features = ["std"]

[dependencies.eventsource-stream]
version = "0.2"

[dependencies.flate2]
version = "1"

[dependencies.fs4]
version = "0.6"

[dependencies.futures]
version = "0.3"

[dependencies.hex]
version = "0.4.3"

[dependencies.hkdf]
version = "0.12"

[dependencies.hmac]
version = "0.12"

[dependencies.html-to-markdown-rs]
version = "2.3"
optional = true

[dependencies.http-body-util]
version = "0.1"

[dependencies.hyper]
version = "1.5"
features = [
    "server",
    "http1",
    "http2",
]

[dependencies.hyper-util]
version = "0.1"
features = [
    "server",
    "tokio",
    "http1",
    "http2",
]

[dependencies.iana-time-zone]
version = "0.1"

[dependencies.ironclaw_safety]
version = "0.1.0"

[dependencies.json5]
version = "0.4"
optional = true

[dependencies.libsql]
version = "0.6"
features = [
    "core",
    "replication",
    "remote",
    "tls",
]
optional = true
default-features = false

[dependencies.lru]
version = "0.16.3"

[dependencies.mime_guess]
version = "2.0.5"

[dependencies.open]
version = "5"

[dependencies.pdf-extract]
version = "0.7"

[dependencies.pgvector]
version = "0.4"
features = ["postgres"]
optional = true

[dependencies.postgres-types]
version = "0.2"
features = ["with-serde_json-1"]
optional = true

[dependencies.rand]
version = "0.8"

[dependencies.readabilityrs]
version = "0.1.2"
optional = true

[dependencies.refinery]
version = "0.8"
features = ["tokio-postgres"]
optional = true

[dependencies.regex]
version = "1"

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "multipart",
    "rustls-tls-native-roots",
    "stream",
]
default-features = false

[dependencies.rig-core]
version = "0.30"

[dependencies.rust_decimal]
version = "1"
features = [
    "serde",
    "serde-with-str",
    "maths",
]

[dependencies.rust_decimal_macros]
version = "1"

[dependencies.rustls]
version = "0.23"
optional = true
default-features = false

[dependencies.rustls-native-certs]
version = "0.8"
optional = true

[dependencies.rustyline]
version = "17"
features = [
    "custom-bindings",
    "derive",
    "with-file-history",
]

[dependencies.secrecy]
version = "0.10"
features = ["serde"]

[dependencies.semver]
version = "1"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.serde_yml]
version = "0.0.12"

[dependencies.sha2]
version = "0.10"

[dependencies.subtle]
version = "2"

[dependencies.tar]
version = "0.4"

[dependencies.termimad]
version = "0.34"

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.tokio-postgres]
version = "0.7"
features = [
    "with-uuid-1",
    "with-chrono-0_4",
    "with-serde_json-1",
]
optional = true

[dependencies.tokio-postgres-rustls]
version = "0.13"
optional = true

[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]

[dependencies.toml]
version = "0.8"

[dependencies.tower]
version = "0.5"

[dependencies.tower-http]
version = "0.6"
features = [
    "trace",
    "cors",
    "set-header",
]

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "env-filter",
    "json",
]

[dependencies.url]
version = "2"

[dependencies.urlencoding]
version = "2"

[dependencies.uuid]
version = "1"
features = [
    "v4",
    "v5",
    "serde",
]

[dependencies.wasmparser]
version = "0.220"

[dependencies.wasmtime]
version = "28"
features = ["component-model"]

[dependencies.wasmtime-wasi]
version = "28"

[dependencies.zip]
version = "2"
features = ["deflate"]
default-features = false

[dev-dependencies.criterion]
version = "0.5"

[dev-dependencies.insta]
version = "1.46.3"

[dev-dependencies.pretty_assertions]
version = "1"

[dev-dependencies.tempfile]
version = "3"

[dev-dependencies.testcontainers-modules]
version = "0.11"
features = ["postgres"]

[dev-dependencies.tokio-test]
version = "0.4"

[dev-dependencies.tokio-tungstenite]
version = "0.26"

[dev-dependencies.tracing-test]
version = "0.2"

[target.'cfg(target_os = "linux")'.dependencies.secret-service]
version = "4"
features = ["rt-tokio-crypto-rust"]

[target.'cfg(target_os = "linux")'.dependencies.zbus]
version = "4"

[target.'cfg(target_os = "macos")'.dependencies.security-framework]
version = "3"

[profile.dist]
lto = "fat"
codegen-units = 1
inherits = "release"

[profile.release]
strip = true
