# ─── Secrets & env ────────────────────────────────────────────────────────
.env
.env.*
!.env.example
!.env.*.example
!.env.local.example
*.key
*.pem
*.pfx
*.p12

# ─── Node / package managers ──────────────────────────────────────────────
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/

# ─── Build output ─────────────────────────────────────────────────────────
dist/
build/
out/
.next/
*.tsbuildinfo

# ─── Local-only dev state ─────────────────────────────────────────────────
# Data pulled from production Fly volumes (never commit — user-specific + sensitive)
**/fly-memory-pull/
# Local memory dir used by the middleware's filesystem memory store
middleware/.memory/
# Teams app package artifacts (manifest + icons ARE tracked; the zipped bundle isn't)
middleware/appPackage/*.zip
middleware/*.zip

# ─── Editor / OS ──────────────────────────────────────────────────────────
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
*.swp
*.swo
*~
.idea/
.vscode/
!.vscode/extensions.json
!.vscode/settings.recommended.json

# ─── Logs ─────────────────────────────────────────────────────────────────
logs/
*.log

# ─── Claude Code / AI agent scratch state ─────────────────────────────────
.claude/
CLAUDE.local.md
.aider*
.cursor/

# ─── Coverage / test artifacts ────────────────────────────────────────────
coverage/
.nyc_output/
*.lcov

# ─── Temp / cache ─────────────────────────────────────────────────────────
.cache/
tmp/
.tmp/

# ─── Notion-skill local state ─────────────────────────────────────────────
.notion-active-task
.notion-active-task-id
.notion-sync-cursor

# ─── Marketing site (NEVER commit — separate from product/OSS scope) ──────
# Omadia public marketing site lives here. Intentionally outside the
# OSS-Core export scope (OB-30) and must never be checked in alongside the
# harness platform sources. See marketing-site/docs/00-isolation.md.
marketing-site/

# ─── Plugin hub / registry service (NEVER commit — separate repo) ─────────
# hub.omadia.ai — the registry SERVICE (Blob + metadata + /api/publish) and
# its human storefront UI. byte5-hosted, outside OSS-Core scope. Lives in its
# own repo (byte5ai/omadia-hub), mirrored here as a gitignored folder exactly
# like marketing-site. NOTE: the registry *client* (RegistryClient, remote
# install, store merge) IS OSS-Core and lives in middleware/src/ — only the
# hosted service is private.
hub/

# ─── WhatsApp channel plugin (separate PUBLIC repo) ───────────────────────
# @omadia/channel-whatsapp — a standalone WhatsApp Web channel (Baileys +
# QR-linked-device). Unlike hub/ and marketing-site/ this one is a PUBLIC
# OSS repo (byte5ai/omadia-channel-whatsapp), but it is still developed in
# its own git repo and shipped as a Hub ZIP, so it is mirrored here as a
# gitignored folder exactly like the others — never committed into core.
channel-whatsapp/

# ─── Slack channel plugin (separate PUBLIC repo) ──────────────────────────
# @omadia/channel-slack — a standalone Slack Socket Mode channel. Like
# channel-whatsapp it is a PUBLIC OSS repo (byte5ai/omadia-channel-slack)
# developed in its own git repo and shipped as a Hub ZIP, so it is mirrored
# here as a gitignored folder — never committed into core.
channel-slack/

# ─── Discord channel plugin (separate PUBLIC repo) ────────────────────────
# @omadia/channel-discord — a standalone Discord Gateway channel (discord.js,
# bot-token auth). Like channel-whatsapp it is a PUBLIC OSS repo
# (byte5ai/omadia-channel-discord) developed in its own git repo and shipped
# as a Hub ZIP, so it is mirrored here as a gitignored folder — never
# committed into core.
channel-discord/

# ─── Plugin/channel starter template (separate PUBLIC repo) ───────────────
# omadia-plugin-starter — a fork-ready template for third parties to build
# their own Omadia plugins/channels, with a one-command ZIP build. Like the
# channel repos above it is a PUBLIC OSS repo (byte5ai/omadia-plugin-starter)
# developed in its own git repo, so it is mirrored here as a gitignored
# folder — never committed into core.
omadia-plugin-starter/

# ─── byte5-specific agent + deployment configs (private) ──────────────────
# These describe a specific byte5 deployment (Fly app, Neon project, kroki
# sidecars, customer-specific agent configs) and must never land in public
# Omadia. Generic equivalents ship with the OSS docs (see docs/).
agent-config.yaml
agent-config-*.yaml
fly.toml
compose.yml
infra/
kroki/
ollama/
middleware/DEPLOY.md
middleware/data/
middleware/.uploaded-packages/
middleware/appPackage/
middleware/sidecars/*/fly.*.toml
middleware/seed/memory/_rules/hr-conventions.md
middleware/seed/memory/_rules/accounting-conventions.md

# ─── Internal-only docs (whole harness-platform tree + session handoffs) ──
# Session-context, planning, deployment hints, customer evaluations etc.
# served their purpose during development and would pollute the public
# docs tree. Whole `docs/harness-platform/` excluded by policy; only the
# README + CHANGELOG + security-architecture in `docs/` stay public.
docs/plans/
docs/day-one-learnings-*.md
docs/dev-frontend-handoff.md
docs/northdata-agent-plan.md
docs/softgarden-agent-evaluation.md
docs/diagrams.md
docs/graph-deployment.md
docs/harness-platform/

# ─── Smoke scripts (internal validation harness, not part of public API) ──
# Boot-test scripts that hit live byte5 Fly endpoints / Neon project. The
# OSS audience doesn't have access to those targets; equivalent guidance
# lives in the public test/ directories per package.
middleware/scripts/smoke-*.ts
middleware/scripts/smoke-*.mjs

# ─── Private byte5 plugins (channels + integrations) ──────────────────────
# byte5-specific channel adapters (Teams, Telegram) and SaaS integrations
# (Confluence, MS365, Odoo). Canonical source lives in the separate private
# repo ~/sources/omadia-byte5-plugins (workspace: packages/channel-*,
# packages/integration-*). The copies here are working-dev mirrors and
# must never reach the public Omadia repo. Reconciliation between the two
# locations is a separate cleanup (see HANDOFF when scheduled).
middleware/packages/harness-channel-teams/
middleware/packages/harness-channel-telegram/
middleware/packages/harness-integration-confluence/
middleware/packages/harness-integration-microsoft365/
middleware/packages/harness-integration-odoo/

# Local-only screencast pipeline (Playwright recorder + GIF conversion).
# Tooling for the README demo GIF; not part of the repo.
/screencast/
