# Dependencies
node_modules

# Build outputs
dist
dist-ssr
*.local
stats.html

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# Environment
.env
.env.local
.env.*.local
.env.local.old
.env.local.staging
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# Project specific
.mcp.json
# cloud_functions used to be 14 separate dev-only functions, so package.json
# was per-folder and not deployed. Post-consolidation the deployable app at
# cloud_functions/app/ MUST commit its package.json + lockfile (Dockerfile
# reads them at build time). The dev orchestrator at cloud_functions/
# also keeps its package.json (defines `npm run dev`). Everything else
# under cloud_functions/ stays ignored.
cloud_functions/**/package-lock.json
cloud_functions/**/package.json
!cloud_functions/package.json
!cloud_functions/app/package.json
!cloud_functions/app/package-lock.json
!cloud_functions/app/routes/api/mcp-server/package.json
# The external REST API at cloud_functions/api-service/ is also a deployed
# service (its own Dockerfile/image); it commits the same set, including its
# local mcp-server package (api-service/package.json has "mcp-server":
# "file:./mcp-server").
!cloud_functions/api-service/package.json
!cloud_functions/api-service/package-lock.json
!cloud_functions/api-service/mcp-server/package.json
data.sql
schema.sql
frontend/chrome-extension/build/
frontend/chrome-extension/build.zip
cloud_functions/api/operations/v1/rest/files/storage.json
cloud_functions/file-storage/storage.json
cloud_functions/conversation/storage.json
# Catch-all so every cloud_functions/*/storage.json is gitignored — these
# are Google service-account credential files and MUST NEVER be committed
# (you'd be leaking a `private_key`). The three explicit entries above are
# kept for clarity; this wildcard backstops conversation-v2/, ai/,
# integration/, and any future folders.
cloud_functions/**/storage.json
# Same protection for the workflow engine — workflows/utils/gcsStorage.js
# loads workflows/utils/storage.json in local dev (Workload Identity in prod).
workflows/**/storage.json

# Mobile per-environment + caches (native sources for ios/ and android/
# ARE tracked so EAS Build can package them; Pods/build outputs stay
# excluded via mobile/ios/.gitignore + mobile/android/.gitignore).
mobile/.expo/
mobile/.expo-shared/
mobile/.metro-cache/

# TypeScript incremental build info
*.tsbuildinfo

# Local pnpm config overrides (shouldn't ship to git)
.npmrc.local

# Prevent npm from polluting the pnpm workspace root
/package-lock.json
cloud_functions/.env.local.old
cloud_functions/.env.local.staging
workflows/.env.staging
workflows/.env.example
workflows/.env.production
tests/reports/*