[package]
edition = "2024"
rust-version = "1.85"
name = "kaish-kernel"
version = "0.14.1"
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",
"ai",
"agent",
"embeddable",
"repl",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT"
repository = "https://github.com/tobert/kaish"
resolver = "2"
[features]
default = [
"localfs",
"overlay",
]
dhat-heap = ["dep:dhat"]
full = [
"localfs",
"overlay",
"subprocess",
"host",
"os-integration",
"tokens",
]
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",
]
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 = "alloc_profile"
path = "examples/alloc_profile.rs"
required-features = ["dhat-heap"]
[[example]]
name = "gen_bash_completion"
path = "examples/gen_bash_completion.rs"
[[example]]
name = "parse_bench"
path = "examples/parse_bench.rs"
[[test]]
name = "and_or_precedence_tests"
path = "tests/and_or_precedence_tests.rs"
[[test]]
name = "awk_numeric_compare_tests"
path = "tests/awk_numeric_compare_tests.rs"
[[test]]
name = "background_execution_tests"
path = "tests/background_execution_tests.rs"
[[test]]
name = "bareword_comma_tests"
path = "tests/bareword_comma_tests.rs"
[[test]]
name = "binary_stdin_tests"
path = "tests/binary_stdin_tests.rs"
[[test]]
name = "binary_text_sink_tests"
path = "tests/binary_text_sink_tests.rs"
[[test]]
name = "binary_wc_tests"
path = "tests/binary_wc_tests.rs"
[[test]]
name = "binary_write_tests"
path = "tests/binary_write_tests.rs"
[[test]]
name = "builtin_fidelity_tests"
path = "tests/builtin_fidelity_tests.rs"
[[test]]
name = "builtin_kernel_tests"
path = "tests/builtin_kernel_tests.rs"
[[test]]
name = "cancellation_tests"
path = "tests/cancellation_tests.rs"
[[test]]
name = "cat_number_newline_tests"
path = "tests/cat_number_newline_tests.rs"
[[test]]
name = "cmdsubst_config_isolation_tests"
path = "tests/cmdsubst_config_isolation_tests.rs"
[[test]]
name = "cmdsubst_data_interpolation_tests"
path = "tests/cmdsubst_data_interpolation_tests.rs"
[[test]]
name = "collection_access_tests"
path = "tests/collection_access_tests.rs"
[[test]]
name = "collection_literals_tests"
path = "tests/collection_literals_tests.rs"
[[test]]
name = "collections_lvalue_tests"
path = "tests/collections_lvalue_tests.rs"
[[test]]
name = "collections_value_model_tests"
path = "tests/collections_value_model_tests.rs"
[[test]]
name = "comma_bracket_scope_tests"
path = "tests/comma_bracket_scope_tests.rs"
[[test]]
name = "concurrency_tests"
path = "tests/concurrency_tests.rs"
[[test]]
name = "correctness_oneoffs_tests"
path = "tests/correctness_oneoffs_tests.rs"
[[test]]
name = "cut_range_dedup_tests"
path = "tests/cut_range_dedup_tests.rs"
[[test]]
name = "dd_xxd_seq_tests"
path = "tests/dd_xxd_seq_tests.rs"
[[test]]
name = "diff_json_shape_tests"
path = "tests/diff_json_shape_tests.rs"
[[test]]
name = "diff_validation_tests"
path = "tests/diff_validation_tests.rs"
[[test]]
name = "env_filter_tests"
path = "tests/env_filter_tests.rs"
[[test]]
name = "execute_argv_tests"
path = "tests/execute_argv_tests.rs"
[[test]]
name = "execute_pipe_stdin_tests"
path = "tests/execute_pipe_stdin_tests.rs"
[[test]]
name = "execute_stdin_tests"
path = "tests/execute_stdin_tests.rs"
[[test]]
name = "export_scope_tests"
path = "tests/export_scope_tests.rs"
[[test]]
name = "external_command_tests"
path = "tests/external_command_tests.rs"
[[test]]
name = "file_test_tilde_tests"
path = "tests/file_test_tilde_tests.rs"
[[test]]
name = "find_predicate_tests"
path = "tests/find_predicate_tests.rs"
[[test]]
name = "flag_true_literal_tests"
path = "tests/flag_true_literal_tests.rs"
[[test]]
name = "for_newline_split_tests"
path = "tests/for_newline_split_tests.rs"
[[test]]
name = "glob_dotfile_tests"
path = "tests/glob_dotfile_tests.rs"
[[test]]
name = "glob_no_match_tests"
path = "tests/glob_no_match_tests.rs"
[[test]]
name = "glob_pattern_passthrough_tests"
path = "tests/glob_pattern_passthrough_tests.rs"
[[test]]
name = "glob_search_features_tests"
path = "tests/glob_search_features_tests.rs"
[[test]]
name = "glued_short_flag_tests"
path = "tests/glued_short_flag_tests.rs"
[[test]]
name = "grep_bre_alternation_tests"
path = "tests/grep_bre_alternation_tests.rs"
[[test]]
name = "grep_search_features_tests"
path = "tests/grep_search_features_tests.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 = "interrupt"
path = "tests/interrupt.rs"
[[test]]
name = "job_live_output_tests"
path = "tests/job_live_output_tests.rs"
[[test]]
name = "job_manager_injection_tests"
path = "tests/job_manager_injection_tests.rs"
[[test]]
name = "job_teardown_tests"
path = "tests/job_teardown_tests.rs"
[[test]]
name = "job_vfs_tests"
path = "tests/job_vfs_tests.rs"
[[test]]
name = "jq_sed_validation_tests"
path = "tests/jq_sed_validation_tests.rs"
[[test]]
name = "jq_tests"
path = "tests/jq_tests.rs"
[[test]]
name = "json_bridge_tests"
path = "tests/json_bridge_tests.rs"
[[test]]
name = "json_sweep_tests"
path = "tests/json_sweep_tests.rs"
[[test]]
name = "jsonl_doors_tests"
path = "tests/jsonl_doors_tests.rs"
[[test]]
name = "kaish_last_tests"
path = "tests/kaish_last_tests.rs"
[[test]]
name = "keys_values_tests"
path = "tests/keys_values_tests.rs"
[[test]]
name = "kill_signal_shorthand_tests"
path = "tests/kill_signal_shorthand_tests.rs"
[[test]]
name = "lexer_idiom_tests"
path = "tests/lexer_idiom_tests.rs"
[[test]]
name = "lexer_pipeline_tests"
path = "tests/lexer_pipeline_tests.rs"
[[test]]
name = "lexer_tests"
path = "tests/lexer_tests.rs"
[[test]]
name = "loop_exit_output_tests"
path = "tests/loop_exit_output_tests.rs"
[[test]]
name = "ls1_basename_dirname_tests"
path = "tests/ls1_basename_dirname_tests.rs"
[[test]]
name = "ls_tests"
path = "tests/ls_tests.rs"
[[test]]
name = "operand_errors_tests"
path = "tests/operand_errors_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 = "owned_output_help_tests"
path = "tests/owned_output_help_tests.rs"
[[test]]
name = "parser_tests"
path = "tests/parser_tests.rs"
[[test]]
name = "patient_watchdog_tests"
path = "tests/patient_watchdog_tests.rs"
[[test]]
name = "pdeathsig_tests"
path = "tests/pdeathsig_tests.rs"
[[test]]
name = "pipeline_structured_data_tests"
path = "tests/pipeline_structured_data_tests.rs"
[[test]]
name = "plan_program_tests"
path = "tests/plan_program_tests.rs"
[[test]]
name = "pre_0_10_fidelity_tests"
path = "tests/pre_0_10_fidelity_tests.rs"
[[test]]
name = "printf_format_tests"
path = "tests/printf_format_tests.rs"
[[test]]
name = "published_prose_tests"
path = "tests/published_prose_tests.rs"
[[test]]
name = "quoted_cmdsubst_error_tests"
path = "tests/quoted_cmdsubst_error_tests.rs"
[[test]]
name = "readlink_realpath_tests"
path = "tests/readlink_realpath_tests.rs"
[[test]]
name = "realworld_builtin_tests"
path = "tests/realworld_builtin_tests.rs"
[[test]]
name = "recursion_guard_tests"
path = "tests/recursion_guard_tests.rs"
[[test]]
name = "recursion_stack_cost_tests"
path = "tests/recursion_stack_cost_tests.rs"
[[test]]
name = "redirect_in_cmdsubst_tests"
path = "tests/redirect_in_cmdsubst_tests.rs"
[[test]]
name = "redirect_target_pasting_tests"
path = "tests/redirect_target_pasting_tests.rs"
[[test]]
name = "regex_match_error_tests"
path = "tests/regex_match_error_tests.rs"
[[test]]
name = "repl_ignore_default_tests"
path = "tests/repl_ignore_default_tests.rs"
[[test]]
name = "rm_glob_flag_injection_tests"
path = "tests/rm_glob_flag_injection_tests.rs"
[[test]]
name = "rm_mv_symlink_safety_tests"
path = "tests/rm_mv_symlink_safety_tests.rs"
[[test]]
name = "sandbox_mode_tests"
path = "tests/sandbox_mode_tests.rs"
[[test]]
name = "scatter_gather_json_error_tests"
path = "tests/scatter_gather_json_error_tests.rs"
[[test]]
name = "scatter_gather_jsonl_tests"
path = "tests/scatter_gather_jsonl_tests.rs"
[[test]]
name = "scatter_gather_spill_contract_tests"
path = "tests/scatter_gather_spill_contract_tests.rs"
[[test]]
name = "scatter_single_json_tests"
path = "tests/scatter_single_json_tests.rs"
[[test]]
name = "sed_awk_bre_dialect_tests"
path = "tests/sed_awk_bre_dialect_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 = "sort_key_tests"
path = "tests/sort_key_tests.rs"
[[test]]
name = "spawn_bool_value_tests"
path = "tests/spawn_bool_value_tests.rs"
[[test]]
name = "spawn_timeout_kill_tests"
path = "tests/spawn_timeout_kill_tests.rs"
[[test]]
name = "stat_multifile_tests"
path = "tests/stat_multifile_tests.rs"
[[test]]
name = "stdin_across_reads_tests"
path = "tests/stdin_across_reads_tests.rs"
[[test]]
name = "string_slice_tests"
path = "tests/string_slice_tests.rs"
[[test]]
name = "tail_c_plus_tree_tests"
path = "tests/tail_c_plus_tree_tests.rs"
[[test]]
name = "test_builtin_tests"
path = "tests/test_builtin_tests.rs"
[[test]]
name = "tr_escape_tests"
path = "tests/tr_escape_tests.rs"
[[test]]
name = "trace_context_tests"
path = "tests/trace_context_tests.rs"
[[test]]
name = "trash_tests"
path = "tests/trash_tests.rs"
[[test]]
name = "validation_tests"
path = "tests/validation_tests.rs"
[[test]]
name = "vfs_budget_tests"
path = "tests/vfs_budget_tests.rs"
[[test]]
name = "walk_filter_flags_tests"
path = "tests/walk_filter_flags_tests.rs"
[[test]]
name = "with_backend_dev_tests"
path = "tests/with_backend_dev_tests.rs"
[[test]]
name = "with_backend_v_overlay_tests"
path = "tests/with_backend_v_overlay_tests.rs"
[[test]]
name = "word_assign_double_dash_tests"
path = "tests/word_assign_double_dash_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.chrono-tz]
version = "0.10"
[dependencies.chumsky]
version = "0.13"
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.dhat]
version = "0.3"
optional = true
[dependencies.digest]
version = "0.10"
[dependencies.directories]
version = "5"
optional = true
[dependencies.getrandom]
version = "0.3"
[dependencies.grep-matcher]
version = "0.1"
[dependencies.grep-regex]
version = "0.1"
[dependencies.grep-searcher]
version = "0.1"
[dependencies.ignore]
version = "0.4"
[dependencies.jaq-core]
version = "3.1"
[dependencies.jaq-json]
version = "2.0"
[dependencies.jaq-std]
version = "3.0"
[dependencies.kaish-glob]
version = "0.14.1"
[dependencies.kaish-help]
version = "0.14.1"
[dependencies.kaish-tool-api]
version = "0.14.1"
[dependencies.kaish-tools-host]
version = "0.14.1"
optional = true
[dependencies.kaish-types]
version = "0.14.1"
features = []
[dependencies.kaish-vfs]
version = "0.14.1"
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"
features = ["preserve_order"]
[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
[dependencies.unicode-width]
version = "0.2"
[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(all(target_family = "wasm", target_os = "unknown"))'.dependencies.chrono]
version = "0.4"
features = ["wasmbind"]
[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"