@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.
Files changed (186) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/agents/checkpoint-manager.js +291 -0
  3. package/dist/agents/poolbot-tools.js +5 -0
  4. package/dist/agents/subagent-announce-reliability.js +160 -0
  5. package/dist/agents/tool-result-truncation.js +299 -0
  6. package/dist/agents/tools/nodes-file-tool.js +197 -0
  7. package/dist/build-info.json +3 -3
  8. package/dist/cli/config-cli.js +60 -0
  9. package/dist/cron/cron-improvements.js +195 -0
  10. package/dist/discord/discord-improvements.js +167 -0
  11. package/dist/gateway/auth-rate-limit.js +19 -0
  12. package/dist/gateway/auth.js +41 -0
  13. package/dist/gateway/gateway-improvements.js +294 -0
  14. package/dist/gateway/node-command-policy.js +7 -2
  15. package/dist/infra/net/ssrf.js +15 -2
  16. package/dist/infra/shell-security.js +201 -0
  17. package/dist/memory/memory-improvements.js +239 -0
  18. package/dist/node-host/runner.js +146 -79
  19. package/dist/security/prototype-pollution.js +141 -0
  20. package/dist/security/webhook-security.js +253 -0
  21. package/dist/shared/net/ip.js +52 -1
  22. package/dist/slack/slack-improvements.js +225 -0
  23. package/dist/telegram/telegram-improvements.js +220 -0
  24. package/dist/ui-plugins/ui-plugins-improvements.js +191 -0
  25. package/docs/ANALISE_OPENCLAW_PROFISSIONAL.md +520 -0
  26. package/docs/competitive-analysis.md +421 -0
  27. package/docs/implementation-analysis.md +393 -0
  28. package/docs/plans/2026-03-11-file-operations-security-hardening.md +307 -0
  29. package/docs/plans/2026-03-11-integracao-projetos-poolbot.md +666 -0
  30. package/extensions/agency-agents/README.md +301 -0
  31. package/extensions/agency-agents/agents/CONTRIBUTING.md +353 -0
  32. package/extensions/agency-agents/agents/README.md +602 -0
  33. package/extensions/agency-agents/agents/design/design-brand-guardian.md +320 -0
  34. package/extensions/agency-agents/agents/design/design-image-prompt-engineer.md +234 -0
  35. package/extensions/agency-agents/agents/design/design-ui-designer.md +381 -0
  36. package/extensions/agency-agents/agents/design/design-ux-architect.md +467 -0
  37. package/extensions/agency-agents/agents/design/design-ux-researcher.md +327 -0
  38. package/extensions/agency-agents/agents/design/design-visual-storyteller.md +147 -0
  39. package/extensions/agency-agents/agents/design/design-whimsy-injector.md +436 -0
  40. package/extensions/agency-agents/agents/engineering/engineering-ai-engineer.md +144 -0
  41. package/extensions/agency-agents/agents/engineering/engineering-backend-architect.md +233 -0
  42. package/extensions/agency-agents/agents/engineering/engineering-devops-automator.md +374 -0
  43. package/extensions/agency-agents/agents/engineering/engineering-frontend-developer.md +223 -0
  44. package/extensions/agency-agents/agents/engineering/engineering-mobile-app-builder.md +491 -0
  45. package/extensions/agency-agents/agents/engineering/engineering-rapid-prototyper.md +460 -0
  46. package/extensions/agency-agents/agents/engineering/engineering-security-engineer.md +275 -0
  47. package/extensions/agency-agents/agents/engineering/engineering-senior-developer.md +174 -0
  48. package/extensions/agency-agents/agents/examples/README.md +48 -0
  49. package/extensions/agency-agents/agents/examples/nexus-spatial-discovery.md +852 -0
  50. package/extensions/agency-agents/agents/examples/workflow-landing-page.md +119 -0
  51. package/extensions/agency-agents/agents/examples/workflow-startup-mvp.md +155 -0
  52. package/extensions/agency-agents/agents/integrations/README.md +117 -0
  53. package/extensions/agency-agents/agents/integrations/aider/README.md +38 -0
  54. package/extensions/agency-agents/agents/integrations/antigravity/README.md +49 -0
  55. package/extensions/agency-agents/agents/integrations/claude-code/README.md +31 -0
  56. package/extensions/agency-agents/agents/integrations/cursor/README.md +38 -0
  57. package/extensions/agency-agents/agents/integrations/gemini-cli/README.md +36 -0
  58. package/extensions/agency-agents/agents/integrations/opencode/README.md +58 -0
  59. package/extensions/agency-agents/agents/integrations/windsurf/README.md +26 -0
  60. package/extensions/agency-agents/agents/marketing/marketing-app-store-optimizer.md +319 -0
  61. package/extensions/agency-agents/agents/marketing/marketing-content-creator.md +52 -0
  62. package/extensions/agency-agents/agents/marketing/marketing-growth-hacker.md +52 -0
  63. package/extensions/agency-agents/agents/marketing/marketing-instagram-curator.md +111 -0
  64. package/extensions/agency-agents/agents/marketing/marketing-reddit-community-builder.md +121 -0
  65. package/extensions/agency-agents/agents/marketing/marketing-social-media-strategist.md +123 -0
  66. package/extensions/agency-agents/agents/marketing/marketing-tiktok-strategist.md +123 -0
  67. package/extensions/agency-agents/agents/marketing/marketing-twitter-engager.md +124 -0
  68. package/extensions/agency-agents/agents/marketing/marketing-wechat-official-account.md +143 -0
  69. package/extensions/agency-agents/agents/marketing/marketing-xiaohongshu-specialist.md +136 -0
  70. package/extensions/agency-agents/agents/marketing/marketing-zhihu-strategist.md +160 -0
  71. package/extensions/agency-agents/agents/product/product-feedback-synthesizer.md +117 -0
  72. package/extensions/agency-agents/agents/product/product-sprint-prioritizer.md +152 -0
  73. package/extensions/agency-agents/agents/product/product-trend-researcher.md +157 -0
  74. package/extensions/agency-agents/agents/project-management/project-management-experiment-tracker.md +196 -0
  75. package/extensions/agency-agents/agents/project-management/project-management-project-shepherd.md +192 -0
  76. package/extensions/agency-agents/agents/project-management/project-management-studio-operations.md +198 -0
  77. package/extensions/agency-agents/agents/project-management/project-management-studio-producer.md +201 -0
  78. package/extensions/agency-agents/agents/project-management/project-manager-senior.md +133 -0
  79. package/extensions/agency-agents/agents/scripts/convert.sh +362 -0
  80. package/extensions/agency-agents/agents/scripts/install.sh +465 -0
  81. package/extensions/agency-agents/agents/scripts/lint-agents.sh +115 -0
  82. package/extensions/agency-agents/agents/spatial-computing/macos-spatial-metal-engineer.md +335 -0
  83. package/extensions/agency-agents/agents/spatial-computing/terminal-integration-specialist.md +68 -0
  84. package/extensions/agency-agents/agents/spatial-computing/visionos-spatial-engineer.md +52 -0
  85. package/extensions/agency-agents/agents/spatial-computing/xr-cockpit-interaction-specialist.md +30 -0
  86. package/extensions/agency-agents/agents/spatial-computing/xr-immersive-developer.md +30 -0
  87. package/extensions/agency-agents/agents/spatial-computing/xr-interface-architect.md +30 -0
  88. package/extensions/agency-agents/agents/specialized/agentic-identity-trust.md +367 -0
  89. package/extensions/agency-agents/agents/specialized/agents-orchestrator.md +365 -0
  90. package/extensions/agency-agents/agents/specialized/data-analytics-reporter.md +52 -0
  91. package/extensions/agency-agents/agents/specialized/data-consolidation-agent.md +58 -0
  92. package/extensions/agency-agents/agents/specialized/lsp-index-engineer.md +312 -0
  93. package/extensions/agency-agents/agents/specialized/report-distribution-agent.md +63 -0
  94. package/extensions/agency-agents/agents/specialized/sales-data-extraction-agent.md +65 -0
  95. package/extensions/agency-agents/agents/strategy/EXECUTIVE-BRIEF.md +95 -0
  96. package/extensions/agency-agents/agents/strategy/QUICKSTART.md +194 -0
  97. package/extensions/agency-agents/agents/strategy/coordination/agent-activation-prompts.md +401 -0
  98. package/extensions/agency-agents/agents/strategy/coordination/handoff-templates.md +357 -0
  99. package/extensions/agency-agents/agents/strategy/nexus-strategy.md +1110 -0
  100. package/extensions/agency-agents/agents/strategy/playbooks/phase-0-discovery.md +178 -0
  101. package/extensions/agency-agents/agents/strategy/playbooks/phase-1-strategy.md +238 -0
  102. package/extensions/agency-agents/agents/strategy/playbooks/phase-2-foundation.md +278 -0
  103. package/extensions/agency-agents/agents/strategy/playbooks/phase-3-build.md +286 -0
  104. package/extensions/agency-agents/agents/strategy/playbooks/phase-4-hardening.md +332 -0
  105. package/extensions/agency-agents/agents/strategy/playbooks/phase-5-launch.md +277 -0
  106. package/extensions/agency-agents/agents/strategy/playbooks/phase-6-operate.md +318 -0
  107. package/extensions/agency-agents/agents/strategy/runbooks/scenario-enterprise-feature.md +157 -0
  108. package/extensions/agency-agents/agents/strategy/runbooks/scenario-incident-response.md +217 -0
  109. package/extensions/agency-agents/agents/strategy/runbooks/scenario-marketing-campaign.md +187 -0
  110. package/extensions/agency-agents/agents/strategy/runbooks/scenario-startup-mvp.md +154 -0
  111. package/extensions/agency-agents/agents/support/support-analytics-reporter.md +363 -0
  112. package/extensions/agency-agents/agents/support/support-executive-summary-generator.md +210 -0
  113. package/extensions/agency-agents/agents/support/support-finance-tracker.md +440 -0
  114. package/extensions/agency-agents/agents/support/support-infrastructure-maintainer.md +616 -0
  115. package/extensions/agency-agents/agents/support/support-legal-compliance-checker.md +586 -0
  116. package/extensions/agency-agents/agents/support/support-support-responder.md +583 -0
  117. package/extensions/agency-agents/agents/testing/testing-accessibility-auditor.md +313 -0
  118. package/extensions/agency-agents/agents/testing/testing-api-tester.md +304 -0
  119. package/extensions/agency-agents/agents/testing/testing-evidence-collector.md +208 -0
  120. package/extensions/agency-agents/agents/testing/testing-performance-benchmarker.md +266 -0
  121. package/extensions/agency-agents/agents/testing/testing-reality-checker.md +236 -0
  122. package/extensions/agency-agents/agents/testing/testing-test-results-analyzer.md +303 -0
  123. package/extensions/agency-agents/agents/testing/testing-tool-evaluator.md +392 -0
  124. package/extensions/agency-agents/agents/testing/testing-workflow-optimizer.md +448 -0
  125. package/extensions/agency-agents/index.ts +733 -0
  126. package/extensions/agency-agents/node_modules/.bin/jiti +21 -0
  127. package/extensions/agency-agents/node_modules/.bin/tsc +21 -0
  128. package/extensions/agency-agents/node_modules/.bin/tsserver +21 -0
  129. package/extensions/agency-agents/node_modules/.bin/tsx +21 -0
  130. package/extensions/agency-agents/node_modules/.bin/vite +21 -0
  131. package/extensions/agency-agents/node_modules/.bin/vitest +21 -0
  132. package/extensions/agency-agents/node_modules/.bin/yaml +21 -0
  133. package/extensions/agency-agents/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  134. package/extensions/agency-agents/package.json +25 -0
  135. package/extensions/agency-agents/poolbot.plugin.json +11 -0
  136. package/extensions/agency-agents/src/AgencyAgentsService.test.ts +443 -0
  137. package/extensions/agency-agents/src/AgencyAgentsService.ts +288 -0
  138. package/extensions/agency-agents/src/types.ts +147 -0
  139. package/extensions/agency-agents/vitest.config.ts +8 -0
  140. package/extensions/hexstrike-ai/README.md +98 -0
  141. package/extensions/hexstrike-ai/node_modules/.bin/tsc +21 -0
  142. package/extensions/hexstrike-ai/node_modules/.bin/tsserver +21 -0
  143. package/extensions/hexstrike-ai/package.json +29 -0
  144. package/extensions/hexstrike-ai/poolbot.plugin.json +31 -0
  145. package/extensions/hexstrike-ai/src/client.ts +91 -0
  146. package/extensions/hexstrike-ai/src/index.ts +170 -0
  147. package/extensions/hexstrike-ai/src/server/hexstrike_mcp.py +5470 -0
  148. package/extensions/hexstrike-ai/src/server/hexstrike_server.py +17289 -0
  149. package/extensions/hexstrike-ai/src/server/requirements.txt +84 -0
  150. package/extensions/hexstrike-ai/src/server-manager.ts +83 -0
  151. package/extensions/hexstrike-ai/tsconfig.json +20 -0
  152. package/extensions/page-agent/README.md +159 -0
  153. package/extensions/page-agent/index.ts +595 -0
  154. package/extensions/page-agent/node_modules/.bin/jiti +21 -0
  155. package/extensions/page-agent/node_modules/.bin/playwright +21 -0
  156. package/extensions/page-agent/node_modules/.bin/tsc +21 -0
  157. package/extensions/page-agent/node_modules/.bin/tsserver +21 -0
  158. package/extensions/page-agent/node_modules/.bin/tsx +21 -0
  159. package/extensions/page-agent/node_modules/.bin/vitest +21 -0
  160. package/extensions/page-agent/node_modules/.bin/yaml +21 -0
  161. package/extensions/page-agent/package.json +43 -0
  162. package/extensions/page-agent/poolbot.plugin.json +24 -0
  163. package/extensions/page-agent/src/PageAgentService.test.ts +517 -0
  164. package/extensions/page-agent/src/PageAgentService.ts +636 -0
  165. package/extensions/page-agent/src/PoolBotPageController.test.ts +358 -0
  166. package/extensions/page-agent/src/PoolBotPageController.ts +245 -0
  167. package/extensions/page-agent/src/index.ts +20 -0
  168. package/extensions/page-agent/src/tools.test.ts +231 -0
  169. package/extensions/page-agent/src/tools.ts +167 -0
  170. package/extensions/page-agent/src/types.ts +198 -0
  171. package/extensions/xyops/README.md +227 -0
  172. package/extensions/xyops/index.ts +342 -0
  173. package/extensions/xyops/node_modules/.bin/jiti +21 -0
  174. package/extensions/xyops/node_modules/.bin/tsc +21 -0
  175. package/extensions/xyops/node_modules/.bin/tsserver +21 -0
  176. package/extensions/xyops/node_modules/.bin/tsx +21 -0
  177. package/extensions/xyops/node_modules/.bin/vitest +21 -0
  178. package/extensions/xyops/node_modules/.bin/yaml +21 -0
  179. package/extensions/xyops/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  180. package/extensions/xyops/package.json +39 -0
  181. package/extensions/xyops/poolbot.plugin.json +21 -0
  182. package/extensions/xyops/src/client.test.ts +467 -0
  183. package/extensions/xyops/src/client.ts +157 -0
  184. package/extensions/xyops/src/types.ts +147 -0
  185. package/extensions/xyops/vitest.config.ts +8 -0
  186. package/package.json +1 -1
