@poolzin/pool-bot 2026.3.13 → 2026.3.15
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/CHANGELOG.md +87 -0
- package/dist/agents/checkpoint-manager.js +291 -0
- package/dist/agents/poolbot-tools.js +5 -0
- package/dist/agents/subagent-announce-reliability.js +160 -0
- package/dist/agents/tool-result-truncation.js +299 -0
- package/dist/agents/tools/nodes-file-tool.js +197 -0
- package/dist/build-info.json +3 -3
- package/dist/cli/config-cli.js +60 -0
- package/dist/cron/cron-improvements.js +195 -0
- package/dist/discord/discord-improvements.js +167 -0
- package/dist/gateway/auth-rate-limit.js +19 -0
- package/dist/gateway/auth.js +41 -0
- package/dist/gateway/gateway-improvements.js +294 -0
- package/dist/gateway/node-command-policy.js +7 -2
- package/dist/infra/net/ssrf.js +15 -2
- package/dist/infra/shell-security.js +201 -0
- package/dist/memory/memory-improvements.js +239 -0
- package/dist/node-host/runner.js +146 -79
- package/dist/security/prototype-pollution.js +141 -0
- package/dist/security/webhook-security.js +253 -0
- package/dist/shared/net/ip.js +52 -1
- package/dist/slack/slack-improvements.js +225 -0
- package/dist/telegram/telegram-improvements.js +220 -0
- package/dist/ui-plugins/ui-plugins-improvements.js +191 -0
- package/docs/ANALISE_OPENCLAW_PROFISSIONAL.md +520 -0
- package/docs/competitive-analysis.md +421 -0
- package/docs/implementation-analysis.md +393 -0
- package/docs/plans/2026-03-11-file-operations-security-hardening.md +307 -0
- package/docs/plans/2026-03-11-integracao-projetos-poolbot.md +666 -0
- package/extensions/agency-agents/README.md +301 -0
- package/extensions/agency-agents/agents/CONTRIBUTING.md +353 -0
- package/extensions/agency-agents/agents/README.md +602 -0
- package/extensions/agency-agents/agents/design/design-brand-guardian.md +320 -0
- package/extensions/agency-agents/agents/design/design-image-prompt-engineer.md +234 -0
- package/extensions/agency-agents/agents/design/design-ui-designer.md +381 -0
- package/extensions/agency-agents/agents/design/design-ux-architect.md +467 -0
- package/extensions/agency-agents/agents/design/design-ux-researcher.md +327 -0
- package/extensions/agency-agents/agents/design/design-visual-storyteller.md +147 -0
- package/extensions/agency-agents/agents/design/design-whimsy-injector.md +436 -0
- package/extensions/agency-agents/agents/engineering/engineering-ai-engineer.md +144 -0
- package/extensions/agency-agents/agents/engineering/engineering-backend-architect.md +233 -0
- package/extensions/agency-agents/agents/engineering/engineering-devops-automator.md +374 -0
- package/extensions/agency-agents/agents/engineering/engineering-frontend-developer.md +223 -0
- package/extensions/agency-agents/agents/engineering/engineering-mobile-app-builder.md +491 -0
- package/extensions/agency-agents/agents/engineering/engineering-rapid-prototyper.md +460 -0
- package/extensions/agency-agents/agents/engineering/engineering-security-engineer.md +275 -0
- package/extensions/agency-agents/agents/engineering/engineering-senior-developer.md +174 -0
- package/extensions/agency-agents/agents/examples/README.md +48 -0
- package/extensions/agency-agents/agents/examples/nexus-spatial-discovery.md +852 -0
- package/extensions/agency-agents/agents/examples/workflow-landing-page.md +119 -0
- package/extensions/agency-agents/agents/examples/workflow-startup-mvp.md +155 -0
- package/extensions/agency-agents/agents/integrations/README.md +117 -0
- package/extensions/agency-agents/agents/integrations/aider/README.md +38 -0
- package/extensions/agency-agents/agents/integrations/antigravity/README.md +49 -0
- package/extensions/agency-agents/agents/integrations/claude-code/README.md +31 -0
- package/extensions/agency-agents/agents/integrations/cursor/README.md +38 -0
- package/extensions/agency-agents/agents/integrations/gemini-cli/README.md +36 -0
- package/extensions/agency-agents/agents/integrations/opencode/README.md +58 -0
- package/extensions/agency-agents/agents/integrations/windsurf/README.md +26 -0
- package/extensions/agency-agents/agents/marketing/marketing-app-store-optimizer.md +319 -0
- package/extensions/agency-agents/agents/marketing/marketing-content-creator.md +52 -0
- package/extensions/agency-agents/agents/marketing/marketing-growth-hacker.md +52 -0
- package/extensions/agency-agents/agents/marketing/marketing-instagram-curator.md +111 -0
- package/extensions/agency-agents/agents/marketing/marketing-reddit-community-builder.md +121 -0
- package/extensions/agency-agents/agents/marketing/marketing-social-media-strategist.md +123 -0
- package/extensions/agency-agents/agents/marketing/marketing-tiktok-strategist.md +123 -0
- package/extensions/agency-agents/agents/marketing/marketing-twitter-engager.md +124 -0
- package/extensions/agency-agents/agents/marketing/marketing-wechat-official-account.md +143 -0
- package/extensions/agency-agents/agents/marketing/marketing-xiaohongshu-specialist.md +136 -0
- package/extensions/agency-agents/agents/marketing/marketing-zhihu-strategist.md +160 -0
- package/extensions/agency-agents/agents/product/product-feedback-synthesizer.md +117 -0
- package/extensions/agency-agents/agents/product/product-sprint-prioritizer.md +152 -0
- package/extensions/agency-agents/agents/product/product-trend-researcher.md +157 -0
- package/extensions/agency-agents/agents/project-management/project-management-experiment-tracker.md +196 -0
- package/extensions/agency-agents/agents/project-management/project-management-project-shepherd.md +192 -0
- package/extensions/agency-agents/agents/project-management/project-management-studio-operations.md +198 -0
- package/extensions/agency-agents/agents/project-management/project-management-studio-producer.md +201 -0
- package/extensions/agency-agents/agents/project-management/project-manager-senior.md +133 -0
- package/extensions/agency-agents/agents/scripts/convert.sh +362 -0
- package/extensions/agency-agents/agents/scripts/install.sh +465 -0
- package/extensions/agency-agents/agents/scripts/lint-agents.sh +115 -0
- package/extensions/agency-agents/agents/spatial-computing/macos-spatial-metal-engineer.md +335 -0
- package/extensions/agency-agents/agents/spatial-computing/terminal-integration-specialist.md +68 -0
- package/extensions/agency-agents/agents/spatial-computing/visionos-spatial-engineer.md +52 -0
- package/extensions/agency-agents/agents/spatial-computing/xr-cockpit-interaction-specialist.md +30 -0
- package/extensions/agency-agents/agents/spatial-computing/xr-immersive-developer.md +30 -0
- package/extensions/agency-agents/agents/spatial-computing/xr-interface-architect.md +30 -0
- package/extensions/agency-agents/agents/specialized/agentic-identity-trust.md +367 -0
- package/extensions/agency-agents/agents/specialized/agents-orchestrator.md +365 -0
- package/extensions/agency-agents/agents/specialized/data-analytics-reporter.md +52 -0
- package/extensions/agency-agents/agents/specialized/data-consolidation-agent.md +58 -0
- package/extensions/agency-agents/agents/specialized/lsp-index-engineer.md +312 -0
- package/extensions/agency-agents/agents/specialized/report-distribution-agent.md +63 -0
- package/extensions/agency-agents/agents/specialized/sales-data-extraction-agent.md +65 -0
- package/extensions/agency-agents/agents/strategy/EXECUTIVE-BRIEF.md +95 -0
- package/extensions/agency-agents/agents/strategy/QUICKSTART.md +194 -0
- package/extensions/agency-agents/agents/strategy/coordination/agent-activation-prompts.md +401 -0
- package/extensions/agency-agents/agents/strategy/coordination/handoff-templates.md +357 -0
- package/extensions/agency-agents/agents/strategy/nexus-strategy.md +1110 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-0-discovery.md +178 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-1-strategy.md +238 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-2-foundation.md +278 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-3-build.md +286 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-4-hardening.md +332 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-5-launch.md +277 -0
- package/extensions/agency-agents/agents/strategy/playbooks/phase-6-operate.md +318 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-enterprise-feature.md +157 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-incident-response.md +217 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-marketing-campaign.md +187 -0
- package/extensions/agency-agents/agents/strategy/runbooks/scenario-startup-mvp.md +154 -0
- package/extensions/agency-agents/agents/support/support-analytics-reporter.md +363 -0
- package/extensions/agency-agents/agents/support/support-executive-summary-generator.md +210 -0
- package/extensions/agency-agents/agents/support/support-finance-tracker.md +440 -0
- package/extensions/agency-agents/agents/support/support-infrastructure-maintainer.md +616 -0
- package/extensions/agency-agents/agents/support/support-legal-compliance-checker.md +586 -0
- package/extensions/agency-agents/agents/support/support-support-responder.md +583 -0
- package/extensions/agency-agents/agents/testing/testing-accessibility-auditor.md +313 -0
- package/extensions/agency-agents/agents/testing/testing-api-tester.md +304 -0
- package/extensions/agency-agents/agents/testing/testing-evidence-collector.md +208 -0
- package/extensions/agency-agents/agents/testing/testing-performance-benchmarker.md +266 -0
- package/extensions/agency-agents/agents/testing/testing-reality-checker.md +236 -0
- package/extensions/agency-agents/agents/testing/testing-test-results-analyzer.md +303 -0
- package/extensions/agency-agents/agents/testing/testing-tool-evaluator.md +392 -0
- package/extensions/agency-agents/agents/testing/testing-workflow-optimizer.md +448 -0
- package/extensions/agency-agents/index.ts +733 -0
- package/extensions/agency-agents/node_modules/.bin/jiti +21 -0
- package/extensions/agency-agents/node_modules/.bin/tsc +21 -0
- package/extensions/agency-agents/node_modules/.bin/tsserver +21 -0
- package/extensions/agency-agents/node_modules/.bin/tsx +21 -0
- package/extensions/agency-agents/node_modules/.bin/vite +21 -0
- package/extensions/agency-agents/node_modules/.bin/vitest +21 -0
- package/extensions/agency-agents/node_modules/.bin/yaml +21 -0
- package/extensions/agency-agents/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/extensions/agency-agents/package.json +25 -0
- package/extensions/agency-agents/poolbot.plugin.json +11 -0
- package/extensions/agency-agents/src/AgencyAgentsService.test.ts +443 -0
- package/extensions/agency-agents/src/AgencyAgentsService.ts +288 -0
- package/extensions/agency-agents/src/types.ts +147 -0
- package/extensions/agency-agents/vitest.config.ts +8 -0
- package/extensions/hexstrike-ai/README.md +98 -0
- package/extensions/hexstrike-ai/node_modules/.bin/tsc +21 -0
- package/extensions/hexstrike-ai/node_modules/.bin/tsserver +21 -0
- package/extensions/hexstrike-ai/package.json +29 -0
- package/extensions/hexstrike-ai/poolbot.plugin.json +31 -0
- package/extensions/hexstrike-ai/src/client.ts +91 -0
- package/extensions/hexstrike-ai/src/index.ts +170 -0
- package/extensions/hexstrike-ai/src/server/hexstrike_mcp.py +5470 -0
- package/extensions/hexstrike-ai/src/server/hexstrike_server.py +17289 -0
- package/extensions/hexstrike-ai/src/server/requirements.txt +84 -0
- package/extensions/hexstrike-ai/src/server-manager.ts +83 -0
- package/extensions/hexstrike-ai/tsconfig.json +20 -0
- package/extensions/page-agent/README.md +159 -0
- package/extensions/page-agent/index.ts +595 -0
- package/extensions/page-agent/node_modules/.bin/jiti +21 -0
- package/extensions/page-agent/node_modules/.bin/playwright +21 -0
- package/extensions/page-agent/node_modules/.bin/tsc +21 -0
- package/extensions/page-agent/node_modules/.bin/tsserver +21 -0
- package/extensions/page-agent/node_modules/.bin/tsx +21 -0
- package/extensions/page-agent/node_modules/.bin/vitest +21 -0
- package/extensions/page-agent/node_modules/.bin/yaml +21 -0
- package/extensions/page-agent/package.json +43 -0
- package/extensions/page-agent/poolbot.plugin.json +24 -0
- package/extensions/page-agent/src/PageAgentService.test.ts +517 -0
- package/extensions/page-agent/src/PageAgentService.ts +636 -0
- package/extensions/page-agent/src/PoolBotPageController.test.ts +358 -0
- package/extensions/page-agent/src/PoolBotPageController.ts +245 -0
- package/extensions/page-agent/src/index.ts +20 -0
- package/extensions/page-agent/src/tools.test.ts +231 -0
- package/extensions/page-agent/src/tools.ts +167 -0
- package/extensions/page-agent/src/types.ts +198 -0
- package/extensions/xyops/README.md +227 -0
- package/extensions/xyops/index.ts +342 -0
- package/extensions/xyops/node_modules/.bin/jiti +21 -0
- package/extensions/xyops/node_modules/.bin/tsc +21 -0
- package/extensions/xyops/node_modules/.bin/tsserver +21 -0
- package/extensions/xyops/node_modules/.bin/tsx +21 -0
- package/extensions/xyops/node_modules/.bin/vitest +21 -0
- package/extensions/xyops/node_modules/.bin/yaml +21 -0
- package/extensions/xyops/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/extensions/xyops/package.json +39 -0
- package/extensions/xyops/poolbot.plugin.json +21 -0
- package/extensions/xyops/src/client.test.ts +467 -0
- package/extensions/xyops/src/client.ts +157 -0
- package/extensions/xyops/src/types.ts +147 -0
- package/extensions/xyops/vitest.config.ts +8 -0
- package/package.json +1 -1
|
@@ -0,0 +1,666 @@
|
|
|
1
|
+
# Integração Completa: HexStrike AI + Projetos no PoolBot
|
|
2
|
+
|
|
3
|
+
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
|
|
4
|
+
|
|
5
|
+
**Goal:** Integrar HexStrike AI, Page Agent, XYOps e Agency Agents como extensões nativas do PoolBot, eliminando dependências externas.
|
|
6
|
+
|
|
7
|
+
**Architecture:**
|
|
8
|
+
- HexStrike AI → Extensão `extensions/hexstrike-ai` com servidor embutido
|
|
9
|
+
- Page Agent → Extensão `extensions/page-agent` para automação web
|
|
10
|
+
- XYOps → Extensão `extensions/xyops` para operações de infraestrutura
|
|
11
|
+
- Agency Agents → Extensão `extensions/agency` para gestão de agentes
|
|
12
|
+
|
|
13
|
+
**Tech Stack:** TypeScript, Python (para HexStrike), Node.js 22+, PoolBot Extension SDK
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Análise dos Projetos
|
|
18
|
+
|
|
19
|
+
### HexStrike AI (`/Users/pool/Downloads/hexstrike-ai-master`)
|
|
20
|
+
- **Tamanho:** ~950KB (Python)
|
|
21
|
+
- **Componentes:**
|
|
22
|
+
- `hexstrike_server.py` - Servidor principal (735KB)
|
|
23
|
+
- `hexstrike_mcp.py` - Interface MCP (218KB)
|
|
24
|
+
- `requirements.txt` - Dependências Python
|
|
25
|
+
- **Porta:** 8888 (localhost)
|
|
26
|
+
- **Integração Atual:** Bridge existe em `extensions/hexstrike-bridge/`
|
|
27
|
+
|
|
28
|
+
### Page Agent (`/Users/pool/Downloads/page-agent-main`)
|
|
29
|
+
- **Tamanho:** ~1MB
|
|
30
|
+
- **Componentes:**
|
|
31
|
+
- Sistema de agentes para automação web
|
|
32
|
+
- Integração com Playwright
|
|
33
|
+
- Estrutura modular
|
|
34
|
+
|
|
35
|
+
### XYOps (`/Users/pool/Downloads/xyops-main`)
|
|
36
|
+
- **Tamanho:** A verificar
|
|
37
|
+
- **Foco:** Operações de infraestrutura e DevOps
|
|
38
|
+
|
|
39
|
+
### Agency Agents (`/Users/pool/Downloads/agency-agents-main`)
|
|
40
|
+
- **Tamanho:** ~112KB
|
|
41
|
+
- **Componentes:**
|
|
42
|
+
- 15+ categorias de agentes especializados
|
|
43
|
+
- Marketing, Engineering, Design, etc.
|
|
44
|
+
- Estrutura de templates e prompts
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Fase 1: HexStrike AI - Integração Completa
|
|
49
|
+
|
|
50
|
+
### Task 1: Criar estrutura da extensão
|
|
51
|
+
|
|
52
|
+
**Files:**
|
|
53
|
+
- Create: `extensions/hexstrike-ai/package.json`
|
|
54
|
+
- Create: `extensions/hexstrike-ai/poolbot.plugin.json`
|
|
55
|
+
- Create: `extensions/hexstrike-ai/README.md`
|
|
56
|
+
|
|
57
|
+
**Step 1: Criar package.json**
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"name": "@poolbot/hexstrike-ai",
|
|
62
|
+
"version": "2026.3.13",
|
|
63
|
+
"description": "HexStrike AI Security Platform - Integrated Server",
|
|
64
|
+
"type": "module",
|
|
65
|
+
"main": "dist/index.js",
|
|
66
|
+
"scripts": {
|
|
67
|
+
"build": "tsc",
|
|
68
|
+
"dev": "tsc --watch",
|
|
69
|
+
"start:server": "python3 src/server/hexstrike_server.py",
|
|
70
|
+
"install:deps": "pip3 install -r src/server/requirements.txt"
|
|
71
|
+
},
|
|
72
|
+
"dependencies": {
|
|
73
|
+
"poolbot": "workspace:*"
|
|
74
|
+
},
|
|
75
|
+
"devDependencies": {
|
|
76
|
+
"@types/node": "^22.0.0",
|
|
77
|
+
"typescript": "^5.0.0"
|
|
78
|
+
},
|
|
79
|
+
"poolbot": {
|
|
80
|
+
"plugin": true,
|
|
81
|
+
"server": true,
|
|
82
|
+
"python": true
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Step 2: Criar poolbot.plugin.json**
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"id": "hexstrike-ai",
|
|
92
|
+
"name": "HexStrike AI",
|
|
93
|
+
"version": "2026.3.13",
|
|
94
|
+
"description": "Security scanning platform with 150+ scanners integrated",
|
|
95
|
+
"author": "PoolBot Team",
|
|
96
|
+
"main": "dist/index.js",
|
|
97
|
+
"capabilities": ["security", "scanning", "pentest"],
|
|
98
|
+
"commands": [
|
|
99
|
+
"security.status",
|
|
100
|
+
"security.tools",
|
|
101
|
+
"security.scan",
|
|
102
|
+
"security.report"
|
|
103
|
+
],
|
|
104
|
+
"hooks": ["onInit", "onShutdown"],
|
|
105
|
+
"config": {
|
|
106
|
+
"port": 8888,
|
|
107
|
+
"host": "127.0.0.1",
|
|
108
|
+
"autoStart": true,
|
|
109
|
+
"scanners": ["nmap", "nuclei", "sqlmap", "gobuster", "wpscan"]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Step 3: Commit**
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
git add extensions/hexstrike-ai/
|
|
118
|
+
git commit -m "feat(hexstrike-ai): create extension structure"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### Task 2: Copiar e adaptar código Python do HexStrike
|
|
124
|
+
|
|
125
|
+
**Files:**
|
|
126
|
+
- Create: `extensions/hexstrike-ai/src/server/hexstrike_server.py`
|
|
127
|
+
- Create: `extensions/hexstrike-ai/src/server/hexstrike_mcp.py`
|
|
128
|
+
- Create: `extensions/hexstrike-ai/src/server/requirements.txt`
|
|
129
|
+
|
|
130
|
+
**Step 1: Copiar arquivos Python**
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
cp /Users/pool/Downloads/hexstrike-ai-master/hexstrike_server.py extensions/hexstrike-ai/src/server/
|
|
134
|
+
cp /Users/pool/Downloads/hexstrike-ai-master/hexstrike_mcp.py extensions/hexstrike-ai/src/server/
|
|
135
|
+
cp /Users/pool/Downloads/hexstrike-ai-master/requirements.txt extensions/hexstrike-ai/src/server/
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Step 2: Modificar servidor para integração PoolBot**
|
|
139
|
+
|
|
140
|
+
Editar `extensions/hexstrike-ai/src/server/hexstrike_server.py`:
|
|
141
|
+
- Adicionar endpoint `/poolbot/health` para health checks
|
|
142
|
+
- Adicionar autenticação via token PoolBot
|
|
143
|
+
- Configurar CORS para comunicação com gateway
|
|
144
|
+
- Adicionar logging estruturado
|
|
145
|
+
|
|
146
|
+
**Step 3: Commit**
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
git add extensions/hexstrike-ai/src/server/
|
|
150
|
+
git commit -m "feat(hexstrike-ai): import Python server code"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### Task 3: Criar TypeScript wrapper e integração
|
|
156
|
+
|
|
157
|
+
**Files:**
|
|
158
|
+
- Create: `extensions/hexstrike-ai/src/index.ts`
|
|
159
|
+
- Create: `extensions/hexstrike-ai/src/server-manager.ts`
|
|
160
|
+
- Create: `extensions/hexstrike-ai/src/client.ts`
|
|
161
|
+
- Create: `extensions/hexstrike-ai/tsconfig.json`
|
|
162
|
+
|
|
163
|
+
**Step 1: Criar tsconfig.json**
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"compilerOptions": {
|
|
168
|
+
"target": "ES2022",
|
|
169
|
+
"module": "NodeNext",
|
|
170
|
+
"moduleResolution": "NodeNext",
|
|
171
|
+
"lib": ["ES2022"],
|
|
172
|
+
"outDir": "./dist",
|
|
173
|
+
"rootDir": "./src",
|
|
174
|
+
"strict": true,
|
|
175
|
+
"esModuleInterop": true,
|
|
176
|
+
"skipLibCheck": true,
|
|
177
|
+
"forceConsistentCasingInFileNames": true,
|
|
178
|
+
"resolveJsonModule": true,
|
|
179
|
+
"declaration": true,
|
|
180
|
+
"declarationMap": true
|
|
181
|
+
},
|
|
182
|
+
"include": ["src/**/*"],
|
|
183
|
+
"exclude": ["node_modules", "dist"]
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Step 2: Criar server-manager.ts**
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
import { spawn, ChildProcess } from "node:child_process";
|
|
191
|
+
import path from "node:path";
|
|
192
|
+
import { fileURLToPath } from "node:url";
|
|
193
|
+
|
|
194
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
195
|
+
|
|
196
|
+
export interface ServerConfig {
|
|
197
|
+
port: number;
|
|
198
|
+
host: string;
|
|
199
|
+
pythonPath?: string;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export class HexStrikeServerManager {
|
|
203
|
+
private process: ChildProcess | null = null;
|
|
204
|
+
private config: ServerConfig;
|
|
205
|
+
|
|
206
|
+
constructor(config: Partial<ServerConfig> = {}) {
|
|
207
|
+
this.config = {
|
|
208
|
+
port: config.port ?? 8888,
|
|
209
|
+
host: config.host ?? "127.0.0.1",
|
|
210
|
+
pythonPath: config.pythonPath ?? "python3",
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
async start(): Promise<void> {
|
|
215
|
+
const serverPath = path.join(__dirname, "server", "hexstrike_server.py");
|
|
216
|
+
|
|
217
|
+
this.process = spawn(this.config.pythonPath, [serverPath], {
|
|
218
|
+
env: {
|
|
219
|
+
...process.env,
|
|
220
|
+
HEXSTRIKE_PORT: String(this.config.port),
|
|
221
|
+
HEXSTRIKE_HOST: this.config.host,
|
|
222
|
+
},
|
|
223
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
return new Promise((resolve, reject) => {
|
|
227
|
+
const timeout = setTimeout(() => {
|
|
228
|
+
reject(new Error("HexStrike server failed to start within 30s"));
|
|
229
|
+
}, 30000);
|
|
230
|
+
|
|
231
|
+
this.process?.stdout?.on("data", (data: Buffer) => {
|
|
232
|
+
const output = data.toString();
|
|
233
|
+
if (output.includes("Server started") || output.includes("Listening")) {
|
|
234
|
+
clearTimeout(timeout);
|
|
235
|
+
resolve();
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
this.process?.stderr?.on("data", (data: Buffer) => {
|
|
240
|
+
console.error(`[HexStrike] ${data.toString()}`);
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
this.process?.on("error", (err) => {
|
|
244
|
+
clearTimeout(timeout);
|
|
245
|
+
reject(err);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
this.process?.on("exit", (code) => {
|
|
249
|
+
if (code !== 0 && code !== null) {
|
|
250
|
+
clearTimeout(timeout);
|
|
251
|
+
reject(new Error(`HexStrike server exited with code ${code}`));
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
async stop(): Promise<void> {
|
|
258
|
+
if (this.process) {
|
|
259
|
+
this.process.kill("SIGTERM");
|
|
260
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
261
|
+
if (!this.process.killed) {
|
|
262
|
+
this.process.kill("SIGKILL");
|
|
263
|
+
}
|
|
264
|
+
this.process = null;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
get isRunning(): boolean {
|
|
269
|
+
return this.process !== null && !this.process.killed;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Step 3: Criar client.ts**
|
|
275
|
+
|
|
276
|
+
```typescript
|
|
277
|
+
export interface ScanTarget {
|
|
278
|
+
target: string;
|
|
279
|
+
scanners?: string[];
|
|
280
|
+
options?: Record<string, unknown>;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
export interface ScanResult {
|
|
284
|
+
id: string;
|
|
285
|
+
status: "pending" | "running" | "completed" | "failed";
|
|
286
|
+
findings: Array<{
|
|
287
|
+
severity: "info" | "low" | "medium" | "high" | "critical";
|
|
288
|
+
title: string;
|
|
289
|
+
description: string;
|
|
290
|
+
remediation?: string;
|
|
291
|
+
}>;
|
|
292
|
+
metadata: {
|
|
293
|
+
startedAt: string;
|
|
294
|
+
completedAt?: string;
|
|
295
|
+
duration?: number;
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export class HexStrikeClient {
|
|
300
|
+
private baseUrl: string;
|
|
301
|
+
private token?: string;
|
|
302
|
+
|
|
303
|
+
constructor(config: { host?: string; port?: number; token?: string } = {}) {
|
|
304
|
+
const host = config.host ?? "127.0.0.1";
|
|
305
|
+
const port = config.port ?? 8888;
|
|
306
|
+
this.baseUrl = `http://${host}:${port}`;
|
|
307
|
+
this.token = config.token;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
async health(): Promise<{ status: string; version?: string }> {
|
|
311
|
+
const response = await fetch(`${this.baseUrl}/health`);
|
|
312
|
+
if (!response.ok) throw new Error(`Health check failed: ${response.status}`);
|
|
313
|
+
return response.json();
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
async getTools(): Promise<string[]> {
|
|
317
|
+
const response = await fetch(`${this.baseUrl}/api/tools`, {
|
|
318
|
+
headers: this.getHeaders(),
|
|
319
|
+
});
|
|
320
|
+
if (!response.ok) throw new Error(`Failed to get tools: ${response.status}`);
|
|
321
|
+
const data = await response.json();
|
|
322
|
+
return data.tools ?? [];
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
async scan(target: ScanTarget): Promise<{ scanId: string }> {
|
|
326
|
+
const response = await fetch(`${this.baseUrl}/api/scan`, {
|
|
327
|
+
method: "POST",
|
|
328
|
+
headers: this.getHeaders(),
|
|
329
|
+
body: JSON.stringify(target),
|
|
330
|
+
});
|
|
331
|
+
if (!response.ok) throw new Error(`Scan failed: ${response.status}`);
|
|
332
|
+
const data = await response.json();
|
|
333
|
+
return { scanId: data.id };
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
async getScanResult(scanId: string): Promise<ScanResult> {
|
|
337
|
+
const response = await fetch(`${this.baseUrl}/api/scan/${scanId}`, {
|
|
338
|
+
headers: this.getHeaders(),
|
|
339
|
+
});
|
|
340
|
+
if (!response.ok) throw new Error(`Failed to get scan: ${response.status}`);
|
|
341
|
+
return response.json();
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
private getHeaders(): Record<string, string> {
|
|
345
|
+
const headers: Record<string, string> = {
|
|
346
|
+
"Content-Type": "application/json",
|
|
347
|
+
};
|
|
348
|
+
if (this.token) {
|
|
349
|
+
headers["Authorization"] = `Bearer ${this.token}`;
|
|
350
|
+
}
|
|
351
|
+
return headers;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Step 4: Criar index.ts (entry point)**
|
|
357
|
+
|
|
358
|
+
```typescript
|
|
359
|
+
import type { PoolBotPlugin } from "poolbot/plugin-sdk";
|
|
360
|
+
import { HexStrikeServerManager } from "./server-manager.js";
|
|
361
|
+
import { HexStrikeClient } from "./client.js";
|
|
362
|
+
|
|
363
|
+
interface HexStrikeConfig {
|
|
364
|
+
port?: number;
|
|
365
|
+
host?: string;
|
|
366
|
+
autoStart?: boolean;
|
|
367
|
+
token?: string;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export default async function createPlugin(
|
|
371
|
+
ctx: PoolBotPlugin.Context
|
|
372
|
+
): Promise<PoolBotPlugin.Instance> {
|
|
373
|
+
const config = ctx.config as HexStrikeConfig;
|
|
374
|
+
const serverManager = new HexStrikeServerManager({
|
|
375
|
+
port: config.port,
|
|
376
|
+
host: config.host,
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
const client = new HexStrikeClient({
|
|
380
|
+
host: config.host,
|
|
381
|
+
port: config.port,
|
|
382
|
+
token: config.token,
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
// Auto-start server if configured
|
|
386
|
+
if (config.autoStart !== false) {
|
|
387
|
+
ctx.logger.info("Starting HexStrike AI server...");
|
|
388
|
+
await serverManager.start();
|
|
389
|
+
ctx.logger.info("HexStrike AI server started");
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// Register CLI commands
|
|
393
|
+
ctx.cli
|
|
394
|
+
.command("security.status")
|
|
395
|
+
.description("Check HexStrike AI server status")
|
|
396
|
+
.action(async () => {
|
|
397
|
+
try {
|
|
398
|
+
const health = await client.health();
|
|
399
|
+
console.log("HexStrike AI Status:", health.status);
|
|
400
|
+
console.log("Version:", health.version ?? "unknown");
|
|
401
|
+
} catch (err) {
|
|
402
|
+
console.error("HexStrike AI is not running");
|
|
403
|
+
process.exit(1);
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
ctx.cli
|
|
408
|
+
.command("security.tools")
|
|
409
|
+
.description("List available security scanners")
|
|
410
|
+
.action(async () => {
|
|
411
|
+
const tools = await client.getTools();
|
|
412
|
+
console.log("Available scanners:");
|
|
413
|
+
for (const tool of tools) {
|
|
414
|
+
console.log(` - ${tool}`);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
ctx.cli
|
|
419
|
+
.command("security.scan")
|
|
420
|
+
.description("Run security scan on target")
|
|
421
|
+
.argument("<target>", "Target to scan")
|
|
422
|
+
.option("-s, --scanners <scanners>", "Comma-separated list of scanners")
|
|
423
|
+
.action(async (target: string, options: { scanners?: string }) => {
|
|
424
|
+
const scan = await client.scan({
|
|
425
|
+
target,
|
|
426
|
+
scanners: options.scanners?.split(","),
|
|
427
|
+
});
|
|
428
|
+
console.log("Scan started:", scan.scanId);
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
return {
|
|
432
|
+
name: "hexstrike-ai",
|
|
433
|
+
version: "2026.3.13",
|
|
434
|
+
async onShutdown() {
|
|
435
|
+
ctx.logger.info("Stopping HexStrike AI server...");
|
|
436
|
+
await serverManager.stop();
|
|
437
|
+
},
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export { HexStrikeServerManager, HexStrikeClient };
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
**Step 5: Commit**
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
git add extensions/hexstrike-ai/src/
|
|
448
|
+
git commit -m "feat(hexstrike-ai): add TypeScript wrapper and integration"
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
### Task 4: Integrar com Gateway PoolBot
|
|
454
|
+
|
|
455
|
+
**Files:**
|
|
456
|
+
- Modify: `src/gateway/rpc.ts` (adicionar métodos HexStrike)
|
|
457
|
+
- Modify: `extensions/hexstrike-bridge/src/index.ts` (atualizar para usar servidor local)
|
|
458
|
+
|
|
459
|
+
**Step 1: Adicionar RPC methods ao gateway**
|
|
460
|
+
|
|
461
|
+
Adicionar em `src/gateway/rpc.ts`:
|
|
462
|
+
|
|
463
|
+
```typescript
|
|
464
|
+
// HexStrike AI RPC methods
|
|
465
|
+
hexstrike: {
|
|
466
|
+
status: () => Promise<{ running: boolean; version?: string }>;
|
|
467
|
+
tools: () => Promise<string[]>;
|
|
468
|
+
scan: (params: { target: string; scanners?: string[] }) => Promise<{ scanId: string }>;
|
|
469
|
+
scanResult: (params: { scanId: string }) => Promise<unknown>;
|
|
470
|
+
}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
**Step 2: Commit**
|
|
474
|
+
|
|
475
|
+
```bash
|
|
476
|
+
git add src/gateway/rpc.ts
|
|
477
|
+
git commit -m "feat(gateway): add HexStrike AI RPC methods"
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## Fase 2: Page Agent Integration
|
|
483
|
+
|
|
484
|
+
### Task 5: Criar estrutura Page Agent
|
|
485
|
+
|
|
486
|
+
**Files:**
|
|
487
|
+
- Create: `extensions/page-agent/package.json`
|
|
488
|
+
- Create: `extensions/page-agent/poolbot.plugin.json`
|
|
489
|
+
- Create: `extensions/page-agent/src/index.ts`
|
|
490
|
+
|
|
491
|
+
**Step 1: Criar package.json**
|
|
492
|
+
|
|
493
|
+
```json
|
|
494
|
+
{
|
|
495
|
+
"name": "@poolbot/page-agent",
|
|
496
|
+
"version": "2026.3.13",
|
|
497
|
+
"description": "Web automation agent with Playwright integration",
|
|
498
|
+
"type": "module",
|
|
499
|
+
"main": "dist/index.js",
|
|
500
|
+
"scripts": {
|
|
501
|
+
"build": "tsc",
|
|
502
|
+
"dev": "tsc --watch"
|
|
503
|
+
},
|
|
504
|
+
"dependencies": {
|
|
505
|
+
"poolbot": "workspace:*",
|
|
506
|
+
"playwright": "^1.40.0"
|
|
507
|
+
},
|
|
508
|
+
"devDependencies": {
|
|
509
|
+
"@types/node": "^22.0.0",
|
|
510
|
+
"typescript": "^5.0.0"
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
**Step 2: Commit**
|
|
516
|
+
|
|
517
|
+
```bash
|
|
518
|
+
git add extensions/page-agent/
|
|
519
|
+
git commit -m "feat(page-agent): create extension structure"
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
### Task 6: Copiar e adaptar código Page Agent
|
|
525
|
+
|
|
526
|
+
**Files:**
|
|
527
|
+
- Create: `extensions/page-agent/src/browser.ts`
|
|
528
|
+
- Create: `extensions/page-agent/src/agent.ts`
|
|
529
|
+
- Create: `extensions/page-agent/src/actions.ts`
|
|
530
|
+
|
|
531
|
+
**Step 1: Analisar código fonte**
|
|
532
|
+
|
|
533
|
+
```bash
|
|
534
|
+
ls -la /Users/pool/Downloads/page-agent-main/
|
|
535
|
+
find /Users/pool/Downloads/page-agent-main/ -name "*.ts" -o -name "*.js" | head -20
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
**Step 2: Copiar e adaptar arquivos principais**
|
|
539
|
+
|
|
540
|
+
Copiar lógica de automação web do Page Agent para a extensão PoolBot.
|
|
541
|
+
|
|
542
|
+
**Step 3: Commit**
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
git add extensions/page-agent/src/
|
|
546
|
+
git commit -m "feat(page-agent): import and adapt Page Agent code"
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
## Fase 3: XYOps Integration
|
|
552
|
+
|
|
553
|
+
### Task 7: Criar estrutura XYOps
|
|
554
|
+
|
|
555
|
+
**Files:**
|
|
556
|
+
- Create: `extensions/xyops/package.json`
|
|
557
|
+
- Create: `extensions/xyops/poolbot.plugin.json`
|
|
558
|
+
- Create: `extensions/xyops/src/index.ts`
|
|
559
|
+
|
|
560
|
+
**Step 1: Analisar código fonte**
|
|
561
|
+
|
|
562
|
+
```bash
|
|
563
|
+
ls -la /Users/pool/Downloads/xyops-main/ 2>/dev/null || echo "Directory not found"
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
**Step 2: Criar estrutura base**
|
|
567
|
+
|
|
568
|
+
```json
|
|
569
|
+
{
|
|
570
|
+
"name": "@poolbot/xyops",
|
|
571
|
+
"version": "2026.3.13",
|
|
572
|
+
"description": "Infrastructure and DevOps operations automation",
|
|
573
|
+
"type": "module",
|
|
574
|
+
"main": "dist/index.js"
|
|
575
|
+
}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
## Fase 4: Agency Agents Integration
|
|
581
|
+
|
|
582
|
+
### Task 8: Criar estrutura Agency
|
|
583
|
+
|
|
584
|
+
**Files:**
|
|
585
|
+
- Create: `extensions/agency/package.json`
|
|
586
|
+
- Create: `extensions/agency/poolbot.plugin.json`
|
|
587
|
+
|
|
588
|
+
**Step 1: Analisar estrutura**
|
|
589
|
+
|
|
590
|
+
```bash
|
|
591
|
+
ls /Users/pool/Downloads/agency-agents-main/
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
**Step 2: Criar extensão que expõe templates de agentes**
|
|
595
|
+
|
|
596
|
+
A extensão Agency vai fornecer templates pré-configurados para diferentes tipos de agentes (marketing, engineering, design, etc.).
|
|
597
|
+
|
|
598
|
+
---
|
|
599
|
+
|
|
600
|
+
## Fase 5: Build e Teste
|
|
601
|
+
|
|
602
|
+
### Task 9: Build todas as extensões
|
|
603
|
+
|
|
604
|
+
**Step 1: Instalar dependências**
|
|
605
|
+
|
|
606
|
+
```bash
|
|
607
|
+
cd extensions/hexstrike-ai && pnpm install && pnpm build
|
|
608
|
+
cd ../page-agent && pnpm install && pnpm build
|
|
609
|
+
cd ../xyops && pnpm install && pnpm build
|
|
610
|
+
cd ../agency && pnpm install && pnpm build
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
**Step 2: Testar integração**
|
|
614
|
+
|
|
615
|
+
```bash
|
|
616
|
+
pnpm poolbot security status
|
|
617
|
+
pnpm poolbot security tools
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
**Step 3: Commit final**
|
|
621
|
+
|
|
622
|
+
```bash
|
|
623
|
+
git add .
|
|
624
|
+
git commit -m "feat(extensions): integrate HexStrike AI, Page Agent, XYOps, Agency"
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
---
|
|
628
|
+
|
|
629
|
+
## Resumo da Integração
|
|
630
|
+
|
|
631
|
+
| Projeto | Extensão PoolBot | Status |
|
|
632
|
+
| --------------- | -------------------------- | ----------- |
|
|
633
|
+
| HexStrike AI | `extensions/hexstrike-ai/` | 🚧 Em progresso |
|
|
634
|
+
| Page Agent | `extensions/page-agent/` | 🚧 Em progresso |
|
|
635
|
+
| XYOps | `extensions/xyops/` | 🚧 Em progresso |
|
|
636
|
+
| Agency Agents | `extensions/agency/` | 🚧 Em progresso |
|
|
637
|
+
|
|
638
|
+
---
|
|
639
|
+
|
|
640
|
+
## Comandos Disponíveis Após Integração
|
|
641
|
+
|
|
642
|
+
```bash
|
|
643
|
+
# HexStrike AI
|
|
644
|
+
poolbot security status # Verificar status do servidor
|
|
645
|
+
poolbot security tools # Listar scanners disponíveis
|
|
646
|
+
poolbot security scan <target> # Executar scan de segurança
|
|
647
|
+
poolbot security report <scan-id> # Ver resultado do scan
|
|
648
|
+
|
|
649
|
+
# Page Agent
|
|
650
|
+
poolbot browser agent <url> # Iniciar agente de automação
|
|
651
|
+
poolbot browser screenshot <url> # Capturar screenshot
|
|
652
|
+
poolbot browser crawl <url> # Crawler inteligente
|
|
653
|
+
|
|
654
|
+
# XYOps
|
|
655
|
+
poolbot infra status # Status da infraestrutura
|
|
656
|
+
poolbot infra deploy <stack> # Deploy de stack
|
|
657
|
+
poolbot infra monitor # Monitoramento
|
|
658
|
+
|
|
659
|
+
# Agency
|
|
660
|
+
poolbot agent list # Listar templates de agentes
|
|
661
|
+
poolbot agent create <type> # Criar agente especializado
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
---
|
|
665
|
+
|
|
666
|
+
**Próximo passo:** Executar Task 1 para começar a integração do HexStrike AI.
|