node_modules/
website/build/
website/.docusaurus/
website/node_modules/
npm-mcp/node_modules/
.DS_Store
*.log
.env

# [M8.18] Foundry deployment config — real values (subscription IDs, etc.)
# stay local; only the .example template is committed.
.frootai/foundry-config.json

# [M9.11] Per-tenant ACA deployment params — same rationale.
infra/hosted-mcp/aca.parameters.*.json
!infra/hosted-mcp/aca.parameters.example.json
# Pulumi state + tenant stacks
infra/hosted-mcp/pulumi/Pulumi.*.yaml
!infra/hosted-mcp/pulumi/Pulumi.yaml
infra/hosted-mcp/pulumi/node_modules/
infra/hosted-mcp/pulumi/bin/

# [M9.14 / M9.15 / M9.16] k6 load-test results (per-run outputs, not committed).
load-tests/hosted-mcp/last-run.json
load-tests/hosted-mcp/last-run-federated.json
load-tests/hosted-mcp/last-run-autoscale.json

# [M9.20] Alpha-tenant onboarding — real configs hold subscription IDs.
scripts/alpha-tenants.json
scripts/alpha-tenants/

# Test artefact + intermediate report directories — not source code.
tmp/

# Internal development plans — NOT pushed to remote
.internal/

# Website lives in separate private repo (frootai/frootai.dev)
website/
website-v2/
website-v3/
website-v4/
website-v5/
website-v6/
website-implementation-plan.md

__pycache__/
*.pyc

npm-sdk/node_modules/
vscode-extension/esbuild.config.d.mts

# FAI Factory — temp files (catalog is committed)
.factory/harvest.json
.factory/fai-catalog.prev.json
.factory/changes.json
.factory/logs/

# Build artifacts (Phase 1 OT-3, May 3, 2026)
# vsix bundles are produced by vsce-publish.yml; never commit
*.vsix
**/*.vsix
# functions deploy.zip is produced by deploy-chatbot.yml; never commit

# [X6.4] Cosign bundle-signing key material — NEVER commit the private key.
# Generated by scripts/marketplace/sign/gen-key.mjs during the founder-only
# key ceremony (docs/security/cosign-key-ceremony.md); stored in Vault.
cosign.key
*.key
**/cosign.key
functions/deploy.zip
**/deploy.zip
# Python build wheels & sdists are produced by pypi-publish.yml; never commit (Phase 2 cleanup, May 3, 2026)
python-sdk/dist/
python-mcp/dist/
**/*.whl
**/*.egg-info/
.pytest_cache/
**/.pytest_cache/

# V0.3 avm-cache: per-module deep-fetched AVM source files (regenerable via npm run verified:catalog --deep-fetch)
data/avm-cache/

# [P1.1] Live telemetry ingest (real tenant data) — never commit; seed is the committed fallback
observability/*.live.ndjson

# 'public/' was an accidental submodule gitlink (no .gitmodules) that broke the
# Cloudflare Workers Build clone (--recurse-submodules). Untracked + ignored.
/public/

# harvest service corpus (13MB build artifact, bundled into image not git)
aca/frootai-harvest/corpus/
