haematite-cli 0.21.1

The haematite command: serve a store, its door and Studio, answer MCP, query with jq, and host the store's assistant seat
Documentation
//! A verified bundle of the operator, configured workers and local plugin.
//!
//! Publication stages an exclusive sibling under the canonical parent. Each
//! payload and the manifest sync before the stage's child directories and root.
//! The complete verified stage is renamed once, then its parent syncs. A failed
//! unpublished stage is removed and its parent syncs; a published bundle is kept
//! when its final parent sync fails. Identical repeats verify first, then sync
//! every existing payload, manifest, child directory, root and parent in order.
//! No sync site is hidden in the payload copy or in cleanup.
//!
//! Refusals retain their original code: `bundle_arguments_invalid`,
//! `bundle_path_invalid`, `bundle_destination_invalid`, `bundle_config_invalid`,
//! `bundle_source_invalid`, `bundle_test_worker_refused`, `bundle_plugin_invalid`,
//! `bundle_plan_invalid`, `bundle_encoding_failed`, `bundle_read_failed`,
//! `bundle_size_overflow`, `bundle_source_changed`, `bundle_write_failed`,
//! `bundle_sync_failed`, `bundle_publish_failed`, `bundle_manifest_invalid`,
//! `bundle_payload_invalid`, `bundle_inventory_invalid` and
//! `bundle_report_write_failed`. A cleanup failure adds `bundle_cleanup_failed`
//! beside the original failure. `bundle_partial` is a separate marker, with the
//! completed staged payload names and publication state, only after a prior
//! payload completed. It never replaces a refusal code.
//!
//! Matching stage siblings are reported before a fresh stage is created, on
//! success and failure; they may belong to a live install and are never removed.
//! Names carry no destination, so a concurrent install in the same parent is
//! listed too. A non-UTF-8 path is listed with `[lossy]` and replacement characters
//! rather than refusing another install in that parent.
//! Publication may replace an empty directory created at the destination after
//! preflight, but the renamed stage is complete and cannot expose a partial bundle.
//! Verification read failures retain `bundle_read_failed` rather than becoming
//! a generic payload refusal.
//!
//! The configuration is a snapshot. Changed socket or data settings require a
//! fresh bundle destination; a changed repeat is `bundle_conflict` and preserves
//! the existing complete bundle.

mod agent;
mod bundle;
mod cli;
mod files;
mod plan;
mod publication;
mod types;

pub use bundle::install;
pub use cli::run;
pub use types::{Error, Partial, Report};

#[cfg(test)]
mod tests;

#[cfg(test)]
mod fixtures;

#[cfg(test)]
mod publication_tests;

#[cfg(test)]
mod agent_tests;