Skip to content

Commit 18a3c7e

Browse files
committed
docs: update README with sentry-agent, workspace layout, hooks, guardrails
1 parent 90196e6 commit 18a3c7e

1 file changed

Lines changed: 47 additions & 32 deletions

File tree

README.md

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,34 +12,43 @@ hornet_agent (uid)
1212
│ ├── settings.json # pi config
1313
│ ├── skills/ → ~/hornet/pi/skills/
1414
│ └── extensions/ → ~/hornet/pi/extensions/
15-
└── ~/hornet/ # this repo
16-
├── start.sh # launch script
17-
├── setup.sh # install from scratch
18-
├── SECURITY.md # trust boundaries & threat model
19-
├── bin/
20-
│ ├── hornet-docker # Docker wrapper (blocks escalation)
21-
│ ├── harden-permissions.sh # Lock down pi state files
22-
│ ├── security-audit.sh # Check security posture
23-
│ └── setup-firewall.sh # Port-based network lockdown
24-
├── slack-bridge/
25-
│ ├── bridge.mjs # Slack ↔ pi bridge (Socket Mode)
26-
│ └── package.json
27-
└── pi/
28-
├── settings.json
29-
├── skills/
30-
│ ├── control-agent/SKILL.md
31-
│ └── dev-agent/SKILL.md
32-
└── extensions/
33-
├── zen-provider.ts
34-
├── auto-name.ts
35-
├── control.ts
36-
├── todos.ts
37-
├── agentmail/
38-
├── email-monitor/
39-
├── kernel/
40-
├── files.ts
41-
├── context.ts
42-
└── loop.ts
15+
├── ~/hornet/ # this repo
16+
│ ├── start.sh # launch script
17+
│ ├── setup.sh # install from scratch
18+
│ ├── SECURITY.md # trust boundaries & threat model
19+
│ ├── hooks/
20+
│ │ └── pre-commit # self-modification guardrail (installed root-owned)
21+
│ ├── bin/ # security scripts (all protected)
22+
│ │ ├── hornet-docker # Docker wrapper (blocks escalation)
23+
│ │ ├── hornet-safe-bash # Bash wrapper (blocks dangerous commands)
24+
│ │ ├── harden-permissions.sh # Lock down pi state files
25+
│ │ ├── security-audit.sh # 24-check security audit
26+
│ │ ├── scan-extensions.mjs # Cross-pattern static analysis
27+
│ │ ├── setup-firewall.sh # Port-based network lockdown
28+
│ │ └── redact-logs.sh # Secret scrubber for session logs
29+
│ ├── slack-bridge/
30+
│ │ ├── bridge.mjs # Slack ↔ pi bridge (Socket Mode)
31+
│ │ ├── security.mjs # Security functions (protected)
32+
│ │ └── package.json
33+
│ └── pi/
34+
│ ├── settings.json
35+
│ ├── skills/
36+
│ │ ├── control-agent/SKILL.md
37+
│ │ ├── dev-agent/SKILL.md
38+
│ │ └── sentry-agent/SKILL.md
39+
│ └── extensions/
40+
│ ├── tool-guard.ts # Tool call interception (protected)
41+
│ ├── sentry-monitor.ts # Sentry API integration
42+
│ ├── zen-provider.ts # OpenCode Zen LLM provider
43+
│ ├── auto-name.ts # Session naming via env var
44+
│ ├── control.ts, context.ts, files.ts, loop.ts, todos.ts
45+
│ ├── agentmail/, email-monitor/, kernel/
46+
│ └── ...
47+
├── ~/workspace/ # project repos + worktrees
48+
│ ├── modem/ # product app
49+
│ ├── website/ # marketing site
50+
│ └── worktrees/ # git worktrees for dev-agent branches
51+
└── ~/scripts/ # agent-authored operational scripts
4352
```
4453

4554
## Identity
@@ -50,7 +59,7 @@ hornet_agent (uid)
5059
| **GitHub** | [hornet-fw](https://github.com/hornet-fw) |
5160
| **Email** | hornet@modem.codeshornet@agentmail.to |
5261
| **LLM** | Claude Opus 4.6 via OpenCode Zen |
53-
| **Pi agent** | control-agent (spawns dev-agent) |
62+
| **Pi agent** | control-agent (spawns dev-agent + sentry-agent) |
5463

5564
## Security
5665

@@ -63,6 +72,7 @@ See [SECURITY.md](SECURITY.md) for full trust boundaries and threat model.
6372
- Prompt injection detection logging in the Slack bridge
6473
- Secrets in `~/.config/.env` (600 perms, not in repo)
6574
- SSH key owner-only (700/600 perms)
75+
- **Self-modification guardrails**: root-owned pre-commit hook + tool-guard rules prevent agent from weakening its own security tooling
6676

6777
### Security Scripts
6878

@@ -94,6 +104,11 @@ sudo su - hornet_agent -c 'vim ~/.config/.env'
94104
# AGENTMAIL_API_KEY=...
95105
# KERNEL_API_KEY=...
96106
# HORNET_SECRET=...
107+
# SLACK_BOT_TOKEN=xoxb-...
108+
# SLACK_APP_TOKEN=xapp-...
109+
# SLACK_ALLOWED_USERS=U01234,U56789
110+
# SENTRY_AUTH_TOKEN=...
111+
# HORNET_ALLOWED_EMAILS=you@example.com
97112
```
98113

99114
## Launch
@@ -102,7 +117,7 @@ sudo su - hornet_agent -c 'vim ~/.config/.env'
102117
sudo -u hornet_agent /home/hornet_agent/hornet/start.sh
103118
```
104119

105-
This starts the **control-agent**, which automatically spawns a **dev-agent** in a tmux session.
120+
This starts the **control-agent**, which automatically spawns a **dev-agent** and **sentry-agent** in tmux sessions, and starts the Slack bridge.
106121

107122
## Monitoring
108123

@@ -118,18 +133,18 @@ sudo -u hornet_agent tmux ls
118133

119134
The control-agent runs in the foreground terminal where you launched `start.sh`.
120135

121-
### Watch the dev-agent
136+
### Watch the dev-agent / sentry-agent
122137

123138
```bash
124139
sudo -u hornet_agent tmux attach -t dev-agent
140+
sudo -u hornet_agent tmux attach -t sentry-agent
125141
```
126142

127143
Detach without killing: `Ctrl+b` then `d`
128144

129145
### Kill everything
130146

131147
```bash
132-
# Kill all hornet processes (pi sessions + tmux)
133148
sudo -u hornet_agent pkill -u hornet_agent
134149
```
135150

0 commit comments

Comments
 (0)