# 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

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

# Project specific
.mcp.json
cloud_functions/**/package-lock.json
cloud_functions/**/package.json
!cloud_functions/api/package.json
!cloud_functions/api/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
