# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "brokk-bifrost"
version = "0.4.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Tree-sitter-backed multi-language code analyzer with bundled LSP and MCP search-tool servers. Powers Brokk's `bifrost` binary."
homepage = "https://github.com/BrokkAi/bifrost"
readme = "README.md"
keywords = [
    "analyzer",
    "tree-sitter",
    "lsp",
    "mcp",
    "code-analysis",
]
categories = [
    "development-tools",
    "parser-implementations",
    "command-line-utilities",
]
license = "LGPL-3.0-or-later"
repository = "https://github.com/BrokkAi/bifrost"

[features]
default = []
python = ["dep:pyo3"]

[lib]
name = "brokk_bifrost"
crate-type = [
    "rlib",
    "cdylib",
]
path = "src/lib.rs"

[[bin]]
name = "bifrost"
path = "src/bin/bifrost.rs"

[[bin]]
name = "most_relevant_files"
path = "src/bin/most_relevant_files.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.bincode]
version = "1.3.3"

[dependencies.chrono]
version = "0.4.44"
features = [
    "clock",
    "std",
]
default-features = false

[dependencies.git2]
version = "0.20.2"
default-features = false

[dependencies.glob]
version = "0.3.3"

[dependencies.ignore]
version = "0.4.24"

[dependencies.indicatif]
version = "0.18.0"

[dependencies.jaq-core]
version = "3.0"

[dependencies.jaq-json]
version = "2.0"

[dependencies.jaq-std]
version = "3.0"

[dependencies.lsp-server]
version = "0.7"

[dependencies.lsp-types]
version = "0.97"

[dependencies.moka]
version = "0.12.11"
features = ["sync"]

[dependencies.notify]
version = "6.1.1"

[dependencies.once_cell]
version = "1.21.3"

[dependencies.pyo3]
version = "0.23.5"
features = [
    "abi3-py312",
    "extension-module",
]
optional = true

[dependencies.quick-xml]
version = "0.40"

[dependencies.rayon]
version = "1.10.0"

[dependencies.regex]
version = "1.12.2"

[dependencies.rusqlite]
version = "0.32.1"
features = ["bundled"]

[dependencies.rustc-hash]
version = "2"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.145"

[dependencies.sha2]
version = "0.10.8"

[dependencies.tree-sitter]
version = "0.25.10"

[dependencies.tree-sitter-c-sharp]
version = "0.23.1"

[dependencies.tree-sitter-cpp]
version = "0.23.4"

[dependencies.tree-sitter-go]
version = "0.25.0"

[dependencies.tree-sitter-java]
version = "0.23.5"

[dependencies.tree-sitter-javascript]
version = "0.25.0"

[dependencies.tree-sitter-php]
version = "0.23.11"

[dependencies.tree-sitter-python]
version = "0.25.0"

[dependencies.tree-sitter-rust]
version = "0.24.0"

[dependencies.tree-sitter-scala]
version = "0.25.0"

[dependencies.tree-sitter-typescript]
version = "0.23.2"

[dependencies.walkdir]
version = "2.5.0"

[dependencies.xee-xpath]
version = "0.1.5"

[dependencies.xot]
version = "0.31"

[dev-dependencies.filetime]
version = "0.2"

[dev-dependencies.pretty_assertions]
version = "1.4.1"

[dev-dependencies.rusqlite]
version = "0.32.1"
features = ["bundled"]

[dev-dependencies.tempfile]
version = "3.23.0"
