# ---- 依赖与构建产物 ----
#
# 前端只在**构建期**用到 npm：`npm run build` 出的 dist/ 被 cp 进
# gateway/internal/static/static/ 再由 go:embed 编进二进制。
# 部署机上没有 node，产物就是「一个二进制 + 一个 .db 文件」。
# 因此这三样都不进版本库：装依赖与构建都能从 package-lock.json 复现。
web/node_modules/
web/dist/
plugins/*/node_modules/

# dsh-mail-bridge 是 TypeScript 写的，dist/ 是 tsc 的产物。
# 与 web/dist 同一个理由：装依赖与构建都能从 package-lock.json 复现，
# 产物不进版本库。注意它**必须在装插件前构建**（package.json 的
# main 指向 dist/index.js），deploy/install.sh 负责这一步。
plugins/*/dist/

# go:embed 的输入目录 = web/dist 的副本，同属构建产物。
#
# 但目录本身要留下：go:embed 要求它存在才能编译，否则新克隆连
# `go test ./...` 都跑不起来 —— 只改后端的人不该被迫先装 node。
# 因此忽略构建产物，只保留 placeholder.html（见该文件内注释：
# 之所以不叫 index.html，是因为那正是 Vite 产物的名字，会被反复覆盖）。
gateway/internal/static/static/*
!gateway/internal/static/static/placeholder.html

# Go 构建产物
gateway/agentmail-gateway
gateway/gw
*.test

# ---- 运行态数据 ----
#
# SQLite 库与附件目录：生产在 /opt/agentmail/data，
# 本地调试可能落在仓库里，绝不能提交（含真实邮件与凭证哈希）。
*.db
*.db-shm
*.db-wal
data/
attachments/

# ---- 凭证 ----
#
# 管理员密码、Agent 密钥、opencode server password 都在 env 文件里。
.env
*.env

# ---- Agent 工具的运行态目录 ----
#
# 这些是 pi / omo 在仓库里落的会话与后台任务状态，属于本机运行痕迹，
# 不是项目的一部分。
.pi/
.omo/
.pi-glla/
.codegraph

# ---- 编辑器与系统 ----
.DS_Store
*.swp
.idea/
.vscode/
plugins/homeagent-mail-bridge/build/
