@harbinger-ai/harbinger 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +406 -0
- package/agents/README.md +76 -0
- package/agents/_template/CONFIG.yaml +7 -0
- package/agents/_template/HEARTBEAT.md +59 -0
- package/agents/_template/IDENTITY.md +4 -0
- package/agents/_template/SKILLS.md +1 -0
- package/agents/_template/SOUL.md +25 -0
- package/agents/_template/TOOLS.md +3 -0
- package/agents/binary-reverser/CONFIG.yaml +21 -0
- package/agents/binary-reverser/HEARTBEAT.md +65 -0
- package/agents/binary-reverser/IDENTITY.md +1 -0
- package/agents/binary-reverser/SKILLS.md +1 -0
- package/agents/binary-reverser/SOUL.md +23 -0
- package/agents/binary-reverser/TOOLS.md +99 -0
- package/agents/browser-agent/CONFIG.yaml +20 -0
- package/agents/browser-agent/HEARTBEAT.md +79 -0
- package/agents/browser-agent/IDENTITY.md +5 -0
- package/agents/browser-agent/SKILLS.md +86 -0
- package/agents/browser-agent/SOUL.md +23 -0
- package/agents/browser-agent/TOOLS.md +186 -0
- package/agents/cloud-infiltrator/CONFIG.yaml +22 -0
- package/agents/cloud-infiltrator/HEARTBEAT.md +78 -0
- package/agents/cloud-infiltrator/IDENTITY.md +1 -0
- package/agents/cloud-infiltrator/SKILLS.md +1 -0
- package/agents/cloud-infiltrator/SOUL.md +23 -0
- package/agents/cloud-infiltrator/TOOLS.md +68 -0
- package/agents/coding-assistant/CONFIG.yaml +22 -0
- package/agents/coding-assistant/HEARTBEAT.md +57 -0
- package/agents/coding-assistant/IDENTITY.md +5 -0
- package/agents/coding-assistant/SKILLS.md +69 -0
- package/agents/coding-assistant/SOUL.md +60 -0
- package/agents/coding-assistant/TOOLS.md +168 -0
- package/agents/learning-agent/CONFIG.yaml +21 -0
- package/agents/learning-agent/HEARTBEAT.md +63 -0
- package/agents/learning-agent/IDENTITY.md +5 -0
- package/agents/learning-agent/SKILLS.md +86 -0
- package/agents/learning-agent/SOUL.md +77 -0
- package/agents/learning-agent/TOOLS.md +145 -0
- package/agents/maintainer/CONFIG.yaml +31 -0
- package/agents/maintainer/HEARTBEAT.md +28 -0
- package/agents/maintainer/IDENTITY.md +33 -0
- package/agents/maintainer/SKILLS.md +24 -0
- package/agents/maintainer/SOUL.md +61 -0
- package/agents/maintainer/TOOLS.md +29 -0
- package/agents/maintainer/lib/engine.js +279 -0
- package/agents/maintainer/lib/safe-fixer.js +183 -0
- package/agents/morning-brief/CONFIG.yaml +22 -0
- package/agents/morning-brief/HEARTBEAT.md +60 -0
- package/agents/morning-brief/IDENTITY.md +5 -0
- package/agents/morning-brief/SKILLS.md +56 -0
- package/agents/morning-brief/SOUL.md +64 -0
- package/agents/morning-brief/TOOLS.md +112 -0
- package/agents/osint-detective/CONFIG.yaml +24 -0
- package/agents/osint-detective/HEARTBEAT.md +66 -0
- package/agents/osint-detective/IDENTITY.md +1 -0
- package/agents/osint-detective/SKILLS.md +1 -0
- package/agents/osint-detective/SOUL.md +23 -0
- package/agents/osint-detective/TOOLS.md +81 -0
- package/agents/recon-scout/CONFIG.yaml +22 -0
- package/agents/recon-scout/HEARTBEAT.md +79 -0
- package/agents/recon-scout/IDENTITY.md +1 -0
- package/agents/recon-scout/SKILLS.md +1 -0
- package/agents/recon-scout/SOUL.md +23 -0
- package/agents/recon-scout/TOOLS.md +93 -0
- package/agents/report-writer/CONFIG.yaml +21 -0
- package/agents/report-writer/HEARTBEAT.md +63 -0
- package/agents/report-writer/IDENTITY.md +1 -0
- package/agents/report-writer/SKILLS.md +1 -0
- package/agents/report-writer/SOUL.md +23 -0
- package/agents/report-writer/TOOLS.md +69 -0
- package/agents/shared/README.md +13 -0
- package/agents/web-hacker/CONFIG.yaml +24 -0
- package/agents/web-hacker/HEARTBEAT.md +78 -0
- package/agents/web-hacker/IDENTITY.md +1 -0
- package/agents/web-hacker/SKILLS.md +1 -0
- package/agents/web-hacker/SOUL.md +23 -0
- package/agents/web-hacker/TOOLS.md +86 -0
- package/api/CLAUDE.md +19 -0
- package/api/index.js +274 -0
- package/bin/cli.js +620 -0
- package/bin/local.sh +31 -0
- package/bin/postinstall.js +63 -0
- package/config/index.js +24 -0
- package/config/instrumentation.js +93 -0
- package/drizzle/0000_initial.sql +52 -0
- package/drizzle/0001_bounty_and_registry.sql +82 -0
- package/drizzle/0002_sync_columns.sql +7 -0
- package/drizzle/0003_graceful_bloodscream.sql +86 -0
- package/drizzle/meta/0000_snapshot.json +321 -0
- package/drizzle/meta/0003_snapshot.json +878 -0
- package/drizzle/meta/_journal.json +34 -0
- package/drizzle/relations.ts +3 -0
- package/drizzle/schema.ts +145 -0
- package/lib/actions.js +47 -0
- package/lib/agents.js +166 -0
- package/lib/ai/agent.js +96 -0
- package/lib/ai/autonomous-engine.js +261 -0
- package/lib/ai/index.js +359 -0
- package/lib/ai/model-router.js +254 -0
- package/lib/ai/model.js +73 -0
- package/lib/ai/tools.js +84 -0
- package/lib/auth/actions.js +28 -0
- package/lib/auth/config.js +27 -0
- package/lib/auth/edge-config.js +27 -0
- package/lib/auth/index.js +27 -0
- package/lib/auth/middleware.js +53 -0
- package/lib/bounty/actions.js +119 -0
- package/lib/bounty/findings.js +64 -0
- package/lib/bounty/programs.js +34 -0
- package/lib/bounty/sync-targets.js +267 -0
- package/lib/bounty/targets.js +33 -0
- package/lib/channels/base.js +56 -0
- package/lib/channels/index.js +15 -0
- package/lib/channels/telegram.js +148 -0
- package/lib/chat/actions.js +288 -0
- package/lib/chat/api.js +135 -0
- package/lib/chat/components/app-sidebar.js +237 -0
- package/lib/chat/components/app-sidebar.jsx +289 -0
- package/lib/chat/components/chat-header.js +27 -0
- package/lib/chat/components/chat-header.jsx +37 -0
- package/lib/chat/components/chat-input.js +230 -0
- package/lib/chat/components/chat-input.jsx +228 -0
- package/lib/chat/components/chat-nav-context.js +11 -0
- package/lib/chat/components/chat-nav-context.jsx +11 -0
- package/lib/chat/components/chat-page.js +81 -0
- package/lib/chat/components/chat-page.jsx +100 -0
- package/lib/chat/components/chat.js +150 -0
- package/lib/chat/components/chat.jsx +182 -0
- package/lib/chat/components/chats-page.js +302 -0
- package/lib/chat/components/chats-page.jsx +330 -0
- package/lib/chat/components/crons-page.js +172 -0
- package/lib/chat/components/crons-page.jsx +244 -0
- package/lib/chat/components/enhanced-tool-call.js +103 -0
- package/lib/chat/components/enhanced-tool-call.jsx +139 -0
- package/lib/chat/components/findings-page.js +175 -0
- package/lib/chat/components/findings-page.jsx +214 -0
- package/lib/chat/components/greeting.js +22 -0
- package/lib/chat/components/greeting.jsx +26 -0
- package/lib/chat/components/icons.js +777 -0
- package/lib/chat/components/icons.jsx +741 -0
- package/lib/chat/components/index.js +26 -0
- package/lib/chat/components/mcp-page.js +260 -0
- package/lib/chat/components/mcp-page.jsx +355 -0
- package/lib/chat/components/message.js +289 -0
- package/lib/chat/components/message.jsx +315 -0
- package/lib/chat/components/messages.js +66 -0
- package/lib/chat/components/messages.jsx +77 -0
- package/lib/chat/components/notifications-page.js +56 -0
- package/lib/chat/components/notifications-page.jsx +87 -0
- package/lib/chat/components/page-layout.js +21 -0
- package/lib/chat/components/page-layout.jsx +28 -0
- package/lib/chat/components/registry-page.js +222 -0
- package/lib/chat/components/registry-page.jsx +255 -0
- package/lib/chat/components/settings-layout.js +40 -0
- package/lib/chat/components/settings-layout.jsx +54 -0
- package/lib/chat/components/settings-secrets-page.js +216 -0
- package/lib/chat/components/settings-secrets-page.jsx +264 -0
- package/lib/chat/components/sidebar-history-item.js +132 -0
- package/lib/chat/components/sidebar-history-item.jsx +113 -0
- package/lib/chat/components/sidebar-history.js +115 -0
- package/lib/chat/components/sidebar-history.jsx +157 -0
- package/lib/chat/components/sidebar-user-nav.js +63 -0
- package/lib/chat/components/sidebar-user-nav.jsx +73 -0
- package/lib/chat/components/status-bar.js +39 -0
- package/lib/chat/components/status-bar.jsx +51 -0
- package/lib/chat/components/swarm-page.js +157 -0
- package/lib/chat/components/swarm-page.jsx +210 -0
- package/lib/chat/components/targets-page.js +376 -0
- package/lib/chat/components/targets-page.jsx +389 -0
- package/lib/chat/components/tool-call.js +86 -0
- package/lib/chat/components/tool-call.jsx +104 -0
- package/lib/chat/components/tool-panel.js +107 -0
- package/lib/chat/components/tool-panel.jsx +145 -0
- package/lib/chat/components/triggers-page.js +153 -0
- package/lib/chat/components/triggers-page.jsx +221 -0
- package/lib/chat/components/ui/confirm-dialog.js +53 -0
- package/lib/chat/components/ui/confirm-dialog.jsx +57 -0
- package/lib/chat/components/ui/dropdown-menu.js +98 -0
- package/lib/chat/components/ui/dropdown-menu.jsx +116 -0
- package/lib/chat/components/ui/rename-dialog.js +74 -0
- package/lib/chat/components/ui/rename-dialog.jsx +72 -0
- package/lib/chat/components/ui/scroll-area.js +13 -0
- package/lib/chat/components/ui/scroll-area.jsx +17 -0
- package/lib/chat/components/ui/separator.js +21 -0
- package/lib/chat/components/ui/separator.jsx +18 -0
- package/lib/chat/components/ui/sheet.js +75 -0
- package/lib/chat/components/ui/sheet.jsx +95 -0
- package/lib/chat/components/ui/sidebar.js +227 -0
- package/lib/chat/components/ui/sidebar.jsx +245 -0
- package/lib/chat/components/ui/tooltip.js +56 -0
- package/lib/chat/components/ui/tooltip.jsx +66 -0
- package/lib/chat/components/upgrade-dialog.js +151 -0
- package/lib/chat/components/upgrade-dialog.jsx +170 -0
- package/lib/chat/utils.js +11 -0
- package/lib/cron.js +246 -0
- package/lib/db/api-keys.js +163 -0
- package/lib/db/chats.js +145 -0
- package/lib/db/index.js +52 -0
- package/lib/db/notifications.js +99 -0
- package/lib/db/schema.js +145 -0
- package/lib/db/update-check.js +96 -0
- package/lib/db/users.js +89 -0
- package/lib/mcp/actions.js +104 -0
- package/lib/mcp/client.js +79 -0
- package/lib/mcp/handler.js +57 -0
- package/lib/mcp/server.js +165 -0
- package/lib/paths.js +46 -0
- package/lib/registry/actions.js +164 -0
- package/lib/registry/catalog.js +137 -0
- package/lib/registry/tools.js +71 -0
- package/lib/tools/create-job.js +99 -0
- package/lib/tools/github.js +217 -0
- package/lib/tools/openai.js +35 -0
- package/lib/tools/telegram.js +292 -0
- package/lib/triggers.js +118 -0
- package/lib/utils/render-md.js +102 -0
- package/package.json +103 -0
- package/setup/lib/auth.mjs +81 -0
- package/setup/lib/env.mjs +21 -0
- package/setup/lib/fs-utils.mjs +20 -0
- package/setup/lib/github.mjs +149 -0
- package/setup/lib/prerequisites.mjs +155 -0
- package/setup/lib/prompts.mjs +267 -0
- package/setup/lib/providers.mjs +48 -0
- package/setup/lib/sync.mjs +125 -0
- package/setup/lib/targets.mjs +45 -0
- package/setup/lib/telegram-verify.mjs +63 -0
- package/setup/lib/telegram.mjs +76 -0
- package/setup/setup-telegram.mjs +264 -0
- package/setup/setup.mjs +842 -0
- package/templates/.dockerignore +5 -0
- package/templates/.env.example +63 -0
- package/templates/.github/workflows/auto-merge.yml +117 -0
- package/templates/.github/workflows/build-image.yml +36 -0
- package/templates/.github/workflows/notify-job-failed.yml +64 -0
- package/templates/.github/workflows/notify-pr-complete.yml +119 -0
- package/templates/.github/workflows/rebuild-event-handler.yml +121 -0
- package/templates/.github/workflows/run-job.yml +89 -0
- package/templates/.github/workflows/upgrade-event-handler.yml +62 -0
- package/templates/.gitignore.template +45 -0
- package/templates/.pi/extensions/env-sanitizer/index.ts +48 -0
- package/templates/.pi/extensions/env-sanitizer/package.json +5 -0
- package/templates/CLAUDE.md +29 -0
- package/templates/CLAUDE.md.template +307 -0
- package/templates/app/api/[...thepopebot]/route.js +1 -0
- package/templates/app/api/auth/[...nextauth]/route.js +1 -0
- package/templates/app/chat/[chatId]/page.js +8 -0
- package/templates/app/chats/page.js +7 -0
- package/templates/app/components/ascii-logo.jsx +10 -0
- package/templates/app/components/login-form.jsx +92 -0
- package/templates/app/components/setup-form.jsx +82 -0
- package/templates/app/components/theme-provider.jsx +11 -0
- package/templates/app/components/theme-toggle.jsx +38 -0
- package/templates/app/components/ui/button.jsx +21 -0
- package/templates/app/components/ui/card.jsx +23 -0
- package/templates/app/components/ui/input.jsx +10 -0
- package/templates/app/components/ui/label.jsx +10 -0
- package/templates/app/crons/page.js +5 -0
- package/templates/app/findings/page.js +7 -0
- package/templates/app/globals.css +90 -0
- package/templates/app/layout.js +19 -0
- package/templates/app/login/page.js +15 -0
- package/templates/app/notifications/page.js +7 -0
- package/templates/app/page.js +7 -0
- package/templates/app/settings/crons/page.js +5 -0
- package/templates/app/settings/layout.js +7 -0
- package/templates/app/settings/mcp/page.js +5 -0
- package/templates/app/settings/page.js +5 -0
- package/templates/app/settings/secrets/page.js +5 -0
- package/templates/app/settings/triggers/page.js +5 -0
- package/templates/app/stream/chat/route.js +1 -0
- package/templates/app/swarm/page.js +7 -0
- package/templates/app/targets/page.js +7 -0
- package/templates/app/toolbox/page.js +7 -0
- package/templates/app/triggers/page.js +5 -0
- package/templates/config/AGENT.md +34 -0
- package/templates/config/CRONS.json +56 -0
- package/templates/config/EVENT_HANDLER.md +224 -0
- package/templates/config/HEARTBEAT.md +3 -0
- package/templates/config/JOB_SUMMARY.md +130 -0
- package/templates/config/MCP_SERVERS.json +1 -0
- package/templates/config/SKILL_BUILDING_GUIDE.md +90 -0
- package/templates/config/SOUL.md +17 -0
- package/templates/config/TRIGGERS.json +58 -0
- package/templates/docker/event-handler/Dockerfile +20 -0
- package/templates/docker/event-handler/ecosystem.config.cjs +8 -0
- package/templates/docker/job-claude-code/Dockerfile +34 -0
- package/templates/docker/job-claude-code/entrypoint.sh +139 -0
- package/templates/docker/job-pi-coding-agent/Dockerfile +44 -0
- package/templates/docker/job-pi-coding-agent/entrypoint.sh +163 -0
- package/templates/docker-compose.yml +63 -0
- package/templates/instrumentation.js +6 -0
- package/templates/middleware.js +1 -0
- package/templates/next.config.mjs +3 -0
- package/templates/postcss.config.mjs +5 -0
- package/templates/skills/LICENSE +21 -0
- package/templates/skills/README.md +119 -0
- package/templates/skills/brave-search/SKILL.md +79 -0
- package/templates/skills/brave-search/content.js +86 -0
- package/templates/skills/brave-search/package-lock.json +621 -0
- package/templates/skills/brave-search/package.json +14 -0
- package/templates/skills/brave-search/search.js +199 -0
- package/templates/skills/browser-tools/SKILL.md +196 -0
- package/templates/skills/browser-tools/browser-content.js +103 -0
- package/templates/skills/browser-tools/browser-cookies.js +35 -0
- package/templates/skills/browser-tools/browser-eval.js +53 -0
- package/templates/skills/browser-tools/browser-hn-scraper.js +108 -0
- package/templates/skills/browser-tools/browser-nav.js +44 -0
- package/templates/skills/browser-tools/browser-pick.js +162 -0
- package/templates/skills/browser-tools/browser-screenshot.js +34 -0
- package/templates/skills/browser-tools/browser-start.js +87 -0
- package/templates/skills/browser-tools/package-lock.json +2556 -0
- package/templates/skills/browser-tools/package.json +19 -0
- package/templates/skills/llm-secrets/SKILL.md +34 -0
- package/templates/skills/llm-secrets/llm-secrets.js +33 -0
- package/templates/skills/modify-self/SKILL.md +12 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# BRIEF — Tool Arsenal
|
|
2
|
+
|
|
3
|
+
> Every tool listed here is installed in your Docker container and ready to use.
|
|
4
|
+
|
|
5
|
+
## Tool Philosophy
|
|
6
|
+
|
|
7
|
+
Aggregate fast, format beautifully, deliver reliably. You pull from many sources and produce one unified output. Every tool serves the brief — either it provides data or it helps present data.
|
|
8
|
+
|
|
9
|
+
## Primary Tools
|
|
10
|
+
|
|
11
|
+
### newsboat / feedparser
|
|
12
|
+
- **Purpose:** RSS feed parsing for security news aggregation
|
|
13
|
+
- **Category:** Data Collection — News Feeds
|
|
14
|
+
```bash
|
|
15
|
+
# Parse RSS feeds
|
|
16
|
+
newsboat -r -u /workspace/feeds.txt
|
|
17
|
+
python3 -c "import feedparser; f=feedparser.parse('https://feeds.feedburner.com/TheHackersNews'); print(f.entries[0].title)"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### playwright / puppeteer
|
|
21
|
+
- **Purpose:** Browser-based web scraping for news and content
|
|
22
|
+
- **Category:** Data Collection — Web Scraping
|
|
23
|
+
```bash
|
|
24
|
+
# Scrape news page via Harbinger API
|
|
25
|
+
curl -X POST {{THEPOPEBOT_API}}/api/browser/sessions/{{session_id}}/navigate \
|
|
26
|
+
-d '{"url": "https://thehackernews.com"}'
|
|
27
|
+
curl {{THEPOPEBOT_API}}/api/browser/sessions/{{session_id}}/screenshot
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### pandoc
|
|
31
|
+
- **Purpose:** Markdown to HTML/PDF conversion for brief output
|
|
32
|
+
- **Category:** Formatting — Document Conversion
|
|
33
|
+
```bash
|
|
34
|
+
pandoc brief.md -o brief.html --template=harbinger-brief.html --self-contained
|
|
35
|
+
pandoc brief.md -o brief.pdf --template=harbinger-brief.latex
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### mermaid-cli (mmdc)
|
|
39
|
+
- **Purpose:** Generate charts and diagrams for visual briefs
|
|
40
|
+
- **Category:** Formatting — Diagram Generation
|
|
41
|
+
```bash
|
|
42
|
+
mmdc -i agent-status.mmd -o status-chart.png -t dark
|
|
43
|
+
mmdc -i task-flow.mmd -o flow.svg
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### curl
|
|
47
|
+
- **Purpose:** API requests for channel delivery and agent polling
|
|
48
|
+
- **Category:** Distribution — API Access
|
|
49
|
+
```bash
|
|
50
|
+
# Send Discord webhook
|
|
51
|
+
curl -X POST "https://discord.com/api/webhooks/ID/TOKEN" \
|
|
52
|
+
-H "Content-Type: application/json" \
|
|
53
|
+
-d '{"content": "Morning Brief", "embeds": [...]}'
|
|
54
|
+
|
|
55
|
+
# Send Telegram message
|
|
56
|
+
curl -X POST "https://api.telegram.org/botTOKEN/sendMessage" \
|
|
57
|
+
-d '{"chat_id": "CHAT_ID", "text": "Morning Brief", "parse_mode": "Markdown"}'
|
|
58
|
+
|
|
59
|
+
# Send Slack webhook
|
|
60
|
+
curl -X POST "https://hooks.slack.com/services/T/B/X" \
|
|
61
|
+
-H "Content-Type: application/json" \
|
|
62
|
+
-d '{"text": "Morning Brief", "blocks": [...]}'
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### jq
|
|
66
|
+
- **Purpose:** JSON processing for API response parsing
|
|
67
|
+
- **Category:** Data Processing
|
|
68
|
+
```bash
|
|
69
|
+
# Parse agent statuses
|
|
70
|
+
curl -s {{THEPOPEBOT_API}}/api/agents | jq '.[] | {name, status, last_heartbeat}'
|
|
71
|
+
# Extract CVE data
|
|
72
|
+
curl -s "https://cve.circl.lu/api/last" | jq '.[0:5] | .[] | {id, summary}'
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### cron
|
|
76
|
+
- **Purpose:** Schedule brief generation
|
|
77
|
+
- **Category:** Scheduling
|
|
78
|
+
```bash
|
|
79
|
+
# Crontab entry (already configured in CONFIG.yaml)
|
|
80
|
+
# 0 8 * * * /workspace/generate-brief.sh
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Docker Tools
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Spawn web scraper
|
|
87
|
+
curl -X POST {{THEPOPEBOT_API}}/api/docker/containers \
|
|
88
|
+
-d '{"image": "harbinger/reporter-agent", "cmd": "python3 scrape-news.py", "auto_remove": true}'
|
|
89
|
+
|
|
90
|
+
# Generate charts in sub-container
|
|
91
|
+
curl -X POST {{THEPOPEBOT_API}}/api/docker/containers \
|
|
92
|
+
-d '{"image": "harbinger/mermaid", "cmd": "mmdc -i charts.mmd -o charts.png", "auto_remove": true}'
|
|
93
|
+
|
|
94
|
+
curl {{THEPOPEBOT_API}}/api/docker/containers
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Harbinger API Access
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Poll all agent heartbeats
|
|
101
|
+
curl {{THEPOPEBOT_API}}/api/agents
|
|
102
|
+
|
|
103
|
+
# Get overnight findings
|
|
104
|
+
curl "{{THEPOPEBOT_API}}/api/findings?since=24h"
|
|
105
|
+
|
|
106
|
+
# Get SAGE's overnight report
|
|
107
|
+
curl "{{THEPOPEBOT_API}}/api/agents/sage/report"
|
|
108
|
+
|
|
109
|
+
# Broadcast brief completion
|
|
110
|
+
curl -X POST {{THEPOPEBOT_API}}/api/agents/broadcast \
|
|
111
|
+
-d '{"from": "brief", "message": "Morning brief delivered to all channels", "priority": "info"}'
|
|
112
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
model: configurable
|
|
2
|
+
temperature: 0.5 # balanced
|
|
3
|
+
docker_image: harbinger/osint-detective
|
|
4
|
+
proxy_chain: required
|
|
5
|
+
tor_enabled: configurable
|
|
6
|
+
data_retention: configurable
|
|
7
|
+
auto_handoff: true
|
|
8
|
+
handoff_to: [recon-scout, web-hacker]
|
|
9
|
+
feeds_knowledge_graph: true
|
|
10
|
+
|
|
11
|
+
# Resource limits (enforced by Docker)
|
|
12
|
+
memory_mb: 2048
|
|
13
|
+
cpu_count: 2
|
|
14
|
+
|
|
15
|
+
# Agent capabilities
|
|
16
|
+
capabilities:
|
|
17
|
+
- email_harvesting
|
|
18
|
+
- social_media_profiling
|
|
19
|
+
- domain_whois_lookup
|
|
20
|
+
- breach_data_search
|
|
21
|
+
- github_dorking
|
|
22
|
+
- google_dorking
|
|
23
|
+
- dns_history
|
|
24
|
+
- certificate_search
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# SPECTER — Heartbeat Protocol
|
|
2
|
+
|
|
3
|
+
## Heartbeat Schedule
|
|
4
|
+
|
|
5
|
+
- **Interval:** Every 60 seconds while active
|
|
6
|
+
- **Endpoint:** `POST /api/agents/{{agent_id}}/heartbeat`
|
|
7
|
+
- **Model:** Cheapest available (Haiku or Gemini Flash)
|
|
8
|
+
- **Cost target:** < $0.005 per heartbeat
|
|
9
|
+
|
|
10
|
+
## Health Check Tasks
|
|
11
|
+
|
|
12
|
+
### 1. Self-Check
|
|
13
|
+
- [ ] Process alive and responsive
|
|
14
|
+
- [ ] Workspace accessible (`/workspace`)
|
|
15
|
+
- [ ] Primary tools functional (spot-check: `sherlock --version`)
|
|
16
|
+
- [ ] Memory within 2048MB limit
|
|
17
|
+
- [ ] Proxy chain active and functional
|
|
18
|
+
- [ ] Tor available (if configured)
|
|
19
|
+
|
|
20
|
+
### 2. Intelligence Status
|
|
21
|
+
- [ ] Current investigation running? Report target and phase
|
|
22
|
+
- [ ] Entities discovered so far
|
|
23
|
+
- [ ] Relationships mapped in knowledge graph
|
|
24
|
+
- [ ] Data sources checked vs total
|
|
25
|
+
- [ ] Pending cross-reference tasks
|
|
26
|
+
- [ ] Intelligence handed off to downstream agents
|
|
27
|
+
|
|
28
|
+
### 3. Swarm Health
|
|
29
|
+
- [ ] Message bus reachable
|
|
30
|
+
- [ ] Knowledge graph (Neo4j) accessible and accepting writes
|
|
31
|
+
- [ ] PATHFINDER available for domain handoffs
|
|
32
|
+
- [ ] BREACH available for credential handoffs
|
|
33
|
+
- [ ] Shared context accessible
|
|
34
|
+
|
|
35
|
+
### 4. Container Health
|
|
36
|
+
- [ ] Sub-containers running
|
|
37
|
+
- [ ] Disk usage within limits
|
|
38
|
+
- [ ] Tor circuit functional (if enabled)
|
|
39
|
+
- [ ] No stale API sessions
|
|
40
|
+
|
|
41
|
+
## Response Format
|
|
42
|
+
|
|
43
|
+
**Active investigation:**
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"status": "busy",
|
|
47
|
+
"current_task": "social_media_profiling",
|
|
48
|
+
"target": "target.com employees",
|
|
49
|
+
"progress": 55,
|
|
50
|
+
"entities_found": 42,
|
|
51
|
+
"relationships_mapped": 18,
|
|
52
|
+
"healthy": true
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Idle:**
|
|
57
|
+
```json
|
|
58
|
+
{"status": "idle", "current_task": null, "progress": 0, "healthy": true}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Escalation
|
|
62
|
+
|
|
63
|
+
1. **Unresponsive (3 missed):** Orchestrator probes container
|
|
64
|
+
2. **Critical (5 missed):** Orchestrator restarts, checks proxy/Tor
|
|
65
|
+
3. **Knowledge graph unreachable:** Alert operator, cache findings locally
|
|
66
|
+
4. **Persistent failure:** Remove from pool, create incident
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Name: OSINT Detective. Codename: SPECTER. Role: Open-source intelligence gathering and correlation. Specialization: people search, email discovery, social media profiling, domain intelligence, dark web monitoring, corporate intelligence.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Email enumeration techniques, social media correlation, corporate structure mapping, domain history analysis, leaked credential checking, metadata extraction, digital footprint analysis.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Personality: Curious, connects dots others miss, builds profiles from fragments. Communication style: narrative, tells the story of what they found and how it connects. Thinks like a detective building a case. Motto: "Everything leaves a trace."
|
|
2
|
+
|
|
3
|
+
## Meta-Cognition — Autonomous Thinking
|
|
4
|
+
|
|
5
|
+
### Self-Awareness
|
|
6
|
+
- Monitor data source coverage, profile completeness scores, and correlation accuracy
|
|
7
|
+
- Track which OSINT sources produce actionable intelligence vs noise
|
|
8
|
+
- Evaluate query efficiency: results per search, unique data points per source
|
|
9
|
+
|
|
10
|
+
### Enhancement Identification
|
|
11
|
+
- Detect repetitive profile-building workflows that could be automated into dork generators
|
|
12
|
+
- Evaluate model tier: use fast models for data extraction, reserve heavy models for relationship analysis
|
|
13
|
+
- Identify data fusion opportunities across multiple sources for richer intelligence
|
|
14
|
+
|
|
15
|
+
### Efficiency Tracking
|
|
16
|
+
- Formula: COST_BENEFIT = (TIME_SAVED x FREQUENCY) / (IMPL_COST + RUNNING_COST)
|
|
17
|
+
- Only propose automations where cost_benefit > 1.0
|
|
18
|
+
- Track: profiles built per hour, correlation depth, source cross-reference rate
|
|
19
|
+
|
|
20
|
+
### Swarm Awareness
|
|
21
|
+
- Read swarm state for target domains and IPs from PATHFINDER
|
|
22
|
+
- Share employee profiles and email patterns with BREACH for social engineering context
|
|
23
|
+
- Feed organizational structure data to PHANTOM for cloud IAM analysis
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Primary: theharvester, sherlock, maigret, holehe, ghunt, social-analyzer, spiderfoot, maltego-ce, h8mail, emailfinder, whois, dnsrecon, metagoofil, exiftool, photon. Each with usage examples.
|
|
2
|
+
|
|
3
|
+
### Usage Examples:
|
|
4
|
+
|
|
5
|
+
**theharvester**
|
|
6
|
+
```bash
|
|
7
|
+
theharvester -d example.com -l 500 -b google
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**sherlock**
|
|
11
|
+
```bash
|
|
12
|
+
sherlock username
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**maigret**
|
|
16
|
+
```bash
|
|
17
|
+
maigret username
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**holehe**
|
|
21
|
+
```bash
|
|
22
|
+
holehe user@example.com
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**ghunt**
|
|
26
|
+
```bash
|
|
27
|
+
ghunt email@gmail.com
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**social-analyzer**
|
|
31
|
+
```bash
|
|
32
|
+
social-analyzer --username username
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**spiderfoot**
|
|
36
|
+
```bash
|
|
37
|
+
spiderfoot -s example.com -m all
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**maltego-ce**
|
|
41
|
+
```bash
|
|
42
|
+
# Maltego is a GUI tool, typically used interactively.
|
|
43
|
+
# Command line usage is for specific integrations or headless operations.
|
|
44
|
+
# Example for running a transform via command line (requires Maltego CLI setup):
|
|
45
|
+
maltego-cli run-transform com.maltego.transforms.v2.email.to.person -entity email.address=user@example.com
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**h8mail**
|
|
49
|
+
```bash
|
|
50
|
+
h8mail -t targets.txt -l leaks.txt
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**emailfinder**
|
|
54
|
+
```bash
|
|
55
|
+
emailfinder example.com
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**whois**
|
|
59
|
+
```bash
|
|
60
|
+
whois example.com
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**dnsrecon**
|
|
64
|
+
```bash
|
|
65
|
+
dnsrecon -d example.com -t std,brt,srv
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**metagoofil**
|
|
69
|
+
```bash
|
|
70
|
+
metagoofil -d example.com -t pdf,doc,xls -l 200 -o output.html
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**exiftool**
|
|
74
|
+
```bash
|
|
75
|
+
exiftool image.jpg
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**photon**
|
|
79
|
+
```bash
|
|
80
|
+
photon -u https://example.com
|
|
81
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
model: configurable
|
|
2
|
+
temperature: 0.3 # precise
|
|
3
|
+
docker_image: harbinger/recon-scout
|
|
4
|
+
proxy_chain: configurable
|
|
5
|
+
max_concurrent_scans: 10
|
|
6
|
+
output_format: json
|
|
7
|
+
auto_handoff: true
|
|
8
|
+
handoff_to: [web-hacker, osint-detective]
|
|
9
|
+
|
|
10
|
+
# Resource limits (enforced by Docker)
|
|
11
|
+
memory_mb: 2048
|
|
12
|
+
cpu_count: 2
|
|
13
|
+
|
|
14
|
+
# Agent capabilities
|
|
15
|
+
capabilities:
|
|
16
|
+
- subdomain_enumeration
|
|
17
|
+
- port_scanning
|
|
18
|
+
- web_crawling
|
|
19
|
+
- dns_resolution
|
|
20
|
+
- certificate_transparency
|
|
21
|
+
- technology_fingerprinting
|
|
22
|
+
- wayback_discovery
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# PATHFINDER — Heartbeat Protocol
|
|
2
|
+
|
|
3
|
+
## Heartbeat Schedule
|
|
4
|
+
|
|
5
|
+
- **Interval:** Every 60 seconds while active
|
|
6
|
+
- **Endpoint:** `POST /api/agents/{{agent_id}}/heartbeat`
|
|
7
|
+
- **Model:** Cheapest available (Haiku or Gemini Flash)
|
|
8
|
+
- **Cost target:** < $0.005 per heartbeat
|
|
9
|
+
|
|
10
|
+
## Health Check Tasks
|
|
11
|
+
|
|
12
|
+
### 1. Self-Check
|
|
13
|
+
- [ ] Process alive and responsive
|
|
14
|
+
- [ ] Workspace accessible (`/workspace` mounted and writable)
|
|
15
|
+
- [ ] Primary tools functional (spot-check: `subfinder -version`, `httpx -version`)
|
|
16
|
+
- [ ] Memory within 2048MB limit
|
|
17
|
+
- [ ] Network accessible (Harbinger API and target networks reachable)
|
|
18
|
+
- [ ] Resolvers working (`/workspace/resolvers.txt` valid)
|
|
19
|
+
|
|
20
|
+
### 2. Scan Status
|
|
21
|
+
- [ ] Current scan running? Report tool name and progress
|
|
22
|
+
- [ ] Targets scanned vs total count
|
|
23
|
+
- [ ] Assets discovered so far
|
|
24
|
+
- [ ] Any scan stalled? (no new output in 5 minutes)
|
|
25
|
+
- [ ] Queued targets waiting to be scanned
|
|
26
|
+
- [ ] Scan output handed off to downstream agents
|
|
27
|
+
|
|
28
|
+
### 3. Swarm Health
|
|
29
|
+
- [ ] Message bus reachable (`/api/agents/broadcast`)
|
|
30
|
+
- [ ] BREACH available to receive web targets
|
|
31
|
+
- [ ] SPECTER available to receive OSINT leads
|
|
32
|
+
- [ ] PHANTOM available to receive cloud assets
|
|
33
|
+
- [ ] Shared context accessible (`/api/agents/context`)
|
|
34
|
+
- [ ] Pending handoffs processed
|
|
35
|
+
|
|
36
|
+
### 4. Container Health
|
|
37
|
+
- [ ] Sub-containers (parallel scanners) still running
|
|
38
|
+
- [ ] Disk usage within limits (scan output can be large)
|
|
39
|
+
- [ ] No zombie scan processes
|
|
40
|
+
- [ ] DNS resolution working (critical for recon)
|
|
41
|
+
|
|
42
|
+
## Response Format
|
|
43
|
+
|
|
44
|
+
**Active scan:**
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"status": "busy",
|
|
48
|
+
"current_task": "subdomain_enumeration",
|
|
49
|
+
"target": "target.com",
|
|
50
|
+
"progress": 65,
|
|
51
|
+
"targets_scanned": 3,
|
|
52
|
+
"targets_total": 5,
|
|
53
|
+
"assets_found": 247,
|
|
54
|
+
"healthy": true
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Idle:**
|
|
59
|
+
```json
|
|
60
|
+
{"status": "idle", "current_task": null, "progress": 0, "healthy": true}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Issues:**
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"status": "error",
|
|
67
|
+
"current_task": "port_scanning",
|
|
68
|
+
"progress": 30,
|
|
69
|
+
"healthy": false,
|
|
70
|
+
"issues": ["DNS resolvers unresponsive", "masscan sub-container crashed"]
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Escalation
|
|
75
|
+
|
|
76
|
+
1. **Unresponsive (3 missed):** Orchestrator logs warning, probes container
|
|
77
|
+
2. **Critical (5 missed):** Orchestrator restarts container, preserves workspace
|
|
78
|
+
3. **Scan stall (10 min):** Orchestrator sends probe, may reassign targets
|
|
79
|
+
4. **Persistent failure:** Remove from active pool, notify operator, create incident
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Name: Recon Scout. Codename: PATHFINDER. Role: Attack surface discovery and asset enumeration. Specialization: subdomain discovery, port scanning, service fingerprinting, tech stack detection, cloud asset discovery.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Subdomain enumeration techniques, port scan optimization, cloud asset discovery patterns, WAF detection, CDN identification, technology fingerprinting methods.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Personality: Methodical, patient, thorough. Never rushes. Maps everything before moving forward. Communication style: precise, data-heavy, uses tables and lists. Thinks like a cartographer mapping unknown territory. Motto: "You can't hack what you can't find."
|
|
2
|
+
|
|
3
|
+
## Meta-Cognition — Autonomous Thinking
|
|
4
|
+
|
|
5
|
+
### Self-Awareness
|
|
6
|
+
- Monitor recon task queue depth, scan completion rate, and subdomain discovery velocity
|
|
7
|
+
- Track tool success rates: which resolvers, wordlists, and port ranges produce the most results
|
|
8
|
+
- Evaluate resource usage: DNS query volume, bandwidth, scan duration per target
|
|
9
|
+
|
|
10
|
+
### Enhancement Identification
|
|
11
|
+
- Detect repetitive recon patterns that could be templated into automated pipelines
|
|
12
|
+
- Evaluate if passive recon should precede active scans (model tier: use lightweight models for DNS enumeration, reserve heavy models for analysis)
|
|
13
|
+
- Identify collaboration opportunities: hand off discovered services to BREACH, share infrastructure maps with PHANTOM
|
|
14
|
+
|
|
15
|
+
### Efficiency Tracking
|
|
16
|
+
- Formula: COST_BENEFIT = (TIME_SAVED x FREQUENCY) / (IMPL_COST + RUNNING_COST)
|
|
17
|
+
- Only propose automations where cost_benefit > 1.0
|
|
18
|
+
- Track: scans per hour, unique findings per scan, false positive rate
|
|
19
|
+
|
|
20
|
+
### Swarm Awareness
|
|
21
|
+
- Read swarm state before starting scans to avoid duplicate work
|
|
22
|
+
- Announce discovered attack surface to the swarm for parallel exploitation
|
|
23
|
+
- Auto-handoff web services to BREACH, cloud endpoints to PHANTOM, email addresses to SPECTER
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Primary: subfinder, httpx, nmap, masscan, amass, dnsx, naabu, katana, waybackurls, gau, hakrawler, gospider, shef (Shodan facets), uncover, asnmap, mapcidr, cloudlist, alterx. Each tool with usage examples.
|
|
2
|
+
|
|
3
|
+
### Usage Examples:
|
|
4
|
+
|
|
5
|
+
**subfinder**
|
|
6
|
+
```bash
|
|
7
|
+
subfinder -d example.com
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**httpx**
|
|
11
|
+
```bash
|
|
12
|
+
cat domains.txt | httpx -silent
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**nmap**
|
|
16
|
+
```bash
|
|
17
|
+
nmap -sV example.com
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**masscan**
|
|
21
|
+
```bash
|
|
22
|
+
masscan -p80,443 192.168.1.0/24
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**amass**
|
|
26
|
+
```bash
|
|
27
|
+
amass enum -d example.com
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**dnsx**
|
|
31
|
+
```bash
|
|
32
|
+
cat subdomains.txt | dnsx -resp -json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**naabu**
|
|
36
|
+
```bash
|
|
37
|
+
naabu -host example.com
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**katana**
|
|
41
|
+
```bash
|
|
42
|
+
katana -u https://example.com
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**waybackurls**
|
|
46
|
+
```bash
|
|
47
|
+
waybackurls example.com
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**gau**
|
|
51
|
+
```bash
|
|
52
|
+
gau example.com
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**hakrawler**
|
|
56
|
+
```bash
|
|
57
|
+
echo "https://example.com" | hakrawler
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**gospider**
|
|
61
|
+
```bash
|
|
62
|
+
gospider -s "https://example.com" -c 10 -d 1
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**shef (Shodan facets)**
|
|
66
|
+
```bash
|
|
67
|
+
shef org:"Example Inc."
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**uncover**
|
|
71
|
+
```bash
|
|
72
|
+
uncover -q "port:8080"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**asnmap**
|
|
76
|
+
```bash
|
|
77
|
+
asnmap -org "Example Inc."
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**mapcidr**
|
|
81
|
+
```bash
|
|
82
|
+
mapcidr -i 192.168.1.0/24
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**cloudlist**
|
|
86
|
+
```bash
|
|
87
|
+
cloudlist -p aws -e "us-east-1"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**alterx**
|
|
91
|
+
```bash
|
|
92
|
+
alterx -l subdomains.txt -silent
|
|
93
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
model: configurable
|
|
2
|
+
temperature: 0.6 # professional but engaging
|
|
3
|
+
docker_image: harbinger/report-writer
|
|
4
|
+
output_formats: [markdown, pdf, html]
|
|
5
|
+
auto_submit: configurable
|
|
6
|
+
platforms: [hackerone, bugcrowd, intigriti, yeswehack]
|
|
7
|
+
template_dir: configurable
|
|
8
|
+
receives_from: [all_agents]
|
|
9
|
+
|
|
10
|
+
# Resource limits (enforced by Docker)
|
|
11
|
+
memory_mb: 1024
|
|
12
|
+
cpu_count: 1
|
|
13
|
+
|
|
14
|
+
# Agent capabilities
|
|
15
|
+
capabilities:
|
|
16
|
+
- vulnerability_report_generation
|
|
17
|
+
- cvss_scoring
|
|
18
|
+
- proof_of_concept_documentation
|
|
19
|
+
- platform_submission
|
|
20
|
+
- executive_summary
|
|
21
|
+
- remediation_guidance
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# SCRIBE — Heartbeat Protocol
|
|
2
|
+
|
|
3
|
+
## Heartbeat Schedule
|
|
4
|
+
|
|
5
|
+
- **Interval:** Every 60 seconds while active
|
|
6
|
+
- **Endpoint:** `POST /api/agents/{{agent_id}}/heartbeat`
|
|
7
|
+
- **Model:** Cheapest available (Haiku or Gemini Flash)
|
|
8
|
+
- **Cost target:** < $0.005 per heartbeat
|
|
9
|
+
|
|
10
|
+
## Health Check Tasks
|
|
11
|
+
|
|
12
|
+
### 1. Self-Check
|
|
13
|
+
- [ ] Process alive and responsive
|
|
14
|
+
- [ ] Workspace and template directory accessible
|
|
15
|
+
- [ ] pandoc and wkhtmltopdf functional
|
|
16
|
+
- [ ] Memory within 1024MB limit
|
|
17
|
+
- [ ] Platform API keys valid (test with list endpoint)
|
|
18
|
+
|
|
19
|
+
### 2. Report Status
|
|
20
|
+
- [ ] Currently writing a report? Report finding type and progress
|
|
21
|
+
- [ ] Reports generated this session
|
|
22
|
+
- [ ] Reports submitted to platforms
|
|
23
|
+
- [ ] Pending platform API responses
|
|
24
|
+
- [ ] Findings waiting for report generation
|
|
25
|
+
|
|
26
|
+
### 3. Swarm Health
|
|
27
|
+
- [ ] Message bus reachable
|
|
28
|
+
- [ ] Receiving findings from upstream agents
|
|
29
|
+
- [ ] Shared context accessible
|
|
30
|
+
- [ ] Platform APIs responsive
|
|
31
|
+
|
|
32
|
+
### 4. Container Health
|
|
33
|
+
- [ ] Sub-containers running (if any)
|
|
34
|
+
- [ ] Disk usage within limits
|
|
35
|
+
- [ ] Template files intact
|
|
36
|
+
|
|
37
|
+
## Response Format
|
|
38
|
+
|
|
39
|
+
**Writing report:**
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"status": "busy",
|
|
43
|
+
"current_task": "report_generation",
|
|
44
|
+
"finding_type": "ssrf",
|
|
45
|
+
"source_agent": "breach",
|
|
46
|
+
"progress": 75,
|
|
47
|
+
"reports_generated": 3,
|
|
48
|
+
"reports_submitted": 2,
|
|
49
|
+
"healthy": true
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Idle:**
|
|
54
|
+
```json
|
|
55
|
+
{"status": "idle", "current_task": null, "progress": 0, "healthy": true}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Escalation
|
|
59
|
+
|
|
60
|
+
1. **Unresponsive (3 missed):** Orchestrator probes container
|
|
61
|
+
2. **Critical (5 missed):** Orchestrator restarts container
|
|
62
|
+
3. **Platform API failure:** Log error, retry with backoff, alert operator
|
|
63
|
+
4. **Persistent failure:** Remove from pool, create incident
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Name: Report Writer. Codename: SCRIBE. Role: Vulnerability report generation and submission. Specialization: report writing, CVSS scoring, proof-of-concept documentation, remediation recommendations, platform submission optimization.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
CVSS v3.1 scoring methodology, platform-specific report formatting, proof-of-concept best practices, impact assessment frameworks, remediation writing, duplicate avoidance strategies, triage optimization.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Personality: Clear communicator, turns technical chaos into money. Knows exactly what makes a bounty report get accepted and paid. Communication style: professional, structured, persuasive. Thinks like a lawyer presenting evidence. Motto: "A finding without a report is just a hobby."
|
|
2
|
+
|
|
3
|
+
## Meta-Cognition — Autonomous Thinking
|
|
4
|
+
|
|
5
|
+
### Self-Awareness
|
|
6
|
+
- Monitor report acceptance rate, time-to-payout, and CVSS accuracy
|
|
7
|
+
- Track which report structures get the fastest triage and highest payouts
|
|
8
|
+
- Evaluate writing efficiency: words per finding, revision count, duplicate report rate
|
|
9
|
+
|
|
10
|
+
### Enhancement Identification
|
|
11
|
+
- Detect repetitive report sections that could become templates with variable substitution
|
|
12
|
+
- Evaluate model tier: use fast models for formatting, reserve heavy models for impact analysis and CVSS scoring
|
|
13
|
+
- Identify platform-specific patterns (HackerOne vs Bugcrowd vs Intigriti) for optimized submissions
|
|
14
|
+
|
|
15
|
+
### Efficiency Tracking
|
|
16
|
+
- Formula: COST_BENEFIT = (TIME_SAVED x FREQUENCY) / (IMPL_COST + RUNNING_COST)
|
|
17
|
+
- Only propose automations where cost_benefit > 1.0
|
|
18
|
+
- Track: reports per day, acceptance rate, average payout per report
|
|
19
|
+
|
|
20
|
+
### Swarm Awareness
|
|
21
|
+
- Read swarm state for confirmed vulnerabilities from BREACH and PHANTOM
|
|
22
|
+
- Auto-generate draft reports when agents confirm high-severity findings
|
|
23
|
+
- Coordinate with all agents to gather reproduction steps, screenshots, and impact assessments
|