[package]
name = "kaizen-cli"
version = "0.1.45"
edition = "2024"
rust-version = "1.95"
authors = ["Lucas Marques <hi@lucasmarques.me>"]
license = "AGPL-3.0-or-later"
description = "Distributable agent observability: real-time-tailable sessions, agile-style retros, and repo-level improvement (Cursor, Claude Code, Codex). SQLite, redact before any sync you enable."
repository = "https://github.com/marquesds/kaizen"
homepage = "https://github.com/marquesds/kaizen"
documentation = "https://docs.rs/kaizen-cli"
readme = "README.md"
keywords = ["agents", "ai", "observability", "retrospective", "telemetry"]
categories = ["command-line-utilities", "development-tools"]
exclude = [
    "discoveries/",
    ".kaizen/",
    ".cursor/",
    ".claude/",
    "specs/",
    "docs/",
    "scripts/",
    ".github/",
    "AGENTS.md",
    "CLAUDE.md",
    "CONTRIBUTING.md",
    "CHANGELOG.md",
    "CODE_OF_CONDUCT.md",
    "SECURITY.md",
    ".gitignore",
    "*.itf.json",
]

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

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

[[test]]
name = "session_lifecycle"
path = "tests/spec/session_lifecycle.rs"

[[test]]
name = "ingest_idempotency"
path = "tests/spec/ingest_idempotency.rs"

[[test]]
name = "ingest_stub"
path = "tests/ingest_stub/integration_test.rs"

[[test]]
name = "hook_ingest"
path = "tests/spec/hook_ingest.rs"

[[test]]
name = "event_index"
path = "tests/spec/event_index.rs"

[[test]]
name = "redaction_completeness"
path = "tests/spec/redaction_completeness.rs"

[[test]]
name = "sync_backpressure"
path = "tests/spec/sync_backpressure.rs"

[[test]]
name = "retro_pipeline"
path = "tests/spec/retro_pipeline.rs"

[[test]]
name = "doctor_cmd"
path = "tests/spec/doctor_cmd.rs"

[[test]]
name = "doctor_diagnostic"
path = "tests/spec/doctor_diagnostic.rs"

[[test]]
name = "gc_prune"
path = "tests/spec/gc_prune.rs"

[[test]]
name = "observe_pipeline"
path = "tests/spec/observe_pipeline.rs"

[[test]]
name = "summary_cost_rollup"
path = "tests/spec/summary_cost_rollup.rs"

[[test]]
name = "session_lookup"
path = "tests/spec/session_lookup.rs"

[[test]]
name = "session_tree"
path = "tests/spec/session_tree.rs"

[[test]]
name = "metrics_pipeline"
path = "tests/spec/metrics_pipeline.rs"

[[test]]
name = "metrics_report_compact"
path = "tests/spec/metrics_report_compact.rs"

[[test]]
name = "tui_app"
path = "tests/spec/tui_app.rs"

[[test]]
name = "guidance_cmd"
path = "tests/spec/guidance_cmd.rs"

[[test]]
name = "guidance_score"
path = "tests/spec/guidance_score.rs"

[[test]]
name = "guidance_proposal_llm"
path = "tests/spec/guidance_proposal_llm.rs"

[[test]]
name = "guidance_score_validation"
path = "tests/spec/guidance_score_validation.rs"

[[test]]
name = "init_setup"
path = "tests/spec/init_setup.rs"

[[test]]
name = "project_lookup"
path = "tests/spec/project_lookup.rs"

[[test]]
name = "experiment_lifecycle"
path = "tests/spec/experiment_lifecycle.rs"

[[test]]
name = "retention"
path = "tests/spec/retention.rs"

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

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

[[test]]
name = "visualization_report"
path = "tests/spec/visualization_report.rs"

[[test]]
name = "atif_jsonl_hash"
path = "tests/spec/atif_jsonl_hash.rs"

[[test]]
name = "mcp_server"
path = "tests/spec/mcp_server.rs"

[[test]]
name = "telemetry_exporters"
path = "tests/spec/telemetry_exporters.rs"

[[test]]
name = "telemetry_file_metadata"
path = "tests/spec/telemetry_file_metadata.rs"

[[test]]
name = "telemetry_push_replay"
path = "tests/spec/telemetry_push_replay.rs"

[[test]]
name = "llm_proxy"
path = "tests/spec/llm_proxy.rs"

[[test]]
name = "auto_update"
path = "tests/spec/auto_update.rs"

[[test]]
name = "upgrade"
path = "tests/spec/upgrade.rs"

[[test]]
name = "query_sqlite"
path = "tests/spec/query_sqlite.rs"

[[test]]
name = "multi_workspace"
path = "tests/spec/multi_workspace.rs"

[[test]]
name = "modern_scanners"
path = "tests/spec/modern_scanners.rs"

[[test]]
name = "provider_pull_cache"
path = "tests/spec/provider_pull_cache.rs"

[[test]]
name = "workspace_facts_sync"
path = "tests/spec/workspace_facts_sync.rs"

[[test]]
name = "provider_pull_event_keys"
path = "tests/spec/provider_pull_event_keys.rs"

