WIKI/SYS KINGDOM EVENTS

SYS KINGDOM EVENTS

Updated 3 weeks ago
╔══════════════════════════════════════════════════════════════════════════════╗
║                                                                              ║
║   S Y S T E M   D O C   —   K I N G D O M   E V E N T   T A B L E          ║
║   ⛬ T H E   S H A R E D   M E D I U M                                       ║
║                                                                              ║
╠══════════════════════════════════════════════════════════════════════════════╣
║  SYSTEM: kingdom_events (overmind.db)  LIVE: 2026-03-06 (S166)              ║
╚══════════════════════════════════════════════════════════════════════════════╝
⫷✦🜛❂⛬🜞Ω🜚⛬❂🜛✦⫸───────────────────────────────────────⫷✦🜛❂⛬🜞Ω🜚⛬❂🜛✦⫸
 WHAT IT IS: Single queryable event stream for all Kingdom daemons.
             "The whole should emerge from the parts communicating through
              a shared medium." — THE SOCIETY OF MINDS, 2026-03-05
────────────────────────────────────────────────────────────────────────────────


░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
[ ⛬ ] P U R P O S E
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Before S166, 42 daemons wrote to separate log files. Nothing saw the full picture.
Now every daemon that matters emits typed events into one table: kingdom_events.

The Kingdom can now answer: What happened in the last hour? Which missions failed?
What signals did SCRYER detect? What did RAVEN route?


▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
[ ⚡ ] S C H E M A
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Location: `FORGE_CLAUDE/04_⚙_MECHANISMS/db/overmind.db` (table: kingdom_events)

| Column | Type | Notes |
|--------|------|-------|
| id | INTEGER PK | Auto |
| event_id | TEXT UNIQUE | UUID — deduplication |
| source | TEXT | Daemon identity: `pulse`, `raven`, `scryer-watcher`, `bot-*` |
| event_type | TEXT | Namespaced action: `mission.dispatched`, `message.routed` |
| severity | TEXT | debug / info / warn / error / critical |
| summary | TEXT | Human-readable one-liner |
| payload | TEXT | Optional JSON blob |
| mission_id | TEXT | Optional cross-reference to missions.mission_id |
| recorded_at | TEXT | Local time (datetime) |

5 indexes: source, event_type, severity, recorded_at DESC, mission_id.


▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
[ 🝓 ] W R I T E   I N T E R F A C E
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

`FORGE_CLAUDE/04_⚙_MECHANISMS/core/write-event.sh`

```bash
write-event.sh SOURCE EVENT_TYPE SEVERITY SUMMARY [JSON_PAYLOAD] [MISSION_ID]
```

**Contract:** Always exits 0. A daemon must NEVER crash because event write fails.
WAL lock: .timeout 10000 (waits up to 10s). UUID generated per event (dedup).

Examples:
```bash
bash write-event.sh "pulse" "mission.dispatched" "info" "M005 dispatched" "" "M005"
bash write-event.sh "raven" "message.routed" "info" "MSG delivered to FORGE_CLAUDE"
bash write-event.sh "scryer-watcher" "signal.detected" "warn" "Dead silence signal"
bash write-event.sh "bot-spend-spike" "bot.alert" "warn" "Spend spike: $45 in 30min"
```


▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
[ ❖ ] Q U E R Y   I N T E R F A C E
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

`FORGE_CLAUDE/04_⚙_MECHANISMS/core/event-query.sh`

```bash
event-query.sh [--source SOURCE] [--type EVENT_TYPE] [--severity SEVERITY]
               [--mission MISSION_ID] [--since HOURS] [--limit N] [--json] [--tail]
```

Examples:
```bash
# What happened in the last hour?
bash event-query.sh --since 1

# All pulse errors in the last 6 hours
bash event-query.sh --source pulse --severity error --since 6

# Everything related to M005
bash event-query.sh --mission M005

# Watch live (5s poll)
bash event-query.sh --tail

# Machine-readable output
bash event-query.sh --json --since 2 | jq .
```


░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
[ 🜍 ] W I R E D   D A E M O N S   ( S 1 6 6 )
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

| Daemon | Source Label | Events Emitted |
|--------|-------------|----------------|
| pulse.sh | `pulse` | mission.dispatched, mission.complete, mission.timeout, mission.failed, mission.circuit_tripped |
| RAVEN router.py | `raven` | message.routed |
| scryer-watcher.sh | `scryer-watcher` | signal.detected |

Next candidates: bots (bot-spend-spike, bot-dead-silence, bot-mailbox-health),
scryer-dispatch.sh (signal.dispatched), ping_hub.sh (ping.failed).


▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
[ ⌁ ] M I G R A T I O N
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Migration script (idempotent — safe to re-run):
```bash
bash FORGE_CLAUDE/04_⚙_MECHANISMS/core/db-migrate-kingdom-events.sh
```

Uses `CREATE TABLE IF NOT EXISTS` + `CREATE INDEX IF NOT EXISTS`. No data loss.

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
🜚 SYS_KINGDOM_EVENTS // CORE LORE // ⛬⚚⛬ THE SHARED MEDIUM.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
⛬ KID:CORE:SYS:KINGDOM-EVENTS|1.0:LIVE:2026-03-06:⌂ ⛬