[package]
edition = "2024"
rust-version = "1.89"
name = "haematite-cli"
version = "0.21.6"
authors = ["Tom Whiting <tom@ablative.com.au>"]
build = false
exclude = ["tests/embedded_copies.rs"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The haematite command: serve a store, its door and Studio, answer MCP, query with jq, and host the store's assistant seat"
readme = false
license = "Apache-2.0"
repository = "https://github.com/ablative-io/haematite"
resolver = "2"
[features]
test-support = []
[lib]
name = "haematite_cli"
path = "src/lib.rs"
[[bin]]
name = "assistant-fake"
path = "tests/assistant_fake/entry.rs"
test = false
required-features = ["test-support"]
[[bin]]
name = "haematite"
path = "src/main.rs"
[[example]]
name = "assistant_probe"
path = "examples/assistant_probe.rs"
required-features = ["test-support"]
[[example]]
name = "probe_query_ms"
path = "examples/probe_query_ms.rs"
[[test]]
name = "assistant_fake"
path = "tests/assistant_fake/main.rs"
test = false
[[test]]
name = "assistant_seat"
path = "tests/assistant_seat.rs"
required-features = ["test-support"]
[[test]]
name = "branch_rename_guard"
path = "tests/branch_rename_guard.rs"
[[test]]
name = "client_call"
path = "tests/client_call.rs"
[[test]]
name = "client_query"
path = "tests/client_query.rs"
[[test]]
name = "client_write"
path = "tests/client_write.rs"
[[test]]
name = "collection_schema"
path = "tests/collection_schema.rs"
[[test]]
name = "door_children"
path = "tests/door_children.rs"
[[test]]
name = "fsync_call_site_census"
path = "tests/fsync_call_site_census.rs"
[[test]]
name = "history_check"
path = "tests/history_check.rs"
[[test]]
name = "install_cli"
path = "tests/install_cli.rs"
[[test]]
name = "leaf_log_sealed"
path = "tests/leaf_log_sealed.rs"
[[test]]
name = "mcp_remote"
path = "tests/mcp_remote.rs"
[[test]]
name = "mutation_contract"
path = "tests/mutation_contract.rs"
[[test]]
name = "rename"
path = "tests/rename.rs"
[[test]]
name = "served_branches"
path = "tests/served_branches.rs"
[[test]]
name = "served_catalogue"
path = "tests/served_catalogue.rs"
[[test]]
name = "served_changes"
path = "tests/served_changes.rs"
[[test]]
name = "served_collections"
path = "tests/served_collections.rs"
[[test]]
name = "served_document_delete"
path = "tests/served_document_delete.rs"
[[test]]
name = "served_edges"
path = "tests/served_edges.rs"
[[test]]
name = "served_equality_declarations"
path = "tests/served_equality_declarations.rs"
[[test]]
name = "served_fork_kept"
path = "tests/served_fork_kept.rs"
[[test]]
name = "served_frames"
path = "tests/served_frames.rs"
[[test]]
name = "served_history"
path = "tests/served_history.rs"
[[test]]
name = "served_history_reads"
path = "tests/served_history_reads.rs"
[[test]]
name = "served_history_rows"
path = "tests/served_history_rows.rs"
[[test]]
name = "served_import"
path = "tests/served_import.rs"
[[test]]
name = "served_lineage"
path = "tests/served_lineage.rs"
[[test]]
name = "served_merge_dangling"
path = "tests/served_merge_dangling.rs"
[[test]]
name = "served_merge_prepare"
path = "tests/served_merge_prepare.rs"
[[test]]
name = "served_open_bound"
path = "tests/served_open_bound.rs"
[[test]]
name = "served_path_writer"
path = "tests/served_path_writer.rs"
[[test]]
name = "served_process"
path = "tests/served_process.rs"
[[test]]
name = "served_protocol"
path = "tests/served_protocol.rs"
[[test]]
name = "served_relations"
path = "tests/served_relations.rs"
[[test]]
name = "served_review"
path = "tests/served_review.rs"
[[test]]
name = "served_review_counts"
path = "tests/served_review_counts.rs"
[[test]]
name = "served_socket"
path = "tests/served_socket.rs"
[[test]]
name = "served_storage"
path = "tests/served_storage.rs"
[[test]]
name = "served_vectors"
path = "tests/served_vectors.rs"
[[test]]
name = "write_refusal_contract"
path = "tests/write_refusal_contract.rs"
[dependencies.agent-client-protocol-schema]
version = "=1.5.0"
features = ["unstable_protocol_v2"]
[dependencies.anyhow]
version = "1"
[dependencies.base64]
version = "0.22"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.chrono]
version = "=0.4.45"
features = ["std"]
default-features = false
[dependencies.ed25519-dalek]
version = "2"
[dependencies.flate2]
version = "=1.1.9"
[dependencies.haem-frames]
version = "0.1.1"
[dependencies.haematite]
version = "0.21.6"
[dependencies.haematite-query]
version = "0.21.6"
[dependencies.jsonschema]
version = "0.56"
features = ["arbitrary-precision"]
default-features = false
[dependencies.lys-pass]
version = "=0.3.4"
features = ["http"]
[dependencies.num-traits]
version = "=0.2.19"
[dependencies.reqwest]
version = "=0.12.28"
default-features = false
[dependencies.rustix]
version = "1"
features = [
"process",
"fs",
"stdio",
]
[dependencies.schemars]
version = "=1.2.2"
features = [
"derive",
"std",
"raw_value",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
features = [
"arbitrary_precision",
"raw_value",
]
[dependencies.serde_path_to_error]
version = "=0.1.20"
[dependencies.sha2]
version = "=0.10.9"
[dependencies.tokio]
version = "=1.53.1"
features = [
"rt",
"net",
"time",
"macros",
"process",
"signal",
"io-util",
"sync",
]
[dependencies.ureq]
version = "=3.4.1"
features = ["rustls"]
default-features = false
[dependencies.url]
version = "=2.5.8"
[dev-dependencies.tempfile]
version = "3"
[lints.clippy]
allow_attributes = "deny"
allow_attributes_without_reason = "deny"
cast_possible_truncation = "allow"
dbg_macro = "deny"
expect_used = "deny"
float_cmp_const = "deny"
future_not_send = "allow"
iter_over_hash_type = "deny"
large_stack_frames = "deny"
let_underscore_must_use = "deny"
let_underscore_untyped = "deny"
lossy_float_literal = "deny"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
multiple_unsafe_ops_per_block = "deny"
must_use_candidate = "allow"
panic = "deny"
string_slice = "deny"
todo = "deny"
unimplemented = "deny"
unused_result_ok = "deny"
unwrap_in_result = "deny"
unwrap_used = "deny"
verbose_file_reads = "deny"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.nursery]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1