@poolzin/pool-bot 2026.3.11 → 2026.3.14

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 (195) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/agents/checkpoint-manager.js +291 -0
  4. package/dist/agents/poolbot-tools.js +5 -0
  5. package/dist/agents/subagent-announce-reliability.js +160 -0
  6. package/dist/agents/tool-result-truncation.js +299 -0
  7. package/dist/agents/tools/nodes-file-tool.js +197 -0
  8. package/dist/build-info.json +3 -3
  9. package/dist/cli/config-cli.js +60 -0
  10. package/dist/cron/cron-improvements.js +195 -0
  11. package/dist/discord/discord-improvements.js +167 -0
  12. package/dist/gateway/auth-rate-limit.js +19 -0
  13. package/dist/gateway/auth.js +41 -0
  14. package/dist/gateway/gateway-improvements.js +294 -0
  15. package/dist/gateway/node-command-policy.js +7 -2
  16. package/dist/infra/net/ssrf.js +15 -2
  17. package/dist/infra/shell-security.js +201 -0
  18. package/dist/memory/memory-improvements.js +239 -0
  19. package/dist/node-host/runner.js +146 -79
  20. package/dist/security/prototype-pollution.js +141 -0
  21. package/dist/security/webhook-security.js +253 -0
  22. package/dist/shared/net/ip.js +52 -1
  23. package/dist/slack/slack-improvements.js +225 -0
  24. package/dist/telegram/telegram-improvements.js +220 -0
  25. package/dist/ui-plugins/ui-plugins-improvements.js +191 -0
  26. package/docs/ANALISE_OPENCLAW_PROFISSIONAL.md +520 -0
  27. package/docs/competitive-analysis.md +421 -0
  28. package/docs/implementation-analysis.md +393 -0
  29. package/docs/plans/2026-03-11-file-operations-security-hardening.md +307 -0
  30. package/docs/plans/2026-03-11-integracao-projetos-poolbot.md +666 -0
  31. package/docs/refactor/plugin-development-guide.md +281 -0
  32. package/extensions/agency-agents/README.md +301 -0
  33. package/extensions/agency-agents/agents/CONTRIBUTING.md +353 -0
  34. package/extensions/agency-agents/agents/README.md +602 -0
  35. package/extensions/agency-agents/agents/design/design-brand-guardian.md +320 -0
  36. package/extensions/agency-agents/agents/design/design-image-prompt-engineer.md +234 -0
  37. package/extensions/agency-agents/agents/design/design-ui-designer.md +381 -0
  38. package/extensions/agency-agents/agents/design/design-ux-architect.md +467 -0
  39. package/extensions/agency-agents/agents/design/design-ux-researcher.md +327 -0
  40. package/extensions/agency-agents/agents/design/design-visual-storyteller.md +147 -0
  41. package/extensions/agency-agents/agents/design/design-whimsy-injector.md +436 -0
  42. package/extensions/agency-agents/agents/engineering/engineering-ai-engineer.md +144 -0
  43. package/extensions/agency-agents/agents/engineering/engineering-backend-architect.md +233 -0
  44. package/extensions/agency-agents/agents/engineering/engineering-devops-automator.md +374 -0
  45. package/extensions/agency-agents/agents/engineering/engineering-frontend-developer.md +223 -0
  46. package/extensions/agency-agents/agents/engineering/engineering-mobile-app-builder.md +491 -0
  47. package/extensions/agency-agents/agents/engineering/engineering-rapid-prototyper.md +460 -0
  48. package/extensions/agency-agents/agents/engineering/engineering-security-engineer.md +275 -0
  49. package/extensions/agency-agents/agents/engineering/engineering-senior-developer.md +174 -0
  50. package/extensions/agency-agents/agents/examples/README.md +48 -0
  51. package/extensions/agency-agents/agents/examples/nexus-spatial-discovery.md +852 -0
  52. package/extensions/agency-agents/agents/examples/workflow-landing-page.md +119 -0
  53. package/extensions/agency-agents/agents/examples/workflow-startup-mvp.md +155 -0
  54. package/extensions/agency-agents/agents/integrations/README.md +117 -0
  55. package/extensions/agency-agents/agents/integrations/aider/README.md +38 -0
  56. package/extensions/agency-agents/agents/integrations/antigravity/README.md +49 -0
  57. package/extensions/agency-agents/agents/integrations/claude-code/README.md +31 -0
  58. package/extensions/agency-agents/agents/integrations/cursor/README.md +38 -0
  59. package/extensions/agency-agents/agents/integrations/gemini-cli/README.md +36 -0
  60. package/extensions/agency-agents/agents/integrations/opencode/README.md +58 -0
  61. package/extensions/agency-agents/agents/integrations/windsurf/README.md +26 -0
  62. package/extensions/agency-agents/agents/marketing/marketing-app-store-optimizer.md +319 -0
  63. package/extensions/agency-agents/agents/marketing/marketing-content-creator.md +52 -0
  64. package/extensions/agency-agents/agents/marketing/marketing-growth-hacker.md +52 -0
  65. package/extensions/agency-agents/agents/marketing/marketing-instagram-curator.md +111 -0
  66. package/extensions/agency-agents/agents/marketing/marketing-reddit-community-builder.md +121 -0
  67. package/extensions/agency-agents/agents/marketing/marketing-social-media-strategist.md +123 -0
  68. package/extensions/agency-agents/agents/marketing/marketing-tiktok-strategist.md +123 -0
  69. package/extensions/agency-agents/agents/marketing/marketing-twitter-engager.md +124 -0
  70. package/extensions/agency-agents/agents/marketing/marketing-wechat-official-account.md +143 -0
  71. package/extensions/agency-agents/agents/marketing/marketing-xiaohongshu-specialist.md +136 -0
  72. package/extensions/agency-agents/agents/marketing/marketing-zhihu-strategist.md +160 -0
  73. package/extensions/agency-agents/agents/product/product-feedback-synthesizer.md +117 -0
  74. package/extensions/agency-agents/agents/product/product-sprint-prioritizer.md +152 -0
  75. package/extensions/agency-agents/agents/product/product-trend-researcher.md +157 -0
  76. package/extensions/agency-agents/agents/project-management/project-management-experiment-tracker.md +196 -0
  77. package/extensions/agency-agents/agents/project-management/project-management-project-shepherd.md +192 -0
  78. package/extensions/agency-agents/agents/project-management/project-management-studio-operations.md +198 -0
  79. package/extensions/agency-agents/agents/project-management/project-management-studio-producer.md +201 -0
  80. package/extensions/agency-agents/agents/project-management/project-manager-senior.md +133 -0
  81. package/extensions/agency-agents/agents/scripts/convert.sh +362 -0
  82. package/extensions/agency-agents/agents/scripts/install.sh +465 -0
  83. package/extensions/agency-agents/agents/scripts/lint-agents.sh +115 -0
  84. package/extensions/agency-agents/agents/spatial-computing/macos-spatial-metal-engineer.md +335 -0
  85. package/extensions/agency-agents/agents/spatial-computing/terminal-integration-specialist.md +68 -0
  86. package/extensions/agency-agents/agents/spatial-computing/visionos-spatial-engineer.md +52 -0
  87. package/extensions/agency-agents/agents/spatial-computing/xr-cockpit-interaction-specialist.md +30 -0
  88. package/extensions/agency-agents/agents/spatial-computing/xr-immersive-developer.md +30 -0
  89. package/extensions/agency-agents/agents/spatial-computing/xr-interface-architect.md +30 -0
  90. package/extensions/agency-agents/agents/specialized/agentic-identity-trust.md +367 -0
  91. package/extensions/agency-agents/agents/specialized/agents-orchestrator.md +365 -0
  92. package/extensions/agency-agents/agents/specialized/data-analytics-reporter.md +52 -0
  93. package/extensions/agency-agents/agents/specialized/data-consolidation-agent.md +58 -0
  94. package/extensions/agency-agents/agents/specialized/lsp-index-engineer.md +312 -0
  95. package/extensions/agency-agents/agents/specialized/report-distribution-agent.md +63 -0
  96. package/extensions/agency-agents/agents/specialized/sales-data-extraction-agent.md +65 -0
  97. package/extensions/agency-agents/agents/strategy/EXECUTIVE-BRIEF.md +95 -0
  98. package/extensions/agency-agents/agents/strategy/QUICKSTART.md +194 -0
  99. package/extensions/agency-agents/agents/strategy/coordination/agent-activation-prompts.md +401 -0
  100. package/extensions/agency-agents/agents/strategy/coordination/handoff-templates.md +357 -0
  101. package/extensions/agency-agents/agents/strategy/nexus-strategy.md +1110 -0
  102. package/extensions/agency-agents/agents/strategy/playbooks/phase-0-discovery.md +178 -0
  103. package/extensions/agency-agents/agents/strategy/playbooks/phase-1-strategy.md +238 -0
  104. package/extensions/agency-agents/agents/strategy/playbooks/phase-2-foundation.md +278 -0
  105. package/extensions/agency-agents/agents/strategy/playbooks/phase-3-build.md +286 -0
  106. package/extensions/agency-agents/agents/strategy/playbooks/phase-4-hardening.md +332 -0
  107. package/extensions/agency-agents/agents/strategy/playbooks/phase-5-launch.md +277 -0
  108. package/extensions/agency-agents/agents/strategy/playbooks/phase-6-operate.md +318 -0
  109. package/extensions/agency-agents/agents/strategy/runbooks/scenario-enterprise-feature.md +157 -0
  110. package/extensions/agency-agents/agents/strategy/runbooks/scenario-incident-response.md +217 -0
  111. package/extensions/agency-agents/agents/strategy/runbooks/scenario-marketing-campaign.md +187 -0
  112. package/extensions/agency-agents/agents/strategy/runbooks/scenario-startup-mvp.md +154 -0
  113. package/extensions/agency-agents/agents/support/support-analytics-reporter.md +363 -0
  114. package/extensions/agency-agents/agents/support/support-executive-summary-generator.md +210 -0
  115. package/extensions/agency-agents/agents/support/support-finance-tracker.md +440 -0
  116. package/extensions/agency-agents/agents/support/support-infrastructure-maintainer.md +616 -0
  117. package/extensions/agency-agents/agents/support/support-legal-compliance-checker.md +586 -0
  118. package/extensions/agency-agents/agents/support/support-support-responder.md +583 -0
  119. package/extensions/agency-agents/agents/testing/testing-accessibility-auditor.md +313 -0
  120. package/extensions/agency-agents/agents/testing/testing-api-tester.md +304 -0
  121. package/extensions/agency-agents/agents/testing/testing-evidence-collector.md +208 -0
  122. package/extensions/agency-agents/agents/testing/testing-performance-benchmarker.md +266 -0
  123. package/extensions/agency-agents/agents/testing/testing-reality-checker.md +236 -0
  124. package/extensions/agency-agents/agents/testing/testing-test-results-analyzer.md +303 -0
  125. package/extensions/agency-agents/agents/testing/testing-tool-evaluator.md +392 -0
  126. package/extensions/agency-agents/agents/testing/testing-workflow-optimizer.md +448 -0
  127. package/extensions/agency-agents/index.ts +733 -0
  128. package/extensions/agency-agents/node_modules/.bin/jiti +21 -0
  129. package/extensions/agency-agents/node_modules/.bin/tsc +21 -0
  130. package/extensions/agency-agents/node_modules/.bin/tsserver +21 -0
  131. package/extensions/agency-agents/node_modules/.bin/tsx +21 -0
  132. package/extensions/agency-agents/node_modules/.bin/vite +21 -0
  133. package/extensions/agency-agents/node_modules/.bin/vitest +21 -0
  134. package/extensions/agency-agents/node_modules/.bin/yaml +21 -0
  135. package/extensions/agency-agents/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  136. package/extensions/agency-agents/package.json +25 -0
  137. package/extensions/agency-agents/src/AgencyAgentsService.test.ts +443 -0
  138. package/extensions/agency-agents/src/AgencyAgentsService.ts +288 -0
  139. package/extensions/agency-agents/src/types.ts +147 -0
  140. package/extensions/agency-agents/vitest.config.ts +8 -0
  141. package/extensions/hexstrike-ai/README.md +98 -0
  142. package/extensions/hexstrike-ai/node_modules/.bin/tsc +21 -0
  143. package/extensions/hexstrike-ai/node_modules/.bin/tsserver +21 -0
  144. package/extensions/hexstrike-ai/package.json +29 -0
  145. package/extensions/hexstrike-ai/poolbot.plugin.json +31 -0
  146. package/extensions/hexstrike-ai/src/client.ts +91 -0
  147. package/extensions/hexstrike-ai/src/index.ts +170 -0
  148. package/extensions/hexstrike-ai/src/server/hexstrike_mcp.py +5470 -0
  149. package/extensions/hexstrike-ai/src/server/hexstrike_server.py +17289 -0
  150. package/extensions/hexstrike-ai/src/server/requirements.txt +84 -0
  151. package/extensions/hexstrike-ai/src/server-manager.ts +83 -0
  152. package/extensions/hexstrike-ai/tsconfig.json +20 -0
  153. package/extensions/hexstrike-bridge/package.json +1 -1
  154. package/extensions/hexstrike-bridge/poolbot.plugin.json +23 -0
  155. package/extensions/mcp-server/poolbot.plugin.json +10 -0
  156. package/extensions/page-agent/README.md +159 -0
  157. package/extensions/page-agent/index.ts +595 -0
  158. package/extensions/page-agent/node_modules/.bin/jiti +21 -0
  159. package/extensions/page-agent/node_modules/.bin/playwright +21 -0
  160. package/extensions/page-agent/node_modules/.bin/tsc +21 -0
  161. package/extensions/page-agent/node_modules/.bin/tsserver +21 -0
  162. package/extensions/page-agent/node_modules/.bin/tsx +21 -0
  163. package/extensions/page-agent/node_modules/.bin/vitest +21 -0
  164. package/extensions/page-agent/node_modules/.bin/yaml +21 -0
  165. package/extensions/page-agent/package.json +43 -0
  166. package/extensions/page-agent/src/PageAgentService.test.ts +517 -0
  167. package/extensions/page-agent/src/PageAgentService.ts +636 -0
  168. package/extensions/page-agent/src/PoolBotPageController.test.ts +358 -0
  169. package/extensions/page-agent/src/PoolBotPageController.ts +245 -0
  170. package/extensions/page-agent/src/index.ts +20 -0
  171. package/extensions/page-agent/src/tools.test.ts +231 -0
  172. package/extensions/page-agent/src/tools.ts +167 -0
  173. package/extensions/page-agent/src/types.ts +198 -0
  174. package/extensions/template/README.md +101 -0
  175. package/extensions/template/index.ts +38 -0
  176. package/extensions/template/package.json +15 -0
  177. package/extensions/template/poolbot.plugin.json +10 -0
  178. package/extensions/xyops/README.md +227 -0
  179. package/extensions/xyops/index.ts +342 -0
  180. package/extensions/xyops/node_modules/.bin/jiti +21 -0
  181. package/extensions/xyops/node_modules/.bin/tsc +21 -0
  182. package/extensions/xyops/node_modules/.bin/tsserver +21 -0
  183. package/extensions/xyops/node_modules/.bin/tsx +21 -0
  184. package/extensions/xyops/node_modules/.bin/vitest +21 -0
  185. package/extensions/xyops/node_modules/.bin/yaml +21 -0
  186. package/extensions/xyops/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  187. package/extensions/xyops/package.json +39 -0
  188. package/extensions/xyops/src/client.test.ts +467 -0
  189. package/extensions/xyops/src/client.ts +157 -0
  190. package/extensions/xyops/src/types.ts +147 -0
  191. package/extensions/xyops/vitest.config.ts +8 -0
  192. package/package.json +1 -1
  193. package/extensions/mavalie/README.md +0 -97
  194. package/extensions/mavalie/package.json +0 -15
  195. package/extensions/mavalie/src/index.ts +0 -62
