[package]
edition = "2024"
rust-version = "1.85"
name = "kaish-kernel"
version = "0.8.2"
authors = ["Amy Tobey <tobert@gmail.com>"]
build = "build.rs"
exclude = ["tests/snapshots/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core kernel for kaish: lexer, parser, interpreter, and runtime"
homepage = "https://github.com/tobert/kaish"
readme = "README.md"
keywords = [
"shell",
"mcp",
"ai",
"agent",
"cli",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT"
repository = "https://github.com/tobert/kaish"
resolver = "2"
[features]
default = [
"localfs",
"overlay",
]
full = [
"localfs",
"overlay",
"subprocess",
"host",
"git",
"os-integration",
"tokens",
]
git = [
"localfs",
"dep:kaish-tools-git",
]
host = ["dep:kaish-tools-host"]
localfs = [
"tokio/fs",
"kaish-vfs/localfs",
]
native = ["full"]
os-integration = [
"localfs",
"dep:trash",
"dep:directories",
]
overlay = [
"localfs",
"kaish-vfs/overlay",
]
pcre2 = ["dep:grep-pcre2"]
schema = [
"dep:schemars",
"kaish-types/schema",
]
subprocess = [
"localfs",
"dep:nix",
"tokio/process",
"tokio/rt-multi-thread",
]
tokens = ["dep:tiktoken-rs"]
[lib]
name = "kaish_kernel"
path = "src/lib.rs"
[[example]]
name = "gen_bash_completion"
path = "examples/gen_bash_completion.rs"
[[test]]
name = "background_execution_tests"
path = "tests/background_execution_tests.rs"
[[test]]
name = "builtin_kernel_tests"
path = "tests/builtin_kernel_tests.rs"
[[test]]
name = "cancellation_tests"
path = "tests/cancellation_tests.rs"
[[test]]
name = "concurrency_tests"
path = "tests/concurrency_tests.rs"
[[test]]
name = "external_command_tests"
path = "tests/external_command_tests.rs"
[[test]]
name = "for_newline_split_tests"
path = "tests/for_newline_split_tests.rs"
[[test]]
name = "git_tool"
path = "tests/git_tool.rs"
[[test]]
name = "heredoc_compat_tests"
path = "tests/heredoc_compat_tests.rs"
[[test]]
name = "heredoc_tests"
path = "tests/heredoc_tests.rs"
[[test]]
name = "hermetic_home_tests"
path = "tests/hermetic_home_tests.rs"
[[test]]
name = "host_tools"
path = "tests/host_tools.rs"
[[test]]
name = "job_stream_tests"
path = "tests/job_stream_tests.rs"
[[test]]
name = "jq_tests"
path = "tests/jq_tests.rs"
[[test]]
name = "json_sweep_tests"
path = "tests/json_sweep_tests.rs"
[[test]]
name = "kaish_last_tests"
path = "tests/kaish_last_tests.rs"
[[test]]
name = "latch_trash_tests"
path = "tests/latch_trash_tests.rs"
[[test]]
name = "lexer_tests"
path = "tests/lexer_tests.rs"
[[test]]
name = "ls_tests"
path = "tests/ls_tests.rs"
[[test]]
name = "output_limit_control_tests"
path = "tests/output_limit_control_tests.rs"
[[test]]
name = "overlay_tests"
path = "tests/overlay_tests.rs"
[[test]]
name = "parser_tests"
path = "tests/parser_tests.rs"
[[test]]
name = "patient_watchdog_tests"
path = "tests/patient_watchdog_tests.rs"
[[test]]
name = "realworld_builtin_tests"
path = "tests/realworld_builtin_tests.rs"
[[test]]
name = "sandbox_mode_tests"
path = "tests/sandbox_mode_tests.rs"
[[test]]
name = "shell_bugs_tests"
path = "tests/shell_bugs_tests.rs"
[[test]]
name = "shell_compat_tests"
path = "tests/shell_compat_tests.rs"
[[test]]
name = "trace_context_tests"
path = "tests/trace_context_tests.rs"
[[test]]
name = "validation_tests"
path = "tests/validation_tests.rs"
[[test]]
name = "vfs_budget_tests"
path = "tests/vfs_budget_tests.rs"
[dependencies.anyhow]
version = "1"
[dependencies.ariadne]
version = "0.6"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.bstr]
version = "1"
[dependencies.chrono]
version = "0.4"
[dependencies.chumsky]
version = "1.0.0-alpha.8"
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.digest]
version = "0.10"
[dependencies.directories]
version = "5"
optional = true
[dependencies.getrandom]
version = "0.3"
[dependencies.grep-matcher]
version = "0.1"
[dependencies.grep-pcre2]
version = "0.1"
optional = true
[dependencies.grep-regex]
version = "0.1"
[dependencies.grep-searcher]
version = "0.1"
[dependencies.ignore]
version = "0.4"
[dependencies.jaq-core]
version = "2.2"
[dependencies.jaq-json]
version = "1.1"
[dependencies.jaq-std]
version = "2.1"
[dependencies.kaish-glob]
version = "0.8.2"
[dependencies.kaish-help]
version = "0.8.2"
[dependencies.kaish-tool-api]
version = "0.8.2"
[dependencies.kaish-tools-git]
version = "0.8.2"
optional = true
[dependencies.kaish-tools-host]
version = "0.8.2"
optional = true
[dependencies.kaish-types]
version = "0.8.2"
features = []
[dependencies.kaish-vfs]
version = "0.8.2"
features = [
"memory",
"overlay",
]
[dependencies.logos]
version = "0.16"
[dependencies.md-5]
version = "0.10"
[dependencies.opentelemetry]
version = "0.31"
[dependencies.opentelemetry_sdk]
version = "0.31"
features = ["rt-tokio"]
[dependencies.regex]
version = "1"
[dependencies.schemars]
version = "1"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dependencies.similar]
version = "2"
[dependencies.thiserror]
version = "2"
[dependencies.tiktoken-rs]
version = "0.9"
optional = true
[dependencies.tokio]
version = "1"
features = [
"rt",
"sync",
"time",
"macros",
"io-util",
]
[dependencies.tokio-util]
version = "0.7"
features = ["compat"]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-opentelemetry]
version = "0.32"
[dependencies.trash]
version = "5"
optional = true
[dev-dependencies.clap_complete]
version = "4"
[dev-dependencies.insta]
version = "1.46"
[dev-dependencies.opentelemetry_sdk]
version = "0.31"
features = [
"rt-tokio",
"testing",
]
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["test-util"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[build-dependencies.chrono]
version = "0.4"
[target."cfg(unix)".dependencies.nix]
version = "0.29"
features = [
"signal",
"process",
"term",
]
optional = true
[lints.clippy]
expect_used = "warn"
unwrap_used = "deny"
[lints.rust]
unsafe_code = "deny"