Add comprehensive documentation for the Aethex Sentinel bot

Adds detailed documentation to replit.md for the Aethex Sentinel bot, covering its overview, tech stack, project structure, database models, commands, health endpoint, and environment variables.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e72fc1b7-94bd-4d6c-801f-cbac2fae245c
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 8496ba65-c289-429f-a4bd-0235ea116b87
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3bdfff67-975a-46ad-9845-fbb6b4a4c4b5/e72fc1b7-94bd-4d6c-801f-cbac2fae245c/jW8PJKQ
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
sirpiglr 2025-12-07 21:12:39 +00:00
parent fbd203dcfc
commit 86b9700b4c

144
replit.md
View file

@ -95,3 +95,147 @@ The application runs on port 5000 using the Flask development server.
The `attached_assets` folder contains two example AeThex Discord bots:
- **Bot 1**: Basic version with verify, profile, set-realm, unlink, verify-role commands
- **Bot 2**: Extended version with additional help, stats, leaderboard, post commands and feed sync
---
# Aethex Sentinel Bot
Enterprise-grade Discord bot for managing a federation of 5 servers.
## Overview
Aethex Sentinel is a TypeScript-based Discord bot built with the Sapphire framework. It provides:
- **Federation Sync**: Cross-server role synchronization
- **Sentinel Security**: Anti-nuke protection with heat-based threat detection
- **Commerce Module**: Ticket system with database persistence
- **Dashboard Updates**: Network status updates in voice channels
## Tech Stack
- **Runtime**: Node.js 20 + TypeScript
- **Framework**: @sapphire/framework
- **Database**: PostgreSQL (via Prisma ORM)
- **Health Endpoint**: HTTP server on port 8044
## Project Structure
```
sentinel-bot/
├── src/
│ ├── core/
│ │ ├── client.ts - SapphireClient with Prisma
│ │ ├── config.ts - Environment configuration
│ │ └── health.ts - Health endpoint server
│ ├── modules/
│ │ ├── federation/FederationManager.ts - Cross-server role sync
│ │ ├── security/HeatSystem.ts - Anti-nuke protection
│ │ ├── commerce/TicketManager.ts - Ticket system
│ │ └── dashboard/StatusUpdater.ts - Network status updates
│ ├── listeners/
│ │ ├── ready.ts - Bot ready handler
│ │ ├── guildMemberUpdate.ts - Role sync listener
│ │ ├── auditLogCreate.ts - Security monitor
│ │ └── interactionCreate.ts - Button handler
│ ├── commands/
│ │ ├── federation.ts - /federation command
│ │ ├── sentinel.ts - /sentinel command
│ │ ├── ticket.ts - /ticket command
│ │ └── status.ts - /status command
│ └── index.ts - Entry point
├── prisma/
│ └── schema.prisma - Database models
├── package.json
├── tsconfig.json
└── .env.example
```
## Database Models (Prisma)
- **User**: Discord user profiles with federation membership
- **HeatEvent**: Security events for threat detection
- **Ticket**: Support tickets with transcripts
- **GuildConfig**: Per-guild configuration
- **RoleMapping**: Cross-server role sync mappings
## Commands
| Command | Description |
|---------|-------------|
| `/federation link` | Link a role across servers |
| `/federation unlink` | Remove a role mapping |
| `/federation list` | Show all role mappings |
| `/sentinel heat` | View heat level of a user |
| `/sentinel lockdown` | Enable/disable lockdown mode |
| `/sentinel config` | Configure security thresholds |
| `/ticket create` | Create a support ticket |
| `/ticket close` | Close a ticket with transcript |
| `/status` | View network status |
## Health Endpoint
The bot exposes a health endpoint compatible with Bot Master dashboard:
**GET /health** (port 8044)
```json
{
"status": "online",
"guilds": 5,
"commands": 12,
"uptime": 3600,
"timestamp": "2025-12-07T12:00:00.000Z",
"bot": {
"tag": "Aethex Sentinel#1234",
"id": "123456789"
}
}
```
**GET /stats** (port 8044)
```json
{
"guilds": [
{ "id": "...", "name": "...", "memberCount": 100 }
],
"totalMembers": 500,
"uptime": 3600
}
```
## Environment Variables
Required secrets (add in Replit Secrets tab):
- `DISCORD_TOKEN` - Discord bot token
- `DATABASE_URL` - PostgreSQL connection string
Optional configuration:
- `HUB_GUILD_ID` - Main hub server ID
- `FEDERATION_GUILD_IDS` - Comma-separated list of guild IDs
- `HEALTH_PORT` - Health server port (default: 8044)
## Running the Bot
```bash
cd sentinel-bot
npm install
npx prisma generate
npx prisma db push
npm run build
npm start
```
For development:
```bash
npm run dev
```
## Integration with Bot Master
Once the Sentinel bot is running, add it to Bot Master dashboard:
1. Go to Bot Master dashboard (port 5000)
2. Click "Add Bot"
3. Enter name: "Aethex Sentinel"
4. Enter health endpoint: `http://localhost:8044/health`
5. Select type: "discord"
The dashboard will automatically poll the health endpoint for status updates.