# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
bin/
dist/
dist-slim/
dist-slim-pkgs/

# Desktop embedded-runner staging: a symlink in dev (setup-runner-dev.sh),
# the staged slim artifact in packaged builds (stage-runner-slim.sh).
client-apps/desktop/src-tauri/resources/runner

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool
*.out
coverage.txt
coverage.html

# Go workspace sum file (auto-generated, can be ignored)
go.work.sum

# Dependency directories (Go)
vendor/

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
downloads/
eggs/
.eggs/
/lib/
/lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# The setuptools sdist artifact (a FILE named MANIFEST). With
# core.ignorecase this pattern also swallows source directories named
# manifest/ (e.g. sdk/*/src/manifest) — the negation re-includes those
# while the artifact file stays ignored.
MANIFEST
!**/manifest/
*.pyc
.pytest_cache/
.coverage
htmlcov/

# Virtual environments
venv/
env/
ENV/
.venv

# IDEs
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store

# Java / Maven
target/

# Node.js
node_modules/
.yarn/install-state.gz

# Stigmer specific
.stigmer/
*.skill
*.db
*.db-shm
*.db-wal

# Temporary files
*.log
*.tmp
tmp/

# Proto generated files (tracked, but ignore in development)
# We'll commit generated code for now
# *.pb.go
# *_pb2.py
# *_pb2.pyi

# Build artifacts
*.o
*.a
*.out
.agent-runner-image-built

# Codegen tool binaries (go build drops these in the module/repo root)
/generator
/proto2schema
tools/codegen/generator/generator

# Go service binaries (prevent accidental commits of built binaries in service dirs)
backend/services/*/stigmer-server
backend/services/*/workflow-runner
backend/services/*/agent-runner
backend/services/*/cmd/*/server
backend/services/*/server

# Bazel build outputs
bazel-*
/MODULE.bazel.lock

# npm auth tokens (never commit)
.npmrc

# Vale (downloaded style packages — run `vale sync` to fetch)
vale/styles/Google/
vale/styles/Microsoft/
vale/styles/alex/

# uv lockfile (project uses Poetry; uv.lock is auto-generated noise)
uv.lock

# Environment files (local secrets, never commit)
.env
.env_export
# Vite local env overrides (e.g. desktop .env.development.local — machine-specific paths)
.env*.local

# Integration test output
.test-output*/

# TypeDoc JSON intermediates (regenerated by `make gen-react-sdk-docs` /
# `gen-ink-sdk-docs` before every use; they embed the HEAD commit SHA in
# every source URL, so tracking them creates churn on every SDK commit)
sdk/*/typedoc-output.json

# npm (v7+) rewrites any existing root yarn.lock on every install to mirror
# its package tree — with machine-specific absolute file: paths and the
# current platform's optional binaries — so a tracked copy can never match
# across machines. The root's authoritative lockfile is package-lock.json;
# nothing consumes this yarn.lock. (site/yarn.lock is a real Yarn 4
# lockfile and stays tracked.)
/yarn.lock

# Dev TLS certs (generated by gen-dev-certs.sh)
client-apps/desktop/scripts/.certs/

# Cursor
_cursor/
_aacursor/
*.bak

# Internal planning/history migrated to the private stigmer-cloud repo (do not re-add)
_changelog/
_investigations/
_projects/
_roles/
.cursor/plans/

# Compiled codegen toolchain binaries (built ad hoc via `go build` in tools/;
# the tools are always run via `go run ./tools/codegen/...` — never commit them)
/tools/generator
/tools/proto2schema
/tools/codegen/generator/generator
/tools/codegen/proto2schema/proto2schema
