| 1 | # Hybrid Codebase Index settings (default, embedded). |
| 2 | # |
| 3 | # This file is embedded into the MCP binary so the server has stable defaults |
| 4 | # even when no workspace override exists. |
| 5 | # |
| 6 | # To override per-workspace, create: |
| 7 | # <workspace>/.hybrid-codebase-index/settings.toml |
| 8 | # |
| 9 | # Preferred format: sectioned tables. Old flat keys are still supported for back-compat. |
| 10 | |
| 11 | [scope] |
| 12 | # Optional extra roots (relative to workspace root) to include in indexing. |
| 13 | extra_include_roots = [] |
| 14 | |
| 15 | # Optional roots (relative to workspace root) to exclude from indexing (fast directory-skip). |
| 16 | exclude_roots = [] |
| 17 | |
| 18 | # Built-in path denylist (applied before gitignore). List of directory names (path segments). |
| 19 | exclude_path_segments = ["bin", "obj", ".git", "node_modules", ".vs", ".idea", ".cache", ".cascade-ide"] |
| 20 | |
| 21 | # Which gitignore-like files are applied (relative to workspace root). |
| 22 | # Add env-specific ignores (e.g. ".cursorignore") in workspace override settings.toml. |
| 23 | ignore_files = [".gitignore", ".git/info/exclude", ".cascadeideignore"] |
| 24 | |
| 25 | [fts] |
| 26 | # Include *.cs as plain text documents in FTS (Roslyn truth still handles semantics). |
| 27 | include_cs_in_fts = true |
| 28 | |
| 29 | # Default indexed extensions (strings without dot are accepted). |
| 30 | include_extensions = ["md", "mdx", "csproj", "slnx", "props", "targets", "toml", "editorconfig", "json", "yml", "yaml", "razor", "css", "scss", "html", "axaml", "cs"] |
| 31 | |
| 32 | # Optional: subtract from the effective set. |
| 33 | # exclude_extensions = ["cs"] |
| 34 | |
| 35 | # Max file size indexed as a single document (bytes). Larger files are skipped as too_large. |
| 36 | max_indexed_file_bytes = 524288 |
| 37 | |
| 38 | # Chunking (line windows) for FTS documents. |
| 39 | chunk_lines = 110 |
| 40 | chunk_overlap_lines = 15 |
| 41 | |
| 42 | # Binary detection probe size (bytes); if the probe contains NUL, file is treated as binary. |
| 43 | binary_probe_bytes = 8192 |
| 44 | |
| 45 | [semantic] |
| 46 | # Semantic / vec (opt-in) |
| 47 | enabled = false# Embeddings settings: prefer nested table for clarity. |
| 48 | [semantic.embeddings] |
| 49 | # Provider id (v0: "dummy"; also supported: "onnx") |
| 50 | provider = "dummy"# Provider/model-specific name (optional; ignored by dummy). |
| 51 | model = ""# Explicit dimension; 0 = provider default. |
| 52 | dim = 0 |
| 53 | |
| 54 | # ONNX provider: path to the ONNX model file (relative to index dir or absolute). |
| 55 | model_path = "" |
| 56 | |
| 57 | # ONNX provider: WordPiece vocab file (relative to index dir or absolute), usually vocab.txt. |
| 58 | vocab_path = "" |
| 59 | |
| 60 | # ONNX provider: whether to lowercase in BasicTokenizer step. |
| 61 | do_lower_case = true |
| 62 | |
| 63 | # sqlite-vec: optional loadable extension path (absolute, or relative to index dir, then to MCP app dir). |
| 64 | # Default vec0.dll is copied next to HybridCodebaseIndex.Mcp on Windows builds when native/win-x64/vec0.dll is present. |
| 65 | # If the file is missing (e.g. Linux), load is skipped without error. |
| 66 | sqlite_vec_extension_path = "vec0.dll" |
| 67 | |
| 68 | # Extensions policy for vec (embeddings and KNN channel). |
| 69 | # Default: inherit effective extensions from [fts], then apply add/remove. |
| 70 | # - vec_extensions_mode = "inherit_fts" | "custom" |
| 71 | # - vec_extensions: base list when mode="custom" (normalized with dots) |
| 72 | # - vec_add_extensions / vec_remove_extensions: overrides (normalized with dots) |
| 73 | vec_extensions_mode = "inherit_fts" |
| 74 | vec_extensions = [] |
| 75 | vec_add_extensions = [] |
| 76 | vec_remove_extensions = [] |
| 77 | |
| 78 | # For token-based models: sequence length (0 = provider default, typically 128..256). |
| 79 | sequence_length = 0 |
| 80 | |
| 81 | # Prefer GPU if available (ONNX Runtime CUDA EP). |
| 82 | prefer_gpu = true |
| 83 | |