# knot — example environment configuration
#
# Place this file at `$HOME/.config/knot/.env` (Linux/macOS) or
# `%USERPROFILE%\.config\knot\.env` (Windows).
#
# Knot loads this file from its XDG-style config directory; it never looks
# for `.env` in the current working directory.  This prevents `.env` files
# inside indexed repositories from accidentally hijacking the configuration.
#
# Priority (highest first):
#   1. CLI arguments
#   2. Environment variables (exported in your shell)
#   3. This `.env` file
#
# You can override the config location with:
#   export KNOT_CONFIG_DIR=/path/to/custom/dir

# Absolute path to the repository root to be indexed.
KNOT_REPO_PATH=/path/to/your/repo

# --- Qdrant (Vector DB) ---
KNOT_QDRANT_URL=http://localhost:6334
KNOT_QDRANT_COLLECTION=knot_entities

# --- Neo4j (Graph DB) ---
KNOT_NEO4J_URI=bolt://localhost:7687
KNOT_NEO4J_USER=neo4j
KNOT_NEO4J_PASSWORD=knot_secret_password

# --- Optional: custom Tree-sitter query directory ---
# When set, java.scm and typescript.scm from this directory override
# the built-in queries compiled into the binary.
# KNOT_CUSTOM_QUERIES_PATH=/path/to/custom/queries

# --- Config file indexing (disabled by default) ---
# Set to true to index YAML, JSON, .properties files and Kubernetes/Helm manifests.
# Build-system files (package.json, tsconfig.json, pom.xml, Cargo.toml,
# Jenkinsfile) are always indexed regardless of this flag.
# KNOT_INCLUDE_CONFIG_FILES=false

# --- Embedding model dimension (must match the fastembed model used) ---
# Default: 384 (AllMiniLML6V2)
KNOT_EMBED_DIM=384

# --- Fastembed Cache Directory ---
# By default, the downloaded embeddings model is stored in `<repo_path>/.knot/fastembed_cache/`.
# Set this to override the path if you want to share a single downloaded model across multiple repos.
# KNOT_FASTEMBED_CACHE_DIR=~/.cache/knot/fastembed_cache

# --- Number of entities per processing batch ---
KNOT_BATCH_SIZE=64

# --- Log level (trace | debug | info | warn | error) ---
RUST_LOG=info
