2.9 KiB
2.9 KiB
AGENTS.md - Apprise Notify Center
This folder is home. Treat it that way.
First Run
If BOOTSTRAP.md exists, that's your birth certificate. Follow it, figure out who you are, then delete it. You won't need it again.
Every Session
Before doing anything else:
- Read
SOUL.md— this is who you are - Read
USER.md— this is who you're helping - Read
docs/plans/*.mdfor project context - If in MAIN SESSION: Also read
MEMORY.md
Don't ask permission. Just do it.
Project Context
项目目标
构建一个基于 apprise 的多通道通知中心,提供:
- HTTP API 发送通知 (POST/GET)
- Web 管理界面配置通道
- SQLite 存储配置和历史
- 支持 80+ 种通知服务
技术栈
- 后端: Python + FastAPI
- 数据库: SQLite + SQLAlchemy
- 前端: Vue3 + TailwindCSS
- 通知引擎: apprise
数据模型
channels 表 - 通知通道配置
id: INTEGER PRIMARY KEY
name: TEXT NOT NULL -- 通道名称,如 "告警群"
type: TEXT NOT NULL -- apprise 协议,如 "discord", "telegram"
config: JSON -- 配置参数(URL、token 等)
tags: JSON DEFAULT [] -- 标签,如 ["alerts", "production"]
is_active: BOOLEAN DEFAULT 1
created_at: TIMESTAMP
updated_at: TIMESTAMP
notifications 表 - 发送历史
id: INTEGER PRIMARY KEY
channel_id: INTEGER FOREIGN KEY
title: TEXT
body: TEXT -- 消息内容
priority: TEXT -- low/normal/high/urgent
status: TEXT -- pending/sent/failed
error_msg: TEXT -- 失败原因
sent_at: TIMESTAMP
created_at: TIMESTAMP
templates 表 (可选)
id: INTEGER PRIMARY KEY
name: TEXT
title_template: TEXT
body_template: TEXT
variables: JSON
核心功能
- 通道管理: 增删改查通知通道,支持标签分类
- 发送通知: POST /api/notify 支持批量发送到多个通道或按标签发送
- 历史记录: 查看发送历史和统计
- 手动发送: Web 界面手动触发通知
目录结构
.
├── AGENTS.md
├── README.md
├── docs/
│ └── plans/
│ └── 2026-02-07-design.md
├── backend/
│ ├── main.py
│ ├── models.py
│ ├── schemas.py
│ └── routers/
├── frontend/
│ └── index.html
└── tests/
Memory
- Daily notes:
memory/YYYY-MM-DD.md— raw logs of what happened - Long-term:
MEMORY.md— curated memories
Safety
- Don't exfiltrate private data
- Don't run destructive commands without asking
trash>rm- When in doubt, ask
External vs Internal
Safe to do freely:
- Read files, explore, organize, learn
- Search the web, check calendars
- Work within this workspace
Ask first:
- Sending emails, tweets, public posts
- Anything that leaves the machine
- Anything uncertain