# Build output
target/
# The pinned tree-sitter CLI (`make ensure-tree-sitter`)
.tools/
# Pipeline runs: where build it, test it and deploy it meet through files
ci_cd_pipeline/
*.sqlite-journal
*.profraw
*.a
*.gz
!closet/documentation/analysis/architectural-counterfactual/program/tools/fixed-wave4-identities.tsv.gz
!closet/documentation/analysis/blind-protocol-20260928/campaigns.tar.gz
!closet/documentation/analysis/blind-protocol-20260928-wave2/campaigns.tar.gz
*.o
*.so
*.wasm
!hosts/wasm-demo/assets/*.wasm
hosts/wasm-demo/pkg
hosts/wasm-demo/.build-staging
hosts/wasm-demo/artifacts
book/output/
book/docs-site/preprocessed/
book/docs-site/site/

# Databases: ignored by default; the suite's fixtures are the tracked
# exception (ball_artifacts stay derived)
*.db
*.db-shm
*.db-wal
*.db-journal
*.sqlite
*.duckdb
!hosts/wasm-demo/demo.db
!new_test_suite/**/*.sqlite
new_test_suite/ball_artifacts/*.sqlite

# Tree-sitter generated files (grammar.js is the source)

# The grammar: authored inputs are grammar.js, tokens.js,
# tree-sitter.json, package.json and the queries. Everything the generator
# writes is derived and must never be captured — parser.c, grammar.json,
# node-types.json, bindings, diagrams. The generated typed-CST Rust lives in
# Cargo's OUT_DIR and never appears here at all.
grammar/src/
grammar/binding.gyp
grammar/bindings/
grammar/build/
grammar/diagrams/
grammar/Cargo.toml
grammar/Package.swift
grammar/go.mod
grammar/pyproject.toml
grammar/setup.py


# old directories so other workspaces don't add them
/grammar_consolidated/
/grammar_ddl/
/grammar_dql/
/grammar_rules/


# Node
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Python
__pycache__
*.egg-info/

# Scratch and local
*.log
*-audit.log
*.swp
*.bak
*.tgz
*.pdf
.DS_Store
.hide*
untracked/