[[test]]
name = "openclaw_ingest_spec"
path = "tests/spec/openclaw_ingest_spec.rs"

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

[[test]]
name = "eval_h15"
path = "tests/spec/eval_h15.rs"

[[test]]
name = "read_report_perf"
path = "tests/spec/read_report_perf.rs"

[[test]]
name = "h33_automation"
path = "tests/spec/h33_automation.rs"

[[test]]
name = "guidance_candidate"
path = "tests/spec/guidance_candidate.rs"

[[test]]
name = "experiment_binding"
path = "tests/spec/experiment_binding.rs"

[[test]]
name = "experiment_sequential"
path = "tests/spec/experiment_sequential.rs"

[[test]]
name = "prompt_tracking_spec"
path = "tests/spec/prompt_tracking_spec.rs"

[[test]]
name = "datadog_grade_telemetry"
path = "tests/spec/datadog_grade_telemetry.rs"

[[test]]
name = "daemon_capture"
path = "tests/spec/daemon_capture.rs"

[[test]]
name = "session_feedback_spec"
path = "tests/spec/session_feedback_spec.rs"

[[test]]
name = "span_hierarchy_spec"
path = "tests/spec/span_hierarchy_spec.rs"

[[test]]
name = "projector_incremental"
path = "tests/spec/projector_incremental.rs"

[[test]]
name = "projector_parity"
path = "tests/spec/projector_parity.rs"

[[test]]
name = "llm_call_quality"
path = "tests/spec/llm_call_quality.rs"

[[test]]
name = "agent_behavior"
path = "tests/spec/agent_behavior.rs"

[[test]]
name = "session_outcome"
path = "tests/spec/session_outcome.rs"

[[test]]
name = "system_sampler"
path = "tests/spec/system_sampler.rs"

[[test]]
name = "search"
path = "tests/spec/search.rs"

[[test]]
name = "core_loop"
path = "tests/spec/core_loop.rs"

[[test]]
name = "daemon_lifecycle"
path = "tests/spec/daemon_lifecycle.rs"

[[test]]
name = "ipc_frame"
path = "tests/spec/ipc_frame.rs"

[[test]]
name = "daemon_web_token"
path = "tests/spec/daemon_web_token.rs"

[[test]]
name = "daemon_detach"
path = "tests/spec/daemon_detach.rs"

[[test]]
name = "web_server"
path = "tests/spec/web_server.rs"

[[test]]
name = "perf_phase0"
path = "tests/perf/phase0.rs"

[[test]]
name = "perf_projector_phase2"
path = "tests/perf/projector_phase2.rs"

[[test]]
name = "perf_read_report"
path = "tests/perf/read_report.rs"

[features]
# Default and contributor builds use the same lightweight local stack.
default = ["full"]
full = ["telemetry-prod"]
dev-fast = ["telemetry-prod"]
telemetry-dev = []
telemetry-posthog = []
telemetry-datadog = []
telemetry-otlp = []
telemetry-prod = [
    "telemetry-posthog",
    "telemetry-datadog",
    "telemetry-otlp",
]
telemetry-all = [
    "telemetry-dev",
    "telemetry-prod",
]

[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
indicatif = "0.18"
arboard = "3"
anyhow = "1"
memchr = "2"
tempfile = "3"
tar = "0.4"
rusqlite = { version = "0.40", features = ["bundled"] }
rand = { version = "0.10", features = ["std_rng"] }
tokio = { version = "1", features = ["full"] }
notify = "8"
arc-swap = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
toml = "1.1"
ratatui = "0.30"
crossterm = "0.29"
reqwest = { version = "0.13", default-features = false, features = ["json", "gzip", "blocking", "rustls"] }
flate2 = "1"
uuid = { version = "1", features = ["v5", "v7"] }
blake3 = "1"
aho-corasick = "1"
regex = "1"
hex = "0.4"
sha2 = "0.11"
time = { version = "0.3", features = ["formatting", "macros", "local-offset", "parsing"] }
fs4 = { version = "1.0", features = ["sync"] }
graphqlite = "0.6"
tree-sitter = "0.26"
tree-sitter-rust = "0.24"
tree-sitter-javascript = "0.25"
tree-sitter-typescript = "0.23"
tree-sitter-python = "0.25"
tree-sitter-go = "0.25"
tree-sitter-java = "0.23"
rmcp = { version = "1", features = ["server", "client", "transport-io", "schemars", "macros"] }
axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "matched-path", "query", "ws"] }
tower = { version = "0.5", features = ["util"] }
tower-http = { version = "0.6", features = ["limit", "set-header"] }
sysinfo = { version = "0.39.1", default-features = false, features = ["system"] }
redb = "4.1"
tantivy = "0.26.1"
gethostname = "1"

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
quint-connect = "0.1"
itf = "0.4"
proptest = "1"
rmcp = { version = "1", features = ["server", "client", "transport-io", "schemars", "macros"] }
tower = { version = "0.5", features = ["util"] }
futures-util = "0.3"
tokio-tungstenite = "0.29"

[patch.crates-io]
# Patched: `quint run` uses `--backend rust` (GHA `macos-latest` + TS sim exited 1, empty stderr).
quint-connect = { path = "vendor/quint-connect" }
