[package]
name = "meerkat-mobkit"
description = "Companion orchestration platform for the Meerkat multi-agent runtime"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
rust-version.workspace = true

[lints]
workspace = true

[dependencies]
anyhow = "1"
serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9"
serde_json = "1"
schemars = "1.2.1"
toml = "0.8"
base64 = "0.22"
flate2 = "1"
tar = "0.4"
bytes = "1"
hmac = "0.12"
sha2 = "0.10"
ring = "0.17"
# Ed25519 keypair for cross-process gateway peering. Pulled in transitively
# via meerkat-comms; declared directly here so mobkit's `auth::peer_keys`
# can mint and persist gateway signing keys without crossing the meerkat
# crate seam. Keep features minimal — `std` for `OsRng`, `rand_core` so
# we can call `SigningKey::generate`.
ed25519-dalek = { version = "2", default-features = false, features = ["std", "rand_core"] }
rand_core = { version = "0.6", default-features = false, features = ["std"] }
chrono = "0.4"
chrono-tz = "0.10"
tokio = { version = "1", features = ["sync", "rt-multi-thread", "process", "io-util", "io-std", "signal", "macros", "net"] }
axum = { version = "0.8", features = ["json", "multipart"] }
tower = { version = "0.5", features = ["limit"] }
async-stream = "0.3"
form_urlencoded = "1"
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
futures = "0.3"
object_store = { version = "0.13", features = ["fs"] }
meerkat-core = "0.7"
meerkat-client = "0.7"
meerkat-contracts = "0.7"
meerkat-mob = "0.7"
meerkat-mob-mcp = "0.7"
meerkat-mcp = "0.7"
meerkat-models = "0.7"
# meerkat 0.7 split session memory out of `memory-store` (which now only maps
# to meerkat-store/memory); explicit `memory` enables need `memory-store-session`.
meerkat = { version = "0.7", features = ["comms", "skills", "mcp", "memory-store", "memory-store-session", "jsonl-store", "session-store", "sqlite-store"] }
meerkat-runtime = { version = "0.7", features = ["sqlite-store"] }
meerkat-session = { version = "0.7", features = ["session-store"] }
meerkat-store = { version = "0.7", features = ["sqlite"] }
meerkat-tools = "0.7"
tempfile = "3"
async-trait = "0.1"
rusqlite = { version = "0.37", features = ["bundled"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

[features]
integration-real-tests = []

[[example]]
name = "incident_command_center"
path = "../examples/001-incident-command-center-pack/server.rs"

[[example]]
name = "mdm_mob_target"
path = "../examples/004-mdm-console-pack/target.rs"

[[example]]
name = "access_control_console"
path = "../examples/005-access-control-pack/server.rs"

[dev-dependencies]
serde_json = "1"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "time"] }
futures = "0.3"
tower = { version = "0.5", features = ["util"] }
jsonwebtoken = "9"
async-trait = "0.1"
meerkat-comms = "0.7"