@@ -0,0 +1,281 @@
1
+ # Plugin Development Guide
2
+
3
+ Complete guide for creating PoolBot plugins using the template scaffold.
4
+
5
+ ## Quick Start
6
+
7
+ ### 1. Create from Template
8
+
9
+ Copy the template to a new plugin directory:
10
+
11
+ ```bash
12
+ cp -r extensions/template extensions/my-plugin
13
+ cd extensions/my-plugin
14
+ ```
15
+
16
+ ### 2. Update Package Info
17
+
18
+ Edit `package.json`:
19
+
20
+ ```json
21
+ {
22
+ "name": "@poolzin/my-plugin",
23
+ "version": "2026.3.12",
24
+ "description": "My custom PoolBot plugin"
25
+ }
26
+ ```
27
+
28
+ ### 3. Update Plugin Manifest
29
+
30
+ Edit `poolbot.plugin.json`:
31
+
32
+ ```json
33
+ {
34
+ "id": "my-plugin",
35
+ "name": "My Plugin",
36
+ "description": "What my plugin does.",
37
+ "configSchema": {
38
+ "type": "object",
39
+ "properties": {
40
+ "apiKey": {
41
+ "type": "string",
42
+ "description": "API key for external service"
43
+ }
44
+ }
45
+ }
46
+ }
47
+ ```
48
+
49
+ ### 4. Implement Plugin
50
+
51
+ Edit `index.ts`:
52
+
53
+ ```typescript
54
+ import type { PoolBotPluginApi } from "../../src/plugins/types.js";
55
+ import type { AgentToolResult } from "@mariozechner/pi-agent-core";
56
+
57
+ export default function register(api: PoolBotPluginApi) {
58
+ // Register tools, providers, channels, or hooks
59
+ api.registerTool({
60
+ label: "My Tool",
61
+ name: "my_tool",
62
+ description: "Does something useful",
63
+ parameters: {
64
+ type: "object",
65
+ properties: {
66
+ input: { type: "string" }
67
+ },
68
+ required: ["input"]
69
+ },
70
+ async execute(_toolCallId, params): Promise<AgentToolResult<unknown>> {
71
+ const { input } = params as { input: string };
72
+ return {
73
+ content: [{ type: "text", text: `Processed: ${input}` }],
74
+ details: { input }
75
+ };
76
+ }
77
+ });
78
+ }
79
+ ```
80
+
81
+ ### 5. Test Locally
82
+
83
+ ```bash
84
+ # Build
85
+ pnpm build
86
+
87
+ # Lint
88
+ pnpm lint
89
+
90
+ # Run PoolBot with plugin
91
+ pnpm dev
92
+ ```
93
+
94
+ ### 6. Publish (Optional)
95
+
96
+ ```bash
97
+ cd extensions/my-plugin
98
+ npm publish --access public
99
+ ```
100
+
101
+ ## Plugin Structure
102
+
103
+ ```
104
+ extensions/my-plugin/
105
+ ├── package.json # npm manifest
106
+ ├── poolbot.plugin.json # Plugin manifest (required)
107
+ ├── index.ts # Entry point (root level)
108
+ └── README.md # Documentation
109
+ ```
110
+
111
+ ## Extension Types
112
+
113
+ ### Tools
114
+
115
+ Add capabilities that agents can use:
116
+
117
+ ```typescript
118
+ api.registerTool({
119
+ label: "Weather",
120
+ name: "weather_lookup",
121
+ description: "Get current weather for a location",
122
+ parameters: {
123
+ type: "object",
124
+ properties: {
125
+ city: { type: "string" }
126
+ },
127
+ required: ["city"]
128
+ },
129
+ async execute(_toolCallId, params): Promise<AgentToolResult<unknown>> {
130
+ const { city } = params as { city: string };
131
+ // Call weather API
132
+ return {
133
+ content: [{ type: "text", text: `Weather in ${city}: ...` }],
134
+ details: { city, temperature: 72 }
135
+ };
136
+ }
137
+ });
138
+ ```
139
+
140
+ ### Providers
141
+
142
+ Add custom LLM model providers:
143
+
144
+ ```typescript
145
+ api.registerProvider({
146
+ id: "my-provider",
147
+ name: "My Provider",
148
+ // ... provider config
149
+ });
150
+ ```
151
+
152
+ ### Channels
153
+
154
+ Add messaging channel integrations:
155
+
156
+ ```typescript
157
+ api.registerChannel({
158
+ id: "my-channel",
159
+ name: "My Channel",
160
+ // ... channel implementation
161
+ });
162
+ ```
163
+
164
+ ### Hooks
165
+
166
+ Intercept lifecycle events:
167
+
168
+ ```typescript
169
+ api.on("before_model_resolve", async (ctx) => {
170
+ // Modify context before model selection
171
+ });
172
+ ```
173
+
174
+ ## Configuration Schema
175
+
176
+ The `configSchema` in `poolbot.plugin.json` defines user-configurable settings:
177
+
178
+ ```json
179
+ {
180
+ "configSchema": {
181
+ "type": "object",
182
+ "properties": {
183
+ "apiKey": {
184
+ "type": "string",
185
+ "description": "API authentication key"
186
+ },
187
+ "endpoint": {
188
+ "type": "string",
189
+ "default": "https://api.example.com",
190
+ "description": "API endpoint URL"
191
+ },
192
+ "timeout": {
193
+ "type": "number",
194
+ "default": 5000,
195
+ "description": "Request timeout in milliseconds"
196
+ }
197
+ },
198
+ "required": ["apiKey"]
199
+ }
200
+ }
201
+ ```
202
+
203
+ Access config in your plugin:
204
+
205
+ ```typescript
206
+ export default function register(api: PoolBotPluginApi) {
207
+ const config = api.pluginConfig as { apiKey: string; endpoint?: string };
208
+ const endpoint = config.endpoint ?? "https://api.example.com";
209
+ // Use config.apiKey...
210
+ }
211
+ ```
212
+
213
+ ## Testing Your Plugin
214
+
215
+ ### Local Testing
216
+
217
+ 1. Place plugin in `extensions/my-plugin/`
218
+ 2. Ensure `poolbot.extensions` in root `package.json` includes the path
219
+ 3. Run `pnpm build` and `pnpm dev`
220
+ 4. Test with `poolbot doctor` to verify loading
221
+
222
+ ### Test Plugin Available
223
+
224
+ Use the published test plugin as a reference:
225
+
226
+ ```bash
227
+ npm install @poolzin/test-plugin
228
+ ```
229
+
230
+ This plugin provides:
231
+ - `test_echo` - Echo tool for validation
232
+ - `test_validate` - Plugin status checker
233
+
234
+ ## Troubleshooting
235
+
236
+ ### "plugin manifest not found"
237
+
238
+ - Check if `poolbot.plugin.json` exists in plugin root
239
+ - Verify JSON is valid
240
+
241
+ ### "extension entry escapes package directory"
242
+
243
+ - Entry point in `package.json` must use relative path: `"./index.ts"`
244
+ - File must be inside plugin directory
245
+
246
+ ### TypeScript Errors
247
+
248
+ - Use `import type { PoolBotPluginApi } from "../../src/plugins/types.js"`
249
+ - Note the capital `B` in `PoolBotPluginApi`
250
+ - Tool `label` property is required
251
+ - Tool `execute` must return `Promise<AgentToolResult<unknown>>`
252
+
253
+ ### Tool Not Appearing
254
+
255
+ - Verify tool has `label`, `name`, `description`, `parameters`, and `execute`
256
+ - Check that `parameters` follows JSON Schema format
257
+ - Ensure `execute` returns correct `AgentToolResult` structure
258
+
259
+ ## Best Practices
260
+
261
+ 1. **Use TypeScript** - Full type safety for better DX
262
+ 2. **Add Labels** - Every tool needs a `label` for display
263
+ 3. **Validate Input** - Check parameters before processing
264
+ 4. **Return Proper Results** - Use `AgentToolResult` structure
265
+ 5. **Document Config** - Describe all config options in schema
266
+ 6. **Handle Errors** - Throw descriptive errors for invalid input
267
+ 7. **Test Thoroughly** - Test with `poolbot doctor` before publishing
268
+
269
+ ## Examples
270
+
271
+ See working examples in the repository:
272
+
273
+ - `extensions/template/` - Minimal starter template
274
+ - `extensions/test-plugin/` - Working example with tools
275
+ - `extensions/lobster/` - Complex plugin with multiple features
276
+ - `extensions/llm-task/` - Provider plugin example
277
+
278
+ ## References
279
+
280
+ - [Plugin SDK Documentation](plugin-sdk.md)
281
+ - [Test Plugin on npm](https://www.npmjs.com/package/@poolzin/test-plugin)
@@ -0,0 +1,301 @@
1
+ # Agency Agents Extension for PoolBot
2
+
3
+ AI specialist agents for software engineering tasks. Register domain-specific agents (Frontend, Backend, DevOps, etc.) and orchestrate complex multi-agent workflows with collaboration, messaging, and review capabilities.
4
+
5
+ ## Features
6
+
7
+ - **Specialist Agents**: Pre-configured agents for different engineering domains
8
+ - **Task Management**: Create, assign, and track tasks with dependencies
9
+ - **Multi-Agent Collaboration**: Form teams with lead agents and participants
10
+ - **Workflow Orchestration**: Define step-by-step workflows with dependencies
11
+ - **Agent Messaging**: Inter-agent communication for coordination
12
+ - **Code Review**: Structured review process with approval workflows
13
+ - **System Prompts**: Auto-generated prompts for LLM integration
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ # Install as PoolBot extension
19
+ poolbot extension install @poolbot/agency-agents
20
+
21
+ # Or manual installation
22
+ cd extensions/agency-agents
23
+ pnpm install
24
+ pnpm build
25
+ ```
26
+
27
+ ## Configuration
28
+
29
+ ```json
30
+ {
31
+ "agencyAgents": {
32
+ "agents": [
33
+ {
34
+ "name": "FrontendDev",
35
+ "description": "Frontend development specialist",
36
+ "category": "engineering",
37
+ "color": "#3b82f6",
38
+ "content": "Expert in React, Vue, and modern CSS...",
39
+ "capabilities": ["react", "vue", "css", "typescript"],
40
+ "tools": ["code_editor", "browser", "git"]
41
+ },
42
+ {
43
+ "name": "BackendDev",
44
+ "description": "Backend development specialist",
45
+ "category": "engineering",
46
+ "color": "#10b981",
47
+ "content": "Expert in Node.js, Python, and databases...",
48
+ "capabilities": ["nodejs", "python", "postgresql", "redis"],
49
+ "tools": ["code_editor", "database", "api_tester"]
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ ```
55
+
56
+ ## Usage
57
+
58
+ ### Initialize Service
59
+
60
+ ```typescript
61
+ import { AgencyAgentsService } from '@poolbot/agency-agents'
62
+
63
+ const service = new AgencyAgentsService(config)
64
+ ```
65
+
66
+ ### Register Agents
67
+
68
+ ```typescript
69
+ service.registerAgent({
70
+ name: 'DevOpsEngineer',
71
+ description: 'DevOps and infrastructure specialist',
72
+ category: 'engineering',
73
+ color: '#f59e0b',
74
+ content: 'Expert in Docker, Kubernetes, and CI/CD...',
75
+ capabilities: ['docker', 'kubernetes', 'terraform', 'aws'],
76
+ tools: ['terminal', 'docker', 'kubectl']
77
+ })
78
+ ```
79
+
80
+ ### Task Management
81
+
82
+ ```typescript
83
+ // Create a task
84
+ const task = service.createTask(
85
+ 'FrontendDev',
86
+ 'Build login page component',
87
+ 'Create a responsive login form with email and password fields'
88
+ )
89
+
90
+ // Update task status
91
+ service.updateTaskStatus(task.id, 'in_progress')
92
+ service.updateTaskStatus(task.id, 'completed', 'Login component built successfully')
93
+
94
+ // Get task details
95
+ const taskDetails = service.getTask(task.id)
96
+
97
+ // List all tasks
98
+ const allTasks = service.listTasks()
99
+
100
+ // Filter by agent or status
101
+ const frontendTasks = service.listTasks('FrontendDev')
102
+ const pendingTasks = service.listTasks(undefined, 'pending')
103
+ ```
104
+
105
+ ### Agent Collaboration
106
+
107
+ ```typescript
108
+ // Create a collaboration
109
+ const collab = service.createCollaboration(
110
+ 'E-commerce Feature',
111
+ 'Build shopping cart functionality',
112
+ 'FrontendDev',
113
+ ['BackendDev', 'UXDesigner']
114
+ )
115
+
116
+ // Add tasks to collaboration
117
+ const task1 = service.createTask('FrontendDev', 'Build cart UI', undefined, collab.id)
118
+ const task2 = service.createTask('BackendDev', 'Build cart API', undefined, collab.id)
119
+
120
+ // Update collaboration status
121
+ service.updateCollaborationStatus(collab.id, 'active')
122
+
123
+ // List collaborations
124
+ const activeCollabs = service.listCollaborations('active')
125
+ ```
126
+
127
+ ### Agent Messaging
128
+
129
+ ```typescript
130
+ // Send message between agents
131
+ service.sendMessage(
132
+ 'FrontendDev',
133
+ 'BackendDev',
134
+ collab.id,
135
+ 'What is the API endpoint for adding items to cart?',
136
+ 'request'
137
+ )
138
+
139
+ // Get messages for collaboration
140
+ const messages = service.getMessagesForCollaboration(collab.id)
141
+ ```
142
+
143
+ ### Code Review
144
+
145
+ ```typescript
146
+ // Create a review
147
+ service.createReview(
148
+ task.id,
149
+ 'SeniorDev',
150
+ 'FrontendDev',
151
+ 'Code looks good but needs error handling',
152
+ 'changes_requested',
153
+ ['Add try-catch block', 'Validate input parameters']
154
+ )
155
+
156
+ // Approve review
157
+ service.approveReview(review.id)
158
+
159
+ // Get reviews for task
160
+ const reviews = service.getReviewsForTask(task.id)
161
+ ```
162
+
163
+ ### Workflow Orchestration
164
+
165
+ ```typescript
166
+ // Create a workflow
167
+ const workflow = service.createWorkflow(
168
+ 'Feature Development',
169
+ 'Complete feature development workflow',
170
+ 'engineering'
171
+ )
172
+
173
+ // Add steps
174
+ const step1 = service.addWorkflowStep(
175
+ workflow.id,
176
+ 'Design API',
177
+ 'Design the API endpoints',
178
+ 'BackendDev',
179
+ 'Create OpenAPI spec',
180
+ []
181
+ )
182
+
183
+ const step2 = service.addWorkflowStep(
184
+ workflow.id,
185
+ 'Implement API',
186
+ 'Build the backend API',
187
+ 'BackendDev',
188
+ 'Implement endpoints',
189
+ [step1.id]
190
+ )
191
+
192
+ // Execute workflow
193
+ await service.executeWorkflow(workflow.id)
194
+ ```
195
+
196
+ ### System Prompt Generation
197
+
198
+ ```typescript
199
+ // Generate system prompt for agent
200
+ const prompt = service.generateSystemPrompt('FrontendDev')
201
+ console.log(prompt)
202
+ // Output: "You are FrontendDev, a Frontend development specialist..."
203
+ ```
204
+
205
+ ## Data Types
206
+
207
+ ### AgencyAgent
208
+
209
+ ```typescript
210
+ interface AgencyAgent {
211
+ name: string
212
+ description: string
213
+ color?: string
214
+ category: string
215
+ content: string
216
+ capabilities: string[]
217
+ tools?: string[]
218
+ }
219
+ ```
220
+
221
+ ### AgentTask
222
+
223
+ ```typescript
224
+ interface AgentTask {
225
+ id: string
226
+ agentName: string
227
+ task: string
228
+ context?: string
229
+ status: 'pending' | 'in_progress' | 'completed' | 'failed' | 'reviewing'
230
+ output?: string
231
+ createdAt: Date
232
+ updatedAt: Date
233
+ parentTaskId?: string
234
+ subtasks?: string[]
235
+ dependencies?: string[]
236
+ }
237
+ ```
238
+
239
+ ### AgentCollaboration
240
+
241
+ ```typescript
242
+ interface AgentCollaboration {
243
+ id: string
244
+ name: string
245
+ description: string
246
+ leadAgent: string
247
+ participatingAgents: string[]
248
+ tasks: AgentTask[]
249
+ status: 'planning' | 'active' | 'completed' | 'paused'
250
+ createdAt: Date
251
+ updatedAt: Date
252
+ }
253
+ ```
254
+
255
+ ## Testing
256
+
257
+ ```bash
258
+ # Run all tests
259
+ pnpm test
260
+
261
+ # Watch mode
262
+ pnpm test:watch
263
+
264
+ # Coverage
265
+ pnpm test:coverage
266
+ ```
267
+
268
+ ## API Reference
269
+
270
+ ### AgencyAgentsService
271
+
272
+ | Method | Description |
273
+ |--------|-------------|
274
+ | `registerAgent(agent)` | Register a new agent |
275
+ | `unregisterAgent(name)` | Remove an agent |
276
+ | `getAgent(name)` | Get agent by name |
277
+ | `listAgents()` | List all registered agents |
278
+ | `findAgentsByCapability(cap)` | Find agents by capability |
279
+ | `matchAgentToTask(task)` | Find best agent for task |
280
+ | `createTask(agent, task, context, parentId)` | Create a task |
281
+ | `getTask(id)` | Get task by ID |
282
+ | `updateTaskStatus(id, status, output)` | Update task status |
283
+ | `listTasks(agent?, status?)` | List tasks with filters |
284
+ | `createCollaboration(name, desc, lead, participants)` | Create collaboration |
285
+ | `getCollaboration(id)` | Get collaboration by ID |
286
+ | `updateCollaborationStatus(id, status)` | Update collaboration status |
287
+ | `listCollaborations(status?)` | List collaborations |
288
+ | `sendMessage(from, to, collabId, content, type)` | Send agent message |
289
+ | `getMessagesForCollaboration(id)` | Get collaboration messages |
290
+ | `createReview(taskId, reviewer, reviewee, feedback, status, suggestions?)` | Create review |
291
+ | `approveReview(id)` | Approve a review |
292
+ | `getReviewsForTask(id)` | Get reviews for task |
293
+ | `createWorkflow(name, desc, category)` | Create workflow |
294
+ | `addWorkflowStep(flowId, name, desc, agent, task, deps)` | Add workflow step |
295
+ | `executeWorkflow(id)` | Execute workflow |
296
+ | `generateSystemPrompt(agentName)` | Generate system prompt |
297
+ | `getStatistics()` | Get service statistics |
298
+
299
+ ## License
300
+
301
+ MIT