@@ -0,0 +1,288 @@
1
+ import type { AgencyAgent, AgentTask, AgentCollaboration, AgentMessage, AgentReview } from "./types.js";
2
+
3
+ export class AgencyAgentsService {
4
+ private agents: Map<string, AgencyAgent> = new Map();
5
+ private tasks: Map<string, AgentTask> = new Map();
6
+ private collaborations: Map<string, AgentCollaboration> = new Map();
7
+
8
+ private messages: Map<string, AgentMessage> = new Map();
9
+ private reviews: Map<string, AgentReview> = new Map();
10
+
11
+ registerAgent(agent: AgencyAgent): void {
12
+ this.agents.set(agent.name.toLowerCase(), agent);
13
+ }
14
+
15
+ getAgent(name: string): AgencyAgent | undefined {
16
+ return this.agents.get(name.toLowerCase());
17
+ }
18
+
19
+ listAgents(category?: string): AgencyAgent[] {
20
+ const agents = Array.from(this.agents.values());
21
+ if (category) {
22
+ return agents.filter((a) => a.category.toLowerCase() === category.toLowerCase());
23
+ }
24
+ return agents;
25
+ }
26
+
27
+ findAgentsForTask(task: string): Array<{ agent: AgencyAgent; score: number }> {
28
+ const taskLower = task.toLowerCase();
29
+ const keywords = taskLower.split(/\s+/).filter((k) => k.length > 3);
30
+
31
+ const scored = Array.from(this.agents.values()).map((agent) => {
32
+ let score = 0;
33
+ const text = `${agent.name} ${agent.description} ${agent.category} ${agent.capabilities?.join(" ") || ""}`.toLowerCase();
34
+
35
+ for (const keyword of keywords) {
36
+ if (text.includes(keyword)) score += 2;
37
+ }
38
+
39
+ if (taskLower.includes("frontend") && agent.category === "engineering") score += 5;
40
+ if (taskLower.includes("backend") && agent.category === "engineering") score += 5;
41
+ if (taskLower.includes("design") && agent.category === "design") score += 5;
42
+ if (taskLower.includes("marketing") && agent.category === "marketing") score += 5;
43
+ if (taskLower.includes("test") && agent.category === "testing") score += 5;
44
+ if (taskLower.includes("product") && agent.category === "product") score += 5;
45
+ if (taskLower.includes("devops") && agent.category === "engineering") score += 5;
46
+
47
+ return { agent, score };
48
+ });
49
+
50
+ return scored.sort((a, b) => b.score - a.score);
51
+ }
52
+
53
+ createTask(agentName: string, task: string, context?: string, parentTaskId?: string): AgentTask {
54
+ const id = `task_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
55
+ const now = new Date();
56
+
57
+ const agentTask: AgentTask = {
58
+ id,
59
+ agentName,
60
+ task,
61
+ context,
62
+ status: "pending",
63
+ createdAt: now,
64
+ updatedAt: now,
65
+ parentTaskId,
66
+ subtasks: [],
67
+ dependencies: [],
68
+ };
69
+
70
+ this.tasks.set(id, agentTask);
71
+
72
+ if (parentTaskId) {
73
+ const parent = this.tasks.get(parentTaskId);
74
+ if (parent) {
75
+ parent.subtasks = parent.subtasks || [];
76
+ parent.subtasks.push(id);
77
+ }
78
+ }
79
+
80
+ return agentTask;
81
+ }
82
+
83
+ getTask(id: string): AgentTask | undefined {
84
+ return this.tasks.get(id);
85
+ }
86
+
87
+ updateTaskStatus(id: string, status: AgentTask["status"], output?: string): AgentTask | undefined {
88
+ const task = this.tasks.get(id);
89
+ if (task) {
90
+ task.status = status;
91
+ task.updatedAt = new Date();
92
+ if (output !== undefined) {
93
+ task.output = output;
94
+ }
95
+ }
96
+ return task;
97
+ }
98
+
99
+ listTasks(agentName?: string, status?: AgentTask["status"]): AgentTask[] {
100
+ let tasks = Array.from(this.tasks.values());
101
+
102
+ if (agentName) {
103
+ tasks = tasks.filter((t) => t.agentName.toLowerCase() === agentName.toLowerCase());
104
+ }
105
+
106
+ if (status) {
107
+ tasks = tasks.filter((t) => t.status === status);
108
+ }
109
+
110
+ return tasks.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
111
+ }
112
+
113
+ createCollaboration(
114
+ name: string,
115
+ description: string,
116
+ leadAgent: string,
117
+ participatingAgents: string[]
118
+ ): AgentCollaboration {
119
+ const id = `collab_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
120
+ const now = new Date();
121
+
122
+ const collaboration: AgentCollaboration = {
123
+ id,
124
+ name,
125
+ description,
126
+ leadAgent,
127
+ participatingAgents: [leadAgent, ...participatingAgents.filter((a) => a !== leadAgent)],
128
+ tasks: [],
129
+ status: "planning",
130
+ createdAt: now,
131
+ updatedAt: now,
132
+ };
133
+
134
+ this.collaborations.set(id, collaboration);
135
+ return collaboration;
136
+ }
137
+
138
+ getCollaboration(id: string): AgentCollaboration | undefined {
139
+ return this.collaborations.get(id);
140
+ }
141
+
142
+ addTaskToCollaboration(collaborationId: string, task: AgentTask): void {
143
+ const collaboration = this.collaborations.get(collaborationId);
144
+ if (collaboration) {
145
+ collaboration.tasks.push(task);
146
+ collaboration.updatedAt = new Date();
147
+ }
148
+ }
149
+
150
+ updateCollaborationStatus(id: string, status: AgentCollaboration["status"]): void {
151
+ const collaboration = this.collaborations.get(id);
152
+ if (collaboration) {
153
+ collaboration.status = status;
154
+ collaboration.updatedAt = new Date();
155
+ }
156
+ }
157
+
158
+ listCollaborations(status?: AgentCollaboration["status"]): AgentCollaboration[] {
159
+ let collabs = Array.from(this.collaborations.values());
160
+ if (status) {
161
+ collabs = collabs.filter((c) => c.status === status);
162
+ }
163
+ return collabs.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
164
+ }
165
+
166
+ createMessage(
167
+ fromAgent: string,
168
+ toAgent: string,
169
+ collaborationId: string,
170
+ content: string,
171
+ type: AgentMessage["type"]
172
+ ): AgentMessage {
173
+ const id = `msg_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
174
+ const message: AgentMessage = {
175
+ id,
176
+ fromAgent,
177
+ toAgent,
178
+ collaborationId,
179
+ content,
180
+ type,
181
+ timestamp: new Date(),
182
+ };
183
+
184
+ this.messages.set(id, message);
185
+ return message;
186
+ }
187
+
188
+ getMessagesForCollaboration(collaborationId: string): AgentMessage[] {
189
+ return Array.from(this.messages.values())
190
+ .filter((m) => m.collaborationId === collaborationId)
191
+ .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
192
+ }
193
+
194
+ createReview(
195
+ taskId: string,
196
+ reviewerAgent: string,
197
+ revieweeAgent: string,
198
+ feedback: string,
199
+ approvalStatus: AgentReview["approvalStatus"],
200
+ suggestions?: string[]
201
+ ): AgentReview {
202
+ const id = `review_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
203
+ const review: AgentReview = {
204
+ id,
205
+ taskId,
206
+ reviewerAgent,
207
+ revieweeAgent,
208
+ feedback,
209
+ approvalStatus,
210
+ suggestions,
211
+ createdAt: new Date(),
212
+ };
213
+
214
+ this.reviews.set(id, review);
215
+ return review;
216
+ }
217
+
218
+ getReviewsForTask(taskId: string): AgentReview[] {
219
+ return Array.from(this.reviews.values())
220
+ .filter((r) => r.taskId === taskId)
221
+ .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
222
+ }
223
+
224
+ generateSystemPrompt(agentName: string, task?: string, context?: string): string | undefined {
225
+ const agent = this.agents.get(agentName.toLowerCase());
226
+ if (!agent) return undefined;
227
+
228
+ let prompt = `# ${agent.name}\n\n`;
229
+ prompt += `${agent.description}\n\n`;
230
+ prompt += `${agent.content}\n\n`;
231
+
232
+ if (agent.capabilities?.length) {
233
+ prompt += `## Capabilities\n\n`;
234
+ for (const cap of agent.capabilities) {
235
+ prompt += `- ${cap}\n`;
236
+ }
237
+ prompt += `\n`;
238
+ }
239
+
240
+ if (task) {
241
+ prompt += `---\n\n`;
242
+ prompt += `## Current Task\n\n${task}\n\n`;
243
+ }
244
+
245
+ if (context) {
246
+ prompt += `## Additional Context\n\n${context}\n\n`;
247
+ }
248
+
249
+ prompt += `---\n\n`;
250
+ prompt += `You are now activated as ${agent.name}. Embody this personality fully and deliver exceptional work.`;
251
+
252
+ return prompt;
253
+ }
254
+
255
+ getAgentCapabilities(agentName: string): string[] {
256
+ const agent = this.agents.get(agentName.toLowerCase());
257
+ return agent?.capabilities || [];
258
+ }
259
+
260
+ getStats(): {
261
+ totalAgents: number;
262
+ totalTasks: number;
263
+ activeCollaborations: number;
264
+ tasksByStatus: Record<AgentTask["status"], number>;
265
+ } {
266
+ const tasks = Array.from(this.tasks.values());
267
+ const tasksByStatus: Record<AgentTask["status"], number> = {
268
+ pending: 0,
269
+ in_progress: 0,
270
+ completed: 0,
271
+ failed: 0,
272
+ reviewing: 0,
273
+ };
274
+
275
+ for (const task of tasks) {
276
+ tasksByStatus[task.status]++;
277
+ }
278
+
279
+ return {
280
+ totalAgents: this.agents.size,
281
+ totalTasks: this.tasks.size,
282
+ activeCollaborations: Array.from(this.collaborations.values()).filter(
283
+ (c) => c.status === "active"
284
+ ).length,
285
+ tasksByStatus,
286
+ };
287
+ }
288
+ }
@@ -0,0 +1,147 @@
1
+ export interface AgencyAgent {
2
+ name: string;
3
+ description: string;
4
+ color?: string;
5
+ category: string;
6
+ content: string;
7
+ capabilities: string[];
8
+ tools?: string[];
9
+ }
10
+
11
+ export interface AgentTask {
12
+ id: string;
13
+ agentName: string;
14
+ task: string;
15
+ context?: string;
16
+ status: "pending" | "in_progress" | "completed" | "failed" | "reviewing";
17
+ output?: string;
18
+ createdAt: Date;
19
+ updatedAt: Date;
20
+ parentTaskId?: string;
21
+ subtasks?: string[];
22
+ dependencies?: string[];
23
+ }
24
+
25
+ export interface AgentCollaboration {
26
+ id: string;
27
+ name: string;
28
+ description: string;
29
+ leadAgent: string;
30
+ participatingAgents: string[];
31
+ tasks: AgentTask[];
32
+ status: "planning" | "active" | "completed" | "paused";
33
+ createdAt: Date;
34
+ updatedAt: Date;
35
+ }
36
+
37
+ export interface WorkflowStep {
38
+ id: string;
39
+ name: string;
40
+ description: string;
41
+ agent: string;
42
+ task: string;
43
+ dependencies: string[];
44
+ status: "pending" | "in_progress" | "completed" | "failed";
45
+ output?: string;
46
+ }
47
+
48
+ export interface Workflow {
49
+ id: string;
50
+ name: string;
51
+ description: string;
52
+ category: string;
53
+ steps: WorkflowStep[];
54
+ status: "draft" | "active" | "completed" | "paused";
55
+ createdAt: Date;
56
+ updatedAt: Date;
57
+ }
58
+
59
+ export interface AgentMessage {
60
+ id: string;
61
+ fromAgent: string;
62
+ toAgent: string;
63
+ collaborationId: string;
64
+ content: string;
65
+ type: "request" | "response" | "update" | "review" | "handoff";
66
+ timestamp: Date;
67
+ }
68
+
69
+ export interface AgentReview {
70
+ id: string;
71
+ taskId: string;
72
+ reviewerAgent: string;
73
+ revieweeAgent: string;
74
+ feedback: string;
75
+ approvalStatus: "approved" | "changes_requested" | "pending";
76
+ suggestions?: string[];
77
+ createdAt: Date;
78
+ }
79
+
80
+ export interface AgencyAgentsConfig {
81
+ agentsDirectory?: string;
82
+ workflowsDirectory?: string;
83
+ enableCollaboration?: boolean;
84
+ maxConcurrentTasks?: number;
85
+ taskTimeoutMs?: number;
86
+ defaultReviewers?: string[];
87
+ }
88
+
89
+ export type AgentCategory =
90
+ | "engineering"
91
+ | "design"
92
+ | "marketing"
93
+ | "product"
94
+ | "testing"
95
+ | "strategy"
96
+ | "support"
97
+ | "project-management"
98
+ | "specialized"
99
+ | "spatial-computing"
100
+ | "integrations";
101
+
102
+ export const AGENT_CATEGORIES: Record<AgentCategory, { label: string; description: string }> = {
103
+ engineering: {
104
+ label: "Engineering",
105
+ description: "Software development, architecture, DevOps, and technical implementation",
106
+ },
107
+ design: {
108
+ label: "Design",
109
+ description: "UI/UX design, visual design, brand identity, and user research",
110
+ },
111
+ marketing: {
112
+ label: "Marketing",
113
+ description: "Content creation, growth hacking, social media, and market analysis",
114
+ },
115
+ product: {
116
+ label: "Product",
117
+ description: "Product management, roadmap planning, and user feedback synthesis",
118
+ },
119
+ testing: {
120
+ label: "Testing",
121
+ description: "Quality assurance, testing strategies, and performance benchmarking",
122
+ },
123
+ strategy: {
124
+ label: "Strategy",
125
+ description: "Business strategy, project planning, and coordination playbooks",
126
+ },
127
+ support: {
128
+ label: "Support",
129
+ description: "Customer support, documentation, and operational assistance",
130
+ },
131
+ "project-management": {
132
+ label: "Project Management",
133
+ description: "Project coordination, sprint planning, and team orchestration",
134
+ },
135
+ specialized: {
136
+ label: "Specialized",
137
+ description: "Domain-specific agents for unique use cases and advanced scenarios",
138
+ },
139
+ "spatial-computing": {
140
+ label: "Spatial Computing",
141
+ description: "XR, VisionOS, and spatial interface development",
142
+ },
143
+ integrations: {
144
+ label: "Integrations",
145
+ description: "Third-party tool integrations and connector development",
146
+ },
147
+ };
@@ -0,0 +1,8 @@
1
+ import { defineConfig } from 'vitest/config'
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ globals: true,
6
+ environment: 'node',
7
+ },
8
+ })
@@ -0,0 +1,98 @@
1
+ # HexStrike AI Extension for PoolBot
2
+
3
+ Security scanning platform with 150+ integrated scanners (nmap, nuclei, sqlmap, gobuster, wpscan, etc.) now fully integrated into PoolBot.
4
+
5
+ ## Features
6
+
7
+ - **150+ Security Scanners**: nmap, nuclei, sqlmap, gobuster, wpscan, nikto, dirb, and more
8
+ - **Integrated Server**: Python server runs embedded within PoolBot
9
+ - **CLI Commands**: Full CLI integration via `poolbot security`
10
+ - **Gateway RPC**: Remote procedure calls for distributed setups
11
+ - **Telemetry**: Events and metrics integrated with PoolBot telemetry
12
+
13
+ ## Installation
14
+
15
+ The extension is automatically installed with PoolBot. Python dependencies:
16
+
17
+ ```bash
18
+ cd extensions/hexstrike-ai
19
+ pip3 install -r src/server/requirements.txt
20
+ ```
21
+
22
+ ## Usage
23
+
24
+ ### Check Server Status
25
+
26
+ ```bash
27
+ poolbot security status
28
+ ```
29
+
30
+ ### List Available Scanners
31
+
32
+ ```bash
33
+ poolbot security tools
34
+ ```
35
+
36
+ ### Run Security Scan
37
+
38
+ ```bash
39
+ # Quick scan with default scanners
40
+ poolbot security scan https://example.com
41
+
42
+ # Scan with specific scanners
43
+ poolbot security scan https://example.com --scanners nmap,nuclei
44
+
45
+ # Full scan with all scanners
46
+ poolbot security scan https://example.com --full
47
+ ```
48
+
49
+ ### Get Scan Report
50
+
51
+ ```bash
52
+ poolbot security report <scan-id>
53
+ ```
54
+
55
+ ### Stop Server
56
+
57
+ ```bash
58
+ poolbot security stop
59
+ ```
60
+
61
+ ## Configuration
62
+
63
+ Add to your PoolBot config (`~/.poolbot/config.json`):
64
+
65
+ ```json
66
+ {
67
+ "hexstrikeAi": {
68
+ "port": 8888,
69
+ "host": "127.0.0.1",
70
+ "autoStart": true,
71
+ "pythonPath": "python3",
72
+ "maxConcurrentScans": 3,
73
+ "scanTimeout": 3600
74
+ }
75
+ }
76
+ ```
77
+
78
+ ## Architecture
79
+
80
+ ```
81
+ PoolBot CLI → Extension HexStrike AI → Python Server (port 8888)
82
+
83
+ Gateway RPC (distributed)
84
+
85
+ Telemetry Events
86
+ ```
87
+
88
+ ## API Endpoints
89
+
90
+ - `GET /health` - Health check
91
+ - `GET /api/tools` - List available scanners
92
+ - `POST /api/scan` - Start new scan
93
+ - `GET /api/scan/:id` - Get scan results
94
+ - `GET /api/scans` - List all scans
95
+
96
+ ## License
97
+
98
+ MIT
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/pool/Documents/GitHub/pool-bot/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
21
+ fi
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@poolbot/hexstrike-ai",
3
+ "version": "2026.3.13",
4
+ "description": "HexStrike AI Security Platform - Integrated Server for PoolBot",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "dev": "tsc --watch",
11
+ "start:server": "python3 src/server/hexstrike_server.py",
12
+ "install:deps": "pip3 install -r src/server/requirements.txt"
13
+ },
14
+ "dependencies": {
15
+ "poolbot": "workspace:*"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^22.0.0",
19
+ "typescript": "^5.0.0"
20
+ },
21
+ "poolbot": {
22
+ "plugin": true,
23
+ "server": true,
24
+ "python": true
25
+ },
26
+ "keywords": ["security", "scanning", "pentest", "nmap", "nuclei"],
27
+ "author": "PoolBot Team",
28
+ "license": "MIT"
29
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "hexstrike-ai",
3
+ "name": "HexStrike AI",
4
+ "version": "2026.3.13",
5
+ "description": "Security scanning platform with 150+ scanners integrated into PoolBot",
6
+ "author": "PoolBot Team",
7
+ "main": "dist/index.js",
8
+ "capabilities": ["security", "scanning", "pentest", "vulnerability-assessment"],
9
+ "commands": [
10
+ "security.status",
11
+ "security.tools",
12
+ "security.scan",
13
+ "security.report",
14
+ "security.stop"
15
+ ],
16
+ "hooks": ["onInit", "onShutdown"],
17
+ "config": {
18
+ "port": 8888,
19
+ "host": "127.0.0.1",
20
+ "autoStart": true,
21
+ "pythonPath": "python3",
22
+ "scanners": ["nmap", "nuclei", "sqlmap", "gobuster", "wpscan", "nikto", "dirb"],
23
+ "maxConcurrentScans": 3,
24
+ "scanTimeout": 3600
25
+ },
26
+ "permissions": [
27
+ "gateway.rpc",
28
+ "telemetry.events",
29
+ "config.read"
30
+ ]
31
+ }