kaizen-cli 0.1.22

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.
Documentation
[package]
name = "kaizen-cli"
version = "0.1.22"
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 = "tui_app"
path = "tests/spec/tui_app.rs"

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

[[test]]
name = "init_setup"
path = "tests/spec/init_setup.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 = "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 = "multi_workspace"
path = "tests/spec/multi_workspace.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 = "h33_automation"
path = "tests/spec/h33_automation.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 = "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 = "daemon_lifecycle"
path = "tests/spec/daemon_lifecycle.rs"

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

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

[[test]]
name = "perf_migrate_v2"
path = "tests/perf/migrate_v2.rs"

[features]
default = ["analytics-duckdb"]
analytics-duckdb = ["dep:duckdb"]
# Optional fan-out targets (lean default build)
telemetry-dev = []
telemetry-posthog = []
telemetry-datadog = []
telemetry-otlp = []
telemetry-all = [
    "telemetry-dev",
    "telemetry-posthog",
    "telemetry-datadog",
    "telemetry-otlp",
]

[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
indicatif = "0.18"
arboard = "3"
anyhow = "1"
rusqlite = { version = "0.39", 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"
time = { version = "0.3", features = ["formatting", "macros", "local-offset"] }
fs4 = { version = "1.0", features = ["sync"] }
graphqlite = "0.4"
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", "transport-io", "schemars", "macros"] }
axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "matched-path"] }
tower = { version = "0.5", features = ["util"] }
tower-http = { version = "0.6", features = ["limit", "set-header"] }
sysinfo = { version = "0.38.4", default-features = false, features = ["system"] }
redb = "4.1"
rkyv = "0.8"
crc32fast = "1.5"
memmap2 = "0.9"
arrow = { version = "58.1", default-features = false }
parquet = { version = "58.1", default-features = false, features = ["arrow", "zstd"] }
duckdb = { version = "1.10502.0", optional = true, features = ["bundled", "parquet"] }
tantivy = "0.26.1"

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

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